23class MidiLatencyQueue;
27 std::string
name =
"Pulp Sequence";
78 const
audio::BufferView<const
float>& audio_input,
midi::MidiBuffer& midi_in,
79 midi::MidiBuffer& midi_out, const
format::ProcessContext& context) override;
81 return prepared_ ?
static_cast<int>(prepared_latency_samples_) : 0;
94 return last_observation_;
99 struct PreparedPublication;
103 void* user_data)
noexcept;
104 bool prepare_graph(
const PreparedPublication& publication, std::uint32_t maximum_block_size);
114 std::vector<std::unique_ptr<TrackRuntime>> tracks_;
115 std::vector<timeline::ItemId> track_ids_;
121 std::uint32_t midi_output_node_index_ = 0;
122 std::uint32_t maximum_block_size_ = 0;
123 std::uint32_t prepared_latency_samples_ = 0;
124 std::unique_ptr<detail::MidiLatencyQueue> midi_delay_;
126 std::uint64_t midi_delay_playback_epoch_ = 0;
127 bool prepared_ =
false;
129 std::atomic<playback::AudioRenderStatus> block_audio_status_{
Definition program.hpp:371
Definition program.hpp:290
One exact-publication live Stretch runtime.
Definition realtime_stretch_renderer.hpp:31
Lock-free publication to a reader that must never block.
Definition slot.hpp:84
Re-anchors the engine transport to the host's integer sample position on every callback.
Definition host_transport_projector.hpp:32
SequenceProcessor(const playback::PlaybackProgramStore &store, SequenceProcessorConfig config={})
~SequenceProcessor() override
int latency_samples() const override
Latency in samples introduced by this processor (default 0).
Definition sequence_processor.hpp:80
SequenceProcessObservation last_observation() const noexcept
Definition sequence_processor.hpp:93
bool has_editor() const override
Editor support.
Definition sequence_processor.hpp:83
bool ready() const noexcept
Definition sequence_processor.hpp:90
void release() override
Release resources.
format::PluginDescriptor descriptor() const override
Return the plugin's metadata. Called once during initialization.
SequenceProcessorStatus status() const noexcept
Definition sequence_processor.hpp:87
void force_realtime_stretch_failure_for_test() noexcept
bool adopt_latest_program()
Control-thread operation.
void define_parameters(state::StateStore &store) override
Register parameters with the state store.
void process(audio::BufferView< float > &audio_output, const audio::BufferView< const float > &audio_input, midi::MidiBuffer &midi_in, midi::MidiBuffer &midi_out, const format::ProcessContext &context) override
Process one buffer of audio.
void prepare(const format::PrepareContext &context) override
Prepare for processing.
Centralized parameter storage with lock-free value access.
Definition store.hpp:164
Definition compiled_tempo_map.hpp:91
Definition analyzer_provider.hpp:12
Definition custom_node_events.hpp:26
AudioRenderStatus
Definition audio_renderer.hpp:214
@ Silent
Definition audio_renderer.hpp:216
Definition host_transport_projector.hpp:23
Definition host_transport_projector.hpp:8
SequenceProcessorStatus
Definition sequence_processor.hpp:38
@ TopologyChanged
Definition sequence_processor.hpp:44
@ TransportRejected
Definition sequence_processor.hpp:45
@ ExecutorFailed
Definition sequence_processor.hpp:48
@ MissingProgram
Definition sequence_processor.hpp:41
@ SampleRateMismatch
Definition sequence_processor.hpp:43
@ Unprepared
Definition sequence_processor.hpp:39
@ RealtimeStretchRejected
Definition sequence_processor.hpp:47
@ Ready
Definition sequence_processor.hpp:40
@ InvalidConfiguration
Definition sequence_processor.hpp:42
@ RenderFailed
Definition sequence_processor.hpp:46
Publishing a value built off the audio thread, and reclaiming the old one without ever calling a dest...
Definition graph_runtime_executor.hpp:70
Definition prepare_resources.hpp:102
Definition transport.hpp:71
Definition sequence_processor.hpp:51
timebase::TickPosition timeline_tick_start
Definition sequence_processor.hpp:52
std::uint32_t emitted_midi_events
Definition sequence_processor.hpp:53
bool discontinuity
Definition sequence_processor.hpp:54
playback::AudioRenderStatus audio_status
Definition sequence_processor.hpp:55
bool valid
Definition sequence_processor.hpp:56
Definition sequence_processor.hpp:26
std::size_t maximum_note_events_per_track_per_block
Definition sequence_processor.hpp:32
std::string name
Definition sequence_processor.hpp:27
std::uint32_t output_channels
Definition sequence_processor.hpp:31
std::string manufacturer
Definition sequence_processor.hpp:28
std::size_t maximum_delayed_events
Admission ceiling for each prepared MIDI/UMP latency ring.
Definition sequence_processor.hpp:35
std::string version
Definition sequence_processor.hpp:30
std::string bundle_id
Definition sequence_processor.hpp:29