Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
audio_scope.hpp
Go to the documentation of this file.
1#pragma once
2
10
12#include <pulp/audio/buffer.hpp>
13
14#include <cstdint>
15#include <string>
16#include <string_view>
17#include <vector>
18
19namespace pulp::audio {
20
21enum class AudioScopeTriggerMode : std::uint8_t {
22 kNone = 0,
24};
25
31
33 bool ok = false;
34 double sample_rate = 0.0;
35 std::uint32_t selected_channel = 0;
36 std::uint32_t source_channel_count = 0;
37 std::uint32_t source_frames = 0;
38 std::uint32_t window_start = 0;
39 std::uint32_t window_samples = 0;
40 bool trigger_found = false;
41 std::uint32_t trigger_sample = 0;
42 std::uint64_t source_sequence_number = 0;
43 std::vector<float> samples;
44 std::vector<std::string> warnings;
45};
46
49 double peak_to_peak = 0.0;
50 bool rms_available = false;
51 double rms = 0.0;
52 bool dc_offset_available = false;
53 double dc_offset = 0.0;
55 double crest_factor = 0.0;
56 bool frequency_available = false;
57 double frequency_hz = 0.0;
58 double period_samples = 0.0;
59 std::vector<std::string> warnings;
60};
61
70
74inline constexpr double kAudioScopeFrequencyPeriodTolerance = 0.08;
75
78 const AudioScopeAcquisitionConfig& config,
79 const AudioProbeSnapshot* snapshot_metadata = nullptr);
80
82 const AudioScopeAcquisition& acquisition);
83
85
86bool parse_audio_scope_trigger_mode(std::string_view text,
88
89} // namespace pulp::audio
The realtime-produced probe summary — the shared schema between the RT producer (pulp::audio::AudioPr...
Non-owning view over multi-channel audio sample data.
Definition buffer.hpp:30
Definition analyzer_provider.hpp:12
constexpr double kAudioScopeFrequencyPeriodTolerance
Zero-crossing frequency estimation is intentionally conservative.
Definition audio_scope.hpp:74
AudioScopeMeasurements measure_audio_scope_window(const AudioScopeAcquisition &acquisition)
std::string_view audio_scope_trigger_mode_name(AudioScopeTriggerMode mode)
bool parse_audio_scope_trigger_mode(std::string_view text, AudioScopeTriggerMode &out)
AudioProbeStage
Identifies which audio boundary a snapshot was produced at.
Definition audio_probe_snapshot.hpp:28
@ kUnknown
Definition audio_probe_snapshot.hpp:29
AudioScopeAcquisition acquire_audio_scope_window(BufferView< const float > source, const AudioScopeAcquisitionConfig &config, const AudioProbeSnapshot *snapshot_metadata=nullptr)
AudioScopeTriggerMode
Definition audio_scope.hpp:21
@ kNone
Definition audio_scope.hpp:22
@ kRisingZero
Definition audio_scope.hpp:23
Realtime-produced, fixed-capacity, trivially-copyable probe summary.
Definition audio_probe_snapshot.hpp:42
Definition audio_scope.hpp:26
std::uint32_t window_samples
Definition audio_scope.hpp:27
std::uint32_t selected_channel
Definition audio_scope.hpp:29
AudioScopeTriggerMode trigger_mode
Definition audio_scope.hpp:28
Definition audio_scope.hpp:32
std::vector< std::string > warnings
Definition audio_scope.hpp:44
std::uint32_t source_channel_count
Definition audio_scope.hpp:36
std::uint32_t source_frames
Definition audio_scope.hpp:37
std::uint32_t trigger_sample
Definition audio_scope.hpp:41
std::uint64_t source_sequence_number
Definition audio_scope.hpp:42
bool trigger_found
Definition audio_scope.hpp:40
std::uint32_t window_samples
Definition audio_scope.hpp:39
std::uint32_t window_start
Definition audio_scope.hpp:38
std::vector< float > samples
Definition audio_scope.hpp:43
double sample_rate
Definition audio_scope.hpp:34
std::uint32_t selected_channel
Definition audio_scope.hpp:35
bool ok
Definition audio_scope.hpp:33
Definition audio_scope.hpp:47
double peak_to_peak
Definition audio_scope.hpp:49
bool peak_to_peak_available
Definition audio_scope.hpp:48
double rms
Definition audio_scope.hpp:51
bool rms_available
Definition audio_scope.hpp:50
std::vector< std::string > warnings
Definition audio_scope.hpp:59
bool dc_offset_available
Definition audio_scope.hpp:52
double dc_offset
Definition audio_scope.hpp:53
double period_samples
Definition audio_scope.hpp:58
double crest_factor
Definition audio_scope.hpp:55
bool frequency_available
Definition audio_scope.hpp:56
bool crest_factor_available
Definition audio_scope.hpp:54
double frequency_hz
Definition audio_scope.hpp:57
Definition audio_scope.hpp:62
AudioScopeTriggerMode trigger_mode
Definition audio_scope.hpp:66
std::string source_kind
Definition audio_scope.hpp:64
AudioScopeMeasurements measurements
Definition audio_scope.hpp:68
AudioScopeAcquisition acquisition
Definition audio_scope.hpp:67
std::string source_path
Definition audio_scope.hpp:65
AudioProbeStage stage
Definition audio_scope.hpp:63