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