!DRAFT DOCUMENTATION!

This module is a granular synthesizer that works on either pre-recorded audio files or input captured using an integrated recording facility.

A major component of the module is a buffer that holds a segment of audio. A waveform display shows a view of this buffer along with other information.

The waveform display shows a mono representation of the buffer content but the Granular Synth is otherwise fully stereo capable.

A grain is a (generally quite brief) sample of sound extracted from somewhere in the buffer. Individual grains can be manipulated in various ways – they might be shifted in pitch, optionally played backwards, have an envelope (called a shape) applied, be assigned different stereo positions and amounts of reverb.

A single grain

Many different grains may be layered on top of each other to create a complex texture referred to as a cloud.

Clouds consisting of hundreds of simultaneous grains can be supported providing sufficient CPU power is available.

The generation of a grain is called seeding and this can be done at a regular rate, pseudo randomly or on receipt of an external trigger. Seeding rates can vary from perhaps just once or twice a second all the way up to audio-rates.

At a higher level of organization individual notes can be created in response to an external gate signal that applies an envelope contour to the entire grain cloud.

Regular one volt per octave control of pitch shifting is available along with quantization to scales and chords. In addition novel grain pitch sequencing features allow clouds to be easily organized to form granular chords.

An important aspect of granular synthesis is the modulation of the various parameters. Internal random and periodic modulation is available but each parameter can also be individually controlled by an external CV signal.

Note that the parameters for a grain are sampled at the instance that it is seeded and remain fixed during its lifetime. So for example if the pitch parameter is being swept up and down then rather than the pitch of all active grains changing in tandem each grain keeps the pitch shift setting that was current at the point of its creation – producing a polyphonic arpeggio effect rather than a unison siren.

A very simplified diagram of the Granular Synth

Quick Start Guide

Load the Granular Synth module into a new empty Voltage Modular patch.

Connect the module’s outputs to Voltage Modular’s MAIN OUTS by patching the Granular Synth’s L OUT socket to the 1L(M) socket and the R OUT socket to the 1R socket.

Click on the Granular Synth’s RECORD button. As nothing is connected to the module’s inputs this loads up a handy test sample.

The module will then switch to Audition mode as indicated by a blue waveform display. You should hear the test sample being played back in a loop.

Cick on the SYNTH button to switch to Synthesizer mode. The waveform display will change to green and you’ll now hear a very basic granular sound with grains being seeded halfway through the buffer. You should also see a small flashing circle on the waveform display.

Each grain is represented by a circle superimposed on the waveform display. The circle’s diameter represents the grain’s amplitude. The horizontal position indicates where in the buffer the grain’s audio is being extracted from.

Now click on the RANDOM button. Each click randomizes the grain parameters and after a few clicks you should hopefully find something interesting.

Slowly turn the RATE knob up and down. You’ll see and hear the seeding rate vary from very slow to very fast.

Try using the mouse on the waveform display. This enables you to adjust the OFFSET control and one other parameter. The default for this second parameter is PITCH (as indicated by the highlighted label) but you can click on any of the other parameter’s labels (except OFFSET) to select them.

The vertical position of a grain’s circle shows the grain’s value for the selected parameter.

We’ve only just scratched the surface of the Granular Synth. It’s a very deep module with much subtle complexity. However it’s been designed to be as easy to use as possible and experimentation will take you a long way. When curiosity finally gets the better of your intuition you will find a lot of detailed information below that should help you to explore the depths.

Basic Operations

A number of buttons on the left side of the module allow key tasks to be carried out with ease.

LOAD

Loads the buffer with a sample from a file. Alternatively a sample may be loaded by dragging and dropping a file on to the module.

WAV, MP3, AIFF and OGG file formats are supported.

The Load button is disabled when the module is in Record mode.

APPEND

Loads a sample from a file and appends it to the existing buffer content. This enables you to collect together a number of separate samples in a single buffer.

The Append button is disabled when the module is in Record mode.

RECORD

Records audio from the input sockets directly into the buffer. The buffer expands automatically as required.

If the Record button is clicked while nothing is connected to the input sockets then a built-in test sample is loaded into the buffer. This is useful for initial experimentation.

In record mode the waveform display is colored red.

If only one input is connected you will end up with a mono recording but this doesn’t mean that the module’s output will be restricted to mono as individual grains have their own stereo positions. However you will get a richer stereo image when working with a stereo sample as panning then shifts the balance of the stereo grain rather than just positioning a mono grain somewhere in the stereo field.

Recording can be ended by clicking on the Record button again or by clicking on the Audition or Synth buttons. Recording will also end automatically if the total recording time exceeds 60 seconds.

Samples longer than 60 seconds can be still be loaded from files but in practice you’ll find that 60 seconds is more than adequate when recording something live and will usually even allow enough time for you to record two or three takes. You can then use the Audition trim facility to select the take you like best.

While recording the input signals are fed to the outputs to simplify monitoring.

Audio inputs

When any inputs are connected the module’s Envelope Follower responds to the inputs signals so the magenta colored meter gives a rough guide to input level when recording.

Envelope Follower

Although the module itself won’t clip when overdriven the file copy of the sample can so care needs to be taken when recording.

The small knob above the input sockets allows input gain to be adjusted. The LED next to it indicates clipping. If it illuminates turn the knob CCW slightly until the LED no longer flashes.

