aboutsummaryrefslogtreecommitdiff
path: root/examples/4.table_fifo.pd
blob: 5298a149e7ed9c28efa404da41dff6b559ee041e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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;