* dmix produces garbled sound on ARM
@ 2016-06-09 11:38 Ihar Filipau
2016-06-09 13:01 ` Takashi Iwai
0 siblings, 1 reply; 8+ messages in thread
From: Ihar Filipau @ 2016-06-09 11:38 UTC (permalink / raw)
To: alsa-devel
Hi All!
When using the dmix on ARM, the sound comes out garbled, with as if
overlapping, increasing-in-number echoes. That happens even with a
single aplay instance.
In a forum discussion, it was suggested that ARM lacks optimized dmix
implementation. But that implies that the generic dmix code is broken,
since it is what is used on ARM/etc, but not on i386/amd64. (The forum
discussion about my particular issue:
http://unix.stackexchange.com/questions/288451/sound-corruption-echo-when-trying-to-use-alsa-dmix
)
Does anybody has any suggestions how to fix/avoid the dmix issue on ARM?
Thanks.
P.S. Versions: Linux v3.18.24, alsa-lib/-utils v1.0.29. The hardware:
FreeScale i.MX35 (ARM1136) with SGTL5000 sound chip (used in 48KHz
mode).
P.P.S. The generic code has outdated functions for the "concurrent"
implementation with cmpxchg. The code probably could be updated, and
revised to use the C11's stdatomic.h when available.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: dmix produces garbled sound on ARM
2016-06-09 11:38 dmix produces garbled sound on ARM Ihar Filipau
@ 2016-06-09 13:01 ` Takashi Iwai
2016-06-09 13:17 ` Ihar Filipau
0 siblings, 1 reply; 8+ messages in thread
From: Takashi Iwai @ 2016-06-09 13:01 UTC (permalink / raw)
To: Ihar Filipau; +Cc: alsa-devel
On Thu, 09 Jun 2016 13:38:19 +0200,
Ihar Filipau wrote:
>
> Hi All!
>
> When using the dmix on ARM, the sound comes out garbled, with as if
> overlapping, increasing-in-number echoes. That happens even with a
> single aplay instance.
>
> In a forum discussion, it was suggested that ARM lacks optimized dmix
> implementation. But that implies that the generic dmix code is broken,
> since it is what is used on ARM/etc, but not on i386/amd64. (The forum
> discussion about my particular issue:
> http://unix.stackexchange.com/questions/288451/sound-corruption-echo-when-trying-to-use-alsa-dmix
> )
>
> Does anybody has any suggestions how to fix/avoid the dmix issue on ARM?
>
> Thanks.
>
> P.S. Versions: Linux v3.18.24, alsa-lib/-utils v1.0.29. The hardware:
> FreeScale i.MX35 (ARM1136) with SGTL5000 sound chip (used in 48KHz
> mode).
>
> P.P.S. The generic code has outdated functions for the "concurrent"
> implementation with cmpxchg. The code probably could be updated, and
> revised to use the C11's stdatomic.h when available.
This is likely the cache coherency issue. For example, the generic
dmix code works fine on x86-64 if I modify the ifdef condition (I
tested now).
I suppose the mmap support is broken with your device / driver.
Does "aplay -Dhw -M --period-size=1024 somefile.wav" work? This
should show a similar problem.
Takashi
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: dmix produces garbled sound on ARM
2016-06-09 13:01 ` Takashi Iwai
@ 2016-06-09 13:17 ` Ihar Filipau
2016-06-09 13:25 ` Takashi Iwai
0 siblings, 1 reply; 8+ messages in thread
From: Ihar Filipau @ 2016-06-09 13:17 UTC (permalink / raw)
To: Takashi Iwai; +Cc: alsa-devel
On 6/9/16, Takashi Iwai <tiwai@suse.de> wrote:
> On Thu, 09 Jun 2016 13:38:19 +0200,
> Ihar Filipau wrote:
>>
>> Hi All!
>>
>> When using the dmix on ARM, the sound comes out garbled, with as if
>> overlapping, increasing-in-number echoes. That happens even with a
>> single aplay instance.
>>
>> In a forum discussion, it was suggested that ARM lacks optimized dmix
>> implementation. But that implies that the generic dmix code is broken,
>> since it is what is used on ARM/etc, but not on i386/amd64. (The forum
>> discussion about my particular issue:
>> http://unix.stackexchange.com/questions/288451/sound-corruption-echo-when-trying-to-use-alsa-dmix
>> )
>>
>> Does anybody has any suggestions how to fix/avoid the dmix issue on ARM?
>
> This is likely the cache coherency issue. For example, the generic
> dmix code works fine on x86-64 if I modify the ifdef condition (I
> tested now).
>
Thanks for the test!
> I suppose the mmap support is broken with your device / driver.
> Does "aplay -Dhw -M --period-size=1024 somefile.wav" work? This
> should show a similar problem.
>
The command plays the audio perfectly well.
The hardware works, and it worked for quite some time now. But
apparently it doesn't support the hardware mixing (I'm not even sure
how to check that, found no documentation) while now we need the audio
playback from two applications. The second applications gets -EBUSY
when trying to open the "default" pcm. I have tried the 'dmix' - e.g.
"aplay -Dplug:dmix somefile.wav" . With that I can open the pcm
multiple times - "for X in 1 2 3 4; do aplay -Dplug:dmix somefile.wav
& ; done" - but the sound is garbled, whether it is a single aplay or
multiple aplays.
Is there any other way I can debug/trace the alsa to shed light on the
problem I'm having?
Thanks.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: dmix produces garbled sound on ARM
2016-06-09 13:17 ` Ihar Filipau
@ 2016-06-09 13:25 ` Takashi Iwai
[not found] ` <CAD08gxKw2UK9JJ80Pp5icxLC_k-8dGykhHd3DbUvjPJXUGzVtQ@mail.gmail.com>
0 siblings, 1 reply; 8+ messages in thread
From: Takashi Iwai @ 2016-06-09 13:25 UTC (permalink / raw)
To: Ihar Filipau; +Cc: alsa-devel
On Thu, 09 Jun 2016 15:17:53 +0200,
Ihar Filipau wrote:
>
> On 6/9/16, Takashi Iwai <tiwai@suse.de> wrote:
> > On Thu, 09 Jun 2016 13:38:19 +0200,
> > Ihar Filipau wrote:
> >>
> >> Hi All!
> >>
> >> When using the dmix on ARM, the sound comes out garbled, with as if
> >> overlapping, increasing-in-number echoes. That happens even with a
> >> single aplay instance.
> >>
> >> In a forum discussion, it was suggested that ARM lacks optimized dmix
> >> implementation. But that implies that the generic dmix code is broken,
> >> since it is what is used on ARM/etc, but not on i386/amd64. (The forum
> >> discussion about my particular issue:
> >> http://unix.stackexchange.com/questions/288451/sound-corruption-echo-when-trying-to-use-alsa-dmix
> >> )
> >>
> >> Does anybody has any suggestions how to fix/avoid the dmix issue on ARM?
> >
> > This is likely the cache coherency issue. For example, the generic
> > dmix code works fine on x86-64 if I modify the ifdef condition (I
> > tested now).
> >
>
> Thanks for the test!
>
> > I suppose the mmap support is broken with your device / driver.
> > Does "aplay -Dhw -M --period-size=1024 somefile.wav" work? This
> > should show a similar problem.
> >
>
> The command plays the audio perfectly well.
Hm, then try to adjust all parameters as same as dmix slave PCM.
As default, dmix slave PCM takes 16 x 1024 frames periods, S16_LE
format.
> The hardware works, and it worked for quite some time now. But
> apparently it doesn't support the hardware mixing (I'm not even sure
> how to check that, found no documentation) while now we need the audio
> playback from two applications. The second applications gets -EBUSY
> when trying to open the "default" pcm. I have tried the 'dmix' - e.g.
> "aplay -Dplug:dmix somefile.wav" . With that I can open the pcm
> multiple times - "for X in 1 2 3 4; do aplay -Dplug:dmix somefile.wav
> & ; done" - but the sound is garbled, whether it is a single aplay or
> multiple aplays.
>
> Is there any other way I can debug/trace the alsa to shed light on the
> problem I'm having?
If the hw works and dmix doesn't even with the very same parameters
for a single stream, it can be in the update timing. But it's
doubtful, as basically dmix slave is freewheeling...
Takashi
>
> Thanks.
>
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2016-06-13 14:04 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-09 11:38 dmix produces garbled sound on ARM Ihar Filipau
2016-06-09 13:01 ` Takashi Iwai
2016-06-09 13:17 ` Ihar Filipau
2016-06-09 13:25 ` Takashi Iwai
[not found] ` <CAD08gxKw2UK9JJ80Pp5icxLC_k-8dGykhHd3DbUvjPJXUGzVtQ@mail.gmail.com>
[not found] ` <s5hporqe5r2.wl-tiwai@suse.de>
2016-06-10 12:06 ` Ihar Filipau
2016-06-13 12:32 ` Ihar Filipau
2016-06-13 12:42 ` Takashi Iwai
2016-06-13 14:04 ` Ihar Filipau
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.