Skip to content

Instantly share code, notes, and snippets.

@mattgreen
Last active March 12, 2026 18:26
Show Gist options
  • Select an option

  • Save mattgreen/0314fbba2a08012463be452b3f6c0f6e to your computer and use it in GitHub Desktop.

Select an option

Save mattgreen/0314fbba2a08012463be452b3f6c0f6e to your computer and use it in GitHub Desktop.

AudioWrangler Support

For any questions or inquiries please contact matt_p_green@hotmail.com

AudioWrangler Privacy Policy

Effective date: May 2, 2021

We don't store any data on you, period. We're proud to produce software that puts the user first.

All data needed for AudioWrangler to function stays on your local device. There is no value in sending it elsewhere, so we have no reason to even try to amass it. We don't use any sort of analytics software, either.

Additionally, there are no intermediary or third parties involved in your use of AudioWrangler. There's absolutely no reason for there to be! It's simply a small app that improves your user experience.

@mattgreen
Copy link
Copy Markdown
Author

Correct. I was mistracking it as an issue only with some devices instead of a more general issue.

I suspect name-based identification is the only correct path for most users. I'm not sure how workable it is to let users fallback to what the current model is. Okay if I pass beta builds along to you all once I have something to test?

@intraector
Copy link
Copy Markdown

Yes, I am happy to help with issue.

@MisterKimo
Copy link
Copy Markdown

I would also be happy to beta test, though I'll be on travel through most of the next two weeks so it may be a while before I can provide feedback.

@mattgreen
Copy link
Copy Markdown
Author

Here's a beta build: https://drive.google.com/file/d/1SnKqSm9cXXR5avtKcLJPBBWqzL9youaA/view?usp=sharing

Be sure to hit the download icon in the toolbar instead of browsing through the archive.

You'll want to delete all of your preferred input/output devices before testing it. To do that, hit delete/backspace on a device in the list. After deleting all of them, quit the app and run it again. This will give you a fresh start. If testing goes well I will add a button to do this automatically.

