the midi controller example is a good one i believe.
here is what i did a while ago
http://www.netpd.org/Midilearn


Am 12.03.2009 um 03:27 schrieb Phil Stone:

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

Attachment: PGP.sig
Description: Signierter Teil der Nachricht

_______________________________________________
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management -> 
http://lists.puredata.info/listinfo/pd-list

Reply via email to