briankendall / proxy-audio-device

A virtual audio driver for macOS to sends all audio to another output
The Unlicense
514 stars 33 forks source link

Popping/Clicking on the *Original* Audio Device #39

Open vexir opened 7 months ago

vexir commented 7 months ago

Hey @briankendall, the proxy audio device output sounds great, but the original audio output (in my case a Dell U2720Q's audio out) has distinct popping/cracking. Some of my applications were defaulting to it so I noticed.

gxgl commented 7 months ago

Hi @vexir

Try to change the "Buffer Size". For me is working with no distortions, popping or other "artifacts" with that setting to 1024. image

All the best, George

gxgl commented 7 months ago

I have had the same issue as you when I've first started the app. I think the buffer was at 128... I don't remember exactly, but after I've played a bit with the size, for me worked after I have set it up as in the previous picture.

vexir commented 7 months ago

Changing the buffer size affects the original audio device? I thought it only would affect the proxy.

On Tue, Nov 21, 2023 at 11:35 PM GxGL @.***> wrote:

I have had the same issue as you when I've first started the app. I think the buffer was at 128... I don't remember exactly, but after I've played a bit with the size, for me worked after I have set it up as in the previous picture.

— Reply to this email directly, view it on GitHub https://github.com/briankendall/proxy-audio-device/issues/39#issuecomment-1822249369, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAT6ODRMYHIV4H44UAYFGN3YFWTMLAVCNFSM6AAAAAA7TOLKPKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMRSGI2DSMZWHE . You are receiving this because you were mentioned.Message ID: @.***>

gxgl commented 7 months ago

I am not 100% sure on what was the cause on my side but it worked like that.

At start there was only the buffer set and the audio was set to mac.

My bad i was setting it up without checking the logs and resources at that time.

briankendall commented 7 months ago

Usually pops and cracks are fixed by increasing the buffer size. It doesn't change anything about the proxied device or how it sounds, just how much buffer is used to proxy its audio. Less buffer means less latency but more risk of pops.

vexir commented 7 months ago

Sure, but I'm talking about the original audio device, not the proxy device. If buffer size doesn't affect the proxied device, what would be causing the popping on the proxied device?

E

On Fri, Nov 24, 2023 at 6:07 AM Brian Kendall @.***> wrote:

Usually pops and cracks are fixed by increasing the buffer size. It doesn't change anything about the proxied device or how it sounds, just how much buffer is used to proxy its audio. Less buffer means less latency but more risk of pops.

— Reply to this email directly, view it on GitHub https://github.com/briankendall/proxy-audio-device/issues/39#issuecomment-1825725847, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAT6ODS6D5HLPORO2HDB363YGCSY7AVCNFSM6AAAAAA7TOLKPKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMRVG4ZDKOBUG4 . You are receiving this because you were mentioned.Message ID: @.***>

briankendall commented 7 months ago

That is to say, the popping and clicking is there if you're not using the proxy audio device?

In that case, whichever application is producing audio is almost certainly the culprit. There's too many possibilities there for me to speculate.

danVnest commented 7 months ago

I seem to be experiencing the same as @vexir. I can adjust the buffer to prevent the proxy device from popping/clicking, but no matter what I do if I switch to ANY other device (e.g. built-in MacBook speakers, display speakers, etc.) then they have significant popping/clicking. If you remove the proxy-audio-device driver then they are fine.

I understand this might not be easy to figure out a fix, so potentially just adding an enable/disable toggle button to the app would be nice. I'm currently moving the driver out of the HAL folder and restarting coreaudio when I want to not use the proxy device and prevent this issue.

briankendall commented 7 months ago

@danVnest What version of macOS and model of mac do you have?

danVnest commented 7 months ago

I have a 2019 MacBook Pro model running macOS Sonoma 14.1.1

briankendall commented 7 months ago

Could you try a test for me:

  1. Set the main output device to the proxy audio device
  2. Set the system volume to 0
  3. Switch to a different output device that experiences the clicks and pops
  4. Make sure its volume is turned up enough to hear it
  5. Let me know if you still hear any clicks and pops
danVnest commented 7 months ago

No problem, happy to test things.

I followed those steps and unfortunately still have clicks and pops on all other output devices, with no discernable change compared to having the system volume up for the proxy audio device beforehand. I repeated the test several times with each audio device.

I also tested the effect of buffer size on the popping on the other devices:

Also note that there is no popping on other devices when "Proxy device is active:" is set to "When proxied device is active". I would leave it on this setting except it seems to increase the frequency of issue https://github.com/briankendall/proxy-audio-device/issues/14 for me.

briankendall commented 7 months ago

Some more questions:

Is there any regularity or rhythm to the popping?

Does changing the "proxy device is active" setting affect the popping at all?

danVnest commented 7 months ago

It seems random? But potentially occurs more on higher pitch sounds or sounds that suddenly change to/from load and soft.

Changing the "Proxy device is active:" doesn't seem to do anything except for "When proxied device is active":

Also note that there is no popping on other devices when "Proxy device is active:" is set to "When proxied device is active".

briankendall commented 7 months ago

Whoops, I missed that comment the first time around. But this gives me a clue as to what's going wrong. (Basically, garbage audio data is getting into the proxy device's audio buffer. I can't offhandedly say why that's happening.)

For the time being, I recommend keeping it set to "When proxied device is active" since that means the proxy device won't be outputting any audio unless the device you're proxying is outputting audio.