|
Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
|
A processor to be used in the routing graph for playing samples independent of the timeline. More...
#include <src/engine/session/sample_processor.h>


Public Types | |
| using | PluginConfiguration = zrythm::plugins::PluginConfiguration |
Public Member Functions | |
| SampleProcessor (engine::device_io::AudioEngine *engine) | |
| void | init_loaded (engine::device_io::AudioEngine *engine) |
| void | load_instrument_if_empty () |
| Loads the instrument from the settings. | |
| void | process_block (EngineProcessTimeInfo time_nfo, const dsp::ITransport &transport) noexcept override |
| Process the samples for the given number of frames. | |
| utils::Utf8String | get_node_name () const override |
| Returns a human friendly name of the node. | |
| nframes_t | get_single_playback_latency () const override |
| Returns the latency of only the given processable, without adding the previous/next latencies. | |
| void | remove_sample_playback (SamplePlayback &sp) |
| Removes a SamplePlayback from the array. | |
| void | queue_sample_from_file (const char *path) |
| Adds a sample to play to the queue from a file path. | |
| void | queue_file (const FileDescriptor &file) |
| Adds a file (audio or MIDI) to the queue. | |
| void | queue_chord_preset (const ChordPreset &chord_pset) |
| Adds a chord preset to the queue. | |
| void | stop_file_playback () |
| Stops playback of files (auditioning). | |
| Public Member Functions inherited from zrythm::dsp::graph::IProcessable | |
| virtual void | prepare_for_processing (const GraphNode *node, units::sample_rate_t sample_rate, nframes_t max_block_length) |
| Called to allocate resources required for processing. | |
| virtual void | release_resources () |
| Called to release resources allocated by prepare_for_processing(). | |
Data Fields | |
| std::vector< SamplePlayback > | current_samples_ |
| An array of samples currently being played. | |
| std::unique_ptr< structure::tracks::Tracklist > | tracklist_ |
| Tracklist for file auditioning. | |
| std::unique_ptr< zrythm::plugins::PluginConfiguration > | instrument_setting_ |
| Instrument for MIDI auditioning. | |
| std::unique_ptr< dsp::MidiEvents > | midi_events_ |
| std::unique_ptr< dsp::Fader > | fader_ |
| Fader connected to the main output. | |
| bool | roll_ = false |
| Playhead for the tracklist (used when auditioning files). | |
| engine::device_io::AudioEngine * | audio_engine_ = nullptr |
| Pointer to owner audio engine, if any. | |
| moodycamel::LightweightSemaphore | rebuilding_sem_ { 1 } |
| Semaphore to be locked while rebuilding the sample processor tracklist and graph. | |
Friends | |
| void | init_from (SampleProcessor &obj, const SampleProcessor &other, utils::ObjectCloneType clone_type) |
| void | to_json (nlohmann::json &j, const SampleProcessor &sp) |
| void | from_json (const nlohmann::json &j, SampleProcessor &sp) |
A processor to be used in the routing graph for playing samples independent of the timeline.
Also used for auditioning files.
Definition at line 33 of file sample_processor.h.
| using zrythm::engine::session::SampleProcessor::PluginConfiguration = zrythm::plugins::PluginConfiguration |
Definition at line 37 of file sample_processor.h.
|
inlineoverridevirtual |
Returns a human friendly name of the node.
Implements zrythm::dsp::graph::IProcessable.
Definition at line 66 of file sample_processor.h.
|
inlineoverridevirtual |
Returns the latency of only the given processable, without adding the previous/next latencies.
Reimplemented from zrythm::dsp::graph::IProcessable.
Definition at line 71 of file sample_processor.h.
| void zrythm::engine::session::SampleProcessor::load_instrument_if_empty | ( | ) |
Loads the instrument from the settings.
To be called when the engine is activated, once.
|
overridevirtualnoexcept |
Process the samples for the given number of frames.
Reimplemented from zrythm::dsp::graph::IProcessable.
|
friend |
Definition at line 104 of file sample_processor.h.
|
friend |
Definition at line 100 of file sample_processor.h.
| engine::device_io::AudioEngine* zrythm::engine::session::SampleProcessor::audio_engine_ = nullptr |
Pointer to owner audio engine, if any.
Definition at line 146 of file sample_processor.h.
| std::vector<SamplePlayback> zrythm::engine::session::SampleProcessor::current_samples_ |
An array of samples currently being played.
Definition at line 118 of file sample_processor.h.
| std::unique_ptr<dsp::Fader> zrythm::engine::session::SampleProcessor::fader_ |
Fader connected to the main output.
Definition at line 129 of file sample_processor.h.
| std::unique_ptr<zrythm::plugins::PluginConfiguration> zrythm::engine::session::SampleProcessor::instrument_setting_ |
Instrument for MIDI auditioning.
Definition at line 124 of file sample_processor.h.
| std::unique_ptr<dsp::MidiEvents> zrythm::engine::session::SampleProcessor::midi_events_ |
Definition at line 126 of file sample_processor.h.
| moodycamel::LightweightSemaphore zrythm::engine::session::SampleProcessor::rebuilding_sem_ { 1 } |
Semaphore to be locked while rebuilding the sample processor tracklist and graph.
Definition at line 150 of file sample_processor.h.
| bool zrythm::engine::session::SampleProcessor::roll_ = false |
Playhead for the tracklist (used when auditioning files).
Position the file ends at.
Once this position is reached, SampleProcessor.roll will be set to false. Whether to roll or not.
Definition at line 143 of file sample_processor.h.
| std::unique_ptr<structure::tracks::Tracklist> zrythm::engine::session::SampleProcessor::tracklist_ |
Tracklist for file auditioning.
Definition at line 121 of file sample_processor.h.