Still Live blogging the SC symposium
A Proposal for a new thing, which everybody else here seems to already know about.
NamedControl
a = { |freq = 700, t_trig = 1.0| Decay.kr(t_trig) * Blip.ar(freq) * 0.1}.play
becomes
a = { Decay.kr(trig.tr) * Blip.ar(freq.kr(400) * 0.1}.play; a.set(trig . . .
JITLib
Proxy stuff. (Man, I learned SC 3.0 and then now there’s just all this extra stuff in the last 7 years and I should probably learn it.)
ProxySapce.push(s); ~out.play; ~out = {Dust.ar(5000 ! 2, 0.01) }; ~out.fadeTime = 4 a = NodeProxy(s); a.source = {Dust.ar(5000 ! 2, 0.01) }; Ndef(x, . . .)
(there are too many fucking syntaxes to do exactly the same thing. Why do we need three different ones? Why?!!)
Ndef(x, { BPF.ar(Dust.ar(5000 ! 2, 0.01)) }).play; Ndef(x, { BPF.ar(Ndef.ar(y), 2000, 0.1)}).play; Ndef(y, {Dust.ar(500)})
. . .
Ndef(out) <<> Ndef(k) <<> Ndef(x)
does routing
NdefMixer(s) opens a GUI.
Ron Kuivila asks: this is mapping input. Notationally, you could pass the Ndef a symbol array. Answer: you could write map(map(Ndef(out), in, Ndef(x) . . .
Ron says this is beautiful and great.
Ndef(comb <<>.x nil //adverb action
the reverse syntax just works form the other direction.
Ndefs can feedback, but everything is delayed on block size.