Exemple #1
0
        public static PitchValue GetPitchFromNote(NoteName note, int octave, IntonationMethod intonation)
        {
            var noteCents = octave * 1200d;

            switch (intonation)
            {
            default:
            case IntonationMethod.EqualTempered:
                noteCents += IntonationRatioToCents(Math.Pow(TwelfthRoot, (int)note));
                break;

            case IntonationMethod.Just:
                noteCents += IntonationRatioToCents(JustScaleRatios[(int)note]);
                break;
            }
            return(PitchValue.FromCents(noteCents));
        }
        public static PitchValue GetPitchAtFret(PitchValue openStringPitch, int fret, Temperament temperament)
        {
            var intonation = temperament == Temperament.Just ? IntonationMethod.Just : IntonationMethod.EqualTempered;

            var openStringNote = MusicalNote.FromPitch(openStringPitch).AddSteps(0, intonation);
            var fretNote       = openStringNote.AddSteps(fret);

            double fretCents = fretNote.Pitch.Cents;

            if (fret != 0)
            {
                //Add the chromatic offset
                if (temperament == Temperament.ThidellFormula)
                {
                    fretCents += NoteConverter.ThidellFormulaChromaticOffsets[(int)fretNote.NoteName];
                }
                else if (temperament == Temperament.DieWohltemperirte)
                {
                    fretCents += NoteConverter.DieWohltemperirteChromaticOffsets[(int)fretNote.NoteName];
                }
            }

            return(PitchValue.FromCents(fretCents));
        }
Exemple #3
0
 public static MusicalNote FromCents(double cents)
 {
     return(FromPitch(PitchValue.FromCents(cents)));
 }