1#ifndef MCC_PITCH_LETTER_H
2#define MCC_PITCH_LETTER_H
4#include <MCC_BuildSettings.h>
8#include <Foundation/Math/Arithmetic.h>
38constexpr bool IsLetter(
Letter letter)
noexcept {
50 return Detail::IsLetter(letter) ?
static_cast<uint8_t
>(letter) : 0;
61 return static_cast<uint8_t
>(index * 2 - (index >= 3 ? 1 : 0));
70 return static_cast<Letter>(Foundation::Math::FloorMod(
constexpr uint8_t LetterCount
Number of diatonic letters.
Definition Letter.h:33
MCC_CONSTEXPR14 uint8_t NaturalSemitone(Letter letter) noexcept
Returns the semitone offset of the natural letter above C: 0 2 4 5 7 9 11 (SPEC-ORD-1).
Definition Letter.h:58
constexpr Letter MoveLetter(Letter letter, int32_t steps) noexcept
Moves letter by steps diatonic letters, wrapping around the octave: MoveLetter(Letter::B,...
Definition Letter.h:69
constexpr uint8_t DiatonicIndex(Letter letter) noexcept
Returns the diatonic index of letter: C = 0 ... B = 6.
Definition Letter.h:49
Letter
Diatonic letter name.
Definition Letter.h:22
Music Composition Core public namespace.
Definition Version.h:4