Tutorial: Song Structure

Song Structure

Elements of a Song

This tutorial describes how Sections and Parts are used to create complex Songs.

The Song class is used to generate a song. The overall structure looks like this:

Song → time →
Section 1 scale
Harmony chords
Part 1  pitches rhythm
Part 2  pitches rhythm
Part 3  pitches rhythm
Section 2 scale
Harmony chords
Part 1  pitches rhythm
Part 2  pitches rhythm
Section 3 scale
Harmony chords
Part 1  pitches rhythm
Part 2  pitches rhythm
Part 3  pitches rhythm
Part 4  pitches rhythm

A Song consists of a list of sections that play one after the other sequentially in time.

Each Section has a scale, a harmony, and a list of parts which play in parallel within the Section (note that any Part may start late or end early within its Section).

A Harmony has a list of chords that define a chord progression.

Each Part has a list of pitches, and a rhythm that controls the timing, intensity, and duration of each note generated by the part.

A Part's pitches can either be absolute Pitches, or Numbers that represent relative pitch values. Relative pitch values produce Pitches based on the Part's mode setting, the Harmony's chords, and the Section's scale, which makes it easy to try different scales and chord progressions without changing the Part.

This is the basic Song structure. Each object mentioned here has various options to further control the song's behavior. Consult each class's documentation for more information.

Multiple Parts

TODO: talk about channels

Part Loops and Delay

Multiple Sections

Song-level Defaults

Next Steps

Next is the Advanced Features tutorial.