Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
zrythm::structure::tracks::Channel Class Reference

Represents a channel strip on the mixer. More...

#include <src/structure/tracks/channel.h>

Inheritance diagram for zrythm::structure::tracks::Channel:
Collaboration diagram for zrythm::structure::tracks::Channel:

Public Types

using PortType = zrythm::dsp::PortType
using Plugin = plugins::Plugin
using PluginDescriptor = zrythm::plugins::PluginDescriptor
using PluginPtrVariant = plugins::PluginPtrVariant
using PluginUuid = Plugin::Uuid
using NameProvider = std::function<utils::Utf8String ()>

Public Member Functions

 Channel (plugins::PluginRegistry &plugin_registry, dsp::ProcessorBase::ProcessorBaseDependencies processor_dependencies, dsp::PortType signal_type, NameProvider name_provider, bool hard_limit_fader_output, dsp::Fader::ShouldBeMutedCallback should_be_muted_cb, QObject *parent=nullptr)
dsp::Faderfader () const
QVariant preFader () const
dsp::AudioPortaudioOutPort () const
dsp::MidiPortgetMidiOut () const
plugins::PluginGroupmidiFx () const
plugins::PluginGroupinserts () const
plugins::PluginGroupinstruments () const
bool is_midi () const
bool is_audio () const
void get_plugins (std::vector< plugins::PluginPtrVariant > &plugins) const
 Returns all existing plugins in the channel.
plugins::PluginUuidReference remove_plugin (plugins::Plugin::Uuid id)
 Removes the given plugin.
dsp::Faderget_fader () const
auto & get_midi_pre_fader () const
auto & get_audio_pre_fader () const
auto & get_midi_post_fader () const
auto & get_audio_post_fader () const
auto & pre_fader_sends () const
auto & post_fader_sends () const

Properties

QML_ELEMENT zrythm::dsp::Faderfader
QVariant preFader
zrythm::dsp::AudioPortaudioOutPort
zrythm::dsp::MidiPortmidiOut
zrythm::plugins::PluginGroupinserts
zrythm::plugins::PluginGroupmidiFx
zrythm::plugins::PluginGroupinstruments

Friends

void init_from (Channel &obj, const Channel &other, utils::ObjectCloneType clone_type)
void to_json (nlohmann::json &j, const Channel &c)
void from_json (const nlohmann::json &j, Channel &c)

Detailed Description

Represents a channel strip on the mixer.

The Channel class encapsulates the functionality of a channel strip, including its plugins, fader, sends, and other properties.

Channels are owned by Track's and handle the second part of the signal chain when processing a track, where the signal is fed to each Channel subcomponent. (TrackProcessor handles the first part where any track inputs and arranger events are processed).

See also
ChannelTrack, ProcessableTrack and TrackProcessor.

Definition at line 56 of file channel.h.

Member Typedef Documentation

◆ NameProvider

using zrythm::structure::tracks::Channel::NameProvider = std::function<utils::Utf8String ()>

Definition at line 76 of file channel.h.

◆ Plugin

using zrythm::structure::tracks::Channel::Plugin = plugins::Plugin

Definition at line 71 of file channel.h.

◆ PluginDescriptor

using zrythm::structure::tracks::Channel::PluginDescriptor = zrythm::plugins::PluginDescriptor

Definition at line 72 of file channel.h.

◆ PluginPtrVariant

using zrythm::structure::tracks::Channel::PluginPtrVariant = plugins::PluginPtrVariant

Definition at line 73 of file channel.h.

◆ PluginUuid

using zrythm::structure::tracks::Channel::PluginUuid = Plugin::Uuid

Definition at line 74 of file channel.h.

◆ PortType

using zrythm::structure::tracks::Channel::PortType = zrythm::dsp::PortType

Definition at line 70 of file channel.h.

Member Function Documentation

◆ audioOutPort()

dsp::AudioPort * zrythm::structure::tracks::Channel::audioOutPort ( ) const
inline

Definition at line 98 of file channel.h.

◆ fader()

dsp::Fader * zrythm::structure::tracks::Channel::fader ( ) const
inline

