{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} ------------------------------------------------------------------------------------ -- | -- Copyright : (c) Hans Hoglund 2012 -- -- License : BSD-style -- -- Maintainer : hans@hanshoglund.se -- Stability : experimental -- Portability : non-portable (TF,GNTD) -- -- A basic music representation for string quartet. -- ------------------------------------------------------------------------------------- module Music.Prelude.StringQuartet ( module Music.Score, StringQuartetPart, Note, asScore ) where import Data.AffineSpace.Point import Data.Typeable import Music.Dynamics.Literal import qualified Music.Lilypond as Lilypond import qualified Music.MusicXml.Simple as Xml import Music.Pitch import Music.Score hiding (Interval, Note, Pitch) import qualified Music.Score as Score asScore :: Score Note -> Score Note asScore = id data StringQuartetPart = Vl1 | Vl2 | Vla | Vc deriving (Eq, Ord, Enum, Typeable) instance Show StringQuartetPart where show Vl1 = "Violin I" show Vl2 = "Violin II" show Vla = "Viola" show Vc = "Cello" type Note = (PartT StringQuartetPart (TieT (TremoloT (HarmonicT (SlideT (DynamicT (ArticulationT (TextT Integer))))))))