[PD] Text insert and delete in PdDroid

Chris McCormick chris at mccormick.cx
Wed Jul 18 03:29:39 CEST 2018


Hi Arnault,

The [text] element does not work because the version of Pd that ships 
with PdDroidParty is currently out of date. I'm sort of working on a new 
build but not sure when I will get that working. Patches welcome!

Cheers,

Chris.

On 10/07/18 00:08, Arnault Malgat wrote:
> Hi,
> 
> I'm trying to design a patch for PdDroidParty in wich I need to 
> dynamically modifie the content of a [text] object, but [text insert] 
> and [text delete] don't seems to work.
> Is it even possible or should I try to find a way using lists (wich 
> would be a drag since I can't find how to make [list store] work either) ?
> 
> This patch does not involve any audio treatment at all but is a 4/4 bar 
> rythm generator for my percussions students.
> Each rythm is an image wich appear on a canvas (they were initially 
> drawed using [filledcurved] and [drawpolygon] but as only GUI objects 
> are shown by PdDroid, it's the easiest way around i've thinked of when I 
> decided to make it usable on tablets)
> The canvas receives are listed in a [text define -k rythme_list] object 
> and randomly selected to be shown or not.
> As the knowledge of rythm depends on the student's level, I need this 
> rythm list to be editable from inside the app (so I don't have to edit 
> it all along the year for each of my pupils). That's where [text insert] 
> and [text delete] comes at play.
> It works fine on PdVanilla but does not on my android device.
> 
> The patch with comment, if needed, is attached.
> 
> Thanks
> 
> Arnault
> 
> 
> #N canvas 201 120 499 276 10;#X obj 1 207 text define -k rythme_list;#A 
> set mi \; di \; ka \; ta \;;#N canvas -8 -8 1366 726 gen 0;#X obj 200 16 
> cnv 15 120 120 empty empty coord 20 12 0 14 -233017 -66577
> 0;#X obj 57 13 r generate;#X obj 57 44 t b b;
> #N canvas -8 -8 1366 726 reset 0;
> #X obj 44 14 inlet;
> #X msg 44 81 \; \$1 pos 500 500;
> #X obj 44 48 list split 1;
> #X obj 9 49 t l;
> #X connect 0 0 2 0;
> #X connect 2 0 1 0;
> #X connect 2 1 3 0;
> #X connect 3 0 2 0;
> #X restore 47 402 pd reset;
> #N canvas -8 -8 1366 726 save_state 0;
> #X obj 81 124 list prepend;
> #X msg 81 82 \$1\$2;
> #X obj 81 46 inlet;
> #X obj 24 99 inlet;
> #X text 81 25 state;
> #X text 23 80 bang;
> #X obj 57 294 outlet;
> #X obj 81 163 t l;
> #X obj 57 236 list;
> #X obj 18 147 t b b b;
> #X connect 0 0 7 0;
> #X connect 1 0 0 0;
> #X connect 2 0 1 0;
> #X connect 3 0 9 0;
> #X connect 7 0 0 1;
> #X connect 7 0 8 1;
> #X connect 8 0 6 0;
> #X connect 9 0 8 1;
> #X connect 9 1 0 1;
> #X connect 9 2 8 0;
> #X restore 47 368 pd save_state;
> #N canvas -204 7 1366 719 instructions 0;
> #N canvas 708 35 454 358 list_gen 0;
> #X obj 63 115 text search rythme_list, f 11;
> #X obj 63 90 symbol;
> #X obj 63 156 sel -1;
> #X obj 226 246 list;
> #X obj 226 269 text insert rythme_list, f 11;
> #X obj 29 268 text delete rythme_list, f 12;
> #X obj 114 11 inlet;
> #X obj 2 308 outlet;
> #X obj 2 195 t b f;
> #X obj 63 189 t b b;
> #X obj 114 58 t l l;
> #X obj 114 36 list;
> #X text 147 122 text search works;
> #X text 110 260 can't find a way to make this work, f 13;
> #X text 299 263 can't find a way to make this work, f 14;
> #X connect 0 0 2 0;
> #X connect 1 0 0 0;
> #X connect 2 0 9 0;
> #X connect 2 1 8 0;
> #X connect 3 0 4 0;
> #X connect 6 0 11 0;
> #X connect 8 0 7 0;
> #X connect 8 1 5 0;
> #X connect 9 0 7 0;
> #X connect 9 1 3 0;
> #X connect 10 0 1 0;
> #X connect 10 1 3 1;
> #X connect 11 0 10 0;
> #X restore 433 115 pd list_gen;
> #X obj 400 255 random;
> #X obj 433 197 text size rythme_list;
> #X obj 400 294 text get rythme_list;
> #X obj 433 81 r rythme;
> #X obj 442 167 loadbang;
> #X msg 212 114 4;
> #N canvas -8 -8 1600 818 uzi 0;
> #X obj 27 142 until;
> #X obj 26 173 f;
> #X obj 72 174 + 1;
> #X obj 137 255 sel;
> #X obj 152 218 - 1;
> #X msg 137 297 0;
> #X obj 62 82 t f f;
> #X obj 85 446 outlet;
> #X obj 62 50 inlet;
> #X obj 28 379 t f b;
> #X obj 27 443 outlet;
> #X connect 0 0 1 0;
> #X connect 1 0 2 0;
> #X connect 1 0 3 0;
> #X connect 1 0 9 0;
> #X connect 2 0 1 1;
> #X connect 3 0 5 0;
> #X connect 4 0 3 1;
> #X connect 5 0 1 1;
> #X connect 6 0 0 0;
> #X connect 6 1 4 0;
> #X connect 8 0 6 0;
> #X connect 9 0 10 0;
> #X connect 9 1 7 0;
> #X restore 212 148 pd uzi;
> #N canvas -8 -8 1366 726 offset 0;
> #X obj 96 174 +;
> #X obj 96 140 *;
> #X obj 96 278 outlet;
> #X obj 33 52 inlet;
> #X obj 111 50 inlet;
> #X obj 205 50 inlet;
> #X text 36 31 uzi;
> #X text 201 30 x offset;
> #X text 97 29 canvas size x;
> #X obj 282 49 inlet;
> #X obj 107 230 pack f f;
> #X text 277 30 y offset;
> #X connect 0 0 10 0;
> #X connect 1 0 0 0;
> #X connect 3 0 1 0;
> #X connect 4 0 1 1;
> #X connect 5 0 0 1;
> #X connect 9 0 10 1;
> #X connect 10 0 2 0;
> #X restore 211 275 pd offset;
> #X obj 211 374 list prepend;
> #X obj 212 185 t f f;
> #X obj 211 349 list prepend;
> #X obj 280 313 + 1;
> #X msg 211 484 \; \$1\$2 pos \$3 \$4;
> #X obj 324 497 outlet;
> #X obj 212 80 inlet;
> #X obj 277 80 inlet;
> #X obj 317 80 inlet;
> #X obj 357 80 inlet;
> #X text 508 109 add/remove rythm from generation list, f 20;
> #X text 564 197 text size works;
> #X text 525 294 text get works;
> #X connect 0 0 2 0;
> #X connect 1 0 3 0;
> #X connect 2 0 1 1;
> #X connect 3 0 9 1;
> #X connect 4 0 0 0;
> #X connect 5 0 2 0;
> #X connect 6 0 7 0;
> #X connect 7 0 10 0;
> #X connect 7 1 1 0;
> #X connect 8 0 11 0;
> #X connect 9 0 13 0;
> #X connect 9 0 14 0;
> #X connect 10 0 8 0;
> #X connect 10 1 12 0;
> #X connect 11 0 9 0;
> #X connect 12 0 11 1;
> #X connect 15 0 6 0;
> #X connect 16 0 8 1;
> #X connect 17 0 8 2;
> #X connect 18 0 8 3;
> #X restore 122 301 pd instructions;
> #X msg 285 48 110;
> #X msg 286 80 40;
> #X msg 285 106 100;
> #X text 202 109 canva size x;
> #X text 267 79 x;
> #X text 267 48 y;
> #X obj 329 14 loadbang;
> #X text 135 369 keep list of shown canvas;
> #X text 102 404 send back shown canvas off screen;
> #X text 222 290 randomly select and move canvas on screen, f 17;
> #X obj 11 265 r clear;
> #X connect 1 0 2 0;
> #X connect 2 0 5 0;
> #X connect 2 1 4 0;
> #X connect 4 0 3 0;
> #X connect 5 0 4 1;
> #X connect 6 0 5 3;
> #X connect 7 0 5 2;
> #X connect 8 0 5 1;
> #X connect 12 0 6 0;
> #X connect 12 0 7 0;
> #X connect 12 0 8 0;
> #X connect 16 0 4 0;
> #X restore 60 240 pd gen;
> #N canvas -8 -8 1366 726 add 0;
> #N canvas -8 -8 1366 726 uzi 0;
> #X obj 27 142 until;
> #X obj 26 173 f;
> #X obj 72 174 + 1;
> #X obj 137 255 sel;
> #X obj 152 218 - 1;
> #X msg 137 297 0;
> #X obj 62 82 t f f;
> #X obj 85 446 outlet;
> #X obj 62 50 inlet;
> #X obj 28 379 t f b;
> #X obj 27 443 outlet;
> #X connect 0 0 1 0;
> #X connect 1 0 2 0;
> #X connect 1 0 3 0;
> #X connect 1 0 9 0;
> #X connect 2 0 1 1;
> #X connect 3 0 5 0;
> #X connect 4 0 3 1;
> #X connect 5 0 1 1;
> #X connect 6 0 0 0;
> #X connect 6 1 4 0;
> #X connect 8 0 6 0;
> #X connect 9 0 10 0;
> #X connect 9 1 7 0;
> #X restore 42 121 pd uzi;
> #X obj 72 196 symbol;
> #X msg 42 96 4;
> #X obj 44 60 t b a;
> #X obj 42 249 list prepend;
> #X obj 42 176 + 1;
> #X text 12 24 name;
> #X msg 42 284 \; pd-droidparty_main.pd obj 500 500 cnv 50 100 50 \$1
> \$1\$2 \$1 20 12 2 14 10 2;
> #X msg 45 23 ta;
> #X connect 0 0 5 0;
> #X connect 1 0 4 1;
> #X connect 2 0 0 0;
> #X connect 3 0 2 0;
> #X connect 3 1 1 0;
> #X connect 4 0 7 0;
> #X connect 5 0 4 0;
> #X connect 8 0 3 0;
> #X restore 1 240 pd add;
> #X obj 500 500 cnv 50 100 50 mi mi2 mi 20 12 2 14 -233017 -66577 0
> ;
> #X obj 500 500 cnv 50 100 50 mi mi3 mi 20 12 2 14 -233017 -66577 0
> ;
> #X obj 500 500 cnv 50 100 50 mi mi4 mi 20 12 2 14 -233017 -66577 0
> ;
> #X obj 500 500 cnv 50 100 50 di di1 di 20 12 2 14 -233017 -66577 0
> ;
> #X obj 500 500 cnv 50 100 50 di di2 di 20 12 2 14 -233017 -66577 0
> ;
> #X obj 500 500 cnv 50 100 50 di di3 di 20 12 2 14 -233017 -66577 0
> ;
> #X obj 500 500 cnv 50 100 50 di di4 di 20 12 2 14 -233017 -66577 0
> ;
> #X obj 500 500 cnv 50 100 50 ka ka1 ka 20 12 2 14 -233017 -66577 0
> ;
> #X obj 500 500 cnv 50 100 50 ka ka2 ka 20 12 2 14 -233017 -66577 0
> ;
> #X obj 500 500 cnv 50 100 50 ka ka3 ka 20 12 2 14 -233017 -66577 0
> ;
> #X obj 500 500 cnv 50 100 50 ka ka4 ka 20 12 2 14 -233017 -66577 0
> ;
> #X obj 500 500 cnv 50 100 50 ta ta1 ta 20 12 2 14 -233017 -66577 0
> ;
> #X obj 500 500 cnv 50 100 50 ta ta2 ta 20 12 2 14 -233017 -66577 0
> ;
> #X obj 500 500 cnv 50 100 50 ta ta3 ta 20 12 2 14 -233017 -66577 0
> ;
> #X obj 500 500 cnv 50 100 50 ta ta4 ta 20 12 2 14 -233017 -66577 0
> ;
> #N canvas -8 -8 1366 686 interface 0;
> #X msg 13 204 ta;
> #X msg 20 161 ka;
> #X msg 33 119 di;
> #X msg 49 77 mi;
> #X msg 82 37 taka;
> #X msg 128 36 tadi;
> #X msg 173 35 tami;
> #X msg 264 36 kami;
> #X msg 308 37 dimi;
> #X msg 218 36 kadi;
> #X msg 352 47 takadi;
> #X msg 357 92 takami;
> #X msg 363 137 tadimi;
> #X msg 371 181 kadimi;
> #X msg 375 227 takadimi;
> #X obj 13 183 r ta;
> #X obj 20 140 r ka;
> #X obj 33 98 r di;
> #X obj 49 55 r mi;
> #X obj 82 15 r taka;
> #X obj 128 15 r tadi;
> #X obj 173 14 r tami;
> #X obj 218 14 r kadi;
> #X obj 264 13 r kami;
> #X obj 308 13 r dimi;
> #X obj 352 24 r takadi;
> #X obj 357 69 r takami;
> #X obj 363 113 r tadimi;
> #X obj 371 158 r kadimi;
> #X obj 375 203 r takadimi;
> #X obj 186 310 outlet;
> #X obj 14 232 r chut;
> #X msg 14 255 chut;
> #X connect 0 0 30 0;
> #X connect 1 0 30 0;
> #X connect 2 0 30 0;
> #X connect 3 0 30 0;
> #X connect 4 0 30 0;
> #X connect 5 0 30 0;
> #X connect 6 0 30 0;
> #X connect 7 0 30 0;
> #X connect 8 0 30 0;
> #X connect 9 0 30 0;
> #X connect 10 0 30 0;
> #X connect 11 0 30 0;
> #X connect 12 0 30 0;
> #X connect 13 0 30 0;
> #X connect 14 0 30 0;
> #X connect 15 0 0 0;
> #X connect 16 0 1 0;
> #X connect 17 0 2 0;
> #X connect 18 0 3 0;
> #X connect 19 0 4 0;
> #X connect 20 0 5 0;
> #X connect 21 0 6 0;
> #X connect 22 0 9 0;
> #X connect 23 0 7 0;
> #X connect 24 0 8 0;
> #X connect 25 0 10 0;
> #X connect 26 0 11 0;
> #X connect 27 0 12 0;
> #X connect 28 0 13 0;
> #X connect 29 0 14 0;
> #X connect 31 0 32 0;
> #X connect 32 0 30 0;
> #X restore 245 209 pd interface;
> #X obj 245 239 s rythme;
> #X obj 16 10 bng 50 250 50 0 generate empty gen 17 22 0 10 -262144
> -1 -1;
> #X obj 166 6 bng 50 250 50 0 clear empty clear 14 22 0 10 -262144 -1
> -1;
> #X obj 290 8 bng 15 250 50 0 ta empty ta 17 7 0 10 -262144 -1 -1;
> #X obj 290 27 bng 15 250 50 0 ka empty ka 17 7 0 10 -262144 -1 -1;
> #X obj 290 44 bng 15 250 50 0 di empty di 17 7 0 10 -262144 -1 -1;
> #X obj 290 62 bng 15 250 50 0 mi empty mi 17 7 0 10 -262144 -1 -1;
> #X obj 500 500 cnv 50 100 50 mi mi1 mi 20 12 2 14 -233017 -66577 0
> ;
> #X text 68 4 randomly move canvas with svg imagesto build a 4/4 mesure
> , f 15;
> #X text 327 203 receive bang from ta/ka/di/mi bang and send rythme
> message to list_gen subpatch, f 25;
> #X text 321 -2 supposed to add or delete lines in rythme_list text
> object (work on Pc but not on Droidparty (see list_gen subpatch embed
> in the instruction subpatch inside gen subpatch, f 26;
> #X connect 18 0 19 0;
> 
> 

-- 
http://mccormick.cx/



More information about the Pd-list mailing list