hmt-0.16: Haskell Music Theory

Safe HaskellSafe
LanguageHaskell98

Music.Theory.Tuning.Scala.Interval

Contents

Description

Parser for the intnam.par file.

Synopsis

Documentation

type INTERVAL = (Rational, String) Source #

Interval and name, ie. (3/2,"perfect fifth")

type INTNAM = (Int, [INTERVAL]) Source #

Length prefixed list of INTERVAL.

intnam_search_ratio :: INTNAM -> Rational -> Maybe INTERVAL Source #

Lookup ratio in INTNAM.

db <- load_intnam
intnam_search_ratio db (3/2) == Just (3/2,"perfect fifth")
intnam_search_ratio db (2/3) == Nothing
intnam_search_ratio db (4/3) == Just (4/3,"perfect fourth")
map (intnam_search_ratio db) [3/2,4/3,7/4,7/6,9/7,12/7,14/9]
intnam_search_ratio db (31/16) == Just (31/16,"31st harmonic")

intnam_search_description_ci :: INTNAM -> String -> [INTERVAL] Source #

Lookup interval name in INTNAM, ci = case-insensitive.

db <- load_intnam
intnam_search_description_ci db "didymus"

Parser

IO

load_intnam :: IO INTNAM Source #

parse_intnam of load_dist_file of "intnam.par".

intnam <- load_intnam
fst intnam == length (snd intnam)