This library provides two kinds of musical structures. First is
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
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
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
instance PchFunctor a => PchFunctor (Score c a) where (...)
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
Examples can be found in package source folder.