-- | Some common musical intervals written as @'PitchFactorDiagram'@s module Boopadoop.Interval where import Boopadoop.Diagram -- | Interval of one octave, ratio is 2. octave :: PitchFactorDiagram octave = Factors [1] -- | Interval of a perfect fifth 3:2 perfectFifth :: PitchFactorDiagram perfectFifth = normalizePFD $ Factors [0,1] -- | Interval of a major third 5:4 majorThird :: PitchFactorDiagram majorThird = normalizePFD $ Factors [0,0,1] -- | Interval 7:4 mysterySeven :: PitchFactorDiagram mysterySeven = normalizePFD $ Factors [0,0,0,1] -- | Interval of a major second 9:8 majorSecond :: PitchFactorDiagram majorSecond = normalizePFD $ Factors [0,2] -- | Interval 25:16 mystery25 :: PitchFactorDiagram mystery25 = normalizePFD $ Factors [0,0,2] -- | Interval 199:200. Should be mostly consonant to your ear but has non-small PFD: -- @ -- [-3,0,-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1] -- @ counterExample :: PitchFactorDiagram counterExample = Factors $ [-3,0,-2] ++ take 42 (repeat 0) ++ [1]