This, the TOPOLOGY SYNTHESIS patch, is the 2nd version of the topology idea; again created using Cycling'74 Max/MSP/Jitter. Like the first TOPOLOGY MUSIC patch, it uses 2D & 3D noise-maps, and circular 'orbits' to source the audio data.
This patch allows the operator to gather sample data directly from the noise-maps via MULTIPLE ORBITS. Due to each orbits' increasing circumference, covering more changes in pixel data, the audio data gathered from the increasing 'rings' are similar to the 'partials' used in additive synthesis - from low frequency to high frequency content throughout the orbital-structure.
The user defines parameters that govern the amount of 'partials' ('rings' or 'orbits')
that will contribute to the sound; a noise-map function, (or image!) to provide the
data; and further parameters similar to additive synthesis, such as partial amplitude & phase.
1-1-1_HOME     
 
MAX_HOME    
 
ADDER-PAD
HUM/COMP
SYNTHESIS
NEW-PROJECTS
DOWNLOADS
—«o: TOPOLOGY SYNTHESIS: Interface :o»—
—«o: TOPOLOGY SYNTHESIS: Examples :o»—
—«o: TOPOLOGY SYNTHESIS: Labeled Diagram :o»—
—«o: TOPOLOGY-SYNTH GUI (so far!) :o»—
—«o: JITTER'S FUNCTIONS (jit.bfg) :o»—
—«o: THE 'TOPOLOGIES' :o»—
Though the two TOPOLOGY patches (TOPOLOGY-MUSIC & TOPOLOGY-SYNTHESIS) have major differences, I recommend reading the TOPOLOGY MUSIC page before this one, as it contains some shared basic ideas that are not repeated here.
The TOPOLOGY SYNTHESIS patch has a similar way of setting up a noise-map from which we will read our data; allowing for a choice of mapping functions & fractals, which can be scaled, offset, and rotated in 3-dimensions.
Other similarities include the placing of the 'cursor' within this 2D screen, around which the data-gathering 'orbits', or 'rings' will spin.
However, the real-time output of MIDI note-data and SAMPLE buffers require rather different programming & control parameters:
—«o: BASIC SYNTH SET-UP :o»—
The basic preliminary data required by the patch include the following four settings:
The noise-map settings are more user friendly in this patch compared with the array of number-boxes found in the previous TOPOLOGY MUSIC patch. Three dial objects, each scaled by three further sliders (which allow for separate control of the map's 3 axes) control the SCALE, WEIGHT and the ROTATION of the map. An AUTO-ROTATE parameter allows for an easy, smooth and flexible noise-rotation that can continuously alter the timbre. (The user can enter a number of 'frames' taken to complete one cycle of the ROTATION dial)
—«o: CONTROLLING THE PATCH :o»—
As with the TOPOLOGY MUSIC patch, the SYNTHESIS patch is controlled using some basic parameters for controlling noise-maps, with some different settings governing the multiple partial 'rings' & some further basic AUDIO & SYNTHESIS parameters:
—«o: PATCH USE & FUTURE IDEAS :o»—
DATA SOURCES:
Of course, the timbre that the Topology-Synth produces is directly controlled by the 2D data under the PLAY-HEAD. This patch is reasonably new, and has so far been tested only during development. I have found some nice timbres from Voronoi, Cell-Fractal, Distortion & Sine & Tri maps, using between 4 and 12 partials.
However, the use of 2D & 3D NOISE-MAPS (The topology screen is a 2-dimensional 'slice' of a 3-dimensional function, allowing rotation and translation in all 3 axes) is not the only source of data that could be used with the TOPOLOGY SYNTHESIS patch. In fact, any 2-dimensional data could be loaded into a Jitter jit.matrix object, and read by the PLAY-HEAD. This means images & movies!!
During early stages of development, I experimented with some digital photos, such as cloud-scapes and some of my 3D modeling renders. The results were reasonable, but at the time I had not coded the interpolation between control-points, (making the extremely low 'bit-rate' of a 0-255 colour-plane quite noisy), or the ability to read multiple partials. I will try this idea again, summing and dividing all colour-planes for a higher resolution floating-point value (does jit.rgb2luma work with floats???), with the latest patch functionality it should sound okay. I will endeavor to post some recordings in the near future.
I have just realized that I have reached the end of this write-up without mentioning the key-facts about the way the patch works!
Well...
I have experimented with various ways of reading images (and other 2D data) to produce music & timbres. This one
works so well for creating single wavelets for periodic waveforms (and for compositional loops - see
TOPOLOGY-MUSIC page), due to the fact that it reads the data in a circle;
this means that no windowing is required to make the ends of the wavelet meet without causing clicking or noise. Simple really!
It also (as mentioned above) has a natural increase in frequency as the circle's size increases, due to the larger circumference, and therefore the larger amount of ground covered by the control-points, including all the 'ups & downs' in the data-path. This means that familiar additive-synthesis parameters such as PARTIAL-AMPLITUDES & PHASE-OFFSET become relevant. In fact, some interesting timbral variations can be achieved by using just one or two partials, and continuously varying the SIZE parameter; adding higher frequency content to the sound as the size increases.
I hope to take this patch further in a number of ways. Firstly, by finishing the GUI and improving on the amp-envelope (it currently has only an A.S.R. - not an A.D.S.R.!); and making the synth polyphonic (as playing the synth only reads the existing timbre as a single oscillator, this would not add much to the [already significant] CPU overhead). This leads to another future improvement: OPTIMIZATION & EFFICIENCY!
Lastly, I would like to work on the data sources; adding IMAGE & MOVIE functionality to the patch GUI, as well as, perhaps, a way of designing specific 2D image or movie data that would produce particularly musical results.
As soon as I have the User Interface working with a degree of friendliness, I will post a downloadable version. Thank you for listening!
—«o: DOWNLOADABLE'S :o»—
I will post some downloads of the TOPOLOGY-SYNTHESIS patch as soon as it's ready. .
I will make it available as a STANDALONE application (which includes its own version of Max-Runtime, and can be run without Max Runtime installed - WINDOWS ONLY - Sorry!!) & perhaps a text-version too!
Maybe in a week? (Posted today - 04/10/2009)
—«o: TOPOLOGY_SYNTH (Coming soon!) :o»—