
Today I received a new toy: a brand new Alesis IO|2 device. It's a USB audio device with two microphone/line/guitar inputs (with insert plugs), MIDI in and out, 2 output channels and a headphone connector. The device is completely powered by the USB port and seems quite robust (haven't tested throwing it at the ground - and won't do that anytime soon
). It seems to be good for low latency setups: A simple test with jack connecting input and output, and speaking into a microphone made it feel almost like plugging the microphone directly into the mixer connected to the amp.
Getting it to work with Linux was painless, except for one caveat: The device only does 24bit, no 16bit or even 8... That means, most programs won't work with it. Only jackd opens the device without throwing errors.
Since I wanted to test other programs with the device I started playing with the ~/.asoundrc file. With a simple trick, ALSA can automatically convert 16Bit audio data to 24Bit:
pcm.io2 {
type hw
card io2
}
ctl.io2 {
type hw
card io2
}
pcm.intel {
type hw
card I82801CAICH3
}
ctl.intel {
type hw
card I82801CAICH3
}
pcm.!default {
type plug
slave {
pcm io2
format S24_3LE
}
}
The important part is the !default clause that defines the conversion to S24_3LE (omitting the format statement works as well - seems like ALSA knows the right format to use in that case).
I tried the ALSA softvol plugin (as the device has no mixing controls) but didn't succeed. Dmix also seems to be only supported for S16 and S32 hardware, so no dmix... But aRts, mplayer, ogg123, xine and of course jackd work without problems now.
Update:
There seem to be problems - either in aRts or in the ALSA format converter. After some time the music turns into static. Not nice
Now testing with JuK directly outputting using aKode...