Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::midi::HumanizeSpec Struct Reference

Seeded timing and velocity jitter over note attacks. More...

#include <humanize.hpp>

Public Member Functions

constexpr auto operator<=> (const HumanizeSpec &) const =default

Public Attributes

std::int64_t timing_samples = 0
std::uint8_t velocity_amount = 0
std::uint64_t seed = 0
std::int64_t minimum_timing_samples = 0

Detailed Description

Seeded timing and velocity jitter over note attacks.

Timing jitter is a forward-only delay in [minimum_timing_samples, timing_samples]. A kernel on the audio thread cannot emit an event earlier than it arrived, so a symmetric jitter would only be expressible by delaying the whole stream; a forward delay keeps the kernel causal and keeps latency equal to the declared bound rather than hiding it.

Both jitter draws come from timebase::coordinate_random over the event's absolute sample position, so the same authored note receives the same jitter no matter how the caller partitions its blocks.

Member Function Documentation

◆ operator<=>()

auto pulp::midi::HumanizeSpec::operator<=> ( const HumanizeSpec & ) const
constexprdefault

Member Data Documentation

◆ minimum_timing_samples

std::int64_t pulp::midi::HumanizeSpec::minimum_timing_samples = 0

◆ seed

std::uint64_t pulp::midi::HumanizeSpec::seed = 0

◆ timing_samples

std::int64_t pulp::midi::HumanizeSpec::timing_samples = 0

◆ velocity_amount

std::uint8_t pulp::midi::HumanizeSpec::velocity_amount = 0

The documentation for this struct was generated from the following file:
  • /home/runner/work/pulp/pulp/core/midi/include/pulp/midi/humanize.hpp