What are the pros and cons of local 1 in poly~
I'm wondering why the "local" attribute defaults to "off" in a poly~. The docs refer to finer grained scheduling when it's on (which seems like a good thing) but if there was no downside, I'd expect the default to be "on"
because using more than one instance is the more common use? think of sending target 0, foo to 32 voices. you would like these messages to at the same sample (the first sample of the next vector) in all voices, dont you?
I don't know ---- it's not clear my scenario fits this. My system has (currently) 8 VST abstractions (VST with extra stuff so I can just treat it as if it was an external MIDI controlled synth) each of which gets loaded with the appropriate plugin as needed. When a VST is not being used (even temporarily in a song), its containing poly~ gets muted and so CPU utilization is reduced significantly. This has worked extremely well for me once I finally got my head around the poly~ object.
Now I'm doing a complete redesign from scratch in a new attempt to switch to Max 6. This time around, I'm still embedding VST abstractions inside poly~ objects but I'm allowing more than one VST, i.e. each instance in a poly~ is a completely separately controllable VST abstraction, using the 'target' to send commands and/or MIDI data to the desired VST. Goal here is to see if leveraging multiple cores will give me even better CPU utilization.
In both the old and new scenario, it's not at all clear to me that syncing the samples really matters that much, particularly if I can reduce my buffer and vector sizes even more.
not sure if that applies here, but consider that VST plug-ins also use a vector size of 32 and also only change their internal parameter values with the beginning of the next vector.
so if you do something using line or metro inside a poly, dont worry about the scheduler settings beeing not different from the rest of the runtime. :)
but i see your problem, i also use poly~ for more than "polyphony".
I still don't understand how local vs global scheduling is better or worse. I didn't know that VSTs always use a 32 sample buffer but that's pretty short, particularly at higher sampling rates so even for real-time changes, the delay between adjustment and when one hears the change will be negligible.
What will I gain with local scheduling? Is it significantly more computationally intensive? Should I always use local scheduling? Never use it?
i am not sure when it could be an advantage.
as i understood with that option you could run max globally with the scheduler set to 8 ms but use the regular 1 ms inside the poly because you run a sequencer program inside it? no idea.
Not using a sequencer --- everything is done in real time and the MIDI data comes from outside the poly~
However, I thought that 'local' was related to audio scheduling. If 'local' refers to event scheduling, then I understand completely what it's about.
Thanks --- this is very useful.