Skip to content

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.

See also