On Sun, 19 Oct 2003, Frank Barknecht wrote:
> Hallo,
> Mark Constable hat gesagt: // Mark Constable wrote:
>
> > On Sun, 19 Oct 2003 05:21 am, Bob Rossi wrote:
> > > ...
> > > Does anyone know how to get OSS applications to use the aoss wrapper
> > > with dmix in order to get software mixing to work?
> > >
> > > Any help would be really appreciated. Does using dmix allow multiple
> > > applications to open /dev/dsp?
> > >
> > > What about /dev/mixer?
> > >
> > > It would be extremely helpfull to see a full example of how to set this
> > > up. I don't think there is such an example on the web.
> >
> > Sorry I can't help with your question but if anyone can come
> > up with a working example could they please please please put
> > the info on the Wiki at http://alsa.opensrc.org for the rest
> > of us. Thanks heaps.
>
> I don't want to put half tested things up there, but if some people
> could try the following:
>
> 1) Install aoss, alsaplayer, mpg123(rsp. mpg321)
>
> 2) Test basic dmix on alsa with:
>
> alsaplayer -o alsa -d plug:dmix some.mp3 &
> aplay -D plug:dmix some.wav &
> alsaplayer -o alsa -d plug:dmix some.mp3 &
>
> This should work everywhere with ALSA 0.9.7.
>
> 3) configure asoundrc for aoss-testing:
>
> # ~/.asoundrc:
>
> pcm.dsp0 {
> type plug
> slave.pcm "hw:0"
> }
> # or:
> # pcm.dsp0 pcm.default
> # if "default" hasn't been redefined
>
> ctl.mixer0 {
> type hw
> card 0
> }
>
> 4) Test aoss with mpg123 in oss mode:
>
> aoss mpg123 some.mp3
>
> This should play the file, but not yet "dmix"ed.
>
> Now comes the tricky and rather difficult part: redefinig dsp0 to be
> some kind of dmix.
>
> 5) The simple approach:
>
> # ~/.asoundrc
> pcm.dsp0 {
> type plug
> slave.pcm "dmix"
> }
> # mixer0 can stay unchanged, because it isn't used anyway, I guess
> # ;)
> ctl.mixer0 {
> type hw
> card 0
> }
>
> Test this setup with mpg123 like under 4). This should enable dmixed
> OSS playback, but it will not work on cards like the M-Audio
> Audiophile or other Delta cards, that need a certain audio data format
> for playback on hw:0 (which dmix uses by default).
>
> 6) The complex approach (defining dmix parameters)
>
> Because of the format conversion we need to create a custom dmix
> device. I call it ossmix.
>
>
> pcm.ossmix {
> type dmix
> ipc_key 1024 # must be unique!
> slave {
> pcm "hw:0,0" # you cannot use a "plug"
> device
> # here, darn.
> period_time 0
> period_size 1024 # must be power of 2
> buffer_size 8192 # dito.
> #format "S32_LE"
> #periods 128 # dito.
> #rate 8000 # with rate 8000 you *will*
> hear,
> # if ossmix is used :)
> }
> # bindings are not actually needed:
> # bindings {
> # 0 0
> # 1 1
> # }
> }
>
> pcm.dsp0 {
> type plug
> slave.pcm "ossmix" # use our new PCM here
> }
> # mixer0 like above
> ctl.mixer0 {
> type hw
> card 0
> }
>
>
>
> It is important, that this "ossmix" PCM works with your card in ALSA
> mode. That is, the following should produce sound:
>
> alsaplayer -o alsa -d ossmix some.mp3
>
> It does not do so here, yet:
>
> $ alsaplayer -d ossmix
> error on set_format SND_PCM_FORMAT_S16_LE
> Unavailable hw params:
> ACCESS: RW_INTERLEAVED
> FORMAT: S32_LE
> SUBFORMAT: ALL
> SAMPLE_BITS: ALL
> FRAME_BITS: ALL
> CHANNELS: 2
> RATE: 48000
> PERIOD_TIME: (21333 21334)
> PERIOD_SIZE: 1024
> PERIOD_BYTES: ALL
> PERIODS: (6 7)
> BUFFER_TIME: (136520 136521)
> BUFFER_SIZE: 6553
You see it. The maximum buffer size for your case (ICE1712 chip) is 6553
frames (262144 bytes / 4 (bytes per 32-bit sample) / 10 (playback
channels)). So you should define the buffer_size to next lower value which
matches power of two rule (and it's 4192).
> BUFFER_BYTES: ALL
> TICK_TIME: ALL
>
> What *does* work, however, is this:
>
> alsaplayer -o alsa -d plug:ossmix some.mp3
Sure, ALSA applications are not restricted with the power of two
constraint.
Jaroslav
-----
Jaroslav Kysela <[EMAIL PROTECTED]>
Linux Kernel Sound Maintainer
ALSA Project, SuSE Labs
-------------------------------------------------------
This SF.net email sponsored by: Enterprise Linux Forum Conference & Expo
The Event For Linux Datacenter Solutions & Strategies in The Enterprise
Linux in the Boardroom; in the Front Office; & in the Server Room
http://www.enterpriselinuxforum.com
_______________________________________________
Alsa-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-user