Remembered that Henrik provided a command to list all devices...
That all lists as float32 is a bit strange... no? I mean the output for speaker...
//
Code:
(base) MBPr@MBP3 ~ % /Users/MBPr/iCloud\ Drive\ \(Archive\)\ -\ 1/Documents/Ca+Di/Camilla/tools/listdevices ; exit;
Available hosts:
[CoreAudio]
CoreAudio
Default Input Device:
Ok("BlackHole 2ch")
Default Output Device:
Ok("MacBook Pro Speakers")
Devices:
Device: "Record Interface"
============================================================
Capture
------------------------------------------------------------
Default input stream config:
channels: 2, samplerate: 96000, format: FLOAT32LE
All supported input stream configs:
channels: 2, samplerate min: 44100 max: 44100, format: FLOAT32LE
channels: 2, samplerate min: 48000 max: 48000, format: FLOAT32LE
channels: 2, samplerate min: 88200 max: 88200, format: FLOAT32LE
channels: 2, samplerate min: 96000 max: 96000, format: FLOAT32LE
channels: 2, samplerate min: 176400 max: 176400, format: FLOAT32LE
channels: 2, samplerate min: 192000 max: 192000, format: FLOAT32LE
channels: 2, samplerate min: 352800 max: 352800, format: FLOAT32LE
channels: 2, samplerate min: 384000 max: 384000, format: FLOAT32LE
channels: 2, samplerate min: 705600 max: 705600, format: FLOAT32LE
channels: 2, samplerate min: 768000 max: 768000, format: FLOAT32LE
Playback
------------------------------------------------------------
........
Device: "MacBook Pro Microphone"
============================================================
Capture
------------------------------------------------------------
Default input stream config:
channels: 1, samplerate: 44100, format: FLOAT32LE
All supported input stream configs:
channels: 1, samplerate min: 44100 max: 44100, format: FLOAT32LE
channels: 1, samplerate min: 48000 max: 48000, format: FLOAT32LE
channels: 1, samplerate min: 88200 max: 88200, format: FLOAT32LE
channels: 1, samplerate min: 96000 max: 96000, format: FLOAT32LE
Playback
------------------------------------------------------------
Device: "MacBook Pro Speakers"
============================================================
Capture
------------------------------------------------------------
Playback
------------------------------------------------------------
Default output stream config:
channels: 2, samplerate: 44100, format: FLOAT32LE
All supported output stream configs:
channels: 2, samplerate min: 44100 max: 44100, format: FLOAT32LE
channels: 2, samplerate min: 48000 max: 48000, format: FLOAT32LE
channels: 2, samplerate min: 88200 max: 88200, format: FLOAT32LE
channels: 2, samplerate min: 96000 max: 96000, format: FLOAT32LE
That all lists as float32 is a bit strange... no? I mean the output for speaker...
//
Yeah, the author will certainly know what formats his device supports natively. Or any user with sufficiently low-level tools which do not need to go through the OS audio layers.
Hm, why involving so many people for such trivial task.... Did you google search for lsusb on mac? E.g. trying https://stackoverflow.com/a/51579385 ?
Thanks!
ioreg -p IOUSB -l -w 0
gave for 24/384 :
and setup for for 16/44:
Could not detect any difference....
But as you can see, I'm in no way insightful in these matters...
//
ioreg -p IOUSB -l -w 0
gave for 24/384 :
Code:
+-o E1DA Cosmos ADC PCM32/384@00140000 <class IOUSBHostDevice, id 0x100054c88, registered, matched, active, busy 0 (41 ms), retain 46>
| {
| "kUSBSerialNumberString" = "CTUA..."
| "bDeviceClass" = 239
| "bDeviceSubClass" = 2
| "iSerialNumber" = 3
| "IOServiceDEXTEntitlements" = (("com.apple.developer.driverkit.transport.usb"))
| "iProduct" = 2
| "USB Serial Number" = "CTUA1..."
| "USB Vendor Name" = "E1DA"
| "USBSpeed" = 3
| "IOPowerManagement" = {"PowerOverrideOn"=Yes,"DevicePowerState"=2,"CurrentPowerState"=2,"CapabilityFlags"=32768,"MaxPowerState"=2,"DriverPowerState"=0}
| "bNumConfigurations" = 1
| "kUSBProductString" = "E1DA Cosmos ADC PCM32/384"
| "Authenticated" = Yes
| "kUSBVendorString" = "E1DA"
| "USB Product Name" = "E1DA Cosmos ADC PCM32/384"
| "iManufacturer" = 1
| "idVendor" = 12230
| "Device Speed" = 2
| "kUSBCurrentConfiguration" = 1
| "idProduct" = 24594
| "bcdDevice" = 513
| "UsbDeviceSignature" = <c62f126001024354554131383131313941ef0201010120010220030000fff000>
| "sessionID" = 15470758330475
| "USB Address" = 4
| "IOCFPlugInTypes" = {"9dc7b780-9ec0-11d4-a54f-000a27052861"="IOUSBHostFamily.kext/Contents/PlugIns/IOUSBLib.bundle"}
| "USBPortType" = 0
| "bDeviceProtocol" = 1
| "locationID" = 1310720
| "kUSBAddress" = 4
| "bcdUSB" = 512
| "IOGeneralInterest" = "IOCommand is not serializable"
| "bMaxPacketSize0" = 64
| "iAPAuthenticator" = "pid 70026, accessoryd"
| }
and setup for for 16/44:
Code:
+-o E1DA Cosmos ADC PCM32/384@00140000 <class IOUSBHostDevice, id 0x100054c88, registered, matched, active, busy 0 (41 ms), retain 111>
| {
| "kUSBSerialNumberString" = "CTU..."
| "bDeviceClass" = 239
| "bDeviceSubClass" = 2
| "iSerialNumber" = 3
| "IOServiceDEXTEntitlements" = (("com.apple.developer.driverkit.transport.usb"))
| "iProduct" = 2
| "USB Serial Number" = "CTUA...."
| "USB Vendor Name" = "E1DA"
| "USBSpeed" = 3
| "IOPowerManagement" = {"PowerOverrideOn"=Yes,"DevicePowerState"=2,"CurrentPowerState"=2,"CapabilityFlags"=32768,"MaxPowerState"=2,"DriverPowerState"=0}
| "bNumConfigurations" = 1
| "kUSBProductString" = "E1DA Cosmos ADC PCM32/384"
| "Authenticated" = Yes
| "kUSBVendorString" = "E1DA"
| "USB Product Name" = "E1DA Cosmos ADC PCM32/384"
| "iManufacturer" = 1
| "idVendor" = 12230
| "Device Speed" = 2
| "kUSBCurrentConfiguration" = 1
| "idProduct" = 24594
| "bcdDevice" = 513
| "UsbDeviceSignature" = <c62f126001024354554131383131313941ef0201010120010220030000fff000>
| "sessionID" = 15470758330475
| "USB Address" = 4
| "IOCFPlugInTypes" = {"9dc7b780-9ec0-11d4-a54f-000a27052861"="IOUSBHostFamily.kext/Contents/PlugIns/IOUSBLib.bundle"}
| "USBPortType" = 0
| "bDeviceProtocol" = 1
| "locationID" = 1310720
| "kUSBAddress" = 4
| "bcdUSB" = 512
| "IOGeneralInterest" = "IOCommand is not serializable"
| "bMaxPacketSize0" = 64
| "iAPAuthenticator" = "pid 70026, accessoryd"
| }
Could not detect any difference....
But as you can see, I'm in no way insightful in these matters...
//
This method does not provide all the information, just some subset. That linked post talks about brewing usbutils with full-featured lsusb.
So trying homebrew.... but it doesn't seem to work. Install went without any hassles as far I could see...
errors look like macOS problems/deviations?
//
Code:
==> Summary
🍺 /opt/homebrew/Cellar/usbutils/017: 13 files, 338.6KB
==> Running `brew cleanup usbutils`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
==> Caveats
==> usbutils
usbhid-dump requires either proper code signing with com.apple.vm.device-access
entitlement or root privilege
(base) MBPr@MBP3 ~ % usbutils
zsh: command not found: usbutils
(base) MBPr@MBP3 ~ %
(base) MBPr@MBP3 ~ % usb-devices
Error: directory /sys/bus does not exist; is sysfs mounted?
(base) MBPr@MBP3 ~ % usb-devices
Error: directory /sys/bus does not exist; is sysfs mounted?
(base) MBPr@MBP3 ~ % usbhid-dump
No matching HID interfaces
(base) MBPr@MBP3 ~ % lsusb
(base) MBPr@MBP3 ~ % lsusb.py
WARNING: Failure to read usb.ids
Traceback (most recent call last):
File "/opt/homebrew/bin/lsusb.py", line 558, in <module>
main(sys.argv)
File "/opt/homebrew/bin/lsusb.py", line 554, in main
read_usb()
File "/opt/homebrew/bin/lsusb.py", line 481, in read_usb
for dirent in os.listdir(prefix):
FileNotFoundError: [Errno 2] No such file or directory: '/sys/bus/usb/devices/'
(base) MBPr@MBP3 ~ %
(base) MBPr@MBP3 ~ % usbhid-dump
No matching HID interfaces
(base) MBPr@MBP3 ~ % sudo usbhid-dump
Password:
No matching HID interfaces
(base) MBPr@MBP3 ~ %
errors look like macOS problems/deviations?
//
OK - found this: https://github.com/jlhonora/lsusb/releases/tag/1.0
and run: lsusb -v
.... a lot that I dont think has anything to do with the ADC.... but then:
"AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 3
bBitResolution 24"
?
//
and run: lsusb -v
.... a lot that I dont think has anything to do with the ADC.... but then:
Code:
Bus 000 Device 004: ID 2fc6:6012
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 [unknown]
bDeviceSubClass 2 [unknown]
bDeviceProtocol 1
bMaxPacketSize0 64
idVendor 0x2fc6
idProduct 0x6012
bcdDevice 2.01
iManufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0152
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 0mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 2
bFunctionClass 1 [unknown]
bFunctionSubClass 0 [unknown]
bFunctionProtocol 32
iFunction 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 [unknown]
bInterfaceSubClass 1 [unknown]
bInterfaceProtocol 32
iInterface 2 E1DA Cosmos ADC PCM32/384
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 2.00
bCategory 4
wTotalLength 0x0040
bmControls 0x00
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 10 (CLOCK_SOURCE)
bClockID 15
bmAttributes 3 Internal programmable clock
bmControls 0x07
Clock Frequency Control (read/write)
Clock Validity Control (read-only)
bAssocTerminal 0
iClockSource 0
AudioControl Interface Descriptor:
bLength 17
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 10
wTerminalType 0x0603 Line Connector
bAssocTerminal 0
bCSourceID 15
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 0
bmControls 0x0000
iTerminal 0
AudioControl Interface Descriptor:
bLength 18
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 11
bSourceID 10
bmaControls(0) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls(1) 0x0000000c
Volume Control (read/write)
bmaControls(2) 0x0000000c
Volume Control (read/write)
iFeature 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 13
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 11
bCSourceID 15
bmControls 0x0000
iTerminal 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 [unknown]
bInterfaceSubClass 2 [unknown]
bInterfaceProtocol 32
iInterface 5 Record Interface
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 [unknown]
bInterfaceSubClass 2 [unknown]
bInterfaceProtocol 32
iInterface 0
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 13
bmControls 0x05
Active Alternate Setting Control (read-only)
Valid Alternate Setting Control (read-only)
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 0
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 2
bBitResolution 16
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0308 1x 776 bytes
bInterval 1
AudioStreaming Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0x0000
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 2
bNumEndpoints 1
bInterfaceClass 1 [unknown]
bInterfaceSubClass 2 [unknown]
bInterfaceProtocol 32
iInterface 0
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 13
bmControls 0x05
Active Alternate Setting Control (read-only)
Valid Alternate Setting Control (read-only)
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 0
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 3
bBitResolution 24
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0308 1x 776 bytes
bInterval 1
AudioStreaming Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0x0000
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 3
bNumEndpoints 1
bInterfaceClass 1 [unknown]
bInterfaceSubClass 2 [unknown]
bInterfaceProtocol 32
iInterface 0
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 13
bmControls 0x05
Active Alternate Setting Control (read-only)
Valid Alternate Setting Control (read-only)
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 0
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 32
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0308 1x 776 bytes
bInterval 1
AudioStreaming Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0x0000
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 4
bNumEndpoints 1
bInterfaceClass 1 [unknown]
bInterfaceSubClass 2 [unknown]
bInterfaceProtocol 32
iInterface 0
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 13
bmControls 0x05
Active Alternate Setting Control (read-only)
Valid Alternate Setting Control (read-only)
bFormatType 1
bmFormats 0x80000000
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 0
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 32
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0308 1x 776 bytes
bInterval 1
AudioStreaming Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0x0000
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 [unknown]
bInterfaceSubClass 0 [unknown]
bInterfaceProtocol 0
iInterface 7 HID Interface
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 29
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x86 EP 6 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 9
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 [unknown]
bInterfaceSubClass 240 [unknown]
bInterfaceProtocol 0
iInterface 8 iAP Interface
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x07 EP 7 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x88 EP 8 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 239 [unknown]
bDeviceSubClass 2 [unknown]
bDeviceProtocol 1
bMaxPacketSize0 64
bNumConfigurations 1
can't get debug descriptor: No such file or directory
Device Status: 0x0001
Self Powered
"AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 3
bBitResolution 24"
?
//
Last edited:
Excellent, that's exactly the output needed.
The descriptors say that Cosmos has 4 altsettings. Altsets 1-3 of PCM format for 16bit, 24bit (in 3 bytes), 32bit, and an altset 4 of unknown format 0x80000000 for 32bit (probably DSD, but I doubt the ADC can use that altsetting).
That's because you did not specify the VID PID of your device in the -d parameter (as written in https://www.diyaudio.com/community/threads/android-adc-usb-isolation.413723/post-7706383 ) and details of all USB devices were listed..... a lot that I dont think has anything to do with the ADC
The descriptors say that Cosmos has 4 altsettings. Altsets 1-3 of PCM format for 16bit, 24bit (in 3 bytes), 32bit, and an altset 4 of unknown format 0x80000000 for 32bit (probably DSD, but I doubt the ADC can use that altsetting).
OK, so should not be a problem with 24 bits!?
Now, I still have "garbled" sound on 16 and 32 bit. 24 was completely wrecked...
How can I trouble-shoot this?
//
Now, I still have "garbled" sound on 16 and 32 bit. 24 was completely wrecked...
How can I trouble-shoot this?
//
E.g. step by step:
1. confirming the device works in a regular OS (like your mac), direct connection, those formats you want.
2. dtto, with your isolation rig
If the above works OK, most likely your recording app has issues. IIUC it implements an UAC2 driver in user space, no easy job, it may be buggy.
1. confirming the device works in a regular OS (like your mac), direct connection, those formats you want.
2. dtto, with your isolation rig
If the above works OK, most likely your recording app has issues. IIUC it implements an UAC2 driver in user space, no easy job, it may be buggy.
1. works 24/384, clear sound.
2. work for 5 seconds at 16/44 somewhat distorted and noise... - nothing at 24/384.
Now the lsusb -v command don't display any verbose info any longer... strange....
//
2. work for 5 seconds at 16/44 somewhat distorted and noise... - nothing at 24/384.
Now the lsusb -v command don't display any verbose info any longer... strange....
//
- Home
- Source & Line
- Digital Line Level
- Android <-> ADC USB isolation