Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
sample_heritage_schema.hpp File Reference
#include <algorithm>
#include <array>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <iterator>
#include <string>
#include <string_view>
#include <type_traits>
#include <utility>
#include <variant>
#include <vector>

Go to the source code of this file.

Classes

struct  pulp::audio::SampleHeritageVoiceMachineDomainBlock
struct  pulp::audio::SampleHeritageVoiceClockBlock
struct  pulp::audio::SampleHeritageVoicePitchBlock
struct  pulp::audio::SampleHeritageVoiceConverterBlock
struct  pulp::audio::SampleHeritageVoiceHoldDroopBlock
struct  pulp::audio::SampleHeritageVoiceReconstructionBlock
struct  pulp::audio::SampleHeritageVoiceAnalogColorBlock
struct  pulp::audio::SampleHeritageVoiceLiveCyclicStretchBlock
struct  pulp::audio::SampleHeritageVoiceBlockSpec
struct  pulp::audio::SampleHeritageBusNoiseIdleBlock
struct  pulp::audio::SampleHeritageBusOutputDriveBlock
struct  pulp::audio::SampleHeritageBusBlockSpec
struct  pulp::audio::SampleHeritageRecordInputDriveClipBlock
struct  pulp::audio::SampleHeritageRecordRateBlock
struct  pulp::audio::SampleHeritageRecordConverterBlock
struct  pulp::audio::SampleHeritageRecordCommitCyclicStretchBlock
struct  pulp::audio::SampleHeritageRecordCommitAdaptiveStretchBlock
struct  pulp::audio::SampleHeritageRecordCommitBlockSpec
struct  pulp::audio::SampleHeritageMachineDomainStage
struct  pulp::audio::SampleHeritageQuantizationStage
struct  pulp::audio::SampleHeritageClockPitchStage
struct  pulp::audio::SampleHeritageDacHoldStage
struct  pulp::audio::SampleHeritageReconstructionFilterStage
struct  pulp::audio::SampleHeritageNoiseStage
struct  pulp::audio::SampleHeritageOutputStage
struct  pulp::audio::SampleHeritageStageSpec
struct  pulp::audio::SampleHeritageProfile
 Authoring/serialization schema. More...
struct  pulp::audio::SampleHeritagePreparedProfile
struct  pulp::audio::SampleHeritageProfileValidation

Namespaces

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

Typedefs

using pulp::audio::SampleHeritageVoiceBlockParameters
using pulp::audio::SampleHeritageBusBlockParameters
using pulp::audio::SampleHeritageRecordCommitBlockParameters
using pulp::audio::SampleHeritageStageParameters

Enumerations

enum class  pulp::audio::SampleHeritageSeedPolicy : std::uint8_t { pulp::audio::RestartFromProfileSeed , pulp::audio::ContinueSerializedState }
enum class  pulp::audio::SampleHeritageBlockDomain : std::uint8_t { pulp::audio::Voice , pulp::audio::Bus , pulp::audio::RecordCommit }
enum class  pulp::audio::SampleHeritagePitchFamily : std::uint8_t { pulp::audio::VariableClock , pulp::audio::DropRepeat , pulp::audio::EarlyLinear }
enum class  pulp::audio::SampleHeritageConverterFamily : std::uint8_t { pulp::audio::LinearPcm , pulp::audio::MuLaw , pulp::audio::ALaw }
enum class  pulp::audio::SampleHeritageHoldMode : std::uint8_t { pulp::audio::ZeroOrder }
enum class  pulp::audio::SampleHeritageCutoffLaw : std::uint8_t { pulp::audio::FixedHz , pulp::audio::MachineRateRatio }
enum class  pulp::audio::SampleHeritageNoiseGate : std::uint8_t { pulp::audio::AlwaysOn , pulp::audio::VoiceActive }
enum class  pulp::audio::SampleHeritageReconstructionFamily : std::uint8_t { pulp::audio::OnePole , pulp::audio::Butterworth , pulp::audio::Chebyshev , pulp::audio::Elliptic }
enum class  pulp::audio::SampleHeritageRecordFilterFamily : std::uint8_t { pulp::audio::OnePole , pulp::audio::Butterworth , pulp::audio::Chebyshev , pulp::audio::Elliptic }
enum class  pulp::audio::SampleHeritageAnalogFilterFamily : std::uint8_t { pulp::audio::None , pulp::audio::Ladder4Pole }
enum class  pulp::audio::SampleHeritageLivePitchMode : std::uint8_t { pulp::audio::Preserve , pulp::audio::RateLinked }
enum class  pulp::audio::SampleHeritageProfileStatus : std::uint8_t {
  pulp::audio::Ok , pulp::audio::UnsupportedSchemaVersion , pulp::audio::InvalidProfileId , pulp::audio::InvalidHostSampleRate ,
  pulp::audio::TooManyStages , pulp::audio::TooManyBlocks , pulp::audio::WrongBlockDomain , pulp::audio::MixedLegacyAndTypedBlocks ,
  pulp::audio::NonCanonicalProfileRepresentation , pulp::audio::DuplicateStage , pulp::audio::InvalidStageOrder , pulp::audio::InvalidStageParameter ,
  pulp::audio::UnsupportedRateConversion , pulp::audio::DigestUnavailable
}

Functions

constexpr std::uint32_t pulp::audio::sample_heritage_adaptive_effective_search_radius (const SampleHeritageRecordCommitAdaptiveStretchBlock &block) noexcept
constexpr std::uint32_t pulp::audio::sample_heritage_adaptive_effective_crossfade_samples (const SampleHeritageRecordCommitAdaptiveStretchBlock &block) noexcept
bool pulp::audio::detail::valid_neutral_profile_id (std::string_view id) noexcept
std::array< std::uint8_t, 32 > pulp::audio::sample_heritage_profile_digest (const SampleHeritageProfile &profile)
 SHA-256 over a versioned, domain-separated, little-endian canonical byte encoding of the authoring profile.
SampleHeritageProfileValidation pulp::audio::validate_sample_heritage_profile (const SampleHeritageProfile &source) noexcept

Variables

constexpr std::uint32_t pulp::audio::kSampleHeritageProfileSchemaVersion = 3
constexpr std::uint32_t pulp::audio::kSampleHeritageProfileDigestVersion = 5
constexpr std::uint32_t pulp::audio::kSampleHeritageSpectralTiltLawVersion = 1
constexpr double pulp::audio::kSampleHeritageMaximumLadderCutoffRatio = 0.49
constexpr float pulp::audio::kSampleHeritageMaximumLadderResonance = 0.3f
constexpr std::size_t pulp::audio::kSampleHeritageMaximumStages = 7
constexpr std::size_t pulp::audio::kSampleHeritageMaximumVoiceBlocks = 8
constexpr std::size_t pulp::audio::kSampleHeritageMaximumBusBlocks = 2
constexpr std::size_t pulp::audio::kSampleHeritageMaximumRecordCommitBlocks = 4
constexpr std::size_t pulp::audio::kSampleHeritageMaximumChannels = 8
constexpr std::size_t pulp::audio::kSampleHeritageMaximumProfileIdBytes = 63
template<typename Stage>
constexpr std::size_t pulp::audio::detail::stage_type_index