All of lore.kernel.org
 help / color / mirror / Atom feed
* dmix plugin problems -- Resend
@ 2003-05-26 22:28 Nathaniel Gray
  2003-05-26 23:48 ` David E. Storey
  0 siblings, 1 reply; 3+ messages in thread
From: Nathaniel Gray @ 2003-05-26 22:28 UTC (permalink / raw)
  To: alsa-devel

I'm sending this again since I got no response the first time and dmix 
does not appear to be under heavy development, despite how incredibly 
useful it would be if it worked.

[n8gray@golux alsa-lib-0.9.3]$ cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 0.9.3a.
Compiled on May  9 2003 for kernel 2.4.21-0.16mm-mdkcustom.
Using alsa-libs 0.9.3.

The dmix plugin seems to be very unreliable, or else maybe I'm not 
setting it up correctly.  Here's my asoundrc:
=================== .asoundrc ===================
pcm.intel8x0 {
   type hw
   card 0
}

ctl.intel8x0 {
   type hw
   card 0
}

pcm.mydmix {
    type dmix
    ipc_key 12349
    ipc_key_add_uid true
    slave {
        pcm "hw:0,0"
        # Setting this rate to 44100 seems to help
        rate 44100
    }
}

ctl.mydmix {
    type hw
    card 0
}

pcm.mixed {
    type plug
    slave {
       pcm mydmix
    }
}

ctl.mixed {
    type hw
    card 0
}
=================================================

If I run this command nothing happens:
[n8gray@golux sounds]$ aplay -D mixed KDE_Beep_ClockChime.wav
Playing WAVE 'KDE_Beep_ClockChime.wav' : Unsigned 8 bit, Rate 7418 Hz, 
Mono

I get no sound, no error, aplay uses no cpu time.  Here's the tail end 
of the same command under strace:
open("KDE_Beep_ClockChime.wav", O_RDONLY) = 5
read(5, "RIFF\256\17\0\0WAVEfmt \20\0\0\0\1\0\1\0", 24) = 24
read(5, "\372\34", 2)                   = 2
read(5, "\0\0\372\34\0\0\1\0\10\0", 10) = 10
read(5, "data\212\17\0\0", 8)           = 8
write(2, "Playing WAVE \'KDE_Beep_ClockChim"..., 41Playing WAVE 
'KDE_Beep_ClockChime.wav' : ) = 41
write(2, "Unsigned 8 bit, ", 16Unsigned 8 bit, )        = 16
write(2, "Rate 7418 Hz, ", 14Rate 7418 Hz, )          = 14
write(2, "Mono", 4Mono)                     = 4
write(2, "\n", 1
)                       = 1
shmget(IPC_PRIVATE, 49152, 0x1b6|0666)  = 10747908
shmat(10747908, 0, 0)                   = 0x40274000
shmget(IPC_PRIVATE, 12288, 0x1b6|0666)  = 10780677
shmat(10780677, 0, 0)                   = 0x40023000
read(5, "G\214j\313\267hqG\234\250Yn;\206\274[e=t\305\207\217FM"..., 
927) = 927
read(5, "\206\177U\217\214\207\211S\201\215\211\231[p\204\201\242"..., 
927) = 927
poll([at this point the program just hangs]

If I run this command it completes but I get no sound output:
[n8gray@golux sounds]$ aplay -D mixed pop.wav
Playing WAVE 'pop.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, 
Mono

The same file plays properly (with sound) if I leave out the "-D mixed" 
flag.  This command, however, works perfectly:
[n8gray@golux sounds]$ aplay -D mixed info.wav
Playing WAVE 'info.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, 
Mono

If I actually try to mix two streams, though, I get xruns and cracks in 
the sound:
[n8gray@golux sounds]$ aplay -D mixed info.wav & aplay -D mixed info.wav
[1] 12952
Playing WAVE 'info.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, 
Mono
Playing WAVE 'info.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, 
Mono
xrun!!! (at least 0.030 ms long)
xrun!!! (at least 0.008 ms long)
[1]+  Done                    aplay -D mixed info.wav

I've tried this experiment with long sounds to try to eliminate any 
startup inefficiency, but the cracks last as long as the streams are 
being mixed.

I'll be glad to help debug in any way I can.  I've tried using the C 
versions of mix_areas1 and mix_areas2 and it doesn't help any of these 
problems.

Thanks,
-Nathan
-- 
>>>-- Nathaniel Gray -- Caltech Computer Science ------>
>>>-- Mojave Project -- http://mojave.cs.caltech.edu -->




-------------------------------------------------------
This SF.net email is sponsored by: ObjectStore.
If flattening out C++ or Java code to make your application fit in a
relational database is painful, don't do it! Check out ObjectStore.
Now part of Progress Software. http://www.objectstore.net/sourceforge

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: dmix plugin problems -- Resend
  2003-05-26 22:28 dmix plugin problems -- Resend Nathaniel Gray
@ 2003-05-26 23:48 ` David E. Storey
  2003-05-27  4:16   ` Nathaniel Gray
  0 siblings, 1 reply; 3+ messages in thread
From: David E. Storey @ 2003-05-26 23:48 UTC (permalink / raw)
  To: Nathaniel Gray; +Cc: alsa

[-- Attachment #1: Type: text/plain, Size: 4693 bytes --]

nice. Your config just helped me make it work for me. I too have an
intel8x0. (I also have some other gear, but in essence I can use
alsaplayer and xmms on my intel8x0 simultaneously.) Not being an expert
in .asound voodoo, I would say that yours is a bit more complicated than
it needs to be. Without changing your .asound file, have you tried:

aplay -D mydmix test.wav

?

The only other difference is that I don't have rate 44100. It is my
understanding that the intel8x0 is locked at 48000 for the hardware I
have. My only gripe with dmix now is normalization. All the music I have
is normalized and when I sum that up, it distorts, so I have to be
careful. Also, jack doesn't like dmix. For starters, dmix is for
playback only. Would be nice to be able to create a composite device
that had dmix and dsnoop.... wait... that's jack! ;-)

d!

On Mon, 2003-05-26 at 18:28, Nathaniel Gray wrote:
> I'm sending this again since I got no response the first time and dmix 
> does not appear to be under heavy development, despite how incredibly 
> useful it would be if it worked.
> 
> [n8gray@golux alsa-lib-0.9.3]$ cat /proc/asound/version
> Advanced Linux Sound Architecture Driver Version 0.9.3a.
> Compiled on May  9 2003 for kernel 2.4.21-0.16mm-mdkcustom.
> Using alsa-libs 0.9.3.
> 
> The dmix plugin seems to be very unreliable, or else maybe I'm not 
> setting it up correctly.  Here's my asoundrc:
> =================== .asoundrc ===================
> pcm.intel8x0 {
>    type hw
>    card 0
> }
> 
> ctl.intel8x0 {
>    type hw
>    card 0
> }
> 
> pcm.mydmix {
>     type dmix
>     ipc_key 12349
>     ipc_key_add_uid true
>     slave {
>         pcm "hw:0,0"
>         # Setting this rate to 44100 seems to help
>         rate 44100
>     }
> }
> 
> ctl.mydmix {
>     type hw
>     card 0
> }
> 
> pcm.mixed {
>     type plug
>     slave {
>        pcm mydmix
>     }
> }
> 
> ctl.mixed {
>     type hw
>     card 0
> }
> =================================================
> 
> If I run this command nothing happens:
> [n8gray@golux sounds]$ aplay -D mixed KDE_Beep_ClockChime.wav
> Playing WAVE 'KDE_Beep_ClockChime.wav' : Unsigned 8 bit, Rate 7418 Hz, 
> Mono
> 
> I get no sound, no error, aplay uses no cpu time.  Here's the tail end 
> of the same command under strace:
> open("KDE_Beep_ClockChime.wav", O_RDONLY) = 5
> read(5, "RIFF\256\17\0\0WAVEfmt \20\0\0\0\1\0\1\0", 24) = 24
> read(5, "\372\34", 2)                   = 2
> read(5, "\0\0\372\34\0\0\1\0\10\0", 10) = 10
> read(5, "data\212\17\0\0", 8)           = 8
> write(2, "Playing WAVE \'KDE_Beep_ClockChim"..., 41Playing WAVE 
> 'KDE_Beep_ClockChime.wav' : ) = 41
> write(2, "Unsigned 8 bit, ", 16Unsigned 8 bit, )        = 16
> write(2, "Rate 7418 Hz, ", 14Rate 7418 Hz, )          = 14
> write(2, "Mono", 4Mono)                     = 4
> write(2, "\n", 1
> )                       = 1
> shmget(IPC_PRIVATE, 49152, 0x1b6|0666)  = 10747908
> shmat(10747908, 0, 0)                   = 0x40274000
> shmget(IPC_PRIVATE, 12288, 0x1b6|0666)  = 10780677
> shmat(10780677, 0, 0)                   = 0x40023000
> read(5, "G\214j\313\267hqG\234\250Yn;\206\274[e=t\305\207\217FM"..., 
> 927) = 927
> read(5, "\206\177U\217\214\207\211S\201\215\211\231[p\204\201\242"..., 
> 927) = 927
> poll([at this point the program just hangs]
> 
> If I run this command it completes but I get no sound output:
> [n8gray@golux sounds]$ aplay -D mixed pop.wav
> Playing WAVE 'pop.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, 
> Mono
> 
> The same file plays properly (with sound) if I leave out the "-D mixed" 
> flag.  This command, however, works perfectly:
> [n8gray@golux sounds]$ aplay -D mixed info.wav
> Playing WAVE 'info.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, 
> Mono
> 
> If I actually try to mix two streams, though, I get xruns and cracks in 
> the sound:
> [n8gray@golux sounds]$ aplay -D mixed info.wav & aplay -D mixed info.wav
> [1] 12952
> Playing WAVE 'info.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, 
> Mono
> Playing WAVE 'info.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, 
> Mono
> xrun!!! (at least 0.030 ms long)
> xrun!!! (at least 0.008 ms long)
> [1]+  Done                    aplay -D mixed info.wav
> 
> I've tried this experiment with long sounds to try to eliminate any 
> startup inefficiency, but the cracks last as long as the streams are 
> being mixed.
> 
> I'll be glad to help debug in any way I can.  I've tried using the C 
> versions of mix_areas1 and mix_areas2 and it doesn't help any of these 
> problems.
> 
> Thanks,
> -Nathan

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: dmix plugin problems -- Resend
  2003-05-26 23:48 ` David E. Storey
@ 2003-05-27  4:16   ` Nathaniel Gray
  0 siblings, 0 replies; 3+ messages in thread
From: Nathaniel Gray @ 2003-05-27  4:16 UTC (permalink / raw)
  To: David E. Storey; +Cc: alsa

On Monday 26 May 2003 04:48 pm, David E. Storey wrote:
> nice. Your config just helped me make it work for me. I too have an
> intel8x0. (I also have some other gear, but in essence I can use
> alsaplayer and xmms on my intel8x0 simultaneously.) Not being an
> expert in .asound voodoo, I would say that yours is a bit more
> complicated than it needs to be. Without changing your .asound file,
> have you tried:
>
> aplay -D mydmix test.wav

I'm pretty sure that will only work if the sample you're playing is at 
the "correct" rate.  In other words, dmix doesn't do any resampling, so 
if you try to play a file that has the wrong rate you'll get problems.  
That's the reason for the extra layer with the "plug" plugin -- it does 
rate conversion.

> The only other difference is that I don't have rate 44100. It is my
> understanding that the intel8x0 is locked at 48000 for the hardware I
> have. 

Certain files play with the "rate 44100" line and others don't, but more 
play with it than without it.  I'd recommend testing it with the KDE_* 
files in /usr/share/sounds if you have KDE installed.  They have lots 
of funky sampling rates that aplay seems to choke on.

-- 
>>>-- Nathaniel Gray -- Caltech Computer Science ------>
>>>-- Mojave Project -- http://mojave.cs.caltech.edu -->



-------------------------------------------------------
This SF.net email is sponsored by: ObjectStore.
If flattening out C++ or Java code to make your application fit in a
relational database is painful, don't do it! Check out ObjectStore.
Now part of Progress Software. http://www.objectstore.net/sourceforge

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-05-27  4:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-05-26 22:28 dmix plugin problems -- Resend Nathaniel Gray
2003-05-26 23:48 ` David E. Storey
2003-05-27  4:16   ` Nathaniel Gray

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.