#N canvas 229 287 614 675 10; #X declare -path ..; #N canvas 0 22 450 300 (subpatch) 0; #X array data 100 float 2; #X coords 0 1 99 -1 200 140 1 0 0; #X restore 372 333 graph; #X text 30 23 Basic sharing of memory data between two pd instances ; #X msg 44 306 pd~ stop; #X obj 512 20 loadbang; #X msg 512 41 \; pd dsp 1; #X text 29 260 launch subprocess; #X obj 39 52 declare -path ..; #X obj 54 473 t f f; #X obj 81 498 ==; #X obj 81 518 sel 1; #X obj 81 540 print erreur de syncro; #X obj 27 453 sel 0; #X text 30 81 in order to share quicklly updated table \, in a syncronised way \, we need a data fifo; #X text 30 113 only the index of the wrinting position is passed throw stdout of the pd~ \, in order to keep data syncronisation; #X text 134 509 thanks to the fifo \, there are no more syncronisation problem; #X text 30 165 Round trip fifo is set to 50 blocs (72ms at 44.1KHz) ; #X text 30 182 metro is set to 5ms \, so maximum jitter can be 72/5 = 25 bang; #X text 28 208 So \, lets use a memory size of 2500; #X obj 27 434 shmem 1004 2500; #X msg 27 413 memdump \$1 data; #X msg 27 279 pd~ start 4.table_fifo-subprocess.pd; #X obj 27 374 route syncro; #X obj 27 394 * 100; #X obj 27 353 pd~ -ninsig 0 -noutsig 0 -fifo 50; #X connect 2 0 23 0; #X connect 3 0 4 0; #X connect 7 0 8 1; #X connect 7 1 8 0; #X connect 8 0 9 0; #X connect 9 0 10 0; #X connect 11 1 7 0; #X connect 18 0 11 0; #X connect 19 0 18 0; #X connect 20 0 23 0; #X connect 21 0 22 0; #X connect 22 0 19 0; #X connect 23 0 21 0;