How does the Knee effect work?


I was curious what the knee effect is doing in OsciStudio? How exactly is that algorithm working? I’m asking because I was trying to move something I made in OsciStudio to puredata, but I have no idea how to get that particular effect to happen.


its mostly changing which parts of the shape are bright, and which are dark.

in pseudo code: instead of evaluating say,

left channel = sin(2*pi*freq*t)

you do:

if(t<0.5) left channel = sin(2*pi*freq*1.5*t)
else left channel = sin(2*pi*freq*(0.75 + (t-0.5)*0.5))

this makes the first half of the shape bright, and the second half dark.


Thanks! I’ve got it figured out, but I was wondering, why wouldn’t you do it something like this? I found it alot easier to think about what was happening.

if(t < val1) { 
	v.y = sin(two_pi * scale_lin(t, 0, val1, 0, len1) ); 
	v.x = cos(two_pi * scale_lin(t, 0, val1, 0, len1) ); 
else {
	v.y = sin(two_pi * (len1 + scale_lin(t, val1, 1, 0, 1-len1) ));
	v.x = cos(two_pi * (len1 + scale_lin(t, val1, 1, 0, 1-len1) ));

Also, isn’t this essentially how PhaseCut works? Is there a reason not to just PhaseCutting instead?


you are right :slight_smile:

phasecut is much much newer, knee was one of the first.

but things are how they are, these things are set in stone because old files need to behave the same.


How interesting! Cool to see the learning process in the software!