MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ rebuild_for()

void MayaFlux::Kriya::SamplingPipeline::rebuild_for ( uint64_t  milliseconds)

Stop and restart pipeline execution for a bounded duration.

Stops any running pipeline execution, resets the cycle counter, and restarts for the given duration. Hard-cuts all active voices at the point of restart. Document as a destructive operation.

Parameters
millisecondsDuration in milliseconds.

Definition at line 96 of file SamplingPipeline.cpp.

97{
98 if (!m_built) {
100 "SamplingPipeline::rebuild_for called before build. Use build_for instead to avoid redundant setup.");
101 return;
102 }
103 m_pipeline->stop_continuous();
104
105 const double seconds = static_cast<double>(milliseconds) / 1000.0;
106 const uint64_t cycles = Vruta::seconds_to_blocks(
108
109 m_pipeline->on_complete([this] {
110 std::ranges::fill(m_buffer->get_data(), 0.0);
111 });
112
113 m_pipeline->execute_buffer_rate(cycles);
114}
#define MF_WARN(comp, ctx,...)
uint32_t get_buffer_size(ProcessingToken token) const
Gets the buffer size for a token.
uint64_t get_sample_rate() const
Gets the sample rate for a token (audio-specific)
std::shared_ptr< Buffers::AudioBuffer > m_buffer
std::shared_ptr< BufferPipeline > m_pipeline
@ AUDIO_BACKEND
Standard audio processing backend configuration.
@ Configuration
Configuration and parameter updates.
@ Kriya
Automatable tasks and fluent scheduling api for Nodes and Buffers.
uint64_t seconds_to_blocks(double seconds, uint32_t sample_rate, uint32_t block_size)
Convert seconds to number of processing blocks.

References MayaFlux::Buffers::AUDIO_BACKEND, MayaFlux::Journal::Configuration, MayaFlux::Buffers::BufferManager::get_buffer_size(), MayaFlux::Buffers::BufferManager::get_sample_rate(), MayaFlux::Journal::Kriya, m_buffer, m_built, m_mgr, m_pipeline, MF_WARN, and MayaFlux::Vruta::seconds_to_blocks().

+ Here is the call graph for this function: