New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot set lag of NamedControl or SynthDef.wrapped argument in NodeProxy externally #5709
Comments
Not sure if this is perhaps related #2127 |
Yes, it is one of those things that are almost deprecated (see below). I had always tried to expose all things in the underlying objects, like SynthDef here. But because NamedControls is a bit orthogonal to the SynthDef rates, this doesn't work in the second case. There is no dedicated control name for it either, so to would at least be a bit of trickery. setRates { |args|
//this.deprecated(thisMethod); // maybe deprecate later
rates = rates ?? { IdentityDictionary.new };
rates.putPairs(args);
} |
It also affects f = {|freq=110| SinOsc.ar(freq)}
Ndef(\nolag, { SynthDef.wrap(f) }).play;
Ndef(\nolag).lag(\freq, 10);
Ndef(\nolag).set(\freq, 220) |
Thanks for the response Julian! Not sure I understand - is NamedControl deprecated? |
No, not at all! NamedControl came later and only partially replaced some features that are built into SynthDef creation. The |
I think this stems from the fact that SynthDef initially had no standardized way to query or manipulate the details of control names. Now we are finding use cases where it's helpful or necessary to standardize and unify the representation. So I think this should probably be discussed in an RFC: Design a data structure and interface that meets the requirements first. My opinion remains that SynthDef is the right place for this. But there was some work on another issue where control names were being collected under the banner of NamedControl. I still disagree with that but perhaps the ship already sailed. |
I agree that all that should be in |
Environment
Steps to reproduce
(Example from PitchTrebler at https://scsynth.org/t/live-streaming-with-mads/5259/2)
This works:
With namedcontrols it does not:
Expected vs. actual behavior
I would expect to be able to set the lag on a NamedControl in the same way as other parameters in a NodeProxy.
PS. I could not find an issue on this topic even though it seems like a widely known thing? See for example https://scsynth.org/t/live-streaming-with-mads/5259/3?u=madskjeldgaard
The text was updated successfully, but these errors were encountered: