本文整理汇总了C#中Note.StandardizeDuration方法的典型用法代码示例。如果您正苦于以下问题:C# Note.StandardizeDuration方法的具体用法?C# Note.StandardizeDuration怎么用?C# Note.StandardizeDuration使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Note
的用法示例。
在下文中一共展示了Note.StandardizeDuration方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GenerateMelody
public Note[] GenerateMelody(MelodySequence inputSeq)
{
SampleSet set = new SampleSet();
var mainNotes = inputSeq.ToArray();
for (int j = INPUT_NOTES; j < mainNotes.Length && j < 200; j++)
{
Note[] prevNotes = new Note[INPUT_NOTES];
for(int k = 0; k < INPUT_NOTES; k++)
{
prevNotes[INPUT_NOTES - k-1] = mainNotes[j - k];
}
Sample s = GetSample(prevNotes, null);
set.Add(s);
}
List<Note> notes = new List<Note>();
var reverseHashes = Utils.ReverseDictionary(noteHashes);
int mainTime = 0;
int accompTime = 0;
int i = 0;
foreach (Sample sample in set)
{
var res = network.Compute(sample.Inputs);
//Note n = new Note((NoteNames)((int)(res[0] * 12)), 6, (Durations)((int)(res[1] * 64.0)));
Note n = new Note((int)(res[0] * 128), (int)(res[1] * 64.0));
n.Duration *= 2;
n.StandardizeDuration();
if (mainTime >= accompTime)
{
notes.Add(n);
accompTime += (int)n.Duration;
}
if(i++ % 20 == 0)
{
notes.Add(new Note(-1, mainTime - accompTime));
}
mainTime += (int)(sample.Inputs[1] * 64);
}
return notes.ToArray();
}