|
| void | prepare (const AudioSpec &spec) |
| | Prepares the multiband compressor and internal buffers for processing.
|
| |
| void | processBlock (AudioBufferView< T > buffer) noexcept |
| | Processes audio through the multi-band compressor.
|
| |
| void | setNumBands (int n) noexcept |
| | Sets the number of active frequency bands.
|
| |
| void | setCrossoverFrequency (int index, T freqHz) noexcept |
| | Sets the crossover frequency for a specific split point.
|
| |
| void | setOrder (int order) noexcept |
| | Sets the crossover slope in dB/oct: 12, 24 or 48.
|
| |
| void | setCrossoverMode (typename CrossoverFilter< T, MaxBands >::FilterMode mode) noexcept |
| | Sets the phase/processing mode of the crossover (IIR or linear-phase).
|
| |
| Compressor< T > & | getBandCompressor (int band) noexcept |
| | Direct access to a band's compressor for full configuration.
|
| |
| const Compressor< T > & | getBandCompressor (int band) const noexcept |
| | Direct constant access to a band's compressor for state queries.
|
| |
| void | setBandThreshold (int band, T dB) noexcept |
| | Sets the threshold for a specific band.
|
| |
| void | setBandRatio (int band, T ratio) noexcept |
| | Sets the ratio for a specific band.
|
| |
| void | setBandAttack (int band, T ms) noexcept |
| | Sets the attack time for a specific band.
|
| |
| void | setBandRelease (int band, T ms) noexcept |
| | Sets the release time for a specific band.
|
| |
| T | getBandGainReductionDb (int band) const noexcept |
| | Gets the current gain reduction applied to a specific band.
|
| |
| int | getNumBands () const noexcept |
| | Returns the current number of active bands.
|
| |
| T | getCrossoverFrequency (int index) const noexcept |
| | Returns the target frequency of split point index in Hz.
|
| |
| int | getOrder () const noexcept |
| | Returns the crossover slope in dB/oct (12, 24 or 48).
|
| |
| CrossoverFilter< T, MaxBands >::FilterMode | getCrossoverMode () const noexcept |
| | Returns the crossover processing mode (IIR or linear-phase).
|
| |
| int | getLatency () const noexcept |
| | Returns the total latency of the multi-band system.
|
| |
| void | reset () noexcept |
| | Resets all internal states (envelopes, delay lines, etc.).
|
| |
| std::vector< uint8_t > | getState () const |
| | Serializes crossover topology and per-band compressor states.
|
| |
| bool | setState (const uint8_t *data, size_t size) |
| | Restores topology and band compressors from a blob.
|
| |
template<FloatType T, int MaxBands = 12>
class dspark::MultibandCompressor< T, MaxBands >
Multi-band compressor: crossover split, per-band compression, sum.
- Template Parameters
-
| T | Sample type (float or double). |
| MaxBands | Maximum number of bands (compile-time, default 12). |
Definition at line 58 of file MultibandCompressor.h.
template<FloatType T, int MaxBands = 12>
Gets the current gain reduction applied to a specific band.
Metering read, safe from any thread. Bands that are currently disabled report the value frozen from when they were last active.
- Parameters
-
- Returns
- Gain reduction in decibels (typically <= 0.0).
Definition at line 287 of file MultibandCompressor.h.
template<FloatType T, int MaxBands = 12>
Prepares the multiband compressor and internal buffers for processing.
Invalid specs (non-positive/non-finite rate, block size or channel count) are ignored: the previous state is kept and an unprepared instance stays pass-through. May allocate; setup thread only.
- Parameters
-
| spec | The audio specification (sample rate, max block size, channels). |
Definition at line 74 of file MultibandCompressor.h.
template<FloatType T, int MaxBands = 12>
Sets the number of active frequency bands.
Safe from any thread. A live change applies instantly (audible click) and re-initialises ALL split frequencies to the crossover's log-spaced defaults - reapply custom frequencies afterwards (see CrossoverFilter::setNumBands). Compressors of newly enabled bands are reset on the audio thread so they start clean.
- Parameters
-
| n | Number of bands (clamped between 2 and MaxBands - a crossover needs at least one split point). |
Definition at line 171 of file MultibandCompressor.h.