public double CalcFreq(double f, HalfNoteSteps halfNoteSteps, bool above = true) => CalcFreq(f, (int)halfNoteSteps, above);
public double GetNote(HalfNoteSteps halfNoteSteps, double carrierFrequency, bool above = true) { double newCarrier; switch (halfNoteSteps) { case HalfNoteSteps.Unison: { newCarrier = carrierFrequency; break; } case HalfNoteSteps.SecondMinor: { newCarrier = SecondMinor(carrierFrequency, above); break; } case HalfNoteSteps.SecondMajor: { newCarrier = SecondMajor(carrierFrequency, above); break; } case HalfNoteSteps.ThirdMinor: { newCarrier = ThirdMinor(carrierFrequency, above); break; } case HalfNoteSteps.ThirdMajor: { newCarrier = ThirdMajor(carrierFrequency, above); break; } case HalfNoteSteps.Fourth: { newCarrier = Fourth(carrierFrequency, above); break; } case HalfNoteSteps.FourthAug: { newCarrier = FourthAugmented(carrierFrequency, above); break; } case HalfNoteSteps.Fifth: { newCarrier = Fifth(carrierFrequency, above); break; } case HalfNoteSteps.FifthAug: { newCarrier = SixthMinor(carrierFrequency, above); break; } case HalfNoteSteps.SixthMajor: { newCarrier = SixthMajor(carrierFrequency, above); break; } case HalfNoteSteps.SeventhMinor: { newCarrier = SeventhMinor(carrierFrequency, above); break; } case HalfNoteSteps.SeventhMajor: { newCarrier = SeventhMajor(carrierFrequency, above); break; } case HalfNoteSteps.Octave: { newCarrier = Octave(carrierFrequency, above); break; } default: { newCarrier = Octave(carrierFrequency, above) + GetNote(halfNoteSteps - 12, carrierFrequency, above); break; } } return(newCarrier); }
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)); }