本文整理汇总了C#中Song.Add方法的典型用法代码示例。如果您正苦于以下问题:C# Song.Add方法的具体用法?C# Song.Add怎么用?C# Song.Add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Song
的用法示例。
在下文中一共展示了Song.Add方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Parse
public Song Parse()
{
var song = new Song();
int? tempo = _score.Parts.First().Measures.First().Directions.Where(x => x.Placement == DirectionPlacement.Above).First().Tempo;
if (tempo == null)
{
song.Tempo = 100;
}
else
{
song.Tempo = (int)tempo;
}
double currentNoteTime = 0;
double currentDevisions = 4;
foreach (Part part in _score.Parts)
foreach (Measure measure in part.Measures)
{
MeasureAttributes attributes = measure.Attributes;
if (attributes != null)
{
if (attributes.Divisions != -1) currentDevisions = attributes.Divisions;
}
double lastNoteDuration = 0;
foreach (Note note in measure.Notes)
{
//If the current note is part of a chord, we need to revert to the previous NoteTime
if (note.IsChord) currentNoteTime -= lastNoteDuration / currentDevisions;
//After current note drawn, handle keeping track of noteTime in the piece
switch (note.NoteType)
{
case Note.NoteTypes.Note:
song.Add(ConvertXmlNoteToSongNote(currentNoteTime, note));
currentNoteTime += note.Duration / currentDevisions;
break;
case Note.NoteTypes.Backup:
currentNoteTime -= note.Duration / currentDevisions;
break;
case Note.NoteTypes.Forward:
currentNoteTime += note.Duration / currentDevisions;
break;
default:
currentNoteTime += note.Duration / currentDevisions;
break;
}
lastNoteDuration = note.Duration;
}
}
return song;
}
示例2: AddSongNoteToSong
public static void AddSongNoteToSong(double noteTime, Song song, Note xmlNote, double duration)
{
var songNote = new SongNote();
songNote.NoteTime = noteTime;
songNote.PitchId = GetPitchIdFromNote(xmlNote);
songNote.Velocity = 100;
songNote.Duration = duration;
SongNoteEventCollections noteEventCollections;
if (!song.TryGetValue(noteTime, out noteEventCollections))
{
noteEventCollections = new SongNoteEventCollections();
song.Add(noteTime, noteEventCollections);
};
noteEventCollections.KeyPresses.Add(songNote);
}