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)); }
public static MusicalNote FromCents(double cents) { return(FromPitch(PitchValue.FromCents(cents))); }