Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::test::audio::ResponseCurve Struct Reference

Magnitude/frequency-response curve. More...

#include <audio_spectrum.hpp>

Public Member Functions

double magnitude_db_at (double hz) const
 Magnitude (dB) at the bin nearest hz on the full curve.
double attenuation_db_at (double hz) const
 Positive attenuation in dB at hz (0 dB = unity, larger = more cut).

Public Attributes

std::string analyzer = "magnitude_response"
std::string stimulus
 e.g. "impulse" / "log_sweep 20..20000".
Window window = Window::rectangular
int fft_length = 0
int analysis_offset = 0
double sample_rate = 0.0
double bin_hz = 0.0
 Frequency resolution (sample_rate / fft_length).
std::vector< ResponsePoint > full
 Bin 0..N/2, monotonic in hz.
std::vector< ResponsePoint > checkpoints
 Requested frequencies only.

Detailed Description

Magnitude/frequency-response curve.

Determinism contract (echoed into the artifact):

  • stimulus: a unit impulse (or caller-supplied stimulus) driven through the processor;
  • window/length: stated window over an fft_length-sample segment beginning at analysis_offset (skip plugin latency / warm-up here);
  • reference: each point is output-magnitude over input-magnitude in dB (a true transfer response), so absolute FFT scale cancels;
  • resolution: one full-resolution bin every sample_rate / fft_length Hz; checkpoint values are read from the nearest bin (no interpolation), and bin_hz records that resolution for the tolerance to budget.

Member Function Documentation

◆ attenuation_db_at()

double pulp::test::audio::ResponseCurve::attenuation_db_at ( double hz) const
inline

Positive attenuation in dB at hz (0 dB = unity, larger = more cut).

Convenience over magnitude_db_at for the "drops N dB" claim.

◆ magnitude_db_at()

double pulp::test::audio::ResponseCurve::magnitude_db_at ( double hz) const

Magnitude (dB) at the bin nearest hz on the full curve.

Returns kSilenceFloorDb if the curve is empty.

Member Data Documentation

◆ analysis_offset

int pulp::test::audio::ResponseCurve::analysis_offset = 0

◆ analyzer

std::string pulp::test::audio::ResponseCurve::analyzer = "magnitude_response"

◆ bin_hz

double pulp::test::audio::ResponseCurve::bin_hz = 0.0

Frequency resolution (sample_rate / fft_length).

◆ checkpoints

std::vector<ResponsePoint> pulp::test::audio::ResponseCurve::checkpoints

Requested frequencies only.

◆ fft_length

int pulp::test::audio::ResponseCurve::fft_length = 0

◆ full

std::vector<ResponsePoint> pulp::test::audio::ResponseCurve::full

Bin 0..N/2, monotonic in hz.

◆ sample_rate

double pulp::test::audio::ResponseCurve::sample_rate = 0.0

◆ stimulus

std::string pulp::test::audio::ResponseCurve::stimulus

e.g. "impulse" / "log_sweep 20..20000".

◆ window

Window pulp::test::audio::ResponseCurve::window = Window::rectangular

The documentation for this struct was generated from the following file:
  • /home/runner/work/pulp/pulp/tools/audio/analysis/include/pulp/audio/analysis/audio_spectrum.hpp