temporal-music-notation-0.1.3: music notation





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.