Channel Mixing / Automation Guides
These guides match the Package Browser’s Channel Mixing / Automation group and related monitoring tools. They cover track-level channel control, fold-down, monitor decoding, and transaural playback.
Ambisonic Stereo Decoder
This JSFX is a stereo fold-down decoder for ACN/SN3D ambisonic material. It is intended for loudspeaker stereo monitoring or stereo renders, not headphone binaural playback.
The decoder first projects the ambisonic input onto an internal virtual speaker field, then derives the stereo output by placing a stereo pickup model inside that field. This follows a practical studio approach: decode to a spatial field, then choose how a stereo listening position hears that field.
Starting settings:
Ambisonic order: match the source file, usually1OA,2OA, or3OA.Virtual speaker field:24ch domeis a good general starting point for 3D material;12ch dodecaand32ch sphereare useful alternate projections. Virtual coordinates follow the package/IEM AED convention:-90is right,+90is left, and ring-like fields number speaker 1 at right-front and continue clockwise.Stereo method: start withXY cardioidfor a stable image. TryMS cardioidfor a center/side-like fold-down,Blumleinfor a stronger figure-8 character, orORTF-stylewhen you want a wider speaker image.Stereo width: controls how strongly left/right differences are expressed;0%collapses the stereo pickup to mono.A/B spacing: adds a small time-difference component forSpaced omni, so that mode is not only amplitude panning.Listening rotation: rotates the stereo pickup position inside the virtual field. Positive values face left and negative values face right, following the package AED convention.Rotation image: scales how stronglyListening rotationis translated into the stereo image.100%is literal; higher values exaggerate the rotation.Mic elevation: tilts the stereo pickup upward or downward inside the virtual field.Rear rejection: reduces rear pickup as part of the stereo pickup model.Front/rear balance: a separate musical front/rear weighting stage. Positive values reshape rear material; negative values reduce the front instead.Rear fold: decides how positiveFront/rear balancetreats rear material:Quieter,Narrower, orWrap wide.Height fold,Height image, andDiffuse blend: shape how overhead and diffuse material enter the stereo image.Decode weighting: choose the default projection, energy normalization, Max-rE-style taper, orCustomband weights forW,1st,2nd, and3rdorder components. Custom weighting is edited with the order-weight sliders in the decode section; there is no separate weighting visual layer.Bass mono below: folds low frequencies toward the stereo center below the selected frequency for more controlled stereo renders.
The controller draws the virtual speaker field and the stereo pickup directions
so the fold-down can be adjusted visually. The package AED convention applies:
-90 is right and +90 is left.
Preset buttons provide quick starting points without changing the selected
ambisonic order: Stable Stereo, Wide Field, Front Focus, Room Image,
MS Master, Blumlein, and A/B Soft.
6ch Ambisonic Decoder Router
This JSFX is a package-native monitor decoder/router for a compact 6-speaker
setup. It accepts ACN/SN3D 1OA, 2OA, or 3OA input and writes speaker feeds to
channels 1-6. The default output layout is 45/0, -45/0, -135/0,
135/0, 90/60, and -90/60 in azimuth/elevation degrees; each speaker has
editable azimuth and elevation sliders.
The layout follows the package AED convention: -90 is right and +90 is
left. Speakers 1-4 form the horizontal bed; speakers 5 and 6 are the elevated
left and right side speakers. If these defaults do not appear after updating,
rescan JSFX in REAPER and click Reset 6ch layout in the controller.
The decoder is an energy-normalized projection decoder with optional
max-rE-style order weighting. It is useful for realtime listening and sketching
inside REAPER. For formal calibrated ambisonic decoding, use a measured decoder
such as IEM AllRADecoder when available.
Direct 6ch mode bypasses ambisonic decoding and routes input channels 1-6 to
the same speaker outputs. Ambisonic + Direct mixes that direct layer with the
decoded ambisonic layer, which is useful when combining non-ambisonic materials
with the same monitor rig.
128ch Automation Mixer
Use this as a track-level multichannel mixer when REAPER’s normal JSFX fader view becomes too long to manage.
Workflow:
- Select a multichannel track.
- Run
128ch Automation Mixer. - Set the track channel count in REAPER as needed.
- Use the controller for faders, mute, solo, channel groups, meters, and pin routing.
The visible mixer adapts to the track channel count, up to REAPER’s 128-channel limit. Faders use a dB-style response, double-click returns to unity, and direct dB entry can make relative changes across selected faders.
Use shift-click to select or release channels. Quick channel groups highlight related faders and let a group move together. The pin matrix is for channel remapping and should be treated as routing, not gain.
128ch Ambisonic Node Track Mixer
Use this when selected source tracks are already ambisonic encoded and should
be mixed as complete spatial streams. The action creates a bus, routes each
selected source track into its own input block, loads s3g 128ch Ambisonic Node
Track Mixer, and opens a node controller with a separate color identity from
the general node mixer.
This mixer does not decode, encode, or reinterpret the channels as speakers. Each node receives one ACN/SN3D stream, applies a single node weight, and sums matching channels to the output: channel 1 to channel 1, channel 2 to channel 2, and so on. This keeps the ambisonic image inside each source track intact while still allowing node-based level movement between tracks.
Selected source tracks should use ambisonic container widths: 4ch for 1OA,
10ch for 2OA in REAPER’s even-channel container, or 16ch for 3OA. The
created bus uses the highest order among the selected tracks. Lower-order
tracks can be routed into that bus; their missing higher-order channels remain
silent.
Spatial field places each encoded stream as a node in a visual field. Move
the cursor or automate Cursor X, Cursor Y, and Cursor Z to weight nearby
nodes. Stack scan treats the nodes as an ordered stack and uses Stack
position as the main automation lane. Global radius, Global focus, and
Cursor gate control how sharply the cursor moves between complete streams.
Starting approach:
- Select one or more ambisonic source tracks.
- Run
128ch Ambisonic Node Track Mixer. - Confirm the detected ambisonic order.
- Place nodes in
Spatial field, or switch toStack scanfor ordered interpolation. - Use the automation helpers to show cursor, curve, or stack lanes when the mix should be written as editable REAPER automation.
The script turns off the selected source tracks’ master sends when it creates the node bus, so the bus becomes the monitored/output path.
128ch Node Track Mixer
Use this when selected source tracks should become spatial mix nodes on a new
multichannel bus. The action creates a bus, routes each selected source track
as a true multichannel send block, loads s3g 128ch Node Track Mixer, and
opens a node controller.
The JSFX does not decode or encode ambisonics. It treats the bus outputs as a layout-aware speaker or channel field. Each node can have its own source shape and source channel count, so an 8-channel track can be treated as an 8-channel ring by default, or changed to a cube, dome, or other supported shape. Four 8-channel cube tracks, for example, are packed into 32 input channels on the bus, then mixed down by the JSFX into the selected 8-channel mix bed.
When source and mix-bed channel counts differ, assignment is based on shape coordinates rather than channel-number matching. Each source channel has a position inside its node shape, and the JSFX weights that channel into the nearest channels of the selected mix bed.
Mix mode changes the meaning of the nodes. Spatial objects treats each node
as a separate channel shape placed in the field, so two quad nodes beside each
other behave like two neighboring quad arrays. Stacked shapes aligns the node
shapes to the same mix bed, so channel 1 of each quad belongs to the same
corner family, channel 2 belongs to the next, and so on. In stacked mode,
Channel rotate shifts a node’s channel order before it is aligned, which is
useful for rotating quad corners, ring positions, cube corners, or other
multichannel source layouts against the shared bed.
The Mix Cursor is the main automation target. In Spatial objects, automate
Cursor X, Cursor Y, and Cursor Z to move through the node field. In
Stacked shapes, automate Stack position to move through aligned node
layers. Cursor influence blends the cursor behavior in or out, while Cursor
radius, Cursor focus, and Cursor gate control how many nearby nodes
contribute. Use the falloff curve display to tune the curve: radius sets reach,
focus changes the slope, and gate cuts low node weights to zero. Set
Cursor influence to 1.0 when distant nodes should disappear completely.
The controller opens in a top camera view. 3/4, Top, and Side camera
presets are available for checking node placement, shape overlap, and Z
position. Source track names are stored on the node bus and shown in the node
labels, selected-node panel, routing overview, and matrix rows.
The matrix mask limits which output channels a node can reach. Leave the matrix fully enabled for layout interpolation, or disable cells to restrict a node to a ring, cube layer, speaker group, or custom region.
The Routing overview gives a compact source-to-output summary for each node:
track name, input channel range, source shape, active output count, and a small
output strip. Use the detailed matrix below it when exact output masks are
needed.
The Automation section mirrors the panner controllers. It can switch the bus
track between Trim/Read and Write, show or hide cursor lanes, show or hide
curve lanes, and show or hide the stacked-position lane.
Starting approach:
- Select up to 16 source tracks.
- Run
128ch Node Track Mixer. - Choose a
Mix mode,Mix bed shape, and channel count. - Check each node’s
Node source shape,Source channels, andInput start channel. - In
Spatial objects, move nodes in the viewer and adjustShape scaleandFocus. - In
Stacked shapes, useChannel rotate, node level, andFocusto align or offset each source against the shared bed. - Adjust
Cursor radius,Cursor focus, andCursor gatewhile watching the falloff curve. - Use
Show cursor lanes,Show curve lanes, orShow stackwhen the mix movement should be written as REAPER automation. - Use the matrix only when a node should avoid or prefer a defined output region.
The script turns off the selected source tracks’ master sends when it creates the node bus, so the bus becomes the monitored/output path.
Focused FX Automation Capture
Use this when a plugin window is already open and you want to turn its current
settings into editable automation lanes. Focus the FX window or touch one of
its parameters, run Focused FX Automation Capture, then use the step-by-step
window:
Step 1 - Lock FX: lock the focused or last-touched track FX as the target.Step 2 - Choose Params: filter the parameter list, select visible parameters, clear the selection, invert it, or show a compact parameter list.Step 3 - Cursor Point: move the REAPER edit cursor to the desired time, then write the current plugin values there. The same section includes shortcuts to show or hide selected automation lanes.
The main workflow is point-based. Set the edit cursor, adjust the locked
plugin GUI, and click Write Point. Move the edit cursor later in the
timeline, adjust the plugin again, and write another point. REAPER’s normal envelope
behavior handles the interpolation between those points.
Show Lanes creates and shows selected FX envelopes without writing a point.
Hide Lanes hides existing selected envelopes. Lane height updates any
existing selected visible envelopes when changed. The first version targets
track FX; take FX are not included.
Snapshot Surface
Use Snapshot Surface when several track or FX states should become named
regions on a two-dimensional control surface. Each snapshot stores current
values for the captured target set, and the surface cursor interpolates between
nearby snapshots. The display uses Voronoi-style cells so each named region has
a visible area, center point, and editable position.
The first capture defines the target set. Choose a capture scope, then click
Capture From Scope. After that, adjust the same track or plugin controls and
use Capture From Target Set for additional snapshots. This avoids repeatedly
reselecting tracks or refocusing plugin windows while building a surface.
Surface mode separates layout from performance. In Edit mode, dragging a
snapshot moves its region on the surface. In Play mode, dragging the surface
moves the interpolation cursor and can audition the stored states.
Randomize Scope holds the generative snapshot tools. Randomize Snapshot
creates a new snapshot from the captured target set. Mutate Selected forks
the selected snapshot into a related variation. Spread controls how many
numeric targets are likely to move, and Deviation controls how far each moved
target can drift. Boolean targets such as mute, solo, and FX enabled are
excluded unless Include mute/solo/enabled is on.
The lower panes show the Snapshot List and Parameter Selection side by
side. Use the parameter tree to remove or restore individual parameters from
the selected snapshot without changing the rest of the surface. Track and
plugin groups have add/remove shortcuts, and the filter field narrows long
parameter lists. If Missing nearest target leaves value unchanged is enabled,
a parameter that is absent from the nearest snapshot is not recalled from a
farther snapshot.
Captured data is saved in the REAPER project with project extstate, so the
surface reopens with the .RPP. Targets are resolved by track GUID plus FX and
parameter index. Renaming tracks is fine; deleting tracks or changing the order
of captured FX can orphan or redirect some targets.
For timeline control, click Create / Link Cursor FX. This creates or finds a
control track with the s3g Snapshot Surface Cursor JSFX. Its Cursor X and
Cursor Y parameters can be automated in REAPER. Enable Follow cursor FX and
Apply while dragging cursor when those automation lanes should drive the
surface during playback.
Patch Routing View
Use Patch Routing View when a project is easier to read as a bottom-up patch
canvas than as a track list. Tracks appear as draggable nodes with channel
count, FX count, send/receive count, and master-send state. Folder, send, and
master connections are drawn as patch cords flowing upward toward buses and
master destinations, so buses, submixes, and multichannel paths can be checked
without opening REAPER’s routing matrix. Child tracks inside folders draw to
their parent folder rather than drawing separate master-send wires.
In View mode, click a node to select the track in REAPER. Shift-click toggles
nodes into a multi-selection, and dragging from blank canvas space creates a
selection window. After selecting multiple nodes, drag any selected node to move
the group together. Double-click a track node to open its FX chain. Drag nodes
to arrange the canvas; manual positions are stored between runs. Use Auto
Arrange to rebuild a clean bottom-up layout with folder children below their
parent tracks. Use Reset View to restore pan and zoom. Small restores the
default window size, and Large opens a bigger centered view without taking
over the full display. The display toggles show or hide sends, folder
relationships, master-send paths, selected tracks, or MC only, which filters
the canvas to tracks with more than two channels.
Folder lanes arranges tracks into vertical lanes by folder depth, so child
tracks appear in deeper columns while preserving track order within each lane.
Wires front changes whether patch cords draw in front of or behind the track
nodes. Connected shows only tracks with a visible routing relationship, and
Labels hover keeps wire labels hidden until a wire is selected or hovered.
Use Collapse and Expand for all-folder overviews, or select a folder node
and use Collapse children in the inspector to hide only that folder’s
children. Collapsed folders show compact child markers at the bottom of the
folder node. The minimap in the upper-right corner shows the whole patch and
can be clicked to recenter the canvas.
In Edit mode, drag from a track node’s top send band to another track node’s
bottom receive band to create a send. The reverse gesture also works: drag
from a receive band to another track’s send band to create the same connection.
If the send already exists, the script selects the existing wire instead of
creating a duplicate. Select a send from the canvas or inspector to adjust its
level, mute state, source channel range, destination channel range, send mode,
or to remove it. The node inspector also
includes track mute, track solo, master-send control for non-child tracks, and
FX-chain access. This makes the view useful as a routing audit and as a
compact send editor, especially in sessions with folder buses, multichannel
tracks, or several send/return structures.
Send wires can also be selected directly on the canvas by clicking the wire. The inspector includes a small color key for send/receive, folder-parent, and master-send wiring.
Vertical Timeline Navigator
Use Vertical Timeline Navigator as a companion view when a top-to-bottom time
display makes a project easier to read. Tracks are arranged left-to-right, and
time runs vertically. The view shows media items, markers, regions, edit cursor,
play cursor, a linked transport strip, a minimap overview, and the current time
selection. Media items inherit muted REAPER item/track colors when available,
and multichannel items draw internal channel subdivisions across the item width
with a channel-count label.
This script does not replace REAPER’s arrange view or change project layout. It provides a second navigation surface for reading structure, selecting items, moving the edit cursor, and drawing a time selection. Click an item to select it and move the cursor to its start. Drag an item vertically to move it in time, or horizontally across the visible track columns to move it to another track. Click empty timeline space to move the edit cursor. Drag empty timeline space to create a time selection.
Use Add Marker to create a project marker at the edit cursor. Use Add
Region to create a project region from the current time selection. Click a
marker or region in the vertical view to select it; drag it vertically to move
it in time. When a marker or region is selected, edit its name in the name
field and click Save Name.
Fit Project scales the whole project into the available vertical space.
Fit Selection focuses the current time selection. Follow play keeps the
play cursor near the center of the visible range during playback. Seconds /
pixel, View start, Visible tracks, and First track provide manual view
control for larger sessions. Use First track for predictable side-to-side
movement through large track sets.
Snap applies to item moves, marker/region moves, cursor placement, and time
selection drawing. It uses REAPER grid snapping, then nearby marker/region
edges and item edges when they are close to the edited time. Track filter
switches the column set between all tracks and selected tracks. Choosing all
tracks expands Visible tracks to the maximum available count, up to the
script’s display limit. The minimap on the right shows the whole project and
can be clicked or dragged to move the vertical viewport.
Mouse gestures:
- Wheel scrolls through time.
Cmd/Ctrl+ wheel zooms around the mouse position.Shift+ wheel pages through tracks.
MC to Stereo Autogain
Use this at the end of a multichannel sketch when you need a stereo monitor or print. It is not a substitute for an actual multichannel render; it is a controlled fold-down. The JSFX declares only stereo outputs, so channels 1 and 2 carry the fold-down.
In a multichannel listening environment, open the plugin pin connector / I/O panel for this FX and set unused or unmapped output channels to Zero out unmapped output channels. If REAPER is left on Pass through unused output channels, channels above 1-2 can continue through the FX chain even though the fold-down itself is stereo.
Important controls:
- Layout preset describes how channels are arranged conceptually.
- Width and rotation change stereo spread.
- Projection or weighting decides how channels contribute to left and right.
- 3D attenuation can reduce overhead, underhead, or distant speakers in sphere, hemisphere, and cube-style layouts.
- Autogain helps keep the fold-down from jumping in level as channel count changes.
Use ring projection for circular layouts, sphere or hemisphere projection for dome-like material, and cube-style projection for XYZ/cube work. Watch the graphic for how input channels are folded toward the stereo output; stronger 3D attenuation is reflected in the channel point and connection behavior rather than duplicated as a separate meter.
Transaural Crosstalk Canceller
Use this on a stereo loudspeaker track when you want transaural crosstalk cancellation for a fixed listening position. It is not a headphone binaural processor; it will usually sound wrong on headphones and will change with speaker angle, listener position, and room reflections.
The normal placement is after a binaural decoder or binaural stereo render. The binaural stage creates the left-ear/right-ear stereo signal; the transaural stage prepares that signal for loudspeaker playback by reducing how much each speaker reaches the opposite ear.
The processor is a lightweight JSFX approximation of transaural
crosstalk-cancellation practice. Feedforward subtracts a delayed and filtered
opposite-channel path. Matrix inverse adds a conservative symmetric 2x2
inverse-style compensation stage, closer to the standard transaural framing of
speaker-to-ear transfer paths, but still without measured HRTFs or room-specific
inverse filters.
Background: transaural stereo is usually described as loudspeaker playback that accounts for four transfer paths: each speaker to each ear. This tool uses that idea as a practical controller-oriented approximation rather than as a measured listener-specific inverse filter.
Starting settings:
Cancellation mode:Matrix inverseuses inverse-style compensation.Feedforwarduses delayed opposite-channel subtraction.Cancellation amount: start around60-100%; higher values are more dramatic and more position-dependent.Speaker half-angle: half of the angle between the left and right speakers from the listener position. A common stereo triangle is about30 deg.Head width: listener ear spacing estimate;17-18 cmis a practical default.Delay trim: fine-tunes the cancellation delay if the image feels smeared or hollow.Cancel HF rolloff: softens the cancellation path so it does not become brittle.Low protect: reduces cancellation in the low end, where room and speaker geometry make cancellation less reliable.Stereo preserve: blends back toward the original stereo signal if the cancellation image becomes too fragile.Output gain: keep headroom; cancellation can raise peaks.
The controller graphic shows the direct speaker-to-ear paths and the delayed opposite-channel cancellation paths. Head width changes the ear spacing in the graphic, while the side readouts summarize cancellation filtering, low protection, stereo preservation, and output trim. Use it as a geometry check, then tune by ear from the intended listening position.
Preset buttons provide starting points for common situations: Gentle,
Standard, Narrow Setup, Wide Setup, and Careful / Roomy.