# 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 like1:/V1:/C:,L:for lead-note tokens, andB: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:orB: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
- Use consistent section names like Verse, Chorus, Bridge.
- Keep bar separators (
|) balanced and explicit. - Define meter early unless section-level overrides are required.
- Use repeated
L:orB:lines when a bar needs multiple simultaneous note rows; rows render in source order.