-
Notifications
You must be signed in to change notification settings - Fork 19
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
ANC Support #41
Comments
Please don't disable the noise, atleast change it to something less annoying. |
Hello, thank you for your work! Any updates on this? I flashed the current anc-testing and it seems to work pretty well! Maybe this can be merged in main?
The current committed version definitely has an effect (at least for me), although indeed mild. Of course it can always be tuned more, but is there an important issue preventing general users from using it? 🤔 I too tried to understand the audio processing parameters used, but had no luck yet (I don't know what I'm doing either :P). However I did set the FF gain at 550 and FB at 500 and I think the ANC effect seems pretty similar to the stock effect? 🤔 I also tested a few values for the gain, and I think FB should be a little lower than FF, otherwise I got the static-wind-noise-like effect the stock "Super ANC" had. (P.S.: I think it would also be really helpful to be able to change parameters without building and reflashing; I know it's shooting a bit high but sending commands would be a generally useful feature for users as well: changing EQ, button actions, etc. Is there already a way that I've missed? I briefly looked at |
I'll address both points/questions below.
We're a long way off from BLE/RFCOMM control, we have a lot to fix and get working, especially with the license. Thanks for your comment though, it's good to know that ANC works better with that branch - but I'm hesitant for it to be merged at this time. |
So the simple answer here is: no
No, as far as I know its a "go for it" state, just suuper mild.
This is interesting, if you test further, let me know. If we can get even 70% of the way there that would be a big step and cause for a "merge and announce now" deal 🤣
This makes lots of sense
Nothing is supported that we know of sadly here. One day BLE yes, but for now no. |
So, this issue is for recreating the closed source ANC code as open source code, right? Is it technically possible to extract the ANC support code from the stock firmware, and include it here? It's closed source, I know, but then you could at least "build the stock firmware", which would be cool. |
@julianfairfax not sure what exactly you mean, but it seems that we can use also the closed-sourced ANC library. Now it is just matter of proper configuration of the ANC parameters. |
Is getting the "Ambient Mode" stock function just a matter of tweaking/swapping the ANC gains or is it a completely different implementation? If the latter, maybe it could be easier to hack together than proper ANC? |
@nmaggioni As far as I understand with suuper limited knowledge, yes its just a different set of filters. It could also be implemented by a different code path for debugability but unsure. Honestly havent touched it. @julianfairfax |
@nmaggioni |
Thank you for taking the time to respond!
Just curious, is there a development board than can be used? No PineBuds dev kit like the pinetime :( There would still probably be a need to wear them though to test audio features; I see that the builded firmware is 945KB, and the SRAM is 992KB? I don't have much experience with this, but would a slimmed-down version of the firmware be able to run from memory? (Although focusing on sending commands would probably be better, but just wanted to throw this out there; has this been discussed before?)
Maybe it could be merged but only enabled with a build option? Really unstable future commits of course should still be pushed to a wip branch, but as I understand, currently this branch isn't in a "it will randomly disconnect and brick your buds" state but more like "the quality needs more fine-tuning to be able to be advertised to the general public as a 100% stock replacement" state. I think having it in a wip branch doesn't do justice to how well it works! And it was the main reason I haven't migrated to OPB these months, until I really needed to look more into it.
Oh of course, I only wanted to provide feedback on the ANC quality.
I've been using it these couple of days, and since it doesn't seem to e.g. brick my buds or crash them (right? 🤔 I don't see any dangerous changes), my experience is that it's pretty good (if not great) to be used at least by an early adopter/programmer who doesn't mind adding (and being warned for) a feature flag when building, especially when their alternatives are to either not use OPB, or to use OPB with no ANC at all (or to check out an experimental branch, carefully examine all the new commits, and then read the discussion here to see if someone reported any serious problems). In any case, can anyone else chime in on the quality of the ANC for them? To see if it just happens to be good for my specific environment/ear size and shape etc. (Reminding that I use FF=550,FB=500 gain instead of the ~380..440 currently committed) Edit: Wow it seems that yesterday Ralim made some new commits, including a tool to parse the struct from a firmware dump, this is great! |
Dev board wasnt made in production sadly.
Not really possible, ~500KB of ram is required for audio buffers and BT + a bunch is used as a flash cache i think.
I'm leaning towards this too, of just merging it as "may or may not work for you"
Similar vibe here. I did port the "tuning" from the firmware backups (Thanks to everyone who added them).
yeah this was used for ^ |
It might, but I'm not really sure, I think changing the gain was more noticeable (I also tested the new coefs with high gain). By noticeable I mean louder ANC, while the parameters probably would change the quality of the noise reduced? Which are both important but the latter could need a more tuned ear or experience to hear the difference (which unfortunately I don't have). And since this is what you got from the data dumps, it's probably the best that we can do for now; in the future someone could figure out the numbers and tune it further from there (which I think would be another issue on how to reproducibly and objectively test the performance etc)
I played with
I hope this helps a bit to maybe find an average to set by default (of course ideally it could be set by the user, but it could be a while before we can send commands). But maybe you did that already for the recent commit?
Again, thanks for your work! (Should I make a PR for |
My original plan was to drop I think if we want it to stick around we might want to make a new repo for BEStooling and port it over there?
Havent gotten anywhere yet 🤣
I believe each bud is setup to be mono, so each one only uses "its" left channel config.
Quite possible. Forgot to mention not to use my backup, its a different firmware so different offsets. |
@Ralim The task of allow/disable on any bud can be marked as completed now :) |
Done. |
This is here to track our progress on enabling ANC in this open source firmware for the Pinebuds Pro.
Before I go into this; note I have no idea what I'm doing. This is all really guess and check.
Audio processing like this is new to me; so I'm coming really with no knowledge.
All work for this I'm tracking the
anc-testing
branchI've been messing around this on and off and here is my notes so far:
Current status
Activating works on whatever bud is the primary for the TWS link; but it does sync the enable to the other bud correctly.
On activation you hear the Du-Du noise.
Then It does do something. I think it does like the worlds most mild ANC; but my testing is limited thus far.
Not certain what next steps are here; we may need to figure out tuning.
Tempted to start looking to pull apart binary dumps from existing bud backups but tracking here for ideas.
Please If you have ideas or do testing etc I'm keen to hear about it.
The text was updated successfully, but these errors were encountered: