Skip to main content

Channel Object

The channel object is accessed via the .channel property on a track object from context.mainTrackList. It is the main channel-strip surface for routing, mix state, and editor access. Only exposes MusicTrack and AudioTrack. For other mixer-only channel types (AudioGroup, AudioSynth, AudioAux, AudioEffect, AudioVCA, etc.), see Mixer Channels.

See Track Object for the full track surface.

Properties

Properties vary by channel type ("MusicTrack" vs "AudioTrack")

PropertyTypeWritableMusicTrack Ex.AudioTrack Ex.Description
canDisableflag010 = MusicTrack (not disableable), 1 = AudioTrack (disableable)
canMuteSoloflag111 = mute/solo available on all track types
channelTypestring"MusicTrack""AudioTrack"Channel type identifier.
disabledflagConditional00Track disabled state. Writable when canDisable is 1 (AudioTrack). MusicTrack ignores writes.
editGroupstringgroup nameEdit group name.
editorobjectChannelEditorChannelEditorChannel editor object. See Editor.
environmentstring"SongEnvironment""SongEnvironment"Environment identifier.
insertsobjectInserts objectChannel insert effects chain (AudioTrack only). See Inserts.
labelstringSame as titleSame as titleDisplay label (alias).
maxVolumenumber3.162Maximum fader value (AudioTrack only).
mediaTypestring"Music""Audio"Media type.
muteflagYes000 = not muted, 1 = muted
namestring"Channel02""Channel01"Internal channel name.
overviewobjectChannelOverviewChannelOverviewChannel overview object. See Overview.
pannumberYes0.5Pan position (AudioTrack only). 0.0 = left, 0.5 = center, 1.0 = right.
recordUnitobjectRecordUnitRecordUnitRecord unit object. See Record Unit.
soloflagYes000 = not soloed, 1 = soloed
soloSafeflagYes000 = not safe, 1 = solo safe
titlestring"Instrument""Audio"Display name / label.
volumenumberYes1Fader level (AudioTrack only). Range 0.0–maxVolume.

Methods

MethodReturnsParametersDescription
connectTo(targetChannel)numbertargetChannel (object, req): Destination channel.Route to another channel (bus assign).
find(name)name (string, req): Child name.Find a child object by name.
findParameter(name)objectparamname (string, req): Parameter key.Find a parameter by name.
focus()(none)Focus channel in the mixer.
getDestinationChannel()objectAudioOutput(none)Get current routing destination.
interpretCommand(category, name)category, name (string, req): Command to execute.Execute a command on this channel.
openEditor()number(none)Open the channel editor window.

Sub-Objects

All channel sub-objects share a common surface.

Common Surface

Properties:

PropertyTypeWritableExampleDescription
namestringNo"ChannelEditor"Object identifier
titlestringNo"ChannelEditor"Display name
parentobjectNoChannelBack-reference to owning channel

Methods:

MethodReturnsParametersDescription
find(name)objectname — child nameFind a child object
findParameter(name)objectparamname — parameter keyFind a parameter by name
interpretCommand(category, name)category — command category, name — command nameExecute a command on this channel

Editor

Accessed via the .editor property of the channel object.

PropertyTypeWritableExampleDescription
windowClassstringNo"ChannelEditor"Editor window class

Also has the common surface.

Inserts

Accessed via the .inserts property of the channel object. Present only on AudioTrack channels.

Properties

PropertyTypeWritableExampleDescription
addDeviceParamNamestringNo"AudioFXRack/PlugInSelector/plugList"Parameter path for adding devices.
channelobjectNoBack-reference to owning channel.
hasAddDeviceParamnumberNo1Flag indicating the inserts chain supports adding devices via parameter.
hasManagedDevicesnumberNo0Flag indicating managed device support.
namestringNo"Inserts"Internal name.
numChildrennumberNo8Number of insert slots. Varies by project audio configuration.
parentobjectNoBack-reference to owning channel.

Overview

Accessed via the .overview property of the channel object. Only has the common surface.

Record Unit

Accessed via the .recordUnit property of the channel object. Exposes recording state. Same surface on MusicTrack and AudioTrack.

PropertyTypeWritableExampleDescription
monitorActiveflagYes00 = monitor off, 1 = monitor on
recordArmedflagYes00 = not armed, 1 = armed

Also has the common surface.

AudioOutput

AudioOutput is the audio Output returned by getDestinationChannel() on routed AudioTracks. Not available on MusicTracks. See Mixer Channels — AudioOutput for the full surface.

findParameter() Availability

ParameterMusicTrackAudioTrack
"automationMode"
"color"
"monitor"
"mute"
"pan"
"solo"
"tempo"
"transpose"
"velocity"
"volume"

Parameter object surface

Returned by findParameter(name). The returned parameter object has the following properties:

PropertyTypeWritableExampleDescription
namestringNo"mute"Parameter name
valuenumberNo0Current value
stringstringNo"0"Formatted string (e.g. "0dB" for volume)
// channel — from track.channel, track - from context.mainTrackList.getTrack(index)
var param = channel.findParameter("mute");
// param.name → "mute"
// param.value → 0
// param.string → "0"

automationMode values:

value.stringAvailable on
0"Auto: Off"MusicTrack, AudioTrack
1"Read"AudioTrack
2"Touch"AudioTrack
3"Latch"AudioTrack
4"Write"AudioTrack

color values:

Returns an integer color value. .string returns "#RRGGBBAA" hex format.

value.string
-14342725"#BB2525FF"

Save / Restore Pattern

// channel — from track.channel, track - from context.mainTrackList.getTrack(index)
// Only available in performEdit (TrackEdit context)

// Save
var data = {
mute: channel.mute,
solo: channel.solo,
disabled: channel.disabled,
vol: channel.volume,
pan: channel.pan
};
if (channel.recordUnit) {
data.arm = channel.recordUnit.recordArmed;
data.mon = channel.recordUnit.monitorActive;
}

// Restore
if (channel.canMuteSolo) {
channel.mute = data.mute;
channel.solo = data.solo;
}
if (channel.canDisable) channel.disabled = data.disabled;
if (typeof channel.volume !== "undefined") channel.volume = data.vol;
if (typeof channel.pan !== "undefined") channel.pan = data.pan;

Routing Example

// console — from context.functions.root.environment.find("MixerConsole")
// channel — from track.channel, track - from context.mainTrackList.getTrack(index)
// Only available in performEdit (TrackEdit context)

// Find a bus (sub-out) by name
var subList = console.getChannelList(2); // Sub-outs
var dimSoloBus = null;
for (var i = 0; i < subList.numChannels; i++) {
var bus = subList.getChannel(i);
if (bus.label === "Dim Solo") {
dimSoloBus = bus;
break;
}
}

// Route the channel to the dim solo bus
if (dimSoloBus) {
channel.connectTo(dimSoloBus);
}

// Route back to master (masterBus retrieved via console.getChannelList(3).getChannel(0))
channel.connectTo(masterBus);

// Check current routing
if (channel.getDestinationChannel() === dimSoloBus) {
// Channel is routed to dim solo bus
}