HarmTrace-1.0: src/HarmTrace/Models/Jazz/Main.hs
module HarmTrace.Models.Jazz.Main (
pJazz
, module HarmTrace.Models.Jazz.Model
) where
-- Parser stuff
import Text.ParserCombinators.UU
-- Music stuff
import HarmTrace.Base.MusicRep
import HarmTrace.Models.Parser
import HarmTrace.Models.Jazz.Model hiding (PD,PT)
import HarmTrace.Models.Jazz.Instances ()
--------------------------------------------------------------------------------
-- From tokens to structured music pieces
--------------------------------------------------------------------------------
pPieceMaj, pPieceMin :: PMusic [Piece]
pPieceMaj = map Piece <$> amb (parseG :: PMusic [Phrase MajMode])
pPieceMin = map Piece <$> amb (parseG :: PMusic [Phrase MinMode])
pJazz :: Key -> PMusic [Piece]
pJazz (Key _ MajMode) = pPieceMaj
pJazz (Key _ MinMode) = pPieceMin