Re: [ecasound] new card, new troubles (midiman delta 44)

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [ecasound] new card, new troubles (midiman delta 44)
From: Kai Vehmanen (k_AT_eca.cx)
Date: Sun Jan 20 2002 - 15:51:44 EET


On Sun, 20 Jan 2002, Anthony wrote:

>> # ecasound -i:test.wav -f:s32_le,10,44100,i -o:alsahw,0,0
>> I get stereo output in the first two channels. In the third I'm getting
>> some serious noise - rapid clicking. If I up the rate, the clicking
> Well I can't seem to reproduce this today...so not a problem anymore ;)

That's good to hear. ;) Anyway, there are some situations, when
unused/free channels can produce noise. I've fixed these issues in 2.1dev6
while cleaning up the audio buffering code. And even with 2.0.x versions,
as it only affect unused channels, this bug is just annoying.

For instance in the above command:

ecasound -i:test.wav -f:s32_le,10,44100,i -o:alsahw,0,0

... if test.wav has only 2 channels, ecasound has to fill the other 8
channels with something. In some cases this something is not silence. In
2.1dev6 I've made sure that in all possible cases newly created channels
are always muted before use.

You can easily get around this bug by taking the additional channels into
use. For instance:

ecasound -i:test.wav -erc:1,3 -erc:2,4 -f:s32_le,10,44100,i -o:alsahw,0,0

... copies audio from channel 1 to 3, and from 2 to 4.

>> will dissapear after a few seconds. Of less importance I'd like to be
>> able to use the plugin layer. This fails:
> My solution to this was to add a conversion plugin to .asoundrc:

With ALSA 0.9, ecasound's '-o:alsaplugin,0' is equivalent to
'-o:alsa,plug:0' (similarly 'alsahw,0' -> 'alsa,hw:0'). It seems that with
recent 0.9 versions, 'alsa,plug:0' doesn't work anymore. 'alsa,hwplug:0'
still seems to work, so maybe I should change this.

Anyway, one ALSA plugin device is always defined and that's the 'default'
device. So if you want to use the ALSA plugin layer, just use
'-o:alsa,default'.

> pcm.dplug {
> type plug
> slave {
> pcm delta
> }
> route_policy copy
> }
[...]
> # ecasound -i:test.wav -o:alsa,dplug
[...]
> Is this the correct solution to avoid specifying format lines? Will this

Yup. You should get the same behaviour with '-o:alsa,default'.

> work on any input format? As I understand this, alsa is taking care of any
> conversion between 'dplug' -> 'delta' automagically. Thanks.

Yes. When using an ALSA plugin device, ALSA takes care of all necessary
audio format conversions (sample format, interleaving, channels, but not
sample rate). On the other hand, using the plugin layer is not stricly
needed, as ecasound can do all the conversions ALSA can. For instance, if
your soundcard only accepts noninterleaved, 32bit, 10ch, 44100Hz
audio...

ecasound -i something.wav -f:s32,10,44100,n -o alsa,hw:0

.. and no conversion is needed. This somewhat more efficient than using
the ALSA plugin layer, as ecasound does one conversion (from internal to
output format) in any case. So why not convert to the right format right
away.

-- 
 http://www.eca.cx
 Audio software for Linux!

-- To unsubscribe send message 'unsubscribe' in the body of the message to <ecasound-list-request_AT_wakkanet.fi>.


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Sun Jan 20 2002 - 15:44:07 EET