Hi tech,
I had some success using Yamaha/Steinberg UR22 usb audio
interface box on OpenBSD/i386 6.0.
I heard that Linux supports the device but I never tested it under Linux.
I spent AUD $150 on the device last year and wondered if it could ever
be used with OpenBSD aucat(1).
The USB-quirks patch (below) allows UR22 to attach as uaudio device.
Patch was originally built against current kernel checked out a few days ago.
I've re-applied it against uaudio.c r1.115.
Regenerating usbdevs.h/usbdevs_data.h isn't included in patch.
I also own Creative Soundblaster X-Fi usb soundcard;
this worked on OpenBSD for some time but I wouldn't use it for recording.
Configuration:
* Test PC is "bios0: Compaq-Presario KJ335AA-ABG SR5490AN"
* UR22 audio input 1 connected to AKG P120 microphone via XLR cable
* UR22 audio input 2 connected to electric guitar via instrument cable
* Hi-Z toggle is enabled for input 2 on front panel
* +48V "phantom power" toggle is enabled for input 1 on back panel
* UR22 is attached directly to PC via USB cable (no intermediate hubs)
* label on front panel says "24-bit / 192 kHz"
* white "status" LED on front panel is solid (stops flashing when uaudio
attaches)
* no speakers attached to line output (L/R) on back panel
* i am listening to audio playback via headphone jack on front panel
* headphone jack is also used for monitoring audio inputs 1 & 2
Simple playback:
* "aucat -i stereo48khz.wav" plays file ok
Stereo record (default encoding of s16):
* aucat -r $RATE -o test.wav
...with the following rates: 44100 48000 64000 96000 112000 192000
* all recorded files play back ok
Stereo record (different encoding):
* i'm fairly sure i have recorded in 24-bit mode under M$ Windows 8
* aucat -r 44100 -e s24le3 -o test.wav # caused segmentation fault
* also tried aucat with "-h raw" but it still dies
* audioctl reports encoding=s24le3 so i am confused
* i need to compile non-stripped aucat to see more
Other tests performed:
* Two concurrent instances of aucat; one recording, one playing
* Two concurrent instances of aucat; both playing
* One instance of aucat (record+play): aucat -r 96000 -i in.wav -o out.wav
* One instance of aucat (play+play): aucat -i in.wav -i out.wav
TODO:
* re-test on another PC, and on amd64
* determine why aucat segfaults for 24bit encodings (above)
* test umidi with this device (attaches successfully on unmodified 6.0 kernel)
* phone grandmother with voip/sip software and play guitar down the line?
- Michael
Index: uaudio.c
===================================================================
RCS file: /cvs/src/sys/dev/usb/uaudio.c,v
retrieving revision 1.115
diff -u -r1.115 uaudio.c
--- uaudio.c 19 Sep 2016 06:46:44 -0000 1.115
+++ uaudio.c 22 Sep 2016 01:13:04 -0000
@@ -177,6 +177,8 @@
struct usb_devno uv_dev;
int flags;
} uaudio_devs[] = {
+ { { USB_VENDOR_YAMAHA, USB_PRODUCT_YAMAHA_UR22 },
+ UAUDIO_FLAG_VENDOR_CLASS },
{ { USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ADA70 },
UAUDIO_FLAG_BAD_ADC } ,
{ { USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ASC495 },
Index: usbdevs
===================================================================
RCS file: /cvs/src/sys/dev/usb/usbdevs,v
retrieving revision 1.669
diff -u -r1.669 usbdevs
--- usbdevs 21 Sep 2016 08:55:21 -0000 1.669
+++ usbdevs 22 Sep 2016 01:13:05 -0000
@@ -4443,6 +4443,7 @@
product YEDATA FLASHBUSTERU 0x0000 Flashbuster-U
/* Yamaha products */
+product YAMAHA UR22 0x1509 UR22
product YAMAHA UX256 0x1000 UX256 MIDI I/F
product YAMAHA UX96 0x1008 UX96 MIDI I/F
product YAMAHA RPU200 0x3104 RP-U200