Re: Steinberg UR44 uaudio device

2022-06-11 Thread David H. Gutteridge
On Sat, 2022-06-11 at 19:31 +0200, Eivind Nicolay Evensen wrote:
> Den Fri, 10 Jun 2022 21:25:48 -0400
> skrev "David H. Gutteridge" :
> > 
> > To add to what others have said, a general rule as I've understood
> > it
> > is that if a device offers > 24/96 for ADC/DAC, it will be expecting
> > USB Audio 2.0, at least for processing at those higher rates. Some
> > devices are switchable between 1.0 and 2.0; some actually have a
> > physical switch to select which USB Audio class should be used. I've
> > never seen a UR44, much less operated one, but a glance at the
> > manual
> > refers to a switch on the rear labelled "CC Mode". This is for
> > "Class
> > Compliant" mode, which implies it will work with generic OS drivers.
> > Have you tried flipping that switch to "on"? (The manual is a bit
> > light on specific technical details.)
> 
> Yes, this was all done with the "class compliant" switch set to "on".

Interesting, not what I would necessarily expect here. Anyway, clearly
we're missing some significant support here.

Dave



Re: Steinberg UR44 uaudio device

2022-06-11 Thread Eivind Nicolay Evensen
Den Fri, 10 Jun 2022 21:25:48 -0400
skrev "David H. Gutteridge" :

> On Thu, 9 Jun 2022 at 17:43:02 +0200, Eivind Nicolay Evensen wrote:
> > > On 6/8/22 16:50, Eivind Nicolay Evensen wrote:  
> > > > If I read that right, Martin's guess that this is a v2 device is
> > > > right.
> > > 
> > > Hi,
> > > 
> > > If you compile the kernel with "options USB_DEBUG", there will be
> > > a "sysctl hw.usb.uaudio.debug=16", which will print this in
> > > dmesg.  
> > 
> > 
> > So then, this confirms it it seems:  
> [...]
> 
> To add to what others have said, a general rule as I've understood it
> is that if a device offers > 24/96 for ADC/DAC, it will be expecting
> USB Audio 2.0, at least for processing at those higher rates. Some
> devices are switchable between 1.0 and 2.0; some actually have a
> physical switch to select which USB Audio class should be used. I've
> never seen a UR44, much less operated one, but a glance at the manual
> refers to a switch on the rear labelled "CC Mode". This is for "Class
> Compliant" mode, which implies it will work with generic OS drivers.
> Have you tried flipping that switch to "on"? (The manual is a bit
> light on specific technical details.)

Yes, this was all done with the "class compliant" switch set to "on".


> 
> Regards,
> 
> Dave
> 




-- 
Eivind Nicolay Evensen


Re: Steinberg UR44 uaudio device

2022-06-10 Thread David H. Gutteridge


On Thu, 9 Jun 2022 at 17:43:02 +0200, Eivind Nicolay Evensen wrote:
> > On 6/8/22 16:50, Eivind Nicolay Evensen wrote:
> > > If I read that right, Martin's guess that this is a v2 device is
> > > right.  
> > 
> > Hi,
> > 
> > If you compile the kernel with "options USB_DEBUG", there will be a 
> > "sysctl hw.usb.uaudio.debug=16", which will print this in dmesg.
> 
> 
> So then, this confirms it it seems:
[...]

To add to what others have said, a general rule as I've understood it
is that if a device offers > 24/96 for ADC/DAC, it will be expecting
USB Audio 2.0, at least for processing at those higher rates. Some
devices are switchable between 1.0 and 2.0; some actually have a
physical switch to select which USB Audio class should be used. I've
never seen a UR44, much less operated one, but a glance at the manual
refers to a switch on the rear labelled "CC Mode". This is for "Class
Compliant" mode, which implies it will work with generic OS drivers.
Have you tried flipping that switch to "on"? (The manual is a bit light
on specific technical details.)

Regards,

Dave



Re: Steinberg UR44 uaudio device

2022-06-09 Thread Eivind Nicolay Evensen
Den Wed, 8 Jun 2022 17:08:20 +0200
skrev Hans Petter Selasky :

> On 6/8/22 16:50, Eivind Nicolay Evensen wrote:
> > If I read that right, Martin's guess that this is a v2 device is
> > right.  
> 
> Hi,
> 
> If you compile the kernel with "options USB_DEBUG", there will be a 
> "sysctl hw.usb.uaudio.debug=16", which will print this in dmesg.


So then, this confirms it it seems:
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
[large amounts of above]
uaudio_attach: audio rev 2.00
uaudio_attach: 0 mixer controls
uaudio0: Play[0]: 192000 Hz, 4 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Play[0]: 176400 Hz, 4 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Play[0]: 96000 Hz, 4 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Play[0]: 88200 Hz, 4 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Play[0]: 48000 Hz, 4 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Play[0]: 44100 Hz, 4 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Record[0]: 192000 Hz, 6 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Record[0]: 176400 Hz, 6 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Record[0]: 96000 Hz, 6 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Record[0]: 88200 Hz, 6 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Record[0]: 48000 Hz, 6 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Record[0]: 44100 Hz, 6 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: MIDI sequencer.
uaudio_attach: doing child attach
umidi_bulk_read_callback: start
pcm9:  on uaudio0
uaudio_attach_sub: software controlled main volume
uaudio_mixer_init_sub: child=0
uaudio_chan_init: Worst case buffer is 36864 bytes
uaudio_chan_init: Worst case buffer is 55296 bytes
uaudio_chan_set_param_speed: Selecting alt 4
uaudio_chan_set_param_speed: Selecting alt 4
uaudio_chan_set_param_format: Selecting format 0x0041
uaudio_chan_set_param_speed: Selecting alt 4
uaudio_chan_set_param_speed: Selecting alt 4
uaudio_chan_set_param_format: Selecting format 0x0861
umidi_bulk_read_callback: actlen=512 bytes
umidi_bulk_read_callback: start
uaudio0: No HID volume keys found.
uaudio_mixer_write_cfg_callback: 
umidi_bulk_read_callback: actlen=512 bytes
umidi_bulk_read_callback: start
umidi_bulk_read_callback: actlen=512 bytes
umidi_bulk_read_callback: start

> 
> You can also do:
> 
> pkg install usbutils
> 
> and
> 
> lsusb -vvv
> 
> and look for something like this:
> 
> > Interface Descriptor:
> >   bLength 9
> >   bDescriptorType 4
> >   bInterfaceNumber2
> >   bAlternateSetting   0
> >   bNumEndpoints   0
> >   bInterfaceClass 1 Audio
> >   bInterfaceSubClass  1 Control Device
> >   bInterfaceProtocol  0 
> >   iInterface  0 
> >   AudioControl Interface Descriptor:
> > bLength 9
> > bDescriptorType36
> > bDescriptorSubtype  1 (HEADER)
> > bcdADC   1.00  
>  this one will tell
> > wTotalLength   38
> > bInCollection   1
> > baInterfaceNr( 0)   3  

As well as this:

Bus /dev/usb Device /dev/ugen0.7: ID 0499:1704 Yamaha Corp. Steinberg UR44
Device Descriptor:
  bLength18
  bDescriptorType 1
  bcdUSB   2.00
  bDeviceClass  239 Miscellaneous Device
  bDeviceSubClass 2 ?
  bDeviceProtocol 1 Interface Association
  bMaxPacketSize064
  idVendor   0x0499 Yamaha Corp.
  idProduct  0x1704 Steinberg UR44
  bcdDevice2.10
  iManufacturer   1 Yamaha Corporation
  iProduct2 Steinberg UR44
  iSerial 0 
  bNumConfigurations  2
  Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength  324
bNumInterfaces  4
bConfigurationValue 1
iConfiguration  0 
bmAttributes 0xc0
  Self Powered
MaxPower0mA
Interface Association:
  bLength 8
  bDescriptorType11
  bFirstInterface 0
  bInterfaceCount 4
  bFunctionClass  1 Audio
  bFunctionSubClass   0 
  bFunctionProtocol  32 
  iFunction   0 
Interface Descriptor:
  bLength 9
  bDescriptorType 4
  bInterfaceNumber0
  bAlternateSetting   0
  bNumEndpoints   0
  bInterfaceClass 1 Audio
  bInterfaceSubClass  1 Control Device
  bInterfaceProtocol 32 
  iInterface  0 
  AudioControl Interface Descriptor:
bLength 9
bDescriptorType36
bDescriptorSubtype  1 (HEADER)
bcdADC   2.00
bCategory   8
wTotalLength   75
 

Re: Steinberg UR44 uaudio device

2022-06-08 Thread Hans Petter Selasky

On 6/8/22 16:50, Eivind Nicolay Evensen wrote:

If I read that right, Martin's guess that this is a v2 device is right.


Hi,

If you compile the kernel with "options USB_DEBUG", there will be a 
"sysctl hw.usb.uaudio.debug=16", which will print this in dmesg.


You can also do:

pkg install usbutils

and

lsusb -vvv

and look for something like this:


Interface Descriptor:
  bLength 9
  bDescriptorType 4
  bInterfaceNumber2
  bAlternateSetting   0
  bNumEndpoints   0
  bInterfaceClass 1 Audio
  bInterfaceSubClass  1 Control Device
  bInterfaceProtocol  0 
  iInterface  0 
  AudioControl Interface Descriptor:

bLength 9
bDescriptorType36
bDescriptorSubtype  1 (HEADER)
bcdADC   1.00

    this one will tell

wTotalLength   38
bInCollection   1
baInterfaceNr( 0)   3


--HPS


Re: Steinberg UR44 uaudio device

2022-06-08 Thread Eivind Nicolay Evensen
Den Fri, 3 Jun 2022 15:11:35 +0200
skrev Hans Petter Selasky :

> On 6/3/22 15:00, Eivind Nicolay Evensen wrote:
> > Thanks, that is interesting to know. I haven't upgraded my FreeBSD
> > machine past 11.3. When plugging the unit into that, it was only
> > recognised as ugen. Perhaps I finally have a reason to upgrade it,
> > if only just for comparison. And it seems the driver has shared
> > some bits before, in the small chance I figure out what needs
> > doing in there.  
> 
> FreeBSD 13.1 is a good release :-)


And indeed it's supported there. At least play, I didn't test record.

ugen0.7:  at usbus0
uaudio0 on uhub9
uaudio0:  on usbus0
uaudio0: Play[0]: 192000 Hz, 4 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Play[0]: 176400 Hz, 4 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Play[0]: 96000 Hz, 4 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Play[0]: 88200 Hz, 4 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Play[0]: 48000 Hz, 4 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Play[0]: 44100 Hz, 4 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Record[0]: 192000 Hz, 6 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Record[0]: 176400 Hz, 6 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Record[0]: 96000 Hz, 6 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Record[0]: 88200 Hz, 6 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Record[0]: 48000 Hz, 6 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Record[0]: 44100 Hz, 6 ch, 24-bit S-LE PCM format, 2x8ms buffer.
uaudio0: MIDI sequencer.
pcm9:  on uaudio0
uaudio0: No HID volume keys found.

If I read that right, Martin's guess that this is a v2 device is right.



-- 
Eivind Nicolay Evensen


Re: Steinberg UR44 uaudio device

2022-06-03 Thread Hans Petter Selasky

On 6/3/22 15:00, Eivind Nicolay Evensen wrote:

Thanks, that is interesting to know. I haven't upgraded my FreeBSD
machine past 11.3. When plugging the unit into that, it was only
recognised as ugen. Perhaps I finally have a reason to upgrade it,
if only just for comparison. And it seems the driver has shared
some bits before, in the small chance I figure out what needs
doing in there.


FreeBSD 13.1 is a good release :-)

--HPS


Re: Steinberg UR44 uaudio device

2022-06-03 Thread Eivind Nicolay Evensen
Den Fri, 3 Jun 2022 14:04:45 +0200
skrev Hans Petter Selasky :

> On 6/3/22 12:57, Martin Husemann wrote:
> > It is most likely a uaudio v2 device (not suprising for
> > 32bit/192kHz). Unfortunately NetBSD currently does not support that
> > audio class. It is not hard to add support, just needs someone with
> > some time to do it;-)  
> 
> FreeBSD has had support for USB audio v2 for some time now.
> 
> --HPS