The big change is that it tries to use the device name to differentiate devices whenever possible (e.g. when there aren't duplicates). If there are duplicates, then it tries to use the model identifier, if any, and only then does it fall back to the UID it uses currently. I'm convinced there's a regression to part of macOS sometime in the last year that broke audio device UIDs being stable. I have little faith it'll be remedied anytime soon, hence this new approach.

@MisterKimo
Copy link
Copy Markdown

MisterKimo commented Oct 18, 2025

Downloaded and installed the new version yesterday. So far, none of the activities that would cause the duplicate devices to appear are causing any issues.

I like the idea of a button to clear the list and relaunch the app, though, in case any weird behaviors arise in the future.

@mattgreen
Copy link
Copy Markdown
Author

Thanks for trying it out! I've pushed a new version, 1.5. It's in review but should be up within the next few days. Let me know if you run into any more issues.

@intraector
Copy link
Copy Markdown

Hey, somehow I missed the letter in my mail, sorry. I've been testing the app in the last 24 hours, so far so good, no issues. Thanks for the great work! The app really is a lifesaver for those who use bluetooth headphones with the mac. Cheers!

@drbyte
Copy link
Copy Markdown

drbyte commented Oct 25, 2025

Hi. I've been loving AudioWrangler. Today I upgraded to 1.5.0 and now it won't start.
When I run the binary from terminal it says:
Screen Shot 2025-10-25 at 11 37 16 AM
MacOS 12.7.6

> defaults read io.mattgreen.AudioWrangler
{
    "KeyboardShortcuts_toggleGlobalMicMute" = "{\\"carbonModifiers\\":2560,\\"carbonKeyCode\\":0}";
    "NSStatusItem Preferred Position Item-0" = 6357;
    "NSStatusItem Visible Item-1" = 0;
    "NSWindow Frame com.sindresorhus.Preferences.FrameAutosaveName" = "1277 876 453 435 0 0 3008 1667 ";
    firstRun = 0;
    inputDevices = "[{\\"name\\":\\"JBL Quantum350 Wireless\\",\\"uid\\":\\"V2:AppleUSBAudioEngine:JBL:JBL Quantum350 Wireless:14200000:2,1\\"},{\\"name\\":\\"Soundcore 30 Blue\\",\\"uid\\":\\"V2:E8-EE-CC-25-59-E8:input\\"},{\\"name\\":\\"JBL Quantum350 Wireless\\",\\"uid\\":\\"V2:AppleUSBAudioEngine:JBL:JBL Quantum350 Wireless:14100000:2,1\\"},{\\"name\\":\\"Earbuds White P2 Mini\\",\\"uid\\":\\"V2:5C-56-A4-84-75-73:input\\"},{\\"name\\":\\"JBL Quantum350 Wireless\\",\\"uid\\":\\"V2:AppleUSBAudioEngine:JBL:JBL Quantum350 Wireless:14130000:2,1\\"},{\\"name\\":\\"JBL Quantum350 Wireless\\",\\"uid\\":\\"V2:AppleUSBAudioEngine:JBL:JBL Quantum350 Wireless:14133000:2,1\\"},{\\"name\\":\\"Samson Q2U Microphone\\",\\"uid\\":\\"V2:AppleUSBAudioEngine:Samson Technologies:Samson Q2U Microphone:14110000:2,1\\"},{\\"name\\":\\"Samson Q2U Microphone\\",\\"uid\\":\\"V2:AppleUSBAudioEngine:Samson Technologies:Samson Q2U Microphone:14240000:2,1\\"},{\\"name\\":\\"Samson Q2U Microphone\\",\\"uid\\":\\"V2:AppleUSBAudioEngine:Samson Technologies:Samson Q2U Microphone:14140000:2,1\\"},{\\"name\\":\\"Samson Q2U Microphone\\",\\"uid\\":\\"V2:AppleUSBAudioEngine:Samson Technologies:Samson Q2U Microphone:14200000:2,1\\"},{\\"name\\":\\"USBAudio1.0 (2)\\",\\"uid\\":\\"V2:AppleUSBAudioEngine:Jieli Technology:USB Composite Device:4250315632333715:1\\"},{\\"name\\":\\"USBAudio1.0\\",\\"uid\\":\\"V2:AppleUSBAudioEngine:Jieli Technology:USB Composite Device:4250315431353309:1\\"},{\\"name\\":\\"Built-in Microphone\\",\\"uid\\":\\"V2:AppleHDAEngineInput:1B,0,1,0:1\\"},{\\"name\\":\\"HD Pro Webcam C920\\",\\"uid\\":\\"V2:AppleUSBAudioEngine:Unknown Manufacturer:HD Pro Webcam C920:BA99E25F:3\\"},{\\"name\\":\\"ZoomAudioDevice\\",\\"uid\\":\\"V2:zoom.us.zoomaudiodevice.001\\"},{\\"name\\":\\"Telestream Audio Capture Aggregate\\",\\"uid\\":\\"V2:net.telestream.audio-capture-aggregate\\"},{\\"name\\":\\"Microsoft Teams Audio\\",\\"uid\\":\\"V2:MSLoopbackDriverDevice_UID\\"}]";
    muteInternalSpeakersOnSwitch = 0;
    notifyChanged = 1;
    outputDevices = "[{\\"name\\":\\"JBL Quantum350 Wireless\\",\\"uid\\":\\"V2:AppleUSBAudioEngine:JBL:JBL Quantum350 Wireless:14200000:2,1\\"},{\\"name\\":\\"JBL Quantum350 Wireless\\",\\"uid\\":\\"V2:AppleUSBAudioEngine:JBL:JBL Quantum350 Wireless:14100000:2,1\\"},{\\"name\\":\\"Soundcore 30 Blue\\",\\"uid\\":\\"V2:E8-EE-CC-25-59-E8:output\\"},{\\"name\\":\\"Earbuds White P2 Mini\\",\\"uid\\":\\"V2:5C-56-A4-84-75-73:output\\"},{\\"name\\":\\"JBL Quantum350 Wireless\\",\\"uid\\":\\"V2:AppleUSBAudioEngine:JBL:JBL Quantum350 Wireless:14133000:2,1\\"},{\\"name\\":\\"JBL Quantum350 Wireless\\",\\"uid\\":\\"V2:AppleUSBAudioEngine:JBL:JBL Quantum350 Wireless:14130000:2,1\\"},{\\"name\\":\\"Built-in Output\\",\\"uid\\":\\"V2:AppleHDAEngineOutput:1B,0,1,1:0\\"},{\\"name\\":\\"Telestream Audio Capture\\",\\"uid\\":\\"V2:A3A29DFE-3257-44A5-9F4D-C10FA66CAC34\\"},{\\"name\\":\\"HDMI\\",\\"uid\\":\\"V2:AppleHDAEngineOutputDP:0,1,0,1,0:0:{2D4C-0F13-01000E00}\\"},{\\"name\\":\\"DisplayPort\\",\\"uid\\":\\"V2:AppleHDAEngineOutputDP:0,1,0,1,2:0:{0C41-08E1-00000028}\\"},{\\"name\\":\\"Samson Q2U Microphone\\",\\"uid\\":\\"V2:AppleUSBAudioEngine:Samson Technologies:Samson Q2U Microphone:14110000:2,1\\"},{\\"name\\":\\"Samsung CU8200 85 TV\\",\\"uid\\":\\"V2:68:FC:CA:17:F9:6D-266241836322-screen\\"},{\\"name\\":\\"Samsung CU8200 85 TV\\",\\"uid\\":\\"V2:68:FC:CA:17:F9:6D-929666973132-screen\\"},{\\"name\\":\\"Samson Q2U Microphone\\",\\"uid\\":\\"V2:AppleUSBAudioEngine:Samson Technologies:Samson Q2U Microphone:14240000:2,1\\"},{\\"name\\":\\"Samson Q2U Microphone\\",\\"uid\\":\\"V2:AppleUSBAudioEngine:Samson Technologies:Samson Q2U Microphone:14200000:2,1\\"},{\\"name\\":\\"Samson Q2U Microphone\\",\\"uid\\":\\"V2:AppleUSBAudioEngine:Samson Technologies:Samson Q2U Microphone:14140000:2,1\\"},{\\"name\\":\\"DisplayPort\\",\\"uid\\":\\"V2:AppleHDAEngineOutputDP:0,1,0,1,4:1:{0C41-08E1-00000028}\\"},{\\"name\\":\\"HDMI\\",\\"uid\\":\\"V2:AppleHDAEngineOutputDP:0,1,0,1,0:0:{0E17-0000-00000000}\\"},{\\"name\\":\\"HDMI\\",\\"uid\\":\\"V2:AppleHDAEngineOutputDP:0,1,0,1,0:0:{2D4C-091B-5A345242}\\"},{\\"name\\":\\"DisplayPort\\",\\"uid\\":\\"V2:AppleHDAEngineOutputDP:0,1,0,1,2:1:{0C41-08E1-00000028}\\"},{\\"name\\":\\"DisplayPort\\",\\"uid\\":\\"V2:AppleHDAEngineOutputDP:0,1,0,1,4:0:{0C41-08E1-00000028}\\"},{\\"name\\":\\"ZoomAudioDevice\\",\\"uid\\":\\"V2:zoom.us.zoomaudiodevice.001\\"},{\\"name\\":\\"Microsoft Teams Audio\\",\\"uid\\":\\"V2:MSLoopbackDriverDevice_UID\\"}]";
    prependNewDevices = 0;
    showInputMuteStatus = 0;
}

@mattgreen
Copy link
Copy Markdown
Author

Hi @drbyte, thanks for reporting. I think I've narrowed down what causes this, oversight on my part in the new matching code.

1.5.1 should remedy it. It's waiting for review currently but hoping it gets out tomorrow. Hope that resolves it for you!

@jeinselen
Copy link
Copy Markdown

1.5.1 is live in the US App Store as of an hour ago. Thank you so much for the updates!

@drbyte
Copy link
Copy Markdown

drbyte commented Oct 27, 2025

@mattgreen Yes 1.5.1 fixed that problem.
Thanks!

@mattgreen
Copy link
Copy Markdown
Author

Cheers!

@joelbourbon
Copy link
Copy Markdown

Hey @mattgreen.

I am on 1.5.1 and I am a big advocate at work for your tool to anyone having issue with their Audio Priorities.
Unfortunately, 2 of us are still having the duplication issues.

Any way we could collaborate on getting this fixed?

Thanks,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment