DPG #maxmsp

DPG 1.0

The principle purpose of Dipole Particle Generator (DPG) is to develop the technique of glisson synthesis. The largest deviation from traditional glisson synthesis is the ability to use sampled sounds as opposed to solely synthetic waveforms. Immediately, the inclusion of sampled sounds in a particle synthesis system tempts the integration of classic granular synthesis techniques (time-stretching, pitch-shifting, etc.). DPG weaves characteristics of many particle and granular synthesis techniques into a single streamlined application.

The decision was made to implement stochastic parameters in order to create sound with constant controllable variance. Parameters within DPG are set to ranges with weighted distribution. These weights are set by probability tables that may be populated by hand or by algorithm. Although designed for stochastic parametric control, purely deterministic events are possible in DPG.

A unique attribute of this software is the use of four independent streams of parameters to inform the creation of grains. Each stream has an identical set of parameters each with an independent set of values. At the onset of each grain, one of four parameter streams is chosen. Grains are emitted serially, but may overlap in time. DPG allows for the creation of sophisticated granular clouds and provides the ability to control all parameters fluidly.

A large effort was made to make this software flexible and user-friendly. I want this to be available to anybody who could put it to good use. However, I am a poor graduate student/starving artist. If you are so inclined, please feel free to contribute!

Donate to the cause: https://www.paypal.me/AaronArthurAnderson

Link to demonstration:


Mac version:


Windows version:


Link to documentation (10/9/15):

View online: http://www.scribd.com/doc/264726277/Dipole-Particle-Generator

Download: https://www.dropbox.com/s/h5jmp76eql1bvgs/DPG_Documentation.pdf?dl=0

If you would like the max patch, please email me at aaron.arthur.anderson@gmail.com

I will respond asap, and will always provide the patch. I am only screening to find out who is interested.

Thank you all,



The applications have been tested on 10.8.5 and windows 7. Mileage may vary on newer versions of Windows.

Mass – Drone Generator #maxmsp

Mass is a drone/texture generator that combines 25 layers of “frozen” audio, sourced from five discrete buffers. At the heart of this patch is the vb.stretch~ external object, created by Volker Böhm, and to whom I am incredibly grateful. As of the time of this posting, this object can be found here: http://vboehm.net/downloads/

We live in the glorious decade of real-time fft processing. That being said, this patch is fantastic at crashing.

Each of the five buffers is divided into five discrete instances of pitch, amplitude, and index. All of these controls can be automated or manually edited. The obstacle which took the most effort to overcome was allowing the automatic controls to keep track of the manual controls. In this way, a user can switch back and forth between manual and automatic control without the automatic controls jumping to a previous location.

The patch is still a bit messy, but here it is:


Here is a demonstration of the patch:

Thank you for following my blog! As always, write to me with any suggestions.


Update: August 7 2015

Here is an app version


Beat Breaker #maxmsp


Looking to break your beat? Here. This is a bit more flexible than the chucker~ object. Change the playback speed of the source without screwing everything up. Divide the source into hundreds of chunks and randomly spray them at an unsuspecting, completely innocent and undeserving listener. If you want, go back to my iTableManners post and add some creative table populations to this. If you don’t want to, that’s cool too. Move from Granulator to Chucker~ seamlessly.

Here is the patch!


Here is a demonstration:


Until next time,


Particle Cloning #maxmsp

Hello max world,

This is my first installment of the particle synthesis patches I will be sharing. This patch is based on the Curtis Roads’ “microsound” (2001) book, (168-173). Fortunately for us, the 14 years that have passed since this book was published allow us to make improvements, namely operating on the particle and “tone pip” in real time. However, I do not recommend using this synth in a live setting (yet) as there will be unintentional clicks when updating buffers. Note that I have included an D:S ratio in this patch. This is a leftover from Roads’ discussion on Pulsar synthesis, but I find that it is useful in any particle synthesizer.

I highly recommend the “microsound” for anybody interested in granular/particle synthesis. I have already completed the Glisson, Grainlet, and Trainlet techniques, but I will refrain from posting them until I can improve on the poly~ technique. (As of now, it seems that the only way I can accurately represent these synthesis styles is to recreate the poly~ object as an external that will trigger events on the audio thread). The same goes for the remaining Pulsar and Formant synthesis techniques. Stay tuned!


Link to patch:


MIDI_Learn #maxmsp

Screen Shot 2015-02-07 at 12.44.11 AM

Hello again!

Tonight I have finally made a MIDI learn patch. Click a button, move the MIDI controller, and that route will be set to that control. A pop-up window appears allowing you to scale values from 0-127 to whatever you need. Bonus: the object takes up very little space in your patch.

Let me know if it breaks!


Here is the link:


BeatFarm #maxmsp #EDM #IDM

This patch is the first of hopefully many patches that stray away a bit from academia (the sonic results, at least).

The original idea was taken from a Cecilia 5 module developed by Olivier Bélanger. The patch plays 4 instances of a single buffer (this can be a song, sound, or any audio) and divides them into frequency bands. Each instance can play from any location in the sound file. A step sequencer is available for every frequency band, allowing a user to reorganize the original sound file in a beat-like fashion. Each buffer instance has an individual ASR envelope, including depth control. Parameters of the synth are able to be controlled at random. For each of these parameters, a user can prevent the random change from happening. For every step in the sequence, a second switch exists which turns subdivisions on or off for that particular step. The number of subdivisions is determined at the right of the step sequencer.

Here is a link to the patch:


Octophonic, 5(.1), and Quadrophonic Equal Power Panners #maxmsp #maxmspjitter


Gradient panning in audio programming environments is difficult enough in stereo and somewhat obnoxious in multichannel configurations. Using the surface area of a triangle formed between an apparent sound source and two adjacent speakers, one can calculate gain values of individual channels. The gain of a speaker is determined by the product of the inverse of two adjacent triangles. Computational shortcuts can be made since the “location” of these speakers is known. However, this method can be expanded into moveable speaker locations and still function. Equal power is achieved by curving the gain factor with a Sine function.



Link to patch:


Reverb #MaxMSP

Hello all!

I have returned to share a portion of my recent MaxMSP endeavors. This patch is a Mono-> Stereo Reverb unit. The basic style of the unit reverberators (creating the fused reverb) is that of Schroeder’s parallel comb –> Series all-pass model. The early reflections are based off of Boston Symphony Hall, but can be scaled to any reasonable size. The “Room Size” Function in the patch changes the delay times in the fuzed reverberation network by automatically generating mutually prime recursions. However, the problem still exists that if using a “large-sized room”, audible volume fluctuations may be present. This is due to a relatively small network of fuzed reverberation. More could be added at the expense of computation speed.

Note that I have unlinked parameters that you would never find unlinked in a commercial product. This allows you flexibility, but can also cause your settings to sound “bad”. I have grouped the parameters together that should be adjusted with consideration to the other parameters (in common group). Put some consideration into the parameters you set.

Please look for mistakes or inefficiencies! The next post will likely be a “Octophonic Mover” based on Chowning’s Quadrophonic Mover.

Until then,


Link to patch:


Reverb Unit

iTable Manners #maxmsp

Link to patch:


I Lied. My recent plunge into superCollider has caused Max withdrawal. Today’s patch is somewhat of an itable tutorial. Using itables was one of the most confusing topics for me when I began to learn max, and I sincerely doubt that this patch will clear anything up for anybody. However, I threw in some interesting methods to populate your itables. Recent patches, especially Etch a Synth, have much more complicated uses of the itable object that would have been redundant to include in this patch.

And now the first rant on this blog needs to happen. Why does the scale object only curve data in one direction. The help file for scale calls the fifth argument an exponent, but this does not seem to be the case. Use a number smaller than one and the result is nil. This was not hard to patch around, but why should we have to? The data also curves much harder than they should based on my understanding of exponents. The folks at Cycling 74 are much wiser than myself, however, so I suspect that I am overlooking or misunderstanding something. At any rate, my work around is in this patch if you’re interested. Rant over.

Sidenote: The compressor itable ratio is range is (1.0-0.0). I realize this is irregular, but this keeps my method of drawing the table clear. Scaling this data should not be difficult if you would like to use this table in your own patch.

Leave a comment if you can shed any light on the scale object issue or even if you feel like trolling.


To Whom It May Concern

The current hiatus on this blog may be permanent as I am shifting my focus to SuperCollider. If you have any questions about this list of Max Patches feel free to send me an email (aaron.arthur.anderson@gmail.com) any time and I will gladly respond.

Until we meet again!