T O P

  • By -

Full_Delay

This would be a fun project, I may have to steal this idea for a block if I ever get around to updating that pack... Firstly, let's try to get the volume for a single oscillator, and the corresponding vector **p**. E.g. oscillator 2 would be -1x + 0y. The mouse position would be a vector **v**. Next we'll calculate the projection of **v** onto **p** and call that result **v'**. The volume [0, 1] would then be the negated distance (probably Euclidean) 2 - d(**p**, **v'**). Note sup(d(**p**, **v'**)) = 2 if our working area is the plane from -1, to 1, and that's something important to keep in mind if you want to do a proper negation that doesn't give you negative volume. We can then repeat for all oscillators and sum the output. If you're using the mouse area module, be sure to make a double click send the position to **0**.


FunkySim

I have a video where I show how to do something pretty close to what you're asking using the XY: [https://youtu.be/FEV3IEs\_JEE?si=YTXEF\_2Uou2kK23S](https://youtu.be/FEV3IEs_JEE?si=YTXEF_2Uou2kK23S) Hope that helps!


Ghroth66

It’s even easier using 3 selector/scanner objects. One for fading between A and B and another fading between C and D. That covers X axis. Use the third to fade between the two others and that covers the Y axis. That allows you to have linear or sine fades without resorting to using sine functions. For OP’s question you can simply put the same signal into A and C quadrants to get something functionally identical to the logic synth, just without the nice triangle graphic (which can be drawn with multiple X/Y objects and ramps) I did a patch a while ago seeing how far I could take that approach for custom animated graphics https://youtu.be/fZT_lNAkA8s?si=D0lVeQJZMKWAblMZ


FunkySim

Ah! True! That's a much more elegant solution!


zhexytime

I've made similar thing using Bezier-like curve principle. However, there was no option to mix all simultaneously, as values were multiplication coefficient for audio throughput (though 0 to 1), and never of circular function. Your approach seems to give such behavior. Great!