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

Non-owning facade over Pulp's two existing voice owners. More...

#include <pulp/audio/instrument_voice_allocator.hpp>
#include <pulp/audio/voice_modulation_buffer.hpp>
#include <pulp/audio/voice_sum_mixer.hpp>
#include <pulp/midi/synthesiser.hpp>
#include <array>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <span>
#include <type_traits>
#include <utility>

Go to the source code of this file.

Classes

struct  pulp::audio::VoiceNoteModulationResult
struct  pulp::audio::VoiceNoteModulationInput
 Note/controller state translated to constant per-voice modulation lanes. More...
struct  pulp::audio::VoiceNoteModulationRouting
 Explicit mapping from note semantics to VoiceModulationBuffer targets. More...
class  pulp::audio::VoiceNoteModulationBridge
struct  pulp::audio::AllocatedVoiceRuntimeTriggerResult
class  pulp::audio::VoiceRuntimeFacade< Owner >
 Primary template intentionally rejects unsupported owners. More...
class  pulp::audio::VoiceRuntimeFacade< midi::Synthesiser< Voice > >
 Plain-MIDI facade. More...
class  pulp::audio::VoiceRuntimeFacade< InstrumentVoiceAllocator >
 Prepared slot facade. More...

Namespaces

namespace  pulp
namespace  pulp::audio
namespace  pulp::audio::detail

Enumerations

enum class  pulp::audio::VoiceNoteModulationStatus : std::uint8_t {
  pulp::audio::Ok , pulp::audio::NotPrepared , pulp::audio::InvalidFrameCount , pulp::audio::InvalidNote ,
  pulp::audio::InvalidController , pulp::audio::InvalidBendRange , pulp::audio::InvalidRouting , pulp::audio::InsufficientLanes ,
  pulp::audio::BufferRejected
}
enum class  pulp::audio::VoiceRuntimeFacadeStatus : std::uint8_t {
  pulp::audio::Ok , pulp::audio::OwnerNotPrepared , pulp::audio::InvalidModulationCapacity , pulp::audio::InvalidTerminationCapacity ,
  pulp::audio::OwnerRejected
}

Functions

template<typename Owner>
 pulp::audio::VoiceRuntimeFacade (Owner &) -> VoiceRuntimeFacade< Owner >

Variables

template<typename>
constexpr bool pulp::audio::detail::unsupported_voice_runtime_owner = false

Detailed Description

Non-owning facade over Pulp's two existing voice owners.

VoiceRuntimeFacade<Owner> borrows exactly one supported owner: either a midi::Synthesiser<Voice> or an InstrumentVoiceAllocator. It never owns, type-erases, or combines allocators. The caller must keep the owner alive for the facade's entire lifetime and must keep every span passed to a method alive until that method returns.