aboutsummaryrefslogtreecommitdiff
path: root/examples/4.table_fifo.pd
diff options
context:
space:
mode:
Diffstat (limited to 'examples/4.table_fifo.pd')
-rw-r--r--examples/4.table_fifo.pd48
1 files changed, 48 insertions, 0 deletions
diff --git a/examples/4.table_fifo.pd b/examples/4.table_fifo.pd
new file mode 100644
index 0000000..5298a14
--- /dev/null
+++ b/examples/4.table_fifo.pd
@@ -0,0 +1,48 @@
+#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;