hello,
here is an interpol abstraction that i made for the mapping lib. i did never commited it. mainly because i never make it to work everywhere. (don't know how to deal with iem_matrix / hexa_loader / pd extended)...
cyrille
Joseph Barrows a écrit :
Hi Pders, I recently saw a presentation by a fellow using Max and he was using int.lib that allowed using a 2D space populated with presets, and as he moved a marker around the space int.lib would smoothly interpolate all the values in the various presets depending on the distance from their markers in the 2D space
he was using it to set up 'moods' for effecting the audio, so he had more of a conductor role than an individual musician role when controlling his patch
I was wondering if there is anything like this for PD (interpolation of groups of values)
-- Joseph Barrows live video performance; web site design; new media artist jjbarrows.artwww.net http://jjbarrows.artwww.net jjbarrows@artwww.net mailto:jjbarrows@artwww.net
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
#N canvas 482 28 775 601 10; #X obj 22 15 t b; #X obj 32 -7 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X msg 220 164 0.3 0.1; #X obj 21 162 t a; #X msg 52 133 position 5 1 1; #X obj 167 11 t b; #X obj 167 -11 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 166 158 t a; #X obj 22 -39 t b; #X obj 22 -61 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 497 9 t b; #X obj 497 -13 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 496 156 t a; #X obj 604 246 gcanvas 100 100; #X obj 604 421 pack f f; #X msg 230 186 0.9 0.8; #X msg 51 66 position 2 0 0; #X msg 53 85 position 3 0 1; #X msg 53 109 position 4 1 0; #X obj 604 353 / 100; #X obj 697 353 / 100; #X obj 604 397 min 1; #X obj 604 375 max 0; #X obj 697 397 min 1; #X obj 697 375 max 0; #X msg 51 44 position 1 0.5 0.5; #X obj 50 -62 loadbang; #X text 647 289 1; #X text 606 246 2; #X text 607 328 3; #X text 694 246 4; #X text 693 329 5; #X obj 21 252 interpol 5 8 2; #X obj 21 333 multi_slider 8; #X text 145 250 <- add distance mod (gaussian / lin ...); #X text 140 269 <- add a message for modulo or not and remove interpol_mod ; #X msg 196 40 vector 1 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5; #X msg 196 62 vector 2 1 0.5 1 1 1 1 1 1; #X msg 197 84 vector 3 0 1 0 0.4 0 1 0 1 0; #X msg 197 106 vector 4 1 0 1 0 1 0 0.2 0; #X msg 197 129 vector 5 0.5 0.4 0.3 0.2 0.1 0 0.7 0.9; #X msg 524 39 size 1 0.3 33; #X msg 525 62 size 2 1 1; #X msg 522 81 size 3 1 1; #X msg 526 104 size 4 1 1; #X msg 525 129 size 5 1 1; #X connect 0 0 25 0; #X connect 0 0 16 0; #X connect 0 0 17 0; #X connect 0 0 18 0; #X connect 0 0 4 0; #X connect 1 0 0 0; #X connect 2 0 32 0; #X connect 3 0 32 0; #X connect 4 0 3 0; #X connect 5 0 36 0; #X connect 5 0 37 0; #X connect 5 0 38 0; #X connect 5 0 39 0; #X connect 5 0 40 0; #X connect 6 0 5 0; #X connect 7 0 32 0; #X connect 8 0 0 0; #X connect 8 0 5 0; #X connect 8 0 10 0; #X connect 9 0 8 0; #X connect 10 0 41 0; #X connect 10 0 42 0; #X connect 10 0 43 0; #X connect 10 0 44 0; #X connect 10 0 45 0; #X connect 11 0 10 0; #X connect 12 0 32 0; #X connect 13 0 19 0; #X connect 13 1 20 0; #X connect 14 0 32 0; #X connect 15 0 32 0; #X connect 16 0 3 0; #X connect 17 0 3 0; #X connect 18 0 3 0; #X connect 19 0 22 0; #X connect 20 0 24 0; #X connect 21 0 14 0; #X connect 22 0 21 0; #X connect 23 0 14 1; #X connect 24 0 23 0; #X connect 25 0 3 0; #X connect 26 0 8 0; #X connect 32 0 33 0; #X connect 36 0 7 0; #X connect 37 0 7 0; #X connect 38 0 7 0; #X connect 39 0 7 0; #X connect 40 0 7 0; #X connect 41 0 12 0; #X connect 42 0 12 0; #X connect 43 0 12 0; #X connect 44 0 12 0; #X connect 45 0 12 0;
#N canvas 53 308 441 550 10; #X obj 25 6 inlet; #X obj 303 525 outlet; #X obj 108 38 $1; #X obj 137 62 $2; #X text 138 39 nb de points d'interpolation; #X text 163 64 taille du vecteur d'interpolation; #X text 157 110 position; #X msg 83 111 0.5 0.3; #X obj 25 204 list trim; #X obj 25 184 list prepend row; #X obj 25 224 s $0-send_mtx_position; #X obj 92 268 list trim; #X obj 92 248 list prepend row; #X obj 92 288 s $0-send_mtx_vecteur; #N canvas 820 14 681 883 interpol 0; #X obj 24 20 inlet; #X obj 42 155 matrix $1 $3; #X obj 52 131 r $0-send_mtx_position; #X obj 218 131 list trim; #X obj 42 185 mtx_distance2; #X obj 218 105 list prepend row 1; #X obj 218 155 matrix 1 $3; #X obj 216 258 r $0-send_mtx_taille; #X text 148 188 distance entre la position actuel et la matrice de position; #X obj 216 282 matrix $1 1; #X text 288 381 gaussian; #X obj 81 803 outlet; #X obj 179 307 mtx_./; #X obj 214 361 mtx_.*; #X obj 214 337 t a a; #X obj 214 383 mtx_.* -1; #X obj 214 405 mtx_exp; #X msg 91 376 row $1; #X obj 61 285 f; #X obj 61 330 + 1; #X obj 61 308 moses $1; #X msg 61 262 0; #X obj 61 353 t f f; #X obj 142 475 matrix; #X obj 91 518 list trim; #X obj 103 427 r $0-send_mtx_vecteur; #X obj 91 453 matrix $1 $2; #X obj 91 497 list prepend matrix $2 1; #X obj 91 595 mtx_.* 0; #X obj 91 649 mtx_+; #X obj 214 627 +; #X obj 214 652 f; #X msg 249 626 0; #X obj 91 672 matrix; #X obj 42 697 matrix; #X obj 42 236 t b b a b; #X obj 42 755 mtx_./ 1; #X obj 63 731 sel 0; #X obj 42 778 list split 3; #X obj 121 627 matrix $2 1; #X obj 166 519 r $0-send_mtx_influance; #X obj 158 549 matrix $1 1; #X obj 91 401 t a a a; #X obj 142 571 *; #X obj 42 209 mtx_.^ 0.5; #X obj 24 43 t b b l; #N canvas 227 380 272 292 lineaire_distance 0; #X obj 144 136 list; #X obj 25 192 list; #X obj 47 163 list prepend; #N canvas 0 0 533 407 drip 0; #X obj 64 206 list split 1; #X obj 64 123 until; #X obj 64 181 list append; #X obj 194 206 bang; #X text 146 90 First store list , then start the loop; #X text 163 118 "until" bangs its output until told to stop by a "bang" to its right inlet.; #X text 182 160 Store the remaining list.; #X text 239 205 third outlet of "split" tells us to stop.; #X obj 64 243 outlet; #X obj 64 57 inlet; #X obj 64 86 t b l; #X text 237 44 From list-help.pd; #X connect 0 0 8 0; #X connect 0 1 2 1; #X connect 0 2 3 0; #X connect 1 0 2 0; #X connect 2 0 0 0; #X connect 3 0 1 1; #X connect 9 0 10 0; #X connect 10 0 1 0; #X connect 10 1 2 1; #X restore 47 86 pd drip; #X obj 25 58 t b a b; #X obj 25 29 inlet; #X obj 25 218 outlet; #N canvas 0 0 239 444 calcul 0; #X obj 40 22 inlet; #X obj 40 115 outlet; #X obj 40 45 - 1; #X obj 40 68 * -1; #X obj 40 90 max 0; #X connect 0 0 2 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 1 0; #X restore 47 111 pd calcul; #X connect 0 0 2 1; #X connect 1 0 6 0; #X connect 2 0 0 0; #X connect 2 0 1 1; #X connect 3 0 7 0; #X connect 4 0 1 0; #X connect 4 1 3 0; #X connect 4 2 2 1; #X connect 5 0 4 0; #X connect 7 0 2 0; #X restore 427 370 pd lineaire_distance; #X obj 391 345 list split 3; #X obj 391 403 list append; #X obj 391 427 list trim; #X connect 0 0 45 0; #X connect 1 0 4 0; #X connect 2 0 1 0; #X connect 3 0 6 0; #X connect 4 0 44 0; #X connect 5 0 3 0; #X connect 6 0 4 1; #X connect 7 0 9 0; #X connect 9 0 12 1; #X connect 12 0 47 0; #X connect 13 0 15 0; #X connect 14 0 13 0; #X connect 14 1 13 1; #X connect 15 0 16 0; #X connect 16 0 23 1; #X connect 17 0 42 0; #X connect 18 0 20 0; #X connect 19 0 22 0; #X connect 20 0 19 0; #X connect 21 0 18 0; #X connect 22 0 18 0; #X connect 22 1 17 0; #X connect 23 0 43 0; #X connect 24 0 28 0; #X connect 25 0 26 0; #X connect 26 0 27 0; #X connect 27 0 24 0; #X connect 28 0 29 0; #X connect 29 0 33 0; #X connect 30 0 31 0; #X connect 31 0 30 1; #X connect 31 0 37 0; #X connect 32 0 31 0; #X connect 33 0 29 1; #X connect 33 0 34 1; #X connect 34 0 36 0; #X connect 35 0 34 0; #X connect 35 1 21 0; #X connect 35 2 12 0; #X connect 35 3 32 0; #X connect 35 3 39 0; #X connect 36 0 38 0; #X connect 37 1 36 1; #X connect 38 1 11 0; #X connect 39 0 29 1; #X connect 40 0 41 0; #X connect 41 0 43 1; #X connect 42 0 26 0; #X connect 42 1 23 0; #X connect 42 2 41 0; #X connect 43 0 28 1; #X connect 43 0 30 0; #X connect 44 0 35 0; #X connect 45 0 1 0; #X connect 45 1 6 0; #X connect 45 2 5 0; #X connect 46 0 48 1; #X connect 47 0 48 0; #X connect 47 1 46 0; #X connect 48 0 49 0; #X connect 49 0 23 1; #X restore 303 501 pd interpol; #X obj 199 449 list trim; #X obj 199 429 list prepend row; #X obj 199 469 s $0-send_mtx_influance; #X obj 152 385 s $0-send_mtx_taille; #X obj 152 361 t b a; #X obj 152 339 list trim; #X obj 152 319 list prepend row; #X obj 25 140 route position vector size; #X obj 150 190 pack f f; #X obj 144 162 unpack f f f; #X obj 200 408 pack f f; #X connect 0 0 22 0; #X connect 7 0 22 0; #X connect 8 0 10 0; #X connect 9 0 8 0; #X connect 11 0 13 0; #X connect 12 0 11 0; #X connect 14 0 1 0; #X connect 15 0 17 0; #X connect 16 0 15 0; #X connect 19 0 18 0; #X connect 19 1 18 0; #X connect 20 0 19 0; #X connect 21 0 20 0; #X connect 22 0 9 0; #X connect 22 1 12 0; #X connect 22 2 24 0; #X connect 22 3 14 0; #X connect 23 0 21 0; #X connect 24 0 23 0; #X connect 24 0 25 0; #X connect 24 1 23 1; #X connect 24 2 25 1; #X connect 25 0 16 0;