Then i want a function or method that gives me [\amp, 0.3, \freq, 220, \rel, 1] or something similar. The arguments might also be initialized in the synthdef by \amp.kr(0.3) or something.
Is this possible somehow? It would help me out a lot.
Thank you!
Interesting, I didn’t know you could just do .at directly with the Synth name, I thought you had to go through the \global SynthDescLib. Anyhow, I did something similar (maybe with a bit fancier output, and including things like lag info) for Bacalao:
NamedControls are not function arguments, so they are not visible as function argument names.
That’s why the initial suggestion was to go through the SynthDesc – because the SynthDesc reports all controls, whether they were created from function arguments or NamedControl.
I always figured that the temp synth def that playing a function creates was not really “cataloged” or stored in the same way a synthdef(\symbol).add is? Thus, not accessible through SynthDescLib?
Yes you are right, Synthdef(...).add will catalogue it with SynthDescLib whereas Function.play doesn’t do this as it is considered a temporary. I only mentioned it because your initial question sounded like you wanted to avoid SynthDefs entirely — which isn’t possible —, and it might not be obvious to some that Function.play is just a wrapper around SynthDef.