Commit Graph

5 Commits

Author SHA1 Message Date
George Norton 41d4023961
Run the DAC in 24bit mode. (#25)
* 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.
2023-09-14 04:49:56 -04:00
George Norton 1e6896f918
Enable oratory's 15 band EQ (#23)
* 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.
2023-08-23 15:47:01 -04:00
ploopyco 481219341d q3.28 changes 2023-07-14 15:06:20 -04:00
ploopyco 009dd2e698
Headphones toolbox (#18) (#19)
* 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>
2023-07-14 14:53:04 -04:00
ploopyco d530889f4c firmware, mechanicals 2023-02-03 15:23:55 -05:00