audio/channel.h file


API for Channel, representing a channel strip on the mixer.


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


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


void channel_handle_recording(Channel* self, const long g_frames_start, const nframes_t nframes)
Handles the recording logic inside the process cycle.
void channel_append_all_ports(Channel* ch, Port*** ports, int* size, bool is_dynamic, int* max_size, bool include_plugins)
Appends all channel ports and optionally plugin ports to the array.
void channel_expose_ports_to_backend(Channel* ch)
Exposes the channel's ports to the backend.
void channel_connect(Channel* ch)
Connects the channel's ports.
void channel_add_balance_control(void* _channel, float pan)
Adds to (or subtracts from) the pan.
void channel_reset_fader(Channel* channel)
Sets fader to 0.0.
void channel_prepare_process(Channel* channel)
Prepares the channel for processing.
auto channel_new(Track* track) -> Channel*
Creates a channel of the given type with the given label.
void channel_process(Channel* channel)
The process function prototype.
auto channel_add_plugin(Channel* channel, PluginSlotType slot_type, int pos, Plugin* plugin, bool confirm, bool gen_automatables, bool recalc_graph, bool pub_events) -> int
Adds given plugin to given position in the strip.
void channel_reconnect_ext_input_ports(Channel* ch)
Called when the input has changed for Midi, Instrument or Audio tracks.
void channel_reattach_midi_editor_manual_press_port(Channel* channel, int connect, const int recalc_graph)
Connects or disconnects the MIDI editor key press port to the channel's first plugin.
auto channel_get_automation_track(Channel* channel, PortFlags type) -> AutomationTrack*
Convenience function to get the automation track of the given type for the channel.
void channel_remove_plugin(Channel* channel, PluginSlotType slot_type, int slot, bool deleting_plugin, bool deleting_channel, bool recalc_graph)
Removes a plugin at pos from the channel.
void channel_update_track_pos(Channel* self, int pos)
Updates the track position in the channel and all related ports and identifiers.
auto channel_get_mono_compat_enabled(Channel* self) -> bool
Gets whether mono compatibility is enabled.
void channel_set_mono_compat_enabled(Channel* self, bool enabled, bool fire_events)
Sets whether mono compatibility is enabled.
auto channel_clone(Channel* ch, Track* track, bool src_is_project) -> Channel*
Clones the channel recursively.
void channel_disconnect(Channel* channel, bool remove_pl)
Disconnects the channel from the processing chain.
void channel_free(Channel* channel)
Frees the channel.


Magic number to identify channels.