-
Notifications
You must be signed in to change notification settings - Fork 27
YAML File Format
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