Definition at line 92 of file channel.h.

◆ get_audio_post_fader()

auto & zrythm::structure::tracks::Channel::get_audio_post_fader ( ) const
inline

Definition at line 142 of file channel.h.

◆ get_audio_pre_fader()

auto & zrythm::structure::tracks::Channel::get_audio_pre_fader ( ) const
inline

Definition at line 140 of file channel.h.

◆ get_fader()

dsp::Fader & zrythm::structure::tracks::Channel::get_fader ( ) const
inline

Definition at line 138 of file channel.h.

◆ get_midi_post_fader()

auto & zrythm::structure::tracks::Channel::get_midi_post_fader ( ) const
inline

Definition at line 141 of file channel.h.

◆ get_midi_pre_fader()

auto & zrythm::structure::tracks::Channel::get_midi_pre_fader ( ) const
inline

Definition at line 139 of file channel.h.

◆ get_plugins()

void zrythm::structure::tracks::Channel::get_plugins ( std::vector< plugins::PluginPtrVariant > & plugins) const

Returns all existing plugins in the channel.

Parameters
plsVector to add plugins to.

◆ getMidiOut()

dsp::MidiPort * zrythm::structure::tracks::Channel::getMidiOut ( ) const
inline

Definition at line 104 of file channel.h.

◆ inserts()

plugins::PluginGroup * zrythm::structure::tracks::Channel::inserts ( ) const
inline

Definition at line 110 of file channel.h.

◆ instruments()

plugins::PluginGroup * zrythm::structure::tracks::Channel::instruments ( ) const
inline

Definition at line 111 of file channel.h.

◆ is_audio()

bool zrythm::structure::tracks::Channel::is_audio ( ) const
inline

Definition at line 116 of file channel.h.

◆ is_midi()

bool zrythm::structure::tracks::Channel::is_midi ( ) const
inline

Definition at line 115 of file channel.h.

◆ midiFx()

plugins::PluginGroup * zrythm::structure::tracks::Channel::midiFx ( ) const
inline

Definition at line 109 of file channel.h.

◆ post_fader_sends()

auto & zrythm::structure::tracks::Channel::post_fader_sends ( ) const
inline

Definition at line 145 of file channel.h.

◆ pre_fader_sends()

auto & zrythm::structure::tracks::Channel::pre_fader_sends ( ) const
inline

Definition at line 144 of file channel.h.

◆ preFader()

QVariant zrythm::structure::tracks::Channel::preFader ( ) const
inline

Definition at line 93 of file channel.h.

◆ remove_plugin()

plugins::PluginUuidReference zrythm::structure::tracks::Channel::remove_plugin ( plugins::Plugin::Uuid id)

Removes the given plugin.

Note
If moving the plugin, remember to also move automation tracks for this plugin. This method is not concerned with that.

◆ to_json

void to_json ( nlohmann::json & j,
const Channel & c )
friend

Definition at line 157 of file channel.h.

Property Documentation

◆ audioOutPort

zrythm::dsp::AudioPort * zrythm::structure::tracks::Channel::audioOutPort
read

Definition at line 62 of file channel.h.

◆ fader

QML_ELEMENT zrythm::dsp::Fader * zrythm::structure::tracks::Channel::fader
read

Definition at line 60 of file channel.h.

◆ inserts

zrythm::plugins::PluginGroup * zrythm::structure::tracks::Channel::inserts
read

Definition at line 64 of file channel.h.

◆ instruments

zrythm::plugins::PluginGroup * zrythm::structure::tracks::Channel::instruments
read

Definition at line 66 of file channel.h.

◆ midiFx

zrythm::plugins::PluginGroup * zrythm::structure::tracks::Channel::midiFx
read

Definition at line 65 of file channel.h.

◆ midiOut

zrythm::dsp::MidiPort * zrythm::structure::tracks::Channel::midiOut
read

Definition at line 63 of file channel.h.

◆ preFader

QVariant zrythm::structure::tracks::Channel::preFader
read

Definition at line 61 of file channel.h.


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