Thanks, that is interesting to know. I haven't upgraded my FreeBSD
machine past 11.3. When plugging the unit into that, it was only
recognised as ugen. Perhaps I finally have a reason to upgrade it,
if only just for comparison. And it seems the driver has shared
some bits before, in the small chance I figure out what needs
doing in there.


-- 
Eivind Nicolay Evensen


Re: Steinberg UR44 uaudio device

2022-06-03 Thread Hans Petter Selasky

On 6/3/22 12:57, Martin Husemann wrote:

It is most likely a uaudio v2 device (not suprising for 32bit/192kHz).
Unfortunately NetBSD currently does not support that audio class. It is
not hard to add support, just needs someone with some time to do it;-)


FreeBSD has had support for USB audio v2 for some time now.

--HPS


Re: Steinberg UR44 uaudio device

2022-06-03 Thread Martin Husemann
On Fri, Jun 03, 2022 at 10:12:44AM +0200, Eivind Nicolay Evensen wrote:
> Hello.
> 
> Is there any way to get more information to understand
> what is needed to get this Steinberg UR44 to work on
> NetBSD:
> 
> [   109,152749] uaudio0 at uhub1 port 1 configuration 1 interface 0
> [   109,152749] uaudio0: Yamaha Corporation (0x0499) Steinberg UR44 (0x1704), 
> rev 2.00/2.10, addr 4
> [   109,152749] uaudio0: autoconfiguration error: audio descriptors make no 
> sense, error=4

It is most likely a uaudio v2 device (not suprising for 32bit/192kHz).
Unfortunately NetBSD currently does not support that audio class. It is
not hard to add support, just needs someone with some time to do it ;-)

Martin


Steinberg UR44 uaudio device

2022-06-03 Thread Eivind Nicolay Evensen
Hello.

Is there any way to get more information to understand
what is needed to get this Steinberg UR44 to work on
NetBSD:

[   109,152749] uaudio0 at uhub1 port 1 configuration 1 interface 0
[   109,152749] uaudio0: Yamaha Corporation (0x0499) Steinberg UR44 (0x1704), 
rev 2.00/2.10, addr 4
[   109,152749] uaudio0: autoconfiguration error: audio descriptors make no 
sense, error=4
[   109,152749] umidi0 at uhub1 port 1 configuration 1 interface 1
[   109,152749] umidi0: Yamaha Corporation (0x0499) Steinberg UR44 (0x1704), 
rev 2.00/2.10, addr 4
[   109,152749] umidi0: (Yamaha Specific)
[   109,152749] umidi0: autoconfiguration error: alloc_all_endpoints failed. 
(err=4)
[   109,152749] umidi0: autoconfiguration error: disabled.
[   109,152749] umidi1 at uhub1 port 1 configuration 1 interface 2
[   109,152749] umidi1: Yamaha Corporation (0x0499) Steinberg UR44 (0x1704), 
rev 2.00/2.10, addr 4
[   109,152749] umidi1: (Yamaha Specific)
[   109,152749] umidi1: autoconfiguration error: alloc_all_endpoints failed. 
(err=4)
[   109,152749] umidi1: autoconfiguration error: disabled.
[   109,152749] umidi2 at uhub1 port 1 configuration 1 interface 3
[   109,152749] umidi2: Yamaha Corporation (0x0499) Steinberg UR44 (0x1704), 
rev 2.00/2.10, addr 4
[   109,152749] umidi2: (Yamaha Specific)
[   109,152749] umidi2: out=4, in=4
[   109,152749] midi1 at umidi2: <0 >0 on umidi2
[   109,152749] midi2 at umidi2: <1 >1 on umidi2
[   109,152749] midi3 at umidi2: <2 >2 on umidi2
[   109,152749] midi4 at umidi2: <3 >3 on umidi2
[   111,132749] ehci1: handing over full speed device on port 1 to ohci1
[   121,612748] uhub3: autoconfiguration error: device problem, disabling port 1

I briefly poked around in uaudio.c and it seems there's a
#define UAUDIO_DEBUG, I'll try that next week when given time.
However, this is a very new field to me, so I don't know what,
if any, progress I'll make.

Full dmesg appended below signature in case anything else in there
is important to the issue.


Regards

-- 
Eivind Nicolay Evensen





[ 1,00] Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 
2004, 2005,
[ 1,00] 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 
2016, 2017,
[ 1,00] 2018, 2019, 2020, 2021, 2022
[ 1,00] The NetBSD Foundation, Inc.  All rights reserved.
[ 1,00] Copyright (c) 1982, 1986, 1989, 1991, 1993
[ 1,00] The Regents of the University of California.  All rights 
reserved.

[ 1,00] NetBSD 9.99.97 (GENERIC) #0: Wed Jun  1 21:02:50 CEST 2022
[ 1,00] 
ene@bever.stigaas.lokalnett:/home/ene/midlertidig/nbsd/src/sys/arch/amd64/compile/obj/GENERIC
[ 1,00] total memory = 11883 MB
[ 1,00] avail memory = 11489 MB
[ 1,00] timecounter: Timecounters tick every 10.000 msec
[ 1,00] Kernelized RAIDframe activated
[ 1,00] timecounter: Timecounter "i8254" frequency 1193182 Hz quality 
100
[ 1,03] mainbus0 (root)
[ 1,03] ACPI: RSDP 0x000F0450 24 (v02 _ASUS_)
[ 1,03] ACPI: XSDT 0xA79E8070 5C (v01 _ASUS_ Notebook 
01072009 AMI  00010013)
[ 1,03] ACPI: FACP 0xA79F3C90 F4 (v04 _ASUS_ Notebook 
01072009 AMI  00010013)
[ 1,03] Firmware Warning (ACPI): Optional FADT field Pm2ControlBlock 
has valid Length but zero Address: 0x/0x1 (20211217/tbfadt-688)
[ 1,03] ACPI: DSDT 0xA79E8158 00BB31 (v02 _ASUS_ Notebook 
0216 INTL 20091112)
[ 1,03] ACPI: FACS 0xA7A43F80 40
[ 1,03] ACPI: APIC 0xA79F3D88 62 (v03 _ASUS_ Notebook 
01072009 AMI  00010013)
[ 1,03] ACPI: MCFG 0xA79F3DF0 3C (v01 _ASUS_ Notebook 
01072009 MSFT 00010013)
[ 1,03] ACPI: HPET 0xA79F3E30 38 (v01 _ASUS_ Notebook 
01072009 AMI  0004)
[ 1,03] ACPI: SSDT 0xA79F3E68 0003EB (v01 AMDPOWERNOW 
0001 AMD  0001)
[ 1,03] ACPI: SSDT 0xA79F4258 00168E (v02 AMDALIB 
0001 MSFT 0400)
[ 1,03] ACPI: SLIC 0xA79F58E8 000176 (v01 _ASUS_ Notebook 
01072009 ASUS 0001)
[ 1,03] ACPI: 3 ACPI AML tables successfully acquired and loaded
[ 1,03] ioapic0 at mainbus0 apid 3: pa 0xfec0, version 0x21, 24 pins
[ 1,03] cpu0 at mainbus0 apid 0
[ 1,03] cpu0: Use mfence to serialize rdtsc
[ 1,03] cpu0: AMD E-450 APU with Radeon(tm) HD Graphics, id 0x500f20
[ 1,03] cpu0: node 0, package 0, core 0, smt 0
[ 1,03] cpu1 at mainbus0 apid 1
[ 1,03] cpu1: AMD E-450 APU with Radeon(tm) HD Graphics, id 0x500f20
[ 1,03] cpu1: node 0, package 0, core 1, smt 0
[ 1,03] acpi0 at mainbus0: Intel ACPICA 20211217
[ 1,03] acpi0: X/RSDT: OemId <_ASUS_,Notebook,01072009>, AslId 
[ 1,03] acpi0: MCFG: segment 0, bus 0-255, address 0xe000
[ 1,03] acpi0: SCI interrupting at int 9
[ 1,03] acpi0: fixed powe