module Music.Prelude.Basic (
module Music.Pitch,
module Music.Dynamics,
module Music.Articulation,
module Music.Parts,
module Music.Score,
module Control.Monad.Plus,
module Control.Lens.Operators,
BasicNote,
asScore,
asVoice,
asTrack,
asBasicNote,
open,
play,
openAndPlay
) where
import Data.Default
import Data.Typeable
import Music.Pitch hiding (Fifths, Note)
import qualified Music.Pitch
import Music.Dynamics
import Music.Articulation
import Music.Parts hiding (Part)
import Music.Score hiding (Pitch, Dynamics, Articulation, Interval)
import Control.Lens.Operators hiding ((<.>), (<|), (|>))
import Control.Monad.Plus
import Music.Prelude.Instances ()
asBasicNote :: BasicNote -> BasicNote
asBasicNote = id
asScore :: Score BasicNote -> Score BasicNote
asScore = id
asVoice :: Voice BasicNote -> Voice BasicNote
asVoice = id
asTrack :: Track BasicNote -> Track BasicNote
asTrack = id
type BasicNote = (PartT BasicPart
(TextT
(TieT
(SlideT
(TremoloT
(HarmonicT
(ArticulationT Articulation
(DynamicT Dynamics
[Behavior Pitch]))))))))
open = openLilypond . asScore
play = error "Not implemented: play"
openAndPlay x = open x >> play x