feat(akroasis-core): DSP stages 5–7 — compressor, convolution, volume+dither#35
Merged
forkwright merged 2 commits intomainfrom Mar 11, 2026
Merged
feat(akroasis-core): DSP stages 5–7 — compressor, convolution, volume+dither#35forkwright merged 2 commits intomainfrom
forkwright merged 2 commits intomainfrom
Conversation
…+dither Stage 5 (compressor.rs): peak-mode dynamics compressor with exponential attack/release envelope smoothing, hard-knee gain reduction, and a brick-wall limiter ceiling. Disabled stage passes samples through unchanged. Stage 6 (convolution.rs): Phase 5 passthrough. Samples unmodified; signal path metadata reports enabled/disabled and HighQuality tier impact for when FFT convolution is wired up. Stage 7 (volume.rs): linear gain from level_db, logarithmic slider→gain mapping (40 dB range, slider 50 → −20 dB), and TPDF dither via SmallRng for i16/i24/i32 quantization. Public quantize_* free functions for output stage use. new_seeded constructor enables deterministic testing. 53 tests pass; cargo clippy -D warnings clean.
f4d9e87 to
19a71b1
Compare
This was referenced Mar 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
dsp/compressor.rs): peak-mode dynamics compressor with exponential attack/release envelope smoothing (RC time constant), hard-knee gain reduction, and brick-wall limiter ceiling. Disabled stage is a zero-cost passthrough. Tier impact:Losslesswhen enabled.dsp/convolution.rs): Phase 5 passthrough. Signal path metadata wired up (enabled flag,HighQualitytier impact) ready for FFT convolution in Phase 5.dsp/volume.rs): linear gain fromlevel_db, logarithmic slider→gain mapping (40 dB range; slider 50 → −20 dB), TPDF dither via seededSmallRngfor i16/i24/i32 quantization. Publicquantize_*free functions for the output stage.new_seededconstructor enables deterministic tests.Test plan
cargo checkpassescargo test— 53 tests pass (18 new across the three stages)cargo clippy -- -D warningscleanDepends on: P1-01 (scaffold — merged in #33)
Blocks: P1-07 (gapless), P1-08 (engine)