Skip to content

neumaRk — Markers

1. What is a Marker

A marker is a non-musical structural element that identifies a significant point in the flow of a piece. Markers do not refer to a sounding event, have no musical duration of their own, and do not directly affect musical content (notes, chords, rhythms). They are used to:

  • segment a piece into logical sections;
  • facilitate human reading and orientation;
  • provide semantic anchors for rendering, navigation, and playback;
  • support musical forms, repetitions, and references.

Markers are part of the musical datapack, but belong to the domain of structure, not musical notation.

Semantic scope

A marker semantically belongs to a measure.

It identifies, labels, or qualifies a measure as a structural unit of the piece and is not tied to musical flow or execution order.


2. Markers line

Markers are contained in a markers line, which may be:

  • explicitly declared using the M) line marker;
  • implicitly deduced from the line content.

2.1 Position within the datapack

  • If present, the markers line is the first line of the datapack.
  • It is optional.
  • Only one markers line may appear per datapack.

Best practice: place measure decorators (voltas, segno, coda, etc.) in the markers line as well, in order to concentrate formal structure in a single location.


3. Marker syntax

A marker is represented by text enclosed in square brackets:

[Intro]
[A]
[Bridge]

3.1 Temporal anchoring

  • A marker refers to the beginning of the measure in which it appears.
  • If preceded by a barline, it must be separated from it by at least one space, to avoid ambiguity with volta decorators.

Valid example:

| [A]

Invalid example:

|[A]   // ambiguous: could be interpreted as a volta

4. Validity rules

A markers line is valid if it:

  • contains only markers enclosed in square brackets and spaces;
  • does not contain patterns that can be interpreted as notes or chords;
  • respects the separation rules from barlines.

If these rules are violated:

  • the line is not recognized as a markers line;
  • datapack parsing continues according to standard deduction rules.