On Wednesday 16 July 2008 13:01, Alan Horstmann wrote: > On Wednesday 16 July 2008 12:22, Alan Horstmann wrote: > > On Wednesday 16 July 2008 00:15, you wrote: > > > At Mon, 7 Jul 2008 14:53:35 +0100, > > (snip) > > > > Well, I'd call it's a hardware "feature". No other hardwares do like > > > that. > > > > > > As a workaround, we'll need to put zero'ed short samples before > > > actually stopping the stream. > > > > > > I wonder whether this also occurs to pause operation, too. In the > > > case of pause, it's a tougher problem... > > > > Thanks for the response on this one. I'm not sure how to test pause, > > unless xmms uses that for 'PAUSE' button action, when the same effect is > > seen. > > > > I did try setting various values for silence threshold and size, and when > > (as per the original test) writing 1 period of sine followed by a 2nd > > writei of experimental data, silence values could be found that would > > eliminate the 'sustain effect'. However, when only the single period > > writei occured I could not find any effective values. > > > > Unsurprisingly, my other ice1712 card, ST Audio /Hoontech DSP2000 shows > > the same effect, so if it is a 'hardware feature' it presumably relates > > to the way the envy24 chip operates? > > > > How would I go about experimenting with zeroing the stream just before > > stopping? Do you mean in _pro_trigger()? > > Further info, I noticed in the envy24 datasheet, (rev 2.2 1.03.00) p 4-24 > states (near bottom of page) > > '... when DMAs are stopped, the last latched value is retained. This "DC" > value ...' > > so you were right about 'hardware feature'! Perhaps I should mention now another odd effect I am getting on this card. Using the same pcm.c test code, if after writei() 1 period of sine I write, say 1/3 period from a zeroed samples area, what I see is 1 period of sine followed by 1/3 period of zero, then 2/3 period of sine, apparently appearing out of nowhere. (Presumably from the sound buffers somewhere). This suggests to me that the pcm system, once started, is always transfering a full period, even if there is not a full period of new data. Is this possible or to be expected, or another feature of the hardware? In other cases where I simply writei() less than 1 period of data I see phantom garbage following on to a complete period size. How can I trace this further, as it is deeper than my present Alsa knowledge (apart from the slow process of learning of course!). Thanks Alan _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel