[alsa-devel] SALSA and aplay
Takashi Iwai
tiwai at suse.de
Thu Jul 19 16:27:29 CEST 2007
At Thu, 19 Jul 2007 15:24:40 +0100,
John Rigg wrote:
>
> On Thu, Jul 19, 2007 at 11:33:32AM +0200, Takashi Iwai wrote:
> > At Wed, 18 Jul 2007 17:20:29 +0100,
> > Alan Horstmann wrote:
> > >
> > > On Wednesday 18 July 2007 16:01, Alan Horstmann wrote:
> > > > Yes and yes. Using "hw" gives the same wrong speed with -lasound, and
> > > > standard command-line aplay does also. Evidently I understand even less
> > > > than I thought. I had expected that with the card hardware set to 44100Hz
> > > > and locked, that playing a 44100Hz file would be straightforward. Maybe
> > > > the file is not right. I may have to pause testing for a few days now.
> > >
> > > Actually, I think I have an idea what is happening, but not why.
> > >
> > > aplay -v TMP/try3.wav
> > >
> > > Playing WAVE 'TMP/try3.wav' : Signed 32 bit Little Endian, Rate 44100 Hz,
> > > Channels 10
> > > Plug PCM: Rate conversion PCM (48000, sformat=S32_LE)
> > > Its setup is:
> > > stream : PLAYBACK
> > > access : RW_INTERLEAVED
> > > format : S32_LE
> > > subformat : STD
> > > channels : 10
> > > rate : 44100
> > > exact rate : 44100 (44100/1)
> > > msbits : 32
> > > buffer_size : 5644
> > > period_size : 940
> > > period_time : 21333
> > > tick_time : 0
> > > tstamp_mode : NONE
> > > period_step : 1
> > > sleep_min : 0
> > > avail_min : 940
> > > xfer_align : 940
> > > start_threshold : 5640
> > > stop_threshold : 5644
> > > silence_threshold: 0
> > > silence_size : 0
> > > boundary : 1479540736
> > > Slave: Direct Stream Mixing PCM
> > > Its setup is:
> > > stream : PLAYBACK
> > > access : MMAP_INTERLEAVED
> > > format : S32_LE
> > > subformat : STD
> > > channels : 10
> > > rate : 48000
> > > exact rate : 48000 (48000/1)
> > > msbits : 24
> > > buffer_size : 6144
> > > period_size : 1024
> > > period_time : 21333
> > > tick_time : 0
> > > tstamp_mode : NONE
> > > period_step : 1
> > > sleep_min : 0
> > > avail_min : 1024
> > > xfer_align : 1024
> > > start_threshold : 6144
> > > stop_threshold : 6144
> > > silence_threshold: 0
> > > silence_size : 0
> > > boundary : 1610612736
> > > Hardware PCM card 0 'TerraTec DMX6Fire' device 0 subdevice 0
> > > Its setup is:
> > > stream : PLAYBACK
> > > access : MMAP_INTERLEAVED
> > > format : S32_LE
> > > subformat : STD
> > > channels : 10
> > > rate : 48000
> > > exact rate : 48000 (48000/1)
> > > msbits : 24
> > > buffer_size : 6553
> > > period_size : 1024
> > > period_time : 21333
> > > tick_time : 1000
> > > tstamp_mode : NONE
> > > period_step : 1
> > > sleep_min : 0
> > > avail_min : 1024
> > > xfer_align : 1024
> > > start_threshold : 1
> > > stop_threshold : 1717829632
> > > silence_threshold: 0
> > > silence_size : 1717829632
> > > boundary : 1717829632
> > >
> > > It attempts to set the card to 48000, which fails since I have it locked!
> > > When I recorded the file the same was true, so from "default" the file plays
> > > back correct although it is in fact wrong, and plays wrong when imported into
> > > Audacity. The set-up listed above suggests to me that Alsa is rate
> > > converting to 48000 and Mmap'ing to the card. If correct, is that really
> > > necessary? I dislike any rate conversions on a serious recording system, and
> > > especially hidden ones. Is this a configuration issue that might have
> > > changed since, say, 1.0.10 or 1.0.12?
> >
> > The 48k-fixed rate is due to dmix plugin. It requires a fixed sample
> > rate for all apps. In theory, it may accept multiple rates, but the
> > feature is not implemented yet.
> >
> > You can change the default rate by overriding defaults.pcm.dmix.rate
> > config item, e.g. define the below in ~/.asoundrc:
> >
> > defaults.pcm.dmix.rate 44100
>
> Wouldn't it be better to specify hw:0 (or whatever card you are using)
> in this case? With this type of hardware I'd rather make sure that dmix
> isn't used at all (I assume that dmix is now the default instead of
> hw:0).
Well, you can claim that because you don't get bug reports or rants ;)
The only reason that plug+dmix is used is that it can handle most
cases without hitches. It works as it is. That's all above other
reasons.
Takashi
More information about the Alsa-devel
mailing list