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, int 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_pan(void* _channel, float pan)
Adds to (or subtracts from) the pan.
void channel_prepare_for_serialization(Channel* ch)
Prepares the Channel for serialization.
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_remove_ats_from_automation_tracklist(Channel* ch)
Removes the AutomationTrack's associated with this channel from the AutomationTracklist in the corresponding Track.
void channel_process(Channel* channel)
The process function prototype.
auto channel_add_plugin(Channel* channel, int pos, Plugin* plugin, int confirm, int gen_automatables, int recalc_graph) -> int
Adds given plugin to given position in the strip.
void channel_update_output(Channel* ch, Track* output)
Updates the output of the Channel (where the Channel routes to.
void channel_reconnect_ext_input_ports(Channel* ch)
Called when the input has changed for Midi, Instrument or Audio tracks.
auto channel_get_last_active_slot_index(Channel* channel) -> int
Returns the index of the last active slot.
auto channel_get_last_plugin(Channel* self) -> Plugin*
Returns the last Plugin in the strip.
auto channel_get_index(Channel* channel) -> int
Returns the index on the mixer.
auto channel_get_plugin_index(Channel* channel, Plugin* plugin) -> int
Returns the plugin's strip index on the channel.
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_first_plugin(Channel* channel) -> Plugin*
Convenience method to get the first active plugin in the channel.
auto channel_get_automatable(Channel* channel, AutomatableType type) -> Automatable*
Convenience function to get the fader automatable of the channel.
void channel_generate_automation_tracks(Channel* channel)
Generates automatables for the channel.
void channel_remove_plugin(Channel* channel, int pos, int deleting_plugin, int deleting_channel, int recalc_graph)
Removes a plugin at pos from the channel.
auto channel_clone(Channel* ch, Track* track) -> Channel*
Clones the channel recursively.
void channel_disconnect(Channel* channel, int remove_pl, int recalc_graph)
Disconnects the channel from the processing chain.
void channel_free(Channel* channel)
Frees the channel.