Portability | portable |
---|---|
Stability | experimental |
Maintainer | hans@hanshoglund.se |
Safe Haskell | Safe-Inferred |
Provides overloaded pitch literals.
- class IsPitch a where
- newtype PitchL = PitchL {}
- cs'' :: IsPitch a => a
- ds'' :: IsPitch a => a
- es'' :: IsPitch a => a
- fs'' :: IsPitch a => a
- gs'' :: IsPitch a => a
- as'' :: IsPitch a => a
- bs'' :: IsPitch a => a
- c'' :: IsPitch a => a
- d'' :: IsPitch a => a
- e'' :: IsPitch a => a
- f'' :: IsPitch a => a
- g'' :: IsPitch a => a
- a'' :: IsPitch a => a
- b'' :: IsPitch a => a
- cb'' :: IsPitch a => a
- db'' :: IsPitch a => a
- eb'' :: IsPitch a => a
- fb'' :: IsPitch a => a
- gb'' :: IsPitch a => a
- ab'' :: IsPitch a => a
- bb'' :: IsPitch a => a
- cs' :: IsPitch a => a
- ds' :: IsPitch a => a
- es' :: IsPitch a => a
- fs' :: IsPitch a => a
- gs' :: IsPitch a => a
- as' :: IsPitch a => a
- bs' :: IsPitch a => a
- c' :: IsPitch a => a
- d' :: IsPitch a => a
- e' :: IsPitch a => a
- f' :: IsPitch a => a
- g' :: IsPitch a => a
- a' :: IsPitch a => a
- b' :: IsPitch a => a
- cb' :: IsPitch a => a
- db' :: IsPitch a => a
- eb' :: IsPitch a => a
- fb' :: IsPitch a => a
- gb' :: IsPitch a => a
- ab' :: IsPitch a => a
- bb' :: IsPitch a => a
- cs :: IsPitch a => a
- ds :: IsPitch a => a
- es :: IsPitch a => a
- fs :: IsPitch a => a
- gs :: IsPitch a => a
- as :: IsPitch a => a
- bs :: IsPitch a => a
- c :: IsPitch a => a
- d :: IsPitch a => a
- e :: IsPitch a => a
- f :: IsPitch a => a
- g :: IsPitch a => a
- a :: IsPitch a => a
- b :: IsPitch a => a
- cb :: IsPitch a => a
- db :: IsPitch a => a
- eb :: IsPitch a => a
- fb :: IsPitch a => a
- gb :: IsPitch a => a
- ab :: IsPitch a => a
- bb :: IsPitch a => a
- cs_ :: IsPitch a => a
- ds_ :: IsPitch a => a
- es_ :: IsPitch a => a
- fs_ :: IsPitch a => a
- gs_ :: IsPitch a => a
- as_ :: IsPitch a => a
- bs_ :: IsPitch a => a
- c_ :: IsPitch a => a
- d_ :: IsPitch a => a
- e_ :: IsPitch a => a
- f_ :: IsPitch a => a
- g_ :: IsPitch a => a
- a_ :: IsPitch a => a
- b_ :: IsPitch a => a
- cb_ :: IsPitch a => a
- db_ :: IsPitch a => a
- eb_ :: IsPitch a => a
- fb_ :: IsPitch a => a
- gb_ :: IsPitch a => a
- ab_ :: IsPitch a => a
- bb_ :: IsPitch a => a
- cs__ :: IsPitch a => a
- ds__ :: IsPitch a => a
- es__ :: IsPitch a => a
- fs__ :: IsPitch a => a
- gs__ :: IsPitch a => a
- as__ :: IsPitch a => a
- bs__ :: IsPitch a => a
- c__ :: IsPitch a => a
- d__ :: IsPitch a => a
- e__ :: IsPitch a => a
- f__ :: IsPitch a => a
- g__ :: IsPitch a => a
- a__ :: IsPitch a => a
- b__ :: IsPitch a => a
- cb__ :: IsPitch a => a
- db__ :: IsPitch a => a
- eb__ :: IsPitch a => a
- fb__ :: IsPitch a => a
- gb__ :: IsPitch a => a
- ab__ :: IsPitch a => a
- bb__ :: IsPitch a => a
Documentation
The PitchL
types is used to encode a pitch literal. You don't need to
think about this type unless you are implementing IsPitch
.
It is defined as (class, alteration, octave)
, where
-
class
is a pitch class number in[0..6]
, starting from C. -
alteration
is the number of semitones, i.e. 0 is natural, 1 for sharp 2 for double sharp, -1 for flat and -2 for double flat. Alteration is inMaybe
because some pitch representations differ between explicit and explicit accidentals, i.e. a diatonic pitch type may assume(0,Nothing,4)
to mean C sharp rather than C. -
octave
is octave number in scientific pitch notation.
Middle C is represented by the pitch literal (0, Nothing, 4)
.