Hi guys,
Maybe someone came across this
I can’t quite get what’s happening here
If I send a signal to feedback and multiply by itself I get silence
And if I change the range of the signal to become non symmetric, the sound comes in
can anybody explain?
SuperCollider version is 3.12.0.
({
var a, b, c;
var local = LocalIn.ar(1);
a = SinOsc.ar(100);
a = a * local;
LocalOut.ar(a);
// LocalOut.ar(a.range(0, 1));
Out.ar(0, a);
}.play )
The problem is here. local is 0, so you’re multiplying by 0.
//Plotting your function step by step
({
var a, b, c;
var local = LocalIn.ar(1);
a = SinOsc.ar(100);
b = a * local;
LocalOut.ar(b);
// LocalOut.ar(a.range(0, 1));
[local, a, b]
}.plot )
You don’t really need to do any Buses for feedback here. You can just:
(
{
// var freq = 100;
var freq = MouseX.kr(20, 20000, 1);
var mySine = SinOsc.ar(freq);
var myAM = mySine.unipolar;
LeakDC.ar(mySine * myAM);
}.play;
)
So I got why it works with a.range(0.0, 1.0) in feedback, taking into account that we start with zeroes out of LocalIn. That’s pretty straightforward, since operation assumes addition.
You are multiplying a signal that is always between -1 and 1 by an infinite series of numbers that are between -1 and 1. Simplified, you are multiplying a number less than 1 by an infinite series of numbers less than 1, so it converges to 0 fairly quickly.
Yeah, and it’s kind of obvious from the screenshot ))
taking into account blocksize delay with recursive multiplication, explains it,
and that means by providing right amount of additional delay static signal should me achieved
will try it later