Skip to main content
MRS uses a unified semantic model expressed through two formats: MRS-S (storage) and MRS-Ops (mutation). See: /MRS-Specification-RFC#11-data-model

Core Type Hierarchy

Player-Instrument-Staff Model

MRS uses a three-level model for professional orchestration semantics.

Player

A Player represents a performer who may play multiple instruments (doubling).

Instrument

An Instrument is a specific sound source with fixed transposition and range.

Instrument Families

Measure

Measure Identity

  • :id — Stable UUIDv7, survives structural changes
  • :number — Display only, can change on insert/delete
  • :beat-start — Orchestrator-computed, absolute position

Attribute Inheritance

Event

Event Position

Events have structural position (beat within measure). The orchestrator computes absolute position:
In MRS-S storage, :at is optional (can be computed). In MRS-Ops, agents provide :beat; orchestrator computes :at.

Pitch Expression

Span

Span Types

Span Immutability

Once created, span endpoints (:from, :to, :events) are immutable. To change endpoints, delete the span and create a new one.

Identifier Rules

Rational Numbers

All temporal positions use exact rationals:
Implementations MUST treat rationals as exact; no floating-point approximation.

Voices and Layers

Voices

Independent melodic/rhythmic streams within an instrument:
  • v1 through v4 for single-staff instruments
  • :rh/:lh for keyboard instruments (then v1, v2 within each)

Layers

Same-rhythm sub-structure within a voice:

HarmonyPlan Layer

The HarmonyPlan is an embedded optional layer for chord symbols and harmonic structure:
This enables:
  • Composing harmony before notes
  • Validating notes against harmony
  • Extracting harmonic context for agents