249 std::span<const
std::uint64_t> candidate_frames) = 0;
283 std::string_view license_id)
noexcept;
286 bool platform_supported,
287 bool license_accepted)
noexcept;
293 std::string analysis_id = {});
295 std::size_t marker_count,
296 std::span<const AnalyzerMarkerProvenance> provenance)
noexcept;
298 std::span<const AnalyzerMarkerProvenance> provenance,
299 std::uint32_t marker_index)
noexcept;
309 [[nodiscard]] std::vector<AnalyzerDescriptor>
descriptors()
const;
313 [[nodiscard]] std::size_t
size() const noexcept {
return descriptors_.size(); }
314 [[nodiscard]]
bool empty() const noexcept {
return descriptors_.empty(); }
317 std::vector<AnalyzerDescriptor> descriptors_;
Definition analyzer_provider.hpp:303
std::vector< AnalyzerDescriptor > descriptors_for(AnalyzerCapability capability, const AnalyzerSelectionPolicy &policy={}) const
std::vector< AnalyzerDescriptor > descriptors() const
std::size_t size() const noexcept
Definition analyzer_provider.hpp:313
const AnalyzerDescriptor * find(std::string_view id) const noexcept
AnalyzerDescriptorStatus add(AnalyzerDescriptor descriptor)
bool empty() const noexcept
Definition analyzer_provider.hpp:314
Non-owning view over multi-channel audio sample data.
Definition buffer.hpp:30
Definition analyzer_provider.hpp:234
virtual ~KeyTempoAnalyzer()=default
virtual const AnalyzerDescriptor & descriptor() const noexcept=0
virtual KeyTempoAnalysisResult analyze(BufferView< const float > source, const KeyTempoAnalysisConfig &config)=0
Definition analyzer_provider.hpp:252
virtual TimePitchProcessResult process(BufferView< const float > input, BufferView< float > output, const TimePitchProcessSpec &spec)=0
virtual TimePitchPrepareResult prepare(const TimePitchPrepareConfig &config)=0
virtual ~TimePitchProcessor()=default
virtual const AnalyzerDescriptor & descriptor() const noexcept=0
virtual void release() noexcept=0
Definition analyzer_provider.hpp:243
virtual std::vector< TransientClassification > classify(BufferView< const float > source, std::span< const std::uint64_t > candidate_frames)=0
virtual const AnalyzerDescriptor & descriptor() const noexcept=0
virtual ~TransientClassifier()=default
Definition analyzer_provider.hpp:12
MusicalKeyMode
Definition analyzer_provider.hpp:160
@ Major
Definition analyzer_provider.hpp:162
@ Minor
Definition analyzer_provider.hpp:163
@ Unknown
Definition analyzer_provider.hpp:161
const char * analyzer_execution_context_name(AnalyzerExecutionContext context) noexcept
const char * analyzer_availability_name(AnalyzerAvailability availability) noexcept
std::vector< AnalyzerDescriptor > built_in_analyzer_descriptors()
const char * time_pitch_prepare_status_name(TimePitchPrepareStatus status) noexcept
AnalyzerCapability
Definition analyzer_provider.hpp:14
@ PitchDetection
Definition analyzer_provider.hpp:24
@ LoopPointAnalysis
Definition analyzer_provider.hpp:18
@ SliceAnalysis
Definition analyzer_provider.hpp:17
@ BeatDetection
Definition analyzer_provider.hpp:16
@ OnsetDetection
Definition analyzer_provider.hpp:15
@ PitchShift
Definition analyzer_provider.hpp:23
@ TimeStretch
Definition analyzer_provider.hpp:22
@ KeyDetection
Definition analyzer_provider.hpp:19
@ TempoDetection
Definition analyzer_provider.hpp:20
bool validate_analyzer_marker_provenance(std::size_t marker_count, std::span< const AnalyzerMarkerProvenance > provenance) noexcept
bool analyzer_descriptor_has_capability(const AnalyzerDescriptor &descriptor, AnalyzerCapability capability) noexcept
AnalyzerBackend
Definition analyzer_provider.hpp:27
@ Package
Definition analyzer_provider.hpp:29
@ ExternalProcess
Definition analyzer_provider.hpp:30
@ ImportedMetadata
Definition analyzer_provider.hpp:31
@ BuiltIn
Definition analyzer_provider.hpp:28
TimePitchProcessStatus
Definition analyzer_provider.hpp:74
@ channel_mismatch
Definition analyzer_provider.hpp:79
@ frame_budget_exceeded
Definition analyzer_provider.hpp:80
@ processing_failed
Definition analyzer_provider.hpp:81
@ not_prepared
Definition analyzer_provider.hpp:78
const char * analyzer_license_policy_name(AnalyzerLicensePolicy policy) noexcept
bool analyzer_descriptor_selectable(const AnalyzerDescriptor &descriptor, AnalyzerCapability capability, const AnalyzerSelectionPolicy &policy={}) noexcept
AnalyzerDescriptorStatus
Definition analyzer_provider.hpp:57
@ missing_capability
Definition analyzer_provider.hpp:61
@ empty_display_name
Definition analyzer_provider.hpp:60
@ ok
Definition analyzer_provider.hpp:58
@ duplicate_id
Definition analyzer_provider.hpp:63
@ package_id_required
Definition analyzer_provider.hpp:62
@ empty_id
Definition analyzer_provider.hpp:59
const char * analyzer_backend_name(AnalyzerBackend backend) noexcept
const AnalyzerProvenance * find_analyzer_marker_provenance(std::span< const AnalyzerMarkerProvenance > provenance, std::uint32_t marker_index) noexcept
const char * analyzer_capability_name(AnalyzerCapability capability) noexcept
AnalyzerAvailability
Definition analyzer_provider.hpp:34
@ LicenseNotAccepted
Definition analyzer_provider.hpp:37
@ UnsupportedPlatform
Definition analyzer_provider.hpp:38
@ MissingPackage
Definition analyzer_provider.hpp:36
@ Unavailable
Definition analyzer_provider.hpp:40
@ Available
Definition analyzer_provider.hpp:35
@ Disabled
Definition analyzer_provider.hpp:39
const char * analyzer_descriptor_status_name(AnalyzerDescriptorStatus status) noexcept
const char * time_pitch_process_status_name(TimePitchProcessStatus status) noexcept
TimePitchPrepareStatus
Definition analyzer_provider.hpp:66
@ setup_failed
Definition analyzer_provider.hpp:71
@ invalid_config
Definition analyzer_provider.hpp:69
@ unavailable
Definition analyzer_provider.hpp:68
@ allocation_failed
Definition analyzer_provider.hpp:70
AnalyzerDescriptor make_package_analyzer_descriptor(const PackageAnalyzerDescriptorInput &input)
AnalyzerLicensePolicy
Definition analyzer_provider.hpp:43
@ NoticeRequired
Definition analyzer_provider.hpp:45
@ Copyleft
Definition analyzer_provider.hpp:46
@ Unknown
Definition analyzer_provider.hpp:48
@ Commercial
Definition analyzer_provider.hpp:47
@ Permissive
Definition analyzer_provider.hpp:44
AnalyzerLicensePolicy classify_analyzer_license_policy(std::string_view license_id) noexcept
AnalyzerProvenance analyzer_provenance_from_descriptor(const AnalyzerDescriptor &descriptor, std::string analysis_id={})
AnalyzerAvailability infer_package_analyzer_availability(bool installed, bool platform_supported, bool license_accepted) noexcept
AnalyzerDescriptorStatus validate_analyzer_descriptor(const AnalyzerDescriptor &descriptor) noexcept
TransientClass
Definition analyzer_provider.hpp:177
@ Snare
Definition analyzer_provider.hpp:180
@ Vocal
Definition analyzer_provider.hpp:186
@ Kick
Definition analyzer_provider.hpp:179
@ Unknown
Definition analyzer_provider.hpp:178
@ Cymbal
Definition analyzer_provider.hpp:183
@ Noise
Definition analyzer_provider.hpp:189
@ Hat
Definition analyzer_provider.hpp:182
@ Clap
Definition analyzer_provider.hpp:181
@ Bass
Definition analyzer_provider.hpp:185
@ Percussion
Definition analyzer_provider.hpp:187
@ Tom
Definition analyzer_provider.hpp:184
@ Tonal
Definition analyzer_provider.hpp:188
AnalyzerExecutionContext
Definition analyzer_provider.hpp:51
@ BackgroundThread
Definition analyzer_provider.hpp:53
@ RealtimeSafe
Definition analyzer_provider.hpp:54
@ OfflineOnly
Definition analyzer_provider.hpp:52
Definition analyzer_provider.hpp:93
AnalyzerBackend backend
Definition analyzer_provider.hpp:100
AnalyzerLicensePolicy license_policy
Definition analyzer_provider.hpp:102
std::string package_id
Definition analyzer_provider.hpp:96
std::string license_id
Definition analyzer_provider.hpp:98
std::string url
Definition analyzer_provider.hpp:99
std::vector< AnalyzerCapability > capabilities
Definition analyzer_provider.hpp:103
AnalyzerAvailability availability
Definition analyzer_provider.hpp:101
std::string version
Definition analyzer_provider.hpp:97
AnalyzerExecutionContext execution_context
Definition analyzer_provider.hpp:104
bool is_fallback
Definition analyzer_provider.hpp:109
std::string id
Definition analyzer_provider.hpp:94
bool supports_offline_buffers
Definition analyzer_provider.hpp:106
bool supports_streaming_input
Definition analyzer_provider.hpp:105
std::string display_name
Definition analyzer_provider.hpp:95
Definition analyzer_provider.hpp:146
std::uint32_t marker_index
Definition analyzer_provider.hpp:147
AnalyzerProvenance provenance
Definition analyzer_provider.hpp:149
AnalyzerCapability capability
Definition analyzer_provider.hpp:148
Definition analyzer_provider.hpp:138
AnalyzerBackend backend
Definition analyzer_provider.hpp:143
std::string package_id
Definition analyzer_provider.hpp:140
std::string provider_id
Definition analyzer_provider.hpp:139
std::string version
Definition analyzer_provider.hpp:141
std::string analysis_id
Definition analyzer_provider.hpp:142
Definition analyzer_provider.hpp:112
bool include_commercial
Definition analyzer_provider.hpp:115
bool include_copyleft
Definition analyzer_provider.hpp:114
bool include_unknown_license
Definition analyzer_provider.hpp:116
bool include_unavailable
Definition analyzer_provider.hpp:113
bool allow_deferred_execution
Definition analyzer_provider.hpp:119
bool require_offline_buffers
Definition analyzer_provider.hpp:118
bool require_real_time_safe
Definition analyzer_provider.hpp:117
Definition analyzer_provider.hpp:152
std::uint32_t channels
Definition analyzer_provider.hpp:154
bool estimate_tempo
Definition analyzer_provider.hpp:157
double source_sample_rate
Definition analyzer_provider.hpp:153
std::uint32_t max_tempo_candidates
Definition analyzer_provider.hpp:155
bool estimate_key
Definition analyzer_provider.hpp:156
Definition analyzer_provider.hpp:166
double tempo_confidence
Definition analyzer_provider.hpp:169
MusicalKeyMode key_mode
Definition analyzer_provider.hpp:172
int key_root
Definition analyzer_provider.hpp:171
AnalyzerProvenance provenance
Definition analyzer_provider.hpp:174
double key_confidence
Definition analyzer_provider.hpp:173
double tempo_bpm
Definition analyzer_provider.hpp:168
bool ok
Definition analyzer_provider.hpp:167
Definition analyzer_provider.hpp:203
std::uint32_t channels
Definition analyzer_provider.hpp:205
std::uint64_t max_output_frames
Definition analyzer_provider.hpp:207
std::uint64_t max_input_frames
Definition analyzer_provider.hpp:206
double sample_rate
Definition analyzer_provider.hpp:204
Definition analyzer_provider.hpp:218
bool ok
Definition analyzer_provider.hpp:219
TimePitchPrepareStatus status
Definition analyzer_provider.hpp:220
AnalyzerProvenance provenance
Definition analyzer_provider.hpp:221
Definition analyzer_provider.hpp:224
AnalyzerProvenance provenance
Definition analyzer_provider.hpp:229
bool ok
Definition analyzer_provider.hpp:225
std::uint64_t output_frames_produced
Definition analyzer_provider.hpp:228
std::uint64_t input_frames_consumed
Definition analyzer_provider.hpp:227
TimePitchProcessStatus status
Definition analyzer_provider.hpp:226
Definition analyzer_provider.hpp:210
double time_ratio
Definition analyzer_provider.hpp:212
double source_sample_rate
Definition analyzer_provider.hpp:211
std::uint64_t max_output_frames
Definition analyzer_provider.hpp:215
double pitch_shift_semitones
Definition analyzer_provider.hpp:213
std::uint64_t max_input_frames
Definition analyzer_provider.hpp:214
Definition analyzer_provider.hpp:192
double confidence
Definition analyzer_provider.hpp:194
TransientClass transient_class
Definition analyzer_provider.hpp:195
bool has_candidate_index
Definition analyzer_provider.hpp:200
std::uint32_t candidate_index
Definition analyzer_provider.hpp:199
std::uint64_t frame
Definition analyzer_provider.hpp:193
AnalyzerProvenance provenance
Definition analyzer_provider.hpp:196