Multi-channel metering: sample peak, RMS, K-weighted momentary and gated integrated loudness, stereo correlation, clip detection. More...
#include <pulp/signal/detail/simd_lanes.hpp>#include <array>#include <cmath>#include <algorithm>#include <cstdint>#include <limits>#include <numbers>#include <numeric>#include <type_traits>#include <utility>#include <vector>Go to the source code of this file.
Classes | |
| struct | pulp::signal::LoudnessBiquadCoefficients |
| struct | pulp::signal::KWeightingCoefficients |
| struct | pulp::signal::ChannelLevels |
| Per-channel level measurements computed on the audio thread. More... | |
| struct | pulp::signal::MultiChannelMeterData |
| Complete metering snapshot for all channels, published lock-free. More... | |
| struct | pulp::signal::MultiChannelBallistics |
| Configurable ballistics for multi-channel meter display (UI thread). More... | |
| struct | pulp::signal::MultiChannelBallistics::Channel |
| class | pulp::signal::MultiChannelMeterT< SampleType > |
| Audio-thread metering processor. More... | |
Namespaces | |
| namespace | pulp |
| namespace | pulp::signal |
| namespace | pulp::signal::detail |
| Round-2 effect-wave vocabulary. | |
Typedefs | |
| using | pulp::signal::MultiChannelMeter = MultiChannelMeterT<float> |
| using | pulp::signal::MultiChannelMeter64 = MultiChannelMeterT<double> |
Enumerations | |
| enum class | pulp::signal::MeterFeatures : std::uint8_t { pulp::signal::levels = 0 , pulp::signal::correlation = 1u << 0 , pulp::signal::loudness = 1u << 1 , pulp::signal::all = correlation | loudness } |
| What a MultiChannelMeter computes. More... | |
| enum class | pulp::signal::LoudnessChannelRole : std::uint8_t { pulp::signal::left , pulp::signal::right , pulp::signal::center , pulp::signal::lfe , pulp::signal::left_surround , pulp::signal::right_surround , pulp::signal::left_rear_surround , pulp::signal::right_rear_surround , pulp::signal::unknown } |
| Speaker roles used by the BS.1770 channel summation. More... | |
Functions | |
| constexpr MeterFeatures | pulp::signal::operator| (MeterFeatures a, MeterFeatures b) noexcept |
| constexpr bool | pulp::signal::has_feature (MeterFeatures set, MeterFeatures feature) noexcept |
| KWeightingCoefficients | pulp::signal::k_weighting_coefficients (double sample_rate) |
| Return the two-stage K-weighting design for a sample rate. | |
Variables | |
| static constexpr int | pulp::signal::kMaxMeterChannels = 16 |
| Maximum supported channel count for metering. | |
| static constexpr double | pulp::signal::kMaxMeterInputMagnitude = 1.0e6 |
| Finite samples outside this deliberately generous audio-domain ceiling are clipped before every peak, RMS, correlation, and loudness calculation. | |
Multi-channel metering: sample peak, RMS, K-weighted momentary and gated integrated loudness, stereo correlation, clip detection.
All computations are lock-free and suitable for the audio thread.
RT contract: prepare() initializes fixed-size accumulator state and may be called off the audio thread. After preparation, process(), snapshot(), and reset() allocate no memory for channel counts up to kMaxMeterChannels. MultiChannelBallistics::update() and clear_clips() also use fixed storage and allocate no memory.