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 into Documents/Delta Sound Labs/Stream Pro Presets; legacy .xstream preset files (and the old XStream Presets folder) load exactly as before.
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 macOS installer from the download 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 installer from the download 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.
Linux
-
Download the tarball
Get
streampro-linux-<version>.tar.gzfrom the download page. -
Run the installer
tar -xzf streampro-linux-*.tar.gz && bash StreamPro/install.sh— installs the VST3 to~/.vst3, the standalone to~/.local/share/StreamPro, and (one optionalsudoprompt) the factory preset library. -
Rescan Plugins
Restart your DAW and rescan plugins. New to Linux audio? The Linux Setup Guide walks through the whole setup, including Reaper configuration and troubleshooting.
System Requirements
- macOS 10.13+ (Intel or Apple Silicon)
- Windows 10 or later (64-bit)
- Linux x64 (Ubuntu 22.04+ / Mint 21+, X11)
- 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
The G latch — editing globals while a clip plays
Press G to latch the global layer: while the button stays lit, the Texturizer / ADSR edit target holds on the global settings even as sequenced notes trigger voices — so you can tweak a global delay or envelope over a looping MIDI clip without the selection jumping to each new note. Click any voice node (or press G again) to release the latch and resume live voice-following. Loading a preset in Multi mode engages the latch automatically and shows the global layer — the layer most presets' master drive and delay actually live on.
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. G is a latch: while lit, note-ons don't steal the edit target — click a voice node or press G again to release.
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).
- HRTF Badge: The small pill in the panel's top corner enables true binaural HRTF rendering (see below). Off by default; gold when active.
- 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:
- Positional (default): Voice nodes on the XY pad directly control where each voice appears in the stereo field via constant-power panning with distance attenuation. In Single mode, the global node position drives the pan; in Multi mode, each active voice has its own independently draggable node. Engage the HRTF badge for true binaural rendering on top of this placement (below).
- 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: Positional 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.
True Binaural HRTF
The HRTF badge engages Steam Audio's head-related transfer function rendering — the difference between hearing a sound panned left and hearing it out in the room to your left. Best experienced on headphones.
- Multi mode: every active voice is rendered as its own independent binaural source at its node position — up to 8 voices placed separately in space, including front/back depth on the Y axis.
- Single mode: the mix is placed at the global node's direction.
- Spatial Width operates on the binaural render, so it keeps working with HRTF engaged.
- Automatable as
spatial_hrtf. Off by default — the positional pan is unchanged when the badge is off.
HRTF convolution costs more CPU than plain panning (one convolution per active voice in Multi mode) — worth keeping in mind on dense patches; see the performance chapter.
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 audio itself (embedded in the file), MIDI mappings, ADSR shapes, and spatial state — in a single .streampro file (legacy .xstream presets load identically). Build a consistent preset library by following the workflow and checklist below.
The Preset Browser
The left-side browser lists the factory library and your saved presets. Each row shows the preset's title with a grey Author line beneath it, plus a thumbnail of the preset's audio. Click a row to load it; the loaded preset is highlighted with a gold accent. The trash icon deletes a user preset (factory presets are read-only).
Factory categories: the factory library is grouped by vibe under collapsible headers — Pads & Textures, Guitars, Keys & Plucks, Motion & Rhythm, Voices & Drones, and Noise & Experimental. Click a category header to collapse or expand it. Your own presets appear in a flat User Presets list below.
The Load Audio / Load Mod toggles above the list control whether clicking a preset also restores its embedded audio sample and its modulation-matrix routings — turn one off to audition a preset's engine settings against your current material.
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
.streamproextension 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/Stream Pro Presets/(macOS and Windows). Re-saving under an existing name supersedes the earlier copy, including one in the legacyXStream Presetsfolder.
Loading a Preset
Open the preset combo box in the toolbar and pick from the list, use Load Preset to open the file browser (filtered to *.streampro and *.xstream) and pick a file from anywhere on disk, or simply drag a preset file onto the plugin window — it loads exactly like a browser click. 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/Stream Pro Presets/ (new saves) — presets in the legacy XStream Presets folder next to it remain visible and loadable forever
Factory presets: ship with the plugin and appear in the browser and combo box alongside your saves
Old format: .stream files from pre-v1.6 builds are no longer loaded — re-save them as .streampro
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
- Factory presets are grouped by curated category in the browser; for your own presets a descriptive prefix still helps them sort meaningfully — e.g.
PAD - Glass Cathedral,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
Preset files are fully self-contained: the audio is embedded directly inside the .streampro file alongside every parameter, MIDI mapping and trajectory. Sharing a sound is one file, no companion audio, no cache folders.
What goes in the file
- Parameters, ADSRs, spatializer state, FX, MPE settings, MIDI mappings, spatial trajectories — all embedded
- The audio buffer itself — embedded in full, so the recipient hears exactly what you hear, bit-identical, on any machine and any Stream Pro version from v1.9.37 on
How to Share
-
Save the preset, send the file
The
.streamprofile in~/Documents/Delta Sound Labs/Stream Pro Presets/is the complete share — attach it to an email or message as-is. -
Recipient: drop it in
Drag the file straight onto the Stream Pro window to load it, or copy it into the
Stream Pro Presetsfolder so it appears in the browser's User section, or open it from anywhere via Load Preset.
Factory audio stays in the plugin
The waveform view's Save as WAV export works for your own recordings, loaded audio files and user-created sounds. Audio that came from a factory preset is not exportable — the option shows as Save as WAV (user audio only) — and that protection travels with the preset even if it's re-saved under a new name. Recording your own material into the buffer, loading your own file, or clearing the buffer makes the result exportable again.
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, just send the .streampro 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
- For batch shares, just zip the
.streamprofiles together — each one carries its own audio
10 MIDI Mapping
Stream Pro offers comprehensive MIDI CC and Program Change control with an intuitive mapping interface.
Opening the MIDI Editor
There are four ways to open the routing editor, which holds the MIDI matrix and the Modulation Matrix as two panels (available in the standalone and in DAWs):
- Keyboard shortcuts: Cmd+Shift+1 (macOS) / Ctrl+Shift+1 (Windows/Linux) opens the MIDI matrix; Cmd+Shift+2 / Ctrl+Shift+2 opens the Modulation Matrix. Plain Cmd/Ctrl combinations are avoided because DAWs claim most of them.
- Toolbar icons: the 5-pin DIN icon opens the MIDI matrix, the sine-and-multiply icon opens the Modulation Matrix.
- 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 Matrix… or Modulation Matrix…
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 & Record, Transport, Notes & MIDI, Grains, Grain Window, Voice ADSR, Buffer Envelope, Multi Mode, MPE, Texturizer, Spatializer, Modulation, Output & Mix, and Loop Locators.
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.
- Retrig / Retrigger mode — the Retrig button restarts the LFO's cycle from the top right now, and is MIDI-mappable (“LFO n Retrigger” in the MIDI matrix, Modulation category). 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