A soft limiter kicks in at very high levels to help tame things, but don’t rely on this as limiting causes signal coloration and fast transients can still cause clipping anyway.

AUDITION

Plays the untreated buffer content in a loop and optionally allows for a subsection of the buffer to be non-destructively selected using the START and END trim knobs.

You can also use the mouse to adjust the trim by clicking and dragging on the waveform display.

In Audition mode the waveform display is colored blue and always shows the entire buffer. Any trimmed areas are marked with a grey background.

Trimming a sample

To make fine adjustments to trim hold down the CTRL (or ⌘) key while adjusting the knobs.

Tip: if you are trying to extract a subsection that is tiny compared to the overall buffer size then first make a slightly over-generous approximation and export it then load that file back in to do a more precise trim.

If the START trim setting is set later than the END trim setting then the subsection will play backwards and will be marked with a pink background.

Trim can only be adjusted while in Audition mode.

EXPORT

Saves the buffer (or a subsection of the buffer if trimmed using the Audition trim knobs) as a WAV file.

EXPORT only works when in Audition mode.

The combined funtionality of Load, Append, Record, Audition, Trim and Export enables you to perform all basic audio editing operations using just the Granular Synth.

SYNTH

This is the Granular Synth’s main mode of operation. It allows grains and notes to be generated using the content of the buffer (or a subsection of the buffer if trimmed using the Audition trim knobs).

If Audition trim has been applied then the waveform display shows a zoomed in view of just the trimmed subsection. From the perspective of the granular synthesizer the audio outside of the trimmed subsection does not exist.

The Waveform Display

The waveform display gives you a lot of visual feedback about what the module is doing. The most obvious feature is the representation of the buffer content. In Record mode the waveform is red, in Audition mode it’s blue, in Synth mode it is green.

Grains are represented by colored circles. Their horizontal position shows where a grain is in the buffer. The diameter represents the amplitude of a grain.

Each new grain has a slightly different color to the last, cycling through the color spectrum. This gives you a way of judging seeding rate, cloud density and how old individual grains are.

The vertical position of a grain depends on which grain parameter you want to look at. This can be changed by clicking on the label beneath the main knob of a grain parameter. So for instance if you click on PAN then grains that are on the right of the stereo image are shown higher up the display than those on the left.

The PAN parameter selected

