Hi Derek,
Maybe a very simple example would be good. I have an Ozone
MIDI-controller, and it has eight knobs, which send out continuous
controller data on 8 different MIDI CC numbers. Now, [ctlin] (MIDI
control input) doesn't have settable arguments -- only creation args.,
so I racked my brains trying to figure out how to make an object that
would take a knob number argument, 1-8, convert that number to the
corresponding controller number, and watch that controller number with
[ctlin].
(Admittedly, it would have been easy to create [Ozknob1]...[Ozknob8]
objects, but this reeked of kludge to my sensibilities; neither did I
consider it elegant to use a [ctlin] for each knob that watched *all*
controller data, then [route]d the data from the desired control number
-- I wanted the pre-filtering to be done by [ctlin], if possible).
The more generalized problem is this: take a creation argument of an
abstraction, *do something with it*, then get it into the creation
argument of a contained abstraction.
Nothing I tried worked, until I took the attached dynamic approach.
Phil Stone
www.pkstonemusic.com
Derek Holzer wrote:
Would like to show some examples of dynamic and self-modifying Pd
patches during a workshop here in Berlin. I know there are some in the
archives (and maybe on people's HDs) somewhere, but damned if I can
find them. Links to previkous posts or new examples welcome!
best!
Derek
#N canvas 676 96 394 341 10;
#X obj 8 105 21;
#X obj 34 105 22;
#X obj 60 105 23;
#X obj 86 105 24;
#X obj 112 105 25;
#X obj 138 105 26;
#X obj 164 105 27;
#X obj 189 105 28;
#X obj 37 74 select 1 2 3 4 5 6 7 8;
#X obj 37 51 f \$1;
#X obj 37 6 loadbang;
#X obj 103 304 outlet;
#X text 8 149 Ozone mapping;
#X msg 237 93 2;
#X text 267 91 channel;
#X obj 37 28 t b b;
#X obj 102 158 pack f f;
#X text 110 16 Use: [OzKnob n] where n is the knob #;
#N canvas 0 22 210 111 \$0-oz_ctrlknob 0;
#X obj 28 72 outlet;
#X restore 103 272 pd \$0-oz_ctrlknob;
#X obj 102 218 s pd-\$0-oz_ctrlknob;
#X msg 102 187 obj 10 10 ctlin \$1 \$2 \, connect 1 0 0 0;
#X connect 0 0 16 0;
#X connect 1 0 16 0;
#X connect 2 0 16 0;
#X connect 3 0 16 0;
#X connect 4 0 16 0;
#X connect 5 0 16 0;
#X connect 6 0 16 0;
#X connect 7 0 16 0;
#X connect 8 0 0 0;
#X connect 8 1 1 0;
#X connect 8 2 2 0;
#X connect 8 3 3 0;
#X connect 8 4 4 0;
#X connect 8 5 5 0;
#X connect 8 6 6 0;
#X connect 8 7 7 0;
#X connect 9 0 8 0;
#X connect 10 0 15 0;
#X connect 13 0 16 1;
#X connect 15 0 9 0;
#X connect 15 1 13 0;
#X connect 16 0 20 0;
#X connect 18 0 11 0;
#X connect 20 0 19 0;
_______________________________________________
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list