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

A TrackProcessor is a processor that is used as the first entry point when processing a track. More...

#include <dsp/track_processor.h>

Collaboration diagram for TrackProcessor:

Data Fields

int schema_version
 
StereoPortsstereo_in
 L & R audio input ports, if audio.
 
Portmono
 Mono toggle, if audio.
 
Portinput_gain
 Input gain, if audio.
 
Portoutput_gain
 Output gain, if audio.
 
StereoPortsstereo_out
 L & R audio output ports, if audio.
 
Portmidi_in
 MIDI in Port.
 
Portmidi_out
 MIDI out port, if MIDI.
 
Portpiano_roll
 MIDI input for receiving MIDI signals from the piano roll (i.e., MIDI notes inside regions) or other sources.
 
Portmonitor_audio
 Whether to monitor the audio output.
 
MidiMappingscc_mappings
 Mappings to each CC port.
 
Portmidi_cc [128 *16]
 MIDI CC control ports, 16 channels.
 
Portpitch_bend [16]
 Pitch bend.
 
Portpoly_key_pressure [16]
 Polyphonic key pressure (aftertouch).
 
Portchannel_pressure [16]
 Channel pressure (aftertouch).
 
float l_port_db
 Current dBFS after processing each output port.
 
float r_port_db
 
Tracktrack
 Pointer to owner track, if any.
 
bool pending_midi_panic
 To be set to true when a panic (all notes off) message should be sent during processing.
 
MPMCQueueupdated_midi_automatable_ports
 A queue of MIDI CC ports whose values have been recently updated.
 
int magic
 

Detailed Description

A TrackProcessor is a processor that is used as the first entry point when processing a track.

Definition at line 43 of file track_processor.h.

Field Documentation

◆ cc_mappings

MidiMappings* TrackProcessor::cc_mappings

Mappings to each CC port.

Definition at line 109 of file track_processor.h.

◆ channel_pressure

Port* TrackProcessor::channel_pressure[16]

Channel pressure (aftertouch).

This message is different from polyphonic after-touch - sends the single greatest pressure value (of all the current depressed keys).

Definition at line 134 of file track_processor.h.

◆ input_gain

Port* TrackProcessor::input_gain

Input gain, if audio.

Definition at line 56 of file track_processor.h.

◆ l_port_db

float TrackProcessor::l_port_db

Current dBFS after processing each output port.

Transient variables only used by the GUI.

Definition at line 143 of file track_processor.h.

◆ magic

int TrackProcessor::magic

Definition at line 165 of file track_processor.h.

◆ midi_cc

Port* TrackProcessor::midi_cc[128 *16]

MIDI CC control ports, 16 channels.

Definition at line 112 of file track_processor.h.

◆ midi_in

Port* TrackProcessor::midi_in

MIDI in Port.

This port is for receiving MIDI signals from an external MIDI source.

This is also where piano roll, midi in and midi manual press will be routed to and this will be the port used to pass midi to the plugins.

Definition at line 79 of file track_processor.h.

◆ midi_out

Port* TrackProcessor::midi_out

MIDI out port, if MIDI.

Definition at line 84 of file track_processor.h.

◆ monitor_audio

Port* TrackProcessor::monitor_audio

Whether to monitor the audio output.

This is only used on audio tracks. During recording, if on, the recorded audio will be passed to the output. If off, the recorded audio will not be passed to the output.

When not recording, this will only take effect when paused.

Definition at line 104 of file track_processor.h.

◆ mono

Port* TrackProcessor::mono

Mono toggle, if audio.

Definition at line 53 of file track_processor.h.

◆ output_gain

Port* TrackProcessor::output_gain

Output gain, if audio.

This is applied after regions are processed to TrackProcessor.streo_out.

Definition at line 64 of file track_processor.h.

◆ pending_midi_panic

bool TrackProcessor::pending_midi_panic

To be set to true when a panic (all notes off) message should be sent during processing.

Only applies to tracks that receive MIDI input.

Definition at line 155 of file track_processor.h.

◆ piano_roll

Port* TrackProcessor::piano_roll

MIDI input for receiving MIDI signals from the piano roll (i.e., MIDI notes inside regions) or other sources.

This will not be a separately exposed port during processing. It will be processed by the TrackProcessor internally.

Definition at line 93 of file track_processor.h.

◆ pitch_bend

Port* TrackProcessor::pitch_bend[16]

Pitch bend.

Definition at line 115 of file track_processor.h.

◆ poly_key_pressure

Port* TrackProcessor::poly_key_pressure[16]

Polyphonic key pressure (aftertouch).

This message is most often sent by pressing down on the key after it "bottoms out".

FIXME this is completely wrong. It's supposed to be per-key, so 128 x 16 ports.

Definition at line 126 of file track_processor.h.

◆ r_port_db

float TrackProcessor::r_port_db

Definition at line 144 of file track_processor.h.

◆ schema_version

int TrackProcessor::schema_version

Definition at line 45 of file track_processor.h.

◆ stereo_in

StereoPorts* TrackProcessor::stereo_in

L & R audio input ports, if audio.

Definition at line 50 of file track_processor.h.

◆ stereo_out

StereoPorts* TrackProcessor::stereo_out

L & R audio output ports, if audio.

Definition at line 69 of file track_processor.h.

◆ track

Track* TrackProcessor::track

Pointer to owner track, if any.

Definition at line 147 of file track_processor.h.

◆ updated_midi_automatable_ports

MPMCQueue* TrackProcessor::updated_midi_automatable_ports

A queue of MIDI CC ports whose values have been recently updated.

This is used during processing to avoid checking every single MIDI CC port for changes.

Definition at line 163 of file track_processor.h.


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