Skip to content

Metadata Reference

Gen documents can include YAML metadata at the top, enclosed in --- markers.

Basic Structure

---
title: My Song
composer: Artist Name
time-signature: 4/4
key-signature: G
tempo: 120
---
G A B ^C

All Metadata Fields

FieldTypeDefaultDescription
titleString(none)Song title
composerString(none)Composer/artist name
time-signatureString4/4Time signature
key-signatureStringCKey signature
tempoString120Tempo in BPM with optional rhythm
swingString(none)Swing feel (/ or //)
written-notationStringconcertNotation mode for multi-part

title

The song title, displayed in the score header:

title: Ode to Joy

composer

The composer or artist name:

composer: Ludwig van Beethoven

time-signature

The time signature as a fraction:

time-signature: 4/4
time-signature: 3/4
time-signature: 6/8
time-signature: 2/2
time-signature: 5/4
time-signature: 7/8

Default: 4/4

key-signature

The key signature. Accepts key names or sharp/flat counts.

Major Keys

key-signature: C # No sharps/flats
key-signature: G # 1 sharp
key-signature: D # 2 sharps
key-signature: A # 3 sharps
key-signature: E # 4 sharps
key-signature: B # 5 sharps
key-signature: F# # 6 sharps
key-signature: C# # 7 sharps
key-signature: F # 1 flat
key-signature: Bb # 2 flats
key-signature: Eb # 3 flats
key-signature: Ab # 4 flats
key-signature: Db # 5 flats
key-signature: Gb # 6 flats
key-signature: Cb # 7 flats

Minor 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 sharp
key-signature: "##" # 2 sharps
key-signature: "###" # 3 sharps
key-signature: bb # 2 flats
key-signature: bbb # 3 flats

Note: 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 BPM

With 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 BPM
tempo: "80p*" # Dotted half = 80 BPM

Rhythm Modifier Reference

ModifierNote Value
(none)Quarter
pHalf
oWhole
/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: concert

Notes 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: transposed

Notes 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 Ballad
composer: Example Artist
time-signature: 4/4
key-signature: Bb
tempo: "72*"
swing: /
---
{Bbmaj7}:Bbp {Cm7}:Cp
{Dm7}:Dp {G7}:Gp

Multi-Part Example

---
title: Brass Ensemble
composer: Example
time-signature: 4/4
key-signature: F
tempo: 100
written-notation: concert
---
@part:trumpet ^Fp ^Ap
@part:french-horn Cp Ep
@part:trombone Fp Ap

YAML Tips

  1. Quotes: Use quotes for values with special characters:

    key-signature: "F#" # Sharp is a YAML comment char
    tempo: "120*" # Asterisk needs quoting
  2. No quotes needed for simple values:

    title: My Song
    tempo: 120
    key-signature: G
  3. Colons in values need quotes:

    title: "Song: Part 1"