music-preludes-1.7.2: src/Music/Prelude/Basic.hs
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE TypeFamilies #-}
------------------------------------------------------------------------------------
-- |
-- Copyright : (c) Hans Hoglund 2012
--
-- License : BSD-style
--
-- Maintainer : hans@hanshoglund.se
-- Stability : experimental
-- Portability : non-portable (TF,GNTD)
--
-- A basic music representation.
--
-------------------------------------------------------------------------------------
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,
-- BasicPitch,
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]))))))))
-- type BasicDynamics = Music.Dynamics.Dynamics
-- type BasicArticulation = Music.Articulation.Articulation
-- type BasicPitch = Music.Pitch.Pitch
open = openLilypond . asScore
play = error "Not implemented: play"
openAndPlay x = open x >> play x