<div dir="ltr"><div>Hi,</div><div><br></div><div>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.</div><div>Is it even possible or should I try to figure a way using lists (wich would be drag since I can't find how to make [list store] work either) ?<br></div><div><br></div><div>This patch does not involve audio treatment at all but is a 4/4 bar rythm generator for my percussions students.</div><div>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)</div><div>The canvas receives are listed in a [text define -k rythme_list] object and randomly selected to be shown or not.</div><div>As the knowledge of rythm depends on the student's level, I need this rythm list to be editable from inside the patch (so I don't have to edit it all along the year for each of my pupils). That's where [text insert] and [text delet] comes at play.<br></div><div>

 It works fine on Pd but does not on my android device.



<br></div><div><br></div><div>The patch with comment, if needed, is attached.</div><div><br></div><div>Thanks</div><div><br></div><div>Arnult<br></div><div><br></div><div>Bonjour,</div><div><br></div><div>Je cherche à réaliser un patch utilisable avec PdDroidParty dans lequel j'ai besoin de pouvoir éditer dynamiquement les données contenu dans un objet [text]. Cependant, je ne parviens pas a faire fonctionner ni [text insert], ni [text delete], ces objets sont-ils sup^porté ou me faut-il envisager de repenser la chose en n'utilisant que des list (ce qui ne va pas être aisé puisque je ne parviens pas à utiliser [list store] non plus) ?</div><div><br></div><div>Ce patch n'implique aucun traitement audio, iul s'agit d'un générateur de rythme sur une mesure à 4 temps pour mes élèves percussionnistes.</div><div>Chaque rythme est une image svg qui s'affiche sur un canvas (ils étaient initiallement dessinés via [drawpolygon] et [filledcurve], mais comme PdDroid n'affiche que les GUI, c'est la manière la plus simple qui me soit venu à l'esprit pour en faire une version utilisable sur android).</div><div>Les receive des canvas sont stockés dans un objet [text define -k rythme_list] et sélectionnés aléatoirement pour générer une mesure à 4 temps.</div><div>La maîtrise des rythmes dépendant du niveau de l'élève, il faut que cette list soit modifiable depuis le patch (afin de m'éviter d'en réaliser une version par élèves à chaque moment de l'année), ce pour quoi je souhaiterais utiliser [text insert] et [text delete].</div><div><br></div><div>Le patch commenté est joint, à toute fin utile.</div><div><br></div><div>Merci</div><div><br></div><div>Arnault</div><div><br></div><div>#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<br>0;#X obj 57 13 r generate;#X obj 57 44 t b b;<br>#N canvas -8 -8 1366 726 reset 0;<br>#X obj 44 14 inlet;<br>#X msg 44 81 \; \$1 pos 500 500;<br>#X obj 44 48 list split 1;<br>#X obj 9 49 t l;<br>#X connect 0 0 2 0;<br>#X connect 2 0 1 0;<br>#X connect 2 1 3 0;<br>#X connect 3 0 2 0;<br>#X restore 47 402 pd reset;<br>#N canvas -8 -8 1366 726 save_state 0;<br>#X obj 81 124 list prepend;<br>#X msg 81 82 \$1\$2;<br>#X obj 81 46 inlet;<br>#X obj 24 99 inlet;<br>#X text 81 25 state;<br>#X text 23 80 bang;<br>#X obj 57 294 outlet;<br>#X obj 81 163 t l;<br>#X obj 57 236 list;<br>#X obj 18 147 t b b b;<br>#X connect 0 0 7 0;<br>#X connect 1 0 0 0;<br>#X connect 2 0 1 0;<br>#X connect 3 0 9 0;<br>#X connect 7 0 0 1;<br>#X connect 7 0 8 1;<br>#X connect 8 0 6 0;<br>#X connect 9 0 8 1;<br>#X connect 9 1 0 1;<br>#X connect 9 2 8 0;<br>#X restore 47 368 pd save_state;<br>#N canvas -204 7 1366 719 instructions 0;<br>#N canvas 708 35 454 358 list_gen 0;<br>#X obj 63 115 text search rythme_list, f 11;<br>#X obj 63 90 symbol;<br>#X obj 63 156 sel -1;<br>#X obj 226 246 list;<br>#X obj 226 269 text insert rythme_list, f 11;<br>#X obj 29 268 text delete rythme_list, f 12;<br>#X obj 114 11 inlet;<br>#X obj 2 308 outlet;<br>#X obj 2 195 t b f;<br>#X obj 63 189 t b b;<br>#X obj 114 58 t l l;<br>#X obj 114 36 list;<br>#X text 147 122 text search works;<br>#X text 110 260 can't find a way to make this work, f 13;<br>#X text 299 263 can't find a way to make this work, f 14;<br>#X connect 0 0 2 0;<br>#X connect 1 0 0 0;<br>#X connect 2 0 9 0;<br>#X connect 2 1 8 0;<br>#X connect 3 0 4 0;<br>#X connect 6 0 11 0;<br>#X connect 8 0 7 0;<br>#X connect 8 1 5 0;<br>#X connect 9 0 7 0;<br>#X connect 9 1 3 0;<br>#X connect 10 0 1 0;<br>#X connect 10 1 3 1;<br>#X connect 11 0 10 0;<br>#X restore 433 115 pd list_gen;<br>#X obj 400 255 random;<br>#X obj 433 197 text size rythme_list;<br>#X obj 400 294 text get rythme_list;<br>#X obj 433 81 r rythme;<br>#X obj 442 167 loadbang;<br>#X msg 212 114 4;<br>#N canvas -8 -8 1600 818 uzi 0;<br>#X obj 27 142 until;<br>#X obj 26 173 f;<br>#X obj 72 174 + 1;<br>#X obj 137 255 sel;<br>#X obj 152 218 - 1;<br>#X msg 137 297 0;<br>#X obj 62 82 t f f;<br>#X obj 85 446 outlet;<br>#X obj 62 50 inlet;<br>#X obj 28 379 t f b;<br>#X obj 27 443 outlet;<br>#X connect 0 0 1 0;<br>#X connect 1 0 2 0;<br>#X connect 1 0 3 0;<br>#X connect 1 0 9 0;<br>#X connect 2 0 1 1;<br>#X connect 3 0 5 0;<br>#X connect 4 0 3 1;<br>#X connect 5 0 1 1;<br>#X connect 6 0 0 0;<br>#X connect 6 1 4 0;<br>#X connect 8 0 6 0;<br>#X connect 9 0 10 0;<br>#X connect 9 1 7 0;<br>#X restore 212 148 pd uzi;<br>#N canvas -8 -8 1366 726 offset 0;<br>#X obj 96 174 +;<br>#X obj 96 140 *;<br>#X obj 96 278 outlet;<br>#X obj 33 52 inlet;<br>#X obj 111 50 inlet;<br>#X obj 205 50 inlet;<br>#X text 36 31 uzi;<br>#X text 201 30 x offset;<br>#X text 97 29 canvas size x;<br>#X obj 282 49 inlet;<br>#X obj 107 230 pack f f;<br>#X text 277 30 y offset;<br>#X connect 0 0 10 0;<br>#X connect 1 0 0 0;<br>#X connect 3 0 1 0;<br>#X connect 4 0 1 1;<br>#X connect 5 0 0 1;<br>#X connect 9 0 10 1;<br>#X connect 10 0 2 0;<br>#X restore 211 275 pd offset;<br>#X obj 211 374 list prepend;<br>#X obj 212 185 t f f;<br>#X obj 211 349 list prepend;<br>#X obj 280 313 + 1;<br>#X msg 211 484 \; \$1\$2 pos \$3 \$4;<br>#X obj 324 497 outlet;<br>#X obj 212 80 inlet;<br>#X obj 277 80 inlet;<br>#X obj 317 80 inlet;<br>#X obj 357 80 inlet;<br>#X text 508 109 add/remove rythm from generation list, f 20;<br>#X text 564 197 text size works;<br>#X text 525 294 text get works;<br>#X connect 0 0 2 0;<br>#X connect 1 0 3 0;<br>#X connect 2 0 1 1;<br>#X connect 3 0 9 1;<br>#X connect 4 0 0 0;<br>#X connect 5 0 2 0;<br>#X connect 6 0 7 0;<br>#X connect 7 0 10 0;<br>#X connect 7 1 1 0;<br>#X connect 8 0 11 0;<br>#X connect 9 0 13 0;<br>#X connect 9 0 14 0;<br>#X connect 10 0 8 0;<br>#X connect 10 1 12 0;<br>#X connect 11 0 9 0;<br>#X connect 12 0 11 1;<br>#X connect 15 0 6 0;<br>#X connect 16 0 8 1;<br>#X connect 17 0 8 2;<br>#X connect 18 0 8 3;<br>#X restore 122 301 pd instructions;<br>#X msg 285 48 110;<br>#X msg 286 80 40;<br>#X msg 285 106 100;<br>#X text 202 109 canva size x;<br>#X text 267 79 x;<br>#X text 267 48 y;<br>#X obj 329 14 loadbang;<br>#X text 135 369 keep list of shown canvas;<br>#X text 102 404 send back shown canvas off screen;<br>#X text 222 290 randomly select and move canvas on screen, f 17;<br>#X obj 11 265 r clear;<br>#X connect 1 0 2 0;<br>#X connect 2 0 5 0;<br>#X connect 2 1 4 0;<br>#X connect 4 0 3 0;<br>#X connect 5 0 4 1;<br>#X connect 6 0 5 3;<br>#X connect 7 0 5 2;<br>#X connect 8 0 5 1;<br>#X connect 12 0 6 0;<br>#X connect 12 0 7 0;<br>#X connect 12 0 8 0;<br>#X connect 16 0 4 0;<br>#X restore 60 240 pd gen;<br>#N canvas -8 -8 1366 726 add 0;<br>#N canvas -8 -8 1366 726 uzi 0;<br>#X obj 27 142 until;<br>#X obj 26 173 f;<br>#X obj 72 174 + 1;<br>#X obj 137 255 sel;<br>#X obj 152 218 - 1;<br>#X msg 137 297 0;<br>#X obj 62 82 t f f;<br>#X obj 85 446 outlet;<br>#X obj 62 50 inlet;<br>#X obj 28 379 t f b;<br>#X obj 27 443 outlet;<br>#X connect 0 0 1 0;<br>#X connect 1 0 2 0;<br>#X connect 1 0 3 0;<br>#X connect 1 0 9 0;<br>#X connect 2 0 1 1;<br>#X connect 3 0 5 0;<br>#X connect 4 0 3 1;<br>#X connect 5 0 1 1;<br>#X connect 6 0 0 0;<br>#X connect 6 1 4 0;<br>#X connect 8 0 6 0;<br>#X connect 9 0 10 0;<br>#X connect 9 1 7 0;<br>#X restore 42 121 pd uzi;<br>#X obj 72 196 symbol;<br>#X msg 42 96 4;<br>#X obj 44 60 t b a;<br>#X obj 42 249 list prepend;<br>#X obj 42 176 + 1;<br>#X text 12 24 name;<br>#X msg 42 284 \; pd-droidparty_main.pd obj 500 500 cnv 50 100 50 \$1<br>\$1\$2 \$1 20 12 2 14 10 2;<br>#X msg 45 23 ta;<br>#X connect 0 0 5 0;<br>#X connect 1 0 4 1;<br>#X connect 2 0 0 0;<br>#X connect 3 0 2 0;<br>#X connect 3 1 1 0;<br>#X connect 4 0 7 0;<br>#X connect 5 0 4 0;<br>#X connect 8 0 3 0;<br>#X restore 1 240 pd add;<br>#X obj 500 500 cnv 50 100 50 mi mi2 mi 20 12 2 14 -233017 -66577 0<br>;<br>#X obj 500 500 cnv 50 100 50 mi mi3 mi 20 12 2 14 -233017 -66577 0<br>;<br>#X obj 500 500 cnv 50 100 50 mi mi4 mi 20 12 2 14 -233017 -66577 0<br>;<br>#X obj 500 500 cnv 50 100 50 di di1 di 20 12 2 14 -233017 -66577 0<br>;<br>#X obj 500 500 cnv 50 100 50 di di2 di 20 12 2 14 -233017 -66577 0<br>;<br>#X obj 500 500 cnv 50 100 50 di di3 di 20 12 2 14 -233017 -66577 0<br>;<br>#X obj 500 500 cnv 50 100 50 di di4 di 20 12 2 14 -233017 -66577 0<br>;<br>#X obj 500 500 cnv 50 100 50 ka ka1 ka 20 12 2 14 -233017 -66577 0<br>;<br>#X obj 500 500 cnv 50 100 50 ka ka2 ka 20 12 2 14 -233017 -66577 0<br>;<br>#X obj 500 500 cnv 50 100 50 ka ka3 ka 20 12 2 14 -233017 -66577 0<br>;<br>#X obj 500 500 cnv 50 100 50 ka ka4 ka 20 12 2 14 -233017 -66577 0<br>;<br>#X obj 500 500 cnv 50 100 50 ta ta1 ta 20 12 2 14 -233017 -66577 0<br>;<br>#X obj 500 500 cnv 50 100 50 ta ta2 ta 20 12 2 14 -233017 -66577 0<br>;<br>#X obj 500 500 cnv 50 100 50 ta ta3 ta 20 12 2 14 -233017 -66577 0<br>;<br>#X obj 500 500 cnv 50 100 50 ta ta4 ta 20 12 2 14 -233017 -66577 0<br>;<br>#N canvas -8 -8 1366 686 interface 0;<br>#X msg 13 204 ta;<br>#X msg 20 161 ka;<br>#X msg 33 119 di;<br>#X msg 49 77 mi;<br>#X msg 82 37 taka;<br>#X msg 128 36 tadi;<br>#X msg 173 35 tami;<br>#X msg 264 36 kami;<br>#X msg 308 37 dimi;<br>#X msg 218 36 kadi;<br>#X msg 352 47 takadi;<br>#X msg 357 92 takami;<br>#X msg 363 137 tadimi;<br>#X msg 371 181 kadimi;<br>#X msg 375 227 takadimi;<br>#X obj 13 183 r ta;<br>#X obj 20 140 r ka;<br>#X obj 33 98 r di;<br>#X obj 49 55 r mi;<br>#X obj 82 15 r taka;<br>#X obj 128 15 r tadi;<br>#X obj 173 14 r tami;<br>#X obj 218 14 r kadi;<br>#X obj 264 13 r kami;<br>#X obj 308 13 r dimi;<br>#X obj 352 24 r takadi;<br>#X obj 357 69 r takami;<br>#X obj 363 113 r tadimi;<br>#X obj 371 158 r kadimi;<br>#X obj 375 203 r takadimi;<br>#X obj 186 310 outlet;<br>#X obj 14 232 r chut;<br>#X msg 14 255 chut;<br>#X connect 0 0 30 0;<br>#X connect 1 0 30 0;<br>#X connect 2 0 30 0;<br>#X connect 3 0 30 0;<br>#X connect 4 0 30 0;<br>#X connect 5 0 30 0;<br>#X connect 6 0 30 0;<br>#X connect 7 0 30 0;<br>#X connect 8 0 30 0;<br>#X connect 9 0 30 0;<br>#X connect 10 0 30 0;<br>#X connect 11 0 30 0;<br>#X connect 12 0 30 0;<br>#X connect 13 0 30 0;<br>#X connect 14 0 30 0;<br>#X connect 15 0 0 0;<br>#X connect 16 0 1 0;<br>#X connect 17 0 2 0;<br>#X connect 18 0 3 0;<br>#X connect 19 0 4 0;<br>#X connect 20 0 5 0;<br>#X connect 21 0 6 0;<br>#X connect 22 0 9 0;<br>#X connect 23 0 7 0;<br>#X connect 24 0 8 0;<br>#X connect 25 0 10 0;<br>#X connect 26 0 11 0;<br>#X connect 27 0 12 0;<br>#X connect 28 0 13 0;<br>#X connect 29 0 14 0;<br>#X connect 31 0 32 0;<br>#X connect 32 0 30 0;<br>#X restore 245 209 pd interface;<br>#X obj 245 239 s rythme;<br>#X obj 16 10 bng 50 250 50 0 generate empty gen 17 22 0 10 -262144<br>-1 -1;<br>#X obj 166 6 bng 50 250 50 0 clear empty clear 14 22 0 10 -262144 -1<br>-1;<br>#X obj 290 8 bng 15 250 50 0 ta empty ta 17 7 0 10 -262144 -1 -1;<br>#X obj 290 27 bng 15 250 50 0 ka empty ka 17 7 0 10 -262144 -1 -1;<br>#X obj 290 44 bng 15 250 50 0 di empty di 17 7 0 10 -262144 -1 -1;<br>#X obj 290 62 bng 15 250 50 0 mi empty mi 17 7 0 10 -262144 -1 -1;<br>#X obj 500 500 cnv 50 100 50 mi mi1 mi 20 12 2 14 -233017 -66577 0<br>;<br>#X text 68 4 randomly move canvas with svg imagesto build a 4/4 mesure<br>, f 15;<br>#X text 327 203 receive bang from ta/ka/di/mi bang and send rythme<br>message to list_gen subpatch, f 25;<br>#X text 321 -2 supposed to add or delete lines in rythme_list text<br>object (work on Pc but not on Droidparty (see list_gen subpatch embed<br>in the instruction subpatch inside gen subpatch, f 26;<br>#X connect 18 0 19 0;<br><br></div></div>