ABC Key Signatures and their associated scales and details of signature. The individual (sharp or flat) keys that comprise each key signature across all the modes in western music.

#getKeySig Source

getKeySig :: AbcTune -> Maybe ModifiedKeySignature

Get the key signature (if any) from the tune. For more flexibility, you should use the _ModifiedKeySignature optic.

#getKeyProps Source

getKeyProps :: AbcTune -> AmorphousProperties

Get the key signature properties (if any) from the tune.

#keySet Source

keySet :: KeySignature -> KeySet

The set of keys (pitches) that comprise the key signature.

#inKeySet Source

inKeySet :: Pitch -> KeySet -> Boolean

Is the pitch is in the KeySet?

#modifiedKeySet Source

modifiedKeySet :: ModifiedKeySignature -> KeySet

The set of keys (pitch classes with accidental) that comprise a modified key signature (i.e. those signatures that don't represent classical western modes such as, for example, Klezmer or Balkan music.)

#getKeySet Source

getKeySet :: AbcTune -> KeySet

Get the set of key accidentals from the (possibly modified) key (if there is one in the tune).

#notesInChromaticScale Source

notesInChromaticScale :: Int

the number of notes in a chromatic scale (12)

#diatonicScale Source

diatonicScale :: KeySignature -> KeySet

The set of keys (pitches) that comprise the diatonic scale governed by the key signature.

#defaultKey Source

defaultKey :: ModifiedKeySignature

The default key is C Major (with no accidental modifiers or other properties)

#isCOrSharpKey Source

isCOrSharpKey :: KeySignature -> Boolean

Is the key signature a sharp key or else a simple C Major key?

#normaliseModalKey Source

normaliseModalKey :: KeySignature -> KeySignature

normalise a modal key signature to its equivalent major key signature

#transposeKeySignatureBy Source

transposeKeySignatureBy :: Int -> ModifiedKeySignature -> ModifiedKeySignature

Transpose a key signature by a given distance.

#pitchNumbers Source

pitchNumbers :: List (Tuple Pitch Int)

a relationship between a Pitch and a note number i.e. C is 0, C Sharp is 1 B is 11 etc. Note that B# and B# go above the 12 notes in the scale because they effectively jump octave

#pitchNumber Source

pitchNumber :: Pitch -> Int

the pitch number is the position of the pitch in the chromatic scale starting at C Natural = 0 (i.e. C is 0, C Sharp is 1 B is 11 etc.)