You are on page 1of 12

Documentation

DPG 1.0

Aaron Anderson - 2015


Dipole Particle Generator

Documentation

Documentation

DPG 1.0

Aaron Anderson - 2015


Dipole Particle Generator


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.

Front Panel
For DPG to function, the DAC and Trigger On/Off toggles must both be
toggled on. I recommend starting with the volume at a low level.
Preset Storage allows a user to save and recall the setting of all
parameters. When a cloud is worth preserving, set the location to the desired
preset number and click the Store button to commit the preset. Now, when the

Documentation
DPG 1.0
Aaron Anderson - 2015




preset is recalled (with the Recall number), every parameter will return to preserved state. Notice
that the recall function is a float. A user can recall and interpolate between presets (by being in
between preset numbers). This is an effective method of exploring the transitional space between
clouds. To create a transition between clouds (transitional vector), store several states in
sequence, and transition between clouds through the dynamic use of the Recall method. Any
preset can be saved (and later opened) by either clicking the save button in the Preset Storage
location, or by navigating to File > Save As. Likewise, to load a previous session click open in
the Preset Storage section or navigate to File > Open.
Parameter Streams
The four buttons located on the front panel
select which of the four parameter streams is
displayed. The waveform associated with the
selected parameter stream is highlighted. The slider
above each waveform represents the likelihood of that parameter stream being selected (per
grain) in comparison to the other three. If all four of these sliders are in the same position, each
parameter stream has an equal likelihood of being selected. If one of the four sliders is farther to
the right than the other three, that parameter stream is more likely to be selected.
The Stream Probability
GUI toggle will display a custom
user interface that allows the user
to scale the proportions of all four
parameter streams simultaneously.
The closer the mouse position (and
the visual intersection) is to a
waveform (and that waveforms
representative parameter stream),
the more likely that parameter
stream will be chosen in the event
of a grain. This can be a powerful tool in the dynamic control of a cloud. I recommend that each
parameter stream be isolated and set independently before mixing it in with the remaining three.
This is accomplished by positioning the slider at the rightmost position while the remaining three
sliders are at the leftmost position. Be sure to display the correct parameter stream by clicking
the correct button mentioned above.
Waveforms
Four waveforms are used in DPG, one for each parameter stream. New sound files can be
added by dropping them into position in the front panel, or by clicking the button to the top left
of the waveform. A small amount of editing can be done
within DPG. The second button at the top left of the
buffer will normalize the sound file. By double-clicking
any buffer (or navigating to Tools > Micro_Edit), a new
window will appear. Information regarding the Micro

Documentation
DPG 1.0
Aaron Anderson - 2015




Editing windows is presented in the Transient Drawing and Particle Cloning section. Source
sound files are not saved with presets. A good practice is to save the four audio buffers in the
same folder as a preset file. Load them when you load the preset. Any waveform in the front
panel can be saved to disk by clicking the buttons (identical to the Parameter Stream button, but
much smaller) directly above and to the right side of the buffer windows.
Parameters
Each parameter stream (color coded) has identical but independent parameters: Center
Speed, Low Speed, High Speed, Duration, Amplitude, Magnetization, Pan Start, and Pan End.
Each of these parameters can be set to a range. After a parameter stream is chosen, a value is
stochastically selected from each of these ranges. The stochastic selection is weighted by the
Random Distribution table. This table can be made flat (allowing equal probability for any value
in the given range) by clicking the small white button at the top right of the table. Various means
of populating the distribution
table lay to the right of the
table. These table population
options will be clear upon
use.
Note
that
these
distribution tables are stored
with a preset, and the tables
interpolate between presets.
This enables the shape of the
table to morph in interesting
ways. The significance of the
three speed options and
Magnetization
will
be
explained in the Glisson
Synthesis section.

Amplitude Envelope
The Amplitude Envelope
(also color coded by parameter
stream) is fixed within that
particular
parameter
stream.
Several classic envelopes are premade in a menu at the top right.
However, clicking and dragging

Documentation
DPG 1.0
Aaron Anderson - 2015




