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);
        }
Ejemplo n.º 3
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));
        }