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

IOS poor quality audio #533

Open
1 task done
Leo-Ha opened this issue Apr 4, 2024 · 20 comments
Open
1 task done

IOS poor quality audio #533

Leo-Ha opened this issue Apr 4, 2024 · 20 comments

Comments

@Leo-Ha
Copy link

Leo-Ha commented Apr 4, 2024

Problem Description

No matter how i play with the settings, it seems i only get very poor audio quality when i stream audio from IOS device through A2DP, with android it works flawlessly. Is there a solution for this? I checked all realted issues and searched online but did not find a solutrion myself

Device Description

ESP32-WROOM and Iphone 12
External DAC PCM5102A

Sketch

#include "BluetoothA2DPSinkQueued.h"

BluetoothA2DPSinkQueued a2dp_sink;

void setup() {
  a2dp_sink.start("MyMusicQueued");  

}


void loop() {
  delay(1000); // do nothing
}

Other Steps to Reproduce

No response

Provide your Version of the EP32 Arduino Core (or the IDF Version)

2.3.2

I have checked existing issues, discussions and online documentation

  • I confirm I have checked existing issues, discussions and online documentation
@pschatzmann
Copy link
Owner

With my old IOS devices it is working w/o any problems.
I am not buying any recent Hardware from Apple any more, so I can't reproduce this.

@Leo-Ha
Copy link
Author

Leo-Ha commented Apr 7, 2024

Is there a way to add AAC codec support? I think it may be due to ios not liking the SBC codex too much.

With my old IOS devices it is working w/o any problems. I am not buying any recent Hardware from Apple any more, so I can't reproduce this.

@pschatzmann
Copy link
Owner

No, as far as I know, only SBC is supported by Espressif

@Leo-Ha
Copy link
Author

Leo-Ha commented Apr 7, 2024

@pschatzmann
Copy link
Owner

I don't understand, where is the connection with A2DP ?
Here is the link to the relevant API

@Leo-Ha
Copy link
Author

Leo-Ha commented Apr 7, 2024

I don't understand, where is the connection with A2DP ? Here is the link to the relevant API

Oh okay, in your linked document AAC is mentioned in this

uint8_t m24[ESP_A2D_CIE_LEN_M24]
MPEG-2, 4 AAC audio codec capabilities

do you know what this means?
And would you know is the AAC support limited by hardware on the esp32 or just software?

@pschatzmann
Copy link
Owner

But I did not find any method where you could provide this information....

@Leo-Ha
Copy link
Author

Leo-Ha commented Apr 7, 2024

But I did not find any method where you could provide this information....

I dont really understand the documentation or what you mean by that, i will try to search if theres a way to add AAC support but seems im out of luck with this one

@bobisaperson1
Copy link

no updates?

@Leo-Ha
Copy link
Author

Leo-Ha commented Jun 25, 2024

no updates?

I never did manage to get the setup working, i think the esp32's and iphones bt codecs are just incompitable so that it struggles with the audio. Iphone prefers to use AAC codec while esp32 only supports SBC codec.

@bobisaperson1
Copy link

bobisaperson1 commented Jun 25, 2024

I worked out that if the volume on the IPhone is all the way up and ignoring the background noise issue mentioned in a different issue then the sound is as good as you would expect, it’s only when the volume is part way that it sounds horrible, and I testing with a cheap android I have laying around and fount the same thing, is there any way of “blocking” the volume from changing when connected, like how on Mac when connected to a usb DAC the volume bar is greyed out and can’t be changed

@harryberlin
Copy link

do you have an example for "very poor audio quality"?

@bobisaperson1
Copy link

I’ll try recording it and come back here later with a link

@bobisaperson1
Copy link

https://audio.com/bfulham/audio/esp32-test

it came out different to how it sounded straight off the esp32 as the recording has more background noise even at the full volume and didnt distort as much when at part volume compared to earphones off the esp32

@bobisaperson1
Copy link

bobisaperson1 commented Jun 26, 2024

I have ordered an external dac and amp (Adafruit I2S 3W Class D Amplifier Breakout - MAX98357A) to test if this is still an issue without using the internal dac

@pschatzmann
Copy link
Owner

If this is with your internal DAC, my first guess would be a noisy power supply
Did you test with a simple sine test sketch ?

@bobisaperson1
Copy link

I did not but as I have ordered the DAC I am not going to worry about doing further testing, I also noticed an error on the readme for that test sketch and have submitted changes

@Leo-Ha
Copy link
Author

Leo-Ha commented Jun 26, 2024

I have ordered an external dac and amp (Adafruit I2S 3W Class D Amplifier Breakout - MAX98357A) to test if this is still an issue without using the internal dac

I can record the sound later with my 16bit dac i have for the project and connecting that to an aux speaker. I will also try with the esp32S3 instead of the basic, maybe it has some improvments made.

@MarcelNox
Copy link

Out of necessity, I installed Squeezelite on the ESP. I had no problem with the same DAC using an iPhone. Unfortunately, since I do not own an iPhone myself, I couldn't generate logs with A2DP. However, the issue with the DAC can be ruled out.

@mooballs
Copy link

I had some luck with the OP's issue, see here. Might be something else, but it worked for me.

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

No branches or pull requests

6 participants