arpeggiator algorithm - algorithmic composition max/msp patch

   ALGORITHMIC COMPOSITION: ARPEGGIATOR ALGORITHM

This is the ARPEGGIATOR_ALGORITHM patch. A Max algorithmic compositional patch based, as you might imagine, on the workings of an arpeggiator. It involves a stored array of pitch intervals (the bar-graph), which is used as a basic pattern template for creating melodic lines. Both monophonic & polyphonic versions were developed.

A set of parameters allow for a very musical interpretation of this small amount of data by mathematically controlling the array's 'play-bar', and by restricting the pitch output using one of two transpositional algorithms.

Three working versions of the ARP_ALGORITM patch were designed for my Human/Computer Collaboration module, for creating MIDI compositions that triggered sample libraries, or my soft-synth patches, designed in Max/MSP

     NAVIGATION     

1-1-1_HOME        MAX_HOME       ADDER-PAD
HUM/COMP
SYNTHESIS
NEW-PROJECTS
  DOWNLOADS

—«o: ARP ALGORITHM (Monophonic v1) :o»—

ARP_ALGORITHM Mono Version interface

—«o: ARP_MULTI (Polyphonic v2) :o»—

ARP_MULTI: Polyphonic Version of the patch, for creating melodies and harmonies

—«o: SUMMING_ARP(Polyphonic v2) :o»—

THE SUMMING_ARP: Multiple play-bars with separate settings can add their outputs to form complex musical melodies

—«o: ABOUT THE PATCH :o»—

  MELODY MAKING

The few pitch intervals stipulated by the user (choice of note-amount, and the intervals) do not restrict the melodic output to those pitches, as various transpositions & scale morphing attributes are constantly available to transform the general pattern of the melody.

  WHAT IT DOES

There are two areas of calculation occurring during the realtime performance of the patch: the pattern of playback (to be thought of as a 'play-bar', accessing the graph of notes), and

Only a relatively short array of pitch intervals (around 4-8 values) are necessary to provide some very musical & musically sensical melodic phrases. A larger array (around 12-20 values) can be stored, using smaller sections of the array for different musical sections; for example, using pitches 1-8 for a verse part, and using a similar play-back algorithm with notes 9-16 for a chorus part.

—«o: ALGORITHMIC PARAMETERS :o»—

  USING THE PATCH

The array of pitches can be read through, and dynamically transposed using the following parameters:

The combination of range constraints and scale quantisation makes the ARPEGGIATOR_ALGORITHM patch a very musical sounding algorithmic composer. A simple pitch array holding an arpeggiated pattern, such as 0, 4, 7, 4, 7, 4 - the 3 intervals of a major chord in a familiar pattern, can be used within a NOTE-RANGE of 0 to 12 (a single octave), and a KEY-SCALE of C Major. Then, by changing the CHORD-OFFSET from 0, to 5, to 7, and back to 0, the result will be a very musical arrangement of the chords C, F, G, C; using chord inversions that one might expect from a pianist.

—«o: NOTE RANGE TRANSPOSITION :o»—

  NOTE RANGE MODES

As well as the CHORD-OFFSET parameter, that is responsible for transposing the pitch-pattern within the specified key/scale, the NOTE-RANGE parameters (Low/High & Mode 0/1) are responsible for keeping the output within a defined pitch range, and more importantly, for keeping the results musical.

The two range modes use different algorithms to transpose out-of-range pitches back into range, and depend greatly on their settings.

MODE 1

Mode 1 uses a typical 'modulo' arithmetic method, meaning that notes that go out of range encroach in from the 'other end' of the range. So, if a defined range is C3 to C4, the note D4 (a tone above C4) will be transposed down an octave to D3. Conversley, Bb2 (a tone below C3) will go up an octave to Bb3 (to a tone below the 'other end')

As you might imagine, using ranges that are not based on whole octaves will then cause transpositions to new pitches:

The 'modulo' arithmetic method with a range of C3 to F4 (an octave and a 4th) will then transpose a G4 (a tone above the high range of F4) will encroach by a tone in from the low end, falling on D3; so a G has become a D.

These sorts of RANGE settings will produce some more unexpected melodic results, but will still remain musical, as these preliminary transpositions are calculated before the SCALE QUANTISATION stage, so they will always remain 'in-key' if you want them to. (Or choose 'chromatic' to allow for atonal content)

MODE 2

Mode 2 was developed to be able to use ranges that were not whole octaves, but to retain the pitches by only transposing by full octaves. So, the Mode 1 example of a C3 to F4 range, would transpose a G4 back into range as a G3; keeping the note as a G.

If the offending pitch was a G6, it would still be end up as a G3, as it is the nearest G within range.

A similar rule is applicable for notes that go below thr low range setting; they are transposed up, in octave strides until they are above Low Range value.

ARP_ALGORITHM
DOC

—«o: DOWNLOADS :o»—

  DOWNLOAD FILES

ARP_MONO PATCH (Requires Max Runtime) (right-click save target)
ARP_MONO PATCH (Standalone version) (right-click save target)
SUM_ARP PATCH (Requires Max Runtime) (right-click save target)
SUM_ARP PATCH (Standalone version) (right-click save target)
ARP ALGORITHM DOC (Powerpoint File)
(click to view)

Please note: STANDALONE versions are PLATFORM SPECIFIC. WINDOWS ONLY - sorry! Though Collectives should work on Mac too. Other versions are also available on the DOWNLOADS page)



Back to top of page

—«o: ARP_ALGORITHM MEDIA PLAYER :o»—