- Less bass. Excursion limits happen at 30-50Hz first, so reducing response in this range makes it a little less likely this will be a problem. Plus, I like it.
- A little more response above 12kHz.
Updated config version to 4.
Added a parameter for post EQ gain. Applied once after EQ is calculated.
* Run the DAC in 24bit mode.
* Update comment.
* Remove accidental paste
* Fix distortion.
* Shift up the samples into -1..1, not much different, but we get an extra bit of resolution at the low end.
* Attempt at optimizing so the new filtering runs better.
* Additional improvements.
* Further optimisations.
* Seems to work OK with 10 filters. Just noise with 11.
* Increase config buffer size, and make the bqf_transform function inline
* Remove extra loop and process input evently across both cores.
* Enable 15 band EQ.
* Shift some load of core1
* Revert buffer size change
* Mark USB transfer as done sooner.
* Fast multiply.
* Fix build failure.
* Rollback changes we dont need.
* Fix save config to flash
* Increase filter stages to 20. We cant quite run that many though.
* Replace a few doubles with floats. According to the raspberry-pi-pico-c-sdk manual, doubles are around 3 times slower than floats.
- Default configuration reverses the left/right channels in the DAC, because the headphones are wired backwards (oopie!)
Co-authored-by: PloopyCo <contact@ploopy.co>
* Initial, very incomplete, toolbox interface.
* Refactored things to move ugly structs out of run.c. Experimental config structures.
* Extra comments.
* Continuted to implement communication protocol. Can now validate Filter Configuration Structures
* Config save/load works.
* Reverse stereo and preamp.
* Fixes and minor features.
* Codec confiuguration implementation.
* Support sending configs back to the client.
* Fix broken audio when changing a filter type.
* Fix broken audio when changing a filter type.
* Try to create a build workflow
* Report version info
* Disable interrupts while reconfiguring, reset all filters if one has a type change.
* Reset memory on filter type change..
* Shuffle cores.
* Slight refactoring.
* Only update a filter if something has changed.
* Re-order PCM3060 init i2c commands.
* Fixed point math tweaks. Treat samples as normalized (-1..1), this doesnt change much, except the filter coefficients get way more bits of precision.
* Allow the user to create fully custom filters.
* Increase the max fix16 size to -32.0..32.0 as it seems it is possible to create coefficients which are >16.
---------
Co-authored-by: George Norton <george_norton_uk@hotmail.com>
Co-authored-by: George Norton <30636555+george-norton@users.noreply.github.com>
* Fix an overflow in the fix16_t usage which can lead to audio distortion.
* Add a simple test application for running the filtering stages on a PC.
* Fix readme typos.
* Rename test to tools.
* Remove volume multiplier
---------
Co-authored-by: George Norton <george.norton@mediakind.com>