Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::timebase::CompiledTempoMap Class Reference

#include <compiled_tempo_map.hpp>

Public Member Functions

TickPosition samples_to_ticks (SamplePosition sample) const noexcept
SampleToTickResult resolve_sample (SamplePosition sample) const noexcept
SamplePosition ticks_to_samples (TickPosition tick) const noexcept
long double fractional_ticks_to_samples (long double tick) const noexcept
 Continuous counterpart to ticks_to_samples() for render-time interpolation.
long double fractional_samples_to_ticks (long double sample) const noexcept
 Continuous inverse of fractional_ticks_to_samples() for render-time mapping.
double tempo_at_tick (TickPosition tick) const noexcept
double maximum_tempo_between (TickPosition start, TickPosition end) const noexcept
 Maximum tempo over [start, end], including every intersected ramp extremum.
bool matches (std::span< const TempoPoint > points) const noexcept
 True when this compiled map was built from exactly these canonical editable points.
RationalRate sample_rate () const noexcept
std::size_t segment_count () const noexcept

Static Public Member Functions

static runtime::Result< CompiledTempoMap, TempoMapError > compile (std::span< const TempoPoint > points, RationalRate sample_rate) noexcept
static runtime::Result< CompiledTempoMap, TempoMapError > compile (const TempoMap &map, RationalRate sample_rate) noexcept

Friends

class TempoCursor
class TempoTickCursor

Member Function Documentation

◆ compile() [1/2]

runtime::Result< CompiledTempoMap, TempoMapError > pulp::timebase::CompiledTempoMap::compile ( const TempoMap & map,
RationalRate sample_rate )
inlinestaticnoexcept

◆ compile() [2/2]

runtime::Result< CompiledTempoMap, TempoMapError > pulp::timebase::CompiledTempoMap::compile ( std::span< const TempoPoint > points,
RationalRate sample_rate )
staticnoexcept

◆ fractional_samples_to_ticks()

long double pulp::timebase::CompiledTempoMap::fractional_samples_to_ticks ( long double sample) const
noexcept

Continuous inverse of fractional_ticks_to_samples() for render-time mapping.

Uses the same compiled segment anchors and analytic curve inverse without rounding the input sample or returned tick.

◆ fractional_ticks_to_samples()

long double pulp::timebase::CompiledTempoMap::fractional_ticks_to_samples ( long double tick) const
noexcept

Continuous counterpart to ticks_to_samples() for render-time interpolation.

Uses the same compiled segment anchors and curve equations without rounding the result to an integer sample.

◆ matches()

bool pulp::timebase::CompiledTempoMap::matches ( std::span< const TempoPoint > points) const
noexcept

True when this compiled map was built from exactly these canonical editable points.

Sample rate is intentionally separate from the point identity and remains available through sample_rate().

◆ maximum_tempo_between()

double pulp::timebase::CompiledTempoMap::maximum_tempo_between ( TickPosition start,
TickPosition end ) const
noexcept

Maximum tempo over [start, end], including every intersected ramp extremum.

◆ resolve_sample()

SampleToTickResult pulp::timebase::CompiledTempoMap::resolve_sample ( SamplePosition sample) const
noexcept

◆ sample_rate()

RationalRate pulp::timebase::CompiledTempoMap::sample_rate ( ) const
inlinenoexcept

◆ samples_to_ticks()

TickPosition pulp::timebase::CompiledTempoMap::samples_to_ticks ( SamplePosition sample) const
noexcept

◆ segment_count()

std::size_t pulp::timebase::CompiledTempoMap::segment_count ( ) const
inlinenoexcept

◆ tempo_at_tick()

double pulp::timebase::CompiledTempoMap::tempo_at_tick ( TickPosition tick) const
noexcept

◆ ticks_to_samples()

SamplePosition pulp::timebase::CompiledTempoMap::ticks_to_samples ( TickPosition tick) const
noexcept

◆ TempoCursor

friend class TempoCursor
friend

◆ TempoTickCursor

friend class TempoTickCursor
friend

The documentation for this class was generated from the following file: