Skip to main content
See: /MRS-Specification-RFC#4-mrs-s-the-canonical-storage-format

Metadata Section

(meta
  :title "Symphony No. 5 in C Minor"
  :subtitle "Fate Knocking at the Door"
  :composers ["Ludwig van Beethoven"]
  :copyright "Public Domain"
  :created "1808"
  :modified "2026-01-17T10:30:00Z"
  
  ; Score-wide defaults
  :key C :mode minor
  :time 2/4
  :tempo 108
  :tempo-text "Allegro con brio")

Required Fields

FieldTypeDescription
:titlestringPrimary title of the work

Optional Fields

FieldTypeDescription
:subtitlestringSecondary title
:composers[string]List of composer names
:arrangers[string]List of arranger names
:copyrightstringCopyright notice
:keypitch-classDefault key
:modekeywordmajor, minor, dorian, etc.
:timefractionDefault time signature
:tempointegerDefault tempo in BPM

Players Section

Players represent performers who may play multiple instruments (doubling).
(players
  (player woodwind-2
    :name "Flute 2 / Piccolo"
    :instruments [flute-2 piccolo]
    :default flute-2)
  
  (player clarinet-1
    :name "Clarinet 1"
    :instruments [clarinet-bb clarinet-a]
    :default clarinet-bb)
  
  (player percussion-1
    :name "Percussion 1"
    :instruments [snare timpani triangle]
    :default snare))

Player Attributes

AttributeRequiredDescription
:nameYESDisplay name
:instrumentsYESList of instrument IDs this player uses
:defaultYESDefault/starting instrument

Instruments Section

Instruments are specific sound sources with fixed transposition and range.
(instruments
  (instrument flute-1
    :name "Flute"
    :abbr "Fl. 1"
    :family woodwinds
    :staves [treble]
    :transposition none
    :range [C4 D7])
  
  (instrument piccolo
    :name "Piccolo"
    :abbr "Picc."
    :family woodwinds
    :staves [treble]
    :transposition (up P8)
    :range [D5 C8])
  
  (instrument clarinet-bb
    :name "Clarinet in Bb"
    :abbr "Cl."
    :family woodwinds
    :staves [treble]
    :transposition (down M2)
    :range [E3 C7])
  
  (instrument piano
    :name "Piano"
    :abbr "Pno."
    :family keyboards
    :staves [treble bass]
    :transposition none
    :range [A0 C8]
    :staff-connect brace))

Instrument Attributes

AttributeRequiredTypeDescription
:nameYESstringFull display name
:abbrYESstringAbbreviated name
:familyYESkeywordInstrument family
:stavesYES[clef]List of staff clefs
:transpositionYESinterval/noneTransposition
:rangeNO[pitch pitch]Playable range
:staff-connectNOkeywordbrace, bracket, line

Instrument Families

woodwinds brass strings percussion keyboards voices choir other

Clef Values

treble      ; G clef, line 2
bass        ; F clef, line 4  
alto        ; C clef, line 3
tenor       ; C clef, line 4
treble-8va  ; G clef, octave up
treble-8vb  ; G clef, octave down
bass-8vb    ; F clef, octave down
percussion  ; Neutral clef
tab-6       ; 6-string tablature

Transposition Specification

none                  ; Concert pitch
(up P8)               ; Sounds octave higher (piccolo)
(down M2)             ; Sounds major 2nd lower (Bb clarinet)
(down m3)             ; Sounds minor 3rd lower (A clarinet)
(down P5)             ; Sounds perfect 5th lower (English horn)

Percussion Kits

(instrument drum-kit
  :name "Drum Kit"
  :abbr "Dr."
  :family percussion
  :staves [percussion]
  :transposition none
  :kit
    ((kick :line -2 :notehead normal)
     (snare :line 0 :notehead normal)
     (hi-hat :line 2 :notehead x)
     (crash :line 4 :notehead x-circle)))

Kit Item Attributes

AttributeDescription
:lineStaff line position
:noteheadNotehead type (normal, x, x-circle, diamond, etc.)

Instrument Changes

When a player switches instruments mid-score:
(measure :id #uuid "..." :number 45
  (woodwind-2
    (instrument-change :to piccolo :beat 0)
    (v1
      (: 0 D6.q :id #uuid "...")
      ...)))
The orchestrator handles transposition changes automatically.