Solved [Solved] Alesis iO4 and jackd

Hello,

I'm new to FreeBSD and I'd like to switch from Debian/Linux to FreeBSD for my little DAW. I have an Alesis iO4 USB soundcard, which works perfectly under Linux. But I can only use 2 channels under FreeBSD with Jack. Without any particular option when launching jackd with /usr/local/sbin/jackd -r -doss -C/dev/dsp1 -P/dev/dsp1 everything seems ok but I only have 2 channels, if I add -i4 -o4 sound seems to be downrated by a factor 2. I didn't made precise measure. Some info:

dmesg | grep uaudio
Code:
uaudio0: <iO4> on usbus2
uaudio0: Play: 44100 Hz, 4 ch, 16-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Record: 44100 Hz, 4 ch, 16-bit S-LE PCM format, 2x8ms buffer.
uaudio0: MIDI sequencer.
pcm1: <USB audio> on uaudio0
uaudio0: No HID volume keys found.

cat /dev/sndstat
Code:
FreeBSD Audio Driver (64bit 2009061500/amd64)
Installed devices:
pcm0: <Realtek ALC270 (Analog 2.0+HP/2.0)> on hdaa0  (1p:1v/1r:1v) default
	snddev flags=0x2e2<AUTOVCHAN,BUSY,MPSAFE,REGISTERED,VPC>
	[pcm0:play:dsp0.p0]: spd 48000, fmt 0x00200010, flags 0x00002100, 0x00000004
	interrupts 0, underruns 0, feed 0, ready 0 [b:4096/2048/2|bs:4096/2048/2]
	channel flags=0x2100<BUSY,HAS_VCHAN>
	{userland} -> feeder_mixer(0x00200010) -> {hardware}
	pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp0]: spd 8000, fmt 0x00100008, flags 0x10000000, 0x00000000
	interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
	channel flags=0x10000000<VIRTUAL>
	{userland} -> feeder_root(0x00000000) -> {hardware}
	[pcm0:record:dsp0.r0]: spd 48000, fmt 0x00200010, flags 0x00002100, 0x00000005
	interrupts 0, overruns 0, feed 0, hfree 4096, sfree 4096 [b:4096/2048/2|bs:4096/2048/2]
	channel flags=0x2100<BUSY,HAS_VCHAN>
	{hardware} -> feeder_root(0x00200010) -> feeder_mixer(0x00200010) -> {userland}
	pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr0]: spd 8000, fmt 0x00100008, flags 0x10000000, 0x00000000
	interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
	channel flags=0x10000000<VIRTUAL>
	{hardware} -> feeder_root(0x00000000) -> {userland}
pcm1: <USB audio> at ? kld snd_uaudio (1p:1v/1r:1v)
	snddev flags=0x2e6<AUTOVCHAN,SOFTPCMVOL,BUSY,MPSAFE,REGISTERED,VPC>
	[pcm1:play:dsp1.p0]: spd 44100, fmt 0x00200010/0x00400010, flags 0x00002100, 0x00000044
	interrupts 0, underruns 0, feed 0, ready 0 [b:5648/2824/2|bs:4096/2048/2]
	channel flags=0x2100<BUSY,HAS_VCHAN>
	{userland} -> feeder_mixer(0x00200010) -> feeder_matrix(2.0 -> 4.0) -> {hardware}
	pcm1:play:dsp1.p0[pcm1:virtual:dsp1.vp0]: spd 8000, fmt 0x00100008, flags 0x10000000, 0x00000000
	interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
	channel flags=0x10000000<VIRTUAL>
	{userland} -> feeder_root(0x00000000) -> {hardware}
	[pcm1:record:dsp1.r0]: spd 44100, fmt 0x00200010/0x00400010, flags 0x00002100, 0x00000045
	interrupts 0, overruns 0, feed 0, hfree 5648, sfree 4096 [b:5648/2824/2|bs:4096/2048/2]
	channel flags=0x2100<BUSY,HAS_VCHAN>
	{hardware} -> feeder_root(0x00400010) -> feeder_matrix(4.0 -> 2.0) -> feeder_mixer(0x00200010) -> {userland}
	pcm1:record:dsp1.r0[pcm1:virtual:dsp1.vr0]: spd 8000, fmt 0x00100008, flags 0x10000000, 0x00000000
	interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
	channel flags=0x10000000<VIRTUAL>
	{hardware} -> feeder_root(0x00000000) -> {userland}

I suspect the issue to be near feeder_matrix(2.0 -> 4.0) and feeder_matrix(4.0 -> 2.0). I tried many sysctl(8) with no success and I'm now a bit stuck about to do.

Any help? Thanks.
Vincent
 
I must have misdone something or misunderstood some error message during my first tries, but sysctl dev.pcm.1.[play,rec].vchanformat=s16le:4.0 does the trick. Sorry for the noise.
But, just by curiosity, I' d have two questions now:
- In 's16le' does 16 stand for 16 bits sample format, if so can it be changed?
- From the pcm(4) manpage, the highest format is s16le:7.1. Does that mean there can be only 8 channels simultaneously?
 
Back
Top