Re: [LAD] Mixing audio: Noiseless volume changes

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <linux-audio-dev@...>
Date: Monday, March 18, 2013 - 11:43 pm

--nextPart1912707.V8CqKXTIoV
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="iso-8859-1"

On March 18, 2013 07:04:52 PM Tim E. Real wrote:

On March 18, 2013 06:47:16 PM you wrote:

On Mon, Mar 18, 2013 at 5:50 PM, Tim E. Real 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-zip...
noise

Thanks.
Tim.

Ah, I may have answered my own question when I said:
"(One cannot simply wait for the current data value to be 'zero' because
for example with a perfect square wave signal the 'current' value will never
approach zero, hence the zero-crossing detection requirement.)"

Yeah, I was worried about that bit:
That's not just an exception. With all kinds of waves not just square, many
times the current value may not approach zero even if it did 'cross' over.
So having no choice but to apply the volume at this cross point the popping
noise might still be heard. I guess that's what Fons meant by 'reduced'...
and what Paul meant by... bogus. Right?

Thanks.
Tim.
--nextPart1912707.V8CqKXTIoV
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="iso-8859-1"

p, li { white-space: pre-wrap; }

On =
March 18, 2013 07:04:52 PM Tim E. Real wrote:
=
On March 18, 2013 06:47:16 PM you wrote:

O=
n Mon, Mar 18, 2013 at 5:50 PM, Tim E. Real <termtech@rogers.com> wrote:
H=
i 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 signa=
l detection, and slew-rate limiting.Code is almost done, almost r=
eady to start testing each technique.Each technique has some adva=
ntages and disadvantages.If I use a slew-rate limiter, I fi=
gure for a sudden volume factor change=A0from 0.0 to 1.0, if I li=
mit the slew rate to say 0.01 per sample then after=A0100 samples=
the ramp will be done.But even with a fine ramp, this still migh=
t introduce artifacts in the audio.
<=
br />You cannot avoid artifacts in the audio. The only question is what=
is the nature of the artifacts. =A0
=A0=

I=
f I use a zero-crossing/zero-value detector and apply volume changes
<=
br />Zero crossing stuff is a completely bogus idea that needs to be el=
iminated from the lexicon of audio software. You will not be accomplish=
ing anything trying to use such a technique, other than introduce even =
more artifacts (and rather horrendous ones at that). Even zero-valued s=
amples are not particularly useful - keep in mind that what defines tra=
nsducer (read: speaker) behaviour is power, not instantaneous volume.=A0=
Just use sensibly short ramped changes. For the record, Ar=
dour uses 64 or a JACK period size, whichever is, hmm, larger or smalle=
r, can't recall.--p
W=
ow, surprising answer.
C=
an you elaborate a wee bit on the bogus point? What worse artifacts?
P=
opping noise will be heard if sudden volume change is applied while=

=
the signal data value is currently non-zero.
I=
s it not better to apply (register) the changes during zero or near-zer=
o
=
signal data values?
 
A=
fter all, some electronic systems employ it: http://en.wikipedia.=
org/wiki/Zero_crossing
h=
ttp://electronicdesign.com/analog/digital-volume-control-eliminates-zip=
per-noise
T=
hanks.
T=
im.
Ah, I may have answered my own question when I said:
&qu=
ot;(One cannot simply wait for the current data value to be 'zero' beca=
use
fo=
r example with a perfect square wave signal the 'current' value will ne=
ver
ap=
proach zero, hence the zero-crossing detection requirement.)"
 
Yea=
h, I was worried about that bit:
Tha=
t's not just an exception. With all kinds of waves not just square, man=
y
ti=
mes the current value may not approach zero even if it did 'cross' over=
.
So =
having no choice but to apply the volume at this cross point the poppin=
g
no=
ise might still be heard. I guess that's what Fons meant by 'reduced'..=
.
an=
d what Paul meant by... bogus. Right?
 
Tha=
nks.
Tim=
.
--nextPart1912707.V8CqKXTIoV--

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[LAD] Mixing audio: Noiseless volume changes, Tim E. Real, (Mon Mar 18, 9:50 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Fons Adriaensen, (Mon Mar 18, 11:05 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Paul Davis, (Mon Mar 18, 10:47 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Tim E. Real, (Mon Mar 18, 11:05 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Tim E. Real, (Mon Mar 18, 11:43 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Fons Adriaensen, (Mon Mar 18, 11:58 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Tim E. Real, (Tue Mar 19, 12:31 am)
Re: [LAD] Mixing audio: Noiseless volume changes, James Morris, (Mon Mar 18, 11:28 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Fons Adriaensen, (Mon Mar 18, 11:45 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Harry van Haaren, (Tue Mar 19, 2:09 am)
Re: [LAD] Mixing audio: Noiseless volume changes, Tim Goetze, (Tue Mar 19, 3:17 am)
Re: [LAD] Mixing audio: Noiseless volume changes, Fons Adriaensen, (Tue Mar 19, 1:02 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Tim Goetze, (Tue Mar 19, 1:53 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Fons Adriaensen, (Tue Mar 19, 3:08 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Tim Goetze, (Tue Mar 19, 3:37 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Fons Adriaensen, (Tue Mar 19, 4:31 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Tim Goetze, (Tue Mar 19, 7:06 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Charles Z Henry, (Tue Mar 19, 10:26 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Fons Adriaensen, (Tue Mar 19, 10:57 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Charles Z Henry, (Tue Mar 19, 11:12 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Fons Adriaensen, (Tue Mar 19, 11:30 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Fons Adriaensen, (Tue Mar 19, 10:26 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Harry van Haaren, (Tue Mar 19, 1:31 pm)
Re: [LAD] Mixing audio: Noiseless volume changes, Harry van Haaren, (Tue Mar 19, 4:30 am)
Re: [LAD] Mixing audio: Noiseless volume changes, Tim Goetze, (Tue Mar 19, 3:22 am)