Contribute
Register

Rename USB Audio devices / custom OSX USB Audio class driver

Status
Not open for further replies.
Joined
Dec 14, 2010
Messages
27
Motherboard
Asus Z390
CPU
i7 > need model # > See Rules!
Graphics
Vega 56
Hi,

I just managed to rename my Audio USB devices because I want to get rid of labels like "Unknown USB Audio" etc,...

This is nothing new but quite helpful.

By using the "SampleUSBAudioOverrideDriver" codeless kext from Apple you're able to change the name of output interface.

Refer to original code from Apple Developer site:
https://developer.apple.com/library...SBAudioOverrideDriver/Introduction/Intro.html

Attached you'll find 2 working kext that will enable proper device names.
Place it under /Library/Extensions (as of 10.10 Yosemite)

Devices:
  • Behringer Xenyx Control1USB
  • Logitech HD Webcam C270


MidiAudio.png

AudioOut.png

AudioIn.png



If you need more PN me and I'll help you to generate your own custom one.
You can also generate some by your own, just make sure to set proper vendor id and product id.
!This is limited to USB Audio class devices!

nean
 

Attachments

  • Logitech HD Webcam C270.dmg.7z
    271 KB · Views: 927
  • Behringer-Xenyx-Control1USB.dmg.7z
    270.9 KB · Views: 704
Hi there! wanted to PM you about this, but I just made an account specifically for this issue and they won´t let me PM people yet.

I have a relatively confusing setup, because I have an iMac with a Cinema Display and an Apogee One attached.

Connected to the iMacs Headphone out is a pair of cheap speakers, which show up in the output list as "headphones".
The headphone out of the Apogee One, that I actually use, shows up as "stereo".
The speakers of the Cinema Display show up twice, once as "LED Cinema Display" and once as "Display Audio".

On the input side, the iMacs Mic shows up as "internal microphone", the Apogee One´s shows up as "int mic". Is there a method to also rename those Internal ins and outs, or if not, could you help me to at least give the others some distinguishable names?

Thanks in advance,

Andy
 
Hi,

sorry, but this cutom driver aka rename/injection "trick" apply only to usb class audio drivers and not to other kexts. if you like to have it renamed anyway you might need to create an aggregated device,....
 
Hello,
I saw your post on how to rename Audio Device on MacOSx using the "SampleUSBAudioOverrideDriver". I'd like to do the same but I have to admit that I don't even know where to start, I don't how to generate kext etc.

I'd like to change the name of 3 Audio Devices:

- Behringer U-Control UMX610 (Master Keyboard)
- Behringer Guitar/USB Interface UC6102 "Guitar Link"
- Behringer Audio Interface U-Control UCA222

Can you help out please and tell how to do this.

Thanks in advance:)
 
Or you can give some info. First, I need to edit the info.plist provided by the SampleUSBAudio from the Apple developer website ? If yes, Do I have to edit the files 3 times for each of 3 audio devices or put all the info in the info.plist ?

Im asking this because I noticed that on the info.plist in the folder provided by the Apple developper website, there is a repetition of the lines " <key>SampleUSBAudioDevice</key> <dict> ..." 3 times

<key>SampleUSBAudioDevice</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleUSBMergeNub</string>
<key>IOClass</key>
<string>AppleUSBMergeNub</string>
<key>IOProviderClass</key>
<string>IOUSBDevice</string>
<key>IOProviderMergeProperties</key>
<dict>
<key>USB Product Name</key>
<string>SampleUSBAudioCodecName</string>
<key>IOAudioDeviceLocalizedBundle</key>
<string>SampleUSBAudioOverrideDriver.kext</string>
<key>IOAudioDeviceConfigurationApplication</key>
<string>com.MySoftwareCompany.ControlPanelApp</string>
</dict>
<key>idProduct</key>
<integer>1967</integer>
<key>idVendor</key>
<integer>1917</integer>

I only need to keep one of them or do I need to edit all the repetitions ? And my last question is, apart from idvendor and idproduct, I only need to edit the USB Product Name? Sorry for bothering. I really appreciate your help.:thumbup:
 
Does anyone know if this still works? I can't really get it to work, even though I set up the kext right (I think).
 
@Antiabed , confirm, still works even on latest macos version 10.12.6 .
One thing I've changed as of 10.12 is the length of the device name as it will be truncated since then.
Just make sure its short enough ;-)
 
Hi to all,

I'm sorry but I have very hard time to understand how the plist needs to be modified in order to have my Audio Class Compliant USB device present to the Mac with the product name, device name, product id and vendor id of my choice.

Checking the read me file (which I believe I've now read 100 times), it's far from being clear on where we need to provide the current values (device name/id, vendor name/id etc...) and the target values (those we want the device to get).

For example we have three occurrences of vendor/product id properties under SampleUSBAudioDevice, SampleUSBAudioInputInterface and SampleUSBAudioOutputInterface. Where are we supposed to put the current values of our device and where do we put the ones we want it to get ?

May someone please provide an example of plist and the corresponding outputs from "About This Mac/System Report/USB/device" (before and after adding the .kext) so that we can get how it's working.

Another way could be just providing a version of the plist that has explicit values such as InitialName, TargetName. Best would be an example of course.

Some additional questions to the where we put the source and target ids :
- Do we need to change anything else than the plist ? Like Localizable.strings ?
- Also still quite confused between product name vs device name and that IOAudioDeviceLocalizedBundle property which is supposed to get a device name ??

Thank you in advance for your help.
 
Last edited:
I was able to rename 2 audio devices on 10.13.6 with this config :
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>English</string>
    <key>CFBundleIdentifier</key>
    <string>name.jf-luce.JiefRenameUnknownUSBDevices</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundlePackageType</key>
    <string>KEXT</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleVersion</key>
    <string>1.11</string>
    <key>IOKitPersonalities</key>
    <dict>
        <key>LogitechQuickCam</key>
        <dict>
            <key>CFBundleIdentifier</key>
            <string>com.apple.driver.AppleUSBMergeNub</string>
            <key>IOClass</key>
            <string>AppleUSBMergeNub</string>
            <key>IOProviderClass</key>
            <string>IOUSBDevice</string>
            <key>IOProviderMergeProperties</key>
            <dict>
                <key>USB Product Name</key>
                <string>Logitech QuickCam Ultra Vision</string>
                <key>USB Interface Name</key>
                <string>Logitech QuickCam Ultra Vision (if)</string>
                <key>USB Vendor Name</key>
                <string>Logitech</string>
                <key>kUSBVendorString</key>
                <string>Logitech</string>
                <key>kUSBLegacyForceReEnumerate</key>
                <true/>
            </dict>
            <key>idProduct</key>
            <integer>2249</integer>
            <key>idVendor</key>
            <integer>1133</integer>
        </dict>
        <key>JabraHeadSet</key>
        <dict>
            <key>CFBundleIdentifier</key>
            <string>com.apple.driver.AppleUSBMergeNub</string>
            <key>IOClass</key>
            <string>AppleUSBMergeNub</string>
            <key>IOProviderClass</key>
            <string>IOUSBDevice</string>
            <key>IOProviderMergeProperties</key>
            <dict>
                <key>USB Product Name</key>
                <string>Jabra Headset</string>
                <key>kUSBLegacyForceReEnumerate</key>
                <true/>
            </dict>
            <key>idProduct</key>
            <integer>12</integer>
            <key>idVendor</key>
            <integer>3468</integer>
        </dict>
    </dict>
    <key>OSBundleRequired</key>
    <string>Root</string>
</dict>
</plist>
I've cleaned few things not needed.

Thanks.
 
Is anyone still knowledgeable on this? this might be the answer to something i need, desperately too.
Im building a budget studio for a group of people and we have been using 3 berhinger interfaces connected to an external mixer.
Combining these with aggregate device is how we combine them at once for the software. the issue is that Aggregate device seems to not be able to differentiate between the interfaces between restarts. this requires going back into AMS to move them around, but because they are all named the same thing, this takes time as guess work and trial and error is required to get them all to line up.

I need to be able to see "UMC1" "UMC2"and "UMC3" separately, so that my users of this system will be able to just drag and drop the interfaces in order, in a more mindless order, and not have to run tests every-time you turn on the system. I leave the state soon and my last day to work on this will be the day after this post.

I have no clue on how to do most of the stuff with the KEXT, i dont even know how find the bInterfaceNumber and configuration value, google yields no obvious results for me. Any help is appreciated. thanks
 
Status
Not open for further replies.
Back
Top