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:

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:

  1. Select a multichannel track.
  2. Run 128ch Automation Mixer.
  3. Set the track channel count in REAPER as needed.
  4. 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:

  1. Select one or more ambisonic source tracks.
  2. Run 128ch Ambisonic Node Track Mixer.
  3. Confirm the detected ambisonic order.
  4. Place nodes in Spatial field, or switch to Stack scan for ordered interpolation.
  5. 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:

  1. Select up to 16 source tracks.
  2. Run 128ch Node Track Mixer.
  3. Choose a Mix mode, Mix bed shape, and channel count.
  4. Check each node’s Node source shape, Source channels, and Input start channel.
  5. In Spatial objects, move nodes in the viewer and adjust Shape scale and Focus.
  6. In Stacked shapes, use Channel rotate, node level, and Focus to align or offset each source against the shared bed.
  7. Adjust Cursor radius, Cursor focus, and Cursor gate while watching the falloff curve.
  8. Use Show cursor lanes, Show curve lanes, or Show stack when the mix movement should be written as REAPER automation.
  9. 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:

  1. Step 1 - Lock FX: lock the focused or last-touched track FX as the target.
  2. Step 2 - Choose Params: filter the parameter list, select visible parameters, clear the selection, invert it, or show a compact parameter list.
  3. 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:

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:

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:

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.