temporal-music-notation-western-0.2.3: western music notation

Safe HaskellNone




Names specific to western music tradition


Basic functions

All basic functions (composition, time stretching, dynamic changing of volume and pitch etc, etc) live in this module.


Dynamics values form 9-level equally spaced grid. They are from quietest to loudest: piano pianissimo (ppp), pianissimo (pp), piano (p), mezzo piano (mp), mezzo forte (mf), forte (f), fortissimo (ff), forte fortissimo (fff). These modifiers change level relative to the current level. It means that

 piano . forte = id

Shortcuts to set dynamics level.


dim :: VolumeLike a => Accent -> Score a -> Score aSource


cresc :: VolumeLike a => Accent -> Score a -> Score aSource



rondo :: Score a -> Score a -> Score a -> Score aSource

rondo form

rondo a b c = line [a, b, a, c, a]

reprise :: Score a -> Score a -> Score a -> Score aSource

reprise form

reprise a b1 b2 = line [a, b1, a, b2]


Tempo terms specify not a rigid value but tempo range. So all terms are functions from relative power of term (it's value of type Double from 0 to 1) to some tempo value. Zero means the lowest value from tempo range and one means the highest value. To be used with bpm function.

lento :: Double -> TempoSource

very slow (40-60 bpm), like largo

largo :: Double -> TempoSource

very slow (40-60 bpm)

larghetto :: Double -> TempoSource

rather broadly (60-66 bpm)

grave :: Double -> TempoSource

slow and sloemn (60 - 66 bpm)

adagio :: Double -> TempoSource

slow and stately (literally at ease) (66-76 bpm)

adagietto :: Double -> TempoSource

rather slow (70-80 bpm)

andante :: Double -> TempoSource

at awalking pace (76-80 bpm)

andantino :: Double -> TempoSource

slightly faster then andante (80-100 bpm)

moderato :: Double -> TempoSource

moderately (101-110 bpm)

allegretto :: Double -> TempoSource

moderately fast (115-125 bpm)

allegro :: Double -> TempoSource

fast, at 'march tempo' (120-139 bpm)

vivace :: Double -> TempoSource

lively and fast (135-160 bpm)

presto :: Double -> TempoSource

very fast (168-200 bpm)

prestissimo :: Double -> TempoSource

extremely fast (200 - 230 bpm)