From ad23543fee0496519b1a41839bf388d6c9ffba46 Mon Sep 17 00:00:00 2001 From: musil Date: Thu, 4 Jul 2013 17:31:48 +0000 Subject: iemlib.h now in include folder parallel to library folder, changed makefiles,, removed iemlib.h and makefile_linux svn path=/trunk/externals/iem/iem_delay/; revision=17189 --- READ_ME.txt | 20 +-- block_delay~-help.pd | 241 ++++++++++++++++++++++++++------ n_delay1p_line~-help.pd | 361 +++++++++++++++++++++++++++++++++++------------- n_delay2p_line~-help.pd | 361 ++++++++++++++++++++++++++++++++++++------------ src/iemlib.h | 118 ---------------- src/makefile | 47 +------ src/makefile_d_fat | 7 +- src/makefile_linux | 50 ------- 8 files changed, 756 insertions(+), 449 deletions(-) delete mode 100644 src/iemlib.h delete mode 100644 src/makefile_linux diff --git a/READ_ME.txt b/READ_ME.txt index 8028fb5..e6ad4c2 100644 --- a/READ_ME.txt +++ b/READ_ME.txt @@ -1,14 +1,16 @@ This library extends the performance of miller puckette's pure data (pd). iem_delay is written by Thomas Musil from IEM Graz Austria - and it is compatible to miller puckette's pd-0.37-3 to pd-0.39-2. + and it is compatible up to miller puckette's pd-0.42-5. see also LICENCE.txt, GnuGPL.txt. -iem_delay contains 3 objects: -"block_delay~", "n_delay1p_line~" and "n_delay2p_line~" -block_delay~ delays signals to one blocksize. -n_delay1p_line~ is a delay with one signal inlet and n signal outlets - which change its delay taps during a time period, without interpolation. -n_delay2p_line~ is a delay with one signal inlet and n signal outlets - which change its delay taps during a time period, with a 2-point interpolation - between the samples. +iem_delay contains 4 objects: +"block_delay~", "n_delay1p_line~", "n_delay2p_line~" and "nz~". + +block_delay~ : Constant signal delay of one blocksize. + +n_delay1p_line~ : One signal inlet and n delay tap outlets. Delay times change every sample without interpolation and are given in ms. + +n_delay2p_line~ : One signal inlet and n delay tap outlets. Delay times change every sample with a 2-point interpolation and are given in ms. + +nz~ : One signal inlet and n delay tap outlets. Delay times change at least every blocksize and are given in samples. \ No newline at end of file diff --git a/block_delay~-help.pd b/block_delay~-help.pd index 84bda01..8873d0a 100644 --- a/block_delay~-help.pd +++ b/block_delay~-help.pd @@ -1,42 +1,199 @@ -#N canvas 22 12 568 471 10; -#X text 117 399 IEM KUG; -#X text 101 387 musil; -#X text 131 387 @; -#X text 137 387 iem.at; -#X text 100 409 Graz \, Austria; -#X text 52 376 (c) Thomas Musil 2000 - 2006; -#X obj 21 66 dsp; -#X obj 21 43 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 -; -#X floatatom 21 107 5 0 0 0 - - -; -#X floatatom 34 90 5 0 0 0 - - -; -#X obj 161 139 dirac~; -#N canvas 0 0 450 300 graph1 0; -#X array array101 100 float 0; -#X coords 0 1.1 99 -0.1 100 50 1; -#X restore 404 223 graph; -#X obj 187 258 tabwrite~ array101; -#N canvas 0 0 450 300 graph1 0; -#X array array100 100 float 0; -#X coords 0 1.1 99 -0.1 100 50 1; -#X restore 404 153 graph; -#X obj 226 192 tabwrite~ array100; -#X text 250 220 no initial arguments; -#X obj 162 220 block_delay~; -#X obj 160 97 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 405 274 hsl 100 15 0 99 0 0 empty empty empty -2 -6 0 8 -262144 --1 -1 6400 1; -#X floatatom 402 295 5 0 0 0 - - -; -#X text 21 11 block_delay~; -#X text 130 11 delay signal with blocksize samples; -#X connect 6 0 8 0; -#X connect 6 1 9 0; -#X connect 7 0 6 0; -#X connect 10 0 14 0; -#X connect 10 0 16 0; -#X connect 16 0 12 0; -#X connect 17 0 10 0; -#X connect 17 0 14 0; -#X connect 17 0 12 0; -#X connect 18 0 19 0; +#N canvas 456 157 568 471 10; +#X text 119 399 IEM KUG; +#X text 93 387 musil; +#X text 131 387 @; +#X text 139 387 iem.at; +#X text 102 409 Graz \, Austria; +#X obj 21 43 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X floatatom 21 111 5 0 0 0 - - -; +#X floatatom 51 91 5 0 0 0 - - -; +#N canvas 0 22 450 300 (subpatch) 0; +#X array array101 100 float 0; +#X coords 0 1.1 99 -0.1 100 50 1; +#X restore 404 223 graph; +#X obj 187 258 tabwrite~ array101; +#N canvas 0 22 450 300 (subpatch) 0; +#X array array100 100 float 0; +#X coords 0 1.1 99 -0.1 100 50 1; +#X restore 404 153 graph; +#X obj 226 192 tabwrite~ array100; +#X text 250 220 no initial arguments; +#X obj 162 220 block_delay~; +#X obj 160 97 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 405 274 hsl 100 15 0 99 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 6400 1; +#X floatatom 402 295 5 0 0 0 - - -; +#X text 21 11 block_delay~; +#X text 52 376 (c) Thomas Musil 2000 - 2011; +#N canvas 0 22 450 300 dirac 0; +#X obj 103 44 inlet; +#X obj 103 65 t b b; +#X obj 71 100 del 2; +#X msg 126 112 1; +#X msg 70 122 0; +#X obj 92 151 biquad~ 0 0 1 -1 0; +#X obj 92 176 max~ 0; +#X obj 92 197 outlet~; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 3 0; +#X connect 2 0 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X restore 161 139 pd dirac; +#N canvas 0 22 528 567 dsp 0; +#X obj 20 65 inlet; +#X obj 20 406 outlet; +#X msg 31 88 \; pd dsp \$1; +#X obj 20 199 cputime; +#X obj 20 178 t b b; +#X text 15 11 dsp; +#X text 59 65 1/0 = ON/OFF; +#X text 97 313 CPU-load; +#X obj 62 126 loadbang; +#X obj 20 126 sel 1; +#X text 64 12 turn dsp-kernel on & off \,; +#X obj 20 240 t f f; +#X obj 211 405 outlet; +#X text 65 408 average; +#X text 177 405 peak; +#X obj 211 154 f; +#X obj 146 179 > -1; +#X obj 169 155 f -1; +#X obj 179 91 t f b f; +#X obj 146 204 sel 1; +#X obj 192 132 f -1; +#X obj 20 154 metro 500; +#X obj 20 220 * 0.2; +#X text 74 37 -dsp-load in %; +#X text 65 24 measure average- and peak-; +#X obj 20 292 1p1z 0.1 0 0.9; +#X obj 20 315 * 100; +#X obj 20 360 int; +#X obj 20 338 + 0.499; +#X obj 20 383 * 0.01; +#X obj 246 207 r pd; +#X obj 246 231 route dsp; +#X text 245 318 to toggle input; +#X msg 246 283 \; dsp_tgl set \$1; +#X obj 247 341 r dsp_tgl; +#X obj 246 257 route float; +#X obj 146 227 del 3990; +#X text 179 455 IEM KUG; +#X text 153 443 musil; +#X text 190 443 @; +#X text 199 443 iem.at; +#X text 162 465 Graz \, Austria; +#X msg 275 108 \; pd audio-dialog 0 0 0 0 64 0 0 0 0 0 0 0 64 0 0 0 +44100 \$1; +#X obj 275 81 inlet; +#X text 271 56 system delay time in ms; +#N canvas 0 22 486 468 once 0; +#X obj 89 162 spigot; +#X obj 34 59 inlet; +#X obj 89 111 t a b; +#X obj 126 140 f 1; +#X obj 89 194 t a b; +#X obj 119 216 f 0; +#X obj 89 247 outlet; +#X obj 207 56 inlet; +#X obj 207 79 bang; +#X obj 207 102 f 1; +#X text 8 6 once; +#X text 64 7 only the first message passes through; +#X text 29 37 message in; +#X text 29 289 message out (only once); +#X text 203 36 anything to init once; +#X obj 34 80 route bang; +#X obj 34 110 t b b; +#X obj 34 162 spigot; +#X obj 34 194 t b b; +#X text 98 377 IEM KUG; +#X text 73 363 musil; +#X text 110 365 @; +#X text 118 365 iem.at; +#X text 81 387 Graz \, Austria; +#X text 120 339 @; +#X text 128 339 iem.at; +#X text 33 338 (c) zmoelnig; +#X text 33 352 (c) Thomas Musil 2000 - 2011; +#X connect 0 0 4 0; +#X connect 1 0 15 0; +#X connect 2 0 0 0; +#X connect 2 1 3 0; +#X connect 3 0 0 1; +#X connect 3 0 17 1; +#X connect 4 0 6 0; +#X connect 4 1 5 0; +#X connect 5 0 3 1; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 9 0 3 1; +#X connect 15 0 16 0; +#X connect 15 1 2 0; +#X connect 16 0 17 0; +#X connect 16 1 3 0; +#X connect 17 0 18 0; +#X connect 18 0 6 0; +#X connect 18 1 5 0; +#X restore 69 270 pd once; +#X text 112 430 (c) Thomas Musil 2000 - 2011; +#X connect 0 0 2 0; +#X connect 0 0 9 0; +#X connect 3 0 22 0; +#X connect 4 0 3 0; +#X connect 4 1 3 1; +#X connect 8 0 21 0; +#X connect 9 0 21 0; +#X connect 11 0 25 0; +#X connect 11 1 45 0; +#X connect 15 0 17 1; +#X connect 15 0 12 0; +#X connect 16 0 19 0; +#X connect 17 0 16 1; +#X connect 18 0 16 0; +#X connect 18 1 17 0; +#X connect 18 2 15 1; +#X connect 19 0 15 0; +#X connect 19 0 36 0; +#X connect 20 0 17 1; +#X connect 21 0 4 0; +#X connect 22 0 11 0; +#X connect 22 0 18 0; +#X connect 25 0 26 0; +#X connect 26 0 28 0; +#X connect 27 0 29 0; +#X connect 28 0 27 0; +#X connect 29 0 1 0; +#X connect 30 0 31 0; +#X connect 31 0 35 0; +#X connect 35 0 33 0; +#X connect 36 0 20 0; +#X connect 43 0 42 0; +#X connect 45 0 25 5; +#X connect 45 0 25 4; +#X restore 21 65 pd dsp; +#X obj 21 261 block~ 64 1 1; +#X msg 21 239 set \$1 1 1; +#X floatatom 20 220 5 0 0 0 - - -; +#X msg 20 163 32; +#X msg 20 188 64; +#X text 130 10 Constant signal delay of one blocksize.; +#X connect 5 0 20 0; +#X connect 13 0 9 0; +#X connect 14 0 11 0; +#X connect 14 0 9 0; +#X connect 14 0 19 0; +#X connect 15 0 16 0; +#X connect 19 0 11 0; +#X connect 19 0 13 0; +#X connect 20 0 6 0; +#X connect 20 1 7 0; +#X connect 22 0 21 0; +#X connect 23 0 22 0; +#X connect 24 0 23 0; +#X connect 25 0 23 0; diff --git a/n_delay1p_line~-help.pd b/n_delay1p_line~-help.pd index 983a65b..214a013 100644 --- a/n_delay1p_line~-help.pd +++ b/n_delay1p_line~-help.pd @@ -1,93 +1,268 @@ -#N canvas 22 12 973 526 10; -#X text 117 399 IEM KUG; -#X text 101 387 musil; -#X text 131 387 @; -#X text 137 387 iem.at; -#X text 100 409 Graz \, Austria; -#X text 52 376 (c) Thomas Musil 2000 - 2006; -#X obj 21 66 dsp; -#X obj 21 43 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 -; -#X floatatom 21 107 5 0 0 0 - - -; -#X floatatom 34 90 5 0 0 0 - - -; -#X obj 252 178 pack 0 0; -#X obj 308 145 t b f; -#X floatatom 233 93 5 0 0 0 - - -; -#X floatatom 313 94 5 0 0 0 - - -; -#X obj 133 109 osc~ 700; -#X obj 152 180 dbtorms; -#X floatatom 152 161 5 0 100 0 - - -; -#X obj 133 204 *~ 0; -#X obj 221 262 dac~; -#X msg 399 176 time \$1; -#X floatatom 399 150 5 0 0 0 - - -; -#X msg 425 118 100; -#X msg 460 121 1000; -#X msg 391 119 0; -#X msg 503 121 3000; -#X text 327 263 1.arg: number of outlets; -#X obj 618 235 dirac~; -#X obj 680 190 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#N canvas 0 0 450 300 graph1 0; -#X array array101 100 float 0; -#X coords 0 1.1 99 -0.1 100 50 1; -#X restore 815 186 graph; -#N canvas 0 0 450 300 graph1 0; -#X array array102 100 float 0; -#X coords 0 1.1 99 -0.1 100 50 1; -#X restore 815 256 graph; -#N canvas 0 0 450 300 graph1 0; -#X array array103 100 float 0; -#X coords 0 1.1 99 -0.1 100 50 1; -#X restore 815 326 graph; -#X obj 619 309 tabwrite~ array101; -#X obj 666 355 tabwrite~ array103; -#X obj 641 332 tabwrite~ array102; -#N canvas 0 0 450 300 graph1 0; -#X array array100 100 float 0; -#X coords 0 1.1 99 -0.1 100 50 1; -#X restore 815 116 graph; -#X obj 691 248 tabwrite~ array100; -#X text 327 283 3.arg: interpolation time in ms; -#X text 327 273 2.arg: maximum delay time ms; -#X msg 582 159 0.3 0.6 0.9; -#X msg 603 123 0.5 1 1.5; -#X text 185 10 delay with 1 inlet and n outlets; -#X text 168 25 no (one point-) interpolation = round to nearest sample -; -#X obj 618 283 n_delay1p_line~ 3 5 100; -#X obj 220 227 n_delay1p_line~ 2 100 100; -#X text 21 13 n_delay1p_line~; -#X connect 6 0 8 0; -#X connect 6 1 9 0; -#X connect 7 0 6 0; -#X connect 10 0 43 0; -#X connect 11 0 10 0; -#X connect 11 1 10 1; -#X connect 12 0 10 0; -#X connect 13 0 11 0; -#X connect 14 0 17 0; -#X connect 15 0 17 1; -#X connect 16 0 15 0; -#X connect 17 0 43 0; -#X connect 19 0 43 0; -#X connect 20 0 19 0; -#X connect 21 0 20 0; -#X connect 22 0 20 0; -#X connect 23 0 20 0; -#X connect 24 0 20 0; -#X connect 26 0 35 0; -#X connect 26 0 42 0; -#X connect 27 0 31 0; -#X connect 27 0 33 0; -#X connect 27 0 32 0; -#X connect 27 0 26 0; -#X connect 27 0 35 0; -#X connect 38 0 42 0; -#X connect 39 0 42 0; -#X connect 42 0 31 0; -#X connect 42 1 33 0; -#X connect 42 2 32 0; -#X connect 43 0 18 0; -#X connect 43 1 18 1; +#N canvas 22 22 973 526 10; +#X msg 454 136 100; +#X msg 489 139 1000; +#X msg 532 139 3000; +#X obj 305 182 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 0 22 450 300 (subpatch) 0; +#X array array101 100 float 0; +#X coords 0 1.1 99 -0.1 100 50 1; +#X restore 845 186 graph; +#N canvas 0 22 450 300 (subpatch) 0; +#X array array102 100 float 0; +#X coords 0 1.1 99 -0.1 100 50 1; +#X restore 845 256 graph; +#N canvas 0 22 450 300 (subpatch) 0; +#X array array103 100 float 0; +#X coords 0 1.1 99 -0.1 100 50 1; +#X restore 845 326 graph; +#X obj 203 309 tabwrite~ array101; +#X obj 250 355 tabwrite~ array103; +#X obj 225 332 tabwrite~ array102; +#N canvas 0 22 450 300 (subpatch) 0; +#X array array100 100 float 0; +#X coords 0 1.1 99 -0.1 100 50 1; +#X restore 845 116 graph; +#X obj 304 254 tabwrite~ array100; +#X obj 202 283 n_delay1p_line~ 3 5 100; +#X text 21 13 n_delay1p_line~; +#N canvas 0 22 450 300 dirac 0; +#X obj 103 44 inlet; +#X obj 103 65 t b b; +#X obj 71 100 del 2; +#X msg 126 112 1; +#X msg 70 122 0; +#X obj 92 151 biquad~ 0 0 1 -1 0; +#X obj 92 176 max~ 0; +#X obj 92 197 outlet~; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 3 0; +#X connect 2 0 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X restore 212 222 pd dirac; +#X text 113 442 IEM KUG; +#X text 87 430 musil; +#X text 125 430 @; +#X text 133 430 iem.at; +#X text 96 452 Graz \, Austria; +#X text 46 419 (c) Thomas Musil 2000 - 2011; +#X obj 24 46 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X floatatom 24 110 5 0 0 0 - - -; +#X floatatom 42 93 5 0 0 0 - - -; +#N canvas 0 22 528 567 dsp 0; +#X obj 20 65 inlet; +#X obj 20 406 outlet; +#X msg 31 88 \; pd dsp \$1; +#X obj 20 199 cputime; +#X obj 20 178 t b b; +#X text 15 11 dsp; +#X text 59 65 1/0 = ON/OFF; +#X text 97 313 CPU-load; +#X obj 62 126 loadbang; +#X obj 20 126 sel 1; +#X text 64 12 turn dsp-kernel on & off \,; +#X obj 20 240 t f f; +#X obj 211 405 outlet; +#X text 65 408 average; +#X text 177 405 peak; +#X obj 211 154 f; +#X obj 146 179 > -1; +#X obj 169 155 f -1; +#X obj 179 91 t f b f; +#X obj 146 204 sel 1; +#X obj 192 132 f -1; +#X obj 20 154 metro 500; +#X obj 20 220 * 0.2; +#X text 74 37 -dsp-load in %; +#X text 65 24 measure average- and peak-; +#X obj 20 292 1p1z 0.1 0 0.9; +#X obj 20 315 * 100; +#X obj 20 360 int; +#X obj 20 338 + 0.499; +#X obj 20 383 * 0.01; +#X obj 246 207 r pd; +#X obj 246 231 route dsp; +#X text 245 318 to toggle input; +#X msg 246 283 \; dsp_tgl set \$1; +#X obj 247 341 r dsp_tgl; +#X obj 246 257 route float; +#X obj 146 227 del 3990; +#X text 179 455 IEM KUG; +#X text 153 443 musil; +#X text 190 443 @; +#X text 199 443 iem.at; +#X text 162 465 Graz \, Austria; +#X msg 275 108 \; pd audio-dialog 0 0 0 0 64 0 0 0 0 0 0 0 64 0 0 0 +44100 \$1; +#X obj 275 81 inlet; +#X text 271 56 system delay time in ms; +#N canvas 0 22 486 468 once 0; +#X obj 89 162 spigot; +#X obj 34 59 inlet; +#X obj 89 111 t a b; +#X obj 126 140 f 1; +#X obj 89 194 t a b; +#X obj 119 216 f 0; +#X obj 89 247 outlet; +#X obj 207 56 inlet; +#X obj 207 79 bang; +#X obj 207 102 f 1; +#X text 8 6 once; +#X text 64 7 only the first message passes through; +#X text 29 37 message in; +#X text 29 289 message out (only once); +#X text 203 36 anything to init once; +#X obj 34 80 route bang; +#X obj 34 110 t b b; +#X obj 34 162 spigot; +#X obj 34 194 t b b; +#X text 98 377 IEM KUG; +#X text 73 363 musil; +#X text 110 365 @; +#X text 118 365 iem.at; +#X text 81 387 Graz \, Austria; +#X text 120 339 @; +#X text 128 339 iem.at; +#X text 33 338 (c) zmoelnig; +#X text 33 352 (c) Thomas Musil 2000 - 2011; +#X connect 0 0 4 0; +#X connect 1 0 15 0; +#X connect 2 0 0 0; +#X connect 2 1 3 0; +#X connect 3 0 0 1; +#X connect 3 0 17 1; +#X connect 4 0 6 0; +#X connect 4 1 5 0; +#X connect 5 0 3 1; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 9 0 3 1; +#X connect 15 0 16 0; +#X connect 15 1 2 0; +#X connect 16 0 17 0; +#X connect 16 1 3 0; +#X connect 17 0 18 0; +#X connect 18 0 6 0; +#X connect 18 1 5 0; +#X restore 69 270 pd once; +#X text 112 430 (c) Thomas Musil 2000 - 2011; +#X connect 0 0 2 0; +#X connect 0 0 9 0; +#X connect 3 0 22 0; +#X connect 4 0 3 0; +#X connect 4 1 3 1; +#X connect 8 0 21 0; +#X connect 9 0 21 0; +#X connect 11 0 25 0; +#X connect 11 1 45 0; +#X connect 15 0 17 1; +#X connect 15 0 12 0; +#X connect 16 0 19 0; +#X connect 17 0 16 1; +#X connect 18 0 16 0; +#X connect 18 1 17 0; +#X connect 18 2 15 1; +#X connect 19 0 15 0; +#X connect 19 0 36 0; +#X connect 20 0 17 1; +#X connect 21 0 4 0; +#X connect 22 0 11 0; +#X connect 22 0 18 0; +#X connect 25 0 26 0; +#X connect 26 0 28 0; +#X connect 27 0 29 0; +#X connect 28 0 27 0; +#X connect 29 0 1 0; +#X connect 30 0 31 0; +#X connect 31 0 35 0; +#X connect 35 0 33 0; +#X connect 36 0 20 0; +#X connect 43 0 42 0; +#X connect 45 0 25 5; +#X connect 45 0 25 4; +#X restore 24 69 pd dsp; +#X text 161 12 One signal inlet and n delay tap outlets. Delay times +change every sample without interpolation and are given in ms.; +#X text 420 465 3.) initial argument: interpolation time in +ms; +#X text 421 449 2.) inital argument: maximum delay time in +ms; +#X text 421 433 1.) inital argument: number of delay taps = +outlets; +#X msg 428 194 time \$1; +#X floatatom 428 168 5 0 0 0 - - -; +#X msg 420 137 0; +#X text 20 146 of n delay times in ms; +#X text 472 174 interpolation time in ms; +#X msg 96 165 0.1 0.2 0.3; +#X msg 76 190 1.8 1.7 1.6; +#X obj 299 70 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 300 117 sel 0 1; +#X obj 300 92 t f b; +#X msg 578 136 6000; +#N canvas 0 22 472 410 del_chain 0; +#X obj 158 58 inlet; +#X obj 128 341 outlet; +#X obj 207 86 del 10; +#X obj 207 106 del 990; +#X obj 207 127 del 990; +#X obj 207 148 del 990; +#X obj 207 169 del 990; +#X obj 207 190 del 990; +#X obj 207 211 del 990; +#X obj 207 233 del 990; +#X obj 207 254 del 990; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 5 0; +#X connect 4 0 1 0; +#X connect 5 0 6 0; +#X connect 5 0 1 0; +#X connect 6 0 7 0; +#X connect 6 0 1 0; +#X connect 7 0 8 0; +#X connect 7 0 1 0; +#X connect 8 0 1 0; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 9 0 1 0; +#X connect 10 0 1 0; +#X restore 326 154 pd del_chain; +#X connect 0 0 30 0; +#X connect 1 0 30 0; +#X connect 2 0 30 0; +#X connect 3 0 7 0; +#X connect 3 0 9 0; +#X connect 3 0 8 0; +#X connect 3 0 11 0; +#X connect 3 0 14 0; +#X connect 12 0 7 0; +#X connect 12 1 9 0; +#X connect 12 2 8 0; +#X connect 14 0 12 0; +#X connect 14 0 11 0; +#X connect 21 0 24 0; +#X connect 24 0 22 0; +#X connect 24 1 23 0; +#X connect 29 0 12 0; +#X connect 30 0 29 0; +#X connect 31 0 30 0; +#X connect 34 0 12 0; +#X connect 35 0 12 0; +#X connect 36 0 38 0; +#X connect 37 0 34 0; +#X connect 37 1 35 0; +#X connect 38 0 37 0; +#X connect 38 1 39 0; +#X connect 38 1 40 0; +#X connect 39 0 30 0; +#X connect 40 0 3 0; diff --git a/n_delay2p_line~-help.pd b/n_delay2p_line~-help.pd index 0aa7ffc..a39887c 100644 --- a/n_delay2p_line~-help.pd +++ b/n_delay2p_line~-help.pd @@ -1,92 +1,269 @@ -#N canvas 69 53 980 526 10; -#X text 117 399 IEM KUG; -#X text 101 387 musil; -#X text 131 387 @; -#X text 137 387 iem.at; -#X text 100 409 Graz \, Austria; -#X text 52 376 (c) Thomas Musil 2000 - 2006; -#X obj 21 66 dsp; -#X obj 21 43 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 -; -#X floatatom 21 107 5 0 0 0 - - -; -#X floatatom 34 90 5 0 0 0 - - -; -#X obj 252 178 pack 0 0; -#X obj 308 145 t b f; -#X floatatom 233 93 5 0 0 0 - - -; -#X floatatom 313 94 5 0 0 0 - - -; -#X obj 133 109 osc~ 700; -#X obj 152 180 dbtorms; -#X floatatom 152 161 5 0 100 0 - - -; -#X obj 133 204 *~ 0; -#X obj 221 262 dac~; -#X msg 399 176 time \$1; -#X floatatom 399 150 5 0 0 0 - - -; -#X msg 425 118 100; -#X msg 460 121 1000; -#X msg 391 119 0; -#X msg 503 121 3000; -#X text 327 263 1.arg: number of outlets; -#X text 21 13 n_delay2p_line~; -#X text 171 24 2 point interpolation between 2 samples; -#X obj 618 235 dirac~; -#X obj 680 190 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#N canvas 0 0 450 300 graph1 0; -#X array array101 100 float 0; -#X coords 0 1.1 99 -0.1 100 50 1; -#X restore 815 186 graph; -#N canvas 0 0 450 300 graph1 0; -#X array array102 100 float 0; -#X coords 0 1.1 99 -0.1 100 50 1; -#X restore 815 256 graph; -#N canvas 0 0 450 300 graph1 0; -#X array array103 100 float 0; -#X coords 0 1.1 99 -0.1 100 50 1; -#X restore 815 326 graph; -#X obj 619 309 tabwrite~ array101; -#X obj 666 355 tabwrite~ array103; -#X obj 641 332 tabwrite~ array102; -#N canvas 0 0 450 300 graph1 0; -#X array array100 100 float 0; -#X coords 0 1.1 99 -0.1 100 50 1; -#X restore 815 116 graph; -#X obj 691 248 tabwrite~ array100; -#X obj 618 283 n_delay2p_line~ 3 5 100; -#X obj 220 227 n_delay2p_line~ 2 100 100; -#X text 327 283 3.arg: interpolation time in ms; -#X text 327 273 2.arg: maximum delay time ms; -#X msg 582 159 0.3 0.6 0.9; -#X msg 603 123 0.5 1 1.5; -#X text 185 10 delay with 1 inlet and n outlets; -#X connect 6 0 8 0; -#X connect 6 1 9 0; -#X connect 7 0 6 0; -#X connect 10 0 39 0; -#X connect 11 0 10 0; -#X connect 11 1 10 1; -#X connect 12 0 10 0; -#X connect 13 0 11 0; -#X connect 14 0 17 0; -#X connect 15 0 17 1; -#X connect 16 0 15 0; -#X connect 17 0 39 0; -#X connect 19 0 39 0; -#X connect 20 0 19 0; -#X connect 21 0 20 0; -#X connect 22 0 20 0; -#X connect 23 0 20 0; -#X connect 24 0 20 0; -#X connect 28 0 37 0; -#X connect 28 0 38 0; -#X connect 29 0 33 0; -#X connect 29 0 35 0; -#X connect 29 0 34 0; -#X connect 29 0 28 0; -#X connect 29 0 37 0; -#X connect 38 0 33 0; -#X connect 38 1 35 0; -#X connect 38 2 34 0; -#X connect 39 0 18 0; -#X connect 39 1 18 1; -#X connect 42 0 38 0; -#X connect 43 0 38 0; +#N canvas 22 22 973 526 10; +#X msg 454 136 100; +#X msg 489 139 1000; +#X msg 532 139 3000; +#X obj 305 182 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 0 22 450 300 (subpatch) 0; +#X array array101 100 float 0; +#X coords 0 1.1 99 -0.1 100 50 1; +#X restore 845 186 graph; +#N canvas 0 22 450 300 (subpatch) 0; +#X array array102 100 float 0; +#X coords 0 1.1 99 -0.1 100 50 1; +#X restore 845 256 graph; +#N canvas 0 22 450 300 (subpatch) 0; +#X array array103 100 float 0; +#X coords 0 1.1 99 -0.1 100 50 1; +#X restore 845 326 graph; +#X obj 203 309 tabwrite~ array101; +#X obj 250 355 tabwrite~ array103; +#X obj 225 332 tabwrite~ array102; +#N canvas 0 22 450 300 (subpatch) 0; +#X array array100 100 float 0; +#X coords 0 1.1 99 -0.1 100 50 1; +#X restore 845 116 graph; +#X obj 304 254 tabwrite~ array100; +#N canvas 0 22 450 300 dirac 0; +#X obj 103 44 inlet; +#X obj 103 65 t b b; +#X obj 71 100 del 2; +#X msg 126 112 1; +#X msg 70 122 0; +#X obj 92 151 biquad~ 0 0 1 -1 0; +#X obj 92 176 max~ 0; +#X obj 92 197 outlet~; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 3 0; +#X connect 2 0 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X restore 212 222 pd dirac; +#X text 113 442 IEM KUG; +#X text 87 430 musil; +#X text 125 430 @; +#X text 133 430 iem.at; +#X text 96 452 Graz \, Austria; +#X text 46 419 (c) Thomas Musil 2000 - 2011; +#X obj 24 46 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X floatatom 24 110 5 0 0 0 - - -; +#X floatatom 42 93 5 0 0 0 - - -; +#N canvas 0 22 528 567 dsp 0; +#X obj 20 65 inlet; +#X obj 20 406 outlet; +#X msg 31 88 \; pd dsp \$1; +#X obj 20 199 cputime; +#X obj 20 178 t b b; +#X text 15 11 dsp; +#X text 59 65 1/0 = ON/OFF; +#X text 97 313 CPU-load; +#X obj 62 126 loadbang; +#X obj 20 126 sel 1; +#X text 64 12 turn dsp-kernel on & off \,; +#X obj 20 240 t f f; +#X obj 211 405 outlet; +#X text 65 408 average; +#X text 177 405 peak; +#X obj 211 154 f; +#X obj 146 179 > -1; +#X obj 169 155 f -1; +#X obj 179 91 t f b f; +#X obj 146 204 sel 1; +#X obj 192 132 f -1; +#X obj 20 154 metro 500; +#X obj 20 220 * 0.2; +#X text 74 37 -dsp-load in %; +#X text 65 24 measure average- and peak-; +#X obj 20 292 1p1z 0.1 0 0.9; +#X obj 20 315 * 100; +#X obj 20 360 int; +#X obj 20 338 + 0.499; +#X obj 20 383 * 0.01; +#X obj 246 207 r pd; +#X obj 246 231 route dsp; +#X text 245 318 to toggle input; +#X msg 246 283 \; dsp_tgl set \$1; +#X obj 247 341 r dsp_tgl; +#X obj 246 257 route float; +#X obj 146 227 del 3990; +#X text 179 455 IEM KUG; +#X text 153 443 musil; +#X text 190 443 @; +#X text 199 443 iem.at; +#X text 162 465 Graz \, Austria; +#X msg 275 108 \; pd audio-dialog 0 0 0 0 64 0 0 0 0 0 0 0 64 0 0 0 +44100 \$1; +#X obj 275 81 inlet; +#X text 271 56 system delay time in ms; +#N canvas 0 22 486 468 once 0; +#X obj 89 162 spigot; +#X obj 34 59 inlet; +#X obj 89 111 t a b; +#X obj 126 140 f 1; +#X obj 89 194 t a b; +#X obj 119 216 f 0; +#X obj 89 247 outlet; +#X obj 207 56 inlet; +#X obj 207 79 bang; +#X obj 207 102 f 1; +#X text 8 6 once; +#X text 64 7 only the first message passes through; +#X text 29 37 message in; +#X text 29 289 message out (only once); +#X text 203 36 anything to init once; +#X obj 34 80 route bang; +#X obj 34 110 t b b; +#X obj 34 162 spigot; +#X obj 34 194 t b b; +#X text 98 377 IEM KUG; +#X text 73 363 musil; +#X text 110 365 @; +#X text 118 365 iem.at; +#X text 81 387 Graz \, Austria; +#X text 120 339 @; +#X text 128 339 iem.at; +#X text 33 338 (c) zmoelnig; +#X text 33 352 (c) Thomas Musil 2000 - 2011; +#X connect 0 0 4 0; +#X connect 1 0 15 0; +#X connect 2 0 0 0; +#X connect 2 1 3 0; +#X connect 3 0 0 1; +#X connect 3 0 17 1; +#X connect 4 0 6 0; +#X connect 4 1 5 0; +#X connect 5 0 3 1; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 9 0 3 1; +#X connect 15 0 16 0; +#X connect 15 1 2 0; +#X connect 16 0 17 0; +#X connect 16 1 3 0; +#X connect 17 0 18 0; +#X connect 18 0 6 0; +#X connect 18 1 5 0; +#X restore 69 270 pd once; +#X text 112 430 (c) Thomas Musil 2000 - 2011; +#X connect 0 0 2 0; +#X connect 0 0 9 0; +#X connect 3 0 22 0; +#X connect 4 0 3 0; +#X connect 4 1 3 1; +#X connect 8 0 21 0; +#X connect 9 0 21 0; +#X connect 11 0 25 0; +#X connect 11 1 45 0; +#X connect 15 0 17 1; +#X connect 15 0 12 0; +#X connect 16 0 19 0; +#X connect 17 0 16 1; +#X connect 18 0 16 0; +#X connect 18 1 17 0; +#X connect 18 2 15 1; +#X connect 19 0 15 0; +#X connect 19 0 36 0; +#X connect 20 0 17 1; +#X connect 21 0 4 0; +#X connect 22 0 11 0; +#X connect 22 0 18 0; +#X connect 25 0 26 0; +#X connect 26 0 28 0; +#X connect 27 0 29 0; +#X connect 28 0 27 0; +#X connect 29 0 1 0; +#X connect 30 0 31 0; +#X connect 31 0 35 0; +#X connect 35 0 33 0; +#X connect 36 0 20 0; +#X connect 43 0 42 0; +#X connect 45 0 25 5; +#X connect 45 0 25 4; +#X restore 24 69 pd dsp; +#X text 420 465 3.) initial argument: interpolation time in +ms; +#X text 421 449 2.) inital argument: maximum delay time in +ms; +#X text 421 433 1.) inital argument: number of delay taps = +outlets; +#X msg 428 194 time \$1; +#X floatatom 428 168 5 0 0 0 - - -; +#X msg 420 137 0; +#X text 20 146 of n delay times in ms; +#X text 472 174 interpolation time in ms; +#X msg 96 165 0.1 0.2 0.3; +#X msg 76 190 1.8 1.7 1.6; +#X obj 299 70 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 300 117 sel 0 1; +#X obj 300 92 t f b; +#X msg 578 136 6000; +#N canvas 0 22 472 410 del_chain 0; +#X obj 158 58 inlet; +#X obj 128 341 outlet; +#X obj 207 86 del 10; +#X obj 207 106 del 990; +#X obj 207 127 del 990; +#X obj 207 148 del 990; +#X obj 207 169 del 990; +#X obj 207 190 del 990; +#X obj 207 211 del 990; +#X obj 207 233 del 990; +#X obj 207 254 del 990; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 5 0; +#X connect 4 0 1 0; +#X connect 5 0 6 0; +#X connect 5 0 1 0; +#X connect 6 0 7 0; +#X connect 6 0 1 0; +#X connect 7 0 8 0; +#X connect 7 0 1 0; +#X connect 8 0 1 0; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 9 0 1 0; +#X connect 10 0 1 0; +#X restore 326 154 pd del_chain; +#X text 21 13 n_delay2p_line~; +#X obj 202 283 n_delay2p_line~ 3 5 100; +#X text 161 12 One signal inlet and n delay tap outlets. Delay times +change every sample with a 2-point interpolation and are given in ms. +; +#X connect 0 0 27 0; +#X connect 1 0 27 0; +#X connect 2 0 27 0; +#X connect 3 0 7 0; +#X connect 3 0 9 0; +#X connect 3 0 8 0; +#X connect 3 0 11 0; +#X connect 3 0 12 0; +#X connect 12 0 11 0; +#X connect 12 0 39 0; +#X connect 19 0 22 0; +#X connect 22 0 20 0; +#X connect 22 1 21 0; +#X connect 26 0 39 0; +#X connect 27 0 26 0; +#X connect 28 0 27 0; +#X connect 31 0 39 0; +#X connect 32 0 39 0; +#X connect 33 0 35 0; +#X connect 34 0 31 0; +#X connect 34 1 32 0; +#X connect 35 0 34 0; +#X connect 35 1 36 0; +#X connect 35 1 37 0; +#X connect 36 0 27 0; +#X connect 37 0 3 0; +#X connect 39 0 7 0; +#X connect 39 1 9 0; +#X connect 39 2 8 0; diff --git a/src/iemlib.h b/src/iemlib.h deleted file mode 100644 index ac1ffce..0000000 --- a/src/iemlib.h +++ /dev/null @@ -1,118 +0,0 @@ -/* For information on usage and redistribution, and for a DISCLAIMER OF ALL -* WARRANTIES, see the file, "LICENSE.txt," in this distribution. - -iemlib written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2012 */ - -#ifndef __IEMLIB_H__ -#define __IEMLIB_H__ - - -#define IS_A_NULL(atom,index) ((atom+index)->a_type == A_NULL) -#define IS_A_POINTER(atom,index) ((atom+index)->a_type == A_POINTER) -#define IS_A_FLOAT(atom,index) ((atom+index)->a_type == A_FLOAT) -#define IS_A_SYMBOL(atom,index) ((atom+index)->a_type == A_SYMBOL) -#define IS_A_DOLLAR(atom,index) ((atom+index)->a_type == A_DOLLAR) -#define IS_A_DOLLSYM(atom,index) ((atom+index)->a_type == A_DOLLSYM) -#define IS_A_SEMI(atom,index) ((atom+index)->a_type == A_SEMI) -#define IS_A_COMMA(atom,index) ((atom+index)->a_type == A_COMMA) - -#define SETNULL(atom) ((atom)->a_type = A_NULL) - -/* now miller's code starts : - for 4 point interpolation - for lookup tables - for denormal floats - */ - -#ifdef MSW -int sys_noloadbang; -//t_symbol *iemgui_key_sym=0; -#include -#else -extern int sys_noloadbang; -//extern t_symbol *iemgui_key_sym; -#include -#endif - -#define DEFDELVS 64 -#define XTRASAMPS 4 -#define SAMPBLK 4 - -#define UNITBIT32 1572864. /* 3*2^19; bit 32 has place value 1 */ - - /* machine-dependent definitions. These ifdefs really - should have been by CPU type and not by operating system! */ -#ifdef IRIX - /* big-endian. Most significant byte is at low address in memory */ -#define HIOFFSET 0 /* word offset to find MSB */ -#define LOWOFFSET 1 /* word offset to find LSB */ -#define int32 long /* a data type that has 32 bits */ -#endif /* IRIX */ - -#ifdef MSW - /* little-endian; most significant byte is at highest address */ -#define HIOFFSET 1 -#define LOWOFFSET 0 -#define int32 long -#endif /* MSW */ - -#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__) -#include -#endif - -#if defined(__linux__) || defined(__CYGWIN__) || defined(__GNU__) || defined(ANDROID) -#include -#endif - -#if defined(__unix__) || defined(__APPLE__) -#if !defined(BYTE_ORDER) || !defined(LITTLE_ENDIAN) -#error No byte order defined -#endif - -#if BYTE_ORDER == LITTLE_ENDIAN -#define HIOFFSET 1 -#define LOWOFFSET 0 -#else -#define HIOFFSET 0 /* word offset to find MSB */ -#define LOWOFFSET 1 /* word offset to find LSB */ -#endif /* __BYTE_ORDER */ -#include -#define int32 int32_t -#endif /* __unix__ or __APPLE__*/ - -union tabfudge_d -{ - double tf_d; - int32 tf_i[2]; -}; - -union tabfudge_f -{ - float tf_f; - long tf_l; -}; - -#if defined __i386__ || defined __x86_64__ -#define IEM_DENORMAL(f) ((((*(unsigned int*)&(f))&0x60000000)==0) || \ -(((*(unsigned int*)&(f))&0x60000000)==0x60000000)) -/* more stringent test: anything not between 1e-19 and 1e19 in absolute val */ -#else - -#define IEM_DENORMAL(f) 0 - -#endif - -/* on 64bit systems we cannot use garray_getfloatarray... */ -#if ((defined PD_MAJOR_VERSION && defined PD_MINOR_VERSION) && (PD_MAJOR_VERSION > 0 || PD_MINOR_VERSION > 40)) -# define iemarray_t t_word -# define iemarray_getarray garray_getfloatwords -# define iemarray_getfloat(pointer, index) (pointer[index].w_float) -# define iemarray_setfloat(pointer, index, fvalue) (pointer[index].w_float = fvalue) -#else -# define iemarray_t t_float -# define iemarray_getarray garray_getfloatarray -# define iemarray_getfloat(pointer, index) (pointer[index]) -# define iemarray_setfloat(pointer, index, fvalue) (pointer[index] = fvalue) -#endif - -#endif diff --git a/src/makefile b/src/makefile index 5dcc2aa..808e7a8 100644 --- a/src/makefile +++ b/src/makefile @@ -1,50 +1,11 @@ -current: all +TARGET = iem_delay -.SUFFIXES: .pd_linux -INCLUDE = -I. -I/usr/local/src/pd/src - -LDFLAGS = -export-dynamic -shared -LIB = -ldl -lm - -#select either the DBG and OPT compiler flags below: - -CFLAGS = -DPD -DUNIX -W -Wno-unused \ - -Wno-parentheses -Wno-switch -O6 -funroll-loops -fomit-frame-pointer -fno-strict-aliasing \ - -DDL_OPEN -fPIC - -SYSTEM = $(shell uname -m) - -# the sources - -SRC = n_delay1p_line~.c \ +SRC = n_delay1p_line~.c \ n_delay2p_line~.c \ nz~.c \ block_delay~.c \ - iem_delay.c - -TARGET = iem_delay.pd_linux - - -OBJ = $(SRC:.c=.o) - -# -# ------------------ targets ------------------------------------ -# - -clean: - rm ../$(TARGET) - rm *.o - -all: $(OBJ) - @echo :: $(OBJ) - $(LD) $(LDFLAGS) -o $(TARGET) *.o $(LIB) - mv $(TARGET) .. - strip --strip-unneeded $(TARGET) - -$(OBJ) : %.o : %.c - $(CC) $(CFLAGS) $(INCLUDE) -c -o $*.o $*.c - - + $(TARGET).c +include ../../Make.include diff --git a/src/makefile_d_fat b/src/makefile_d_fat index d755e19..b374b9b 100644 --- a/src/makefile_d_fat +++ b/src/makefile_d_fat @@ -4,7 +4,10 @@ current: all PD_INSTALL_PATH ?= "/Applications/Pd.app/Contents/Resources" -INCLUDE = -I. -I$(PD_INSTALL_PATH)/src +# path to iemlib.h +IEMLIB_INCLUDE = ../../include + +INCLUDE = -I. -I$(IEMLIB_INCLUDE) -I$(PD_INSTALL_PATH)/src CFLAGS =-DPD -O2 -Wall -W -Wshadow -Wstrict-prototypes \ -Wno-unused -Wno-parentheses -Wno-switch @@ -13,7 +16,7 @@ LFLAGS = -bundle -undefined suppress -flat_namespace # the sources -SRC = n_delay1p_line~.c \ +SRC = n_delay1p_line~.c \ n_delay2p_line~.c \ nz~.c \ block_delay~.c \ diff --git a/src/makefile_linux b/src/makefile_linux deleted file mode 100644 index 24a337c..0000000 --- a/src/makefile_linux +++ /dev/null @@ -1,50 +0,0 @@ -current: all - -.SUFFIXES: .pd_linux - -INCLUDE = -I. -I/usr/local/src/pd/src - -LDFLAGS = -export-dynamic -shared -LIB = -ldl -lm - -#select either the DBG and OPT compiler flags below: - -CFLAGS = -DPD -DUNIX -W -Werror -Wno-unused \ - -Wno-parentheses -Wno-switch -O6 -funroll-loops -fomit-frame-pointer -fno-strict-aliasing \ - -DDL_OPEN -fPIC - -SYSTEM = $(shell uname -m) - -# the sources - -SRC = n_delay1p_line~.c \ - n_delay2p_line~.c \ - nz~.c \ - block_delay~.c \ - iem_delay.c - -TARGET = iem_delay.pd_linux - - -OBJ = $(SRC:.c=.o) - -# -# ------------------ targets ------------------------------------ -# - -clean: - rm ../$(TARGET) - rm *.o - -all: $(OBJ) - @echo :: $(OBJ) - $(LD) $(LDFLAGS) -o $(TARGET) *.o $(LIB) - mv $(TARGET) .. - strip --strip-unneeded $(TARGET) - -$(OBJ) : %.o : %.c - $(CC) $(CFLAGS) $(INCLUDE) -c -o $*.o $*.c - - - - -- cgit v1.2.1