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
canDisableflag—010 = MusicTrack (not disableable), 1 = AudioTrack (disableable)
canMuteSoloflag—111 = 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.
editGroupstring—group nameEdit group name.
editorobject—ChannelEditorChannelEditorChannel editor object. See Editor.
environmentstring—"SongEnvironment""SongEnvironment"Environment identifier.
insertsobject——Inserts objectChannel insert effects chain (AudioTrack only). See Inserts.
labelstring—Same as titleSame as titleDisplay label (alias).
maxVolumenumber——3.162Maximum fader value (AudioTrack only).
mediaTypestring—"Music""Audio"Media type.
muteflagYes000 = not muted, 1 = muted
namestring—"Channel02""Channel01"Internal channel name.
overviewobject—ChannelOverviewChannelOverviewChannel overview object. See Overview.
pannumberYes—0.5Pan position (AudioTrack only). 0.0 = left, 0.5 = center, 1.0 = right.
recordUnitobject—RecordUnitRecordUnitRecord unit object. See Record Unit.
soloflagYes000 = not soloed, 1 = soloed
soloSafeflagYes000 = not safe, 1 = solo safe
titlestring—"Instrument""Audio"Display name / label.
volumenumberYes—1Fader 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)object — paramname (string, req): Parameter key.Find a parameter by name.
focus()—(none)Focus channel in the mixer.
getDestinationChannel()object — AudioOutput(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)object — paramname — 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.
channelobjectNo—Back-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.
parentobjectNo—Back-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"—✓
"selected"✓✓
"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"

selected​

Track selection state (0/1). Setting it to 0 deselects the track.

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
}