示例#1
0
        public static SineWave GetNote(this SineWave baseNote, TwelveToneTemperament temperament, HalfNoteSteps halfNoteSteps, bool above = true)
        {
            if (baseNote == null)
            {
                return(null);
            }

            var newCarrierFrequency = temperament.GetNote(halfNoteSteps, baseNote.Carrier, above);

            return(new SineWave(baseNote, newCarrierFrequency));
        }
示例#2
0
        public static IEnumerable <SineWave> GetNotes(this SineWave baseNote, TwelveToneTemperament temperament, IEnumerable <HalfNoteSteps> chord, bool above = true)
        {
            if (baseNote == null)
            {
                return(null);
            }

            var list = new List <SineWave>(chord.Count());

            foreach (var halfNoteSteps in chord)
            {
                list.Add(GetNote(baseNote, temperament, halfNoteSteps, above));
            }

            return(list);
        }
 public MainViewModel(IEnumerable<SineWave> sineWaves, TwelveToneTemperament temperament) : this()
 {
     sineWaves?.ToList()?.ForEach(s => SineWaves.Add(s));
     Temperament = temperament;
 }
示例#4
0
 public static IEnumerable <SineWave> GetChord(this SineWave baseNote, TwelveToneTemperament temperament, Chord c, bool above = true)
 {
     return(GetNotes(baseNote, temperament, c, above));
 }