On 18/03/13 "Tim E. Real" <[email protected]> wrote: >On March 18, 2013 06:47:16 PM you wrote: > > > > >On Mon, Mar 18, 2013 at 5:50 PM, Tim E. Real <[email protected]> >wrote: > >Hi again. Looking for any advice, tips, tricks, anecdotes etc. > >I want to eliminate or reduce 'zipper' noise on volume changes. >So I'm looking at two techniques: >Zero-crossing / zero-value signal detection, and slew-rate limiting. >Code is almost done, almost ready to start testing each technique. >Each technique has some advantages and disadvantages. > >If I use a slew-rate limiter, I figure for a sudden volume factor >change > from 0.0 to 1.0, if I limit the slew rate to say 0.01 per sample then > after 100 samples the ramp will be done. >But even with a fine ramp, this still might introduce artifacts in the >audio. > > >You cannot avoid artifacts in the audio. The only question is what is >the nature of the artifacts. > > >If I use a zero-crossing/zero-value detector and apply volume changes > > >Zero crossing stuff is a completely bogus idea that needs to be >eliminated from the lexicon of audio software. You will not be >accomplishing anything trying to use such a technique, other than >introduce even more artifacts (and rather horrendous ones at that). >Even zero-valued samples are not particularly useful >- keep in mind that what defines transducer (read: speaker) behaviour >is power, not instantaneous volume. > >Just use sensibly short ramped changes. For the record, Ardour uses 64 >or a JACK period size, whichever is, hmm, larger or smaller, can't >recall. > >--p > > >Wow, surprising answer. >Can you elaborate a wee bit on the bogus point? What worse artifacts? >Popping noise will be heard if sudden volume change is applied while > the signal data value is currently non-zero. >Is it not better to apply (register) the changes during zero or >near-zero > signal data values? > >After all, some electronic systems employ it: >http://en.wikipedia.org/wiki/Zero_crossing >http://electronicdesign.com/analog/digital-volume-control-eliminates-zipper- >noise > >Thanks. >Tim.
Not that my opinion should hold any weight... For Wav Composer Not Toilet's sampler module, I created a zero-crossing "detector" which would look N samples either side of loop points etc for the nearest sample to zero. It never really worked as well as I expected, always always needed x-fades as well... then there was bi-directional looping which you could specify N samples to jump hopefully to prefent than phase mirroring which is even worse. I think the only time zero-crossings are any good is in hand-crafted cutting of (very) simple waveforms. _______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/listinfo/linux-audio-dev
