Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
tempo_delay.hpp File Reference

Musical-division conversion and fixed-state delay-time transitions. More...

#include <pulp/timebase/beat_division.hpp>
#include <pulp/timebase/compiled_tempo_map.hpp>
#include <algorithm>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <limits>

Go to the source code of this file.

Classes

struct  pulp::signal::TempoDelayResult
class  pulp::signal::TempoDelayTime
 Fixed-state controller for deterministic delay read-time modulation. More...

Namespaces

namespace  pulp
namespace  pulp::signal

Enumerations

enum class  pulp::signal::TempoDelayError : std::uint8_t {
  pulp::signal::none , pulp::signal::not_prepared , pulp::signal::invalid_division , pulp::signal::invalid_tempo ,
  pulp::signal::invalid_sample_rate , pulp::signal::invalid_delay , pulp::signal::out_of_range
}

Functions

TempoDelayResult pulp::signal::tempo_delay_samples (timebase::BeatDivision division, double beats_per_minute, double sample_rate) noexcept
 Convert an exact persisted musical division to a fractional delay length.

Variables

constexpr double pulp::signal::kMinimumTempoDelayBpm = timebase::kMinimumCompiledTempoBpm
 These bounds intentionally match TempoMap / CompiledTempoMap: a delay synchronized to a transport must accept exactly the tempo and sample-rate domain that the transport can compile.
constexpr double pulp::signal::kMaximumTempoDelayBpm = timebase::kMaximumCompiledTempoBpm
constexpr double pulp::signal::kMaximumTempoDelaySampleRate

Detailed Description

Musical-division conversion and fixed-state delay-time transitions.