On Tue, 3 Feb 2004, Stephen Stocker wrote: > On Tue, 3 Feb 2004, Jaroslav Kysela wrote: > > > On Tue, 3 Feb 2004, Stephen Stocker wrote: > > > > > Hi, > > > > > > I've just got a Soundblaster 16 (Vibra16C, isapnp). Sure seems like > > > something about it's wrong, although it'll record/play S16_LE at 44.1 kHZ > > > maximum. The computer's an old 200MHz Pentium MMX, running Slackware, if > > > that helps. > > > > > > Really, it's a small issue, but it'd be so great to figure out how to do > > > this without ESD or whatever. Thanks again. > > > > At first: Set "16-bit DMA Allocation" to "Playback" using alsamixer or > > amixer. It will force the playback to use the 16-bit sample resolution. > > > > The other stream (capture) will have only 8-bit resolution (it's > > limitation of hardware). Then add 'format U8' to your dsnoop pcm > > definition (slave.pcm section) to inform the dsnoop plugin to use the > > 8-bit capture stream. > > > > Jaroslav > > That's it, and I should've thought of it. I've still got an error, > because dsnoop doesn't support 8-bit, but I understand that!
Oops. It was typo in our sources. dsnoop support all PCM formats, but dmix is restricted to s16 and s32 formats. > $ arecord -Dduplex test.wav > ALSA lib pcm_dsnoop.c:843:(_snd_pcm_dsnoop_open) invalid format, specify s16 or > s32 > arecord: main:502: audio open error: Invalid argument This is wrong. Thank you for this report. This patch should fix it: Index: pcm_dmix.c =================================================================== RCS file: /cvsroot/alsa/alsa-lib/src/pcm/pcm_dmix.c,v retrieving revision 1.50 diff -u -r1.50 pcm_dmix.c --- pcm_dmix.c 24 Jan 2004 16:35:11 -0000 1.50 +++ pcm_dmix.c 3 Feb 2004 14:42:23 -0000 @@ -1215,6 +1215,14 @@ if (err < 0) return err; + /* sorry, limited features */ + if (params.format != SND_PCM_FORMAT_S16 && + params.format != SND_PCM_FORMAT_S32) { + SNDERR("invalid format, specify s16 or s32"); + snd_config_delete(sconf); + return -EINVAL; + } + params.period_size = psize; params.buffer_size = bsize; Index: pcm_dsnoop.c =================================================================== RCS file: /cvsroot/alsa/alsa-lib/src/pcm/pcm_dsnoop.c,v retrieving revision 1.15 diff -u -r1.15 pcm_dsnoop.c --- pcm_dsnoop.c 23 Jan 2004 13:05:20 -0000 1.15 +++ pcm_dsnoop.c 3 Feb 2004 14:42:23 -0000 @@ -837,14 +837,6 @@ if (err < 0) return err; - /* sorry, limited features */ - if (params.format != SND_PCM_FORMAT_S16 && - params.format != SND_PCM_FORMAT_S32) { - SNDERR("invalid format, specify s16 or s32"); - snd_config_delete(sconf); - return -EINVAL; - } - params.period_size = psize; params.buffer_size = bsize; err = snd_pcm_dsnoop_open(pcmp, name, ipc_key, ipc_perm, ¶ms, bindings, slowptr, root, sconf, stream, mode); Jaroslav ----- Jaroslav Kysela <[EMAIL PROTECTED]> Linux Kernel Sound Maintainer ALSA Project, SuSE Labs ------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn _______________________________________________ Alsa-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-user