Multitrack Router β User Guide
Form-driven multitrack routing and time-placement engine. Select N Sound objects, assign them to virtual tracks, sequence/reorder them, insert silences, apply gain + fades, and render a single output Sound object in mono, stereo, or multichannel format.
What this does
This script implements a Multitrack Router β a comprehensive routing and time-placement engine that takes multiple selected Sound objects, assigns them to virtual tracks, sequences them, applies gain and fades, and renders a single output in mono, stereo, or multichannel format.
ποΈ What is Multitrack Routing?
Multitrack routing is the process of assigning multiple audio sources to specific tracks, controlling their timing relationships, and mixing them down to a final output. This tool provides:
- Flexible assignment β All on track 1, one per sound, round-robin, manual, or sequence per track
- Order control β Selection order, alphabetical, or manual ordering
- Timing modes β All start at 0, or sequential with gaps/overlaps
- Per-sound overrides β Gain, fade in/out, and order positions
- Output formats β Mono (sum), Stereo (pan per track), Multichannel (track per channel)
- Silence insertion β SILx tokens in sequence mode for adding pauses
Key Features:
- Multiple Assignment Modes β 5 ways to map sounds to tracks
- Track Sequencing β Within each track, sounds can be ordered
- Timing Control β Gaps, overlaps, crossfades between sounds
- Per-Sound Parameters β Individual gain, fade in/out via space-separated lists
- Silence Tokens β Insert silence of specified duration in sequences
- 3 Output Formats β Mono, Stereo (with pan per track), Multichannel
- Schedule Print β Detailed timeline output in Info window
- Resampling β All sounds resampled to highest input sample rate
Technical Implementation: (1) Input: Read all selected sounds, store durations and sample rates. (2) Assignment: Map sounds to tracks based on mode. (3) Ordering: Sort within tracks. (4) Timing: Compute start times based on gaps/overlaps. (5) Rendering: For each track, create silent canvas, overlay sounds with gains/fades. (6) Output: Combine tracks into mono, stereo, or multichannel output. (7) Schedule: Print detailed timeline.
Quick start
- In Praat, select multiple Sound objects (at least one).
- Run scriptβ¦ β select
Multitrack_Router.praat. - Set Number of tracks (virtual tracks).
- Choose Assignment mode (how sounds map to tracks).
- If using Manual or Sequence mode, fill in the appropriate fields.
- Set Order mode (Selection order, Alphabetical, or Manual).
- Configure timing (Time mode, Gap seconds, Crossfade seconds, Crossfade shape).
- Set default gain and fades, and per-sound overrides if desired.
- Choose output format (Mono, Stereo, Multichannel) and pan positions if stereo.
- Enable Print schedule to see detailed timeline in Info window.
- Click Run β engine assigns, sequences, renders, creates output.
Routing Theory
Assignment Modes
π 5 Ways to Map Sounds to Tracks
| Mode | Description | Use Case |
|---|---|---|
| All on track 1 | Every sound assigned to track 1 | Simple summing, layering all sounds together |
| One track per sound | Track count = number of sounds | Individual control, panning per sound |
| Round-robin | Sounds distributed cyclically across tracks | Load balancing, alternating patterns |
| Manual | Space-separated list of track numbers | Exact control over each sound's track |
| Sequence per track | Pipe-separated sequences with indices + SILx | Complex timelines, silence insertion |
Order Modes
Timing Models
β±οΈ Time Placement
All start at 0: All sounds begin at time 0, layered.
Sequential: Sounds placed one after another with optional gaps/overlaps:
Crossfade shapes:
- Linear: amplitude fades linearly
- Equal power: sin/cos curves (constant perceived loudness)
Per-Sound Override System
Output Formats
| Format | Description | Channels |
|---|---|---|
| Mono | All tracks summed to single channel | 1 |
| Stereo | Each track panned using equal-power law | 2 |
| Multichannel | Each track becomes a separate channel | number_of_tracks |
Stereo Panning
Parameters & Controls
Routing Parameters
| Parameter | Description |
|---|---|
| Number of tracks | Virtual tracks (1-128, auto-adjusted for mode 2) |
| Assignment mode | All on track 1, One per sound, Round-robin, Manual, Sequence per track |
| Assignments | (Manual mode) Space-separated track numbers, one per sound |
| Sequences | (Sequence mode) Pipe-separated token lists (indices + SILx) |
Order Parameters
| Parameter | Description |
|---|---|
| Order mode | Selection order, Alphabetical, Manual |
| Order | (Manual mode) Space-separated position numbers (1..N) |
Timing Parameters
| Parameter | Description |
|---|---|
| Time mode | All start at 0, or Sequential |
| Gap seconds | Time between sounds in sequential mode (+ = silence, - = overlap) |
| Crossfade seconds | Duration of overlap crossfade (when gap < 0) |
| Crossfade shape | Linear or Equal power |
Gain & Fade Parameters
| Parameter | Description |
|---|---|
| Default gain dB | Global gain applied to all sounds |
| Gains dB | Space-separated per-sound gain overrides |
| Fade in seconds | Global fade-in duration |
| Fade out seconds | Global fade-out duration |
| Fades in | Space-separated per-sound fade-in overrides |
| Fades out | Space-separated per-sound fade-out overrides |
Output Parameters
| Parameter | Description |
|---|---|
| Output channels | Mono, Stereo, or Multichannel |
| Pan positions | (Stereo) Space-separated pan values per track (-1..1) |
| Normalize output | Scale output to peak 0.99 |
| Print schedule | Output detailed timeline in Info window |
Syntax Guide
Manual Assignment Mode
Sequence per Track Mode
π Pipe-Separated Sequences
Format: track1_seq | track2_seq | track3_seq | ...
Each track's sequence is a space-separated list of tokens:
- Numbers β sound indices (1..N in selection order)
- SILx β silence of x seconds (e.g., SIL0.5, SIL2.0)
Example with 4 sounds and 2 tracks:
1 SIL0.3 2 | 3 4 SIL1.0
Track 1: sound1 β 0.3s silence β sound2
Track 2: sound3 β sound4 β 1.0s silence
Important: Sound indices refer to selection order, not original names.
Manual Order Mode
Per-Sound Override Lists
Pan Positions (Stereo Output)
Schedule Output Example
Applications
Electroacoustic Composition
Use case: Creating complex multitrack arrangements from individual sound files
Technique: Sequence per track mode with custom timing and pans
Workflow:
- Prepare individual sound files (instrumental phrases, field recordings, synthesized sounds)
- Select all sounds in desired base order
- Use Sequence per track mode to design complex timelines for each track
- Set stereo output with custom pan positions for spatial placement
- Adjust gains and fades per sound for dynamic shaping
- Render and export as final stereo mix
Sound Design for Media
Use case: Building complex soundscapes from source elements
Technique: All on track 1 (layering) with staggered starts via gaps/overlaps
Applications:
- Ambient backgrounds: Layer multiple drones with fade in/out
- Impact sequences: Sequential mode with precise gaps for rhythmic impacts
- Transition effects: Overlapping crossfades between elements
Music Production
Use case: Arranging multitrack stems into a final mix
Technique: One track per sound (or Manual) with stereo panning
Settings:
- Import individual stems (drums, bass, synth, vocals) as separate sounds
- Set Assignment mode = "One track per sound" (creates tracks = number of sounds)
- Use Stereo output with custom pan positions for each stem
- Adjust gains per sound for level balancing
- Time mode = "All start at 0" for full mix
Research & Education
Use case: Demonstrating routing, mixing, and timeline concepts
Technique: Enable Print schedule, use simple test signals
Learning outcomes:
- Understand track assignment and its effect on output
- See how gaps/overlaps affect timing
- Explore panning laws and stereo imaging
- Observe fade shapes and their impact on transients
Practical Workflow Examples
π¬ Film Scene: Layered Atmosphere
Goal: Create 60-second atmospheric texture from 3 drones
Settings:
- Sounds: drone1 (20s), drone2 (15s), drone3 (25s)
- Tracks: 1 (All on track 1)
- Time mode: All start at 0
- Output: Stereo, pan: -1, 0, 1
- Gains: "-6 -3 -9" (different levels)
- Fades in: "5 4 6" (long fades)
Result: Rich, evolving texture with drones layered, panned, and slowly fading in
π₯ Rhythmic Sequence
Goal: Create rhythmic pattern from 4 drum hits
Settings:
- Sounds: kick, snare, hihat, crash (short sounds)
- Tracks: 1 (One track per sound) or 1 track with sequencing
- Time mode: Sequential, gap = 0.25s
- Output: Stereo, auto-spread pan
- Crossfade: 0 (butt-joined)
Result: Rhythmic pattern: kick β 0.25s β snare β 0.25s β hihat β 0.25s β crash
ποΈ Complex Arrangement
Goal: Create 2-track arrangement with silences and overlapping elements
Settings:
- Sounds: intro (3s), theme (5s), bridge (4s), outro (3s)
- Mode: Sequence per track
- Sequences: "1 SIL0.5 2 | 3 SIL1.0 4"
- Time mode: All start at 0 (tracks independent)
- Gap seconds: -0.5 (overlap), crossfade=0.5s
- Output: Stereo, pan: -0.8, 0.8
Result: Track1: intro β 0.5s silence β theme | Track2: bridge β 1.0s silence β outro, with overlapping crossfades
Troubleshooting Common Issues
Cause: Fades too short or missing
Solution: Increase default fade in/out (0.01-0.02s), ensure crossfade duration is appropriate for overlap
Cause: Order mode misinterpretation, or selection order not as expected
Solution: Use Print schedule to verify timeline; check Order mode and Manual order field if used
Cause: Pan positions not set correctly, or auto-spread not desired
Solution: Provide explicit pan_positions field, or verify auto-spread calculation
Cause: Many long sounds, each requiring resampling and fades
Solution: Reduce number of sounds, ensure all sounds have same sample rate to avoid resampling
Cause: Sound index out of range, or syntax error in token
Solution: Check that all indices are 1..Nounds; ensure SILx format is correct (e.g., SIL0.5, not SIL 0.5)
Advanced Techniques
The script doesn't modify original sounds, so you can run multiple times with different routing parameters to generate variations.
Use output of this script as input to other AudioTools (e.g., Spectral Panning Mapper, Temporal Turing Morph) for further processing.
For batch processing, save form settings and use Praat's scripting to call the script with different parameter sets.
For true multichannel output, you'll need a DAW or audio interface that supports >2 channels. The multichannel output file can be split in Praat using "Extract all channels".