Back to docs home

# OBOL Documentation

How to structure songs in One-Bar-One-Line (OBOL) format for Music Notes.

Core Concepts

  • OBOL is section-based and bar-oriented.
  • Bars contain beat slots and chord tokens.
  • Meter controls beat-slot count (for example 4/4, 3/4, 6/8).
  • Use R: for rhythm/chords, lyric tracks like 1:/V1:/C:, L: for lead-note tokens, and B: for bass-note tokens.
  • Beats are separated by spaces across all tracks.
  • Fermata uses ASCII suffix ~ per beat token:

- R: C~ - G - adds fermata on rhythm beat 1 only

- L: ^3~ 4 5 6 adds fermata on lead beat 1 only

- Rhythm and Lead fermata marks are independent per track

  • Rhythm rest tokens (rendered as Unicode rest signs in song views):

- rw = whole rest (𝄻)

- rh = half rest (𝄼)

- rq = quarter rest (𝄽)

- re = eighth rest (𝄾)

- Rests can also carry fermata suffix, for example rq~

  • Rhythm keep-open timing marker:

- trailing 0 keeps timing open without rendering extra chord text (for example C0, DX0)

- DX0 renders as muted D (D with muted X) on the first half-beat, with the second half kept open

  • Lead and Bass dot notation uses ASCII prefixes:

- ^1 = over-dot note 1

- _1 = under-dot note 1

- 1 = plain note

  • Lead and Bass tracks use Numbered Musical Notation (Jianpu-style numbers).
  • Bass rows render as numbers by default. Song detail pages can switch Bass display to note names with bass=notes.
  • In Bass note-name mode, the renderer maps bass digits as key-relative major-scale degrees; for example, in key D, 1=D, 2=E, 3=G♭, 4=G, 5=A, 6=B, 7=D♭.
  • Lead/Bass timing in one beat-slot:

- one sub-part = quarter (no underline)

- two sub-parts = eighth (single underline in render)

- four sub-parts = sixteenth (double underline in render)

- three sub-parts = single underline (triplet-style grouping in one beat-slot)

- uncertain/unsupported subdivisions render without underline

- | splits one beat-slot into two half-beat groups with independent underline weights (for example 1|23; here 1 is eighth-style and 23 is sixteenth-style)

- for 6/8, treat each Lead beat-slot as dotted-quarter for timing interpretation

  • Lead/Bass rests and extensions:

- 0 = rest

- - = extend the previous sounding note by one beat-slot unit; rendered as · in Lead/Bass notation views

- 10 in one beat-slot means 1 eighth + 0 eighth

  • Lead/Bass bend notation uses ASCII operators inside an L: or B: token:

- 3>4 = bend from 3 to 4 on that beat

- 4<3 = release bend from 4 to 3

- For multi-beat bend holds, write the bend on the first beat and repeat the target note on following beats (for example 3>4 4 4)

- Optional slur markers ( ) can visually group sustained bend phrases across beats

Example


{Key: F}
{BPM: 125}
{Time: 4/4}

{Verse}
R: Dm - C -
1: ma ma ma ma
L: ^1 _2 3 4
B: 5 6 7 1
R: F
1: la la la la
L: 5 6 ^7 _1
B: 1 - 5 -
R: C
1: bend and hold now
L: (3>4 4 4) 4<3
B: (5 5 5) 1
R: C~ - G -
1: hold this then move
L: ^3~ 4 5 6
R: rw rh rq re~
1: rest whole half quarter
L: 10 20 30 40
L: 1234 5670 1111 0000
L: 1 23 4567 1|23
L: 1 - - -
B: ^5 _6 7 1

Tips

  1. Use consistent section names like Verse, Chorus, Bridge.
  2. Keep bar separators (|) balanced and explicit.
  3. Define meter early unless section-level overrides are required.
  4. Use repeated L: or B: lines when a bar needs multiple simultaneous note rows; rows render in source order.