aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCyrille Henry <nusmuk@users.sourceforge.net>2012-11-02 20:48:39 +0000
committerCyrille Henry <nusmuk@users.sourceforge.net>2012-11-02 20:48:39 +0000
commit533a75a9f57f73711e7e3c5afef0ce83f632ca4c (patch)
treefe993107368de483579f729a2514cdaf7106a855
parentc91564bfae33b251d39dac61179a32835af6781e (diff)
more examples...
svn path=/trunk/externals/share_mem/; revision=16522
-rw-r--r--Makefile2
-rw-r--r--examples/1.basic_example-subprocess.pd72
-rw-r--r--examples/1.basic_example.pd39
-rw-r--r--examples/2.lazy_syncro-subprocess.pd57
-rw-r--r--examples/2.lazy_syncro.pd25
-rw-r--r--examples/3.syncro_jitter-subprocess.pd47
-rw-r--r--examples/3.syncro_jitter.pd50
-rw-r--r--examples/4.table_fifo-subprocess.pd64
-rw-r--r--examples/4.table_fifo.pd48
-rw-r--r--examples/5.audio-subprocess.pd (renamed from examples/2.audio-subprocess.pd)0
-rw-r--r--examples/5.audio.pd (renamed from examples/2.audio.pd)4
11 files changed, 340 insertions, 68 deletions
diff --git a/Makefile b/Makefile
index bdb64fa..393bb45 100644
--- a/Makefile
+++ b/Makefile
@@ -13,7 +13,7 @@ SOURCES = shmem.c
PDOBJECTS = shmem_receive~.pd shmem_send~.pd
# example patches and related files, in the 'examples' subfolder
-EXAMPLES = 1.basic_example.pd 1.basic_example-subprocess.pd 2.audio.pd 2.audio-subprocess.pd
+EXAMPLES = 1.basic_example.pd 1.basic_example-subprocess.pd 2.lazy_syncro.pd 2.lazy_syncro-subprocess.pd 3.syncro_jitter.pd 3.syncro_jitter-subprocess.pd 4.table_fifo.pd 4.table_fifo-subprocess.pd 5.audio.pd 5.audio-subprocess.pd
# manuals and related files, in the 'manual' subfolder
MANUAL =
diff --git a/examples/1.basic_example-subprocess.pd b/examples/1.basic_example-subprocess.pd
index 2e29022..7539a47 100644
--- a/examples/1.basic_example-subprocess.pd
+++ b/examples/1.basic_example-subprocess.pd
@@ -1,57 +1,25 @@
-#N canvas 845 216 758 599 10;
+#N canvas 1203 206 570 408 10;
#X declare -path ..;
#N canvas 0 22 450 300 (subpatch) 0;
#X array data2 100 float 2;
-#X coords 0 1 99 0 200 140 1 0 0;
-#X restore 354 43 graph;
-#X obj 60 415 loadbang;
-#X msg 60 436 \; pd dsp 1;
-#X obj 245 208 f 0;
-#X obj 276 209 + 1;
-#X obj 275 231 % 100;
-#X obj 245 254 t f f;
-#X obj 290 319 metro 20000;
-#X obj 290 370 line;
-#X obj 246 393 *;
-#X obj 246 420 t f f;
-#X obj 271 443 int;
-#X obj 246 465 -;
-#X obj 246 290 / 100;
-#X msg 290 343 1 \, 10 20000;
-#X obj 290 290 loadbang;
-#X obj 67 85 metro 100;
-#X text 63 207 writing to the shared memory;
-#X obj 86 264 shmem 1003 100;
-#X obj 67 50 loadbang;
-#X obj 139 51 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
--1;
-#X obj 246 496 tabwrite data2;
-#X msg 86 230 memset 0 data2;
-#X obj 67 110 t b b b;
-#X obj 67 315 stdout;
-#X text 326 232 writing evolving data to array;
-#X obj 66 16 declare -path ..;
+#X coords 0 1 99 -1 200 140 1 0 0;
+#X restore 326 209 graph;
+#X obj 210 22 loadbang;
+#X msg 210 43 \; pd dsp 1;
+#X obj 33 19 declare -path ..;
+#X obj 33 96 metro 50;
+#X obj 33 57 loadbang;
+#X obj 33 77 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
+;
+#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 325 38 graph;
+#X text 51 138 read and write to the shared memory;
+#X msg 33 156 memdump 0 data \, memset 100 data2;
+#X obj 33 176 shmem 1001 200;
#X connect 1 0 2 0;
-#X connect 3 0 4 0;
-#X connect 3 0 6 0;
-#X connect 4 0 5 0;
-#X connect 5 0 3 1;
-#X connect 6 0 13 0;
-#X connect 6 1 21 1;
-#X connect 7 0 14 0;
-#X connect 8 0 9 1;
+#X connect 4 0 9 0;
+#X connect 5 0 6 0;
+#X connect 6 0 4 0;
#X connect 9 0 10 0;
-#X connect 10 0 12 0;
-#X connect 10 1 11 0;
-#X connect 11 0 12 1;
-#X connect 12 0 21 0;
-#X connect 13 0 9 0;
-#X connect 14 0 8 0;
-#X connect 15 0 7 0;
-#X connect 16 0 23 0;
-#X connect 19 0 16 0;
-#X connect 20 0 16 0;
-#X connect 22 0 18 0;
-#X connect 23 0 24 0;
-#X connect 23 1 22 0;
-#X connect 23 2 3 0;
diff --git a/examples/1.basic_example.pd b/examples/1.basic_example.pd
index e065bf8..dbb00dc 100644
--- a/examples/1.basic_example.pd
+++ b/examples/1.basic_example.pd
@@ -1,23 +1,36 @@
-#N canvas 212 155 626 385 10;
+#N canvas 557 101 630 649 10;
#X declare -path ..;
#N canvas 0 22 450 300 (subpatch) 0;
#X array data 100 float 2;
-#X coords 0 1 99 0 200 140 1 0 0;
-#X restore 374 162 graph;
+#X coords 0 1 99 -1 200 140 1 0 0;
+#X restore 28 269 graph;
#X text 30 23 Basic sharing of memory data between two pd instances
;
-#X msg 48 194 pd~ stop;
-#X text 133 262 synchronised reading;
-#X obj 29 284 shmem 1003 100;
-#X msg 29 260 memdump 0 data;
+#X msg 48 174 pd~ stop;
#X obj 512 20 loadbang;
#X msg 512 41 \; pd dsp 1;
#X text 44 116 launch subprocess;
-#X obj 29 222 pd~ -ninsig 0 -noutsig 0 -fifo 20;
#X obj 39 52 declare -path ..;
#X msg 29 138 pd~ start 1.basic_example-subprocess.pd;
-#X connect 2 0 9 0;
-#X connect 5 0 4 0;
-#X connect 6 0 7 0;
-#X connect 9 0 5 0;
-#X connect 11 0 9 0;
+#X obj 373 155 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+1;
+#X obj 373 174 metro 50;
+#X obj 373 134 loadbang;
+#N canvas 0 22 450 300 (subpatch) 0;
+#X array data2 100 float 2;
+#X coords 0 1 99 -1 200 140 1 0 0;
+#X restore 29 479 graph;
+#X text 26 236 change this table \, see it moving in the subprocess
+;
+#X text 28 446 change data2 in the subprocess \, see it moving here
+;
+#X msg 373 194 memset 0 data \, memdump 100 data2;
+#X obj 373 218 shmem 1001 200;
+#X obj 29 202 pd~ -ninsig 0 -noutsig 0 -fifo 20;
+#X connect 2 0 16 0;
+#X connect 3 0 4 0;
+#X connect 7 0 16 0;
+#X connect 8 0 9 0;
+#X connect 9 0 14 0;
+#X connect 10 0 8 0;
+#X connect 14 0 15 0;
diff --git a/examples/2.lazy_syncro-subprocess.pd b/examples/2.lazy_syncro-subprocess.pd
new file mode 100644
index 0000000..8ddbbbc
--- /dev/null
+++ b/examples/2.lazy_syncro-subprocess.pd
@@ -0,0 +1,57 @@
+#N canvas 837 240 758 599 10;
+#X declare -path ..;
+#N canvas 0 22 450 300 (subpatch) 0;
+#X array data2 100 float 2;
+#X coords 0 1 99 0 200 140 1 0 0;
+#X restore 354 43 graph;
+#X obj 60 415 loadbang;
+#X msg 60 436 \; pd dsp 1;
+#X obj 245 208 f 0;
+#X obj 276 209 + 1;
+#X obj 275 231 % 100;
+#X obj 245 254 t f f;
+#X obj 290 319 metro 20000;
+#X obj 290 370 line;
+#X obj 246 393 *;
+#X obj 246 420 t f f;
+#X obj 271 443 int;
+#X obj 246 465 -;
+#X obj 246 290 / 100;
+#X msg 290 343 1 \, 10 20000;
+#X obj 290 290 loadbang;
+#X obj 67 85 metro 100;
+#X text 63 207 writing to the shared memory;
+#X obj 67 50 loadbang;
+#X obj 139 51 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 246 496 tabwrite data2;
+#X msg 86 230 memset 0 data2;
+#X obj 67 110 t b b b;
+#X obj 67 315 stdout;
+#X text 326 232 writing evolving data to array;
+#X obj 66 16 declare -path ..;
+#X obj 86 264 shmem 1002 100;
+#X connect 1 0 2 0;
+#X connect 3 0 4 0;
+#X connect 3 0 6 0;
+#X connect 4 0 5 0;
+#X connect 5 0 3 1;
+#X connect 6 0 13 0;
+#X connect 6 1 20 1;
+#X connect 7 0 14 0;
+#X connect 8 0 9 1;
+#X connect 9 0 10 0;
+#X connect 10 0 12 0;
+#X connect 10 1 11 0;
+#X connect 11 0 12 1;
+#X connect 12 0 20 0;
+#X connect 13 0 9 0;
+#X connect 14 0 8 0;
+#X connect 15 0 7 0;
+#X connect 16 0 22 0;
+#X connect 18 0 16 0;
+#X connect 19 0 16 0;
+#X connect 21 0 26 0;
+#X connect 22 0 23 0;
+#X connect 22 1 21 0;
+#X connect 22 2 3 0;
diff --git a/examples/2.lazy_syncro.pd b/examples/2.lazy_syncro.pd
new file mode 100644
index 0000000..14b2549
--- /dev/null
+++ b/examples/2.lazy_syncro.pd
@@ -0,0 +1,25 @@
+#N canvas 189 490 626 385 10;
+#X declare -path ..;
+#N canvas 0 22 450 300 (subpatch) 0;
+#X array data 100 float 2;
+#X coords 0 1 99 0 200 140 1 0 0;
+#X restore 374 162 graph;
+#X text 30 23 Basic sharing of memory data between two pd instances
+;
+#X msg 48 194 pd~ stop;
+#X text 133 262 synchronised reading;
+#X msg 29 260 memdump 0 data;
+#X obj 512 20 loadbang;
+#X msg 512 41 \; pd dsp 1;
+#X text 44 116 launch subprocess;
+#X obj 39 52 declare -path ..;
+#X msg 29 136 pd~ start 2.lazy_syncro-subprocess.pd;
+#X text 26 329 reading the shared memory is made maximum 20 audio block
+(pd~ round trip fifo) after pd~ set the value.;
+#X obj 29 284 shmem 1002 100;
+#X obj 29 222 pd~ -ninsig 0 -noutsig 0 -fifo 20;
+#X connect 2 0 12 0;
+#X connect 4 0 11 0;
+#X connect 5 0 6 0;
+#X connect 9 0 12 0;
+#X connect 12 0 4 0;
diff --git a/examples/3.syncro_jitter-subprocess.pd b/examples/3.syncro_jitter-subprocess.pd
new file mode 100644
index 0000000..4790a52
--- /dev/null
+++ b/examples/3.syncro_jitter-subprocess.pd
@@ -0,0 +1,47 @@
+#N canvas 1151 120 649 457 10;
+#X declare -path ..;
+#N canvas 0 22 450 300 (subpatch) 0;
+#X array data2 100 float 2;
+#X coords 0 1 99 -1 200 140 1 0 0;
+#X restore 307 39 graph;
+#X obj 313 223 loadbang;
+#X msg 313 244 \; pd dsp 1;
+#X text 170 335 writing to the shared memory;
+#X obj 67 356 shmem 1003 100;
+#X msg 67 336 memset 0 data2;
+#X obj 66 16 declare -path ..;
+#X obj 118 90 f;
+#X obj 118 111 + 1;
+#X obj 118 129 % 100;
+#X obj 118 151 / 100;
+#X msg 84 183 100;
+#X obj 84 203 until;
+#X obj 84 225 f;
+#X obj 113 226 + 1;
+#X msg 169 163 0;
+#X obj 67 70 t b b b b;
+#X obj 103 276 f;
+#X obj 84 246 t b f;
+#X obj 103 297 tabwrite data2;
+#X obj 67 50 r metro;
+#X connect 1 0 2 0;
+#X connect 5 0 4 0;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 0 7 1;
+#X connect 10 0 17 1;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 13 0 14 0;
+#X connect 13 0 18 0;
+#X connect 14 0 13 1;
+#X connect 15 0 13 1;
+#X connect 16 0 5 0;
+#X connect 16 1 11 0;
+#X connect 16 2 15 0;
+#X connect 16 3 7 0;
+#X connect 17 0 19 0;
+#X connect 18 0 17 0;
+#X connect 18 1 19 1;
+#X connect 20 0 16 0;
diff --git a/examples/3.syncro_jitter.pd b/examples/3.syncro_jitter.pd
new file mode 100644
index 0000000..71f828f
--- /dev/null
+++ b/examples/3.syncro_jitter.pd
@@ -0,0 +1,50 @@
+#N canvas 554 531 694 524 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 374 162 graph;
+#X text 30 23 Basic sharing of memory data between two pd instances
+;
+#X msg 48 160 pd~ stop;
+#X obj 104 274 shmem 1003 100;
+#X obj 512 20 loadbang;
+#X msg 512 41 \; pd dsp 1;
+#X text 44 116 launch subprocess;
+#X obj 39 52 declare -path ..;
+#X obj 104 215 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+1;
+#X msg 104 254 memdump 0 data \, memread 0;
+#X obj 131 313 t f f;
+#X obj 158 338 ==;
+#X obj 158 358 sel 1;
+#X obj 158 380 print erreur de syncro;
+#X text 274 312 value read should all be diferent. They are not due
+to syncronisation jitter between pd and pd~ \, (specially since metro
+is fast and round trip buffer is high).;
+#X obj 104 234 metro 5;
+#X obj 104 194 loadbang;
+#X obj 104 293 sel 0;
+#X msg 29 138 pd~ start 3.syncro_jitter-subprocess.pd;
+#X obj 359 407 loadbang;
+#X msg 359 426 memclear;
+#X obj 359 445 shmem 1003 100;
+#X msg 43 403 metro bang;
+#X obj 29 430 pd~ -ninsig 0 -noutsig 0 -fifo 50;
+#X connect 2 0 23 0;
+#X connect 3 0 17 0;
+#X connect 4 0 5 0;
+#X connect 8 0 15 0;
+#X connect 9 0 3 0;
+#X connect 10 0 11 1;
+#X connect 10 1 11 0;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 15 0 9 0;
+#X connect 15 0 22 0;
+#X connect 16 0 8 0;
+#X connect 17 1 10 0;
+#X connect 18 0 23 0;
+#X connect 19 0 20 0;
+#X connect 20 0 21 0;
+#X connect 22 0 23 0;
diff --git a/examples/4.table_fifo-subprocess.pd b/examples/4.table_fifo-subprocess.pd
new file mode 100644
index 0000000..7fd31f8
--- /dev/null
+++ b/examples/4.table_fifo-subprocess.pd
@@ -0,0 +1,64 @@
+#N canvas 854 303 573 611 10;
+#X declare -path ..;
+#N canvas 0 22 450 300 (subpatch) 0;
+#X array data2 100 float 2;
+#X coords 0 1 99 -1 200 140 1 0 0;
+#X restore 307 39 graph;
+#X obj 313 223 loadbang;
+#X msg 313 244 \; pd dsp 1;
+#X text 212 458 writing to the shared memory;
+#X obj 66 16 declare -path ..;
+#X obj 118 130 f;
+#X obj 118 151 + 1;
+#X obj 118 169 % 100;
+#X obj 118 191 / 100;
+#X msg 84 223 100;
+#X obj 84 243 until;
+#X obj 84 265 f;
+#X obj 113 266 + 1;
+#X msg 169 203 0;
+#X obj 67 110 t b b b b;
+#X obj 103 316 f;
+#X obj 84 286 t b f;
+#X obj 103 337 tabwrite data2;
+#X obj 67 352 f;
+#X obj 67 372 + 1;
+#X obj 82 393 % 25;
+#X msg 109 459 memset \$1 data2;
+#X obj 109 435 * 100;
+#X obj 109 479 shmem 1004 2500;
+#X obj 82 414 t f f;
+#X msg 82 510 syncro \$1;
+#X obj 67 72 loadbang;
+#X obj 82 530 stdout;
+#X obj 67 91 metro 5;
+#X connect 1 0 2 0;
+#X connect 5 0 6 0;
+#X connect 6 0 7 0;
+#X connect 7 0 8 0;
+#X connect 7 0 5 1;
+#X connect 8 0 15 1;
+#X connect 9 0 10 0;
+#X connect 10 0 11 0;
+#X connect 11 0 12 0;
+#X connect 11 0 16 0;
+#X connect 12 0 11 1;
+#X connect 13 0 11 1;
+#X connect 14 0 18 0;
+#X connect 14 1 9 0;
+#X connect 14 2 13 0;
+#X connect 14 3 5 0;
+#X connect 15 0 17 0;
+#X connect 16 0 15 0;
+#X connect 16 1 17 1;
+#X connect 18 0 19 0;
+#X connect 19 0 20 0;
+#X connect 20 0 18 1;
+#X connect 20 0 24 0;
+#X connect 21 0 23 0;
+#X connect 22 0 21 0;
+#X connect 24 0 25 0;
+#X connect 24 1 22 0;
+#X connect 25 0 27 0;
+#X connect 26 0 28 0;
+#X connect 28 0 14 0;
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;
diff --git a/examples/2.audio-subprocess.pd b/examples/5.audio-subprocess.pd
index e0da616..e0da616 100644
--- a/examples/2.audio-subprocess.pd
+++ b/examples/5.audio-subprocess.pd
diff --git a/examples/2.audio.pd b/examples/5.audio.pd
index 1960676..c67bf51 100644
--- a/examples/2.audio.pd
+++ b/examples/5.audio.pd
@@ -1,4 +1,4 @@
-#N canvas 733 430 632 604 12;
+#N canvas 731 436 632 604 12;
#X declare -path ..;
#X msg 435 99 \; pd dsp 1;
#X msg 38 74 pd~ stop;
@@ -115,7 +115,7 @@
#X restore 276 426 pd oscillo;
#X text 36 527 using the object \, audio is delay by 1 bloc (64 samples)
;
-#X msg 29 51 pd~ start 2.audio-subprocess.pd;
+#X msg 29 51 pd~ start 5.audio-subprocess.pd;
#X connect 1 0 10 0;
#X connect 2 0 0 0;
#X connect 3 0 10 0;