Thank you very much, Eli. Your videos are the best in SC... I suspice that SC is underestimated in the field of live coding. JitLib is amazing and not well known...
Great video and huge help getting started, very appreciated ! curious about adding a limiter .... can that be as simple as Ndef.limiter ? in the same way Ndef.clear acts like a global commands ?
The simplest option is probably to install one of the SC quarks that does this. I've used StageLimiter in the past (part of the BatLib Quark by Batuhan Bozkurt), it is as simple as installing the quark, booting the server, and then running StageLimiter.activate; at the start of a performance. There is also a Quark called SafetyNet (Alberto de Campo) which is similar.
Excellent as always. I bought a copy of your Supercollider book. I'm intending a deep dive this year. On another note, have you released any of your Supercollider music? I was hoping I could get a full length recording from Bandcamp, but I don't see that. I did find the pieces you contributed to Seamus. Very interesting work.
Thanks! No, I'm not on Bandcamp. Maybe I should be. The best place to hear my music is probably my Performances playlist. Though, this isn't specifically a "SuperCollider music" playlist, it's more general than that. th-cam.com/play/PLPYzvS8A_rTZiDjxBmz4ghSWPyQmsTQuR.html
Thank you Eli! Multiple fadeTimes explains a lot of weirdness I've experienced :) I like to do what I call "modular synth" approach. Just build one big synthdef inside an Ndef, similar to how you would just connect things in a modular system. Here's a smaller example: ( Ndef(\treto, { var slop = LFNoise1.kr(1/4!8).bipolar(1/16).midiratio; var root = Demand.kr(Impulse.kr(1/4), 0, 48 + Dseq([0, -4, -7, -5], inf)); var color = Demand.kr(Impulse.kr(1/4), 0, Dseq([3, 4, 3, 5], inf)); var f1 = Demand.kr(Impulse.kr(3), 0, Dseq(root + [0, 7, 12], inf)).midicps; var f2 = Demand.kr(Impulse.kr(2), 0, Dseq(root + [0, color, 7, 12], inf)).midicps; var sig = SinOsc.ar([f1, f2].lag(1/16) *.x (1..5) * slop, mul: 1/4); sig = Splay.ar(sig, center: LFTri.kr(1/4)); sig = sig.blend(CombN.ar(sig, 1, [1/2, 1/3], [3, 2])); sig = sig + SinOsc.ar(root.midicps / 2, mul: 1/3 * LFPulse.kr([3, 2]).lag(0.01)); }).play; );
Thank you very much, Eli. Your videos are the best in SC...
I suspice that SC is underestimated in the field of live coding. JitLib is amazing and not well known...
Eli, your videos are always excellent, relaxed while also being extremely clear. More (SC) live coders are always welcome...join us! ;-)
Thanks! Added one of your videos to my Live Coding playlist :)
This is great Eli, as always. thank you 🤍
Wow, new video in the series!
Great video and huge help getting started, very appreciated ! curious about adding a limiter .... can that be as simple as Ndef.limiter ? in the same way Ndef.clear acts like a global commands ?
The simplest option is probably to install one of the SC quarks that does this. I've used StageLimiter in the past (part of the BatLib Quark by Batuhan Bozkurt), it is as simple as installing the quark, booting the server, and then running StageLimiter.activate; at the start of a performance. There is also a Quark called SafetyNet (Alberto de Campo) which is similar.
Excellent as always. I bought a copy of your Supercollider book. I'm intending a deep dive this year. On another note, have you released any of your Supercollider music? I was hoping I could get a full length recording from Bandcamp, but I don't see that. I did find the pieces you contributed to Seamus. Very interesting work.
Thanks! No, I'm not on Bandcamp. Maybe I should be. The best place to hear my music is probably my Performances playlist. Though, this isn't specifically a "SuperCollider music" playlist, it's more general than that. th-cam.com/play/PLPYzvS8A_rTZiDjxBmz4ghSWPyQmsTQuR.html
Is it possible to use a Pbind to control a NodeProxy?
Probably, but depending on exactly what you mean by "control," there might be a much more straightforward way.
Thank you Eli!
Multiple fadeTimes explains a lot of weirdness I've experienced :)
I like to do what I call "modular synth" approach. Just build one big synthdef inside an Ndef, similar to how you would just connect things in a modular system.
Here's a smaller example:
(
Ndef(\treto, {
var slop = LFNoise1.kr(1/4!8).bipolar(1/16).midiratio;
var root = Demand.kr(Impulse.kr(1/4), 0, 48 + Dseq([0, -4, -7, -5], inf));
var color = Demand.kr(Impulse.kr(1/4), 0, Dseq([3, 4, 3, 5], inf));
var f1 = Demand.kr(Impulse.kr(3), 0, Dseq(root + [0, 7, 12], inf)).midicps;
var f2 = Demand.kr(Impulse.kr(2), 0, Dseq(root + [0, color, 7, 12], inf)).midicps;
var sig = SinOsc.ar([f1, f2].lag(1/16) *.x (1..5) * slop, mul: 1/4);
sig = Splay.ar(sig, center: LFTri.kr(1/4));
sig = sig.blend(CombN.ar(sig, 1, [1/2, 1/3], [3, 2]));
sig = sig + SinOsc.ar(root.midicps / 2, mul: 1/3 * LFPulse.kr([3, 2]).lag(0.01));
}).play;
);
nice!
welldone 🙏🪻👍