Skip to content
Joel Strait edited this page Sep 9, 2017 · 4 revisions

The YAML file is essentially sheet music for the song. At the lowest level, a song has tracks. Each track consists of a rhythm played by a particular sound. An X means the sound should be triggered, a . represents a rest. Barlines, i.e. |, are optional, but can be used to make a rhythm easier to read. A rhythm can't start with a barline (for YAML reasons). They are ignored by Beats.

bass:  X...X...|X.X.X...|

A pattern is a collection of one or more tracks which play at the same time.

Verse:
  - bass:             X...X...X...X...
  - snare:            ..............X.
  - hh_closed:        X.XXX.XXX.X.X.X.
  - agogo:            ..............XX

Finally, a song consists of one or more patterns playing in sequence. The order that patterns play is called the flow.

Flow:
  - Verse:   x2
  - Chorus:  x4
  - Verse:   x2
  - Chorus:  x4

You can specify the sound file that should be used to play each track directly in the track name. Beats can use 8 and 16-bit wave files as sounds. Alternately, you can add a kit to the song, which lets you give friendlier labels to sound file paths. You can then use these labels in track names.

Kit:
  - bass:       sounds/808/01.wav
  - snare:      sounds/samples/snare/snare_57.wav
  - hh_closed:  "sounds/closed hihat.wav"
  - agogo:      sounds/percussion/other/agogo_high.wav
  - tom_high:   sounds/tom4.wav

Here's an example of what a full YAML song file looks like when you put everything together:

# Here is a comment
Song:
  Tempo: 120
  Flow:
    - Verse:   x2
    - Chorus:  x4
    - Verse:   x2
    - Chorus:  x4
  Kit:
    - bass:       sounds/808/01.wav
    - snare:      sounds/samples/snare/snare_57.wav
    - hh_closed:  "sounds/closed hihat.wav"
    - agogo:      sounds/percussion/other/agogo_high.wav
    - tom_high:   sounds/tom4.wav

Verse:
  - bass:             X...X...X...X...
  - snare:            ..............X.
  - hh_closed:        X.XXX.XXX.X.X.X.
  - agogo:            ..............XX

Chorus:
  - bass:             X...X...X...X...
  - snare:            ....X.......X...
  - hh_closed:        X.XXX.XXX.XX..X.
  - tom_high:         ...........X....
  - sounds/tom2.wav:  ..............X.    # Sound file directly in track name

Clone this wiki locally