Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
step_player.hpp File Reference
#include <pulp/midi/utility_contract.hpp>
#include <pulp/timebase/compiled_tempo_map.hpp>
#include <pulp/timebase/coordinate_random.hpp>
#include <pulp/timebase/quantize.hpp>
#include <pulp/timebase/ratchet.hpp>
#include <pulp/timebase/tick.hpp>
#include <algorithm>
#include <array>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <optional>
#include <span>

Go to the source code of this file.

Classes

struct  pulp::midi::StepPlayerStep
 The authored data at one lane and step coordinate. More...
struct  pulp::midi::StepPlayerLaneSpec
struct  pulp::midi::StepPlayerBlock
 Block timing for one sample-accurate step-player call. More...
struct  pulp::midi::StepPlayerCapacityContract
struct  pulp::midi::StepPlayerCoordinate
 A lane's authored coordinate at one grid tick. More...
class  pulp::midi::StepPlayer< MaxLanes, MaxSteps, MaxRatchetHits, MaximumStepsPerBlock >
 Fixed-capacity, sample-accurate multi-lane linear step player. More...
struct  pulp::midi::StepPlayer< MaxLanes, MaxSteps, MaxRatchetHits, MaximumStepsPerBlock >::Spec

Namespaces

namespace  pulp
namespace  pulp::midi
namespace  pulp::midi::step_player_detail

Enumerations

enum class  pulp::midi::StepPlayerDirection : std::uint8_t { pulp::midi::Forward , pulp::midi::Reverse , pulp::midi::PingPong , pulp::midi::Random }
enum class  pulp::midi::StepPlayerTransportEvent : std::uint8_t {
  pulp::midi::Continuous , pulp::midi::Started , pulp::midi::Stopped , pulp::midi::Seeked ,
  pulp::midi::LoopWrapped
}
enum class  pulp::midi::StepPlayerError : std::uint8_t {
  pulp::midi::None , pulp::midi::NotConfigured , pulp::midi::InvalidLane , pulp::midi::InvalidStepIndex ,
  pulp::midi::InvalidVelocity , pulp::midi::InvalidGate , pulp::midi::InvalidProbability , pulp::midi::InvalidRatchetCount ,
  pulp::midi::InvalidPitchOffset , pulp::midi::InvalidTimingOffset
}

Functions

constexpr std::int64_t pulp::midi::step_player_detail::floor_div (std::int64_t numerator, std::int64_t denominator) noexcept
constexpr std::int64_t pulp::midi::step_player_detail::saturating_multiply (std::int64_t lhs, std::int64_t rhs) noexcept
constexpr std::size_t pulp::midi::step_player_detail::positive_mod (std::int64_t value, std::size_t modulus) noexcept
constexpr bool pulp::midi::step_player_detail::distance_exceeds (std::int64_t lhs, std::int64_t rhs, std::uint64_t tolerance) noexcept
constexpr long double pulp::midi::step_player_detail::difference_as_long_double (std::int64_t lhs, std::int64_t rhs) noexcept
std::int64_t pulp::midi::step_player_detail::saturating_round (long double value) noexcept
constexpr bool pulp::midi::step_player_detail::valid_direction (StepPlayerDirection direction) noexcept