Metadata Reference
Gen documents can include YAML metadata at the top, enclosed in --- markers.
Basic Structure
---title: My Songcomposer: Artist Nametime-signature: 4/4key-signature: Gtempo: 120---
G A B ^CAll Metadata Fields
| Field | Type | Default | Description |
|---|---|---|---|
title | String | (none) | Song title |
composer | String | (none) | Composer/artist name |
time-signature | String | 4/4 | Time signature |
key-signature | String | C | Key signature |
tempo | String | 120 | Tempo in BPM with optional rhythm |
swing | String | (none) | Swing feel (/ or //) |
written-notation | String | concert | Notation mode for multi-part |
title
The song title, displayed in the score header:
title: Ode to Joycomposer
The composer or artist name:
composer: Ludwig van Beethoventime-signature
The time signature as a fraction:
time-signature: 4/4time-signature: 3/4time-signature: 6/8time-signature: 2/2time-signature: 5/4time-signature: 7/8Default: 4/4
key-signature
The key signature. Accepts key names or sharp/flat counts.
Major Keys
key-signature: C # No sharps/flatskey-signature: G # 1 sharpkey-signature: D # 2 sharpskey-signature: A # 3 sharpskey-signature: E # 4 sharpskey-signature: B # 5 sharpskey-signature: F# # 6 sharpskey-signature: C# # 7 sharpskey-signature: F # 1 flatkey-signature: Bb # 2 flatskey-signature: Eb # 3 flatskey-signature: Ab # 4 flatskey-signature: Db # 5 flatskey-signature: Gb # 6 flatskey-signature: Cb # 7 flatsMinor Keys
Add m suffix:
key-signature: Am # A minor (no sharps/flats)key-signature: Em # E minor (1 sharp)key-signature: Bm # B minor (2 sharps)key-signature: F#m # F# minor (3 sharps)key-signature: Dm # D minor (1 flat)key-signature: Gm # G minor (2 flats)key-signature: Cm # C minor (3 flats)By Sharp/Flat Count
key-signature: "#" # 1 sharpkey-signature: "##" # 2 sharpskey-signature: "###" # 3 sharpskey-signature: bb # 2 flatskey-signature: bbb # 3 flatsNote: Use quotes for values starting with # (YAML comment character).
Default: C
tempo
Tempo in BPM, optionally specifying which note duration gets the beat.
Basic Tempo
tempo: 120 # Quarter note = 120 BPMWith Rhythm Modifier
The rhythm modifier goes after the BPM:
tempo: 120 # Quarter note = 120 (default)tempo: 160p # Half note = 160 BPM (quarter = 320)tempo: 180/ # Eighth note = 180 BPM (quarter = 90)tempo: 60o # Whole note = 60 BPM (quarter = 240)Dotted Note Tempos
Use quotes for dotted tempos (contains special character):
tempo: "120*" # Dotted quarter = 120 BPMtempo: "80p*" # Dotted half = 80 BPMRhythm Modifier Reference
| Modifier | Note Value |
|---|---|
| (none) | Quarter |
p | Half |
o | Whole |
/ | Eighth |
* | Dotted (add to others) |
Default: 120 (quarter note at 120 BPM)
swing
Adds swing feel to the playback and notation.
swing: / # Swing eighth notes (jazz)swing: // # Swing sixteenth notes (funk)Swing Eighth Notes
Standard jazz swing where pairs of eighth notes are played with a triplet feel:
swing: /Swing Sixteenth Notes
Funk/fusion style where sixteenth notes swing:
swing: //Default: (none, straight feel)
written-notation
Controls how notes are interpreted for transposing instruments in multi-part scores.
Concert Mode
written-notation: concertNotes are in concert pitch. When you write C for a Bb trumpet, it sounds as C and will be written as D on the trumpet part.
This is the default and recommended for most use cases.
Transposed Mode
written-notation: transposedNotes are as written on the part. When you write C for a Bb trumpet, that IS the C on the trumpet part (which sounds as Bb).
Use this when transcribing from conductor’s scores where parts are already transposed.
Default: concert
Complete Example
---title: Jazz Balladcomposer: Example Artisttime-signature: 4/4key-signature: Bbtempo: "72*"swing: /---
{Bbmaj7}:Bbp {Cm7}:Cp{Dm7}:Dp {G7}:GpMulti-Part Example
---title: Brass Ensemblecomposer: Exampletime-signature: 4/4key-signature: Ftempo: 100written-notation: concert---
@part:trumpet ^Fp ^Ap@part:french-horn Cp Ep@part:trombone Fp ApYAML Tips
-
Quotes: Use quotes for values with special characters:
key-signature: "F#" # Sharp is a YAML comment chartempo: "120*" # Asterisk needs quoting -
No quotes needed for simple values:
title: My Songtempo: 120key-signature: G -
Colons in values need quotes:
title: "Song: Part 1"