Note that when PITCH is selected the octave part of the pitch is ignored by the display (so for instance an F# will always appear at a particular vertical position regardless of which octave it’s in). Also OFFSET can’t be selected as this information is already being displayed by horizontal position.

If you have an old computer with little in the way of graphics acceleration you will probably need to uncheck the Display All Grains option in SETTINGS to reduce CPU load. Even with a powerful machine you may wish to do this sometimes just to optimize a patch, especially if you have multiple copies of the Granular Synth running at the same time.

With the Display All Grains option unchecked there will still be a single grain displayed. This gives you just enough information to work out roughly what’s going on.

The vertical white line shows the position in the buffer as set by the OFFSET knob. The fainter vertical red line shows how this position is being modified by modulation.

The horizontal white line shows the setting of the currently selected parameter. The fainter horizontal red line shows how this parameter is being modified by modulation.

These lines are called the Base and Final Crosshairs and you can switch them off in the SETTINGS if you desire.

The crosshairs

You can click on the waveform display and drag the base crosshairs about with the mouse. This enables you to easily tweak two knobs simultaneously.


Incidentally the MOUSE GATE socket on the Granular Synth Breakout module provides a signal that is high when the left mouse button is pressed and the mouse cursor is over the waveform display – this can be useful in performance situations.

Note that non-grain parameters (for instance RATE or PROB) aren’t reflected in the vertical position of the grain circles as they are global settings rather than specific to an individual grain, but they can still be selected. That’s why sometimes you will see a label with a solid highlight (representing a grain parameter) or an outline highlight (representing a non-grain parameter).

PROB is a non-grain parameter while PITCH is a grain parameter

It’s possible to view both a grain parameter (by vertical position of a grain’s circle) and a non-grain parameter (by vertical position of the white and red horizontal lines) at the same time.

Seeding Parameters

RATE

This parameter controls the rate of an internal clock that triggers grain seeding. Each tick of this clock usually generates a grain although whether a grain is actually seeded also depends on the probability parameter.

When the RATE knob is fully CCW the rate is very slow, fully CW it’s at audio rate (C3 with no modulation).

Audio-rate seeding is a powerful technique for creating very dense textures but sometimes it can produce a ring-modulation like effect. This can sound quite unpleasant but you should find that simply adding a small amount of modulation to the RATE and/or OFFSET parameters transforms the effect into something far more interesting.

The SEED OUT socket provides a signal that triggers every time the internal clock and probability mechanism fires.

An external clock plugged into the SEED IN socket will bypass the internal clock.

When using multiple Granular Synth modules in a patch it can sometimes be useful to connect the SEED OUT socket of one “master” to the the SEED IN sockets of any “slaves”. All of the modules will then seed grains at the same time.

The rate can be voltage controlled by an external modulation source if required. When the attenuvertor is set fully CW then this modulation operates at 1 volt per octave.

If nothing is connected to the CV input socket then the small attenuvertor knob is repurposed for internal modulation as described shortly.

The internal clock is reset when the module’s GATE socket detects a rising edge. This ensures that a grain can be seeded exactly in sync with the beginning of a note event.

PROB

This parameter controls the probability of a grain actually being seeded by the internal clock described above.

When no modulation is applied then the main knob makes grains extremely improbable when fully CCW. When fully CW grains become 100% certain. 12 o’clock is 50%. The knob’s default setting is fully CW.

If a signal is connected to the CV input then it modulates the probability according to the setting of the small attenuvertor knob. One application of this is to produce gated seeding – for instance one might want grains to only be created when a key is held down.

If nothing is connected to the CV input socket then the small attenuvertor knob is repurposed for internal modulation as described shortly.

Max Grains and Grain Stealing

The MAX GRAINS knob controls how many grains can be active at the same time. It can be set to anything between 2 and 500 grains.

The pie chart on the left of the knob indicates how many grains are currently active as a proportion of the knob’s setting.

When the number of grains approaches the limit the LED will light up to indicate the onset of grain stealing. This uses a range of strategies to manage the grain density in as transparent a fashion as possible.

The CPU load required to deliver hundreds of simultaneous grains is very significant so the MAX GRAINS setting is pretty much essential for adjusting CPU usage when running the Granular Synth on older machines (although the clouds produced will obviously be far less dense than possible on more powerful machines).

The setting can also be used creatively as it changes how the Density modulation parameter is calculated.

Attenuvertor Operation

Below each of the main parameter knobs there’s a smaller knob and a CV input socket.

When the socket is connected to an external CV source then the small knob controls the amount of modulation applied to the parameter.

When the smaller knob is at its default 12 o’clock setting there is no modulation. As the knob is moved CW then the modulation increases. As the knob is moved CCW from 12 o’clock the modulation increases but the polarity is reversed. The – and + labels indicate this polarity.

The attenuvertor term comes from this combined capability of both attenuating and inverting a signal.

When nothing is connected to a CV input socket the small knob is repurposed rather than being left redundant.

Again at 12 o’clock there is no modulation. But as the knob is turned CW from 12 o’clock increasing amounts of one kind of internally generated modulation is applied. If the knob is turned CCW then increasing amounts of another source of internal modulation is applied.

Various internal modulations are assignable by clicking on the + or – symbols associated with each attenuvertor.

A source assigned to a – sign has its polarity inverted. Although later we’ll see that Random modulation is treated a little differently.

Color-coding is used to indicate the modulation source.

All of the modulation sources in this menu will be discussed later.

The modulation of some parameters by some modulation sources might arguably be rather bizarre but no attempt has been made to try to limit the options because sometimes you’ll find that slightly crazy modulations produce interesting results.

Note that any modulation (whether internal or external ) is combined with the main knob’s setting.

All internal modulation sources selected via the menu have a uniform range and are bi-polar in the sense that they can alter a parameter’s value both up and down from the setting of the main knob. In other words the main knob sets the center value about which any modulation varies.

Handling external modulation is slightly more tricky though as some CV sources range from -5 to + 5 V while many range just from 0 to +5 V.

In order to make external modulation sources that are uni-polar (ranging from 0 to 5 V) capable of modulating the entire range of a parameter the sensitivity of the module to external modulation is effectively twice that of internal sources, This enables things like velocity, after touch, the mod wheel and standard sequencers to fully adjust parameters without the need to multiple values by two. The slight downside of this is that it’s relatively easy for external modulation when added to a parameter’s knob value to reach maximum and minimum values when the attenuvertor is set at maximum. The resulting values are limited at the maximum and minimum values so it doesn’t have any major impact, it’s just that external modulation can therefore clip by bottoming out or topping out relatively easily.

This is not something restricted to just this module and it can actually be useful sometimes as a creative tool but it’s something to be aware of.

To give you a visual idea of what this is all about here’s an image showing how a triangular wave modulation might be affected by exceeding maximum value.

The purpose of the red line final crosshairs mentioned earlier is to enable you to see what a parameter’s final values are doing when the effects of the main knob , attenuvertor setting and internal or external modulation voltage are all combined.

Grain Parameters

Each grain has seven parameters. These are sampled at the point a grain is seeded and remain fixed throughout the lifetime of the grain.

The seven Grain Parameter knobs

While one might initially think that because an individual grain’s parameters are frozen at the point of its creation this would result in some kind of disadvantage or lack of flexibility but it actually turns out to have profound benefits.

It means that as the seven parameters vary (as a result of modulation) each grain captures and sustains a unique point in time. So even quite mundane modulations can give rise to unexpectedly beautiful juxtapositions of overlapping grains. When there are large numbers of grains playing simultaneously, each with their own unique characteristics, this can create extremely rich and lush textures that are well beyond the capabilities of conventional synthesizers.

A second benefit is computational efficiency. As much work as possible is front-loaded into the seeding of a grain (which happens just once in a grain’s lifetime) in order to streamline the work that needs to be done for each sample period (which might happen tens of thousands of times in a grain’s lifetime).

OFFSET

This parameter controls where in the buffer the playback of a grain begins.

Because the Offset knob setting maps directly to the horizontal axis of the waveform display, another way to control offset is by a mouse click or drag on the waveform display. You will find that such mouse operations automatically change the knob setting.

When CV control is used, if the knob is set fully CCW and the attenuvertor knob is set fully CW then an input of 0 volts corresponds to the beginning of the buffer and 5 volts corresponds to the end of the buffer.

If nothing is connected to the CV input socket then the small attenuvertor knob is repurposed for internal modulation as described earlier.

The offset of a grain can have a huge impact on what it sounds like, especially if there is a lot of sonic variation in the sample loaded into the buffer. So often one might want to restrict the offset modulation so that grains are selected from a relatively small region of the buffer rather than them ranging over the entire buffer. So there is a button labelled 1/10 which attenuates the offset modulation by a factor of ten.

A rough guide is to have this button engaged when you want a controlled sound and to have it disengaged when you want something a little wilder.

Beneath the one tenth button is another labelled RFLCT. This is short for Reflect.

When the Reflect button is engaged grains with offsets that go off the edge of the buffer (either earlier or later in time) are reflected back into the buffer. You could think of a ball bouncing off of a wall. This feature produces some interesting effect with sounds reversing direction.

When the Reflect button is disengaged any grains that go beyond the limits of the buffer become silent. This can produce interesting effects too.

PITCH

This parameter controls the pitch shift of a grain from its natural pitch (the pitch of the sound in the buffer).

If you want to use Granular Synth sounds alongside other sound sources to create something that is in tune then it’s best if you use samples that are tuned to C. You can use the PITCH knob to retune samples inside Granular Synth but it’s far easier if the sample is already in C.

When there’s no modulation and the main knob is at 12 o’clock then no pitch shift is applied. Fully CCW results in a drop in pitch of 2 octaves. Fully CW results in a rise in pitch of 2 octaves.

Granular Synth offers some quite sophisticated pitch control mechanisms including customizable quantization and arpeggiation that is linked to the seeding mechanism. When the seeding rate is high and/or grain size is large then arpeggiation generates granular chords.

Much of the potential of these mechanisms is tied to the Adroit Synthesis LSSP technology of S-Poly chord and scale signals. If you are familiar with LSSP this will already make sense but don’t worry if you are not as the Granular Synth comes bundled with two modules from LSSP that enable you to generate these signal. More details later.

This is all controlled by a slide switch marked O M D U. This is obviously rather cryptic but you’ll soon get the hang of it (and having full-form buttons would have taken up an awful lot of space in an already crowded GUI).

O = Off
M = Monophonic
D = Down
U = Up

O = Off Mode

When the switch is in the O setting no quantization is applied so grains can have any pitch. This mode is suitable for more abstract kinds of sounds, special effects and so on. Although if you feed the V/OCT input with a pitch CV that is correctly tuned then you will get musical results when no modulation is applied.

Pitch control mechanism in Off Mode

M = Monophonic Mode

When the switch is in the M setting then quantization is applied so that grains will have a more musical sound. If nothing is connected to the QUANTIZE socket then the pitch is adjusted to match the nearest semitone. In other words pitches are forced to fit the chromatic scale.

However if an S-Poly chord or scale signal is plugged into the QUANTIZE socket then the pitch will be adjusted to fit the chord or scale.

Pitch control mechanism in Monophonic mode

U/D = Up/Down Modes

When the switch is in the U or D setting then a feature designed to create either arpeggio or polyphonic effects is brought into play.

These modes are intended to be used in conjunction with an S-Poly chord signal being fed to the QUANTIZE socket. However if nothing is connected then the module pretends that a C Minor 9th chord is plugged in. This gives you something to experiment with while learning about the module.

Pitch control mechanism in Down and Up modes

Unlike a conventional setup where an arpeggiator selects a note from a chord and feeds it directly to a voice, here the note selected by the arpeggiator is used as an offset to the existing pitch information. This creates far more interesting patterns than a conventional arpeggiator but the results are still highly musical because the quantization guarantees that the final pitch is still inside the chord.

AMP

This parameter controls the amplitide (or volume level) of a grain.

This is perhaps the simplest to understand of the grain parameters but its careful modulation can have a major impact on the sound of the Granular Synth. For instance by using Grain Pitch as the modulator different pitches in a granular chord can be given different emphasis. Also complex rhythmic effects can be constructed by modulating amplitude by a sequencer clocked by SEED OUT.

SIZE

This parameter controls the size (in other words the duration) and also the direction of play of a grain.

When no modulation is applied turning the knob CCW beyond about 10 o’clock makes grains play backwards. A small white dot indicates this critical position.

Large size settings produce a lot of overlap in grain lifetimes and therefore the cloud density increases. This can sound fabulous but be aware that CPU load increases in relation to density.

One way to mitigate this is to negatively modulate the grain size parameter by Density. This reduces the size of new grains as density increases. Note it’s also possible to positively modulate grain size by Density. This positive feedback loop can produce some very nice chaotic explosions of sound but be aware it produces huge surges in CPU. But you can control this with the MAX GRAINS knob.

SHAPE

This parameter controls the envelope shape of a grain. This should not to be confused with the note Envelope Generator that operates at the level of the entire cloud rather than on individual grains.

Small symbols surrounding the SHAPE knob give a rough indication of how this works. The image below shows in more detail how the shape changes as the parameter moves from 0% to 100%.

The image shows a snapshot view in 10% steps but the shape actually varies smoothly. Also note that the gap between grains varies depending on the seeding Rate and the Size parameter controls the duration of each grain envelope so this image shows just one possible situation.

A stream of grains with varying modulation

Like all parameters, grain shape can be modulated rapidly as shown by the image above. This is looking at the behaviour of just one stream of grains but in practice there may be many such streams all occurring at the same time.

PAN

This parameter controls the stereo position of a grain.

Pan controls stereo balance if the sample in the buffer is stereo, but even with a mono sample in the buffer it’s possible to generate quite detailed stereo images.

Something that works well in almost any situation is Gaussian random modulation of Pan. As explained later, if you assign Random to the + side of the attenuvertor you’ll get Gaussian distribution while on the – side you’ll get uniform distribution. Gaussian feels more comfortable as most of the time grains will tend to be near the center of the stereo image rather than leaping about all over the place.

Another great modulation to try is using Grain Pitch. This allows you to automatically pan different notes to different stereo positions. With external sequencing this can be done with precision.

REVERB

This parameter controls the amount of reverb applied to a grain.

One can think of the Pan and Reverb parameters as working together to place a grain in a two-dimensional space. Pan controlling how far to the left or right a grain is and Reverb controlling the perceived distance of a grain from the listener.

One novel aspect of the Granular Synth is that reverb is treated as a grain parameter rather than being simply added as an effect that’s strapped onto the final outputs. This has a cost in terms of CPU load but it opens up all kinds of interesting possibilities. As a whacky example it’s possible to apply reverb to just the fifth in a granular chord.

Another unusual aspect of the Granular Synth (that you may have noticed in the simplified diagram right at the top of this page) is that a voltage controlled filter is applied after the reverb rather than before. This gives the filter a real bite as it can sculpt the reverb tail whereas normally any filter modulation would be smeared by reverb applied after the filter. This meshes with the idea of reverb being a grain parameter too – the reverb is a part of a grain’s personal environment rather than a global effect. You can of course still apply conventional reverb to the outputs of the Granular Synth so nothing is lost by this approach,

Grain Parameter Randomization

You’ve probably already used the RANDOM button many times.

When you click on the RANDOM button you will have seen that it randomizes the settings of the main knob, attenuvertor and both the – and + modulation sources of each grain parameter’s.

But one important thing to note is that this randomization only applies to parameters that do not have an external CV connection. In other words when something is plugged into the socket beneath a grain parameter’s attenuvertor it is no longer affected by randomization. So sometimes you might want to plug in a dummy cable in order to disable the randomization of a particular parameter.

Although obviously the thing that has the most impact on the output of the Granular Synth is the sample in the buffer, randomization is a very useful tool because the number of possible settings for the grain parameter controls is astronomical and being able to randomly explore enables one to find an interesting starting place in a reasonable amount of time. One can then adjust the controls to zero in on something that really works.

Consider how large the parametric space is by just looking at the routing of internal modulation sources to parameters (ignoring modulation polarity, strength and the basic setting of the main knobs). There are ten modulation sources and seven parameters so that means there a 10 million (10 to the power of 7) possible modulation assignments.

Clicking on the RANDOM button can be so useful that you might want to automate it by connecting a gate/trigger/clock signal to the socket on the left of the button. This can lead to wildly varying sounds but you can calm things down by disabling some randomization by plugging in cables for some parameters as explained above.

Internal Modulation Sources

Menu of modulation sources when a + or – sign is clicked on

External CV sources connected to individual parameter CV input sockets allow you to gain full control over modulation but to help simplify patches certain internally generated modulation sources are available when nothing is connected to a CV input socket.

To keep things relatively simple each parameter can be modulated by only one of these internal sources at a time but given the number of parameters and range of sources this still leaves a myriad of options (and remember there are no such limitations when external CV is used).

If any of these (except random, as discussed below) are assigned to the – rather than + side of an attenuvertor then the modulation is inverted. So for instance it’s possible to make one parameter increase as the envelope rises while another parameter decreases.

Random: each parameter has its own independent random value generator.

When Random is assigned to the negative side of a parameter’s attenuvertor the random distribution is uniform. When it’s assigned to the positive side it has a Gaussian (bell-shaped) distribution. This is generally a more useful distribution as most of the time it will produce values close to the center only rarely straying to extremes. This is closer to how real world events tend to occur rather than the rather chaotic behaviour of uniform distribution.

One subtle difference with random modulation is the sample rate. Random values for grain parameters are always sampled at the point a grain is seeded but random values for non-grain parameters are sampled once per envelope cycle.

Density: a value proportional to the number of currently active grains compared with the MAX GRAINS setting. It corresponds to the proportion of the pie chart that is filled in red.

Density

LFO1 Sine::A free-running low frequency oscillator with a sinewave shaped output.

The four LFOs, LFO1 on the left

LFO1 Cosine: The same low frequency oscillator but with the output phase shifted by 90 degrees.

LFO1 Sine in green, LFO1 Cosine in red

LFO2: A triangular wave LFO that can optionally be reset to the lowest point of its cycle by a rising Gate signal if its SYNC button is engaged.

LFO3: Another triangular wave LFO but this one is reset to the midpoint of its cycle by a rising Gate if its SYNC button is engaged.

Basic triangular wave without sync

The exact effects of LFO sync depends on the frequency ratios but it can deliver some interesting modulation waveforms as shown below.

Gate in red, LFO2 in cyan, LFO3 in yellow

LFO4: A “wobbly” LFO with a Brownian output. This modulation source kind of simulates a user twiddling a knob in a slightly haphazard fashion. Its behaviour is a little erratic and changes character depending on its RATE setting but that’s not necessarily a bad thing.

LFO4

Envelope Follower: a value proportional to the amplitude of the module’s output signals. However if something is connected to either (or both) of the input sockets then the Envelope Follower modulation tracks the amplitude of the input – enabling external audio signals to have an impact on parameters.

Envelope Follower in magenta

Envelope: a value that tracks the built-in envelope generator. The Envelope Generator will be discussed in its own dedicated section shortly.

Grain Pitch: a value proportional to the pitch of a grain when it is created. The octave is ignored. This offers some very interesting creative possibilities – for instance making each note of an arpeggio or granular chord have a different stereo position, grain size, grain shape and so on.

Grain Pitch

Grain pitch can create a wide range of patterns as it is affected by several variables (especially pitch modulation and the setting of the O M D U switch).

Modulation Feedback

Density and the Envelope Follower (when no inputs are connected) provide modulation sources that are based on outcomes of the module’s operation and can vary in complex ways in response to parameters changing. By using these sources to modulate parameters one can set up one or more feedback loops.

As one slightly crazy example you could make the attack time of the looping envelope generator proportional to density then make the envelope modulate the filter which in turn affects the output level which in turn affects the Envelope Follower which you might use to control seeding probability which in turn affects the density and output level and we go round and round…

Such positive and negative feedback loops can produce fascinating results with sounds that exhibit chaotic behaviour. With a little care and patience you should be able to discover settings where the Granular Synth almost appears to have a mind of its own.

The Envelope Generator

The Envelope Generator provides a mechanism for sculpting the amplitude of a cloud over time. It’s also a very flexible modulation source. It should not be confused with the grain shaping envelopes – these apply to individual grains. To try to avoid confusion the grain envelopes are called shapes.

The envelope’s output value is displayed by the little blue meter and LEDs above the DELAY, ATTACK, HOLD and RELEASE knobs light up to show which phase of the envelope is currently active.

DEPTH

One very important control is the DEPTH knob. This determines how much impact the Envelope Generator has on the amplitude (volume) of the cloud.

When the DEPTH knob is fully CCW (minimum setting) the Envelope Generator has no impact at all on the cloud’s amplitude (the audio passes straight through). With this setting the Envelope Generator can be used purely as a modulation source.

When the DEPTH knob is fully CW (maximum setting) the Envelope Generator operates like a conventional synthesizer’s VCA envelope. In other words when the envelope value is at zero then no sound passes while when the envelope is at maximum value the audio is let through at full volume.

When DEPTH is set fully CW and the envelope value is at zero then the internal seeding clock stops generating grains. This massively reduces the CPU load when a Granular Synth module is not producing any sound. Note this can make a critical difference in large patches containing multiple Granular Synth modules that aren’t always running at the same time as the idle Granular Synths use up very little CPU. Contrast this with a conventional patch that uses lots of VCOs, VCAs, VCFs, envelope generators etc – even when the conventional modules aren’t contributing anything to the sound they continue to use the same CPU resources because they don’t “know” they aren’t contributing anything.

When the DEPTH knob is somewhere between minimum and maximum settings then the Envelope Generator controls the amplitude of the cloud but some audio still passes through even when the envelope value is at zero. This can be used to create amplitude modulation (or tremolo) effects.

GATE

The GATE input accepts a regular gate signal.

If nothing is connected to the GATE input then the Envelope Generator behaves as if it is receiving a gate signal that is always high. This is indicated by the ring surrounding the socket being illuminated.

A rising gate signal resets the internal seeder clock so that it’s possible to ensure that a grain is seeded at exactly the same time as an envelope begins. This is important when tight timing is needed on transients or rhythmic effects.

LOOP

If the LOOP button is engaged then the envelope will automatically restart at the end of the release phase. If nothing is connected to the GATE input then this turns the Envelope Generator into an LFO.

If LOOP is engaged and a gate signal is connected to the GATE input then the hold phase does not sustain indefinitely (instead it just lasts for the period set) and the envelope repeats for as long as the gate is high. This is called Gated Looping mode and is useful for ratchet style sounds.

DECAY/ATTACK/HOLD/RELEASE

The Envelope Generator in the Granular Synth uses an DAHR design. It’s not the conventional ADSR design that you may be more familiar with. The reasoning being that because individual grains have their own shapes the amplitude sculpting needs are different, also much of the time you might actually be using the Envelope Generator as a sophisticated LFO with the LOOP button engaged.

One way to look at the Envelope Generator is as a four phase function generator with voltage control over the duration of each phase.

First lets look at how things work with LOOP disengaged, the default timing settings and a medium length gate signal being applied.

This is pretty much what you’d expect. The envelope sustains at maximum value for as long as the gate is high. This is with the minimum HOLD setting of 5 ms.

If we increase the HOLD setting so that it’s longer than the gate is high we get a longer sustain period. This is because the envelope sustains for whichever period is longest – the gate being high or the HOLD period.

The benefit of this is that one can use a trigger signal as well as a gate signal.

Being able to use a trigger rather than a gate is particularly useful when dealing with percussive sounds as the hold phase can be effectively skipped by using the minimum HOLD setting as shown below.

Unlike some envelope generators the attack phase is not aborted if the gate drops early as illustrated below where the ATTACK setting is increased to make this fact really obvious.

Next let’s look at the DELAY setting. This enables us to delay the start of the envelope for a while. This is useful for instance if we have a pair of Granular Synths working in tandem with one handling the attack transient and the other the main body of a note. The DELAY setting is also very useful when LOOP is engaged.

In the image above all four periods of the Envelope Generator have medium length settings,

Another thing to look at is re-triggering. As you can see in the image below If a new gate signal occurs while the envelope is in its release phase it will return to the attack phase.

When LOOP is engaged the Envelope Generator acts like an LFO and each of the four timing parameters comes into play in determining the shape of its output. The fact that all of these parameters can be independently controlled by internal or external CV modulation makes the Envelope Generator a very flexible modulation source.

The image below shows the waveform when DELAY, ATTACK, HOLD and RELEASE all have the same settings.

By using modulation all kinds of bizarre waveforms can be created. For example…

The Filter

A stereo low-pass filter is applied to the outputs of the module. The FILTER knob (along with any modulation applied using the usual mechanisms) controls the cut-off frequency of this filter.

By default the FILTER knob is set at maximum in which case (with no modulation) the filter has almost no effect on the sound but by dropping the cut-off it’s possible to remove varying amounts of high frequency content.

Many granular sounds have a certain brittleness but the simple technique of applying a low-pass filter can extend the sonic range to include very warm sounds that one might not normally associate with granular synthesis.

One might sometimes turn down the FILTER knob by a small amount just to warm things up a little, but the filter cut-off can also be modulated like all the other parameters so there are many creative possibilities beyond this simple use as a treble tone control.

The Compressor

Because the number of simultaneously active grains can vary enormously a compression facility is provided in order to help tame the resulting huge variation in volume.

The compressor uses a fixed threshold, attack and release to simplify things. The COMPRESS knob controls the compression ratio from 1:1 (no compression) at the minimum setting all the way up to 16:1 (hard compression) at the maximum setting.

You want to sufficiently control the dynamic range so that the very quiet bits are still audible while the very loud bits don’t cause distortion but normally you should use as little compression as possible because overdoing it can take the life out of an otherwise expressive sound.

The default setting of 8:1 (with the knob at 12 o’clock) works well in most circumstances.

The LED to the top right of the knob lights up in proportion to the amount of gain reduction applied so if it’s at full brightness all of the time you should probably turn down the knob or adjust other aspects of the settings (such as reducing the AMP setting).

Outputs

The main audio outputs of the Granular Synth are located in the bottom right of the module.

The small knob above the output sockets allows you to adjust the output levels. The LED lights up to indicate that the outputs are at or above the nominal +/- 5 V level used in Voltage Modular. It’s not an indication of clipping just a friendly warning that the output level is pretty high and might need checking.

When nothing is connected to the module’s inputs the outputs drive the Envelope Follower so it’s possible to modulate various parameters by the output level. The magenta colored meter shows the output of the Envelope Follower.

Settings

Click on SETTINGS button to display a pop-up menu of options.

The options available are all simple on/off ones. A little tick indicates if an option is enabled.

Display All Grains

When checked all active grains are shown on the Waveform Display. On an old machine with little graphics acceleration you should uncheck this option to lower the CPU load. Even on a modern high powered machine you might still sometimes want to uncheck this option to save CPU and GPU load especially if using multiple Granular Synths at once.

Display Base Crosshairs

When checked the white lines on the Waveform Display are enabled. These show the basic settings of the OFFSET parameter and one other parameter before any modulation is applied.

Display Final Crosshairs

When checked the faint red lines on the Waveform Display are enabled. These show the final settings of the OFFSET parameter and one other parameter after any modulation is applied.

Display Buffer Size

When checked information about the buffer is displayed in the top right of the Waveform Display

Display File Info

When checked information about the last file operation is displayed in the top left of the Waveform Display.

Save Sample Data in Preset

When checked the content of the buffer is stored as part of a preset (a .voltagepreset file). This means you don’t have to worry about the location or even the existence of the original sample and you can exchange preset files with someone else without any problems.

However it does mean that preset files can be rather large in size and when you have multiple presets all using the same sample data there is duplication and a certain waste of disk space.

So when this option is unchecked only the file system location of a sample is stored. However this only works if the buffer content is actually just based on a simple file load. So if you’ve just recorded something or have used Append to join several samples together then you’ll need to do an Export in order to benefit from this optimization.

Most of the time it’s just easier to save the sample data in the preset as modern computers have ample storage space. Therefore this option is enabled by default.

High Quality Interpolation

When checked the Granular Synth will perform higher quality interpolation than usual when scanning the buffer but this has a negative impact on CPU efficiency so is disabled by default.

This hasn’t been implemented yet as low quality interpolation seems to work pretty well and for the moment other improvements will yield more results. So it’s a tweak that I’m leaving until later. It ought to produce better results at higher frequencies but may not be worth the CPU hit in the end.

LSSP and S-Poly

As mentioned earlier the Granular Synth’s QUANTIZE input uses S-Poly scale and chord signals.

It would have been possible to integrate certain scales and chords inside the module (as other granular synthesizers do) but this would have been very limiting so instead the whole problem is off-loaded via the QUANTIZE socket.

The Granular Synth was designed to integrate well with the Adroit Synthesis LSSP system but it would be unfair to expect users to adopt LSSP just to access basic chords and scales. So two modules from LSSP are bundled in with the Granular Synth to give everyone access to core facilities.

These LSSP modules are called Chord and Chord Memory.

These two modules offer a great deal of functionality but if you are interested in even more sophisticated control then you might want to look at LSSP as an option because it includes a specialized sequencer for handling chord progressions (called Progression) and a range of other modules that deal with chords and scales.

Skins

By default the Chord and Chord Memory modules use the skinning setup of LSSP so initially will look very different to the Granular Synth.

If you have LSSP then you can adopt the Granular Synth look for all LSSP modules by using the Skin module, selecting PLAIN and setting SATURATION to 0% and BRIGHTNESS to 20% (HUE doesn’t have any effect when SATURATION is at zero).

But for people who don’t have LSSP there’s a quick and easy way to make the Chord and Chord Memory modules have the same look as the Granular Synth and that is simply to right click on the ~Adroit~ logo at the bottom of these modules. They will then switch backgrounds. You only need to do this once as they will remember the setting. Another right click on the logo will return them to normal behaviour.

Using the Chord and Chord Memory Modules

To connect the Chord module to the Granular Synth patch its CHORD OUT socket to the QUANTIZE input as shown below.

To connect the Chord Memory module to the Granular Synth patch its CHORD OUT socket to the QUANTIZE input socket.

When space is not a problem you can use both modules together. This is useful as Chord Memory acts very much like Note Watcher when in record mode so for the sake of this introduction load up both modules, engage the RECORD button on the Chord Memory module and patch them together as shown below.

Then when you click on a button on the Chord module you’ll see exactly which notes are being output because the relevant keys will light up on the Chord Memory module’s keyboard graphic. The LEDs at the top of the Chord module show very similar information but in a terms of intervals rather than notes. By looking at both together while listening to the Granular Synth operating in the U or D mode you should be able to reach a quite deep understanding of how chords are constructed if this is something new to you.

So in the image above the chord selected on the Chord module is a Major chord. In C (the default) this is a chord made up of C, E and G and we can see this information displayed on the keyboard graphic of the Chord Memory module. The LEDs at the top of the Chord module indicate that the chord consists of the root note (1) a major third (the upper LED in the 3 column) and a perfect fifth (the middle LED in the 5 column).

Now select a different chord by clicking on the Minor 7th button.

You can now see (and hear) that the Minor 7th chord consists of C, Eb, G and Bb and the intervals are root, minor third, perfect fifth and minor seventh.

As a general guide the chords on the left side of the Chord module are major in flavour and have a light happy feel while those on the right are minor in flavour and have a more serious or mysterious feel.

You can change the root note of the chord by sending a regular 1 V/Octave CV into the ROOT IN socket of the Chord module as demonstrated below.

So playing F changes the Cm7 chord into an Fm7 chord.

This CV can obviously be sequenced too.

If you remove the Chord module you’ll notice that the Chord Memory module remembers what the chord was.

But now if you play something on the QWERTY keyboard it changes the notes stored in the memory. This is because the RECORD button on the Chord Memory module is still engaged and when nothing is plugged into the CHORD IN socket the Chord Memory module monitors whatever notes are being played into Voltage Modular and remembers them. This means that if you have a MIDI keyboard plugged in you can play chords directly on the keyboard to program the Granular Synth.

The exact details of how this works are discussed in the Chord Memory documentation. This setup isn’t really intended as a mechanism for live polyphonic playing of a Granular Synth. It’s really just an easy way to program chords or scales. Having said that, with a little practice it can actually be used as a performance technique.

If the RECORD button is disengaged then the Chord Memory module no longer monitors what notes are being played into Voltage Modular. Instead you can just edit the notes by clicking on the module’s own keyboard graphic.

The Breakout Module

An optional add-on for the Granular Synth is the Granular Synth Breakout module. This connects via an S-Poly cable to the BREAKOUT socket and provides access to 16 different signals . It also includes three little utilities to help with signal processing tasks.

For full details check out the Breakout module’s dedicated documentation page.

Troubleshooting

No or very little sound

Output not connected
No sample loaded
PROB set at zero
AMP set at zero
Output adjust control set at zero
Gate input low and DEPTH set at maximum
RATE set very low
FILTER set very low
Very short envelope
Very long envelope DELAY
Offset scanning quiet part of sample
RFLCT button disengaged and offset scanning outside of buffer

Not recording

Input adjust control set at zero

Inside the Granular Synth

Textual descriptions of complex systems can be a little ambiguous so this technical appendix presents a couple of schematic style diagrams showing more precise information about the internal architecture of the Granular Synth.

The Granular Synth Architecture

The diagram below shows what’s inside the Grain Voice blocks in the diagram above.

A Grain Voice

These diagrams still show a rather simplified view of things and lots of details are missing but they will hopefully offer some insight for the more technically minded user wanting to dig deep into the Granular Synth.