Spectral-flux transient detection for phase-vocoder streams. More...
#include <pulp/signal/checked_allocation.hpp>#include <algorithm>#include <cassert>#include <cmath>#include <complex>#include <cstring>#include <vector>Go to the source code of this file.
Classes | |
| class | pulp::signal::TransientPhasePolicyT< SampleType > |
| struct | pulp::signal::TransientPhasePolicyT< SampleType >::Config |
Namespaces | |
| namespace | pulp |
| namespace | pulp::signal |
Typedefs | |
| using | pulp::signal::TransientPhasePolicy = TransientPhasePolicyT<float> |
| using | pulp::signal::TransientPhasePolicy64 = TransientPhasePolicyT<double> |
Spectral-flux transient detection for phase-vocoder streams.
Detection function: half-wave-rectified magnitude flux on the channel group's summed spectrum, gated by BOTH a running-median comparison and an energy-relative absolute floor (Bello et al., "A Tutorial on Onset Detection in Music Signals," IEEE TSAP 13(5), 2005; Dixon, "Onset Detection Revisited," DAFx 2006). The energy-relative floor matters: a median-only gate misfires continuously on steady tones (near-zero medians) and never fires on isolated clicks (zero medians) — and the misfires show up as a pitch bias in the vocoder, not as obvious artifacts.
On detection the caller feeds the returned confidence into MultichannelPhaseCoordinator's reset amount (phase reinitialization at transients, Röbel, "A New Approach to Transient Processing in the Phase Vocoder," DAFx 2003). All thresholds are relative to the detector's own statistics — nothing absolute to tune per source.
Deterministic; no allocation after prepare().