Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
analyzer_provider.hpp File Reference
#include <cstddef>
#include <cstdint>
#include <span>
#include <string>
#include <string_view>
#include <vector>
#include <pulp/audio/buffer.hpp>

Go to the source code of this file.

Classes

struct  pulp::audio::AnalyzerDescriptor
struct  pulp::audio::AnalyzerSelectionPolicy
struct  pulp::audio::PackageAnalyzerDescriptorInput
struct  pulp::audio::AnalyzerProvenance
struct  pulp::audio::AnalyzerMarkerProvenance
struct  pulp::audio::KeyTempoAnalysisConfig
struct  pulp::audio::KeyTempoAnalysisResult
struct  pulp::audio::TransientClassification
struct  pulp::audio::TimePitchPrepareConfig
struct  pulp::audio::TimePitchProcessSpec
struct  pulp::audio::TimePitchPrepareResult
struct  pulp::audio::TimePitchProcessResult
class  pulp::audio::KeyTempoAnalyzer
class  pulp::audio::TransientClassifier
class  pulp::audio::TimePitchProcessor
class  pulp::audio::AnalyzerProviderRegistry

Namespaces

namespace  pulp
namespace  pulp::audio

Enumerations

enum class  pulp::audio::AnalyzerCapability : std::uint8_t {
  pulp::audio::OnsetDetection = 0 , pulp::audio::BeatDetection = 1 , pulp::audio::SliceAnalysis = 2 , pulp::audio::LoopPointAnalysis = 3 ,
  pulp::audio::KeyDetection = 4 , pulp::audio::TempoDetection = 5 , pulp::audio::TransientClassification = 6 , pulp::audio::TimeStretch = 7 ,
  pulp::audio::PitchShift = 8 , pulp::audio::PitchDetection = 9
}
enum class  pulp::audio::AnalyzerBackend : std::uint8_t { pulp::audio::BuiltIn , pulp::audio::Package , pulp::audio::ExternalProcess , pulp::audio::ImportedMetadata }
enum class  pulp::audio::AnalyzerAvailability : std::uint8_t {
  pulp::audio::Available , pulp::audio::MissingPackage , pulp::audio::LicenseNotAccepted , pulp::audio::UnsupportedPlatform ,
  pulp::audio::Disabled , pulp::audio::Unavailable
}
enum class  pulp::audio::AnalyzerLicensePolicy : std::uint8_t {
  pulp::audio::Permissive , pulp::audio::NoticeRequired , pulp::audio::Copyleft , pulp::audio::Commercial ,
  pulp::audio::Unknown
}
enum class  pulp::audio::AnalyzerExecutionContext : std::uint8_t { pulp::audio::OfflineOnly , pulp::audio::BackgroundThread , pulp::audio::RealtimeSafe }
enum class  pulp::audio::AnalyzerDescriptorStatus : std::uint8_t {
  pulp::audio::ok , pulp::audio::empty_id , pulp::audio::empty_display_name , pulp::audio::missing_capability ,
  pulp::audio::package_id_required , pulp::audio::duplicate_id
}
enum class  pulp::audio::TimePitchPrepareStatus : std::uint8_t {
  pulp::audio::ok , pulp::audio::unavailable , pulp::audio::invalid_config , pulp::audio::allocation_failed ,
  pulp::audio::setup_failed
}
enum class  pulp::audio::TimePitchProcessStatus : std::uint8_t {
  pulp::audio::ok , pulp::audio::unavailable , pulp::audio::invalid_config , pulp::audio::not_prepared ,
  pulp::audio::channel_mismatch , pulp::audio::frame_budget_exceeded , pulp::audio::processing_failed
}
enum class  pulp::audio::MusicalKeyMode : std::uint8_t { pulp::audio::Unknown , pulp::audio::Major , pulp::audio::Minor }
enum class  pulp::audio::TransientClass : std::uint8_t {
  pulp::audio::Unknown , pulp::audio::Kick , pulp::audio::Snare , pulp::audio::Clap ,
  pulp::audio::Hat , pulp::audio::Cymbal , pulp::audio::Tom , pulp::audio::Bass ,
  pulp::audio::Vocal , pulp::audio::Percussion , pulp::audio::Tonal , pulp::audio::Noise
}

Functions

const char * pulp::audio::analyzer_capability_name (AnalyzerCapability capability) noexcept
const char * pulp::audio::analyzer_backend_name (AnalyzerBackend backend) noexcept
const char * pulp::audio::analyzer_availability_name (AnalyzerAvailability availability) noexcept
const char * pulp::audio::analyzer_license_policy_name (AnalyzerLicensePolicy policy) noexcept
const char * pulp::audio::analyzer_execution_context_name (AnalyzerExecutionContext context) noexcept
const char * pulp::audio::analyzer_descriptor_status_name (AnalyzerDescriptorStatus status) noexcept
const char * pulp::audio::time_pitch_prepare_status_name (TimePitchPrepareStatus status) noexcept
const char * pulp::audio::time_pitch_process_status_name (TimePitchProcessStatus status) noexcept
bool pulp::audio::analyzer_descriptor_has_capability (const AnalyzerDescriptor &descriptor, AnalyzerCapability capability) noexcept
AnalyzerDescriptorStatus pulp::audio::validate_analyzer_descriptor (const AnalyzerDescriptor &descriptor) noexcept
bool pulp::audio::analyzer_descriptor_selectable (const AnalyzerDescriptor &descriptor, AnalyzerCapability capability, const AnalyzerSelectionPolicy &policy={}) noexcept
AnalyzerLicensePolicy pulp::audio::classify_analyzer_license_policy (std::string_view license_id) noexcept
AnalyzerAvailability pulp::audio::infer_package_analyzer_availability (bool installed, bool platform_supported, bool license_accepted) noexcept
AnalyzerDescriptor pulp::audio::make_package_analyzer_descriptor (const PackageAnalyzerDescriptorInput &input)
AnalyzerProvenance pulp::audio::analyzer_provenance_from_descriptor (const AnalyzerDescriptor &descriptor, std::string analysis_id={})
bool pulp::audio::validate_analyzer_marker_provenance (std::size_t marker_count, std::span< const AnalyzerMarkerProvenance > provenance) noexcept
const AnalyzerProvenance * pulp::audio::find_analyzer_marker_provenance (std::span< const AnalyzerMarkerProvenance > provenance, std::uint32_t marker_index) noexcept
std::vector< AnalyzerDescriptor > pulp::audio::built_in_analyzer_descriptors ()