topology music - algorithmic composition max/msp patch

   ALGORITHMIC COMPOSITION: TOPOLOGY MUSIC

This is the TOPOLOGY MUSIC patch, created using Cycling'74 Max/MSP/Jitter. This algorithmic compositional patch uses 2D noise-maps and an elliptical 'orbit' to source data for melodic lines.
At present, two orbital channels read data from the topology of the 2-dimensional noise-map (during patch development I used a Voronoi noise algorithm) to provide a background of data that will ultimately provide the melodic pitches.

The user defines parameters for the spinning play-head, reporting the topology at its position. Originally intended to write samples for timbral synthesis, the TOPOLOGY patch now uses the data to create MIDI pitches.
This patch is part of the Human/Computer Collaboration module, for creating MIDI compositions, triggering sample libraries, or my soft-synth patches.

TOPOLOGY MUSIC DOC (Powerpoint)
TOPOLOGY SYNTHESIS page
     NAVIGATION     

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

—«o: TOPOLOGY MUSIC: Interface :o»—

TOPOLOGY_MUSIC: early development interface

—«o: TOPOLOGY MUSIC: (Intermediate version) :o»—

TOPOLOGY_MUSIC: Intermediate-Version - 2 channels

—«o: JITTER'S FUNCTIONS (jit.bfg) :o»—

EXAMPLES: Functions of the jit.bfg Jitter object. CLICK FOR LARGER IMAGE

—«o: TOPOLOGY MUSIC: (Latest version) :o»—

TOPOLOGY MUSIC: Version 3

—«o: ABOUT THE PATCH :o»—

  DATA & READING DATA

The TOPOLOGY MUSIC patch has four major areas:

These sections of the creative process are catered for in the user interface; they are labeled in the first screen-shot (to the right), of an early patch development with only one output channel.

—«o: TOPOLOGY SOURCE :o»—

  DATA & JITTERS ROLE IN THE PATCH

The Voronoi noise-map, (shown in the example screen-shots), is easily created using the jit.bfg (Basis Function & Generators) object. This very useful, and really rather cool object will output its functions to a regular jit.matrix, to be used for analysis & further processing.

The jit.bfg object is capable of many basis functions, including distance functions (such as Voronoi; based on distance-weighting), fractal, noise, filter, & transfer functions. Some examples (taken from the Jitter Tutorials documentation) are shown below, to the right.

Many other function noise-maps may be very useful in creating musical compositions; I intend to try out others using jit.bfg, and also to replace the noise-maps with images & photos. The elliptical orbit mean the system creates repeating loops; where the data-map itself can be shifted & rotated under the playhead. For this reason, most interesting 2D maps/images should render good results.

—«o: CONTROLLING THE PATCH :o»—

  FROM NOISE TO MUSIC

The TOPOLOGY MUSIC patch is controlled using the following sets of parameters, for controlling noise-maps, the elliptical play-heads & the MIDI output:

NOISE-MAP: PLAY-HEAD: NOTE OUTPUT:
COOL STUFF TO TRY:

It can sometimes take some jiggling of parameters to get a good, controlled musical jam going with the topology patch; but some specific techniques often render good results:

SHORT LOOPED HARMONIES & PHASE SHIFT:

What looks great in the visual aspect of the TOPOLOGY patch does not always sound best. Using loops with many-many STEPS looks good, but shorter loops of only around 8 notes tend to sound more musical. By setting both channels to, for example, 8 STEPS, with similar SIZE & rhythm, a melodic harmony can be created by changing the output interval of one of the channels to a 3rd (for example: set channel 1 to octave 3, with a C note on the keyboard interface; and channel 2 to octave 3, with an E)
Then, you are free to experiment with the SCALE QUANTISATION, to change the key of the music, and to try extending one of the channel's loops' STEPS value by 1, to create a phase-shift in loop-lengths.

NOISE ROTATION & TRANSLATION AUTOMATION:
(may cause timing problems on slower machines!)

In the bottom-left area of the patch GUI (of the latest version) is a noise-map automation system. This allows you to automate slow changes in the noise-map's ROTATION and WEIGHT values over time.
This is done using Max's line object, and requires a destination value for the rotation or weight parameters, and a time (in seconds) for this destination to be reached.

...again, visually, this system looks best when the rotation is fast enough to see; but due to fine resolution of the noise-map, it sounds much more musical if it is performed VERY slowly. This way the changes are heard as a gradual musical progression, and not a semi-random stream of notes.

Similar automation of the WEIGHT parameter can sound like a rising or falling progression in an arpeggiated sequence. V-Nice!

—«o: DOWNLOADABLE'S :o»—

  DOWNLOAD FILES

Below are links to download the TOPOLOGY_MUSIC patch, and a Powerpoint file describing the patch & its development (written as part of a degree module).

The patch is available as a STANDALONE application (which includes its own version of Max-Runtime, and can be run without Max Runtime installed - WINDOWS ONLY - Sorry!! Other versions available on DOWNLOADS page)

TOPOLOGY_MUSIC patch as STANDALONE app (zipped with 7-zip - click to download)
TOPOLOGY_MUSIC POWERPOINT DOC (click to view)

Back to top of page

—«o: ARP_ALGORITHM MEDIA PLAYER :o»—

NEW! - TOPOLOGY SYNTHESIS PAGE



This link will take you to the new TOPOLOGY SYNTHESIS page. The TOPOLOGY SYNTHESIS page. patch is based on the same principal as this, the TOPOLOGY MUSIC composition patch; however, instead of providing MIDI note data, the data gathered from the noise-maps is used to write sample data into audio buffers for creating synthetic timbres. HAVE A LOOK...