x42/meters.lv2

spectrum analiser has 20k 'noise'

magnetophon opened this issue · 10 comments

There is a slow build up of the 20k band.
After a day or 2 it was at -30 dB.

This is in Ardour 4.7, in stop mode, on a track with no inputs and with the other plugins bypassed.

plugin built from x42-plugins-20150702.tar.xz

x42 commented

Do you use a DC offset to compensate for denormals in Ardour?

I'll investigate

I have the DC turned off.

Oh, I AM looking at signals with lot's of DC: the gaincurve of my limiter, with is made to stay put if it needs to go back down soon anyway.

x42 commented

it could well be a bug in the analyzer, near nyquist, but I don't think it is (all bands are equal and I did test this at one point). I'm currently a bit swamped to re-read the code, but I'll leave one running with disconnected (jack) inputs to try to reproduce.

x42 commented

Can you describe how to reproduce this?
So you basically feed it a signal with constant DC offset.

I'm sorry, I read 20Hz not 20KHz. Now best guess is that this is due to denormal protection
https://github.com/x42/meters.lv2/blob/master/src/spectr.c#L73
for every sample a tiny (10^-12, -240dBFS) sample is alternatively added/subtracted. That's additional high frequency at nyquist. Even though that is above the filter's cut-off it might explain a very long term buildup due to rounding, then again with double-precision math, not very likely it ends up at 0.031 (-30dB).

Hmm, I haven't seen it anymore since the original report.
I'll keep you up to date. Thanks.

x42 commented

I've pushed a small update (636b9b9) which may help in this case.

...and I've helped myself to a DC offset generator (Ardour/ardour@69f99ee) Ardour's Dummy/Test Backend supports "50x speed" (not unlike freewheeling, those 2 days can be emulated in just under an hour).

Might this be related?

spectr.lv2: band f: 20158.74Hz (17824.72Hz -> 22492.75Hz) exceeds nysquist (44100/2)
spectr.lv2: shifted to f:19937.36Hz (17824.72Hz -> 22050.00Hz)
x42 commented

no, that just means that the last band is narrower (not an exact 1/3 octave)

x42 commented

I did further tests and cannot reproduce, nor explain it. Since you also were not able to reproduce: it's was most likely either an actual signal or a bug elsewhere (host other plugin in the session).

Should you see this again, please add a 2nd (new) analyzer instance right before the current one.
If that also shows the signal, the build-up is elsewhere and an actual signal.