Layer System¶
Grainsmith has two independent layers, Layer 1 and Layer 2. Each layer has its own audio buffer, grain engine, window shape, pitch variation, and filter. The two layers share a single global synthesis block (sub oscillator, VCA + filter envelopes, glide), the effects chain (master filter, compressor, delay, reverb), and the modulation matrix.
Internally the code calls these "voices" and parameter names begin with
V1 / V2, but the UI and this manual use "Layer 1" / "Layer 2"
throughout.
What each layer owns¶
Truly per-layer controls โ independent between Layer 1 and Layer 2 โ live on the GRAIN, TEXTURE, and SYNTH tabs:
- Grain core (size, density, pitch, speed, jitter, spread, pan, level)
- Window shape, window morph, decay
- Pitch variation (probability, mode, direction, range)
- Dynamics randomisation
- Reverse probability
- Scan rate / depth
- Loop points, freeze state
- The per-layer filter (model, cutoff, resonance, drive, env depth)
- The per-layer Spectral Array Oscillator (SYNTH tab)
- Root note (used in Instrument play mode)
On the SYNTH tab, only the two Spectral Array Oscillator columns and
the Root 1 / Root 2
knobs are truly per-layer. The Sub Oscillator, VCA envelope, Filter
envelope, and Glide are all global: they are mounted in the UI via
Layer 1's parameters, and any change applies to both layers. The
per-layer parameter slots still exist in the preset format for backward
compatibility, but the audio engine runs a single shared instance.
See the SYNTH tab page for details.
What is shared between layers¶
The following are global and affect both layers together:
- SYNTH panel: sub oscillator, VCA / filter envelopes, glide
- FX chain: master filter, compressor, delay, reverb
- Master gain, dry/wet
- Modulation matrix (each lane can be targeted at a specific layer)
The Macro knob (the hero Morph control on the GRAIN tab) is per layer โ Layer 1 and Layer 2 each have their own, along with their own Morph LFO.
Buffer modes¶
A Link toggle on Layer 2's waveform display controls whether the two layers share one audio buffer or use independent ones:
- Independent (unlinked) โ each layer loads its own sample. Dropping a file onto Layer 1's waveform fills Layer 1; dropping onto Layer 2's waveform fills Layer 2.
- Linked (shared) โ Layer 2 reads from Layer 1's buffer. Loading a new sample into Layer 1 updates both layers. Useful for building dense textures from a single source.
In linked mode, Layer 2 still has its own grain parameters โ it's only the underlying audio that is shared.
Enabling and muting layers¶
Each layer has a power toggle that disables it entirely (no grains spawn, no CPU spent). Mute and solo buttons provide quick in-session silencing without resetting the layer.
Switching layers in compact mode¶
In the full two-row standalone layout, both layers' controls are visible side by side. In the compact AU or iPhone layout, only one layer's controls are visible at a time and the Layer 1 / Layer 2 segmented control in the header bar switches the view. Changing layers never stops playback โ both layers keep running, you are only changing what is visible for editing.