On 10/07/2019 05:40, Philip Stone wrote:
I’ve been using [poly] for a long time … the number of voices can only be set 
at creation time. I’d love to be able to change that dynamically … I know this 
will be glitchy, and don’t care — I won’t be doing it during audio output

Dear Phil

Apologies in advance for my stupid questions, but …

If — and it is a big “if” — you have only a small number of poly configurations 
to switch between and if as you say you are only doing it when no audio is 
being output, can’t you do this with a wrapper around multiple [poly] objects? 
Attached an example abstraction for switching between two different voice 
counts (it ignores out-of-range voice counts, but it might better take a 
configuration number at its right inlet); it stops all notes before switching 
to the new voice count, but that is not a problem in your use case, right? I am 
pretty sure you have thought of this already — almost certain, in fact.

That wouldn’t do if you were dynamically creating/destroying arbitrarily many 
voices, but then you could create/destroy [poly] objects, too, right?

That is not to say that being able to change voice count in [poly] wouldn’t be 
a useful feature, but if it were to be implemented, why not do it in a 
non-glitchy way (i.e. don’t clear the object, and stop the notes only for the 
voices removed when reducing the voice count)?

What kind of glitch did you have in mind, anyway?

Best

m

--
matthew brandi | 020 8882 4616
#N canvas 946 383 677 553 10;
#X obj 56 43 inlet notes;
#X obj 136 43 inlet voices;
#X obj 59 362 spigot 0;
#X obj 298 102 t b b b;
#X obj 298 136 f 1;
#X obj 325 136 f 0;
#X obj 59 410 pack f f f;
#X obj 136 102 t b b b;
#X obj 136 136 f 1;
#X obj 163 136 f 0;
#X obj 56 66 s \$0-notes;
#X obj 59 268 r \$0-notes;
#X obj 66 290 r \$0-clear;
#X obj 189 159 s \$0-clear;
#X obj 351 158 s \$0-clear;
#X obj 325 181 s \$0-close-all;
#X obj 163 181 s \$0-close-all;
#X obj 59 432 s \$0-output;
#X obj 60 473 r \$0-output;
#X obj 60 496 outlet notes+voice;
#X obj 298 204 s \$0-open_\$3;
#X text 370 35 arguments \; --------------- \; \$1 = note stealing
\; \$2 = polyphony A \; \$3 = polyphony B;
#X obj 136 66 select \$2 \$3;
#X obj 59 386 poly \$2 \$1;
#X obj 136 204 s \$0-open_\$2;
#X obj 104 334 r \$0-close-all;
#X obj 77 312 r \$0-open_\$2;
#X obj 207 362 spigot 0;
#X obj 207 410 pack f f f;
#X obj 207 268 r \$0-notes;
#X obj 214 290 r \$0-clear;
#X obj 207 432 s \$0-output;
#X obj 252 334 r \$0-close-all;
#X obj 207 386 poly \$3 \$1;
#X obj 225 312 r \$0-open_\$3;
#X msg 189 136 stop \, clear;
#X msg 351 136 stop \, clear;
#X connect 0 0 10 0;
#X connect 1 0 22 0;
#X connect 2 0 23 0;
#X connect 3 0 4 0;
#X connect 3 1 5 0;
#X connect 3 2 36 0;
#X connect 4 0 20 0;
#X connect 5 0 15 0;
#X connect 6 0 17 0;
#X connect 7 0 8 0;
#X connect 7 1 9 0;
#X connect 7 2 35 0;
#X connect 8 0 24 0;
#X connect 9 0 16 0;
#X connect 11 0 2 0;
#X connect 12 0 2 0;
#X connect 18 0 19 0;
#X connect 22 0 7 0;
#X connect 22 1 3 0;
#X connect 23 0 6 0;
#X connect 23 1 6 1;
#X connect 23 2 6 2;
#X connect 25 0 2 1;
#X connect 26 0 2 1;
#X connect 27 0 33 0;
#X connect 28 0 31 0;
#X connect 29 0 27 0;
#X connect 30 0 27 0;
#X connect 32 0 27 1;
#X connect 33 0 28 0;
#X connect 33 1 28 1;
#X connect 33 2 28 2;
#X connect 34 0 27 1;
#X connect 35 0 13 0;
#X connect 36 0 14 0;
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list

Reply via email to