duncanmalashock/elm-music-theory/1.0.0

Music.PitchClass

A pitch class is like a pitch, but with no octave specified. E.g. the pitch class "B♭".

type alias PitchClass =
PitchClass

Helpers

fromPitch : Pitch -> PitchClass

Convert a Pitch to a PitchClass.

fromPitch Pitch.c4 == c
areEnharmonicEquivalents : PitchClass -> PitchClass -> Bool

Check whether two pitch classes are enharmonic equivalents of each other. Enharmonic equivalents are two pitch classes with different names but the same sound:

areEnharmonicEquivalents cFlat b == True
letter : PitchClass -> Letter

Get the letter name of a pitch class:

letter fSharp =
    F
type Letter
= A
| B
| C
| D
| E
| F
| G
accidentals : PitchClass -> Int

Get the accidentals of a pitch class.

Sharps are positive:

accidentals fSharp =
    1

Flats are negative:

accidentals aFlat =
    -1

Naturals are zero:

accidentals c =
    0

Conversion

toString : PitchClass -> String

Get a pitch class's letter name and accidental:

toString bFlat == "B♭"

Constructors

c : PitchClass
cSharp : PitchClass
d : PitchClass
dSharp : PitchClass
dFlat : PitchClass
e : PitchClass
eFlat : PitchClass
f : PitchClass
fSharp : PitchClass
g : PitchClass
gSharp : PitchClass
gFlat : PitchClass
a : PitchClass
aSharp : PitchClass
aFlat : PitchClass
b : PitchClass
bFlat : PitchClass

Less common pitch classes

These are used less frequently in music. Most likely you want a pitch from the previous section.

Enharmonic equivalents of natural notes

cFlat : PitchClass
eSharp : PitchClass
fFlat : PitchClass
bSharp : PitchClass

Pitch classes with double accidentals

cDoubleSharp : PitchClass
cDoubleFlat : PitchClass
dDoubleSharp : PitchClass
dDoubleFlat : PitchClass
eDoubleSharp : PitchClass
eDoubleFlat : PitchClass
fDoubleSharp : PitchClass
fDoubleFlat : PitchClass
gDoubleSharp : PitchClass
gDoubleFlat : PitchClass
aDoubleSharp : PitchClass
aDoubleFlat : PitchClass
bDoubleSharp : PitchClass
bDoubleFlat : PitchClass