Data model

Song

The Song object is the main data model. It is mainly composed of a ChordLeadSheet and a SongStructure.

The ChordLeadSheet object is the model of the Chord leadsheet editor. It holds the sections and the chord symbols.

The SongStructure object is the model of the Song structure editor. It holds the SongParts, each one being linked to a parent section, and each one defining a set of RhythmParameter values.

Combining the SongStructure and the ChordLeadSheet will give you the "unrolled" chord lead sheet for which the backing track must be generated.

MidiMix

The MidiMix stores the Midi configuration of a given Song. It is mainly used by the framework to control the Midi output device. Your MusicGenerator will use it only to retrieve the Midi channel associated to a Rhythm track (RhythmVoice).

Helper classes

Harmony module

Supporting classes used in the Song: TimeSignature, ChordSymbol, Degree, etc.

RhythmMusicGeneration module

Supporting classes useful for your MusicGenerator:

  • Phrase and NoteEvent: the MusicGenerator needs to create a Phrase for each rhythm track.

  • ContextChordSequence: a helper class to get the "unrolled" chord leadsheet descrive above.

  • Grid: music phrase manipulation methods

  • Phrases: music phrase manipulation methods, including methods to adapt a music source phrase (e.g. a bass pattern for C7M) into a different chord (e.g. Ab-6)

  • etc.