DSPark 1.6.1
Header-only audio DSP framework in pure C++20 — zero dependencies
Loading...
Searching...
No Matches
StereoWidth.h File Reference

Stereo width control via Mid/Side processing with phase-aligned bass mono. More...

#include "../Core/DspMath.h"
#include "../Core/AudioSpec.h"
#include "../Core/AudioBuffer.h"
#include "../Core/StateBlob.h"
#include <algorithm>
#include <atomic>
#include <cmath>
#include <cstdint>
#include <numbers>
#include <vector>
Include dependency graph for StereoWidth.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  dspark::StereoWidth< T >
 High-performance stereo image processor with phase-aligned bass mono. More...
 

Namespaces

namespace  dspark
 Main namespace for the DSPark framework.
 

Detailed Description

Stereo width control via Mid/Side processing with phase-aligned bass mono.

Adjusts the stereo image width from mono to extra-wide using M/S encoding. Includes a bass-mono feature that collapses low frequencies to mono below a configurable cutoff: the side channel loses its lows through a one-pole high-pass whose complementary split needs no phase compensation of the mid.

Designed for real-time: the pure-width path auto-vectorizes; the bass-mono path is a tight scalar loop (its recursive filter state rules out SIMD). Atomic lock-free parameters and internal anti-denormal protection.

Dependencies: Core/DspMath.h, Core/AudioSpec.h, Core/AudioBuffer.h, Core/StateBlob.h.

Threading: prepare() belongs to the setup thread; the processing calls and reset() to the audio thread. setWidth()/setBassMono() are safe from any thread (atomics read once per block); non-finite values are ignored.

Definition in file StereoWidth.h.