music-pitch-1.3: src/Music/Pitch/Relative/Number.hs
{-# LANGUAGE GeneralizedNewtypeDeriving, StandaloneDeriving #-}
module Music.Pitch.Relative.Number (
-- ** Number
Number,
unison,
prime,
second,
third,
fourth,
fifth,
sixth,
seventh,
octave,
-- ninth,
-- tenth,
-- twelfth,
-- thirteenth,
-- fourteenth,
-- duodecim,
) where
-- |
-- The number portion of an interval (i.e. second, third, etc).
--
-- Note that the interval number is always one step larger than number of steps spanned by
-- the interval (i.e. a third spans two diatonic steps). Thus 'number' does not distribute
-- over addition:
--
-- > number (a + b) = number a + number b - 1
--
newtype Number = Number { getNumber :: Integer }
deriving (Eq, Ord, Num, Enum, Real, Integral)
instance Show Number where { show = show . getNumber }
unison :: Number
prime :: Number
second :: Number
third :: Number
fourth :: Number
fifth :: Number
sixth :: Number
seventh :: Number
octave :: Number
unison = 1
prime = 1
second = 2
third = 3
fourth = 4
fifth = 5
sixth = 6
seventh = 7
octave = 8