public void GetValue_Success()
 {
     Assert.AreEqual(1, converter.GetValue(Durations.Whole));
     Assert.AreEqual(1d / 2, converter.GetValue(Durations.Half));
     Assert.AreEqual(1d / 4, converter.GetValue(Durations.Quarter));
     Assert.AreEqual(1d / 8, converter.GetValue(Durations.Eight));
     Assert.AreEqual(1d / 16, converter.GetValue(Durations.Sixteenth));
     Assert.AreEqual(1d / 32, converter.GetValue(Durations.ThirtySecond));
 }
Пример #2
0
        private IEnumerable <double> GenerateSoundData(TuneElement tuneElement, double period)
        {
            double frequenceNote = 0;

            var note = tuneElement as Note;

            if (note != null)
            {
                frequenceNote = new Frequences()[note.Pitch, note.Scale];
            }

            oscillator.SetFrequency(frequenceNote);

            var loopLength = SampleRate * period * (durationConverter.GetValue(tuneElement.Duration) * (tuneElement.Dotted ? 1.5 : 1));

            for (var i = 0; i < loopLength; i++)
            {
                yield return(oscillator.GetNext(i));
            }
        }