Skip to content
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

Implement Equalizer Presets #66

Draft
wants to merge 7 commits into
base: master
Choose a base branch
from
Draft

Implement Equalizer Presets #66

wants to merge 7 commits into from

Conversation

V02460
Copy link

@V02460 V02460 commented Mar 2, 2022

This is a rough draft based on what was discussed in #63. Mainly so the code is out in the open and people can take a look.

Supports changing between the first 8 EQ presets. Reading EQ data, custom EQ settings, reading/writing EBB, getting capabilities and ExtendedInfo is all still missing.

As a side note, I started documenting the protocol and I got a bit further there than what is in this draft.

@Plutoberth
Copy link
Owner

Hi, that's awesome! I'll take a look on the weekend.

@Plutoberth
Copy link
Owner

I tested the code on WH-1000XM3. It looks like the presets you added (range 1-8, ROCK, POP, JAZZ...) don't exist on those headphones. They don't appear on the app, and selecting them here does nothing. However, when I modified it to the ones that appear in my app (range 16-23, BRIGHT, EXCITED, MELLOW...), it worked! Do 1-8 work using your headphones?

Note: I cleaned up the GUI code in master. There's now (kind of) a separation between GUI and the logic of updating the headphones' settings, which is way cleaner.

@pcworld
Copy link

pcworld commented May 24, 2022

If anyone wants to test this on a WH-1000XM3, I have created a very dirty patch to the PR based on Plutoberth's observations (for testing only, not for upstreaming). I can confirm changing the equalizer presets on WH-1000XM3 works that way. Thanks to everyone involved in working on this!

A huge advantage of this approach over the Android app is that it allows setting the equalizer while keeping the codec as AAC (I also assume that the other codecs keep working, but have not confirmed it). The last time I have tried the Android app (which has been a while), changing the equalizer forced the device's codec to SBC, which results in really crappy sound for me (at least with Linux/pulseaudio-modules-bt, and also an Android device I tried). I've read that this limitation does not exist in the iOS app (but have not been able to try it), which the protocol reverse engineering from issue #63 appears to be based on.

@Arcant1
Copy link

Arcant1 commented Jun 24, 2022

Can we have some traction on this one? thanks!!

@Plutoberth
Copy link
Owner

While this PR was active, I made some pretty big changes to master that change the way we interact with the headphones. Specifically the Headphones class. In order to merge this, we'd need to integrate those changes. Additionally, we also need to figure out the issue regarding the different presets. Did the presets that you listed (0-7) work with your headphones? Which model did you have?

Additionally, would you like to add your protocol documentation to this repo? I think that it could be good so that we could collaborate on it, and it would help other people to add new features (like the long coveted voice pack upgrade).

@JasurbekNURBOYEV
Copy link

Here is how I ended up here: I was searching a sony app for mac, just to be able to change the EQ. I couldn't install iOS app on MacOS, and foud this repo, got very excited that some people were actually doing an app for sony headphones! Installed the app, connected the headphone... and where is the EQ? So it isn't implemented. Alright, at least it is open-source, let's see: oh, it is in a language that I don't have enough experience with. And then I found this PR: good, I'll just merge it locally and just build it! And then saw that PR has conflicts with master... For me, there are ways to fix those it at least locally, build the app and use it. However, that would be extremely useful to make this very feature available to the public (as a finished product). This is an open-source app, I get it, but not everyone can code. I really appreciate all the work put into this, and wish that it continues, thanks for all contributors and the author, and wait for this PR to find its place on master branch.

@JasurbekNURBOYEV
Copy link

I added a feature to macos client to switch between SPEECH and OFF presets of EQ, since this was all I needed. My changes are made locally and I'm already using the app built from those changes. I don't think anybody needs that half-baked feature, so I won't be making a PR with it. I often need to enable SPEECH EQ when I'm in meetings, and switch back to default once meetings end. I used the changes made in this PR, which handled most of the backend. Today was my day off, and I spent it on this. I'll definitely be looking for the whole EQ feature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants