TEXTURE Tab¶
The TEXTURE tab shapes the character of each grain once the GRAIN tab has decided how big, how dense, and from where in the buffer it reads. Everything here is per-layer โ Layer 1 and Layer 2 each have their own independent TEXTURE settings. The tab is organised into five columns: Shape, Pitch, Dynamics, Reverse, and Scan.
Shape โ Grain Window¶
Every grain has an amplitude envelope ("window") applied on playback. The window determines whether grains sound smooth and pad-like, punchy and percussive, or plucked and decaying. A live preview above the knobs shows the current shape; tweaking Tilt, Curve, or Sides updates it in real time.
| Control | Range | Description |
|---|---|---|
Window Shape |
Hanning / Gaussian / Trapezoid / Triangle / Tukey / Pluck / PluckSoft / ExpDecay | Base envelope shape applied to every grain. |
Tilt |
0 โ 1 | Shifts the envelope peak earlier or later within the grain. 0.5 is symmetric. |
Curve |
0 โ 1 | Bends the attack and release slopes between linear and exponential. |
Sides |
0 โ 1 | Softens or sharpens the edges of the window (trapezoid / Tukey plateau width). |
Decay |
1 โ 10 | Exponent for the Pluck / PluckSoft / ExpDecay shapes. Higher = faster fall-off. |
Hanning and Gaussian give the smoothest, most classical granular sound. Trapezoid and Triangle produce punchier, more rhythmic grains. Pluck, PluckSoft, and ExpDecay give each grain a struck-string envelope that is great for pitched percussion and pointillist textures.
Morph¶
A MORPH toggle lets the window crossfade between two shapes over time. When enabled, a second dropdown (Window B) and two extra knobs appear.
| Control | Range | Description |
|---|---|---|
Window B |
same 8 shapes as Window Shape | Target window for the morph. |
Morph |
0 โ 1 | Static crossfade position between Window A and Window B. |
Rate |
0 โ 20 Hz | Automatic morph LFO speed. 0 = static (use the Morph knob manually), higher values cycle between A and B. |
Pitch Variation¶
Pitch Variation re-tunes individual grains at spawn time to add harmonic richness, arpeggios, or scale-snapped generative melodies. It stacks on top of the base Pitch knob on the GRAIN tab. Only grains that "win" the Probability dice roll are re-pitched.
| Control | Range | Description |
|---|---|---|
Prob |
0 โ 100 % | Chance that a new grain is re-pitched. 0 % = always use base pitch, 100 % = every grain. |
Mode |
Octaves / Oct+5ths / Scale | Octaves picks random octave transpositions; Oct+5ths adds perfect fifths; Scale snaps grains to a musical scale. |
Direction |
Both / Up / Down | Constrains variation to move only upward, only downward, or in either direction from the base pitch. |
Range |
1 Oct / 2 Oct / 3 Oct | Maximum transposition distance. |
In Scale mode an additional scale preset (0โ11) selects the quantisation
scale โ this lives inside the pitch-variation engine rather than as a
knob on the main tab. [TODO: verify scale preset names; the code stores
the index as VarScale (0โ11) but the name
list is not defined in GrainulatorV2.cpp.]
Note: Glide (pitch smoothing between notes) was previously shown here but is now on the SYNTH tab's MIDI panel.
Dynamics¶
Dynamics randomises each grain's amplitude at spawn, adding natural
breathiness or aggressive volume jitter depending on the Range setting.
The base grain level itself lives on the GRAIN tab
(Level); this section only adds variation on
top of it.
| Control | Range | Description |
|---|---|---|
Prob |
0 โ 100 % | Chance that a grain's amplitude is randomised. |
Range |
0 โ 1 | Maximum amplitude deviation. 0 = no change, 1 = grains can be fully attenuated. |
Reverse¶
| Control | Range | Description |
|---|---|---|
Reverse |
0 โ 100 % | Probability that a grain plays backward. 50 % gives an even mix of forward and reversed grains; 100 % reverses every grain. |
Because only the grain's playback direction flips โ not the source buffer โ Reverse works with any position, speed, or loop setting and can be modulated for rhythmic forward/backward effects.
Scan¶
Scan applies a slow position LFO to the grain spawn point, sweeping through the buffer over time. Combine with a static Position knob on the GRAIN tab to drift around a focal point, or with Speed 0 to replace static freezing with gentle motion.
| Control | Range | Description |
|---|---|---|
Rate |
0 โ 5 Hz | Speed of the scan LFO. 0 disables scanning. |
Depth |
0 โ 0.5 | Amount of buffer traversed by the LFO, as a fraction of the whole file. 0.5 covers half the buffer peak-to-peak. |