[audio_conditioning] System-level audio conditioning for I2S outputs #3506
Unanswered
akeener97
asked this question in
New Components
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Describe the component you'd like
Hello all! Upon trying to implement a custom speaker enclosure for my voice PE, I ran into the problem of needing an always active tuning stage on the audio output to protect the speaker driver and provide enclosure specific frequency limits. The only current solution I found would be to add additional hardware on the preamp output.
Thus, I would like to propose a small, focused component named
audio_conditioning, intended to provide always-on, enclosure-specific audio tuning by post-processing audio buffers immediately before DMA transfer to the I2S peripheral.The goal is not to implement user EQ or effects, but to implement a system level mechanism to tune audio output independent of any audio pipelines.
Features expected:
Proposed implementation:
Register this component as a post processing callback on the
i2s_audioring buffer, modifying the buffer in-place before DMA transfer to the I2S peripheral. This mirrors existing volume scaling functionality in i2s_audio_speaker.This implementation would not require dedicated ownership of the I2S peripheral or custom DMA handling, and should require minimal CPU or RAM utilization.
Example YAML configuration:
The block-based schema is intended to reflect hardware configuration, not mode-based audio effects, and leaves room for future system-level conditioning (e.g. DC blocking, limiters) without changing structure. Filter coefficients are computed once at startup.
What are your use cases for this component?
This component would be used to provide hardware-level, always-on tuning for small speaker enclosures such as voice satellites with the purpose of:
Currently, these features require dedicated filtering hardware like high pass capacitors on preamp outputs or dedicated DSP chips.
audio_conditioningwould eliminate the need for additional hardware, simplifying speaker designs while enabling system-level tuning.This is not intended as a user-adjustable EQ — it is intended as a permanent, system-level filter that guarantees safe and tuned output for a specific enclosure.
Is there a public datasheet, documentation and/or schematics?
No response
Anything else?
I am interested in contributing to this if it would be a useful addition , but wanted to start the discussion first to make sure it fits into the overall framework cleanly. Let me know your thoughts!
Beta Was this translation helpful? Give feedback.
All reactions