«digital lowercase from floating point errors» by eli.rosenkim

on 01 Jun'22 03:36 in lowercasefloating point

https://scsynth.org/t/why-the-plot-result-of-summing-2-same-frequency-sinosc-with-phase-reversed-is-not-just-zeros/5805/6

quick proof of concept

Results of a subtracting two identical out of phase signals from each-other, which should be silent but isn't because of the imprecision of floating point arithmetic... The quiet signals are then boosted to be audible, kind of like digital lowercase music

1
2
3
4
5
6
7
8
9
10
11
12
13
14
(//floating point errors
{ var pink;
	pink = PinkNoise.ar().range(0.08, 0.12)!2;
	0.5*LeakDC.ar(Median.ar(2, Limiter.ar(99999999*(SawDPW.ar(pink, 0) + SawDPW.ar(pink, pi)), 0.9)))}.play;
{ var pink;
	pink = PinkNoise.ar().range(0.0999/3, 0.1001/3)!2;
	0.5*LeakDC.ar(Median.ar(5, Limiter.ar(99999999*(SawDPW.ar(pink, 0) + SawDPW.ar(pink, pi)), 0.9)))}.play;
{var pink;
	pink = PinkNoise.ar().range(0.00999, 0.01001)!2;
	(0.5*Median.ar(20,
	Limiter.ar(999999*LeakDC.ar(SawDPW.ar(pink, 0+(pi/2)) + SawDPW.ar(pink, pi+(pi/2))), 0.1)))}.play;
{0.5*Median.ar(30, Limiter.ar(99999999*LeakDC.ar((SinOsc.ar(0.005, 0) + SinOsc.ar(0.005, pi)), 0.05)))!2}.play;
{0.5*SVF.ar((Median.ar(10, Limiter.ar(999999*LeakDC.ar(LFPulse.ar(0.5, 0) + LFPulse.ar(0.5, pi)), 0.6))), 800)!2}.play;
)
raw 784 chars (focus & ctrl+a+c to copy)
reception
comments
eli.rosenkim user 02 Jun'22 07:39

I initially misunderstood what I was doing here. Only one of 4 voices truly should cancel (the sine voice), the other 3 are due to running oscillators well below the intended rate, removing dc, and then amplifying the artifacts