Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
Channel Struct Reference

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

#include <dsp/channel.h>

Collaboration diagram for Channel:

Public Member Functions

Pluginchannel_get_plugin_at (const Channel *self, int slot, ZPluginSlotType slot_type)
 

Data Fields

int schema_version
 
Pluginmidi_fx [STRIP_SIZE]
 The MIDI effect strip on instrument/MIDI tracks.
 
Plugininserts [STRIP_SIZE]
 The channel insert strip.
 
Plugininstrument
 The instrument plugin, if instrument track.
 
ChannelSendsends [STRIP_SIZE]
 The sends strip.
 
ExtPortext_midi_ins [EXT_PORTS_MAX]
 External MIDI inputs that are currently connected to this channel as official inputs, unless all_midi_ins is enabled.
 
int num_ext_midi_ins
 
bool all_midi_ins
 If true, the channel will connect to all MIDI ins found.
 
ExtPortext_stereo_l_ins [EXT_PORTS_MAX]
 External audio L inputs that are currently connected to this channel as official inputs, unless all_stereo_l_ins is enabled.
 
int num_ext_stereo_l_ins
 
bool all_stereo_l_ins
 If true, the channel will connect to all stereo L ins found.
 
ExtPortext_stereo_r_ins [EXT_PORTS_MAX]
 External audio R inputs that are currently connected to this channel as official inputs, unless all_stereo_r_ins is enabled.
 
int num_ext_stereo_r_ins
 
bool all_stereo_r_ins
 If true, the channel will connect to all stereo R ins found.
 
int midi_channels [16]
 1 or 0 flags for each channel to enable it or disable it.
 
bool all_midi_channels
 If true, the channel will accept MIDI messages from all MIDI channels.
 
Faderfader
 The channel fader.
 
Faderprefader
 Prefader.
 
Portmidi_out
 MIDI output for sending MIDI signals to other destinations, such as other channels when directly routed (eg MIDI track to ins track).
 
StereoPortsstereo_out
 
int has_output
 Whether or not output_pos corresponds to a Track or not.
 
unsigned int output_name_hash
 Output track.
 
int track_pos
 Track associated with this channel.
 
int width
 Channel widget width - reserved for future use.
 
int magic
 This must be set to CHANNEL_MAGIC.
 
ChannelWidgetwidget
 The channel widget.
 
Tracktrack
 Pointer to owner track.
 

Detailed Description

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

Definition at line 56 of file channel.h.

Field Documentation

◆ all_midi_channels

bool Channel::all_midi_channels

If true, the channel will accept MIDI messages from all MIDI channels.

Definition at line 136 of file channel.h.

◆ all_midi_ins

bool Channel::all_midi_ins

If true, the channel will connect to all MIDI ins found.

Definition at line 95 of file channel.h.

◆ all_stereo_l_ins

bool Channel::all_stereo_l_ins

If true, the channel will connect to all stereo L ins found.

Definition at line 110 of file channel.h.

◆ all_stereo_r_ins

bool Channel::all_stereo_r_ins

If true, the channel will connect to all stereo R ins found.

Definition at line 125 of file channel.h.

◆ ext_midi_ins

ExtPort* Channel::ext_midi_ins[EXT_PORTS_MAX]

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.

Definition at line 90 of file channel.h.

◆ ext_stereo_l_ins

ExtPort* Channel::ext_stereo_l_ins[EXT_PORTS_MAX]

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.

Definition at line 106 of file channel.h.

◆ ext_stereo_r_ins

ExtPort* Channel::ext_stereo_r_ins[EXT_PORTS_MAX]

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.

Definition at line 121 of file channel.h.

◆ fader

Fader* Channel::fader

The channel fader.

Definition at line 139 of file channel.h.

◆ has_output

int Channel::has_output

Whether or not output_pos corresponds to a Track or not.

If not, the channel is routed to the engine.

Definition at line 165 of file channel.h.

◆ inserts

Plugin* Channel::inserts[STRIP_SIZE]

The channel insert strip.

Definition at line 67 of file channel.h.

◆ instrument

Plugin* Channel::instrument

The instrument plugin, if instrument track.

Definition at line 70 of file channel.h.

◆ magic

int Channel::magic

This must be set to CHANNEL_MAGIC.

Definition at line 177 of file channel.h.

◆ midi_channels

int Channel::midi_channels[16]

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

If all_midi_channels is enabled, this is ignored.

Definition at line 132 of file channel.h.

◆ midi_fx

Plugin* Channel::midi_fx[STRIP_SIZE]

The MIDI effect strip on instrument/MIDI tracks.

This is processed before the instrument/inserts.

Definition at line 64 of file channel.h.

◆ midi_out

Port* Channel::midi_out

MIDI output for sending MIDI signals to other destinations, such as other channels when directly routed (eg MIDI track to ins track).

Definition at line 152 of file channel.h.

◆ num_ext_midi_ins

int Channel::num_ext_midi_ins

Definition at line 91 of file channel.h.

◆ num_ext_stereo_l_ins

int Channel::num_ext_stereo_l_ins

Definition at line 107 of file channel.h.

◆ num_ext_stereo_r_ins

int Channel::num_ext_stereo_r_ins

Definition at line 122 of file channel.h.

◆ output_name_hash

unsigned int Channel::output_name_hash

Output track.

Definition at line 168 of file channel.h.

◆ prefader

Fader* Channel::prefader

Prefader.

The last plugin should connect to this.

Definition at line 146 of file channel.h.

◆ schema_version

int Channel::schema_version

Definition at line 58 of file channel.h.

◆ sends

ChannelSend* Channel::sends[STRIP_SIZE]

The sends strip.

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

Note
See CHANNEL_SEND_POST_FADER_START_SLOT.

Definition at line 79 of file channel.h.

◆ stereo_out

StereoPorts* Channel::stereo_out

Definition at line 158 of file channel.h.

◆ track

Track* Channel::track

Pointer to owner track.

Definition at line 183 of file channel.h.

◆ track_pos

int Channel::track_pos

Track associated with this channel.

Definition at line 171 of file channel.h.

◆ widget

ChannelWidget* Channel::widget

The channel widget.

Definition at line 180 of file channel.h.

◆ width

int Channel::width

Channel widget width - reserved for future use.

Definition at line 174 of file channel.h.


The documentation for this struct was generated from the following file: