Skip to main content
See: /MRS-Specification-RFC#4-6-measures-section and /MRS-Specification-RFC#4-8-event-syntax

Measure Structure

Every measure has both UUID identity and display number:
(measure 
  :id #uuid "018c3f40-002d-7890-abcd-ef1234567890"  ; Stable identity
  :number 45                                         ; Display property
  :beat-start 487+1/4                                ; Absolute position
  :time 4/4
  :key C :mode minor
  
  (violin-1
    (v1
      (: 0 G5.q :dyn f :id #uuid "018c3f2a-..." :at 487+1/4)
      (: 1 A5.e :id #uuid "018c3f2b-..." :at 488+1/4)
      ...)))

Required Measure Attributes

AttributeDescription
:idStable UUIDv7 identifier
:numberDisplay number (1-indexed)
:beat-startAbsolute beat position

Optional Measure Attributes

AttributeDescription
:sec-startAbsolute seconds (required if tempo automation)
:timeTime signature change
:key, :modeKey signature change
:tempoTempo change
:rehearsalRehearsal mark

Event Syntax

(: <beat> <pitch-expr> <properties>*)
Every event MUST have :id and :at:
(: 0 C5.q 
  :id #uuid "018c3f2a-1234-7890-abcd-ef1234567890"
  :at 487+1/4
  :dyn p)

Pitch Expression

C4.q        ; C4 quarter note
Eb5.h       ; E-flat 5 half note
[C4 E4 G4].q  ; C major triad
r.q         ; Quarter rest

Duration Codes

CodeDurationBeats
wWhole4
hHalf2
qQuarter1
eEighth0.5
sSixteenth0.25
Add . for dotted, .. for double-dotted.

Event Properties

PropertyDescription
:idStable UUIDv7 identifier (REQUIRED)
:atAbsolute beat position (REQUIRED)
:dynDynamic (pp, p, mp, mf, f, ff, etc.)
:artArticulation (staccato, tenuto, etc.)
:ornOrnament (trill, mordent, etc.)
:techTechnique (pizz, arco, etc.)