Table of Contents
12 Video Tutorials
Watch these video demonstrations to see Stream Pro in action and learn techniques for granular synthesis.
Getting Started with Stream Pro
A quick introduction to the Stream Pro interface and basic granular synthesis concepts.
Single Mode Deep Dive
Learn how to create evolving textures, pads, and ambient soundscapes using Single mode.
Multi Mode: Playable Granular
Transform any sample into a polyphonic granular instrument with MIDI control.
3D Spatial Audio with HRTF
Explore the Spatializer: binaural HRTF positioning, ping-pong grain distribution, and BOIDS flocking.
1 Introduction
Stream Pro is a versatile granular synthesis plugin that transforms any audio into evolving textures, playable instruments, and immersive 3D soundscapes.
Previously Named XStream
Stream Pro was previously named XStream. Settings, licenses and presets from XStream carry over unchanged. New presets save with the .streampro extension; legacy .xstream preset files load exactly as before (same format inside), and the Delta Sound Labs/XStream Presets folders keep their original names.
What is Granular Synthesis?
Granular synthesis works by breaking audio into tiny pieces called "grains" (typically 1-100ms) and reassembling them in various ways. This allows for:
- Time stretching: Slow down or speed up audio without changing pitch
- Pitch shifting: Change pitch without affecting duration
- Texture creation: Transform any sound into evolving pads and drones
- Spectral manipulation: Create otherworldly timbres
Two Modes, Infinite Possibilities
Single Mode
Traditional Granular Synthesis
Record or load audio and manipulate it with grain-based processing. Perfect for creating evolving textures, ambient soundscapes, and experimental sound design.
Multi Mode
Polyphonic Granular Instrument
Play your samples chromatically across a MIDI keyboard. Each key triggers independent granular voices with full polyphonic support.
2 Installation
macOS
-
Download the DMG
Get the latest release from the releases page.
-
Run the Installer
Open the DMG and double-click the PKG installer. Follow the wizard to install.
-
Plugin Locations
- AU:
~/Library/Audio/Plug-Ins/Components/ - VST3:
~/Library/Audio/Plug-Ins/VST3/ - Standalone:
/Applications/
- AU:
-
Rescan Plugins
Restart your DAW and rescan plugins if needed.
Windows
-
Download the ZIP
Get the Windows release from the releases page.
-
Extract Files
Unzip to a convenient location.
-
Copy VST3
Move
Stream Pro.vst3toC:\Program Files\Common Files\VST3\ -
Rescan Plugins
Restart your DAW and rescan plugins.
System Requirements
- macOS 10.13+ (Intel or Apple Silicon)
- Windows 10 or later (64-bit)
- Linux x64 (Ubuntu 20.04+)
- 4GB RAM minimum, 8GB recommended
- VST3, AU, or Standalone host
3 Interface Overview
Stream Pro's interface is divided into several key areas:
Waveform Display
Shows the loaded audio buffer with playhead markers. In Multi mode, each voice has its own colored marker.
Transport Controls
Play, pause, speed/direction slider (-2x to +2x), and freeze. The slider is bipolar — positive values play forward, negative play reverse. Quick-set buttons jump to ±0.5x, ±1x, and ±2x. Controls both Single and Multi modes; in Multi mode the value drives each voice's playhead motion through the buffer while MIDI pitch is set by note number.
Capture Panel
Record modes (Record, Overdub, Replace) and input monitoring.
Grain Panel
Core granular parameters: size, density, position, jitter, pitch.
Spatializer
Binaural HRTF positioning or ping-pong grain distribution, with BOIDS flocking animation.
Texturizer
Effects chain with drive, delay, and filter controls.
Session Persistence
Stream Pro automatically saves your session state when you quit. On next launch, your audio buffer and all parameter settings are restored exactly as you left them — no manual saving needed. In a DAW, if you close a project without saving, your audio buffer is preserved in a temporary store and reloaded when you reopen the session.
4 Single Mode
Single mode is designed for creating evolving textures, pads, and ambient soundscapes through grain-based manipulation.
Recording Modes
Record
Clears the buffer and records fresh audio. Best for starting new ideas.
Overdub
Layers new audio on top of existing material without erasing. Great for building complexity.
Replace
Selectively replaces sections while recording. Useful for refining specific parts.
Key Parameters
- Position: Where grains are captured from the buffer
- Grain Size: Length of each grain (1-500ms)
- Density: How many grains play simultaneously
- Jitter: Randomizes grain start positions for organic textures
- Pitch: Transpose the output without affecting time
Buffer Workflow
The record panel exposes a few non-obvious behaviors worth knowing about:
One-deep audio undo (Cmd+Z / Ctrl+Z)
Any destructive buffer change — recording over existing audio, clearing the buffer, loading a sample from disk, picking a sample from the browser, or dragging a file onto the plugin — snapshots the previous buffer. A single Cmd+Z (macOS) / Ctrl+Z (Windows) reverts the audio to its prior state. The shortcut tries buffer-undo first and falls back to parameter undo, so accidentally hitting record over a take you wanted to keep is no longer fatal. Undo depth is one — the snapshot is overwritten on the next destructive action.
Clear preserves transport
Hitting the Clear button (the "C" in the record panel) wipes the audio buffer but leaves your transport state — playback speed, direction — untouched. The main playhead resets to position 0 because pointing into an empty buffer is meaningless, but everything else stays where you set it.
Hold Pedal & grain count
Neither changing the number of grains within Single mode (1↔2↔3↔4) nor switching between Single and Multi mode changes the Hold Pedal state. The pedal is fully under your manual control via the toolbar toggle (and CC64); presets recall their own saved state.
Note Envelope (ADSR)
MIDI notes in Single mode are shaped by the same global Attack / Decay / Sustain / Release envelope used by Multi mode's voices — set it once and both modes respond identically to your playing.
- Note-on runs the attack up to full level, then decays to the sustain level while you hold the key.
- Note-off fades over the release time, and the buffer keeps scrolling underneath the fade — long releases produce a genuine moving tail, not a frozen one.
- Fast playing stays smooth: retriggering while a previous note is still fading continues the envelope from its current level instead of cutting to silence, so quick alternating key presses never click — in both standard MIDI and MPE.
- Legato: a new note added while others are held re-enters the attack from the current level, matching Multi's per-note attacks.
The envelope is edited in Multi mode's ADSR editor (the global/center-node envelope — see the Voice Envelope section of the Multi Mode chapter); its settings are saved with the preset. With the Hold pedal engaged, the drone sits at the sustain level.
5 Multi Mode
Multi mode transforms your samples into fully playable, polyphonic granular instruments with MIDI control.
How It Works
Each MIDI note triggers an independent granular voice. Voices are pitched chromatically based on the MIDI note number, and each voice has its own playhead marker in the waveform display.
Hold Pedal and mode switches
Switching between Single and Multi mode never changes the toolbar Hold Pedal — that state is always yours. Engage it for continuous drone/textural playback without held notes (in either mode); leave it off for note-gated playing. Presets recall their own saved pedal state on load.
Voice Markers
Each active voice is shown as a colored diamond marker in the waveform display. Each voice has a unique color so you can track up to 8 simultaneous voices at a glance. The diamond sits at the top of a vertical line whose height reflects the current grain size on a log scale — taller lines mean larger grains.
The grain windows and playhead dots for each voice are drawn flush against the diamond at the same horizontal position, so the visual cluster of grains always tracks its diamond precisely regardless of zoom level.
Voice Envelope (ADSR)
Each voice in Multi mode has its own amplitude envelope for shaping the attack and release characteristics. Click the A button to enable the ADSR envelope editor. The global envelope set here also shapes MIDI notes in Single mode (see the Note Envelope section of the Single Mode chapter), so both modes respond to your playing identically.
ADSR Parameters
- Attack (A): Time for the voice to fade in from silence to full volume (0-5000ms). Longer attacks create gradual swells.
- Decay (D): Time to fall from peak to sustain level (0-5000ms). Creates the initial transient shape.
- Sustain (S): The level held while a note is pressed (0-100%). Lower values create plucky sounds.
- Release (R): Time to fade out after note release (0-5000ms). Longer releases create natural decay tails.
Visual Editor
When ADSR is enabled, the editor shows a draggable envelope visualization. Drag the nodes to shape the envelope:
- Attack Node: Drag horizontally to adjust attack time
- Decay Node: Drag horizontally for decay time, vertically for sustain level
- Release Node: Drag horizontally to adjust release time
Selecting Which Voice to Edit
The ADSR editor always shows the envelope for the currently selected voice. There are several ways to select a voice:
- Play a note: The ADSR editor automatically switches to the most recently triggered voice
- Click a voice node: Click any numbered node in the VOICES circle — including inactive voices — to directly edit its envelope without needing to play it
- Click the center node: Click the center of the VOICES circle to switch to the global ADSR envelope, which provides a baseline for all voices
Applying to All Voices
Right-click anywhere inside the ADSR editor to access the "Apply to all voices" option. This copies the currently displayed envelope to every individual voice and to the global settings — useful for resetting all voices to a common starting shape.
ADSR Tips
- Use short attacks (10-50ms) for percussive granular sounds
- Long attacks (500-2000ms) create evolving pad textures
- Low sustain with long decay creates plucked string-like tones
- When ADSR is disabled, simple fade-in/out prevents clicks
- Edit inactive voice envelopes in advance — shape all 8 voices before a performance
- Right-click → "Apply to all voices" is the fastest way to reset everything to a single shape
Jitter in Multi Mode
In Multi mode, Jitter randomises each grain's start position independently around its voice's playhead. Every grain draws its own random scatter offset at the moment it cycles, so grains within the same voice have no correlation to each other — producing genuinely stochastic textures regardless of pitch or note order.
Higher Jitter values spread grains further from the playhead in both directions. At zero Jitter, all grains read from exactly the voice playhead position.
Performance Tips
- Use velocity to dynamically control grain density
- Experiment with different sample start positions
- Layer multiple instances with different settings
- Automate grain parameters for evolving sounds
Managing CPU Load
Multi mode is polyphonic and granular, so per-voice CPU usage multiplies with the number of held notes. The dominant levers are Stroma mode, grain density, and voice count.
Stroma vs. non-Stroma
Stroma is the default Multi-mode engine and is the lighter CPU path — it alternates forward and backward grains with Hanning windows and uses ADSR-modulated density so each voice runs roughly half the grains during sustain. Disabling Stroma (the σ toggle in the XYPad sidebar) reverts to the older forward-only engine, which roughly doubles the active grain count per voice and removes the sustain-time density reduction. The non-Stroma sound is denser and more aggressive but costs proportionally more CPU.
If you hear dropouts or your CPU meter is pinned:
- Re-enable Stroma if you'd disabled it — this is the single largest CPU saving
- Reduce grain density (Multi Density / number of grains per voice) before reducing voice count — half the grains is half the work
- Lower the maximum number of held voices (8 is the cap; 4–6 is comfortable on most laptops)
- Shorten grain size only as a last resort — short grains run more wrap-cycles per second, which can actually increase CPU at very small sizes
- Disable the Spatializer's binaural HRTF (use Ping-Pong or turn the spatializer off) when not needed — HRTF convolution is non-trivial
Rule of thumb
Non-Stroma + 8 voices + high density + binaural spatial is the worst-case combination. If your machine can run that comfortably, it can run anything Stream Pro throws at it. If it can't, drop one of those four levers first.
6 Parameter & Spectral Space
Parameter Space and Spectral Space are now available as free standalone companion applications. These features have been moved out of the plugin UI to give them dedicated full-screen interfaces with more room to breathe.
Free Standalone Apps
Parameter Space and Spectral Space are provided as free standalone companion applications, alongside the Leap Motion Controller companion app. Run them on a second screen or alongside Stream Pro for a dedicated, full-screen control surface that connects via virtual MIDI.
Parameter Space View
An octagonal radar chart where each vertex represents a granular parameter. Each voice's settings form a colored polygon within the space.
The Eight Parameters
- Size: Grain length (1-500ms)
- Density: Number of overlapping grains
- Spread: Stereo width of grain distribution
- Jitter: Random variation in grain position
- Drive: Texturizer saturation amount
- Cutoff: Filter frequency
- Resonance: Filter emphasis
- Delay: Delay mix amount
Interaction Modes
Global Mode (G)
Adjusts parameters for all voices simultaneously. A single golden polygon represents the global settings.
Per-Voice Mode (V)
Each voice has its own colored polygon. Drag individual vertices to customize that voice's sound.
Hybrid Mode (H)
Shows both global and per-voice polygons. Per-voice adjustments are relative to the global baseline.
Bi-Directional Sync
The Parameter Space stays synchronized with the Texturizer panel faders. Adjusting a vertex updates the corresponding fader, and moving a fader updates the polygon vertex in real-time.
Spectral Space View
Click the spectral button to switch views. Spectral Space visualizes your audio as a cloud of segments positioned by timbral similarity - similar sounds cluster together.
Navigating by Timbre
- Segment Cloud: Each dot represents a segment of your audio, positioned by its spectral characteristics
- Hover Preview: Move your mouse over segments to audition them before committing
- Click to Navigate: Click any segment to jump the playhead to that position
- Scrub Mode: Click and drag through the cloud to scrub through segments continuously
Trajectory Recording
Record movement paths through spectral space for automated, evolving playback:
-
Select a Voice
Click a voice marker in the Spatializer or waveform to select it for trajectory recording.
-
Start Recording
Click the record button in Spectral Space view to begin capturing your path.
-
Draw Your Path
Click and drag through the spectral cloud. Your movement is recorded as a trajectory.
-
Play Back
Click the play button to loop through your recorded trajectory automatically.
Common Controls
- Alt+Drag: Rotate the 3D view for better visualization
- Scroll Wheel: Zoom in/out
- Right-Click Vertex: Reassign a vertex to a different parameter
Tips
- Use Parameter Space for sound design - shape each voice's character
- Use Spectral Space for performance - navigate your sample by feel rather than time
- Record trajectories on multiple voices for complex, evolving textures
- Per-Voice mode lets you create wildly different timbres for each MIDI note
7 3D Spatializer
The Spatializer places each voice in 3D space using Steam Audio's binaural HRTF processing for immersive audio through headphones — or distributes grains across the stereo field in classic ping-pong style.
Controls
- Power Button: Enable/disable spatial processing. The on/off state is saved with your session and restores correctly on reload.
- XY Pad: Drag voice nodes to position them in 2D space. In Single mode a single global node controls the stereo position; in Multi mode each active voice has its own colored node. Nodes are locked when Ping-Pong mode is active.
- Ping-Pong Button: Switch between Binaural and Ping-Pong spatial modes (see below).
- Flock: Enable BOIDS flocking animation for organic movement
- Record/Play: Record and play back spatial movement paths per voice
Binaural vs. Ping-Pong
The Spatializer has two spatial output modes, toggled with the Ping-Pong button in the section title row:
- Binaural (default): Uses Steam Audio's head-related transfer function (HRTF) to simulate 3D positioning. Voice nodes on the XY pad directly control where each voice appears in space. Best experienced through headphones. In Single mode, the global node position drives the pan; in Multi mode, each active voice has its own independently draggable node.
- Ping-Pong: Ignores node positions entirely and instead distributes successive grains alternately hard-left and hard-right. Each grain alternates channels — odd grains go left, even grains go right — creating a wide, rhythmic stereo spread whose pulse rate tracks grain size. Works in both Single and Multi mode. When active, the XY pad nodes gray out and cannot be moved, since position is no longer relevant.
Choosing between them: Binaural is ideal for expressive, position-based spatial design — place voices in a stereo field or a 3D soundstage. Ping-pong is better for rhythmic texture and wide stereo shimmer where you want the grain cloud itself to feel alive rather than fixed to a point.
DAW Automation
The spatializer exposes the following automatable parameters: spatial_enabled (on/off), spatial_x / spatial_y (global position), spatial_v0_x through spatial_v7_y (per-voice positions in Multi mode), and spatial_ping_pong_blend (0 = binaural, 1 = ping-pong). Automate these from your DAW to create evolving spatial movements locked to tempo, or to switch spatial modes mid-song.
BOIDS Flocking
When enabled, voice nodes exhibit flocking behavior with periodic scatter/gather dynamics. They cluster together, then burst apart, creating ever-changing spatial patterns that require no manual animation. BOIDS is only active in Binaural mode — node positions are irrelevant in Ping-Pong mode.
8 Texturizer Effects
The Texturizer adds character to your granular sounds with drive, delay, and filtering.
Effect Chain
- Drive: Soft saturation for warmth and grit
- Filter: Per-voice Moog-style lowpass/bandpass filter with cutoff and resonance
- Delay: Stereo delay with time, feedback, and dry/wet controls. The dry/wet defaults to 50% for an immediately useful blend.
Signal Flow
The signal flow button lets you swap the order of Spatializer and Texturizer. This affects whether spatial processing happens before or after effects.
9 Presets
A preset captures a complete snapshot of Stream Pro — every parameter, the sample reference, MIDI mappings, ADSR shapes, and spatial state — in a single .xstream file. Build a consistent preset library by following the workflow and checklist below.
Save / Load Workflow
Saving a Preset
-
Dial in the patch
Configure every parameter you want the preset to recall — see the checklist below. Treat this as the moment of truth: anything you skip will fall back to whatever happens to be loaded when someone else opens the preset.
-
Click the Save Preset button in the toolbar
The disk-icon button next to the preset name opens a text-entry dialog.
-
Enter a name
The
.xstreamextension is appended automatically. Names are stored verbatim, so the case and spacing you type are what appears in the preset list. -
Click Save
The file is written to
~/Documents/Delta Sound Labs/XStream Presets/(macOS and Windows). Overwriting an existing file prompts for confirmation.
Loading a Preset
Open the preset combo box in the toolbar and pick from the list, or use Load Preset to open the file browser (filtered to *.xstream) and pick a file from anywhere on disk. Loading replaces the full plugin state, including MIDI mappings — save your current work first if you want it preserved.
File location
User presets: ~/Documents/Delta Sound Labs/XStream Presets/*.xstream
Factory presets: ship with the plugin and appear in the combo box alongside your saves
Old format: .stream files from pre-v1.6 builds are no longer loaded — re-save them as .xstream
Standardized Preset Checklist
Before clicking Save, walk this list top-to-bottom so every preset starts in a predictable state. Skipping items isn't an error — it just means those values come from whatever's currently loaded when someone opens the preset.
1. Sample & Mode
- Sample source: Load the intended sample (factory pack, user file, or live-recorded buffer)
- Single vs. Multi mode: Set explicitly — don't rely on the user's current mode
- Stroma toggle (Multi only): Decide whether the preset needs the lighter Stroma engine or the denser non-Stroma path — the choice is part of the sound
2. Grain Parameters
- Grain size (Multi: size min & max)
- Density / number of grains
- Jitter — random scatter amount
- Spread — stereo distribution
- Playback speed / direction (Single mode)
- Grain window type — Triangle, Gaussian, or Noise
3. Voice Envelopes (Multi mode)
- Global ADSR — the baseline shape
- Per-voice ADSRs — only if the preset relies on per-voice variation; otherwise use Right-click → Apply to all voices to set every voice to a single shape
- ADSR enabled (A button) — on or off, explicitly
4. Spatializer
- Spatializer on/off
- Binaural vs. Ping-Pong (binaural costs more CPU — pick deliberately)
- Node positions — Single global node, or per-voice nodes in Multi
- BOIDS / trajectories — disabled by default unless the preset is built around motion
5. Texturizer Effects
- Each effect's on/off and parameters — saturation, filter, delay, reverb
- Signal flow order — Spatializer → Texturizer or the reverse
- Wet / dry mix
6. MPE / Expressive Control
- MPE profile — Generic, Seaboard, GeoShred, Sensel Pressure, Sensel XY (from the hamburger menu)
- Pitch-bend range, velocity sensitivity, pressure sensitivity — set deliberately if the preset assumes a controller
7. MIDI Mappings
MIDI mappings are saved with the preset. If your preset assumes a hardware controller (Seaboard, foot pedal, etc.), map the relevant CCs before saving. Otherwise, clear any incidental mappings so the preset doesn't surprise the next user.
Naming & Categorization
- Lead with a category prefix so presets sort meaningfully in the combo box — e.g.
PAD - Glass Cathedral,BASS - Granular Sub,FX - Reverse Sweep - Keep names under ~32 characters so they fit in the toolbar's preset display
- Include the intended controller in the name if it matters — e.g.
PAD - Seaboard Breath - Version presets you iterate on —
name v2,name v3— rather than overwriting
Sharing Presets & Sounds
A .xstream preset does not embed audio — only a content-hash reference to a buffer file in your local audio cache. How you bundle a share depends on the audio source.
What goes in the file
- Parameters, ADSRs, spatializer state, FX, MPE settings, MIDI mappings, spatial trajectories — all embedded in the
.xstreamfile - Factory pack references (
audioSourceType="xsa") — pack + sample name stored as plain text references; recipient needs the same pack installed - User-loaded or recorded audio — stored as a content hash (
audioBufferHash="...") that points to a cache file atAudioBuffers/<hash>.xstreamin the app data folder (still namedXStream; paths below)
Where the audio cache lives
- macOS:
~/Library/Application Support/Delta Sound Labs/XStream/AudioBuffers/ - Windows:
%APPDATA%\Delta Sound Labs\XStream\AudioBuffers\
Each file is named <hash>.xstream — the hash is derived deterministically from the buffer's length, channel count, peak levels, and sample values at five positions, so identical audio produces an identical hash on any machine.
Three Share Workflows
Option A — Preset uses a factory pack (simplest)
-
Send the
.xstreamfile aloneRecipient drops it into their
~/Documents/Delta Sound Labs/XStream Presets/folder (or loads it from anywhere via Load Preset). Because both machines have the same factory pack installed, the pack reference resolves automatically and the preset loads cleanly.
Option B — Preset uses your own audio (recommended for most user shares)
-
Bundle the preset + the original source audio
Zip the
.xstreamfile together with the original.wav/.aiff/.flacyou loaded into Stream Pro. This is the most portable, future-proof bundle — the recipient gets a usable audio file regardless of Stream Pro version. -
Tell the recipient: load the audio first, then the preset
The recipient drags the audio into Stream Pro (or uses the sample browser) before loading the preset. Stream Pro then loads the preset on top of the already-loaded buffer. Their machine's computed hash will likely differ from the sender's (sample-rate, resampling, or edit differences), but Stream Pro's loader keeps the currently loaded audio when the referenced hash isn't found — so the preset still recalls every parameter correctly.
Option C — Exact-buffer share (advanced, for processed audio)
Use this when the audio in your preset is the result of in-plugin recording, tempo edits, or any processing the recipient can't reproduce from a source file alone.
-
Save the preset
This guarantees the matching buffer is written to your
AudioBuffers/folder. -
Find the matching buffer file
Open
AudioBuffers/in Finder / Explorer, sort by modification date, and grab the most recently written<hash>.xstreamfile — that's the buffer your preset references. -
Zip both files together
Bundle the
.xstreampreset and the<hash>.xstreambuffer file in the same archive. -
Recipient drops the buffer into their cache folder
The recipient copies the
<hash>.xstreambuffer file into their ownAudioBuffers/directory (paths above), then loads the preset. The hash matches, the buffer loads, and the share is bit-identical to the sender's version.
Sending presets to Delta Sound Labs
If you'd like to submit a preset for consideration as a factory preset, or are sharing one for support / feedback, please use Option B: zip the .xstream preset together with the source audio file. Include a short note describing what the preset does, the intended controller (if any), and which mode it's built around (Single vs. Multi, Stroma on/off). Email to connect@deltasoundlabs.com.
Sharing Tips
- If your preset's sound depends on a specific MPE controller (Seaboard, Sensel, GeoShred), include that in the preset name and mention it in the share — the MPE profile is saved, but the recipient still needs the hardware
- Strip any incidental MIDI mappings you don't want to travel — they save with the preset and will overwrite the recipient's current mappings
- Test your bundle on a second machine (or fresh Stream Pro install) before distributing — the most common failure is "I forgot to include the audio file"
- For batch shares, place all the
.xstreamfiles and any required audio in a single folder, zip it, and include a plain-text README listing which preset uses which audio file
10 MIDI Mapping
Stream Pro offers comprehensive MIDI CC and Program Change control with an intuitive mapping interface.
Opening the MIDI Editor
There are three ways to open the MIDI Mapping Editor (standalone only — in DAWs, use the host's own MIDI mapping system):
- Keyboard shortcut: Cmd+Shift+M (macOS) / Ctrl+Shift+M (Windows/Linux). Cmd+M / Ctrl+M is intentionally left alone because every major DAW already claims it (minimize window, mute, etc.) — using Shift keeps the shortcut available across hosts.
- Hamburger menu: click the three-line icon in the title bar and pick MIDI Mapping…
- Right-click the buffer: in the waveform display, right-click and pick MIDI Mapping… at the bottom of the MIDI section
The editor auto-discovers every plugin parameter on open, so any parameter shipped in the current build (Multi-mode controls, MPE sensitivities & pitch-bend range, spatializer per-voice positions, texturizer effects, etc.) is immediately mappable. The category filter buckets them into Capture, Grain, Multi, Envelope, Playback, MPE, Texturizer, Spatial, Mix, Locators, and Other.
Default CC mappings
Two CCs ship pre-mapped to sensible defaults (only applied when you haven't already assigned them to something else, so upgrades preserve your custom mappings):
- CC 64 (Sustain Pedal) → Hold Pedal (
mono_midi_gate) — standard sustain-pedal behavior; pressing the pedal latches the granular gate. - CC 1 (Mod Wheel) → Grain Jitter (
jitter_crossfade) — mod wheel drives randomization amount, the granular analogue of "amount of modulation."
Use MIDI Learn in the editor (or right-click → MIDI Learn on any control) to override either default.
Creating Mappings
-
Find Your Parameter
Use search or category filter to locate the parameter.
-
Click Learn
The row highlights to indicate learn mode.
-
Move Your Controller
The mapping is created instantly.
Quick MIDI Learn
Right-click any knob, slider, or button in the interface and select "MIDI Learn" for fast mapping.
Editing & Removing Mappings
To change a mapping, click Learn on its row again and move a different controller — the new CC replaces the old one. To remove a mapping entirely, use the Clear control on the row (or right-click the on-screen control and choose Clear MIDI Mapping). Each parameter holds one CC assignment at a time; assigning a new CC to an already-mapped parameter overwrites the previous one.
MPE & Performance Settings
Stream Pro is fully MPE-capable. Open the settings menu (right/cmd-click anywhere on the toolbar, or the hamburger menu) to adjust how it responds to expressive controllers:
- Pitch-Bend Range — the semitone range of per-note pitch bend (MPE) or channel pitch bend.
- Pressure Sensitivity — how strongly channel/poly pressure (aftertouch) affects the sound.
- Velocity Sensitivity — how strongly note velocity shapes the response.
These same values are also exposed as plugin parameters, so they can be MIDI-mapped or automated like anything else.
Mapping Tips
- Use CC for continuous controls (knobs, sliders)
- Use Program Change for button toggles
- Mappings persist across sessions
- Stored in
~/XStream/MidiMappings.xml
11 Modulation Matrix
The Modulation Matrix adds four independent LFOs (low-frequency oscillators) that sweep Stream Pro's sound-shaping parameters automatically — hands-free movement without drawing a single automation lane.
Opening the Panel
Click the Modulation Matrix button in the toolbar (the grid/matrix icon) to show or hide the panel. Click it again to dismiss.
How Modulation Works
The matrix is an offset layer — it never overwrites the value you dialed in on a knob. Your setting stays the "home" position and the LFO adds a moving offset on top of it. Set an LFO's depth to zero, or hit Reset, and every parameter snaps straight back to exactly where you left it. Because of this, you always keep full manual control of the underlying sound.
The one exception is Range mode (the Rng button on a routing row), where the modulation deliberately takes over and sweeps the parameter inside a window you define — see Min/Max Range below.
The Four LFOs
Each of the four LFOs has its own controls:
- Shape — Sine, Triangle, Saw Up, Saw Down, Square, S&H (sample & hold — random stepped values), or Random (smooth random drift).
- Rate — how fast the LFO cycles. In free-run mode it's set in Hertz (0.01–20 Hz).
- Sync — turn this on to lock the LFO to your host's tempo and pick a note division (4 bars, 2 bars, 1 bar, 1/2, 1/4, 1/8, 1/16, 1/8T, 1/16T) instead of Hz, so the movement stays in time with your track. Off = free-run in Hz.
- Phase — offsets where in its cycle the LFO starts (0–1). Useful for setting two LFOs the same rate but out of phase.
- Trig / Retrigger mode — the Trig button restarts the LFO's cycle from the top right now, and is MIDI-mappable. The mode menu picks the automatic source: Off (free-run), Remote (a mapped MIDI CC/button fires it), or Note (every incoming note-on restarts the cycle).
Creating a Routing
The lower half of the panel is a set of sixteen routing slots. Each slot connects one source to one destination:
-
Pick a Source
In a slot's Source dropdown choose the LFO you want (LFO 1–4), or None to leave the slot empty.
-
Pick a Destination
In the Destination dropdown choose the parameter to modulate.
-
Set the Depth
The Depth control sets how much the LFO moves the parameter — small for subtle drift, large for dramatic sweeps. Depth is bipolar: negative values invert the LFO's direction on that destination.
Slots are independent, so you can route one LFO to several destinations (using several slots) or stack multiple LFOs onto the same parameter for complex, evolving motion.
Min/Max Range (Override Mode)
Sometimes you don't want modulation around your knob setting — you want it to travel between two exact points, the way Ableton Live's MIDI-map min/max sliders work. That's what the Rng button on each routing row does.
- Rng off (default) — the row behaves as described above: the bipolar Depth slider adds movement on top of the knob's home value.
- Rng on — the Depth slider is replaced by a two-handle min/max slider. The LFO now sweeps the destination between those two handles, overriding the knob: the parameter travels the full window from min to max regardless of where the knob sits. The live readout at the end of the row shows the exact value the parameter is being driven to.
Use Range mode when you need modulation confined to a musical zone — for example a filter sweep that never fully closes, or delay feedback that breathes between 20% and 60% without ever running away. Toggling Bypass (or turning Rng back off) glides the parameter smoothly back to the knob's own value.
Range settings are saved with your preset. Presets made before this feature simply load with Rng off and behave exactly as they always did.
Available Destinations
Modulation can target a wide range of parameters:
- Grain (Single mode): Grain Size, Grain Spread, Grain Amp, Jitter
- Grain (Multi mode): Multi Density, Multi Jitter, Multi Grain Min, Multi Grain Max
- Filter: Filter Cutoff, Filter Resonance, Filter Mix
- Drive: Drive Amount, Drive Mix
- Delay: Delay Time, Delay Feedback, Delay Mix
- Spatial & Playback: Spatial X, Spatial Y, Spatial Width, Speed/Dir
Reset
The Reset button in the panel header clears every routing slot at once (Source, Destination, and Depth), returning all modulated parameters to their home values. Your LFO shapes and rates are left untouched, so you can re-route quickly without rebuilding the LFOs from scratch.
Modulation Tips
- A slow Sine on Filter Cutoff is the classic "breathing" pad movement.
- S&H on Grain Size or Speed/Dir gives stuttery, glitchy variation.
- Turn Sync on so the LFOs lock to your project tempo and stay musical.
- Modulation routings are saved with the preset, so patches recall their full motion.
Need Help?
If you have questions or encounter issues:
- Email: connect@deltasoundlabs.com
- GitHub: Report a Bug