Module Music.Phrase

Music phrasing.

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

type loudness = [
  1. | `Ppp
  2. | `Pp
  3. | `P
  4. | `Mp
  5. | `Mf
  6. | `F
  7. | `Ff
  8. | `Fff
  9. | `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 = [
  1. | `Accent of Q.t
  2. | `Crescendo of Q.t
  3. | `Diminuendo of Q.t
  4. | `Loudness of loudness
]
type tempo = [
  1. | `Ritardando of Q.t
  2. | `Accelerando of Q.t
]
type articulation = [
  1. | `Staccato of Q.t
    (*

    Duration multiplier

    *)
  2. | `Legato of Q.t
    (*

    Duration mutiplier.

    *)
  3. | `Slurred of Q.t
    (*

    Duration mutiplier.

    *)
  4. | `Tenuto
  5. | `Marcato
  6. | `Pedal
  7. | `Fermata
  8. | `Fermata_down
  9. | `Breath
  10. | `Down_bow
  11. | `Up_bow
  12. | `Harmonic
  13. | `Pizzicato
  14. | `Left_pizz
  15. | `Bartok_pizz
  16. | `Swell
  17. | `Wedge
  18. | `Thumb
  19. | `Stopped
]
type note_head = [
  1. | `Art_harmonic
  2. | `Diamond
  3. | `None
  4. | `Slash
  5. | `Square
  6. | `Tremolo
  7. | `Triangle
  8. | `X
]
type ornament = [
  1. | `Trill
  2. | `Mordent
  3. | `Inv_mordent
  4. | `Double_mordent
  5. | `Turn
  6. | `Trilled_turn
  7. | `Short_trill
  8. | `Arpeggio
  9. | `Arpeggio_up
  10. | `Arpeggio_down
  11. | `Instruction of string
  12. | `Head of note_head
  13. | `Diatonic_trans of int
]
type attr = [
  1. | `Dyn of dynamic
    (*

    Implemented: only `Loudness

    *)
  2. | `Tempo of tempo
    (*

    Not implemented.

    *)
  3. | `Art of articulation
    (*

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

    *)
  4. | `Orn of ornament
    (*

    Not implemented.

    *)
]
type t = attr list

The type for phrases.