the white points allows a user to make custom envelopes. The curve of a segment can be adjusted
by holding [alt] while dragging the mouse up and down. The duration of the envelope will be set
to the chosen duration of that parameter stream upon creation of the grain.
Grain Emission
Grains Per Second has a lower limit of 0.25 (one grain initialization
every four seconds) and hypothetically no upper limit. However, the cpu will
limit this parameter. The CPU safety automatically reduces Grains Per Second
if the cpu nears 100%. CPU safety is useful if performing live and stalling the
software is especially unwanted.
Burst Masking, a feature borrowed from Pulsar Synthesis, simply stops
a grain from happening before its creation. In DPG, only stochastic burst
masking is implemented and is controlled by governing the odds of an omitted
grain (from 0 to 100 percent). The effect is rhythmic variation in sub-audio
rate grain emissions, and uneven density in higher rates of grain emission.
Pulse Deviation controls the regularity of the time interval between
grains. At synchronous, the amount of time between each successive grain will
be the same. At quasi-synchronous, the amount of time between successive
grains is chosen randomly between nearly 0, and the time interval between
grains. Experiment with this control at a sub-audio emission rate (less than 20
grains per second). To achieve the effect of asynchronicity in DPG, use a high
value for Pulse Deviation, and set Burst Masking to be around 30%. A user may find it helpful to
increase the amount of Grains Per Second to makeup for grains lost due to Burst Masking.
Grain Reporting
Reporting offers a detailed account of each
grain that occurs while Reporting:On/Off is on. The
report can be opened in a new window. Every
relevant variable is displayed here, along with the number of grains and a time stamp (since the
list was last cleared). The Clear function will empty the list. Note that no changes will be
displayed in this list until the window is closed and opened again. The Reporting window can
also be opened by navigating to Tools > Report. **** This shouldnt left on as it will eventually
slow the software ****
Global Parameters
The Global Parameters affect all
parameter streams equally. Note that no
change will occur in grains that have already
been emitted. Use of the Global Parameters
adds a greater sense of cohesion to the
master stream of grains.
Env Scale is a convenient global

Documentation
DPG 1.0
Aaron Anderson - 2015




method for scaling all envelopes (amplitude, sound file playback speed, and panning) of all
parameter streams. At the rightmost side, all envelopes will be unaffected. At the leftmost side,
all envelope times will be scaled to nearly zero. This control will scale all envelope durations
proportionally.
Pan Range scales the spatial imaging of all parameter streams to a user-defined range.
The left-most notch can be clicked to automatically set the pan range to full, and the middle
notch can be clicked to force all subsequent grains to be emitted from the center of the stereo
field.
Speed Offset adjusts the playback speed of all parameter streams. The range is x0.125
(three octaves lower) to x8 (three octaves higher). Speed parameters (Low Speed, Center Speed,
High Speed) ratios are preserved when using speed offset. The notch in the middle of this slider
will set the offset to x1 (no change).
CPU and Audio Settings
The number of simultaneously sounding grains is the biggest factor in cpu utilization. In
the Voices menu, a user can set a maximum number of simultaneous grains, or voices (the
default is 32). If the upper limit is
reached, any additional messages to
start a new grain will be ignored until a
voice is free.
A small signal vector in
combination with Audio Interrupt will
greatly improve timing at the cost of
processing power. Audio Interrupt runs
the scheduler immediately before
processing a signal vectors worth of audio. Therefore, while audio interrupt is on, the timing
precision can be calculated in milliseconds by ((Signal Vector/Sample Rate)*1000). However,
the processor can handle more simultaneous grains if less priority is placed on the timing. For
maximum density, experiment with a Signal Vector of 256, turn Audio Interrupt off, and allow
the maximum number of voices to be 32 or more.
To record the output of DPG, click on the Record button. When clicked, a user will be
prompted to select a file destination for the recording. The audio format may be decided in this
window. The sampling rate of the recording will match that set in the front panel. To finish a
recording, click Record once more to deactivate it.

Documentation


Indexing

DPG 1.0

Aaron Anderson - 2015


Only the range of the indexing can be controlled at the Front Panel of the patch (alt +
mouse-drag will adjust the range size, command + mouse-drag will adjust the regions location).
For more control, open the indexing window by either clicking the Open Indexing Window
button on the front panel, by navigating to Tools > Indexing, or by pressing the key-command
i.

