The
Chord-based
model
Assumptions
The Chord-based model is based on the following primary assumptions:
- A tonal melody is based on an underlying harmonic progression
- A tonal melody consists of Parts
- A tonal melody consists of structural tones (the skeleton) and
ornamental tones. More
- The skeleton consists of chord tones (tones that are elements of
the underlying harmony)
and the following additional assumptions:
- Structural tones are primarily located at metrically strong
positions
- Non-chord tones are resolved by nearby chord tones
- Steps occur more frequently than leaps (for the skeleton the
steps are on the triadic scale)
Implementation/Operation
The Chord-based model is based on the following architecture:

Thus, there are two methods to construct a melody:
1. By consecutively adding Parts. A Part can be
constructed in a Stepwise or non-stepwise fashion.
2. By using one of the prefab structures. In this
mode
construction can be either automatic or user guided, as will be shown.
This is the Construction pane of the Chord-based model:

First we deal with the Part by Part
construction, explaining the
three stages of generation. After that we describe the Structure
based construction.
A. Part by Part
construction
The generation of a melody in Melody
Generator II basically consists of three stages:
- Generate & Edit Parts
- Rearrange Parts
- Transform Parts
-
Generating and editing Parts
In this mode, a melody is constructed in a number of steps. In each
step the you may adjust the relevant parameters. These are
shown in red when you move the cursor over the construction buttons.
- Push the 'New Melody' button to set Key and
Meter.
Now, there are two
ways to construct a Part:
1. Step-wise construction
In the Step-wise construction you do the following:
- Push the button 'Add Part by step'. Next you add the various
aspects (as many times as you like)
- Set Rhythm. Here the rhythm of the melody is created. More
- Set the Gap at the end of the melody.
- Set Harmony. Determines the underlying harmony for each measure
- Set Contour. Determines whether or not some or all measures
should have the same contour
- Set Skeleton. Assigns the slots that will have a skeleton note
(on downbeats, beats, or all slots). Sets the pitches of the Skeleton;
the pitches are chord tones.
- Change ornamental notes (optional).
- Ornament. More
You can change each aspect as many times as you like (and listen to the
result). Changing one aspect may need the (re)construction of other
aspects as indicated by the red lights at the left side of the buttons.
The order of construction is
enforced by the interface (by disabling the controls, and by means of
the red and green 'lights' of the controls).
When you are satisfied with the result, press the 'Done' button
(becomes visible when all aspects of a Part has been made).
2. Non
Step-wise construction
This works in principle the same as the step-wise construction except
that after pressing the 'Add complete Part', an entire Part is
constructed using the parameters as set. Next you can change each of
the aspects in the same way as described above.
-
Adding and arranging Parts
You can add more Parts as shown above, i.e. by pushing one of
the buttons 'Add Part by step' or 'Add complete Part'.
However there is an additional method to duplicate, move and remove
Parts which is made available when you right click on a Part:

After you have constructed one or more Parts, you can apply one or more
transformations to a Part. The Transformation panel is opened either by
right clicking on the Part and next selecting 'Transform Part', or by
left-clicking and pushing the 'Edit?' button that will appear:

After pushing the 'Edit' button, the Transformation
Panel will be opened while the Part you will be transforming is
shown with its staff
highlighted in red:

At present the following transformations can be applied:
- Increase elaboration.
Each time the button is pushed the number of tones in the Part is
increased.
- Reduce elaboration. Idem,
but decreased
- Transpose 1. Applies a
transformation of 1, 2, or 3 steps within
the current harmony
- Transpose 2. Applies a
transformation of 1-7 degree steps up or down, thereby adjusting the
harmony
- Change pitch. Changes the
pitches of the Part while keeping rhythm and harmony intact
- Change rhythm. Changes
(only) the rhythm of the Part.
In the future more options will be added.
B. Structure-based
construction
In this mode the pre-set structures in the Listbox at the right of the
construction panel can be used after the 'Structure based' checkbox is
pressed and the list of structures activated:

'Ant'
and
'Cons'
refer to the Antecedent-Consequent formula. The antecedent
consists of a melodic
phrase ending with a half cadence upon a note evoking the expectation
for another note which will be the last note of the full cadence ending
the consequent phrase.
As
shown, the user can add additional structures after pushing the 'Add a
structure' button. In the Structure-based mode a melody can
either or not be constructed automatically (after pushing the
'Automatic' button) or by hand.
1.
Non-automatic
generation
In this mode a structure is selected from the list by double
clicking. Next the user creates the first Part in the same way as
described above:

Each new Part is generated in
the same way. A repetition or a variation of a Part (indicated by a
digit after the name), will be added automatically by the
program.
Coding of the structure
The Structure of a piece is coded as follows:
- A structure consists of Parts identified by one of the letters: A
B C D E F G.
- The initial and final Harmony may optionally be indicated by one
of the Roman numerals I, II ...VII, respectively preceding and
following the Part identifier
- A variation of an (original Part) is indicated by a suffix
consisting of a single digit, e.g. A2.
- There are a few reserved words, namely Ant indicating an Antecedent Part, Cons indicating a Consequent Part,
and Coda indicating a Part at
the end of a structure
- Parts are delimited by a space
- Repetitions of one or more parts are indicated by the symbols [ ].
Here are a few examples of legal Part encoding: A, IA, VAI, VAI1
For an Ant Part the Harmony
selector will be set on Antecedent harmony
(this can be overruled by the user). Similarly, for a Cons Part for a Consequent
harmony will be preset.
2. Automatic
generation
In this mode, activated
when the 'Automatic' checkbox is clicked, a complete melody based on
the selected structure will be composed (Remember that the essential
goal of the project is to model the generation of tonal music, that is
to simulate the generation of tonal melodies without the interference
of a human subject).
In this Automatic mode, a number of the Time and Pitch parameters are
set randomly, each time a next Part is constructed. In addition, a
randomly
selected transformation is applied to a Part that is a variation of an
original Part.
Once a structure-based melody is generated, its Parts can be
re-arranged and transformed in the same way as described above.
Part is
used in a generic sense without further defining it as a motive,
phrase, segment, etc.
Chord-based model.html (last
update 7.3.2009)
Created in SeaMonkey
© D.J. Povel, 2009
