Module Music.Phrase

Music phrasing.

TODO. Little of that is supported at the moment, see Phrase.attr.

type loudness = [
| `Ppp
| `Pp
| `P
| `Mp
| `Mf
| `F
| `Ff
| `Fff
| `Volume of int(*

in [0;127]

*)
]

The type for loudness. Either relative markings or an absolute volume value.

XXX. For now the default performance interprets relative marking as absolute volume values as given in the diagram here.

type dynamic = [
| `Accent of Q.t
| `Crescendo of Q.t
| `Diminuendo of Q.t
| `Loudness of loudness
]
type tempo = [
| `Ritardando of Q.t
| `Accelerando of Q.t
]
type articulation = [
| `Staccato of Q.t(*

Duration multiplier

*)
| `Legato of Q.t(*

Duration mutiplier.

*)
| `Slurred of Q.t(*

Duration mutiplier.

*)
| `Tenuto
| `Marcato
| `Pedal
| `Fermata
| `Fermata_down
| `Breath
| `Down_bow
| `Up_bow
| `Harmonic
| `Pizzicato
| `Left_pizz
| `Bartok_pizz
| `Swell
| `Wedge
| `Thumb
| `Stopped
]
type note_head = [
| `Art_harmonic
| `Diamond
| `None
| `Slash
| `Square
| `Tremolo
| `Triangle
| `X
]
type ornament = [
| `Trill
| `Mordent
| `Inv_mordent
| `Double_mordent
| `Turn
| `Trilled_turn
| `Short_trill
| `Arpeggio
| `Arpeggio_up
| `Arpeggio_down
| `Instruction of string
| `Head of note_head
| `Diatonic_trans of int
]
type attr = [
| `Dyn of dynamic(*

Implemented: only `Loudness

*)
| `Tempo of tempo(*

Not implemented.

*)
| `Art of articulation(*

Implemented: only `Staccato, `Legato and `Slurred.

*)
| `Orn of ornament(*

Not implemented.

*)
]
type t = attr list

The type for phrases.