How to Use
A complete guide to GrainHeads
Watch a video
GrainHeads is a granular synthesizer for iOS. It takes any audio sample, splits it into tiny overlapping fragments called "grains," and plays them back in configurable streams to create evolving textures, rhythmic patterns, ambient pads, and glitchy soundscapes.
Key Concepts
- Heads — Independent grain streams (up to 8 in standalone, up to 5 in AUv3), each with its own sample slot, position, pitch, filter, and envelope
- Grains — Short audio fragments (10ms to 5s) extracted from the sample and shaped by a window envelope
- Sequencer — 16-step grid for rhythmic grain triggering with per-step parameter locks
- Touch Pad — Multi-finger XY controller for live performance
Quick Start
- Open the app — a factory sample is pre-loaded
- Tap Play (green button below the waveform)
- Listen to the default grain stream
- Drag the position marker on the waveform to explore different parts of the sample
- Adjust Grain Size and Rate sliders to change the texture
- Add a second head (tap +) with different settings for layered sound
- Switch to the Seq tab and tap cells to create a rhythm
- Try the Play tab — touch the pad with multiple fingers for live control
- Add reverb on the FX tab for atmosphere
- Save your creation as a preset
Heads Tab
The primary sound-shaping interface. This is where you control each playhead's grain parameters.
Top Bar
Menu | Samples | Presets | Dice | Limiter | Level Meter | CPU | Link | REC
Waveform Display
- Shows the loaded sample with colored position markers (one per head)
- Grain flashes animate when grains fire
- When a background video is loaded and playback is active, the video plays inside the waveform bars
- Drag a marker to move that head's position in the sample
- Tap the waveform to select the nearest head
Head Selector Row
- Colored circles numbered 1–8 represent each head
- Tap a circle to select it (all sliders below apply to that head)
- Tap the + button to add a new head (up to 8 in standalone, up to 5 in AUv3)
- Long press a head circle to delete it
Per-Head Parameters
| Parameter | Range | Description |
|---|---|---|
| Sample Slot | 1–4 | Which of the 4 loaded samples this head plays from (LFO-modulatable) |
| Position | 0–100% | Where in the sample grains are read from |
| Scatter | 0–50% | Random position variation per grain |
| Grain Size | 10ms–2s (or 5s) | Duration of each grain |
| Grain Rate | 1–40 Hz | How many grains fire per second |
| Grain Chance | 0–100% | Probability each grain actually plays |
| Pitch | -24 to +24 semitones | Playback rate (quantized to selected scale) |
| Reverse | Off / On | Play grains backwards |
| Envelope | Bezier Curve | Custom amplitude envelope shape per grain — opens the bezier curve editor |
| Pan | L100–C–R100 | Stereo position |
| Pan Spread | 0–100% | Random stereo variation per grain |
| Filter Type | LP / BP / HP | Lowpass, Bandpass, or Highpass |
| Filter Freq | 20–20,000 Hz | Filter cutoff frequency |
| Filter Res | 0–100% | Filter resonance / Q |
| Filter Drive | 0–100% | Saturation in the filter |
| Filter Slope | 12dB / 24dB | Filter steepness |
| Amplitude | 0–100% | Volume of this head |
| FX Send | 0–100% | How much goes to effects vs dry output |
Each parameter slider has an LFO button for modulation assignment.
Sample Slots
GrainHeads supports 4 sample slots. Load a different sample into each slot, then assign any head to play from any slot using the Sample Slot parameter (1–4).
- Tap Samples to open the sample browser, then tap a slot number (1–4) to choose which slot to load into
- Each head's Sample Slot slider selects which of the 4 slots that head reads from
- The Sample Slot parameter is LFO-modulatable — assign an LFO to sweep or jump between samples automatically for evolving multi-sample textures
- Different heads can play from different slots simultaneously, letting you layer and blend multiple source samples
Bezier Curve Envelope Editor
Design a custom grain envelope using the interactive bezier curve editor.
- Select Custom from the Envelope selector to open the bezier editor
- Drag control points and bezier handles to sculpt the exact envelope shape you want
- The curve defines the amplitude window applied to each grain — shape the attack, body, and release freely
- Create asymmetric envelopes, sharp transient attacks, slow fades, plateau shapes, or anything in between
- Each head can have its own independent custom envelope
Scale Quantization
Tap the Scale button next to the Pitch slider to quantize pitch to a musical scale. Options: Free (no quantization), Chromatic, Major, Minor, Harmonic Minor, Melodic Minor, Pentatonic Maj/Min, Blues, Dorian, Phrygian, Lydian, Mixolydian, Whole-Half, Whole Tone.
Dice Button
Randomizes all parameters for all present heads. A random scale can also be selected and applied to all heads at the same scale. Changes color on each press.
Seq Tab — Step Sequencer
A 16-step sequencer where each head has its own row. Heads with active sequencer steps play rhythmically instead of continuously.
Step Grid
- 16 columns (steps) x N rows (one per head)
- Tap a cell to toggle it on/off
- Long press a cell to open the step editor
Step Editor
Long-press any active step to open the editor:
- Pitch — quantized to the selected scale (shown as gray text)
- Size, Position, Chance — override per step
- Lockable overrides (tap the lock icon to enable): Reverse, Pan, Filter Freq, Filter Res, Filter Drive
When locked, the step uses its own value; when unlocked, it uses the head's default.
Per-Head Sequence Controls
- Length (1–16 steps) — Drag the range slider to set how many steps are active
- Start step (0–15) — Offset where the sequence begins
- Clock divider — Speed multiplier per head (/64 to x64). Use different dividers across heads for polyrhythmic patterns
Dice Button
Randomizes all sequences for all heads — step activation, pitch, grain size, position, chance, all parameter locks, length, start step, and clock rate.
Play Tab — Touch Pad
Live performance interface with a multi-touch XY pad.
Modes
- 1 Head — All fingers control the selected head. Each finger maps to a different pair of X/Y parameters
- Multi Heads — Each finger controls a different head. All fingers share the same X/Y parameter pair
- Multi Slots — Each finger controls a playhead in a separate sample slot (if available). Each finger has its own X/Y parameter assignments for its playhead
- Sampl — Chops the loaded sample into multiple chunks. Each finger triggers and plays a different chunk independently. A bank of configurable macros lets you shape playback in real time for creative effects
Sampl Mode Macros
Sampl mode exposes multiple configurable macros that act as creative-effect parameters across the chunked sample. Each macro maps to a different aspect of chunk playback so you can morph the result without leaving the pad.
- Chunks — Number of slices the sample is divided into
- Chunk Size — Length of each chunk relative to the slice boundary
- Order — Forward, reverse, or randomized chunk selection per finger
- Pitch — Per-chunk pitch offset (quantized to the selected scale)
- Filter — Per-chunk filter cutoff and resonance shaping
- Repeat / Stutter — Re-triggers the same chunk for glitch and stutter effects
- Spread — Stereo distribution of chunks across the field
Each macro is assignable to any finger, so you can build custom performance maps that turn one sample into a constantly evolving instrument.
Default Finger Assignments (Single Head Mode)
| Finger | X Axis | Y Axis |
|---|---|---|
| 1 (blue) | Position | Pitch |
| 2 (red) | Grain Rate | Grain Size |
| 3 (green) | Pan | Scatter |
| 4 (yellow) | Filter Freq | Filter Res |
Tap Fingers & Destinations to customize which parameters each finger controls.
Dice Button
Randomly shuffles finger-to-parameter assignments for instant performance variations.
FX Tab — Effects
Configure the effects chain: Noise, Delay, and Reverb.
Noise Generator
- Type — White, Vinyl, or Waves
- Level — 0–100%
Delay
- Send — Wet signal amount
- Time — Delay duration
- Width — Stereo spread of echoes
- Feedback — Echo repetition amount
Reverb
- Send — Wet signal amount
- Pre-delay — Gap before reverb tail
- Decay — Reverb tail length
- Filter — LP or HP filter on the reverb
- Cutoff — Filter frequency
Signal Routing
Drag effect blocks to reorder the chain (e.g., Delay before Reverb, or Reverb before Delay). Note: rerouting briefly stops playback.
Per-Head FX Send
Each head has its own FX Send slider on the Heads tab. At 0% the head is fully dry (bypasses effects). At 100% it goes entirely through the effects chain. This lets you layer dry percussive heads with wet ambient heads.
LFO Tab — Modulation
8 independent Low-Frequency Oscillators for parameter modulation.
Per LFO
- Waveform — Sine, Triangle, Square, Sawtooth (rising/falling), Sample & Hold
- Speed — 0.01–4 Hz
- Speed can itself be modulated by another LFO (meta-modulation)
- Lock LFO — Locks the LFO to the grid, syncing to the step sequencer speed in standalone or to the host tempo in AUv3
Assigning an LFO
- Go to the Heads tab and select a head
- Tap the LFO button next to any parameter slider
- Choose which LFO (1–8) modulates that parameter and set the depth
The slider shows a colored indicator when an LFO is active, pulsing to show the modulation range in real time.
Global FX Modulation
LFOs can also modulate effect parameters (delay time, reverb decay, etc.) from the LFO tab.
Samples
Tap Samples on the Heads or Seq tab to open the sample browser. GrainHeads has 4 sample slots — select a slot (1–4) before loading to choose where the sample goes.
- Select a slot (1–4) to choose which slot to load into
- Tap a sample to load it into the selected slot
- Long press the waveform thumbnail to preview (listen before loading)
- Swipe left to delete a sample
- Import (Pro) — Add audio files from your device (WAV, MP3, AIFF, M4A, CAF)
- Record (Pro) — Record from your device's microphone
The app includes 5 factory samples: Beat Meat, Grand Hammers, Grotesk, Morning Glory, and Ocean Strum.
Presets
Tap Presets on the Heads or Seq tab.
What's Saved in a Preset
All head parameters (including sample slot assignments and custom bezier envelopes), sequencer patterns, effects settings, LFO assignments, scale selection, and FX routing order.
- Save — Overwrites the current preset
- Save As — Save with a new name and folder
- Export — Share presets as .ghpresets files
- Import — Load preset files from other users
- Factory presets are included and always available
Limiter
A brickwall output limiter protects against clipping.
- Limit button (in the top bar) — Blue = active, dark = bypassed
- Tap to toggle. When turning on, a settings popup appears:
| Parameter | Range | Default |
|---|---|---|
| Threshold | -40 to 0 dB | -1 dB |
| Attack | 0.1–200 ms | 1 ms |
| Release | 10–3000 ms | 50 ms |
The limiter sits at the very end of the signal chain, after all effects. The level meter shows post-limiter output.
Meters
Visible on the Heads and Seq tabs:
- Stereo level meter — Horizontal dotted bars (L and R channels). Green = normal, yellow = moderate, red = near clipping
- CPU badge — Shows current processor usage. Green = normal, yellow = moderate (>40%), red = high (>70%)
Recording Output
Tap REC on the Heads or Seq tab (Pro feature).
- Records the full output (all heads + effects + limiter) to a WAV file
- Button shows "STOP" while recording (tap again to stop)
- The recorded file is saved to the app's temporary directory
- The level meter shows what's being recorded in real time
Ableton Link
Sync tempo across apps and devices on the same WiFi network.
- Tap the Link button in the top bar
- When active, BPM is driven by the Link session (your BPM slider becomes read-only)
- The sequencer, delay time, and grain triggering all sync to the shared tempo
- Long press the Link button for Link settings
- Works with Ableton Live, AUM, and any other Link-enabled app
AUv3 Plugin & AUFX Extension
GrainHeads includes an Audio Unit v3 instrument and an AUFX sound effect extension for use in host apps like AUM, GarageBand, Logic Pro, or Cubasis. The AUv3 instrument and AUFX extension support up to 5 playheads (the standalone app supports up to 8).
See how GrainHeads works as AUv3 unit
Setup in a Host
- Add GrainHeads as an instrument on an audio channel (not MIDI-only)
- Route MIDI to the channel for pitch control
- The plugin UI shows a waveform, all parameter sliders, and a sample picker
Head Modes
Each head has two playback modes, selectable independently:
- Latch (default) — The head starts playing automatically when the host transport plays. No MIDI input needed
- MIDI — The head only plays when a MIDI note is received. Note-on sets the pitch (relative to middle C) and starts playback; note-off stops it
All parameters are automatable from the host regardless of mode.
LFOs
The AUv3 plugin includes LFO buttons on parameter sliders, just like the standalone app. Open the LFO tab to configure each LFO's waveform type (Sine, Triangle, Square, Sawtooth rising/falling, Sample & Hold) and speed.
Features
- Sample picker — Load from the built-in factory samples or samples shared from the main app (Pro)
- Record input — Tap the red record button to capture audio from the host's input bus as a new sample (up to 5 seconds)
- Factory presets — Shimmer Pad, Glitch Dust, Deep Drone, Crystal Rain, Warm Texture
- Dice button — Randomize all parameters
AUFX Extension
Use the GrainHeads AUFX extension on an FX bus in your host app to turn any audio input into a granular instrument.
- Audio from the host's FX bus feeds into a recording buffer in real time
- Feed / Freeze switch — Feed continuously captures incoming audio; Freeze locks the buffer to what was already recorded
- Once frozen, play multiple heads from the captured buffer — sculpt the frozen audio with all grain parameters
- All effects, LFOs, sequencer, and modulation are fully available in the AUFX extension
Shared Samples
When you import or record samples in the main app, they're automatically available in the AUv3 plugin (via the App Group shared container). Run the main app at least once after importing samples.
Settings
Tap Menu (hamburger icon) > Settings.
- Max Grain Size — 2 seconds (default) or 5 seconds. Larger grains use more memory but enable drone-like textures
- Waveform Video — On/Off. When on and a background video is bundled, the video plays inside the waveform bars during playback
Pro Features
The free version includes the full granular engine, all 8 heads, sequencer, touch pad, LFOs, and effects. The following features require a one-time Pro purchase:
- Import your own samples (audio files from your device)
- Record audio samples (via microphone)
- Save custom presets (factory presets are always available)
- Record output to WAV files
- Load custom samples in the AUv3 plugin
Tips
- Ambient pads — Low grain rate (1–3 Hz), long grains (0.5–1s), smooth bezier envelope, high reverb send
- Rhythmic glitches — High grain rate (20+ Hz), short grains (10–50ms), sharp bezier envelope, sequencer active
- Evolving textures — Assign LFOs to position, pitch, and filter frequency with different speeds
- Polyrhythms — Set different sequence lengths per head (e.g., 16, 12, and 7 steps)
- Granulate a granulation — Record your output, import it as a new sample, and granulate it again
- Stay in key — Select a musical scale to quantize all pitch control to valid notes
- Live performance — Use Multi Heads mode on the Play tab with one finger per head
- Dice for inspiration — Hit the randomize button when you're stuck — it often creates surprising starting points