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: