2. #HARMON-DATABASE
For the collection of chord lists, it is recommended to use the specially designed function HAMON-DATABASE.
Instead of chords with absolute values for the pitches, pitch sets are used in which the individual distances between the chord tones and a virtual root note are always specified in midicents (100 midicents = 1 MIDI = 1 semitone) . This means that microtonal chords are also possible.
The ranges of the instruments (currently a maximum of 4 instruments) are then specified in absolute midicents. CHORD objects can also be used for visualization.
Input syntax: For each instrument (min max) or (max min) listed side by side.
(HARMON-DATABASE recognizes the lower value as the minimum regardless of its position)
The lowest note of the lowest instrument and the highest note of the highest instrument form a frame interval; the total range.
Now all pitch sets whose chord tones exceed the number of specified instruments are reduced to the appropriate number. The pitch sets that have fewer chord tones are added to the appropriate number with “nil”.
While the former is intended to avoid bugs, the latter is practical for giving individual instruments rests.
The input syntax for the pitch set list: ((0 200 300 400) (0 100 500 700) etc...)
Since the values of the pitch sets are assigned to the instruments via their position in the list, the database is expanded to include all permutations of each pitch set.
A chromatic scale is then created, from the lowest to the highest note of the entire range. This scale is the collection of all virtual fundamental tones to which the pitch sets are transposed.
All possible chords have now been created. Finally, there is the option of creating a register list in which all octave positions are specified in midicents from 0, which means no octave transposition, with which all possible octave transpositions of each chord are calculated permutatively. The default value is (0 1200 2400 4800).
This process will often result in chords that are outside the range of individual instruments. This is why there is a range check at the end, which filters out all chords that are unusable for this reason.
All chords that appear more than once in the list are also filtered out, as they manipulate the randomness.
The instruments from the second instrument onwards (Instr 1) and the register list are all indicated with &key-inlets.
About the author