module Temporal.Music.Notation ( -- * Introduction -- | This library provides two kinds of musical structures. First is -- general 'Score' representation. It tells how to combine musical -- things together and how they can be transformed. Second is just -- the oposite side of first one, it stands for -- very basic musical structures like 'Pitch', 'Scale', 'Tone', 'Volume'. -- -- So you can see huge gap inbetween the two. For example this -- module doesn't exports any -- specific datatype for notes. Though there are data types 'Note' -- and 'Drum' defined in "Temporal.Music.Notation.Note" module -- that can be seen as example of usage of basic data types. -- It's up to you to fill in between. -- But this gap is not just gap it's gap with bridges. -- Pch\/Tone\/Vol Functors are those ropes that tie together those two -- levels. To use all basic structures transformation in your specific -- note-representation you only need to tell how they are wrapped, i.e. -- provide instances of your note-representation for basic functors. -- And then you can use the bridges. -- -- For every XxxFunctor there is general instance for 'Score'. -- -- For example -- -- >instance PchFunctor a => PchFunctor (Score c a) where (...) -- -- It implies that transformations like -- 'quiet', 'step' or 'lower' can act on bunch of notes packed in -- 'Score' if notes are inside 'PchFunctor'. -- -- There are two preliminary steps for using this library -- -- * find note representation that suits you -- -- * if it contains basic musical structures, define corresponding -- XxxFunctor instances -- -- And then let it sound in 'Score'. -- -- Examples can be found in package source folder. module Temporal.Music.Notation.Volume, module Temporal.Music.Notation.Pitch, module Temporal.Music.Notation.Score, module Temporal.Music.Notation.Seg ) where import Temporal.Music.Notation.Volume import Temporal.Music.Notation.Pitch import Temporal.Music.Notation.Score import Temporal.Music.Notation.Seg