-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature: Implement voicing/DSP filters as a config file #38
Comments
It should be read at runtime, so it can be updated without a recompile - just a restart (when several "tunings" are already installed) |
Currently in progress, I am setting up berry bindings that will make it possible to generate a dsp preset. What exact dsp features do you need? |
With the current tuning of STRØM 1.0 there's a whole suite of filters needed. Including some for x-over. But mainly shelves and peaking/notch EQ |
as a development workflow I have been using https://github.com/HEnquist/camilladsp on a labtop. To get a better insight on the filters you can find one tuning here: https://github.com/LydByDissing/stroem/blob/main/voicing/voicing-80hz-target.yaml |
Initial support started in: Currently implemented:
Along with mono downmix function. Draft API exposed as follows: dsp.clear_chain() # clears entire current User-defined DSP chain
dsp.add_biquad(dsp.CHANNEL_LEFT, dsp.BIQUAD_TYPE_LOWPASS, { 'f': freq, 'g': gain, 'q': qPoint })
dsp.add_mono_downmix() Api most likely subject to change, as it does not allow for change of EQ based on dynamic variables. |
This looks rather cool and super useful! A comment on the down mix. From what I can see in the code, the down mix is applied after all the filters. This will likely cause problems. Maybe it should be moved up as the first action? |
Will push a sample to the repo in a few minutes :) Good point about the down mix being wrong in the chain - moved it up. About crossover - can't we technically achieve it with current API? Enable downmix, and then put different filters on both channels? |
Yes. This should work :-) |
Notes from call:
|
|
ESP-DSP performance metrics: https%3A//github.com/espressif/esp%2Ddsp/blob/07aa7b1c84637ac6621e2e460d4dd2cbe352385d/docs/esp%2Ddsp%2Dbenchmarks.rst |
Unless we can control the filter order by Q directly, then we would need 1st and 2nd order (current) of the shelving filters and some higher order 4th/6th/8th of the high pass and lowpass filters. |
I would like to implement a "config" file for defining the voicing/DSP filters needed to provide the proper tuning.
Have you already setup a generic config file or should I create a new one?
The text was updated successfully, but these errors were encountered: