Texture Granular Synth 3.0

Texture is an instrument to perform Asyncronous Granular Synthesis based upon the algorithm developed by Giorgio Nottoli [Conservatorio di Santa Cecilia, Roma], and is fully implemented with programming language C++.
It generates a grains’ flow in which the way each grain follows the other depends on probabilistic parameters such as grain density (attack/sec), overlapping, synchronism and fade of each grain.
The spectrum generated by the synthesis could be harmonic, expanded or contracted according to the value of frequency exponent parameter; the result will be a sound texture that can change from noisy fragmented sounds, to metallic and tuneless sounds such as bells, finally to harmonic sounds similar to strings or choirs.
Texture is available both as VST or Audio Unit instrument, and each interface’s parameter is automated and can be controlled by the host; some factory presets are implemented in a combo box on the upper-left side of the interface, but user can save his own sound inside the host if needed.
An advanced and a basic interface are provided for expert users or casual ones; we’re going to see the details in the following chapters.

Advanced Interface
Advanced Interface

Main Panel
The main panel is on the upper-middle side of the interface and it contains a master volume, a sustain button to hold the root note, a graph button to hide/show the spectrum that we’re going to generate, and a polyphony button to switch between monophonic and polyphonic mode.
In the polyphonic mode, we have a queue of 64 keys on which the partial harmonics of the spectrum will be distributed; the queue will be cleaned when user stop pressing any midi note.

Frequency Panel
Frequency deviation knob affects the harmonic distribution of the spectrum around the frequency root (midi note pressed on the piano keyboard); it can change between 0 and 2500 cents of frequency.
The first partial and the number of partials knobs affect respectively the first partial and the number of partials in the generated spectrum and their values can change between 1 and 128.
Finally frequency exponent [or Steve Mc Adams exponent] knob can vary between 0 and 2, and it generates a harmonic spectrum when its value is 1, a contracted spectrum if the value < 1, or an expanded spectrum when the value > 1.

Waveform Panel
Waveform Panel defines the sound content of the grains.
User can set the number of oscillators used to generate the sound texture, choosing between 32, 63, 128 or 256 active oscillators.
Waveform knob will set the harmonic number of the precomputed waves; it can change between 1 (simple sine wave) and 32 harmonics. The amplitudes of each harmonic decrease on 1/n order, similar to the behavior of a saw wave.

Micropoly Panel
The parameters in this panel will affect the way each grain follow in time the other.
They’re all probabilistic values, which mean each parameter sets the probability that the time event happens.
Density knob affects the number of attacks per second, and its value can change between 1 and 1000.
Overlapping knob sets on each instant the probability that the grain should continue to play, or it should start the release state of his envelope.
Finally the change knob affects the probability that the following grain should change his root frequency, so that in polyphonic mode it sets the rate each voice starts playing his sound.

Envelope Panel
This panel affects the grain’s envelope.
Inside the panel user can see two joystick controller, the first one controls the attack and decay time of each grain (they can change between 1 and 1000 ms), and the second one sets the sync and fade parameters.
The sync parameter changes the probability that the grain starts playing together with the previous one, and the fade parameter affects the probability that a crossfade occurs between grains.
Then we have four sliders to control the ADSR of the note played; attack, decay and release are rates, and can change between 1/40 of second and 40 seconds, on the other hand sustain is an amplitude, and it can change between 0 and 1.
Then user can control the amplitude exponent, which can change between 0 and 2, to modify the amplitude of the spectrum’s partials; when the value is 0 the results is a plan spectrum (with the same amplitude for each partial), when the value = 1 the amplitudes will be decreasing with the order of 1/n, and when the value >1 the higher partials will fade.
Finally amplitude deviation randomizes the amplitude of each partial.

Assign Panel
This panel contains four buttons in order to assign the current sound we’re playing to the basic interface.
Each of the four preset corresponds to one of the four vertex of the pad in the basic interface.

Basic Interface

The basic interface gives casual and not expert users a tool to play sound textures generated by granular synthesis.
On the four vertex of the preset pad (the red rectangle) we have pre loaded four factory sounds, and user can move the joystick in every position inside the rectangle to mix the preset and create a unique combination of the four sounds.
User can also assign to each vertex a sound specifically created in the advanced interface, by pressing the four buttons in the assign panel.
On the contrary user can create a sound texture by moving the joystick of the preset pad, then he can switch to the advanced interface to change the detailed parameters of the sound he has just chosen.

Unzip the archive and simply put Texture.dll in your plugin folder.