From 533a75a9f57f73711e7e3c5afef0ce83f632ca4c Mon Sep 17 00:00:00 2001 From: Cyrille Henry Date: Fri, 2 Nov 2012 20:48:39 +0000 Subject: more examples... svn path=/trunk/externals/share_mem/; revision=16522 --- Makefile | 2 +- examples/1.basic_example-subprocess.pd | 72 +++++------------- examples/1.basic_example.pd | 39 ++++++---- examples/2.audio-subprocess.pd | 16 ---- examples/2.audio.pd | 135 --------------------------------- examples/2.lazy_syncro-subprocess.pd | 57 ++++++++++++++ examples/2.lazy_syncro.pd | 25 ++++++ examples/3.syncro_jitter-subprocess.pd | 47 ++++++++++++ examples/3.syncro_jitter.pd | 50 ++++++++++++ examples/4.table_fifo-subprocess.pd | 64 ++++++++++++++++ examples/4.table_fifo.pd | 48 ++++++++++++ examples/5.audio-subprocess.pd | 16 ++++ examples/5.audio.pd | 135 +++++++++++++++++++++++++++++++++ 13 files changed, 489 insertions(+), 217 deletions(-) delete mode 100644 examples/2.audio-subprocess.pd delete mode 100644 examples/2.audio.pd create mode 100644 examples/2.lazy_syncro-subprocess.pd create mode 100644 examples/2.lazy_syncro.pd create mode 100644 examples/3.syncro_jitter-subprocess.pd create mode 100644 examples/3.syncro_jitter.pd create mode 100644 examples/4.table_fifo-subprocess.pd create mode 100644 examples/4.table_fifo.pd create mode 100644 examples/5.audio-subprocess.pd create mode 100644 examples/5.audio.pd 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.audio-subprocess.pd b/examples/2.audio-subprocess.pd deleted file mode 100644 index e0da616..0000000 --- a/examples/2.audio-subprocess.pd +++ /dev/null @@ -1,16 +0,0 @@ -#N canvas 128 649 713 267 12; -#X declare -path ..; -#X msg 429 57 \; pd dsp 1; -#X obj 429 33 loadbang; -#X obj 46 187 dac~ 1 2; -#X obj 81 130 stdout; -#X obj 290 28 adc~ 1; -#X text 69 54 forward audio using diferent way; -#X obj 363 115 declare -path ..; -#X obj 47 26 shmem_receive~ 1212; -#X obj 81 99 shmem_send~ 1213; -#X connect 1 0 0 0; -#X connect 4 0 2 1; -#X connect 7 0 2 0; -#X connect 7 0 8 0; -#X connect 8 0 3 0; diff --git a/examples/2.audio.pd b/examples/2.audio.pd deleted file mode 100644 index 1960676..0000000 --- a/examples/2.audio.pd +++ /dev/null @@ -1,135 +0,0 @@ -#N canvas 733 430 632 604 12; -#X declare -path ..; -#X msg 435 99 \; pd dsp 1; -#X msg 38 74 pd~ stop; -#X obj 435 73 loadbang; -#X obj 61 194 shmem_send~ 1212; -#X obj 61 130 osc~ 444; -#X floatatom 61 110 5 0 0 0 - - -; -#X obj 29 250 shmem_receive~ 1213; -#X obj 199 137 *~; -#X obj 233 140 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 -1; -#X obj 25 23 declare -path ..; -#X obj 29 224 pd~ -ninsig 1 -noutsig 2 -fifo 20; -#X obj 281 109 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 -1; -#X obj 281 129 metro 80; -#X obj 60 159 *~ 0.5; -#X obj 200 107 osc~ 200; -#N canvas 1 89 450 300 oscillo 0; -#X obj 41 25 loadbang; -#X obj 26 223 metro 100; -#X obj 8 -9 inlet~; -#X msg 41 47 1; -#X obj 42 81 tgl 20 0 empty empty Stop 0 -6 0 8 -258699 -1 -1 1 1; -#X obj 118 -3 inlet; -#X msg 147 48 1; -#X msg 115 48 0; -#X obj 118 21 moses 10; -#X obj 19 263 tabwrite~ \$0-oscillo; -#X obj 111 151 cnv 1 300 1 empty empty empty 20 12 0 14 -195568 -66577 -0; -#N canvas 0 0 767 419 (subpatch) 0; -#X array \$0-oscillo 3000 float 0; -#X coords 0 1 2999 -1 300 80 1; -#X restore 111 111 graph; -#X obj 110 75 change; -#X connect 0 0 3 0; -#X connect 1 0 9 0; -#X connect 2 0 9 0; -#X connect 3 0 4 0; -#X connect 4 0 1 0; -#X connect 5 0 8 0; -#X connect 6 0 12 0; -#X connect 7 0 12 0; -#X connect 8 0 7 0; -#X connect 8 1 6 0; -#X connect 8 1 1 1; -#X connect 12 0 1 0; -#X coords 0 -1 1 1 300 80 2 111 111; -#X restore 289 262 pd oscillo; -#N canvas 1 95 450 300 oscillo 0; -#X obj 41 25 loadbang; -#X obj 26 223 metro 100; -#X obj 8 -9 inlet~; -#X msg 41 47 1; -#X obj 42 81 tgl 20 0 empty empty Stop 0 -6 0 8 -258699 -1 -1 1 1; -#X obj 118 -3 inlet; -#X msg 147 48 1; -#X msg 115 48 0; -#X obj 118 21 moses 10; -#X obj 111 151 cnv 1 300 1 empty empty empty 20 12 0 14 -195568 -66577 -0; -#N canvas 0 0 767 419 (subpatch) 0; -#X array \$0-oscillo2 3000 float 0; -#X coords 0 1 2999 -1 300 80 1; -#X restore 111 111 graph; -#X obj 110 75 change; -#X obj 19 263 tabwrite~ \$0-oscillo2; -#X connect 0 0 3 0; -#X connect 1 0 12 0; -#X connect 2 0 12 0; -#X connect 3 0 4 0; -#X connect 4 0 1 0; -#X connect 5 0 8 0; -#X connect 6 0 11 0; -#X connect 7 0 11 0; -#X connect 8 0 7 0; -#X connect 8 1 6 0; -#X connect 8 1 1 1; -#X connect 11 0 1 0; -#X coords 0 -1 1 1 300 80 2 111 111; -#X restore 282 344 pd oscillo; -#N canvas 1 101 450 300 oscillo 0; -#X obj 41 25 loadbang; -#X obj 26 223 metro 100; -#X obj 8 -9 inlet~; -#X msg 41 47 1; -#X obj 42 81 tgl 20 0 empty empty Stop 0 -6 0 8 -258699 -1 -1 1 1; -#X obj 118 -3 inlet; -#X msg 147 48 1; -#X msg 115 48 0; -#X obj 118 21 moses 10; -#X obj 111 151 cnv 1 300 1 empty empty empty 20 12 0 14 -195568 -66577 -0; -#N canvas 0 0 767 419 (subpatch) 0; -#X array \$0-oscillo3 3000 float 0; -#X coords 0 1 2999 -1 300 80 1; -#X restore 111 111 graph; -#X obj 110 75 change; -#X obj 19 263 tabwrite~ \$0-oscillo3; -#X connect 0 0 3 0; -#X connect 1 0 12 0; -#X connect 2 0 12 0; -#X connect 3 0 4 0; -#X connect 4 0 1 0; -#X connect 5 0 8 0; -#X connect 6 0 11 0; -#X connect 7 0 11 0; -#X connect 8 0 7 0; -#X connect 8 1 6 0; -#X connect 8 1 1 1; -#X connect 11 0 1 0; -#X coords 0 -1 1 1 300 80 2 111 111; -#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 connect 1 0 10 0; -#X connect 2 0 0 0; -#X connect 3 0 10 0; -#X connect 4 0 13 0; -#X connect 5 0 4 0; -#X connect 6 0 17 0; -#X connect 7 0 13 0; -#X connect 8 0 7 1; -#X connect 10 0 6 0; -#X connect 10 1 16 0; -#X connect 10 2 15 0; -#X connect 11 0 12 0; -#X connect 12 0 8 0; -#X connect 13 0 3 0; -#X connect 13 0 10 0; -#X connect 14 0 7 0; -#X connect 19 0 10 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/5.audio-subprocess.pd b/examples/5.audio-subprocess.pd new file mode 100644 index 0000000..e0da616 --- /dev/null +++ b/examples/5.audio-subprocess.pd @@ -0,0 +1,16 @@ +#N canvas 128 649 713 267 12; +#X declare -path ..; +#X msg 429 57 \; pd dsp 1; +#X obj 429 33 loadbang; +#X obj 46 187 dac~ 1 2; +#X obj 81 130 stdout; +#X obj 290 28 adc~ 1; +#X text 69 54 forward audio using diferent way; +#X obj 363 115 declare -path ..; +#X obj 47 26 shmem_receive~ 1212; +#X obj 81 99 shmem_send~ 1213; +#X connect 1 0 0 0; +#X connect 4 0 2 1; +#X connect 7 0 2 0; +#X connect 7 0 8 0; +#X connect 8 0 3 0; diff --git a/examples/5.audio.pd b/examples/5.audio.pd new file mode 100644 index 0000000..c67bf51 --- /dev/null +++ b/examples/5.audio.pd @@ -0,0 +1,135 @@ +#N canvas 731 436 632 604 12; +#X declare -path ..; +#X msg 435 99 \; pd dsp 1; +#X msg 38 74 pd~ stop; +#X obj 435 73 loadbang; +#X obj 61 194 shmem_send~ 1212; +#X obj 61 130 osc~ 444; +#X floatatom 61 110 5 0 0 0 - - -; +#X obj 29 250 shmem_receive~ 1213; +#X obj 199 137 *~; +#X obj 233 140 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 25 23 declare -path ..; +#X obj 29 224 pd~ -ninsig 1 -noutsig 2 -fifo 20; +#X obj 281 109 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 281 129 metro 80; +#X obj 60 159 *~ 0.5; +#X obj 200 107 osc~ 200; +#N canvas 1 89 450 300 oscillo 0; +#X obj 41 25 loadbang; +#X obj 26 223 metro 100; +#X obj 8 -9 inlet~; +#X msg 41 47 1; +#X obj 42 81 tgl 20 0 empty empty Stop 0 -6 0 8 -258699 -1 -1 1 1; +#X obj 118 -3 inlet; +#X msg 147 48 1; +#X msg 115 48 0; +#X obj 118 21 moses 10; +#X obj 19 263 tabwrite~ \$0-oscillo; +#X obj 111 151 cnv 1 300 1 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 767 419 (subpatch) 0; +#X array \$0-oscillo 3000 float 0; +#X coords 0 1 2999 -1 300 80 1; +#X restore 111 111 graph; +#X obj 110 75 change; +#X connect 0 0 3 0; +#X connect 1 0 9 0; +#X connect 2 0 9 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X connect 5 0 8 0; +#X connect 6 0 12 0; +#X connect 7 0 12 0; +#X connect 8 0 7 0; +#X connect 8 1 6 0; +#X connect 8 1 1 1; +#X connect 12 0 1 0; +#X coords 0 -1 1 1 300 80 2 111 111; +#X restore 289 262 pd oscillo; +#N canvas 1 95 450 300 oscillo 0; +#X obj 41 25 loadbang; +#X obj 26 223 metro 100; +#X obj 8 -9 inlet~; +#X msg 41 47 1; +#X obj 42 81 tgl 20 0 empty empty Stop 0 -6 0 8 -258699 -1 -1 1 1; +#X obj 118 -3 inlet; +#X msg 147 48 1; +#X msg 115 48 0; +#X obj 118 21 moses 10; +#X obj 111 151 cnv 1 300 1 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 767 419 (subpatch) 0; +#X array \$0-oscillo2 3000 float 0; +#X coords 0 1 2999 -1 300 80 1; +#X restore 111 111 graph; +#X obj 110 75 change; +#X obj 19 263 tabwrite~ \$0-oscillo2; +#X connect 0 0 3 0; +#X connect 1 0 12 0; +#X connect 2 0 12 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X connect 5 0 8 0; +#X connect 6 0 11 0; +#X connect 7 0 11 0; +#X connect 8 0 7 0; +#X connect 8 1 6 0; +#X connect 8 1 1 1; +#X connect 11 0 1 0; +#X coords 0 -1 1 1 300 80 2 111 111; +#X restore 282 344 pd oscillo; +#N canvas 1 101 450 300 oscillo 0; +#X obj 41 25 loadbang; +#X obj 26 223 metro 100; +#X obj 8 -9 inlet~; +#X msg 41 47 1; +#X obj 42 81 tgl 20 0 empty empty Stop 0 -6 0 8 -258699 -1 -1 1 1; +#X obj 118 -3 inlet; +#X msg 147 48 1; +#X msg 115 48 0; +#X obj 118 21 moses 10; +#X obj 111 151 cnv 1 300 1 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 767 419 (subpatch) 0; +#X array \$0-oscillo3 3000 float 0; +#X coords 0 1 2999 -1 300 80 1; +#X restore 111 111 graph; +#X obj 110 75 change; +#X obj 19 263 tabwrite~ \$0-oscillo3; +#X connect 0 0 3 0; +#X connect 1 0 12 0; +#X connect 2 0 12 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X connect 5 0 8 0; +#X connect 6 0 11 0; +#X connect 7 0 11 0; +#X connect 8 0 7 0; +#X connect 8 1 6 0; +#X connect 8 1 1 1; +#X connect 11 0 1 0; +#X coords 0 -1 1 1 300 80 2 111 111; +#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 5.audio-subprocess.pd; +#X connect 1 0 10 0; +#X connect 2 0 0 0; +#X connect 3 0 10 0; +#X connect 4 0 13 0; +#X connect 5 0 4 0; +#X connect 6 0 17 0; +#X connect 7 0 13 0; +#X connect 8 0 7 1; +#X connect 10 0 6 0; +#X connect 10 1 16 0; +#X connect 10 2 15 0; +#X connect 11 0 12 0; +#X connect 12 0 8 0; +#X connect 13 0 3 0; +#X connect 13 0 10 0; +#X connect 14 0 7 0; +#X connect 19 0 10 0; -- cgit v1.2.1