Channel struct

A Channel is part of a Track (excluding Tracks that don't have Channels) and contains information related to routing and the Mixer.

Contents

Public variables

Plugin* midi_fx
The MIDI effect strip on instrument/MIDI tracks.
Plugin* inserts
The channel insert strip.
Plugin* instrument
The instrument plugin, if instrument track.
ChannelSend sends
The sends strip.
ExtPort* ext_midi_ins
External MIDI inputs that are currently connected to this channel as official inputs, unless all_midi_ins is enabled.
int all_midi_ins
If 1, the channel will connect to all MIDI ins found.
ExtPort* ext_stereo_l_ins
External audio L inputs that are currently connected to this channel as official inputs, unless all_stereo_l_ins is enabled.
int all_stereo_l_ins
If 1, the channel will connect to all stereo L ins found.
ExtPort* ext_stereo_r_ins
External audio R inputs that are currently connected to this channel as official inputs, unless all_stereo_r_ins is enabled.
int all_stereo_r_ins
If 1, the channel will connect to all stereo R ins found.
int midi_channels
1 or 0 flags for each channel to enable it or disable it.
int all_midi_channels
If 1, the channel will accept MIDI messages from all MIDI channels.
Fader* fader
The channel fader.
Fader* prefader
Prefader.
Port* midi_out
MIDI output for sending MIDI signals to other destinations, such as other channels when directly routed (eg MIDI track to ins track).
int has_output
Whether or not output_pos corresponds to a Track or not.
int output_pos
Output track.
int track_pos
Track associated with this channel.
int magic
This must be set to CHANNEL_MAGIC.
ChannelWidget* widget
The channel widget.
int record_set_automatically
Whether record was set automatically when the channel was selected.
Track* track
Pointer back to Track.

Variable documentation

Plugin* Channel::midi_fx

The MIDI effect strip on instrument/MIDI tracks.

This is processed before the instrument/inserts.

ChannelSend Channel::sends

The sends strip.

The first 6 (slots 0-5) are pre-fader and the rest are post-fader.

ExtPort* Channel::ext_midi_ins

External MIDI inputs that are currently connected to this channel as official inputs, unless all_midi_ins is enabled.

These should be serialized every time and connected to when the project gets loaded if Channel::all_midi_ins is not enabled.

If all_midi_ins is enabled, these are ignored.

ExtPort* Channel::ext_stereo_l_ins

External audio L inputs that are currently connected to this channel as official inputs, unless all_stereo_l_ins is enabled.

These should be serialized every time and if all_stereo_l_ins is not enabled, connected to when the project gets loaded.

If all_stereo_l_ins is enabled, these are ignored.

ExtPort* Channel::ext_stereo_r_ins

External audio R inputs that are currently connected to this channel as official inputs, unless all_stereo_r_ins is enabled.

These should be serialized every time and if all_stereo_r_ins is not enabled, connected to when the project gets loaded.

If all_stereo_r_ins is enabled, these are ignored.

int Channel::midi_channels

1 or 0 flags for each channel to enable it or disable it.

If all_midi_channels is enabled, this is ignored.

Fader* Channel::prefader

Prefader.

The last plugin should connect to this.

int Channel::has_output

Whether or not output_pos corresponds to a Track or not.

If not, the channel is routed to the engine.

int Channel::record_set_automatically

Whether record was set automatically when the channel was selected.

This is so that it can be unset when selecting another channel. If we don't do this all the channels end up staying on record mode.

Track* Channel::track

Pointer back to Track.

This is an exception to most other objects since each channel is always fixed to the same track.