|
Zrythm v2.0.0-alpha.1
a highly automated and intuitive digital audio workstation
|
Audio port specifics. More...
#include <src/dsp/audio_port.h>


Public Types | |
| enum class | BusLayout : uint8_t { Mono , Stereo , Surround , Ambisonic } |
| Description of the channel layout of this port. More... | |
| enum class | Purpose : uint8_t { Main , Sidechain } |
| Purpose of this port. More... | |
| Public Types inherited from zrythm::dsp::Port | |
| using | FullDesignationProvider |
| Public Types inherited from zrythm::utils::UuidIdentifiableObject< Port > | |
| using | uuid_base_type |
| Exposes the CRTP parameter for concept checking. | |
Public Member Functions | |
| AudioPort (utils::Utf8String label, PortFlow flow, BusLayout layout, uint8_t num_channels, Purpose purpose=Purpose::Main) | |
| void | process_block (dsp::graph::ProcessBlockInfo time_nfo, const dsp::ITransport &transport, const dsp::TempoMap &tempo_map) noexcept override |
| void | clear_buffer (std::size_t offset, std::size_t nframes) override |
| Clears the port buffer. | |
| auto | layout () const |
| auto | purpose () const |
| auto & | buffers () const |
| auto & | audio_ring_buffers () const |
| auto | num_channels () const |
| void | mark_as_requires_limiting () |
| auto | requires_limiting () const |
| void | add_source_rt (const AudioPort &src, dsp::graph::ProcessBlockInfo time_nfo, float multiplier=1.f) |
Adds the contents of src to this port. | |
| void | copy_source_rt (const AudioPort &src, dsp::graph::ProcessBlockInfo time_nfo, float multiplier=1.f) |
| void | prepare_for_processing (const graph::GraphNode *node, units::sample_rate_t sample_rate, units::sample_u32_t max_block_length) override |
| Called to allocate resources required for processing. | |
| void | release_resources () override |
| Called to release resources allocated by prepare_for_processing(). | |
| Public Member Functions inherited from zrythm::dsp::Port | |
| void | set_full_designation_provider (FullDesignationProvider provider) |
| void | set_full_designation_provider (const auto *owner) |
| Convenience helper for providers that contain a get_full_designation_for_port() method. | |
| bool | is_input () const |
| bool | is_output () const |
| bool | is_midi () const |
| bool | is_cv () const |
| bool | is_audio () const |
| utils::Utf8String | get_label () const |
| auto | get_symbol () const |
| void | set_symbol (const utils::Utf8String &sym) |
| utils::Utf8String | get_node_name () const override |
| Returns a human friendly name of the node. | |
| utils::Utf8String | get_full_designation () const |
| Gets a full designation of the port in the format "Track/Port" or "Track/Plugin/Port". | |
| bool | has_label () const |
| PortType | type () const |
| PortFlow | flow () const |
| Public Member Functions inherited from zrythm::utils::UuidIdentifiableObject< Port > | |
| UuidIdentifiableObject (QObject *parent=nullptr) | |
| auto | get_uuid () const |
| Public Member Functions inherited from zrythm::utils::UuidIdentifiableBase | |
| UuidIdentifiableBase (QObject *parent=nullptr) | |
| UuidIdentifiableBase (const QUuid &id, QObject *parent=nullptr) | |
| QUuid | raw_uuid () const |
| Public Member Functions inherited from zrythm::dsp::graph::IProcessable | |
| virtual units::sample_u32_t | get_single_playback_latency () const |
| Returns the latency of only the given processable, without adding the previous/next latencies (zero latency by default). | |
| Public Member Functions inherited from zrythm::dsp::PortConnectionsCacheMixin< AudioPort > | |
| auto & | port_sources () const |
| void | set_port_sources (this auto &self, utils::RangeOf< AudioPort * > auto source_ports) |
Static Public Attributes | |
| static constexpr size_t | AUDIO_RING_SIZE = 65536 |
Friends | |
| void | init_from (AudioPort &obj, const AudioPort &other, utils::ObjectCloneType clone_type) |
| void | to_json (nlohmann::json &j, const AudioPort &port) |
| void | from_json (const nlohmann::json &j, AudioPort &port) |
Additional Inherited Members | |
| Data Fields inherited from zrythm::dsp::RingBufferOwningPortMixin | |
| std::atomic< int > | num_ring_buffer_readers_ { 0 } |
| Number of entities that want ring buffers to be written. | |
| Protected Member Functions inherited from zrythm::dsp::Port | |
| Port (utils::Utf8String label, PortType type={}, PortFlow flow={}, QObject *parent=nullptr) | |
| Protected Member Functions inherited from zrythm::utils::UuidIdentifiableBase | |
| void | set_raw_uuid (const QUuid &id) |
Audio port specifics.
Definition at line 20 of file audio_port.h.
|
strong |
Description of the channel layout of this port.
Definition at line 34 of file audio_port.h.
|
strong |
Purpose of this port.
Definition at line 50 of file audio_port.h.
|
inlinenodiscard |
Definition at line 75 of file audio_port.h.
|
inlinenodiscard |
Definition at line 74 of file audio_port.h.
|
overridevirtual |
Clears the port buffer.
Implements zrythm::dsp::Port.
|
inlinenodiscard |
Definition at line 72 of file audio_port.h.
|
inline |
Definition at line 78 of file audio_port.h.
|
inline |
Definition at line 76 of file audio_port.h.
|
overridevirtual |
Called to allocate resources required for processing.
| node | The node in the processing graph. Null means we are processing outside of a graph context and must be handled gracefully. |
| sample_rate | |
| max_block_length |
Reimplemented from zrythm::dsp::graph::IProcessable.
|
overridevirtualnoexcept |
Reimplemented from zrythm::dsp::graph::IProcessable.
|
inlinenodiscard |
Definition at line 73 of file audio_port.h.
|
overridevirtual |
Called to release resources allocated by prepare_for_processing().
This may be called multiple times.
Reimplemented from zrythm::dsp::graph::IProcessable.
|
inline |
Definition at line 79 of file audio_port.h.
|
staticconstexpr |
Definition at line 63 of file audio_port.h.