In this window, a user can control the method of indexing and the speed. The speed is
relative to the original playback speed of the respective sound file. In other words, a speed of 1
will move the index through the sound file at original speed. Manual indexing will allow the user
to use the mouse to manually index through the sound file. The method and speed of indexing,
along with the selected range, will be preserved when a preset is saved and recalled.
The weighted indexing method displays
a probability table over the displayed waveform.
This allows for stochastic indexing. The table
must be hand drawn. A single point may be
selected, causing an index to be selected
repeatedly. This may be more advantageous
than using the manual indexing method, since
the weighted table interpolates between presets.
I recommend saving a preset with a weighted index similar to the shape pictured, followed by
saving the next preset with only a single point selected. Now, when transitioning from one preset
to the next, the weighted table will gradually morph until a single index remains (see the
Transchrome clouds section).

Documentation


Key Commands

DPG 1.0

Aaron Anderson - 2015


1,2,3,4: Display respective parameter stream


5,6,7,8,9,0,-,=: Display various windows within the parameter streams
i: Open indexing window
p: Turn On Stream Probability GUI
r: Puts recall into focus. Press r followed by a preset number and hit return

Synthesis Techniques
Glisson Synthesis

The parameters likened to glisson synthesis play a key role in DPG, and this is the reason
the term dipole is used in the title. In traditional glisson synthesis, each particles frequency is
either drawn to or pushed away from a center frequency. The translation to DPG is simply to
replace the word frequency with speed. Each particle has an initial speed and a terminal speed.
These two values are selected from Center Speed, Low Speed, and High Speed ranges. Polarity
determines the likelihood of the speed value either starting or ending at a Center Speed.
High/Low Probability determines the likelihood of the non-center speed being selected from the
High Speed range or the Low Speed range. In effect, Polarity and High/Low Probability
determine the magnetization patterns of the particle. The remaining parameter, Magnetism,
determines the strength of this attraction or repulsion. At Magnetism 0, the change in speed will
take the entire duration of a grain. At Magnetism 1, the change in speed will happen
instantaneously (the speed will initiate and remain at the selected terminal speed).
The Center Speed window in all four
parameter streams display the Low Speed and High
Speed ranges as a reference. When the Link Ranges
option is selected, four knobs appear. These knobs
control the range of the low or high speeds, and the
distance between the Center Speed range and the Low
or High Speed range. Selecting the toggles can link
these distances and ranges. When both are linked, the distance and ranges will be symmetrical.
Controlling all three speed regions in this way is ideal for testing concepts of glisson synthesis.

Documentation

DPG 1.0

Aaron Anderson - 2015



Technically speaking, a user
cannot turn off glisson synthesis in
DPG. However, setting Magnetisms
low and high value both to 1 will
eliminate any glissandi. At this setting,
the three speeds behave similarly to
formant regions. The broader the range
of any speed, the less clear the
resulting pitch (and vice versa). The
perceptibility of pitch is also dependent
upon the sound file used. If only one
speed region is desired, simply set the
Polarity slider to the left-most position.
At this setting, only the Center Speed
will be heard (assuming Magnetism is
still set to 1)

Synchronous Granular Synthesis


For this method to be employed, the Pulse Deviation control must be at the bottom
position to allow regular time intervals between grains. A sharp attack in the Amplitude Envelope
highlights this technique. While all four amplitude envelopes (if used) may be different, I
recommend keeping the shape consistent throughout. To help keep articulations clear, I
recommend choosing low maximum durations. If you are seeking fused tones, I recommend
using only one buffer, and keeping all parameters within a narrow range. Also, if your CPU
allows it, having Audio Interrupt on and a small Signal Vector (see the CPU and Audio Settings
section) is essential for accurate timing.
Quasi-synchronous and Asynchronous Granular Synthesis
When the Pulse Deviation control is not at its minimum, the realm of quasi-synchronous
synthesis is entered. Synchronicity is a gradient in this patch. The author encourages a user to
create a single stream of predictable, short, static grains, and to set the Grains Per Second control
to ~7 to test the result of changes in Pulse Deviation.
In his book, Microsound, Roads discusses Asynchronous Granular Synthesis in terms of
cloud generation, and this software is built particularly well to cater to the needs of dynamic
cloud synthesis. As this is a real-time granular synthesizer, no start time or duration (of the
cloud) is required. Grain duration, frequency band, and spatial dispersion are easily controlled
(among additional parameters). However, the amplitude envelope of a cloud as a whole must be
written in a DAW after its production in DPG.

Documentation


Cumulus Clouds

DPG 1.0

Aaron Anderson - 2015


Cumulus clouds can be generated by combining relatively large durations (~60ms


to 120ms) with a high emission rate (~ 20 or more Grains Per Second). Speed ranges may be
broad, along with the spatial distribution ranges (Pan Start and Pan End).
Stratus Clouds
Spreading the Speed ranges of parameter streams can generate stratus clouds.
The original pitch and spectrum of a sound is important to note, as it is difficult to control a
stratus cloud texture with broadband sounds. Narrowing the speed ranges of all active parameter
streams increases pitch definition. This is especially true if the original waveform has clearly
pitched content.
Monochrome, Polychrome, and Transchrome clouds
Monochrome clouds can be made by using a single parameter stream, using a
static (manual) index, and keeping speed parameters in a narrow range. Polychrome
clouds can be made by using various methods of indexing, and by using one or more
parameter stream. Starting with a monochrome cloud, and gradually moving the index
can generate Transchrome clouds. Another method could be to start with a monochrome
cloud and gradually raise the probability of another parameter stream.
Particle Cloning and Transient Drawing
DPG is particularly well suited for transient drawing and particle cloning. In the Micro
Editing window, a large waveform is viewable. To begin a transient drawing, make a new
window by setting the size with the New Window control and click the button to commit the new
window
(6-40ms
is
reasonable). Click the pencil
tool to draw a waveform. A
zoom tool lies at the top of this
waveform that will allow a user
to zoom in and out and change
the displayed region of the
audio file. Alt + mouse-drag
(up and down) will zoom out
and in respectively, and
command + mouse-drag (left
and right) will adjust the
viewed region. Individual
samples can be clearly viewed
and drawn. It takes a practiced hand to draw a compelling waveform, but the result is well worth
the patience required. The toggle to the left of this display will allow a user to draw a volume
curve. This is handy to ensure that both sides of the waveform reach zero, and to adjust the
overall amplitude.

Documentation
DPG 1.0
Aaron Anderson - 2015




The Particle Cloner portion of the Micro Editing window allows any number of clones
(or copies) to be made automatically. An envelope lies over the buffer displayed in the Particle
Cloner. This envelope can be adjusted by moving the points in time or amplitude (by clicking
and dragging) and by adjust the curve of each segment (alt + mouse-drag (up and down)). The
envelope, which is applied automatically to the buffer, acts to create cohesion in a train of
particles. To move the cloned particles to the front panel of DPG, click Pass clones to current
Draw, then click Pass edit to Sound (n).
Trainlet Clouds
A trainlet can be fashioned by using the Micro Editing window. In this window, an
impulse can be decided upon by using the noise or sine function, by hand drawing an impulse, or
by importing an impulse audio file. A small window is recommended, as it will take many
impulses to create a trainlet. Copies of this impulse can be made by adjusting the number of
copies control. Decide on the number of copies and the trainlet envelope before passing it to the
current draw window via the button in the bottom left corner. Selecting an impulse and pressing
the silence button can then mask individual impulses. Once a trainlet has been made, pass it to
the Front Panel control window by pressing the Pass edit to sound (n) button.
Once a trainlet is
passed to the front panel
of the patch, it may be
used just as any other
audio buffer. This evokes
various features and
drawbacks.
Features
include applying glisson
techniques to trainlet
synthesis and the ability
to create and shift
between four independent
streams
of
trainlets.
Unfortunately, the trainlet
itself
cannot
be
transformed while the
synth is in motion. Thus,
if real-time molecular manipulation of trainlet is what a user desires, DPG is not an ideal tool for
trainlet clouds. However, the potential amount of manipulation to created trainlets is certainly
enough to provide compelling textures.

Documentation


Time Stretching

DPG 1.0

Aaron Anderson - 2015


To do basic time stretching in DPG, use only one parameter stream. Load a sound to the
buffer of that stream, and set Low Speed, Center Speed, and High Speed to 1. Set the amplitude
envelope to be as transparent as possible (welch or quasi-Gaussian will do). Using the index
window, adjust the speed of the selected parameter stream to 1, and set the method to phasor.
Finally, adjust the Grains Per Second and the Duration until the granular reproduction sounds as
close as possible to the original.

To alter how fast DPG reads the sound file, simply change the Speed in the indexing
window. To change the pitch, simply change the Center Speed (with High Speed and Low Speed
linked). Interesting warping effects can be achieved by allowing a small range within the High
Speed and Low Speed. Three additional sound files can be loaded into the remaining three
parameter streams to create a collage of time stretched and warped sounds.