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 Pitch
es, or Number
s that represent relative pitch values.
Relative pitch values produce Pitch
es 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.