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:
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.