[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [sc-users] Re: 30hz high pass mastering




Am 19.12.2017 um 01:44 schrieb jamshark70@xxxxxx:

daniel-mayer wrote
Right, the leakage effect shouldn't be neglected. Here is an example:

Or, a graphical demonstration: if we're cutting below the bin near 440 Hz,
we could sweep a sine wave from, say, 300 to 500 Hz, measure amplitude, and
see how flat it is.

That's an interesting test, but the plot isn't reflecting what I'm hearing.
Don't you actually mean this ?:

amp = (RunningSum.ar(filtered.squared, 1024) / 1024).sqrt;

(Then the 1024 would also be arbitrary)


But besides of that, the comparison with a cascaded HPF in this form is clearly pro PV_Brickwall, no ?

(
{
var a = {
var freq = Line.ar(300, 500, 20, doneAction: 2),  // 10 Hz/sec
sin = SinOsc.ar(freq), filtered, amp;
/*
fft = FFT(LocalBuf(2048), sin),
filtered, amp;
fft = PV_BrickWall(fft, 0.020527859237537);
filtered = IFFT(fft);
*/
filtered = HPF.ar(HPF.ar(sin, 440), 440);
amp = (RunningSum.ar(filtered.squared, 1024) / 1024).sqrt;
RecordBuf.kr(A2K.kr(amp), b, loop: 0);
(filtered * 0.1).dup
}.play,
cond = Condition.new,
resp = OSCFunc({ cond.unhang }, '/n_end', s.addr, argTemplate:
[a.nodeID]).oneShot;
cond.hang;
// getToFloatArray uses forkIfNeeded so this behaves synchronously here
b.getToFloatArray(wait: -1, action: { |data|
d = data;
});
// data are very fidgety -- naive smoothing
e = d.clump(100).collect(_.mean);
e.plot;
}.fork(AppClock);
)



Greetings

Daniel

-----------------------------
www.daniel-mayer.at
-----------------------------