aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--biquad/bq_coef_bp-help.pd113
-rw-r--r--biquad/bq_coef_bp.pd84
-rw-r--r--biquad/bq_coef_highshelf-help.pd113
-rw-r--r--biquad/bq_coef_highshelf.pd100
-rw-r--r--biquad/bq_coef_hip-help.pd113
-rw-r--r--biquad/bq_coef_hip.pd104
-rw-r--r--biquad/bq_coef_lop-help.pd113
-rw-r--r--biquad/bq_coef_lop.pd104
-rw-r--r--biquad/bq_coef_lowshelf-help.pd113
-rw-r--r--biquad/bq_coef_lowshelf.pd105
-rw-r--r--biquad/bq_coef_notch-help.pd113
-rw-r--r--biquad/bq_coef_notch.pd86
-rw-r--r--biquad/bq_coef_peak-help.pd116
-rw-r--r--biquad/bq_coef_peak.pd113
-rw-r--r--biquad/bq~-help.pd927
-rw-r--r--biquad/bq~.c112
-rwxr-xr-xbiquad/makefile97
-rw-r--r--effects/distortion~-help.pd27
-rw-r--r--effects/distortion~.pd203
-rw-r--r--line3/line3-help.pd61
-rw-r--r--line3/line3.c177
-rwxr-xr-xline3/makefile97
-rw-r--r--nusmuk_audio/debian/changelog5
-rw-r--r--nusmuk_audio/debian/compat1
-rw-r--r--nusmuk_audio/debian/control17
-rw-r--r--nusmuk_audio/debian/copyright23
-rw-r--r--nusmuk_audio/debian/gbp.conf7
-rw-r--r--nusmuk_audio/debian/links3
-rwxr-xr-xnusmuk_audio/debian/rules17
-rw-r--r--nusmuk_audio/debian/source/format1
-rw-r--r--nusmuk_audio/debian/watch2
-rw-r--r--nusmuk_utils/debian/changelog5
-rw-r--r--nusmuk_utils/debian/compat1
-rw-r--r--nusmuk_utils/debian/control17
-rw-r--r--nusmuk_utils/debian/copyright23
-rw-r--r--nusmuk_utils/debian/gbp.conf7
-rw-r--r--nusmuk_utils/debian/links3
-rwxr-xr-xnusmuk_utils/debian/rules17
-rw-r--r--nusmuk_utils/debian/source/format1
-rw-r--r--nusmuk_utils/debian/watch2
-rw-r--r--oscillators/pwm~-help.pd36
-rw-r--r--oscillators/pwm~.pd176
-rw-r--r--oscillators/saw~-help.pd14
-rw-r--r--oscillators/saw~.pd79
-rw-r--r--pbank/bushmeat.pbank19
-rw-r--r--pbank/common.h17
-rwxr-xr-xpbank/makefile102
-rwxr-xr-xpbank/pbank-help.pd562
-rwxr-xr-xpbank/pbank.c1368
-rw-r--r--pbank/pbank.h14
-rwxr-xr-xtab/makefile100
-rw-r--r--tab/tabosc4c~-help.pd104
-rw-r--r--tab/tabosc4c~.c244
-rw-r--r--tab/tabosci~-help.pd258
-rw-r--r--tab/tabosci~.c320
-rw-r--r--tab/tabread4c~-help.pd44
-rw-r--r--tab/tabread4c~.c176
-rw-r--r--tab/tabreadi~.c254
-rw-r--r--tab/vdc~-help.pd18
-rw-r--r--tab/vdc~.c93
60 files changed, 152 insertions, 7189 deletions
diff --git a/biquad/bq_coef_bp-help.pd b/biquad/bq_coef_bp-help.pd
deleted file mode 100644
index 880781a..0000000
--- a/biquad/bq_coef_bp-help.pd
+++ /dev/null
@@ -1,113 +0,0 @@
-#N canvas 544 74 484 505 10;
-#X obj 29 160 hip~ 2;
-#X msg 39 187 clear;
-#X obj 156 140 pack f f f f f;
-#X obj 156 94 mtof;
-#X floatatom 156 77 5 0 0 0 - - -;
-#X floatatom 219 98 5 0 0 0 - - -;
-#X obj 29 132 noise~;
-#N canvas 0 0 450 300 5_line~ 0;
-#X obj 80 123 line~;
-#X obj 79 147 outlet~;
-#X obj 80 73 inlet;
-#X obj 136 123 line~;
-#X obj 135 147 outlet~;
-#X obj 136 73 inlet;
-#X obj 193 123 line~;
-#X obj 192 147 outlet~;
-#X obj 193 73 inlet;
-#X obj 247 123 line~;
-#X obj 246 147 outlet~;
-#X obj 247 73 inlet;
-#X obj 304 123 line~;
-#X obj 303 147 outlet~;
-#X obj 304 73 inlet;
-#X msg 80 96 \$1 133;
-#X msg 136 96 \$1 133;
-#X msg 193 96 \$1 133;
-#X msg 247 96 \$1 133;
-#X msg 304 96 \$1 133;
-#X connect 0 0 1 0;
-#X connect 2 0 15 0;
-#X connect 3 0 4 0;
-#X connect 5 0 16 0;
-#X connect 6 0 7 0;
-#X connect 8 0 17 0;
-#X connect 9 0 10 0;
-#X connect 11 0 18 0;
-#X connect 12 0 13 0;
-#X connect 14 0 19 0;
-#X connect 15 0 0 0;
-#X connect 16 0 3 0;
-#X connect 17 0 6 0;
-#X connect 18 0 9 0;
-#X connect 19 0 12 0;
-#X restore 45 258 pd 5_line~;
-#X obj 45 231 unpack f f f f f;
-#X obj 43 328 dac~;
-#X obj 156 166 t a;
-#X obj 44 301 *~ 0.1;
-#N canvas 0 0 444 301 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 100 140 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 300 float 0;
-#X coords 0 1 299 -1 300 80 1;
-#X restore 100 100 graph;
-#X obj 110 75 change;
-#X obj 234 62 block~ 640 1 0.25;
-#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 1 100 100;
-#X restore 29 372 pd oscillo;
-#X text 260 95 Q;
-#X text 192 77 cutoff;
-#X obj 156 116 bq_coef_bp;
-#X text 153 8 band pass filter coeficient for a biquad;
-#X obj 29 280 bq~ --------;
-#X connect 0 0 17 0;
-#X connect 1 0 17 0;
-#X connect 2 0 10 0;
-#X connect 3 0 15 0;
-#X connect 4 0 3 0;
-#X connect 5 0 15 1;
-#X connect 6 0 0 0;
-#X connect 7 0 17 1;
-#X connect 7 1 17 2;
-#X connect 7 2 17 3;
-#X connect 7 3 17 4;
-#X connect 7 4 17 5;
-#X connect 8 0 7 0;
-#X connect 8 1 7 1;
-#X connect 8 2 7 2;
-#X connect 8 3 7 3;
-#X connect 8 4 7 4;
-#X connect 10 0 8 0;
-#X connect 11 0 9 0;
-#X connect 15 0 2 0;
-#X connect 15 1 2 1;
-#X connect 15 2 2 2;
-#X connect 15 3 2 3;
-#X connect 15 4 2 4;
-#X connect 17 0 11 0;
-#X connect 17 0 12 0;
diff --git a/biquad/bq_coef_bp.pd b/biquad/bq_coef_bp.pd
deleted file mode 100644
index 565d91e..0000000
--- a/biquad/bq_coef_bp.pd
+++ /dev/null
@@ -1,84 +0,0 @@
-#N canvas 0 0 417 599 10;
-#X obj 50 32 inlet;
-#X obj 211 31 inlet;
-#X text 92 34 f;
-#X text 256 31 Q;
-#X obj 119 148 samplerate~;
-#X obj 119 125 loadbang;
-#X obj 176 126 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 50 180 /;
-#X obj 50 349 cos;
-#X obj 199 276 sin;
-#X obj 211 126 * 2;
-#X obj 50 544 outlet;
-#X obj 288 484 + 1;
-#X obj 50 467 * -2;
-#X obj 50 249 t f f;
-#X obj 50 519 /;
-#X obj 94 520 /;
-#X obj 139 520 /;
-#X obj 229 520 /;
-#X obj 139 544 outlet;
-#X obj 94 544 outlet;
-#X obj 184 544 outlet;
-#X obj 229 544 outlet;
-#X obj 50 226 f;
-#X obj 211 195 t b f;
-#X msg 94 438 1 \$1;
-#X obj 94 483 -;
-#X obj 229 481 * -1;
-#X msg 184 520 0;
-#X obj 199 330 t f b f;
-#X obj 211 74 max 0;
-#X obj 50 73 max 0;
-#X obj 50 122 * 3.14159;
-#X obj 211 105 + 0.7;
-#X msg 211 148 1 \$1;
-#X obj 211 170 /;
-#X obj 50 148 * 2;
-#X obj 50 99 min 21000;
-#X obj 199 303 * 0.767;
-#X obj 238 242 expr sinh($f1);
-#X connect 0 0 31 0;
-#X connect 1 0 30 0;
-#X connect 4 0 7 1;
-#X connect 5 0 4 0;
-#X connect 6 0 4 0;
-#X connect 7 0 23 0;
-#X connect 8 0 13 0;
-#X connect 9 0 38 0;
-#X connect 10 0 34 0;
-#X connect 12 0 15 1;
-#X connect 12 0 16 1;
-#X connect 12 0 17 1;
-#X connect 12 0 18 1;
-#X connect 13 0 15 0;
-#X connect 14 0 8 0;
-#X connect 14 1 9 0;
-#X connect 15 0 11 0;
-#X connect 16 0 20 0;
-#X connect 17 0 19 0;
-#X connect 18 0 22 0;
-#X connect 23 0 14 0;
-#X connect 24 0 23 0;
-#X connect 24 1 39 0;
-#X connect 25 0 26 0;
-#X connect 26 0 16 0;
-#X connect 27 0 18 0;
-#X connect 28 0 21 0;
-#X connect 29 0 25 0;
-#X connect 29 0 17 0;
-#X connect 29 0 27 0;
-#X connect 29 1 28 0;
-#X connect 29 2 12 0;
-#X connect 30 0 33 0;
-#X connect 31 0 37 0;
-#X connect 32 0 36 0;
-#X connect 33 0 10 0;
-#X connect 34 0 35 0;
-#X connect 35 0 24 0;
-#X connect 36 0 7 0;
-#X connect 37 0 32 0;
-#X connect 38 0 29 0;
-#X connect 39 0 38 1;
diff --git a/biquad/bq_coef_highshelf-help.pd b/biquad/bq_coef_highshelf-help.pd
deleted file mode 100644
index e8286ad..0000000
--- a/biquad/bq_coef_highshelf-help.pd
+++ /dev/null
@@ -1,113 +0,0 @@
-#N canvas 143 113 484 505 10;
-#X obj 29 160 hip~ 2;
-#X msg 39 189 clear;
-#X obj 156 140 pack f f f f f;
-#X obj 156 94 mtof;
-#X floatatom 156 77 5 0 0 0 - - -;
-#X floatatom 219 98 5 0 0 0 - - -;
-#X obj 29 132 noise~;
-#N canvas 0 0 450 300 5_line~ 0;
-#X obj 80 123 line~;
-#X obj 79 147 outlet~;
-#X obj 80 73 inlet;
-#X obj 136 123 line~;
-#X obj 135 147 outlet~;
-#X obj 136 73 inlet;
-#X obj 193 123 line~;
-#X obj 192 147 outlet~;
-#X obj 193 73 inlet;
-#X obj 247 123 line~;
-#X obj 246 147 outlet~;
-#X obj 247 73 inlet;
-#X obj 304 123 line~;
-#X obj 303 147 outlet~;
-#X obj 304 73 inlet;
-#X msg 80 96 \$1 133;
-#X msg 136 96 \$1 133;
-#X msg 193 96 \$1 133;
-#X msg 247 96 \$1 133;
-#X msg 304 96 \$1 133;
-#X connect 0 0 1 0;
-#X connect 2 0 15 0;
-#X connect 3 0 4 0;
-#X connect 5 0 16 0;
-#X connect 6 0 7 0;
-#X connect 8 0 17 0;
-#X connect 9 0 10 0;
-#X connect 11 0 18 0;
-#X connect 12 0 13 0;
-#X connect 14 0 19 0;
-#X connect 15 0 0 0;
-#X connect 16 0 3 0;
-#X connect 17 0 6 0;
-#X connect 18 0 9 0;
-#X connect 19 0 12 0;
-#X restore 45 258 pd 5_line~;
-#X obj 45 231 unpack f f f f f;
-#X obj 43 328 dac~;
-#X obj 156 166 t a;
-#X obj 44 301 *~ 0.1;
-#N canvas 0 0 444 301 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 100 140 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 300 float 0;
-#X coords 0 1 299 -1 300 80 1;
-#X restore 100 100 graph;
-#X obj 110 75 change;
-#X obj 234 62 block~ 640 1 0.25;
-#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 1 100 100;
-#X restore 29 372 pd oscillo;
-#X text 192 77 cutoff;
-#X text 153 8 high shelf filter coeficient for a biquad;
-#X obj 156 116 bq_coef_highshelf;
-#X text 260 95 gain;
-#X obj 29 280 bq~ --------;
-#X connect 0 0 17 0;
-#X connect 1 0 17 0;
-#X connect 2 0 10 0;
-#X connect 3 0 15 0;
-#X connect 4 0 3 0;
-#X connect 5 0 15 1;
-#X connect 6 0 0 0;
-#X connect 7 0 17 1;
-#X connect 7 1 17 2;
-#X connect 7 2 17 3;
-#X connect 7 3 17 4;
-#X connect 7 4 17 5;
-#X connect 8 0 7 0;
-#X connect 8 1 7 1;
-#X connect 8 2 7 2;
-#X connect 8 3 7 3;
-#X connect 8 4 7 4;
-#X connect 10 0 8 0;
-#X connect 11 0 9 0;
-#X connect 15 0 2 0;
-#X connect 15 1 2 1;
-#X connect 15 2 2 2;
-#X connect 15 3 2 3;
-#X connect 15 4 2 4;
-#X connect 17 0 11 0;
-#X connect 17 0 12 0;
diff --git a/biquad/bq_coef_highshelf.pd b/biquad/bq_coef_highshelf.pd
deleted file mode 100644
index 52e1132..0000000
--- a/biquad/bq_coef_highshelf.pd
+++ /dev/null
@@ -1,100 +0,0 @@
-#N canvas 0 0 511 569 10;
-#X obj 50 32 inlet;
-#X text 92 34 f;
-#X obj 50 165 * 6.283;
-#X obj 106 188 samplerate~;
-#X obj 106 166 loadbang;
-#X obj 164 167 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 50 220 /;
-#X obj 96 272 cos;
-#X obj 69 271 sin;
-#X obj 319 36 inlet;
-#X text 387 146 A;
-#X obj 319 121 pow;
-#X msg 319 100 10;
-#X obj 319 81 t b f;
-#X obj 319 58 / 40;
-#X obj 319 182 t f f;
-#X obj 319 204 *;
-#X obj 319 224 + 1;
-#X obj 360 183 - 1;
-#X obj 360 204 t f f;
-#X obj 360 226 *;
-#X obj 319 254 -;
-#X text 360 279 beta;
-#X obj 319 278 sqrt;
-#X obj 319 143 t f f f;
-#X obj 50 243 t b f f;
-#X obj 50 493 /;
-#X obj 50 525 outlet;
-#X obj 99 527 outlet;
-#X obj 149 528 outlet;
-#X obj 199 528 outlet;
-#X obj 249 529 outlet;
-#X obj 99 493 /;
-#X obj 149 496 /;
-#X obj 199 494 /;
-#X obj 249 497 /;
-#X obj 50 392 expr 2 * ( ($f2-1) - ($f2+1)*$f4 ) \; ($f2+1) - ($f2-1)*$f4
-- $f1*$f3 \; $f2 * ( ($f2+1) + ($f2-1)*$f4 + $f1*$f3 ) \; -2 * $f2
-* ( ($f2-1) + ($f2+1)*$f4 ) \; $f2 * ( ($f2+1) + ($f2-1)*$f4 - $f1*$f3
-) \; ($f2+1) - ($f2-1)*$f4 + $f1*$f3 \;;
-#X obj 50 73 max 0;
-#X obj 50 99 min 21000;
-#X obj 50 357 f;
-#X msg 135 281 1;
-#X obj 135 302 sqrt;
-#X obj 135 257 loadbang;
-#X connect 0 0 37 0;
-#X connect 2 0 6 0;
-#X connect 3 0 6 1;
-#X connect 4 0 3 0;
-#X connect 5 0 3 0;
-#X connect 6 0 25 0;
-#X connect 7 0 36 3;
-#X connect 8 0 36 2;
-#X connect 9 0 14 0;
-#X connect 11 0 24 0;
-#X connect 12 0 11 0;
-#X connect 13 0 12 0;
-#X connect 13 1 11 1;
-#X connect 14 0 13 0;
-#X connect 15 0 16 0;
-#X connect 15 1 16 1;
-#X connect 16 0 17 0;
-#X connect 17 0 21 0;
-#X connect 18 0 19 0;
-#X connect 19 0 20 0;
-#X connect 19 1 20 1;
-#X connect 20 0 21 1;
-#X connect 21 0 23 0;
-#X connect 23 0 36 0;
-#X connect 24 0 15 0;
-#X connect 24 1 18 0;
-#X connect 24 2 36 1;
-#X connect 25 0 39 0;
-#X connect 25 1 8 0;
-#X connect 25 2 7 0;
-#X connect 26 0 27 0;
-#X connect 32 0 28 0;
-#X connect 33 0 29 0;
-#X connect 34 0 30 0;
-#X connect 35 0 31 0;
-#X connect 36 0 26 0;
-#X connect 36 1 32 0;
-#X connect 36 2 33 0;
-#X connect 36 3 34 0;
-#X connect 36 4 35 0;
-#X connect 36 5 26 1;
-#X connect 36 5 32 1;
-#X connect 36 5 33 1;
-#X connect 36 5 34 1;
-#X connect 36 5 35 1;
-#X connect 37 0 38 0;
-#X connect 38 0 2 0;
-#X connect 39 0 36 0;
-#X connect 40 0 41 0;
-#X connect 40 0 36 1;
-#X connect 41 0 39 1;
-#X connect 42 0 40 0;
diff --git a/biquad/bq_coef_hip-help.pd b/biquad/bq_coef_hip-help.pd
deleted file mode 100644
index 2e0ddb5..0000000
--- a/biquad/bq_coef_hip-help.pd
+++ /dev/null
@@ -1,113 +0,0 @@
-#N canvas 544 74 484 505 10;
-#X obj 29 160 hip~ 2;
-#X msg 40 187 clear;
-#X obj 156 140 pack f f f f f;
-#X obj 156 94 mtof;
-#X floatatom 156 77 5 0 0 0 - - -;
-#X floatatom 219 98 5 0 0 0 - - -;
-#X obj 29 132 noise~;
-#N canvas 0 0 450 300 5_line~ 0;
-#X obj 80 123 line~;
-#X obj 79 147 outlet~;
-#X obj 80 73 inlet;
-#X obj 136 123 line~;
-#X obj 135 147 outlet~;
-#X obj 136 73 inlet;
-#X obj 193 123 line~;
-#X obj 192 147 outlet~;
-#X obj 193 73 inlet;
-#X obj 247 123 line~;
-#X obj 246 147 outlet~;
-#X obj 247 73 inlet;
-#X obj 304 123 line~;
-#X obj 303 147 outlet~;
-#X obj 304 73 inlet;
-#X msg 80 96 \$1 133;
-#X msg 136 96 \$1 133;
-#X msg 193 96 \$1 133;
-#X msg 247 96 \$1 133;
-#X msg 304 96 \$1 133;
-#X connect 0 0 1 0;
-#X connect 2 0 15 0;
-#X connect 3 0 4 0;
-#X connect 5 0 16 0;
-#X connect 6 0 7 0;
-#X connect 8 0 17 0;
-#X connect 9 0 10 0;
-#X connect 11 0 18 0;
-#X connect 12 0 13 0;
-#X connect 14 0 19 0;
-#X connect 15 0 0 0;
-#X connect 16 0 3 0;
-#X connect 17 0 6 0;
-#X connect 18 0 9 0;
-#X connect 19 0 12 0;
-#X restore 45 258 pd 5_line~;
-#X obj 45 231 unpack f f f f f;
-#X obj 43 328 dac~;
-#X obj 156 166 t a;
-#X obj 44 301 *~ 0.1;
-#N canvas 0 0 444 301 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 100 140 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 300 float 0;
-#X coords 0 1 299 -1 300 80 1;
-#X restore 100 100 graph;
-#X obj 110 75 change;
-#X obj 234 62 block~ 640 1 0.25;
-#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 1 100 100;
-#X restore 29 372 pd oscillo;
-#X text 260 95 Q;
-#X text 192 77 cutoff;
-#X obj 156 116 bq_coef_hip;
-#X text 153 8 high pass filter coeficient for a biquad;
-#X obj 29 280 bq~ --------;
-#X connect 0 0 17 0;
-#X connect 1 0 17 0;
-#X connect 2 0 10 0;
-#X connect 3 0 15 0;
-#X connect 4 0 3 0;
-#X connect 5 0 15 1;
-#X connect 6 0 0 0;
-#X connect 7 0 17 1;
-#X connect 7 1 17 2;
-#X connect 7 2 17 3;
-#X connect 7 3 17 4;
-#X connect 7 4 17 5;
-#X connect 8 0 7 0;
-#X connect 8 1 7 1;
-#X connect 8 2 7 2;
-#X connect 8 3 7 3;
-#X connect 8 4 7 4;
-#X connect 10 0 8 0;
-#X connect 11 0 9 0;
-#X connect 15 0 2 0;
-#X connect 15 1 2 1;
-#X connect 15 2 2 2;
-#X connect 15 3 2 3;
-#X connect 15 4 2 4;
-#X connect 17 0 11 0;
-#X connect 17 0 12 0;
diff --git a/biquad/bq_coef_hip.pd b/biquad/bq_coef_hip.pd
deleted file mode 100644
index a3f578f..0000000
--- a/biquad/bq_coef_hip.pd
+++ /dev/null
@@ -1,104 +0,0 @@
-#N canvas 0 0 360 583 10;
-#X obj 50 32 inlet;
-#X obj 211 31 inlet;
-#X text 92 34 f;
-#X text 256 31 Q;
-#X obj 116 138 samplerate~;
-#X obj 116 115 loadbang;
-#X obj 173 116 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 50 170 /;
-#X obj 50 339 cos;
-#X obj 199 266 sin;
-#X obj 211 116 * 2;
-#X obj 50 534 outlet;
-#X obj 288 474 + 1;
-#X obj 139 471 / 2;
-#X msg 139 428 1 \$1;
-#X obj 184 450 -;
-#X obj 229 471 / 2;
-#X msg 229 428 1 \$1;
-#X obj 50 457 * -2;
-#X obj 50 239 t f f;
-#X obj 50 509 /;
-#X obj 94 510 /;
-#X obj 139 510 /;
-#X obj 184 509 /;
-#X obj 229 510 /;
-#X obj 139 534 outlet;
-#X obj 94 534 outlet;
-#X obj 184 534 outlet;
-#X obj 229 534 outlet;
-#X obj 50 216 f;
-#X obj 211 185 t b f;
-#X obj 211 95 + 0.707;
-#X msg 94 428 1 \$1;
-#X obj 94 473 -;
-#X obj 199 320 t f f;
-#X obj 139 450 +;
-#X obj 229 451 +;
-#X msg 184 428 -1 \$1;
-#X obj 211 74 max 0;
-#X obj 50 73 max 0;
-#X obj 50 364 t f f b;
-#X obj 50 115 * 3.14159;
-#X obj 60 193 min 3.14;
-#X obj 199 294 * 0.767;
-#X obj 238 254 sinh;
-#X msg 211 140 1 \$1;
-#X obj 211 162 /;
-#X obj 50 144 * 2;
-#X obj 50 95 min 21000;
-#X connect 0 0 39 0;
-#X connect 1 0 38 0;
-#X connect 4 0 7 1;
-#X connect 5 0 4 0;
-#X connect 6 0 4 0;
-#X connect 7 0 29 0;
-#X connect 8 0 40 0;
-#X connect 9 0 43 0;
-#X connect 10 0 45 0;
-#X connect 12 0 20 1;
-#X connect 12 0 21 1;
-#X connect 12 0 22 1;
-#X connect 12 0 23 1;
-#X connect 12 0 24 1;
-#X connect 13 0 22 0;
-#X connect 14 0 35 0;
-#X connect 15 0 23 0;
-#X connect 16 0 24 0;
-#X connect 17 0 36 0;
-#X connect 18 0 20 0;
-#X connect 19 0 8 0;
-#X connect 19 1 9 0;
-#X connect 20 0 11 0;
-#X connect 21 0 26 0;
-#X connect 22 0 25 0;
-#X connect 23 0 27 0;
-#X connect 24 0 28 0;
-#X connect 29 0 19 0;
-#X connect 30 0 29 0;
-#X connect 30 1 44 0;
-#X connect 31 0 10 0;
-#X connect 32 0 33 0;
-#X connect 33 0 21 0;
-#X connect 34 0 32 0;
-#X connect 34 1 12 0;
-#X connect 35 0 13 0;
-#X connect 36 0 16 0;
-#X connect 37 0 15 0;
-#X connect 38 0 31 0;
-#X connect 39 0 48 0;
-#X connect 40 0 18 0;
-#X connect 40 1 14 0;
-#X connect 40 1 37 0;
-#X connect 40 1 17 0;
-#X connect 40 2 33 0;
-#X connect 41 0 47 0;
-#X connect 42 0 29 0;
-#X connect 43 0 34 0;
-#X connect 44 0 43 1;
-#X connect 45 0 46 0;
-#X connect 46 0 30 0;
-#X connect 47 0 7 0;
-#X connect 48 0 41 0;
diff --git a/biquad/bq_coef_lop-help.pd b/biquad/bq_coef_lop-help.pd
deleted file mode 100644
index 2e0fa85..0000000
--- a/biquad/bq_coef_lop-help.pd
+++ /dev/null
@@ -1,113 +0,0 @@
-#N canvas 544 74 484 505 10;
-#X obj 29 160 hip~ 2;
-#X msg 42 190 clear;
-#X obj 156 140 pack f f f f f;
-#X obj 156 94 mtof;
-#X floatatom 156 77 5 0 0 0 - - -;
-#X floatatom 219 98 5 0 0 0 - - -;
-#X obj 29 132 noise~;
-#N canvas 0 0 450 300 5_line~ 0;
-#X obj 80 123 line~;
-#X obj 79 147 outlet~;
-#X obj 80 73 inlet;
-#X obj 136 123 line~;
-#X obj 135 147 outlet~;
-#X obj 136 73 inlet;
-#X obj 193 123 line~;
-#X obj 192 147 outlet~;
-#X obj 193 73 inlet;
-#X obj 247 123 line~;
-#X obj 246 147 outlet~;
-#X obj 247 73 inlet;
-#X obj 304 123 line~;
-#X obj 303 147 outlet~;
-#X obj 304 73 inlet;
-#X msg 80 96 \$1 133;
-#X msg 136 96 \$1 133;
-#X msg 193 96 \$1 133;
-#X msg 247 96 \$1 133;
-#X msg 304 96 \$1 133;
-#X connect 0 0 1 0;
-#X connect 2 0 15 0;
-#X connect 3 0 4 0;
-#X connect 5 0 16 0;
-#X connect 6 0 7 0;
-#X connect 8 0 17 0;
-#X connect 9 0 10 0;
-#X connect 11 0 18 0;
-#X connect 12 0 13 0;
-#X connect 14 0 19 0;
-#X connect 15 0 0 0;
-#X connect 16 0 3 0;
-#X connect 17 0 6 0;
-#X connect 18 0 9 0;
-#X connect 19 0 12 0;
-#X restore 45 258 pd 5_line~;
-#X obj 45 231 unpack f f f f f;
-#X obj 43 328 dac~;
-#X obj 156 166 t a;
-#X obj 44 301 *~ 0.1;
-#X obj 156 116 bq_coef_lop;
-#N canvas 0 0 444 301 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 100 140 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 300 float 0;
-#X coords 0 1 299 -1 300 80 1;
-#X restore 100 100 graph;
-#X obj 110 75 change;
-#X obj 234 62 block~ 640 1 0.25;
-#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 1 100 100;
-#X restore 29 372 pd oscillo;
-#X text 153 8 low pass filter coeficient for a biquad;
-#X text 260 95 Q;
-#X text 192 77 cutoff;
-#X obj 29 280 bq~ --------;
-#X connect 0 0 17 0;
-#X connect 1 0 17 0;
-#X connect 2 0 10 0;
-#X connect 3 0 12 0;
-#X connect 4 0 3 0;
-#X connect 5 0 12 1;
-#X connect 6 0 0 0;
-#X connect 7 0 17 1;
-#X connect 7 1 17 2;
-#X connect 7 2 17 3;
-#X connect 7 3 17 4;
-#X connect 7 4 17 5;
-#X connect 8 0 7 0;
-#X connect 8 1 7 1;
-#X connect 8 2 7 2;
-#X connect 8 3 7 3;
-#X connect 8 4 7 4;
-#X connect 10 0 8 0;
-#X connect 11 0 9 0;
-#X connect 12 0 2 0;
-#X connect 12 1 2 1;
-#X connect 12 2 2 2;
-#X connect 12 3 2 3;
-#X connect 12 4 2 4;
-#X connect 17 0 11 0;
-#X connect 17 0 13 0;
diff --git a/biquad/bq_coef_lop.pd b/biquad/bq_coef_lop.pd
deleted file mode 100644
index 5f25d20..0000000
--- a/biquad/bq_coef_lop.pd
+++ /dev/null
@@ -1,104 +0,0 @@
-#N canvas 0 0 454 630 10;
-#X obj 50 32 inlet;
-#X obj 211 31 inlet;
-#X text 92 34 f;
-#X text 256 31 Q;
-#X obj 117 137 samplerate~;
-#X obj 117 114 loadbang;
-#X obj 174 115 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 50 170 /;
-#X obj 50 369 cos;
-#X obj 199 296 sin;
-#X obj 211 116 * 2;
-#X obj 50 564 outlet;
-#X obj 288 504 + 1;
-#X obj 139 501 / 2;
-#X obj 94 505 -;
-#X msg 99 463 1 \$1;
-#X msg 139 458 1 \$1;
-#X obj 184 480 -;
-#X obj 229 501 / 2;
-#X msg 229 460 1 \$1;
-#X obj 50 487 * -2;
-#X obj 139 480 -;
-#X msg 184 458 1 \$1;
-#X obj 229 481 -;
-#X obj 199 350 t f f;
-#X obj 50 269 t f f;
-#X obj 50 539 /;
-#X obj 94 540 /;
-#X obj 139 540 /;
-#X obj 184 539 /;
-#X obj 229 540 /;
-#X obj 139 564 outlet;
-#X obj 94 564 outlet;
-#X obj 184 564 outlet;
-#X obj 229 564 outlet;
-#X obj 50 246 f;
-#X obj 211 185 t b f;
-#X obj 211 95 + 0.707;
-#X obj 211 74 max 0;
-#X obj 50 73 max 0;
-#X obj 50 394 t f f b;
-#X obj 50 115 * 3.14159;
-#X obj 67 206 min 3.14;
-#X obj 238 295 sinh;
-#X obj 199 325 * 0.767;
-#X msg 211 140 1 \$1;
-#X obj 211 162 /;
-#X obj 50 143 * 2;
-#X obj 50 95 min 21000;
-#X connect 0 0 39 0;
-#X connect 1 0 38 0;
-#X connect 4 0 7 1;
-#X connect 5 0 4 0;
-#X connect 6 0 4 0;
-#X connect 7 0 35 0;
-#X connect 8 0 40 0;
-#X connect 9 0 44 0;
-#X connect 10 0 45 0;
-#X connect 12 0 26 1;
-#X connect 12 0 27 1;
-#X connect 12 0 28 1;
-#X connect 12 0 29 1;
-#X connect 12 0 30 1;
-#X connect 13 0 28 0;
-#X connect 14 0 27 0;
-#X connect 15 0 14 0;
-#X connect 16 0 21 0;
-#X connect 17 0 29 0;
-#X connect 18 0 30 0;
-#X connect 19 0 23 0;
-#X connect 20 0 26 0;
-#X connect 21 0 13 0;
-#X connect 22 0 17 0;
-#X connect 23 0 18 0;
-#X connect 24 0 15 0;
-#X connect 24 1 12 0;
-#X connect 25 0 8 0;
-#X connect 25 1 9 0;
-#X connect 26 0 11 0;
-#X connect 27 0 32 0;
-#X connect 28 0 31 0;
-#X connect 29 0 33 0;
-#X connect 30 0 34 0;
-#X connect 35 0 25 0;
-#X connect 36 0 35 0;
-#X connect 36 1 43 0;
-#X connect 37 0 10 0;
-#X connect 38 0 37 0;
-#X connect 39 0 48 0;
-#X connect 40 0 20 0;
-#X connect 40 1 16 0;
-#X connect 40 1 22 0;
-#X connect 40 1 19 0;
-#X connect 40 2 14 0;
-#X connect 41 0 47 0;
-#X connect 42 0 35 0;
-#X connect 43 0 44 1;
-#X connect 44 0 24 0;
-#X connect 45 0 46 0;
-#X connect 46 0 36 0;
-#X connect 47 0 7 0;
-#X connect 48 0 41 0;
diff --git a/biquad/bq_coef_lowshelf-help.pd b/biquad/bq_coef_lowshelf-help.pd
deleted file mode 100644
index 7ce08b6..0000000
--- a/biquad/bq_coef_lowshelf-help.pd
+++ /dev/null
@@ -1,113 +0,0 @@
-#N canvas 143 113 484 505 10;
-#X obj 29 160 hip~ 2;
-#X msg 45 191 clear;
-#X obj 156 140 pack f f f f f;
-#X obj 156 94 mtof;
-#X floatatom 156 77 5 0 0 0 - - -;
-#X floatatom 219 98 5 0 0 0 - - -;
-#X obj 29 132 noise~;
-#N canvas 0 0 450 300 5_line~ 0;
-#X obj 80 123 line~;
-#X obj 79 147 outlet~;
-#X obj 80 73 inlet;
-#X obj 136 123 line~;
-#X obj 135 147 outlet~;
-#X obj 136 73 inlet;
-#X obj 193 123 line~;
-#X obj 192 147 outlet~;
-#X obj 193 73 inlet;
-#X obj 247 123 line~;
-#X obj 246 147 outlet~;
-#X obj 247 73 inlet;
-#X obj 304 123 line~;
-#X obj 303 147 outlet~;
-#X obj 304 73 inlet;
-#X msg 80 96 \$1 133;
-#X msg 136 96 \$1 133;
-#X msg 193 96 \$1 133;
-#X msg 247 96 \$1 133;
-#X msg 304 96 \$1 133;
-#X connect 0 0 1 0;
-#X connect 2 0 15 0;
-#X connect 3 0 4 0;
-#X connect 5 0 16 0;
-#X connect 6 0 7 0;
-#X connect 8 0 17 0;
-#X connect 9 0 10 0;
-#X connect 11 0 18 0;
-#X connect 12 0 13 0;
-#X connect 14 0 19 0;
-#X connect 15 0 0 0;
-#X connect 16 0 3 0;
-#X connect 17 0 6 0;
-#X connect 18 0 9 0;
-#X connect 19 0 12 0;
-#X restore 45 258 pd 5_line~;
-#X obj 45 231 unpack f f f f f;
-#X obj 43 328 dac~;
-#X obj 156 166 t a;
-#X obj 44 301 *~ 0.1;
-#N canvas 0 0 444 301 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 100 140 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 300 float 0;
-#X coords 0 1 299 -1 300 80 1;
-#X restore 100 100 graph;
-#X obj 110 75 change;
-#X obj 234 62 block~ 640 1 0.25;
-#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 1 100 100;
-#X restore 29 372 pd oscillo;
-#X text 192 77 cutoff;
-#X text 260 95 gain;
-#X obj 156 116 bq_coef_lowshelf;
-#X text 153 8 low shelf filter coeficient for a biquad;
-#X obj 29 280 bq~ --------;
-#X connect 0 0 17 0;
-#X connect 1 0 17 0;
-#X connect 2 0 10 0;
-#X connect 3 0 15 0;
-#X connect 4 0 3 0;
-#X connect 5 0 15 1;
-#X connect 6 0 0 0;
-#X connect 7 0 17 1;
-#X connect 7 1 17 2;
-#X connect 7 2 17 3;
-#X connect 7 3 17 4;
-#X connect 7 4 17 5;
-#X connect 8 0 7 0;
-#X connect 8 1 7 1;
-#X connect 8 2 7 2;
-#X connect 8 3 7 3;
-#X connect 8 4 7 4;
-#X connect 10 0 8 0;
-#X connect 11 0 9 0;
-#X connect 15 0 2 0;
-#X connect 15 1 2 1;
-#X connect 15 2 2 2;
-#X connect 15 3 2 3;
-#X connect 15 4 2 4;
-#X connect 17 0 11 0;
-#X connect 17 0 12 0;
diff --git a/biquad/bq_coef_lowshelf.pd b/biquad/bq_coef_lowshelf.pd
deleted file mode 100644
index 00969c9..0000000
--- a/biquad/bq_coef_lowshelf.pd
+++ /dev/null
@@ -1,105 +0,0 @@
-#N canvas 0 0 551 580 10;
-#X obj 50 32 inlet;
-#X text 92 34 f;
-#X obj 50 185 * 6.283;
-#X obj 106 208 samplerate~;
-#X obj 106 186 loadbang;
-#X obj 164 187 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 50 240 /;
-#X obj 96 292 cos;
-#X obj 69 291 sin;
-#X obj 319 36 inlet;
-#X text 387 176 A;
-#X obj 319 121 pow;
-#X msg 319 100 10;
-#X obj 319 81 t b f;
-#X obj 319 58 / 40;
-#X obj 319 212 t f f;
-#X obj 319 234 *;
-#X obj 319 254 + 1;
-#X obj 360 213 - 1;
-#X obj 360 234 t f f;
-#X obj 360 256 *;
-#X obj 319 284 -;
-#X text 360 309 beta;
-#X obj 319 308 sqrt;
-#X obj 319 173 t f f f;
-#X obj 50 263 t b f f;
-#X obj 50 493 /;
-#X obj 50 391 expr -2 * ( ($f2-1) + ($f2+1)*$f4 ) \; ($f2+1) + ($f2-1)*$f4
-- $f1*$f3 \; $f2 * ( ($f2+1) - ($f2-1)*$f4 + $f1*$f3 ) \; 2 * $f2 *
-( ($f2-1) - ($f2+1)*$f4 ) \; $f2 * ( ($f2+1) - ($f2-1)*$f4 - $f1*$f3
-) \; ($f2+1) + ($f2-1)*$f4 + $f1*$f3 \;;
-#X obj 50 525 outlet;
-#X obj 99 527 outlet;
-#X obj 149 528 outlet;
-#X obj 199 528 outlet;
-#X obj 249 529 outlet;
-#X obj 99 493 /;
-#X obj 149 496 /;
-#X obj 199 494 /;
-#X obj 249 497 /;
-#X obj 50 73 max 0;
-#X obj 50 99 min 21000;
-#X obj 319 149 1;
-#X obj 353 125 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 50 357 f;
-#X msg 135 281 1;
-#X obj 135 302 sqrt;
-#X obj 135 257 loadbang;
-#X connect 0 0 37 0;
-#X connect 2 0 6 0;
-#X connect 3 0 6 1;
-#X connect 4 0 3 0;
-#X connect 5 0 3 0;
-#X connect 6 0 25 0;
-#X connect 7 0 27 3;
-#X connect 8 0 27 2;
-#X connect 9 0 14 0;
-#X connect 11 0 39 0;
-#X connect 12 0 11 0;
-#X connect 13 0 12 0;
-#X connect 13 1 11 1;
-#X connect 14 0 13 0;
-#X connect 15 0 16 0;
-#X connect 15 1 16 1;
-#X connect 16 0 17 0;
-#X connect 17 0 21 0;
-#X connect 18 0 19 0;
-#X connect 19 0 20 0;
-#X connect 19 1 20 1;
-#X connect 20 0 21 1;
-#X connect 21 0 23 0;
-#X connect 23 0 27 0;
-#X connect 24 0 15 0;
-#X connect 24 1 18 0;
-#X connect 24 2 27 1;
-#X connect 25 0 41 0;
-#X connect 25 1 8 0;
-#X connect 25 2 7 0;
-#X connect 26 0 28 0;
-#X connect 27 0 26 0;
-#X connect 27 1 33 0;
-#X connect 27 2 34 0;
-#X connect 27 3 35 0;
-#X connect 27 4 36 0;
-#X connect 27 5 26 1;
-#X connect 27 5 33 1;
-#X connect 27 5 34 1;
-#X connect 27 5 35 1;
-#X connect 27 5 36 1;
-#X connect 33 0 29 0;
-#X connect 34 0 30 0;
-#X connect 35 0 31 0;
-#X connect 36 0 32 0;
-#X connect 37 0 38 0;
-#X connect 38 0 2 0;
-#X connect 39 0 24 0;
-#X connect 40 0 39 0;
-#X connect 41 0 27 0;
-#X connect 42 0 43 0;
-#X connect 42 0 27 1;
-#X connect 43 0 41 1;
-#X connect 44 0 42 0;
diff --git a/biquad/bq_coef_notch-help.pd b/biquad/bq_coef_notch-help.pd
deleted file mode 100644
index 5c1d7f0..0000000
--- a/biquad/bq_coef_notch-help.pd
+++ /dev/null
@@ -1,113 +0,0 @@
-#N canvas 143 113 484 505 10;
-#X obj 29 160 hip~ 2;
-#X msg 48 185 clear;
-#X obj 156 140 pack f f f f f;
-#X obj 156 94 mtof;
-#X floatatom 156 77 5 0 0 0 - - -;
-#X floatatom 231 98 5 0 0 0 - - -;
-#X obj 29 132 noise~;
-#N canvas 0 0 450 300 5_line~ 0;
-#X obj 80 123 line~;
-#X obj 79 147 outlet~;
-#X obj 80 73 inlet;
-#X obj 136 123 line~;
-#X obj 135 147 outlet~;
-#X obj 136 73 inlet;
-#X obj 193 123 line~;
-#X obj 192 147 outlet~;
-#X obj 193 73 inlet;
-#X obj 247 123 line~;
-#X obj 246 147 outlet~;
-#X obj 247 73 inlet;
-#X obj 304 123 line~;
-#X obj 303 147 outlet~;
-#X obj 304 73 inlet;
-#X msg 80 96 \$1 133;
-#X msg 136 96 \$1 133;
-#X msg 193 96 \$1 133;
-#X msg 247 96 \$1 133;
-#X msg 304 96 \$1 133;
-#X connect 0 0 1 0;
-#X connect 2 0 15 0;
-#X connect 3 0 4 0;
-#X connect 5 0 16 0;
-#X connect 6 0 7 0;
-#X connect 8 0 17 0;
-#X connect 9 0 10 0;
-#X connect 11 0 18 0;
-#X connect 12 0 13 0;
-#X connect 14 0 19 0;
-#X connect 15 0 0 0;
-#X connect 16 0 3 0;
-#X connect 17 0 6 0;
-#X connect 18 0 9 0;
-#X connect 19 0 12 0;
-#X restore 45 258 pd 5_line~;
-#X obj 45 231 unpack f f f f f;
-#X obj 43 328 dac~;
-#X obj 156 166 t a;
-#X obj 44 301 *~ 0.1;
-#N canvas 0 0 444 301 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 100 140 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 300 float 0;
-#X coords 0 1 299 -1 300 80 1;
-#X restore 100 100 graph;
-#X obj 110 75 change;
-#X obj 234 62 block~ 640 1 0.25;
-#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 1 100 100;
-#X restore 29 372 pd oscillo;
-#X text 192 77 cutoff;
-#X text 155 12 notch filter coeficient for a biquad;
-#X obj 156 116 bq_coef_notch;
-#X text 269 96 Q;
-#X obj 28 280 bq~ --------;
-#X connect 0 0 17 0;
-#X connect 1 0 17 0;
-#X connect 2 0 10 0;
-#X connect 3 0 15 0;
-#X connect 4 0 3 0;
-#X connect 5 0 15 1;
-#X connect 6 0 0 0;
-#X connect 7 0 17 1;
-#X connect 7 1 17 2;
-#X connect 7 2 17 3;
-#X connect 7 3 17 4;
-#X connect 7 4 17 5;
-#X connect 8 0 7 0;
-#X connect 8 1 7 1;
-#X connect 8 2 7 2;
-#X connect 8 3 7 3;
-#X connect 8 4 7 4;
-#X connect 10 0 8 0;
-#X connect 11 0 9 0;
-#X connect 15 0 2 0;
-#X connect 15 1 2 1;
-#X connect 15 2 2 2;
-#X connect 15 3 2 3;
-#X connect 15 4 2 4;
-#X connect 17 0 11 0;
-#X connect 17 0 12 0;
diff --git a/biquad/bq_coef_notch.pd b/biquad/bq_coef_notch.pd
deleted file mode 100644
index abfc38e..0000000
--- a/biquad/bq_coef_notch.pd
+++ /dev/null
@@ -1,86 +0,0 @@
-#N canvas 0 0 387 638 10;
-#X obj 50 32 inlet;
-#X obj 205 31 inlet;
-#X text 92 34 f;
-#X text 250 31 Q;
-#X obj 119 148 samplerate~;
-#X obj 119 125 loadbang;
-#X obj 176 126 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 50 180 /;
-#X obj 50 349 cos;
-#X obj 199 276 sin;
-#X obj 205 126 * 2;
-#X obj 50 574 outlet;
-#X obj 288 484 + 1;
-#X obj 50 467 * -2;
-#X obj 50 249 t f f;
-#X obj 50 519 /;
-#X obj 94 520 /;
-#X obj 139 520 /;
-#X obj 229 520 /;
-#X obj 139 574 outlet;
-#X obj 94 574 outlet;
-#X obj 184 574 outlet;
-#X obj 229 574 outlet;
-#X obj 50 226 f;
-#X obj 205 195 t b f;
-#X msg 94 438 1 \$1;
-#X obj 94 483 -;
-#X obj 199 330 t f b f;
-#X obj 205 74 max 0;
-#X obj 50 73 max 0;
-#X obj 50 122 * 3.14159;
-#X msg 205 148 1 \$1;
-#X obj 232 242 sinh;
-#X obj 205 170 /;
-#X obj 199 303 *;
-#X obj 50 148 * 2;
-#X msg 139 487 1;
-#X msg 231 481 1;
-#X obj 50 548 t f f;
-#X obj 205 104 + 0.1;
-#X obj 50 99 min 21000;
-#X connect 0 0 29 0;
-#X connect 1 0 28 0;
-#X connect 4 0 7 1;
-#X connect 5 0 4 0;
-#X connect 6 0 4 0;
-#X connect 7 0 23 0;
-#X connect 8 0 13 0;
-#X connect 9 0 34 0;
-#X connect 10 0 31 0;
-#X connect 12 0 15 1;
-#X connect 12 0 16 1;
-#X connect 12 0 17 1;
-#X connect 12 0 18 1;
-#X connect 13 0 15 0;
-#X connect 14 0 8 0;
-#X connect 14 1 9 0;
-#X connect 15 0 38 0;
-#X connect 16 0 20 0;
-#X connect 17 0 19 0;
-#X connect 18 0 22 0;
-#X connect 23 0 14 0;
-#X connect 24 0 23 0;
-#X connect 24 1 32 0;
-#X connect 25 0 26 0;
-#X connect 26 0 16 0;
-#X connect 27 0 25 0;
-#X connect 27 1 36 0;
-#X connect 27 1 37 0;
-#X connect 27 2 12 0;
-#X connect 28 0 39 0;
-#X connect 29 0 40 0;
-#X connect 30 0 35 0;
-#X connect 31 0 33 0;
-#X connect 32 0 34 1;
-#X connect 33 0 24 0;
-#X connect 34 0 27 0;
-#X connect 35 0 7 0;
-#X connect 36 0 17 0;
-#X connect 37 0 18 0;
-#X connect 38 0 11 0;
-#X connect 38 1 21 0;
-#X connect 39 0 10 0;
-#X connect 40 0 30 0;
diff --git a/biquad/bq_coef_peak-help.pd b/biquad/bq_coef_peak-help.pd
deleted file mode 100644
index 45e9eb2..0000000
--- a/biquad/bq_coef_peak-help.pd
+++ /dev/null
@@ -1,116 +0,0 @@
-#N canvas 143 113 484 505 10;
-#X obj 29 160 hip~ 2;
-#X msg 43 188 clear;
-#X obj 156 140 pack f f f f f;
-#X obj 156 94 mtof;
-#X floatatom 156 77 5 0 0 0 - - -;
-#X floatatom 190 98 5 0 0 0 - - -;
-#X obj 29 132 noise~;
-#N canvas 0 0 450 300 5_line~ 0;
-#X obj 80 123 line~;
-#X obj 79 147 outlet~;
-#X obj 80 73 inlet;
-#X obj 136 123 line~;
-#X obj 135 147 outlet~;
-#X obj 136 73 inlet;
-#X obj 193 123 line~;
-#X obj 192 147 outlet~;
-#X obj 193 73 inlet;
-#X obj 247 123 line~;
-#X obj 246 147 outlet~;
-#X obj 247 73 inlet;
-#X obj 304 123 line~;
-#X obj 303 147 outlet~;
-#X obj 304 73 inlet;
-#X msg 80 96 \$1 133;
-#X msg 136 96 \$1 133;
-#X msg 193 96 \$1 133;
-#X msg 247 96 \$1 133;
-#X msg 304 96 \$1 133;
-#X connect 0 0 1 0;
-#X connect 2 0 15 0;
-#X connect 3 0 4 0;
-#X connect 5 0 16 0;
-#X connect 6 0 7 0;
-#X connect 8 0 17 0;
-#X connect 9 0 10 0;
-#X connect 11 0 18 0;
-#X connect 12 0 13 0;
-#X connect 14 0 19 0;
-#X connect 15 0 0 0;
-#X connect 16 0 3 0;
-#X connect 17 0 6 0;
-#X connect 18 0 9 0;
-#X connect 19 0 12 0;
-#X restore 45 258 pd 5_line~;
-#X obj 45 231 unpack f f f f f;
-#X obj 43 328 dac~;
-#X obj 156 166 t a;
-#X obj 44 301 *~ 0.1;
-#N canvas 0 0 444 301 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 100 140 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 300 float 0;
-#X coords 0 1 299 -1 300 80 1;
-#X restore 100 100 graph;
-#X obj 110 75 change;
-#X obj 234 62 block~ 640 1 0.25;
-#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 1 100 100;
-#X restore 29 372 pd oscillo;
-#X text 192 77 cutoff;
-#X text 155 12 notch filter coeficient for a biquad;
-#X text 228 96 Q;
-#X obj 156 116 bq_coef_peak;
-#X floatatom 244 98 5 0 0 0 - - -;
-#X text 282 96 Gain;
-#X obj 29 280 bq~ --------;
-#X connect 0 0 19 0;
-#X connect 1 0 19 0;
-#X connect 2 0 10 0;
-#X connect 3 0 16 0;
-#X connect 4 0 3 0;
-#X connect 5 0 16 1;
-#X connect 6 0 0 0;
-#X connect 7 0 19 1;
-#X connect 7 1 19 2;
-#X connect 7 2 19 3;
-#X connect 7 3 19 4;
-#X connect 7 4 19 5;
-#X connect 8 0 7 0;
-#X connect 8 1 7 1;
-#X connect 8 2 7 2;
-#X connect 8 3 7 3;
-#X connect 8 4 7 4;
-#X connect 10 0 8 0;
-#X connect 11 0 9 0;
-#X connect 16 0 2 0;
-#X connect 16 1 2 1;
-#X connect 16 2 2 2;
-#X connect 16 3 2 3;
-#X connect 16 4 2 4;
-#X connect 17 0 16 2;
-#X connect 19 0 11 0;
-#X connect 19 0 12 0;
diff --git a/biquad/bq_coef_peak.pd b/biquad/bq_coef_peak.pd
deleted file mode 100644
index a3f2e2b..0000000
--- a/biquad/bq_coef_peak.pd
+++ /dev/null
@@ -1,113 +0,0 @@
-#N canvas 0 0 433 621 10;
-#X obj 50 32 inlet;
-#X obj 206 31 inlet;
-#X text 92 34 f;
-#X text 251 31 Q;
-#X obj 119 148 samplerate~;
-#X obj 119 125 loadbang;
-#X obj 176 126 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 50 180 /;
-#X obj 50 349 cos;
-#X obj 200 276 sin;
-#X obj 206 126 * 2;
-#X obj 50 574 outlet;
-#X obj 283 485 + 1;
-#X obj 50 467 * -2;
-#X obj 50 249 t f f;
-#X obj 50 519 /;
-#X obj 94 520 /;
-#X obj 139 520 /;
-#X obj 229 520 /;
-#X obj 139 574 outlet;
-#X obj 94 574 outlet;
-#X obj 184 574 outlet;
-#X obj 229 574 outlet;
-#X obj 50 226 f;
-#X obj 206 195 t b f;
-#X msg 94 458 1 \$1;
-#X obj 206 74 max 0;
-#X obj 50 73 max 0;
-#X obj 50 128 * 3.14159;
-#X msg 206 148 1 \$1;
-#X obj 233 226 sinh;
-#X obj 206 170 /;
-#X obj 50 148 * 2;
-#X obj 50 548 t f f;
-#X obj 206 104 + 0.1;
-#X obj 302 32 inlet;
-#X text 344 198 A;
-#X obj 302 117 pow;
-#X msg 302 96 10;
-#X obj 302 77 t b f;
-#X obj 302 54 / 40;
-#X msg 140 460 1 \$1;
-#X msg 230 460 1 \$1;
-#X obj 230 485 -;
-#X obj 200 356 t f f;
-#X obj 302 202 t b f;
-#X obj 140 485 +;
-#X obj 94 483 -;
-#X obj 50 99 min 21000;
-#X obj 200 406 / 1;
-#X obj 230 407 * 1;
-#X obj 283 407 / 1;
-#X obj 200 303 * 74.2;
-#X connect 0 0 27 0;
-#X connect 1 0 26 0;
-#X connect 4 0 7 1;
-#X connect 5 0 4 0;
-#X connect 6 0 4 0;
-#X connect 7 0 23 0;
-#X connect 8 0 13 0;
-#X connect 9 0 52 0;
-#X connect 10 0 29 0;
-#X connect 12 0 15 1;
-#X connect 12 0 16 1;
-#X connect 12 0 17 1;
-#X connect 12 0 18 1;
-#X connect 13 0 15 0;
-#X connect 14 0 8 0;
-#X connect 14 1 9 0;
-#X connect 15 0 33 0;
-#X connect 16 0 20 0;
-#X connect 17 0 19 0;
-#X connect 18 0 22 0;
-#X connect 23 0 14 0;
-#X connect 24 0 23 0;
-#X connect 24 1 30 0;
-#X connect 25 0 47 0;
-#X connect 26 0 34 0;
-#X connect 27 0 48 0;
-#X connect 28 0 32 0;
-#X connect 29 0 31 0;
-#X connect 30 0 52 1;
-#X connect 31 0 24 0;
-#X connect 32 0 7 0;
-#X connect 33 0 11 0;
-#X connect 33 1 21 0;
-#X connect 34 0 10 0;
-#X connect 35 0 40 0;
-#X connect 37 0 45 0;
-#X connect 38 0 37 0;
-#X connect 39 0 38 0;
-#X connect 39 1 37 1;
-#X connect 40 0 39 0;
-#X connect 41 0 46 0;
-#X connect 42 0 43 0;
-#X connect 43 0 18 0;
-#X connect 44 0 49 0;
-#X connect 44 0 50 0;
-#X connect 44 1 51 0;
-#X connect 45 0 23 0;
-#X connect 45 1 49 1;
-#X connect 45 1 50 1;
-#X connect 45 1 51 1;
-#X connect 46 0 17 0;
-#X connect 47 0 16 0;
-#X connect 48 0 28 0;
-#X connect 49 0 25 0;
-#X connect 50 0 42 0;
-#X connect 50 0 41 0;
-#X connect 51 0 12 0;
-#X connect 52 0 44 0;
diff --git a/biquad/bq~-help.pd b/biquad/bq~-help.pd
deleted file mode 100644
index 45b2b51..0000000
--- a/biquad/bq~-help.pd
+++ /dev/null
@@ -1,927 +0,0 @@
-#N canvas 425 30 597 738 10;
-#X floatatom 372 232 9 0 0 0 - - -;
-#X obj 372 213 mtof;
-#X floatatom 372 197 5 0 127 0 - - -;
-#X floatatom 507 231 5 0 0 0 - - -;
-#N canvas 435 52 535 646 coef_lowShelf_biquad 0;
-#X obj 50 32 inlet;
-#X text 92 34 f;
-#X obj 50 185 * 6.283;
-#X obj 106 208 samplerate~;
-#X obj 106 186 loadbang;
-#X obj 164 187 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 50 240 /;
-#X obj 96 292 cos;
-#X obj 69 291 sin;
-#X obj 319 36 inlet;
-#X text 387 176 A;
-#X obj 319 121 pow;
-#X msg 319 100 10;
-#X obj 319 81 t b f;
-#X obj 319 58 / 40;
-#X obj 319 212 t f f;
-#X obj 319 234 *;
-#X obj 319 254 + 1;
-#X obj 360 213 - 1;
-#X obj 360 234 t f f;
-#X obj 360 256 *;
-#X obj 319 284 -;
-#X text 360 309 beta;
-#X obj 319 308 sqrt;
-#X obj 319 173 t f f f;
-#X obj 50 263 t b f f;
-#X obj 50 493 /;
-#X obj 50 391 expr -2 * ( ($f2-1) + ($f2+1)*$f4 ) \; ($f2+1) + ($f2-1)*$f4
-- $f1*$f3 \; $f2 * ( ($f2+1) - ($f2-1)*$f4 + $f1*$f3 ) \; 2 * $f2 *
-( ($f2-1) - ($f2+1)*$f4 ) \; $f2 * ( ($f2+1) - ($f2-1)*$f4 - $f1*$f3
-) \; ($f2+1) + ($f2-1)*$f4 + $f1*$f3 \;;
-#X obj 50 525 outlet;
-#X obj 99 527 outlet;
-#X obj 149 528 outlet;
-#X obj 199 528 outlet;
-#X obj 249 529 outlet;
-#X obj 99 493 /;
-#X obj 149 496 /;
-#X obj 199 494 /;
-#X obj 249 497 /;
-#X obj 50 73 max 0;
-#X obj 50 99 min 21000;
-#X obj 319 149 1;
-#X obj 353 125 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 50 357 f;
-#X msg 135 281 1;
-#X obj 135 302 sqrt;
-#X obj 135 257 loadbang;
-#X connect 0 0 37 0;
-#X connect 2 0 6 0;
-#X connect 3 0 6 1;
-#X connect 4 0 3 0;
-#X connect 5 0 3 0;
-#X connect 6 0 25 0;
-#X connect 7 0 27 3;
-#X connect 8 0 27 2;
-#X connect 9 0 14 0;
-#X connect 11 0 39 0;
-#X connect 12 0 11 0;
-#X connect 13 0 12 0;
-#X connect 13 1 11 1;
-#X connect 14 0 13 0;
-#X connect 15 0 16 0;
-#X connect 15 1 16 1;
-#X connect 16 0 17 0;
-#X connect 17 0 21 0;
-#X connect 18 0 19 0;
-#X connect 19 0 20 0;
-#X connect 19 1 20 1;
-#X connect 20 0 21 1;
-#X connect 21 0 23 0;
-#X connect 23 0 27 0;
-#X connect 24 0 15 0;
-#X connect 24 1 18 0;
-#X connect 24 2 27 1;
-#X connect 25 0 41 0;
-#X connect 25 1 8 0;
-#X connect 25 2 7 0;
-#X connect 26 0 28 0;
-#X connect 27 0 26 0;
-#X connect 27 1 33 0;
-#X connect 27 2 34 0;
-#X connect 27 3 35 0;
-#X connect 27 4 36 0;
-#X connect 27 5 26 1;
-#X connect 27 5 33 1;
-#X connect 27 5 34 1;
-#X connect 27 5 35 1;
-#X connect 27 5 36 1;
-#X connect 33 0 29 0;
-#X connect 34 0 30 0;
-#X connect 35 0 31 0;
-#X connect 36 0 32 0;
-#X connect 37 0 38 0;
-#X connect 38 0 2 0;
-#X connect 39 0 24 0;
-#X connect 40 0 39 0;
-#X connect 41 0 27 0;
-#X connect 42 0 43 0;
-#X connect 42 0 27 1;
-#X connect 43 0 41 1;
-#X connect 44 0 42 0;
-#X restore 372 253 pd coef_lowShelf_biquad;
-#X obj 42 545 hip~ 2;
-#N canvas 275 396 358 628 coef_hpf_biquad 0;
-#X obj 50 32 inlet;
-#X obj 211 31 inlet;
-#X text 92 34 f;
-#X text 256 31 Q;
-#X obj 116 138 samplerate~;
-#X obj 116 115 loadbang;
-#X obj 173 116 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 50 170 /;
-#X obj 50 339 cos;
-#X obj 199 266 sin;
-#X obj 211 116 * 2;
-#X obj 50 534 outlet;
-#X obj 288 474 + 1;
-#X obj 139 471 / 2;
-#X msg 139 428 1 \$1;
-#X obj 184 450 -;
-#X obj 229 471 / 2;
-#X msg 229 428 1 \$1;
-#X obj 50 457 * -2;
-#X obj 50 239 t f f;
-#X obj 50 509 /;
-#X obj 94 510 /;
-#X obj 139 510 /;
-#X obj 184 509 /;
-#X obj 229 510 /;
-#X obj 139 534 outlet;
-#X obj 94 534 outlet;
-#X obj 184 534 outlet;
-#X obj 229 534 outlet;
-#X obj 50 216 f;
-#X obj 211 185 t b f;
-#X obj 211 95 + 0.707;
-#X msg 94 428 1 \$1;
-#X obj 94 473 -;
-#X obj 199 320 t f f;
-#X obj 139 450 +;
-#X obj 229 451 +;
-#X msg 184 428 -1 \$1;
-#X obj 211 74 max 0;
-#X obj 50 73 max 0;
-#X obj 50 364 t f f b;
-#X obj 50 115 * 3.14159;
-#X obj 60 193 min 3.14;
-#X obj 199 294 * 0.767;
-#X obj 238 254 sinh;
-#X msg 211 140 1 \$1;
-#X obj 211 162 /;
-#X obj 50 144 * 2;
-#X obj 50 95 min 21000;
-#X connect 0 0 39 0;
-#X connect 1 0 38 0;
-#X connect 4 0 7 1;
-#X connect 5 0 4 0;
-#X connect 6 0 4 0;
-#X connect 7 0 29 0;
-#X connect 8 0 40 0;
-#X connect 9 0 43 0;
-#X connect 10 0 45 0;
-#X connect 12 0 20 1;
-#X connect 12 0 21 1;
-#X connect 12 0 22 1;
-#X connect 12 0 23 1;
-#X connect 12 0 24 1;
-#X connect 13 0 22 0;
-#X connect 14 0 35 0;
-#X connect 15 0 23 0;
-#X connect 16 0 24 0;
-#X connect 17 0 36 0;
-#X connect 18 0 20 0;
-#X connect 19 0 8 0;
-#X connect 19 1 9 0;
-#X connect 20 0 11 0;
-#X connect 21 0 26 0;
-#X connect 22 0 25 0;
-#X connect 23 0 27 0;
-#X connect 24 0 28 0;
-#X connect 29 0 19 0;
-#X connect 30 0 29 0;
-#X connect 30 1 44 0;
-#X connect 31 0 10 0;
-#X connect 32 0 33 0;
-#X connect 33 0 21 0;
-#X connect 34 0 32 0;
-#X connect 34 1 12 0;
-#X connect 35 0 13 0;
-#X connect 36 0 16 0;
-#X connect 37 0 15 0;
-#X connect 38 0 31 0;
-#X connect 39 0 48 0;
-#X connect 40 0 18 0;
-#X connect 40 1 14 0;
-#X connect 40 1 37 0;
-#X connect 40 1 17 0;
-#X connect 40 2 33 0;
-#X connect 41 0 47 0;
-#X connect 42 0 29 0;
-#X connect 43 0 34 0;
-#X connect 44 0 43 1;
-#X connect 45 0 46 0;
-#X connect 46 0 30 0;
-#X connect 47 0 7 0;
-#X connect 48 0 41 0;
-#X restore 177 242 pd coef_hpf_biquad;
-#N canvas 269 177 545 625 coef_bpf_biquad 0;
-#X obj 50 32 inlet;
-#X obj 211 31 inlet;
-#X text 92 34 f;
-#X text 256 31 Q;
-#X obj 119 148 samplerate~;
-#X obj 119 125 loadbang;
-#X obj 176 126 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 50 180 /;
-#X obj 50 349 cos;
-#X obj 199 276 sin;
-#X obj 211 126 * 2;
-#X obj 50 544 outlet;
-#X obj 288 484 + 1;
-#X obj 50 467 * -2;
-#X obj 50 249 t f f;
-#X obj 50 519 /;
-#X obj 94 520 /;
-#X obj 139 520 /;
-#X obj 229 520 /;
-#X obj 139 544 outlet;
-#X obj 94 544 outlet;
-#X obj 184 544 outlet;
-#X obj 229 544 outlet;
-#X obj 50 226 f;
-#X obj 211 195 t b f;
-#X msg 94 438 1 \$1;
-#X obj 94 483 -;
-#X obj 229 481 * -1;
-#X msg 184 520 0;
-#X obj 199 330 t f b f;
-#X obj 211 74 max 0;
-#X obj 50 73 max 0;
-#X obj 50 122 * 3.14159;
-#X obj 211 105 + 0.7;
-#X msg 211 148 1 \$1;
-#X obj 238 242 sinh;
-#X obj 211 170 /;
-#X obj 50 148 * 2;
-#X obj 50 99 min 21000;
-#X obj 199 303 * 0.767;
-#X connect 0 0 31 0;
-#X connect 1 0 30 0;
-#X connect 4 0 7 1;
-#X connect 5 0 4 0;
-#X connect 6 0 4 0;
-#X connect 7 0 23 0;
-#X connect 8 0 13 0;
-#X connect 9 0 39 0;
-#X connect 10 0 34 0;
-#X connect 12 0 15 1;
-#X connect 12 0 16 1;
-#X connect 12 0 17 1;
-#X connect 12 0 18 1;
-#X connect 13 0 15 0;
-#X connect 14 0 8 0;
-#X connect 14 1 9 0;
-#X connect 15 0 11 0;
-#X connect 16 0 20 0;
-#X connect 17 0 19 0;
-#X connect 18 0 22 0;
-#X connect 23 0 14 0;
-#X connect 24 0 23 0;
-#X connect 24 1 35 0;
-#X connect 25 0 26 0;
-#X connect 26 0 16 0;
-#X connect 27 0 18 0;
-#X connect 28 0 21 0;
-#X connect 29 0 25 0;
-#X connect 29 0 17 0;
-#X connect 29 0 27 0;
-#X connect 29 1 28 0;
-#X connect 29 2 12 0;
-#X connect 30 0 33 0;
-#X connect 31 0 38 0;
-#X connect 32 0 37 0;
-#X connect 33 0 10 0;
-#X connect 34 0 36 0;
-#X connect 35 0 39 1;
-#X connect 36 0 24 0;
-#X connect 37 0 7 0;
-#X connect 38 0 32 0;
-#X connect 39 0 29 0;
-#X restore 188 335 pd coef_bpf_biquad;
-#X msg 95 544 clear;
-#N canvas 520 123 368 628 coef_lpf_biquad 0;
-#X obj 50 32 inlet;
-#X obj 211 31 inlet;
-#X text 92 34 f;
-#X text 256 31 Q;
-#X obj 117 137 samplerate~;
-#X obj 117 114 loadbang;
-#X obj 174 115 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 50 170 /;
-#X obj 50 369 cos;
-#X obj 199 296 sin;
-#X obj 211 116 * 2;
-#X obj 50 564 outlet;
-#X obj 288 504 + 1;
-#X obj 139 501 / 2;
-#X obj 94 505 -;
-#X msg 99 463 1 \$1;
-#X msg 139 458 1 \$1;
-#X obj 184 480 -;
-#X obj 229 501 / 2;
-#X msg 229 460 1 \$1;
-#X obj 50 487 * -2;
-#X obj 139 480 -;
-#X msg 184 458 1 \$1;
-#X obj 229 481 -;
-#X obj 199 350 t f f;
-#X obj 50 269 t f f;
-#X obj 50 539 /;
-#X obj 94 540 /;
-#X obj 139 540 /;
-#X obj 184 539 /;
-#X obj 229 540 /;
-#X obj 139 564 outlet;
-#X obj 94 564 outlet;
-#X obj 184 564 outlet;
-#X obj 229 564 outlet;
-#X obj 50 246 f;
-#X obj 211 185 t b f;
-#X obj 211 95 + 0.707;
-#X obj 211 74 max 0;
-#X obj 50 73 max 0;
-#X obj 50 394 t f f b;
-#X obj 50 115 * 3.14159;
-#X obj 67 206 min 3.14;
-#X obj 238 295 sinh;
-#X obj 199 325 * 0.767;
-#X msg 211 140 1 \$1;
-#X obj 211 162 /;
-#X obj 50 143 * 2;
-#X obj 50 95 min 21000;
-#X connect 0 0 39 0;
-#X connect 1 0 38 0;
-#X connect 4 0 7 1;
-#X connect 5 0 4 0;
-#X connect 6 0 4 0;
-#X connect 7 0 35 0;
-#X connect 8 0 40 0;
-#X connect 9 0 44 0;
-#X connect 10 0 45 0;
-#X connect 12 0 26 1;
-#X connect 12 0 27 1;
-#X connect 12 0 28 1;
-#X connect 12 0 29 1;
-#X connect 12 0 30 1;
-#X connect 13 0 28 0;
-#X connect 14 0 27 0;
-#X connect 15 0 14 0;
-#X connect 16 0 21 0;
-#X connect 17 0 29 0;
-#X connect 18 0 30 0;
-#X connect 19 0 23 0;
-#X connect 20 0 26 0;
-#X connect 21 0 13 0;
-#X connect 22 0 17 0;
-#X connect 23 0 18 0;
-#X connect 24 0 15 0;
-#X connect 24 1 12 0;
-#X connect 25 0 8 0;
-#X connect 25 1 9 0;
-#X connect 26 0 11 0;
-#X connect 27 0 32 0;
-#X connect 28 0 31 0;
-#X connect 29 0 33 0;
-#X connect 30 0 34 0;
-#X connect 35 0 25 0;
-#X connect 36 0 35 0;
-#X connect 36 1 43 0;
-#X connect 37 0 10 0;
-#X connect 38 0 37 0;
-#X connect 39 0 48 0;
-#X connect 40 0 20 0;
-#X connect 40 1 16 0;
-#X connect 40 1 22 0;
-#X connect 40 1 19 0;
-#X connect 40 2 14 0;
-#X connect 41 0 47 0;
-#X connect 42 0 35 0;
-#X connect 43 0 44 1;
-#X connect 44 0 24 0;
-#X connect 45 0 46 0;
-#X connect 46 0 36 0;
-#X connect 47 0 7 0;
-#X connect 48 0 41 0;
-#X restore 165 154 pd coef_lpf_biquad;
-#X obj 165 178 pack f f f f f;
-#X obj 165 132 mtof;
-#X floatatom 165 115 5 0 0 0 - - -;
-#X floatatom 270 133 5 0 0 0 - - -;
-#X obj 177 266 pack f f f f f;
-#X obj 177 221 mtof;
-#X floatatom 177 203 5 0 0 0 - - -;
-#X floatatom 282 221 5 0 0 0 - - -;
-#X obj 188 356 pack f f f f f;
-#X obj 188 311 mtof;
-#X floatatom 188 291 5 0 0 0 - - -;
-#X floatatom 293 311 5 0 0 0 - - -;
-#X obj 200 443 pack f f f f f;
-#X obj 200 398 mtof;
-#X floatatom 200 380 5 0 0 0 - - -;
-#X floatatom 318 400 5 0 0 0 - - -;
-#N canvas 101 71 356 625 coef_notch_biquad 0;
-#X obj 50 32 inlet;
-#X obj 205 31 inlet;
-#X text 92 34 f;
-#X text 250 31 Q;
-#X obj 119 148 samplerate~;
-#X obj 119 125 loadbang;
-#X obj 176 126 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 50 180 /;
-#X obj 50 349 cos;
-#X obj 199 276 sin;
-#X obj 205 126 * 2;
-#X obj 50 574 outlet;
-#X obj 288 484 + 1;
-#X obj 50 467 * -2;
-#X obj 50 249 t f f;
-#X obj 50 519 /;
-#X obj 94 520 /;
-#X obj 139 520 /;
-#X obj 229 520 /;
-#X obj 139 574 outlet;
-#X obj 94 574 outlet;
-#X obj 184 574 outlet;
-#X obj 229 574 outlet;
-#X obj 50 226 f;
-#X obj 205 195 t b f;
-#X msg 94 438 1 \$1;
-#X obj 94 483 -;
-#X obj 199 330 t f b f;
-#X obj 205 74 max 0;
-#X obj 50 73 max 0;
-#X obj 50 122 * 3.14159;
-#X msg 205 148 1 \$1;
-#X obj 232 242 sinh;
-#X obj 205 170 /;
-#X obj 199 303 *;
-#X obj 50 148 * 2;
-#X msg 139 487 1;
-#X msg 231 481 1;
-#X obj 50 548 t f f;
-#X obj 205 104 + 0.1;
-#X obj 50 99 min 21000;
-#X connect 0 0 29 0;
-#X connect 1 0 28 0;
-#X connect 4 0 7 1;
-#X connect 5 0 4 0;
-#X connect 6 0 4 0;
-#X connect 7 0 23 0;
-#X connect 8 0 13 0;
-#X connect 9 0 34 0;
-#X connect 10 0 31 0;
-#X connect 12 0 15 1;
-#X connect 12 0 16 1;
-#X connect 12 0 17 1;
-#X connect 12 0 18 1;
-#X connect 13 0 15 0;
-#X connect 14 0 8 0;
-#X connect 14 1 9 0;
-#X connect 15 0 38 0;
-#X connect 16 0 20 0;
-#X connect 17 0 19 0;
-#X connect 18 0 22 0;
-#X connect 23 0 14 0;
-#X connect 24 0 23 0;
-#X connect 24 1 32 0;
-#X connect 25 0 26 0;
-#X connect 26 0 16 0;
-#X connect 27 0 25 0;
-#X connect 27 1 36 0;
-#X connect 27 1 37 0;
-#X connect 27 2 12 0;
-#X connect 28 0 39 0;
-#X connect 29 0 40 0;
-#X connect 30 0 35 0;
-#X connect 31 0 33 0;
-#X connect 32 0 34 1;
-#X connect 33 0 24 0;
-#X connect 34 0 27 0;
-#X connect 35 0 7 0;
-#X connect 36 0 17 0;
-#X connect 37 0 18 0;
-#X connect 38 0 11 0;
-#X connect 38 1 21 0;
-#X connect 39 0 10 0;
-#X connect 40 0 30 0;
-#X restore 200 421 pd coef_notch_biquad;
-#X obj 42 517 noise~;
-#X obj 41 640 dac~;
-#X obj 165 483 t a;
-#X obj 355 176 pack f f f f f;
-#X obj 355 131 mtof;
-#X floatatom 355 113 5 0 0 0 - - -;
-#X floatatom 416 131 5 0 0 0 - - -;
-#X obj 355 451 t a;
-#N canvas 101 71 356 625 coef_peak_biquad 0;
-#X obj 50 32 inlet;
-#X obj 206 31 inlet;
-#X text 92 34 f;
-#X text 251 31 Q;
-#X obj 119 148 samplerate~;
-#X obj 119 125 loadbang;
-#X obj 176 126 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 50 180 /;
-#X obj 50 349 cos;
-#X obj 200 276 sin;
-#X obj 206 126 * 2;
-#X obj 50 574 outlet;
-#X obj 283 485 + 1;
-#X obj 50 467 * -2;
-#X obj 50 249 t f f;
-#X obj 50 519 /;
-#X obj 94 520 /;
-#X obj 139 520 /;
-#X obj 229 520 /;
-#X obj 139 574 outlet;
-#X obj 94 574 outlet;
-#X obj 184 574 outlet;
-#X obj 229 574 outlet;
-#X obj 50 226 f;
-#X obj 206 195 t b f;
-#X msg 94 458 1 \$1;
-#X obj 206 74 max 0;
-#X obj 50 73 max 0;
-#X obj 50 128 * 3.14159;
-#X msg 206 148 1 \$1;
-#X obj 233 226 sinh;
-#X obj 206 170 /;
-#X obj 50 148 * 2;
-#X obj 50 548 t f f;
-#X obj 206 104 + 0.1;
-#X obj 302 32 inlet;
-#X text 344 198 A;
-#X obj 302 117 pow;
-#X msg 302 96 10;
-#X obj 302 77 t b f;
-#X obj 302 54 / 40;
-#X msg 140 460 1 \$1;
-#X msg 230 460 1 \$1;
-#X obj 230 485 -;
-#X obj 200 356 t f f;
-#X obj 302 202 t b f;
-#X obj 140 485 +;
-#X obj 94 483 -;
-#X obj 50 99 min 21000;
-#X obj 200 406 / 1;
-#X obj 230 407 * 1;
-#X obj 283 407 / 1;
-#X obj 200 303 * 74.2;
-#X connect 0 0 27 0;
-#X connect 1 0 26 0;
-#X connect 4 0 7 1;
-#X connect 5 0 4 0;
-#X connect 6 0 4 0;
-#X connect 7 0 23 0;
-#X connect 8 0 13 0;
-#X connect 9 0 52 0;
-#X connect 10 0 29 0;
-#X connect 12 0 15 1;
-#X connect 12 0 16 1;
-#X connect 12 0 17 1;
-#X connect 12 0 18 1;
-#X connect 13 0 15 0;
-#X connect 14 0 8 0;
-#X connect 14 1 9 0;
-#X connect 15 0 33 0;
-#X connect 16 0 20 0;
-#X connect 17 0 19 0;
-#X connect 18 0 22 0;
-#X connect 23 0 14 0;
-#X connect 24 0 23 0;
-#X connect 24 1 30 0;
-#X connect 25 0 47 0;
-#X connect 26 0 34 0;
-#X connect 27 0 48 0;
-#X connect 28 0 32 0;
-#X connect 29 0 31 0;
-#X connect 30 0 52 1;
-#X connect 31 0 24 0;
-#X connect 32 0 7 0;
-#X connect 33 0 11 0;
-#X connect 33 1 21 0;
-#X connect 34 0 10 0;
-#X connect 35 0 40 0;
-#X connect 37 0 45 0;
-#X connect 38 0 37 0;
-#X connect 39 0 38 0;
-#X connect 39 1 37 1;
-#X connect 40 0 39 0;
-#X connect 41 0 46 0;
-#X connect 42 0 43 0;
-#X connect 43 0 18 0;
-#X connect 44 0 49 0;
-#X connect 44 0 50 0;
-#X connect 44 1 51 0;
-#X connect 45 0 23 0;
-#X connect 45 1 49 1;
-#X connect 45 1 50 1;
-#X connect 45 1 51 1;
-#X connect 46 0 17 0;
-#X connect 47 0 16 0;
-#X connect 48 0 28 0;
-#X connect 49 0 25 0;
-#X connect 50 0 42 0;
-#X connect 50 0 41 0;
-#X connect 51 0 12 0;
-#X connect 52 0 44 0;
-#X restore 355 154 pd coef_peak_biquad;
-#X floatatom 477 134 5 0 0 0 - - -;
-#X obj 42 613 *~ 0.1;
-#X obj 372 276 pack f f f f f;
-#X floatatom 388 337 9 0 0 0 - - -;
-#X obj 388 318 mtof;
-#X floatatom 388 302 5 0 127 0 - - -;
-#X floatatom 523 336 5 0 0 0 - - -;
-#X obj 388 381 pack f f f f f;
-#N canvas 435 52 535 646 coef_highShelf_biquad 0;
-#X obj 50 32 inlet;
-#X text 92 34 f;
-#X obj 50 165 * 6.283;
-#X obj 106 188 samplerate~;
-#X obj 106 166 loadbang;
-#X obj 164 167 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 50 220 /;
-#X obj 96 272 cos;
-#X obj 69 271 sin;
-#X obj 319 36 inlet;
-#X text 387 146 A;
-#X obj 319 121 pow;
-#X msg 319 100 10;
-#X obj 319 81 t b f;
-#X obj 319 58 / 40;
-#X obj 319 182 t f f;
-#X obj 319 204 *;
-#X obj 319 224 + 1;
-#X obj 360 183 - 1;
-#X obj 360 204 t f f;
-#X obj 360 226 *;
-#X obj 319 254 -;
-#X text 360 279 beta;
-#X obj 319 278 sqrt;
-#X obj 319 143 t f f f;
-#X obj 50 243 t b f f;
-#X obj 50 493 /;
-#X obj 50 525 outlet;
-#X obj 99 527 outlet;
-#X obj 149 528 outlet;
-#X obj 199 528 outlet;
-#X obj 249 529 outlet;
-#X obj 99 493 /;
-#X obj 149 496 /;
-#X obj 199 494 /;
-#X obj 249 497 /;
-#X obj 50 392 expr 2 * ( ($f2-1) - ($f2+1)*$f4 ) \; ($f2+1) - ($f2-1)*$f4
-- $f1*$f3 \; $f2 * ( ($f2+1) + ($f2-1)*$f4 + $f1*$f3 ) \; -2 * $f2
-* ( ($f2-1) + ($f2+1)*$f4 ) \; $f2 * ( ($f2+1) + ($f2-1)*$f4 - $f1*$f3
-) \; ($f2+1) - ($f2-1)*$f4 + $f1*$f3 \;;
-#X obj 50 73 max 0;
-#X obj 50 99 min 21000;
-#X obj 50 357 f;
-#X msg 135 281 1;
-#X obj 135 302 sqrt;
-#X obj 135 257 loadbang;
-#X connect 0 0 37 0;
-#X connect 2 0 6 0;
-#X connect 3 0 6 1;
-#X connect 4 0 3 0;
-#X connect 5 0 3 0;
-#X connect 6 0 25 0;
-#X connect 7 0 36 3;
-#X connect 8 0 36 2;
-#X connect 9 0 14 0;
-#X connect 11 0 24 0;
-#X connect 12 0 11 0;
-#X connect 13 0 12 0;
-#X connect 13 1 11 1;
-#X connect 14 0 13 0;
-#X connect 15 0 16 0;
-#X connect 15 1 16 1;
-#X connect 16 0 17 0;
-#X connect 17 0 21 0;
-#X connect 18 0 19 0;
-#X connect 19 0 20 0;
-#X connect 19 1 20 1;
-#X connect 20 0 21 1;
-#X connect 21 0 23 0;
-#X connect 23 0 36 0;
-#X connect 24 0 15 0;
-#X connect 24 1 18 0;
-#X connect 24 2 36 1;
-#X connect 25 0 39 0;
-#X connect 25 1 8 0;
-#X connect 25 2 7 0;
-#X connect 26 0 27 0;
-#X connect 32 0 28 0;
-#X connect 33 0 29 0;
-#X connect 34 0 30 0;
-#X connect 35 0 31 0;
-#X connect 36 0 26 0;
-#X connect 36 1 32 0;
-#X connect 36 2 33 0;
-#X connect 36 3 34 0;
-#X connect 36 4 35 0;
-#X connect 36 5 26 1;
-#X connect 36 5 32 1;
-#X connect 36 5 33 1;
-#X connect 36 5 34 1;
-#X connect 36 5 35 1;
-#X connect 37 0 38 0;
-#X connect 38 0 2 0;
-#X connect 39 0 36 0;
-#X connect 40 0 41 0;
-#X connect 40 0 36 1;
-#X connect 41 0 39 1;
-#X connect 42 0 40 0;
-#X restore 388 358 pd coef_highShelf_biquad;
-#X text 59 45 y(n) = b0 x(n) + b1 x(n-1) + b2 x(n-2) -a1 y(n-1) -a2
-y(n-2);
-#N canvas 0 0 450 300 5_line~ 0;
-#X obj 80 123 line~;
-#X obj 79 147 outlet~;
-#X obj 80 73 inlet;
-#X obj 136 123 line~;
-#X obj 135 147 outlet~;
-#X obj 136 73 inlet;
-#X obj 193 123 line~;
-#X obj 192 147 outlet~;
-#X obj 193 73 inlet;
-#X obj 247 123 line~;
-#X obj 246 147 outlet~;
-#X obj 247 73 inlet;
-#X obj 304 123 line~;
-#X obj 303 147 outlet~;
-#X obj 304 73 inlet;
-#X msg 80 96 \$1 133;
-#X msg 136 96 \$1 133;
-#X msg 193 96 \$1 133;
-#X msg 247 96 \$1 133;
-#X msg 304 96 \$1 133;
-#X connect 0 0 1 0;
-#X connect 2 0 15 0;
-#X connect 3 0 4 0;
-#X connect 5 0 16 0;
-#X connect 6 0 7 0;
-#X connect 8 0 17 0;
-#X connect 9 0 10 0;
-#X connect 11 0 18 0;
-#X connect 12 0 13 0;
-#X connect 14 0 19 0;
-#X connect 15 0 0 0;
-#X connect 16 0 3 0;
-#X connect 17 0 6 0;
-#X connect 18 0 9 0;
-#X connect 19 0 12 0;
-#X restore 165 535 pd 5_line~;
-#X obj 165 508 unpack f f f f f;
-#N canvas 0 0 444 301 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 100 140 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 300 float 0;
-#X coords 0 1 299 -1 300 80 1;
-#X restore 100 100 graph;
-#X obj 110 75 change;
-#X obj 234 62 block~ 640 1 0.25;
-#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 1 100 100;
-#X restore 97 617 pd oscillo;
-#X obj 43 586 bq~ ---------;
-#X text 41 17 bq~ is a biquad \, but with audio input for the coeficients.
-Out out is :;
-#X text 57 63 (it's not the same structure than biquad~ ! );
-#X text 326 584 <- drop in remplacement for bq~ \, using fexpr~;
-#N canvas 0 98 595 201 bq~ 0;
-#X obj 56 60 inlet~;
-#X obj 192 58 inlet~;
-#X obj 239 58 inlet~;
-#X obj 319 59 inlet~;
-#X obj 366 59 inlet~;
-#X obj 412 58 inlet~;
-#X text 323 37 b0;
-#X obj 56 156 outlet~;
-#X msg 67 84 clear;
-#X text 188 34 a1;
-#X obj 57 113 fexpr~ $x4[0]*$x1[0] + $x5[0]*$x1[-1] + $x6[0]*$x1[-2]
-- $x2[0]*$y1[-1] - $x3[0]*$y1[-2];
-#X connect 0 0 10 0;
-#X connect 1 0 10 1;
-#X connect 2 0 10 2;
-#X connect 3 0 10 3;
-#X connect 4 0 10 4;
-#X connect 5 0 10 5;
-#X connect 8 0 10 0;
-#X connect 10 0 7 0;
-#X restore 254 583 pd bq~ ---;
-#X connect 0 0 4 0;
-#X connect 1 0 0 0;
-#X connect 2 0 1 0;
-#X connect 3 0 4 1;
-#X connect 4 0 38 0;
-#X connect 4 1 38 1;
-#X connect 4 2 38 2;
-#X connect 4 3 38 3;
-#X connect 4 4 38 4;
-#X connect 5 0 49 0;
-#X connect 6 0 14 0;
-#X connect 6 1 14 1;
-#X connect 6 2 14 2;
-#X connect 6 3 14 3;
-#X connect 6 4 14 4;
-#X connect 7 0 18 0;
-#X connect 7 1 18 1;
-#X connect 7 2 18 2;
-#X connect 7 3 18 3;
-#X connect 7 4 18 4;
-#X connect 8 0 49 0;
-#X connect 9 0 10 0;
-#X connect 9 1 10 1;
-#X connect 9 2 10 2;
-#X connect 9 3 10 3;
-#X connect 9 4 10 4;
-#X connect 10 0 29 0;
-#X connect 11 0 9 0;
-#X connect 12 0 11 0;
-#X connect 13 0 9 1;
-#X connect 14 0 29 0;
-#X connect 15 0 6 0;
-#X connect 16 0 15 0;
-#X connect 17 0 6 1;
-#X connect 18 0 29 0;
-#X connect 19 0 7 0;
-#X connect 20 0 19 0;
-#X connect 21 0 7 1;
-#X connect 22 0 29 0;
-#X connect 23 0 26 0;
-#X connect 24 0 23 0;
-#X connect 25 0 26 1;
-#X connect 26 0 22 0;
-#X connect 26 1 22 1;
-#X connect 26 2 22 2;
-#X connect 26 3 22 3;
-#X connect 26 4 22 4;
-#X connect 27 0 5 0;
-#X connect 29 0 47 0;
-#X connect 30 0 34 0;
-#X connect 31 0 35 0;
-#X connect 32 0 31 0;
-#X connect 33 0 35 1;
-#X connect 34 0 29 0;
-#X connect 35 0 30 0;
-#X connect 35 1 30 1;
-#X connect 35 2 30 2;
-#X connect 35 3 30 3;
-#X connect 35 4 30 4;
-#X connect 36 0 35 2;
-#X connect 37 0 28 0;
-#X connect 37 0 28 1;
-#X connect 38 0 34 0;
-#X connect 39 0 44 0;
-#X connect 40 0 39 0;
-#X connect 41 0 40 0;
-#X connect 42 0 44 1;
-#X connect 43 0 34 0;
-#X connect 44 0 43 0;
-#X connect 44 1 43 1;
-#X connect 44 2 43 2;
-#X connect 44 3 43 3;
-#X connect 44 4 43 4;
-#X connect 46 0 49 1;
-#X connect 46 1 49 2;
-#X connect 46 2 49 3;
-#X connect 46 3 49 4;
-#X connect 46 4 49 5;
-#X connect 47 0 46 0;
-#X connect 47 1 46 1;
-#X connect 47 2 46 2;
-#X connect 47 3 46 3;
-#X connect 47 4 46 4;
-#X connect 49 0 48 0;
-#X connect 49 0 37 0;
diff --git a/biquad/bq~.c b/biquad/bq~.c
deleted file mode 100644
index d8a70b4..0000000
--- a/biquad/bq~.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Copyright (c) 1997-1999 Miller Puckette.
-* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution. */
-
-// modification of this code by cyrille henry in order to change the biquad topology and add audio inlet for filter coefs
-
-#include "m_pd.h"
-#include <math.h>
-
-/* ---------------- bq~ - raw bq filter ----------------- */
-
-typedef struct bqctl
-{
- t_sample c_x1;
- t_sample c_x2;
- t_sample c_y1;
- t_sample c_y2;
-} t_bqctl;
-
-typedef struct bq_tilde
-{
- t_object x_obj;
- t_float x_f;
- t_bqctl x_cspace;
- t_bqctl *x_ctl;
-} t_bq_tilde;
-
-t_class *bq_tilde_class;
-
-static void *bq_tilde_new(t_symbol *s, int argc, t_atom *argv)
-{
- t_bq_tilde *x = (t_bq_tilde *)pd_new(bq_tilde_class);
- inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal);
- inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal);
- inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal);
- inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal);
- inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal);
- outlet_new(&x->x_obj, &s_signal);
- x->x_ctl = &x->x_cspace;
- x->x_cspace.c_x1 = x->x_cspace.c_x2 = 0;
- x->x_cspace.c_y1 = x->x_cspace.c_y2 = 0;
- x->x_f = 0;
- return (x);
-}
-
-static t_int *bq_tilde_perform(t_int *w)
-{
- t_sample *in = (t_sample *)(w[1]);
- t_sample *ina1 = (t_sample *)(w[2]);
- t_sample *ina2 = (t_sample *)(w[3]);
- t_sample *inb1 = (t_sample *)(w[4]);
- t_sample *inb2 = (t_sample *)(w[5]);
- t_sample *inb3 = (t_sample *)(w[6]);
- t_sample *out = (t_sample *)(w[7]);
- t_bqctl *c = (t_bqctl *)(w[8]);
- int n = (t_int)(w[9]);
- int i;
- t_sample last_in = c->c_x1;
- t_sample prev_in = c->c_x2;
- t_sample last_out = c->c_y1;
- t_sample prev_out = c->c_y2;
-
- for (i = 0; i < n; i++)
- {
- t_sample output = *inb1++ * *in + *inb2++ * last_in + *inb3++ * prev_in - *ina1++ * last_out - *ina2++ * prev_out;
-// if (PD_BIGORSMALL(output))
-// output = 0; i don't understnd why it did not compile with this 2 lines.
-// should be fixed latter if denormal is a problem
- *out++ = output;
- prev_in = last_in;
- prev_out = last_out;
- last_out = output;
- last_in = *in++;
- }
- c->c_x1 = last_in;
- c->c_x2 = prev_in;
- c->c_y1 = last_out;
- c->c_y2 = prev_out;
-
- return (w+10);
-}
-
-static void bq_tilde_set(t_bq_tilde *x, t_symbol *s, int argc, t_atom *argv)
-{
- t_bqctl *c = x->x_ctl;
- c->c_x1 = atom_getfloatarg(0, argc, argv);
- c->c_x2 = atom_getfloatarg(1, argc, argv);
- c->c_y1 = atom_getfloatarg(2, argc, argv);
- c->c_y2 = atom_getfloatarg(3, argc, argv);
-}
-
-static void bq_tilde_dsp(t_bq_tilde *x, t_signal **sp)
-{
- dsp_add(bq_tilde_perform, 9,
- sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
- sp[5]->s_vec, sp[6]->s_vec, x->x_ctl, sp[0]->s_n);
-
-}
-
-void bq_tilde_setup(void)
-{
- bq_tilde_class = class_new(gensym("bq~"), (t_newmethod)bq_tilde_new,
- 0, sizeof(t_bq_tilde), 0, A_GIMME, 0);
- CLASS_MAINSIGNALIN(bq_tilde_class, t_bq_tilde, x_f);
- class_addmethod(bq_tilde_class, (t_method)bq_tilde_dsp, gensym("dsp"), 0);
- class_addmethod(bq_tilde_class, (t_method)bq_tilde_set, gensym("set"),
- A_GIMME, 0);
- class_addmethod(bq_tilde_class, (t_method)bq_tilde_set, gensym("clear"),
- A_GIMME, 0);
-}
-
-
diff --git a/biquad/makefile b/biquad/makefile
deleted file mode 100755
index 262732f..0000000
--- a/biquad/makefile
+++ /dev/null
@@ -1,97 +0,0 @@
-current:
- echo make pd_linux, pd_nt, pd_irix5, or pd_irix6
-
-clean: ; rm -f *.pd_linux *.o
-
-# ----------------------- NT -----------------------
-
-pd_nt: bq~.dll
-
-.SUFFIXES: .dll
-
-PDNTCFLAGS = /W3 /WX /DNT /DPD /nologo
-VC="C:\Program Files\Microsoft Visual Studio\Vc98"
-
-PDNTINCLUDE = /I. /I$(VC)\include /I..\..\..\pd\src\
-
-PDNTLDIR = $(VC)\lib
-PDNTLIB = $(PDNTLDIR)\libc.lib \
- $(PDNTLDIR)\oldnames.lib \
- $(PDNTLDIR)\kernel32.lib \
- \pds\win32\pd36\bin\pd.lib
-
-.c.dll:
- cl $(PDNTCFLAGS) $(PDNTINCLUDE) /c $*.c
- link /dll /export:$*_setup $*.obj $(PDNTLIB)
-
-# ----------------------- IRIX 5.x -----------------------
-
-pd_irix5: bq~.pd_irix5
-
-.SUFFIXES: .pd_irix5
-
-SGICFLAGS5 = -o32 -DPD -DUNIX -DIRIX -O2
-
-
-SGIINCLUDE = -I../../../pd/src/
-
-.c.pd_irix5:
- cc $(SGICFLAGS5) $(SGIINCLUDE) -o $*.o -c $*.c
- ld -elf -shared -rdata_shared -o $*.pd_irix5 $*.o
- rm $*.o
-
-# ----------------------- IRIX 6.x -----------------------
-
-pd_irix6: bq~.pd_irix6
-
-.SUFFIXES: .pd_irix6
-
-SGICFLAGS6 = -n32 -DPD -DUNIX -DIRIX -DN32 -woff 1080,1064,1185 \
- -OPT:roundoff=3 -OPT:IEEE_arithmetic=3 -OPT:cray_ivdep=true \
- -Ofast=ip32
-
-.c.pd_irix6:
- cc $(SGICFLAGS6) $(SGIINCLUDE) -o $*.o -c $*.c
- ld -IPA -n32 -shared -rdata_shared -o $*.pd_irix6 $*.o
- rm $*.o
-
-# ----------------------- LINUX i386 -----------------------
-
-pd_linux: bq~.pd_linux
-
-.SUFFIXES: .pd_linux
-
-LINUXCFLAGS = -DPD -O2 -funroll-loops -fomit-frame-pointer \
- -Wall -W -Wshadow -Wstrict-prototypes -Werror \
- -Wno-unused -Wno-parentheses -Wno-switch
-
-LINUXINCLUDE = -I../../../pd/src/
-
-.c.pd_linux:
- cc $(LINUXCFLAGS) $(LINUXINCLUDE) -o $*.o -c $*.c
- ld --export-dynamic -shared -o $*.pd_linux $*.o -lc -lm
- strip --strip-unneeded $*.pd_linux
- rm $*.o
-
-# ----------------------- Mac OS X (Darwin) -----------------------
-
-
-pd_darwin: bq~.pd_darwin
-
-.SUFFIXES: .pd_darwin
-
-DARWINCFLAGS = -DPD -DUNIX -DMACOSX -O2 \
- -Wall -W -Wshadow -Wstrict-prototypes \
- -Wno-unused -Wno-parentheses -Wno-switch
-
-# where is your m_pd.h ???
-DARWININCLUDE = -I/. -I../../../pd/src -I../../../pd/obj -I/Applications/Pd-extended.app/Contents/Resources/include
-
-.c.pd_darwin:
- cc $(DARWINCFLAGS) $(DARWININCLUDE) -o $*.o -c $*.c
- cc -bundle -undefined suppress -flat_namespace -o $*.pd_darwin $*.o
- rm -f $*.o ../$*.pd_darwin
- ln -s $*/$*.pd_darwin ..
-
-
-
diff --git a/effects/distortion~-help.pd b/effects/distortion~-help.pd
deleted file mode 100644
index 281916b..0000000
--- a/effects/distortion~-help.pd
+++ /dev/null
@@ -1,27 +0,0 @@
-#N canvas 635 105 450 300 10;
-#X obj 38 206 oscillo~;
-#X obj 39 24 osc~ 222;
-#X obj 60 172 dac~;
-#X obj 60 148 *~ 0.1;
-#X floatatom 151 28 5 0 1 0 - - -;
-#X obj 151 64 line~;
-#X msg 151 44 \$1 100;
-#X obj 38 79 +~;
-#X floatatom 53 61 5 0 0 0 - - -;
-#X obj 151 96 hradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144 -1
--1 0;
-#X text 224 97 disto mode;
-#X text 199 28 distortion %;
-#X text 91 61 asym;
-#X obj 38 121 distortion~;
-#X connect 1 0 7 0;
-#X connect 3 0 2 1;
-#X connect 3 0 2 0;
-#X connect 4 0 6 0;
-#X connect 5 0 13 1;
-#X connect 6 0 5 0;
-#X connect 7 0 13 0;
-#X connect 8 0 7 1;
-#X connect 9 0 13 2;
-#X connect 13 0 3 0;
-#X connect 13 0 0 0;
diff --git a/effects/distortion~.pd b/effects/distortion~.pd
deleted file mode 100644
index e5a7064..0000000
--- a/effects/distortion~.pd
+++ /dev/null
@@ -1,203 +0,0 @@
-#N canvas 188 64 622 419 10;
-#X obj 30 129 +~ 5000;
-#X obj 29 27 inlet~;
-#X obj 31 153 tabread4~ \$0-disto;
-#X obj 160 29 inlet~;
-#X obj 29 102 *~;
-#X obj 160 49 *~ 5000;
-#X obj 160 129 +~ 5000;
-#X obj 160 153 tabread4~ \$0-disto;
-#X obj 30 229 outlet~;
-#X obj 294 298 table \$0-disto 10000;
-#X obj 31 197 /~;
-#X obj 160 71 +~ 100;
-#N canvas 27 440 450 300 sqrt 0;
-#X obj 20 63 t b b;
-#X obj 20 159 f;
-#X obj 63 159 + 1;
-#X msg 47 136 0;
-#X obj 20 104 until;
-#X obj 20 44 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 20 219 - 0.5;
-#X obj 20 259 t f f f;
-#X obj 39 280 *;
-#X obj 39 300 + 1;
-#X obj 39 320 sqrt;
-#X obj 20 340 /;
-#X obj 20 239 * 20;
-#X obj 20 199 / 9999;
-#X msg 20 83 10000;
-#X obj 20 179 t f f;
-#X obj 20 360 tabwrite \$0-disto;
-#X obj 20 18 inlet;
-#X connect 0 0 14 0;
-#X connect 0 1 3 0;
-#X connect 1 0 2 0;
-#X connect 1 0 15 0;
-#X connect 2 0 1 1;
-#X connect 3 0 1 1;
-#X connect 4 0 1 0;
-#X connect 5 0 0 0;
-#X connect 6 0 12 0;
-#X connect 7 0 11 0;
-#X connect 7 1 8 0;
-#X connect 7 2 8 1;
-#X connect 8 0 9 0;
-#X connect 9 0 10 0;
-#X connect 10 0 11 1;
-#X connect 11 0 16 0;
-#X connect 12 0 7 0;
-#X connect 13 0 6 0;
-#X connect 14 0 4 0;
-#X connect 15 0 13 0;
-#X connect 15 1 16 1;
-#X connect 17 0 5 0;
-#X restore 313 169 pd sqrt;
-#X obj 313 151 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#N canvas 0 0 640 460 sigmoid 0;
-#X obj 23 59 t b b;
-#X obj 23 148 f;
-#X obj 61 148 + 1;
-#X msg 50 125 0;
-#X obj 23 102 until;
-#X obj 23 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 23 213 - 0.5;
-#X obj 23 276 - 0.5;
-#X obj 23 298 * 2;
-#X obj 23 319 tabwrite \$0-disto;
-#X msg 23 81 10000;
-#X obj 23 192 / 9999;
-#X obj 23 234 * 30;
-#X obj 23 171 t f f;
-#X obj 23 255 expr ( exp($f1)) / ( 1 + exp($f1));
-#X obj 23 15 inlet;
-#X connect 0 0 10 0;
-#X connect 0 1 3 0;
-#X connect 1 0 2 0;
-#X connect 1 0 13 0;
-#X connect 2 0 1 1;
-#X connect 3 0 1 1;
-#X connect 4 0 1 0;
-#X connect 5 0 0 0;
-#X connect 6 0 12 0;
-#X connect 7 0 8 0;
-#X connect 8 0 9 0;
-#X connect 10 0 4 0;
-#X connect 11 0 6 0;
-#X connect 12 0 14 0;
-#X connect 13 0 11 0;
-#X connect 13 1 9 1;
-#X connect 14 0 7 0;
-#X connect 15 0 5 0;
-#X restore 298 131 pd sigmoid;
-#X obj 298 112 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#N canvas 0 0 739 509 x_over_xplus 0;
-#X obj 17 58 t b b;
-#X obj 17 141 f;
-#X obj 55 141 + 1;
-#X msg 44 118 0;
-#X obj 17 96 until;
-#X obj 17 39 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 17 315 /;
-#X obj 44 269 abs;
-#X obj 44 248 * 2;
-#X obj 17 208 - 0.5;
-#X obj 44 290 + 0.1;
-#X msg 17 77 10000;
-#X obj 17 189 / 9999;
-#X obj 17 359 tabwrite \$0-disto;
-#X obj 17 337 * 2;
-#X obj 17 228 t f f;
-#X obj 17 167 t f f;
-#X obj 17 16 inlet;
-#X connect 0 0 11 0;
-#X connect 0 1 3 0;
-#X connect 1 0 2 0;
-#X connect 1 0 16 0;
-#X connect 2 0 1 1;
-#X connect 3 0 1 1;
-#X connect 4 0 1 0;
-#X connect 5 0 0 0;
-#X connect 6 0 14 0;
-#X connect 7 0 10 0;
-#X connect 8 0 7 0;
-#X connect 9 0 15 0;
-#X connect 10 0 6 1;
-#X connect 11 0 4 0;
-#X connect 12 0 9 0;
-#X connect 14 0 13 0;
-#X connect 15 0 6 0;
-#X connect 15 1 8 0;
-#X connect 16 0 12 0;
-#X connect 16 1 13 1;
-#X connect 17 0 5 0;
-#X restore 328 214 pd x_over_xplus;
-#X obj 328 194 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#N canvas 0 0 588 371 poly 0;
-#X obj 16 14 inlet;
-#X obj 16 55 t b b;
-#X obj 16 140 f;
-#X obj 54 140 + 1;
-#X msg 43 117 0;
-#X obj 16 98 until;
-#X obj 16 36 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 16 209 - 0.5;
-#X obj 16 253 expr exp(-$f1*$f1)*($f1+pow($f1 \, 3)*2/3 + pow($f1 \,
-5)*4/15);
-#X obj 16 275 tabwrite \$0-disto;
-#X obj 16 188 / 9999;
-#X msg 16 76 10000;
-#X obj 16 165 t f f;
-#X obj 16 231 * 2;
-#X connect 0 0 6 0;
-#X connect 1 0 11 0;
-#X connect 1 1 4 0;
-#X connect 2 0 3 0;
-#X connect 2 0 12 0;
-#X connect 3 0 2 1;
-#X connect 4 0 2 1;
-#X connect 5 0 2 0;
-#X connect 6 0 1 0;
-#X connect 7 0 13 0;
-#X connect 8 0 9 0;
-#X connect 10 0 7 0;
-#X connect 11 0 5 0;
-#X connect 12 0 10 0;
-#X connect 12 1 9 1;
-#X connect 13 0 8 0;
-#X restore 345 258 pd poly;
-#X obj 345 238 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 298 32 inlet;
-#X obj 298 84 sel 0 1 2 3;
-#X msg 337 54 0;
-#X obj 337 32 loadbang;
-#X connect 0 0 2 0;
-#X connect 1 0 4 0;
-#X connect 2 0 10 0;
-#X connect 3 0 5 0;
-#X connect 4 0 0 0;
-#X connect 5 0 11 0;
-#X connect 6 0 7 0;
-#X connect 7 0 10 1;
-#X connect 10 0 8 0;
-#X connect 11 0 4 1;
-#X connect 11 0 6 0;
-#X connect 13 0 12 0;
-#X connect 15 0 14 0;
-#X connect 17 0 16 0;
-#X connect 19 0 18 0;
-#X connect 20 0 21 0;
-#X connect 21 0 15 0;
-#X connect 21 1 13 0;
-#X connect 21 2 17 0;
-#X connect 21 3 19 0;
-#X connect 22 0 21 0;
-#X connect 23 0 22 0;
diff --git a/line3/line3-help.pd b/line3/line3-help.pd
deleted file mode 100644
index 77a9a5d..0000000
--- a/line3/line3-help.pd
+++ /dev/null
@@ -1,61 +0,0 @@
-#N canvas 256 172 683 616 10;
-#X obj 33 279 line3;
-#X msg 32 44 0 1000;
-#X msg 43 66 127 1000;
-#N canvas 0 0 450 300 graph3 0;
-#X array line3 100 float 2;
-#X coords 0 1 99 -1 200 140 1;
-#X restore 306 174 graph;
-#X obj 33 394 t f b;
-#X obj 63 440 + 1;
-#X obj 63 418 f;
-#X obj 63 466 % 100;
-#X obj 62 163 random 127;
-#X obj 62 114 metro 300;
-#X msg 62 186 \$1 1000;
-#X obj 62 91 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X obj 149 279 line;
-#N canvas 0 0 450 300 graph1 0;
-#X array line 100 float 2;
-#X coords 0 1 99 -1 200 140 1;
-#X restore 306 314 graph;
-#X obj 33 525 tabwrite line3;
-#X obj 149 526 tabwrite line;
-#X text 290 7 line3;
-#N canvas 0 0 450 300 nothing 0;
-#X obj 29 22 inlet;
-#X obj 29 52 outlet;
-#X connect 0 0 1 0;
-#X restore 33 218 pd nothing;
-#X obj 80 139 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 168 40 line3 is compatible with line \, but the transition
-is made with a 3d order polynome. coeficiant of this polynome are adjusted
-to have the continuity of the output variation speed.;
-#X obj 33 317 - 63.5;
-#X obj 149 318 - 63.5;
-#X obj 149 342 / 63.5;
-#X obj 33 340 / 63.5;
-#X connect 0 0 20 0;
-#X connect 1 0 17 0;
-#X connect 2 0 17 0;
-#X connect 4 0 14 0;
-#X connect 4 1 6 0;
-#X connect 5 0 7 0;
-#X connect 6 0 5 0;
-#X connect 7 0 6 1;
-#X connect 7 0 14 1;
-#X connect 7 0 15 1;
-#X connect 8 0 10 0;
-#X connect 9 0 8 0;
-#X connect 10 0 17 0;
-#X connect 11 0 9 0;
-#X connect 12 0 21 0;
-#X connect 17 0 0 0;
-#X connect 17 0 12 0;
-#X connect 18 0 8 0;
-#X connect 20 0 23 0;
-#X connect 21 0 22 0;
-#X connect 22 0 15 0;
-#X connect 23 0 4 0;
diff --git a/line3/line3.c b/line3/line3.c
deleted file mode 100644
index 25dcd8e..0000000
--- a/line3/line3.c
+++ /dev/null
@@ -1,177 +0,0 @@
-// line3
-// based on miller puckette line object (so licence / copyright comes from pure data)
-// compatible with line, but with a 3d order polynome.
-// there is continuity of the variation speed
-
-/*
-This software is copyrighted by Miller Puckette and others. The following
-terms (the "Standard Improved BSD License") apply to all files associated with
-the software unless explicitly disclaimed in individual files:
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-3. The name of the author may not be used to endorse or promote
- products derived from this software without specific prior
- written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-// Cyrille Henry 01 2005
-
-
-#include "m_pd.h"
-
-static t_class *line3_class;
-
-typedef struct _line3
-{
- t_object x_obj;
- t_clock *x_clock;
- double x_targettime;
- t_float x_targetval,setderiv, a, b;
- double x_prevtime;
- t_float x_setval;
- int x_gotinlet;
- t_float x_grain;
- double x_1overtimediff;
- double x_in1val;
-} t_line3;
-
-void line3_tick(t_line3 *x)
-{
- double tmp, t;
- double timenow = clock_getsystime();
- double msectogo = - clock_gettimesince(x->x_targettime);
- if (msectogo < 1E-9)
- {
- outlet_float(x->x_obj.ob_outlet, x->x_targetval);
- }
- else
- {
- t = (timenow - x->x_prevtime);
-
- tmp = x->a * t * t * t + x->b * t * t + x->setderiv * t + x->x_setval;
-
- outlet_float(x->x_obj.ob_outlet, tmp);
- clock_delay(x->x_clock, (x->x_grain > msectogo ? msectogo : x->x_grain));
- }
-}
-
-void line3_float(t_line3 *x, t_float f)
-{
- double timenow = clock_getsystime();
- if (x->x_gotinlet && x->x_in1val > 0)
- {
- if (timenow >= x->x_targettime)
- {
- x->x_setval = x->x_targetval;
- x->setderiv = 0;
- }
- else
- {
- x->x_setval = x->a * (timenow - x->x_prevtime) * (timenow - x->x_prevtime) * (timenow - x->x_prevtime) + x->b * (timenow - x->x_prevtime) * (timenow - x->x_prevtime) + x->setderiv * (timenow - x->x_prevtime) + x->x_setval;
-
- x->setderiv = 3 * x->a * (timenow - x->x_prevtime) * (timenow - x->x_prevtime) + 2 * x->b * (timenow - x->x_prevtime) + x->setderiv;
-
- }
- x->x_prevtime = timenow;
- x->x_targettime = clock_getsystimeafter(x->x_in1val);
- x->x_targetval = f;
- x->x_1overtimediff = 1./ (x->x_targettime - timenow);
-
- x->a = -2 * (x->x_targetval - x->x_setval) * x->x_1overtimediff;
- x->a += x->setderiv;
- x->a *= x->x_1overtimediff;
- x->a *= x->x_1overtimediff;
-
- x->b = 3 * (x->x_targetval - x->x_setval) * x->x_1overtimediff;
- x->b -= 2 * x->setderiv;
- x->b *= x->x_1overtimediff;
-
- line3_tick(x);
- x->x_gotinlet = 0;
-
- clock_delay(x->x_clock, (x->x_grain > x->x_in1val ? x->x_in1val : x->x_grain));
- }
- else
- {
- clock_unset(x->x_clock);
- x->x_targetval = x->x_setval = f;
- x->x_targettime = timenow;
- outlet_float(x->x_obj.ob_outlet, f);
- }
- x->x_gotinlet = 0;
-}
-
-void line3_ft1(t_line3 *x, t_floatarg g)
-{
- x->x_in1val = g;
- x->x_gotinlet = 1;
-}
-
-void line3_stop(t_line3 *x)
-{
- x->x_targetval = x->x_setval;
- clock_unset(x->x_clock);
-}
-
-void line3_set(t_line3 *x, t_floatarg f)
-{
- clock_unset(x->x_clock);
- x->x_targetval = x->x_setval = f;
- x->setderiv = 0;
-}
-
-void line3_free(t_line3 *x)
-{
- clock_free(x->x_clock);
-}
-
-void *line3_new(t_floatarg f, t_floatarg grain)
-{
- t_line3 *x = (t_line3 *)pd_new(line3_class);
- x->x_targetval = x->x_setval = f;
- x->x_gotinlet = 0;
- x->setderiv = 0;
- x->x_1overtimediff = 1;
- x->x_clock = clock_new(x, (t_method)line3_tick);
- x->x_targettime = x->x_prevtime = clock_getsystime();
- if (grain <= 0) grain = 20;
- x->x_grain = grain;
- outlet_new(&x->x_obj, gensym("float"));
- inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("ft1"));
- return (x);
-}
-
-void line3_setup(void)
-{
- line3_class = class_new(gensym("line3"), (t_newmethod)line3_new,
- (t_method)line3_free, sizeof(t_line3), 0, A_DEFFLOAT, A_DEFFLOAT, 0);
- class_addmethod(line3_class, (t_method)line3_ft1,
- gensym("ft1"), A_FLOAT, 0);
- class_addmethod(line3_class, (t_method)line3_stop,
- gensym("stop"), 0);
- class_addmethod(line3_class, (t_method)line3_set,
- gensym("set"), A_FLOAT, 0);
- class_addfloat(line3_class, (t_method)line3_float);
-}
diff --git a/line3/makefile b/line3/makefile
deleted file mode 100755
index f8524dd..0000000
--- a/line3/makefile
+++ /dev/null
@@ -1,97 +0,0 @@
-current:
- echo make pd_linux, pd_nt, pd_irix5, or pd_irix6
-
-clean: ; rm -f *.pd_linux *.o
-
-# ----------------------- NT -----------------------
-
-pd_nt: line3.dll
-
-.SUFFIXES: .dll
-
-PDNTCFLAGS = /W3 /WX /DNT /DPD /nologo
-VC="C:\Program Files\Microsoft Visual Studio\Vc98"
-
-PDNTINCLUDE = /I. /I\tcl\include /I\pds\win32\pd36\src /I$(VC)\include
-
-PDNTLDIR = $(VC)\lib
-PDNTLIB = $(PDNTLDIR)\libc.lib \
- $(PDNTLDIR)\oldnames.lib \
- $(PDNTLDIR)\kernel32.lib \
- \pds\win32\pd36\bin\pd.lib
-
-.c.dll:
- cl $(PDNTCFLAGS) $(PDNTINCLUDE) /c $*.c
- link /dll /export:$*_setup $*.obj $(PDNTLIB)
-
-# ----------------------- IRIX 5.x -----------------------
-
-pd_irix5: line3.pd_irix5
-
-.SUFFIXES: .pd_irix5
-
-SGICFLAGS5 = -o32 -DPD -DUNIX -DIRIX -O2
-
-
-SGIINCLUDE = -I../../src/
-
-.c.pd_irix5:
- cc $(SGICFLAGS5) $(SGIINCLUDE) -o $*.o -c $*.c
- ld -elf -shared -rdata_shared -o $*.pd_irix5 $*.o
- rm $*.o
-
-# ----------------------- IRIX 6.x -----------------------
-
-pd_irix6: line3.pd_irix6
-
-.SUFFIXES: .pd_irix6
-
-SGICFLAGS6 = -n32 -DPD -DUNIX -DIRIX -DN32 -woff 1080,1064,1185 \
- -OPT:roundoff=3 -OPT:IEEE_arithmetic=3 -OPT:cray_ivdep=true \
- -Ofast=ip32
-
-.c.pd_irix6:
- cc $(SGICFLAGS6) $(SGIINCLUDE) -o $*.o -c $*.c
- ld -IPA -n32 -shared -rdata_shared -o $*.pd_irix6 $*.o
- rm $*.o
-
-# ----------------------- LINUX i386 -----------------------
-
-pd_linux: line3.pd_linux
-
-.SUFFIXES: .pd_linux
-
-LINUXCFLAGS = -DPD -O2 -funroll-loops -fomit-frame-pointer \
- -Wall -W -Wshadow -Wstrict-prototypes -Werror \
- -Wno-unused -Wno-parentheses -Wno-switch
-
-LINUXINCLUDE = -I../../src/
-
-.c.pd_linux:
- cc $(LINUXCFLAGS) $(LINUXINCLUDE) -o $*.o -c $*.c
- ld --export-dynamic -shared -o $*.pd_linux $*.o -lc -lm
- strip --strip-unneeded $*.pd_linux
- rm $*.o
-
-# ----------------------- Mac OS X (Darwin) -----------------------
-
-
-pd_darwin: line3.pd_darwin
-
-.SUFFIXES: .pd_darwin
-
-DARWINCFLAGS = -DPD -DUNIX -DMACOSX -O2 \
- -Wall -W -Wshadow -Wstrict-prototypes \
- -Wno-unused -Wno-parentheses -Wno-switch
-
-# where is your m_pd.h ???
-DARWININCLUDE = -I/. -I../pd/src -I../pd/obj
-
-.c.pd_darwin:
- cc $(DARWINCFLAGS) $(DARWININCLUDE) -o $*.o -c $*.c
- cc -bundle -undefined suppress -flat_namespace -o $*.pd_darwin $*.o
- rm -f $*.o ../$*.pd_darwin
- ln -s $*/$*.pd_darwin ..
-
-
-
diff --git a/nusmuk_audio/debian/changelog b/nusmuk_audio/debian/changelog
new file mode 100644
index 0000000..9d53a4c
--- /dev/null
+++ b/nusmuk_audio/debian/changelog
@@ -0,0 +1,5 @@
+pd-template (0.0-1) unstable; urgency=low
+
+ * Initial release (Closes: #nnnn) <nnnn is the bug number of your ITP>
+
+ -- Hans-Christoph Steiner <hans@eds.org> Thu, 21 Jan 2010 23:27:04 -0500
diff --git a/nusmuk_audio/debian/compat b/nusmuk_audio/debian/compat
new file mode 100644
index 0000000..7f8f011
--- /dev/null
+++ b/nusmuk_audio/debian/compat
@@ -0,0 +1 @@
+7
diff --git a/nusmuk_audio/debian/control b/nusmuk_audio/debian/control
new file mode 100644
index 0000000..168f790
--- /dev/null
+++ b/nusmuk_audio/debian/control
@@ -0,0 +1,17 @@
+Source: pd-template
+Section: sound
+Priority: optional
+Maintainer: Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org>
+Uploaders: Hans-Christoph Steiner <hans@eds.org>
+Build-Depends: debhelper (>= 7.0.50~),
+ puredata
+Standards-Version: 3.9.1
+Homepage: http://puredata.info
+
+Package: pd-template
+Architecture: any
+Depends: ${shlibs:Depends},
+ pd,
+ ${misc:Depends},
+ pd-libdir
+Description:
diff --git a/nusmuk_audio/debian/copyright b/nusmuk_audio/debian/copyright
new file mode 100644
index 0000000..bf20b3b
--- /dev/null
+++ b/nusmuk_audio/debian/copyright
@@ -0,0 +1,23 @@
+Format-Specification: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?rev=135
+Name: template
+Maintainer:
+Source: http://sourceforge.net/projects/pure-data/files/libraries/template/
+
+Files: *
+Copyright: 2001-2003, Free Software Foundation
+License: GPL-2+
+ This package is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ .
+ This package is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this package; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+X-Comment: On Debian systems, the complete text of the GNU General
+ Public License can be found in `/usr/share/common-licenses/GPL-2'.
diff --git a/nusmuk_audio/debian/gbp.conf b/nusmuk_audio/debian/gbp.conf
new file mode 100644
index 0000000..ae1dc36
--- /dev/null
+++ b/nusmuk_audio/debian/gbp.conf
@@ -0,0 +1,7 @@
+[DEFAULT]
+upstream-branch = upstream
+debian-branch = master
+upstream-tag = upstream/%(version)s
+debian-tag = debian/%(version)s
+pristine-tar = True
+sign-tags = True
diff --git a/nusmuk_audio/debian/links b/nusmuk_audio/debian/links
new file mode 100644
index 0000000..e21d901
--- /dev/null
+++ b/nusmuk_audio/debian/links
@@ -0,0 +1,3 @@
+usr/lib/pd/extra/template/README.txt usr/share/doc/pd-template/README
+usr/lib/pd/extra/template/examples usr/share/doc/pd-template/examples
+usr/share/common-licenses/GPL-2 usr/lib/pd/extra/template/LICENSE.txt
diff --git a/nusmuk_audio/debian/rules b/nusmuk_audio/debian/rules
new file mode 100755
index 0000000..df5d06a
--- /dev/null
+++ b/nusmuk_audio/debian/rules
@@ -0,0 +1,17 @@
+#!/usr/bin/make -f
+
+LIBRARY_NAME = template
+PACKAGE = pd-$(LIBRARY_NAME)
+pkglibdir = /usr/lib/pd/extra
+
+%:
+ dh $@ --buildsystem=makefile
+
+override_dh_auto_install:
+ dh_auto_install -- prefix=/usr pkglibdir=$(pkglibdir)
+# replace license file with link to the Debian license file
+ rm -f -- $(CURDIR)/debian/$(PACKAGE)/$(pkglibdir)/$(LIBRARY_NAME)/LICENSE.txt
+
+override_dh_shlibdeps:
+ dpkg-shlibdeps $(CURDIR)/debian/$(PACKAGE)$(pkglibdir)/$(LIBRARY_NAME)/*.pd_linux \
+ -T$(CURDIR)/debian/$(PACKAGE).substvars
diff --git a/nusmuk_audio/debian/source/format b/nusmuk_audio/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/nusmuk_audio/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/nusmuk_audio/debian/watch b/nusmuk_audio/debian/watch
new file mode 100644
index 0000000..82c0d1a
--- /dev/null
+++ b/nusmuk_audio/debian/watch
@@ -0,0 +1,2 @@
+version=3
+http://sf.net/pure-data/template-(.*)\.tar\.gz
diff --git a/nusmuk_utils/debian/changelog b/nusmuk_utils/debian/changelog
new file mode 100644
index 0000000..9d53a4c
--- /dev/null
+++ b/nusmuk_utils/debian/changelog
@@ -0,0 +1,5 @@
+pd-template (0.0-1) unstable; urgency=low
+
+ * Initial release (Closes: #nnnn) <nnnn is the bug number of your ITP>
+
+ -- Hans-Christoph Steiner <hans@eds.org> Thu, 21 Jan 2010 23:27:04 -0500
diff --git a/nusmuk_utils/debian/compat b/nusmuk_utils/debian/compat
new file mode 100644
index 0000000..7f8f011
--- /dev/null
+++ b/nusmuk_utils/debian/compat
@@ -0,0 +1 @@
+7
diff --git a/nusmuk_utils/debian/control b/nusmuk_utils/debian/control
new file mode 100644
index 0000000..168f790
--- /dev/null
+++ b/nusmuk_utils/debian/control
@@ -0,0 +1,17 @@
+Source: pd-template
+Section: sound
+Priority: optional
+Maintainer: Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org>
+Uploaders: Hans-Christoph Steiner <hans@eds.org>
+Build-Depends: debhelper (>= 7.0.50~),
+ puredata
+Standards-Version: 3.9.1
+Homepage: http://puredata.info
+
+Package: pd-template
+Architecture: any
+Depends: ${shlibs:Depends},
+ pd,
+ ${misc:Depends},
+ pd-libdir
+Description:
diff --git a/nusmuk_utils/debian/copyright b/nusmuk_utils/debian/copyright
new file mode 100644
index 0000000..bf20b3b
--- /dev/null
+++ b/nusmuk_utils/debian/copyright
@@ -0,0 +1,23 @@
+Format-Specification: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?rev=135
+Name: template
+Maintainer:
+Source: http://sourceforge.net/projects/pure-data/files/libraries/template/
+
+Files: *
+Copyright: 2001-2003, Free Software Foundation
+License: GPL-2+
+ This package is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ .
+ This package is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this package; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+X-Comment: On Debian systems, the complete text of the GNU General
+ Public License can be found in `/usr/share/common-licenses/GPL-2'.
diff --git a/nusmuk_utils/debian/gbp.conf b/nusmuk_utils/debian/gbp.conf
new file mode 100644
index 0000000..ae1dc36
--- /dev/null
+++ b/nusmuk_utils/debian/gbp.conf
@@ -0,0 +1,7 @@
+[DEFAULT]
+upstream-branch = upstream
+debian-branch = master
+upstream-tag = upstream/%(version)s
+debian-tag = debian/%(version)s
+pristine-tar = True
+sign-tags = True
diff --git a/nusmuk_utils/debian/links b/nusmuk_utils/debian/links
new file mode 100644
index 0000000..e21d901
--- /dev/null
+++ b/nusmuk_utils/debian/links
@@ -0,0 +1,3 @@
+usr/lib/pd/extra/template/README.txt usr/share/doc/pd-template/README
+usr/lib/pd/extra/template/examples usr/share/doc/pd-template/examples
+usr/share/common-licenses/GPL-2 usr/lib/pd/extra/template/LICENSE.txt
diff --git a/nusmuk_utils/debian/rules b/nusmuk_utils/debian/rules
new file mode 100755
index 0000000..df5d06a
--- /dev/null
+++ b/nusmuk_utils/debian/rules
@@ -0,0 +1,17 @@
+#!/usr/bin/make -f
+
+LIBRARY_NAME = template
+PACKAGE = pd-$(LIBRARY_NAME)
+pkglibdir = /usr/lib/pd/extra
+
+%:
+ dh $@ --buildsystem=makefile
+
+override_dh_auto_install:
+ dh_auto_install -- prefix=/usr pkglibdir=$(pkglibdir)
+# replace license file with link to the Debian license file
+ rm -f -- $(CURDIR)/debian/$(PACKAGE)/$(pkglibdir)/$(LIBRARY_NAME)/LICENSE.txt
+
+override_dh_shlibdeps:
+ dpkg-shlibdeps $(CURDIR)/debian/$(PACKAGE)$(pkglibdir)/$(LIBRARY_NAME)/*.pd_linux \
+ -T$(CURDIR)/debian/$(PACKAGE).substvars
diff --git a/nusmuk_utils/debian/source/format b/nusmuk_utils/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/nusmuk_utils/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/nusmuk_utils/debian/watch b/nusmuk_utils/debian/watch
new file mode 100644
index 0000000..82c0d1a
--- /dev/null
+++ b/nusmuk_utils/debian/watch
@@ -0,0 +1,2 @@
+version=3
+http://sf.net/pure-data/template-(.*)\.tar\.gz
diff --git a/oscillators/pwm~-help.pd b/oscillators/pwm~-help.pd
deleted file mode 100644
index ac53b86..0000000
--- a/oscillators/pwm~-help.pd
+++ /dev/null
@@ -1,36 +0,0 @@
-#N canvas 125 102 521 323 10;
-#X obj 41 231 *~ 0.3;
-#X obj 42 266 dac~;
-#X obj 42 76 mtof;
-#X obj 41 170 pwm~;
-#X obj 42 121 line~;
-#X msg 42 98 \$1 33;
-#X obj 146 122 line~;
-#X msg 146 99 \$1 33;
-#X text 40 17 pwm~ is a band-limited square oscillator.;
-#X msg 146 60 0.5;
-#N canvas 0 22 450 300 (subpatch) 0;
-#X array \$0_ 1000 float 2;
-#X coords 0 1 999 -1 200 140 1;
-#X restore 277 93 graph;
-#X obj 122 239 tabwrite~ \$0_;
-#X obj 122 192 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
-1;
-#X obj 149 80 hsl 70 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144
--1 -1 3600 1;
-#X obj 122 214 metro 238.3;
-#X floatatom 42 52 5 0 0 0 - - -;
-#X connect 0 0 1 0;
-#X connect 0 0 1 1;
-#X connect 2 0 5 0;
-#X connect 3 0 0 0;
-#X connect 3 0 11 0;
-#X connect 4 0 3 0;
-#X connect 5 0 4 0;
-#X connect 6 0 3 1;
-#X connect 7 0 6 0;
-#X connect 9 0 13 0;
-#X connect 12 0 14 0;
-#X connect 13 0 7 0;
-#X connect 14 0 11 0;
-#X connect 15 0 2 0;
diff --git a/oscillators/pwm~.pd b/oscillators/pwm~.pd
deleted file mode 100644
index a593e5f..0000000
--- a/oscillators/pwm~.pd
+++ /dev/null
@@ -1,176 +0,0 @@
-#N canvas 268 49 728 663 10;
-#X obj 65 122 phasor~;
-#X obj 66 59 inlet~;
-#X obj 238 172 +~;
-#X obj 255 64 inlet~;
-#X obj 237 198 wrap~;
-#X obj 334 327 sig~ 22050;
-#X obj 334 284 samplerate~;
-#X obj 334 232 loadbang;
-#X obj 334 307 * 0.5;
-#X obj 67 475 -~;
-#X obj 67 503 outlet~;
-#X obj 475 432 loadbang;
-#X obj 475 495 table \$0-lookup 2;
-#X obj 475 474 s \$0-lookup;
-#X msg 475 453 0 0 1;
-#X msg 344 257 bang;
-#N canvas 315 401 852 607 sinc-phasor 0;
-#X obj 173 131 -~ 0.5;
-#X obj 421 192 *~ 2;
-#X obj 459 191 /~;
-#X obj 421 219 *~;
-#X obj 422 241 abs~;
-#X obj 421 263 +~ 1.8955;
-#X obj 174 427 +~;
-#N canvas 104 42 701 480 sin(x)/x 0;
-#X obj 220 229 cos~;
-#X obj 221 204 -~ 0.25;
-#X msg 288 90 1;
-#X floatatom 288 162 5 0 0 0 - - -;
-#X obj 288 116 atan;
-#X obj 288 137 * 8;
-#X obj 220 181 /~ 6.238;
-#X obj 288 67 loadbang;
-#X obj 221 148 inlet~;
-#X obj 219 291 outlet~;
-#X obj 220 255 /~;
-#X connect 0 0 10 0;
-#X connect 1 0 0 0;
-#X connect 2 0 4 0;
-#X connect 3 0 6 1;
-#X connect 4 0 5 0;
-#X connect 5 0 3 0;
-#X connect 6 0 1 0;
-#X connect 7 0 2 0;
-#X connect 8 0 6 0;
-#X connect 8 0 10 1;
-#X connect 10 0 9 0;
-#X restore 421 293 pd sin(x)/x;
-#X text 208 426 + v3;
-#X obj 175 333 tabread~ \$0-lookup;
-#X obj 174 311 +~ 1;
-#X obj 127 78 inlet~;
-#X text 123 53 phasor~;
-#X obj 433 71 inlet~;
-#X obj 510 72 inlet~;
-#X text 506 47 SR;
-#X text 429 46 freq;
-#X obj 109 486 outlet~;
-#X obj 328 217 wrap~;
-#X obj 329 243 *~ 2;
-#X obj 329 268 -~ 1;
-#X obj 330 392 *~;
-#X text 357 387 v2*sin(v4)/v4;
-#X obj 110 460 -~;
-#X connect 0 0 1 0;
-#X connect 0 0 10 0;
-#X connect 0 0 18 0;
-#X connect 1 0 3 0;
-#X connect 2 0 3 1;
-#X connect 3 0 4 0;
-#X connect 4 0 5 0;
-#X connect 5 0 7 0;
-#X connect 6 0 23 0;
-#X connect 7 0 21 1;
-#X connect 9 0 6 0;
-#X connect 10 0 9 0;
-#X connect 11 0 0 0;
-#X connect 11 0 23 1;
-#X connect 13 0 2 1;
-#X connect 14 0 2 0;
-#X connect 18 0 19 0;
-#X connect 19 0 20 0;
-#X connect 20 0 21 0;
-#X connect 21 0 6 1;
-#X connect 23 0 17 0;
-#X restore 238 442 pd sinc-phasor;
-#N canvas 315 401 852 607 sinc-phasor 0;
-#X obj 173 131 -~ 0.5;
-#X obj 421 192 *~ 2;
-#X obj 459 191 /~;
-#X obj 421 219 *~;
-#X obj 422 241 abs~;
-#X obj 421 263 +~ 1.8955;
-#X obj 174 427 +~;
-#N canvas 104 42 701 480 sin(x)/x 0;
-#X obj 220 229 cos~;
-#X obj 221 204 -~ 0.25;
-#X msg 288 90 1;
-#X floatatom 288 162 5 0 0 0 - - -;
-#X obj 288 116 atan;
-#X obj 288 137 * 8;
-#X obj 220 181 /~ 6.238;
-#X obj 288 67 loadbang;
-#X obj 221 148 inlet~;
-#X obj 219 291 outlet~;
-#X obj 220 255 /~;
-#X connect 0 0 10 0;
-#X connect 1 0 0 0;
-#X connect 2 0 4 0;
-#X connect 3 0 6 1;
-#X connect 4 0 5 0;
-#X connect 5 0 3 0;
-#X connect 6 0 1 0;
-#X connect 7 0 2 0;
-#X connect 8 0 6 0;
-#X connect 8 0 10 1;
-#X connect 10 0 9 0;
-#X restore 421 293 pd sin(x)/x;
-#X text 208 426 + v3;
-#X obj 175 333 tabread~ \$0-lookup;
-#X obj 174 311 +~ 1;
-#X obj 127 78 inlet~;
-#X text 123 53 phasor~;
-#X obj 433 71 inlet~;
-#X obj 510 72 inlet~;
-#X text 506 47 SR;
-#X text 429 46 freq;
-#X obj 109 486 outlet~;
-#X obj 328 217 wrap~;
-#X obj 329 243 *~ 2;
-#X obj 329 268 -~ 1;
-#X obj 330 392 *~;
-#X text 357 387 v2*sin(v4)/v4;
-#X obj 110 460 -~;
-#X connect 0 0 1 0;
-#X connect 0 0 10 0;
-#X connect 0 0 18 0;
-#X connect 1 0 3 0;
-#X connect 2 0 3 1;
-#X connect 3 0 4 0;
-#X connect 4 0 5 0;
-#X connect 5 0 7 0;
-#X connect 6 0 23 0;
-#X connect 7 0 21 1;
-#X connect 9 0 6 0;
-#X connect 10 0 9 0;
-#X connect 11 0 0 0;
-#X connect 11 0 23 1;
-#X connect 13 0 2 1;
-#X connect 14 0 2 0;
-#X connect 18 0 19 0;
-#X connect 19 0 20 0;
-#X connect 20 0 21 0;
-#X connect 21 0 6 1;
-#X connect 23 0 17 0;
-#X restore 66 443 pd sinc-phasor;
-#X connect 0 0 2 0;
-#X connect 0 0 17 0;
-#X connect 1 0 0 0;
-#X connect 1 0 16 1;
-#X connect 1 0 17 1;
-#X connect 2 0 4 0;
-#X connect 3 0 2 1;
-#X connect 4 0 16 0;
-#X connect 5 0 16 2;
-#X connect 5 0 17 2;
-#X connect 6 0 8 0;
-#X connect 7 0 6 0;
-#X connect 8 0 5 0;
-#X connect 9 0 10 0;
-#X connect 11 0 14 0;
-#X connect 14 0 13 0;
-#X connect 15 0 6 0;
-#X connect 16 0 9 1;
-#X connect 17 0 9 0;
diff --git a/oscillators/saw~-help.pd b/oscillators/saw~-help.pd
deleted file mode 100644
index 997d3b6..0000000
--- a/oscillators/saw~-help.pd
+++ /dev/null
@@ -1,14 +0,0 @@
-#N canvas 340 204 450 293 10;
-#X obj 42 137 saw~;
-#X obj 43 110 sig~ 333;
-#X obj 43 162 *~ 0.3;
-#X obj 43 194 dac~;
-#X floatatom 43 63 5 0 0 0 - - -;
-#X obj 43 86 mtof;
-#X text 30 17 saw~ is a band-limited sawtooth oscillator.;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 2 0 3 0;
-#X connect 2 0 3 1;
-#X connect 4 0 5 0;
-#X connect 5 0 1 0;
diff --git a/oscillators/saw~.pd b/oscillators/saw~.pd
deleted file mode 100644
index f06316e..0000000
--- a/oscillators/saw~.pd
+++ /dev/null
@@ -1,79 +0,0 @@
-#N canvas 232 120 725 608 10;
-#X obj 105 96 phasor~;
-#X obj 173 131 -~ 0.5;
-#X obj 421 192 *~ 2;
-#X obj 328 217 wrap~;
-#X obj 329 243 *~ 2;
-#X obj 329 268 -~ 1;
-#X obj 459 191 /~;
-#X obj 458 146 sig~ 22050;
-#X obj 421 219 *~;
-#X obj 422 241 abs~;
-#X obj 421 263 +~ 1.8955;
-#X obj 106 49 inlet~;
-#X obj 87 542 outlet~;
-#X obj 458 97 samplerate~;
-#X obj 458 74 loadbang;
-#X obj 458 120 * 0.5;
-#X obj 174 427 +~;
-#N canvas 104 42 701 480 sin(x)/x 0;
-#X obj 220 229 cos~;
-#X obj 221 204 -~ 0.25;
-#X msg 288 90 1;
-#X floatatom 288 162 5 0 0 0 - - -;
-#X obj 288 116 atan;
-#X obj 288 137 * 8;
-#X obj 220 181 /~ 6.238;
-#X obj 288 67 loadbang;
-#X obj 221 148 inlet~;
-#X obj 219 291 outlet~;
-#X obj 220 255 /~;
-#X connect 0 0 10 0;
-#X connect 1 0 0 0;
-#X connect 2 0 4 0;
-#X connect 3 0 6 1;
-#X connect 4 0 5 0;
-#X connect 5 0 3 0;
-#X connect 6 0 1 0;
-#X connect 7 0 2 0;
-#X connect 8 0 6 0;
-#X connect 8 0 10 1;
-#X connect 10 0 9 0;
-#X restore 421 293 pd sin(x)/x;
-#X obj 330 392 *~;
-#X text 357 387 v2*sin(v4)/v4;
-#X text 208 426 + v3;
-#X obj 87 482 -~;
-#X obj 557 476 loadbang;
-#X obj 557 539 table \$0-lookup 2;
-#X obj 175 333 tabread~ \$0-lookup;
-#X obj 174 311 +~ 1;
-#X obj 557 518 s \$0-lookup;
-#X msg 557 497 0 0 1;
-#X connect 0 0 1 0;
-#X connect 0 0 21 1;
-#X connect 1 0 2 0;
-#X connect 1 0 3 0;
-#X connect 1 0 25 0;
-#X connect 2 0 8 0;
-#X connect 3 0 4 0;
-#X connect 4 0 5 0;
-#X connect 5 0 18 0;
-#X connect 6 0 8 1;
-#X connect 7 0 6 0;
-#X connect 8 0 9 0;
-#X connect 9 0 10 0;
-#X connect 10 0 17 0;
-#X connect 11 0 0 0;
-#X connect 11 0 6 1;
-#X connect 13 0 15 0;
-#X connect 14 0 13 0;
-#X connect 15 0 7 0;
-#X connect 16 0 21 0;
-#X connect 17 0 18 1;
-#X connect 18 0 16 1;
-#X connect 21 0 12 0;
-#X connect 22 0 27 0;
-#X connect 24 0 16 0;
-#X connect 25 0 24 0;
-#X connect 27 0 26 0;
diff --git a/pbank/bushmeat.pbank b/pbank/bushmeat.pbank
deleted file mode 100644
index 1b83547..0000000
--- a/pbank/bushmeat.pbank
+++ /dev/null
@@ -1,19 +0,0 @@
-pbank 4 12,
- 166 1.10236 236 94,
- 874 0.629921 7086 85,
- 2286
-0.629921 4251 85,
- 285.433 1.43937 2792.13 71,
- 585.61 1.48661
-2886.93 75,
- 165.362 3.46457 7414.57 75,
- 5935.83 0.209449 9764.96
-75,
- 403 0.472441 9921 75,
- 403 0.472441 6692 75,
- 403 0.472441
-1811 75,
- CarrierFQ ModulatorFQ FMindex Gain,
- PARAM1 PARAM2 PARAM3
-PARAM4,
- \ No newline at end of file
diff --git a/pbank/common.h b/pbank/common.h
deleted file mode 100644
index 3f4a1c8..0000000
--- a/pbank/common.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* common.h -- those things we define often */
-
-#define InRange(v,lo,hi) ((v)<=(hi)&&(v)>=(lo))
-#define MAXIUM(a,b) ((a)>(b)?(a):(b))
-#define MINIUM(a,b) ((a)<(b)?(a):(b))
-
-#define RetKey 13
-#define EnterKey 3
-#define SpaceBar 32
-#define BackSpace 8
-#define BackSlash 0x5C
-#define VertBar 0x7C
-#define Grave 0x60
-#define Tilde 0x7E
-#define TabKey 9
-#define ClearKey 27
-#define OptionSpace 202
diff --git a/pbank/makefile b/pbank/makefile
deleted file mode 100755
index b79c587..0000000
--- a/pbank/makefile
+++ /dev/null
@@ -1,102 +0,0 @@
-NAME=pbank
-CSYM=pbank
-
-
-current: echo make pd_nt, pd_darwin, pd_linux
-
-# ----------------------- NT -----------------------
-
-
-pd_nt: pbank.dll
-
-.SUFFIXES: .dll
-
-PDNTCFLAGS = /W3 /WX /DNT /DPD /nologo
-VC="C:\Program Files\Microsoft Visual Studio\Vc98"
-
-PDNTINCLUDE = /I. /I\tcl\include E:\pds\win32\pd37\src /I$(VC)\include
-
-PDNTLDIR = $(VC)\lib
-PDNTLIB = $(PDNTLDIR)\libc.lib \
- $(PDNTLDIR)\oldnames.lib \
- $(PDNTLDIR)\kernel32.lib \
- ..\..\..\..\pd\bin\pd.lib
-
-.c.dll:
- cl $(PDNTCFLAGS) $(PDNTINCLUDE) /c $*.c
- link /dll /export:$*_setup $*.obj $(PDNTLIB)
-# ----------------------- IRIX 5.x -----------------------
-
-pd_irix5: $(NAME).pd_irix5
-
-.SUFFIXES: .pd_irix5
-
-SGICFLAGS5 = -o32 -DPD -DUNIX -DIRIX -O2
-
-SGIINCLUDE = -I../../src
-
-.c.pd_irix5:
- cc $(SGICFLAGS5) $(SGIINCLUDE) -o $*.o -c $*.c
- ld -elf -shared -rdata_shared -o $*.pd_irix5 $*.o
- rm $*.o
-
-# ----------------------- IRIX 6.x -----------------------
-
-pd_irix6: $(NAME).pd_irix6
-
-.SUFFIXES: .pd_irix6
-
-SGICFLAGS6 = -n32 -DPD -DUNIX -DIRIX -DN32 -woff 1080,1064,1185 \
- -OPT:roundoff=3 -OPT:IEEE_arithmetic=3 -OPT:cray_ivdep=true \
- -Ofast=ip32
-
-.c.pd_irix6:
- cc $(SGICFLAGS6) $(SGIINCLUDE) -o $*.o -c $*.c
- ld -n32 -IPA -shared -rdata_shared -o $*.pd_irix6 $*.o
- rm $*.o
-
-# ----------------------- LINUX i386 -----------------------
-
-pd_linux: $(NAME).pd_linux
-
-.SUFFIXES: .pd_linux
-
-LINUXCFLAGS = -DPD -DUNIX -O2 -funroll-loops -fomit-frame-pointer \
- -Wall -W -Wshadow -Wstrict-prototypes -Werror \
- -Wno-unused -Wno-parentheses -Wno-switch
-
-# where is your m_pd.h ???
-LINUXINCLUDE = -I../../src -I../../src/pdinclude
-
-.c.pd_linux:
- $(CC) -O2 -Wall -DPD -fPIC $(NS_INCLUDE) -c $*.c
- $(LD) --export-dynamic -shared -o $*.pd_linux $*.o -lc
- rm -f $*.o ../$*.pd_linux
- #cp $*.pd_linux ../../xjimmies/.
-
-# ----------------------- Mac OS X (Darwin) -----------------------
-
-pd_darwin: $(NAME).pd_darwin
-
-.SUFFIXES: .pd_darwin
-
-DARWINCFLAGS = -DPD -DUNIX -DMACOSX -O2 \
- -Wall -W -Wshadow -Wstrict-prototypes \
- -Wno-unused -Wno-parentheses -Wno-switch
-
-# points to where your m_pd.h: either in your pd sources, or in the borrowed (older) pd ".h" files
-DARWININCLUDE = -I../../../pd/src -I../pdinclude
-
-.c.pd_darwin:
- cc $(DARWINCFLAGS) $(NS_INCLUDE) -o $*.o -c $*.c
- cc -bundle -undefined suppress -flat_namespace -o $*.pd_darwin $*.o
- rm -f $*.o ../$*.pd_darwin
- #cp $*.pd_darwin ../../xjimmies/.
- #ln -s $*/$*.pd_darwin ..
-
-
-# ----------------------------------------------------------
-
-
-clean:
- rm -f *.o *.pd_* so_locations
diff --git a/pbank/pbank-help.pd b/pbank/pbank-help.pd
deleted file mode 100755
index b88a85d..0000000
--- a/pbank/pbank-help.pd
+++ /dev/null
@@ -1,562 +0,0 @@
-#N canvas 8 30 1013 918 10;
-#X msg 487 31 set 1 2 100 3.1415 shupsh;
-#X msg 500 59 0 1 1.234;
-#X text 573 59 write 1.234 to column 0 of row 1;
-#X text 672 31 set list of elements starting at column 1 in row 2;
-#X msg 513 87 0 1;
-#X text 542 87 read value at column 0 of row 1;
-#X msg 538 138 2 0 coptox;
-#X text 556 110 read value at column 2 of row 0;
-#X msg 526 110 2 0;
-#X msg 608 245 put 0 100 3.14159 shupsh;
-#X text 793 251 put list of elements starting at column 0 in edit buffer
-;
-#X text 41 -12 A 2-dimensional parameter bank for floats or symbols
-;
-#X text -19 42 args:;
-#X text -4 56 argument1 gives the number of columns (X axis): <int>
-\; argument2 gives the number of rows (Y axis): <int> \; argument3
-is the name of the pbank: <symbol>;
-#X text 66 95 The arg3 (pbank 'name') is used by pbank in two ways:
-when a patch using a pbank is loaded \, a pbank data file corresponding
-to arg3 will be searched for and loaded if found. The 'name' also allows
-other pbanks with the same name to share data -in the way that tables
-do. If these two features are not wanted \, Arg3 (the 'name') can be
-set to the empty string: "" (two quotes) - see example below-;
-#X text 616 138 write symbol "coptox" to column 2 of row 0;
-#X text 777 564 The left-hand outlet outputs lists of the form: columnNo
-<int> item <int \, float or symbol>;
-#X text 777 589 note: Do not forget that this outlet is only used by
-pbank if argument 4 undefined (omitted) -see arguments;
-#X text 40 0 note: The structure of pbank includes an additional row
-that serves as an edit buffer. - see Messages;
-#X msg 697 505 read bushmeat.pbank;
-#X msg 654 336 store 3;
-#X msg 625 273 recall 3;
-#X text -5 187 argument4;
-#X text 65 187 is the symbol that pbank uses when directing its output
-to receives based on this symbol: <optional symbol>;
-#X msg 697 529 write bushmeat.pbank;
-#X obj -7 315 pbank 4 12;
-#X text -8 330 Creates a parameter bank of 4 columns by 12 rows;
-#X obj -8 361 pbank 4 12 bushmeat.pbank;
-#X text -10 378 Creates a parameter bank of 4 columns by 12 rows \,
-reading in the contents of the file name "bushmeat.pbank" \, and sharing
-data with any other pbanks with the same name;
-#X floatatom 776 777 5 0 0 0 - - -;
-#X floatatom 816 777 5 0 0 0 - - -;
-#X obj 883 742 print pbankOut;
-#X obj 776 742 route 0 1 2 3;
-#X floatatom 856 777 5 0 0 0 - - -;
-#X floatatom 896 777 5 0 0 0 - - -;
-#X obj 776 706 pbank 4 12 bushmeat.pbank;
-#X obj 614 636 send toPbanks;
-#X obj 776 682 receive toPbanks;
-#X text 486 3 MESSAGES: read/write;
-#X text 587 221 MESSAGES: edit buffer;
-#X text 696 485 MESSAGES: file IO;
-#X obj 383 677 route 0 1 2 3;
-#X msg 383 707 set \$1;
-#X msg 384 768 untitled_10;
-#X msg 484 707 set \$1;
-#X msg 484 768 0;
-#X msg 577 707 set \$1;
-#X msg 577 768 0;
-#X msg 670 707 set \$1;
-#X msg 670 768 0;
-#X msg 419 623 recall 11;
-#X msg 420 602 recall 10;
-#X obj 510 388 vradio 18 1 0 10 empty empty empty 0 -6 0 8 -262144
--1 -1 0;
-#X msg 510 574 recall \$1;
-#X obj -9 437 receive toPbanks;
-#X obj -9 461 pbank 4 12 bushmeat.pbank wireless;
-#X floatatom 397 752 5 0 0 0 - - -;
-#X floatatom 490 752 5 0 0 0 - - -;
-#X floatatom 583 752 5 0 0 0 - - -;
-#X floatatom 676 752 5 0 0 0 - - -;
-#X obj -9 573 pbank 4 12 "" wireless;
-#X obj 420 576 loadbang;
-#X obj 397 730 r wireless-0;
-#X obj 490 730 r wireless-1;
-#X obj 583 730 r wireless-2;
-#X obj 676 730 r wireless-3;
-#X text -11 592 Creates an unnamed parameter bank of 4 columns by 12
-rows \, whose output will be sent to 4 corresponding receives whose
-names are based on the symbol "wireless-n" \, where n is the corresponding
-column number. Note that the argument3 has been set to the empty string:
-"".;
-#N canvas 291 52 1062 794 An_EXAMPLE 0;
-#X obj 109 8 r synth-0;
-#X msg 87 32 set \$1;
-#X msg 109 79 set \$1;
-#X obj 109 174 vsl 15 128 50 15000 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 99 1;
-#X floatatom 87 336 7 0 0 1 hz - -;
-#X msg 87 357 put 0 \$1;
-#X obj 259 426 s toSynthPbank;
-#X obj 117 104 r name-0;
-#X msg 117 126 set \$1;
-#X msg 117 147 CarrierFQ;
-#N canvas 571 157 505 529 SYNTH 0;
-#X obj 80 43 inlet;
-#X obj 192 43 inlet;
-#X obj 300 43 inlet;
-#X obj 399 43 inlet;
-#X text 89 23 fq;
-#X text 178 24 modFQscaler;
-#X text 299 23 index;
-#X text 401 23 gain;
-#X floatatom 80 69 5 0 0 0 - - -;
-#X obj 123 110 float;
-#X obj 80 156 sig~;
-#X obj 192 71 t b f;
-#X obj 123 156 * 1;
-#X obj 123 178 sig~;
-#X obj 123 207 osc~;
-#X floatatom 222 110 5 0 0 0 - - -;
-#X obj 123 238 *~;
-#X obj 300 154 sig~;
-#X floatatom 300 110 5 0 0 0 - - -;
-#X obj 80 285 +~;
-#X obj 80 330 osc~;
-#X obj 399 72 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 9400 1;
-#X obj 79 441 dac~;
-#X text 19 474 xjimmies lib. z. settel/jm dumas 2003-2007;
-#X obj 80 410 gain2~;
-#X obj 98 388 r \$0-gain;
-#X obj 80 364 gain1~;
-#X connect 0 0 8 0;
-#X connect 1 0 11 0;
-#X connect 2 0 18 0;
-#X connect 3 0 21 0;
-#X connect 8 0 10 0;
-#X connect 8 0 9 0;
-#X connect 9 0 12 0;
-#X connect 10 0 19 0;
-#X connect 11 0 9 0;
-#X connect 11 1 15 0;
-#X connect 12 0 13 0;
-#X connect 13 0 14 0;
-#X connect 14 0 16 0;
-#X connect 15 0 12 1;
-#X connect 16 0 19 1;
-#X connect 17 0 16 1;
-#X connect 18 0 17 0;
-#X connect 19 0 20 0;
-#X connect 20 0 26 0;
-#X connect 21 0 26 1;
-#X connect 24 0 22 0;
-#X connect 24 0 22 1;
-#X connect 25 0 24 1;
-#X connect 26 0 24 0;
-#X restore 623 425 pd SYNTH;
-#X msg 259 33 set \$1;
-#X msg 281 80 set \$1;
-#X obj 281 175 vsl 15 128 0 20 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 700 1;
-#X floatatom 259 337 7 0 0 1 hz - -;
-#X msg 289 127 set \$1;
-#X msg 289 148 ModulatorFQ;
-#X msg 437 31 set \$1;
-#X msg 459 78 set \$1;
-#X obj 459 173 vsl 15 128 50 10000 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 237 1;
-#X floatatom 437 335 7 0 0 1 hz - -;
-#X msg 467 125 set \$1;
-#X msg 467 146 FMindex;
-#X msg 608 34 set \$1;
-#X obj 630 176 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 9400 1;
-#X floatatom 608 338 7 0 0 1 hz - -;
-#X msg 634 126 set \$1;
-#X msg 634 147 Gain;
-#X obj 281 9 r synth-1;
-#X obj 459 7 r synth-2;
-#X obj 608 7 r synth-3;
-#X obj 634 104 r name-3;
-#X obj 467 103 r name-2;
-#X obj 289 105 r name-1;
-#X msg 259 358 put 1 \$1;
-#X msg 437 356 put 2 \$1;
-#X msg 608 359 put 3 \$1;
-#X obj 721 530 r toSynthPbank;
-#X obj 447 554 s toSynthPbank;
-#X msg 447 526 recall \$1;
-#X msg 810 480 recall 11;
-#X msg 723 480 recall 10;
-#X obj 723 460 loadbang;
-#X obj 723 506 pbank 4 12 bushmeat.pbank name;
-#X obj 449 501 i;
-#X obj 366 486 bng 15 250 50 0 empty empty empty 0 -6 0 8 -18753 -1
--1;
-#X text 381 487 recall;
-#X obj 366 604 s toSynthPbank;
-#X obj 366 550 i;
-#X obj 366 466 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258049 -1
--1;
-#X text 388 465 store;
-#X msg 366 576 store \$1;
-#X floatatom 476 479 5 0 0 0 - - -;
-#X text 517 479 select memory;
-#X floatatom 476 502 5 0 0 0 - - -;
-#X text 518 500 current memory;
-#X obj 748 333 r synth-0;
-#X obj 748 353 r synth-1;
-#X obj 748 374 r synth-2;
-#X obj 748 395 r synth-3;
-#X obj 763 124 vsl 15 128 -99 18 0 1 \$0-gain empty Output -15 -14
-0 14 -260097 -1 -1 9300 1;
-#X floatatom 763 260 5 0 0 1 _db - -;
-#X obj 106 657 s toSynthPbank;
-#X obj 116 471 vradio 15 1 0 8 empty empty empty 0 -6 0 8 -262144 -1
--1 0;
-#X obj 475 433 hradio 15 1 0 8 empty empty empty 0 -6 0 8 -262144 -1
--1 0;
-#X floatatom 106 607 5 0 0 0 - - -;
-#X obj 723 629 pbank 4 12 bushmeat.pbank;
-#X msg 723 603 dump;
-#X msg 762 603 dump 2;
-#N canvas 675 151 189 317 interpol 0;
-#X obj 11 26 inlet;
-#X obj 72 98 min 127;
-#X obj 72 121 max 0;
-#X obj 11 98 min 127;
-#X obj 11 121 max 0;
-#N canvas 0 22 355 236 position 0;
-#X obj 49 121 pack f f;
-#X obj 49 17 inlet;
-#X obj 236 15 inlet;
-#X obj 49 152 outlet;
-#X obj 236 62 / 127;
-#X obj 49 93 / 127;
-#X obj 237 90 t b f;
-#X connect 0 0 3 0;
-#X connect 1 0 5 0;
-#X connect 2 0 4 0;
-#X connect 4 0 6 0;
-#X connect 5 0 0 0;
-#X connect 6 0 0 0;
-#X connect 6 1 0 1;
-#X restore 11 171 pd position;
-#N canvas 300 173 814 597 distance 0;
-#X obj 35 27 inlet;
-#X obj 37 538 outlet;
-#X obj 194 539 outlet;
-#X obj 37 144 unpack f f;
-#X obj 206 143 unpack f f;
-#X obj 341 142 unpack f f;
-#X obj 495 142 unpack f f;
-#X obj 634 140 unpack f f;
-#X obj 37 168 +;
-#X msg 37 192 1 \$1;
-#X obj 37 214 -;
-#X obj 206 171 - 1;
-#X obj 206 195 * -1;
-#X obj 205 224 +;
-#X msg 205 248 1 \$1;
-#X obj 205 270 -;
-#X obj 340 230 +;
-#X msg 340 254 1 \$1;
-#X obj 340 276 -;
-#X obj 492 223 +;
-#X msg 492 247 1 \$1;
-#X obj 492 269 -;
-#X obj 395 172 - 1;
-#X obj 395 196 * -1;
-#X obj 494 172 - 1;
-#X obj 494 196 * -1;
-#X obj 547 175 - 1;
-#X obj 547 199 * -1;
-#X obj 37 239 max 0;
-#X obj 206 292 max 0;
-#X obj 338 301 max 0;
-#X obj 493 298 max 0;
-#X obj 35 49 t a a a a a;
-#X obj 628 224 +;
-#X msg 628 248 1 \$1;
-#X obj 628 270 -;
-#X obj 629 299 max 0;
-#X obj 632 173 - 0.5;
-#X obj 683 176 - 0.5;
-#X obj 683 200 abs;
-#X obj 630 197 abs;
-#X obj 509 322 +;
-#X obj 379 349 +;
-#X obj 257 378 +;
-#X obj 62 413 +;
-#X obj 37 513 /;
-#X obj 37 264 t f f;
-#X obj 193 493 f;
-#X obj 193 517 /;
-#X obj 70 437 t b f;
-#X obj 325 487 f;
-#X obj 325 511 /;
-#X obj 480 481 f;
-#X obj 480 505 /;
-#X obj 616 480 f;
-#X obj 616 504 /;
-#X obj 480 531 outlet;
-#X obj 325 537 outlet;
-#X obj 616 532 outlet;
-#X connect 0 0 32 0;
-#X connect 3 0 8 0;
-#X connect 3 1 8 1;
-#X connect 4 0 11 0;
-#X connect 4 1 13 1;
-#X connect 5 0 16 0;
-#X connect 5 1 22 0;
-#X connect 6 0 24 0;
-#X connect 6 1 26 0;
-#X connect 7 0 37 0;
-#X connect 7 1 38 0;
-#X connect 8 0 9 0;
-#X connect 9 0 10 0;
-#X connect 10 0 28 0;
-#X connect 11 0 12 0;
-#X connect 12 0 13 0;
-#X connect 13 0 14 0;
-#X connect 14 0 15 0;
-#X connect 15 0 29 0;
-#X connect 16 0 17 0;
-#X connect 17 0 18 0;
-#X connect 18 0 30 0;
-#X connect 19 0 20 0;
-#X connect 20 0 21 0;
-#X connect 21 0 31 0;
-#X connect 22 0 23 0;
-#X connect 23 0 16 1;
-#X connect 24 0 25 0;
-#X connect 25 0 19 0;
-#X connect 26 0 27 0;
-#X connect 27 0 19 1;
-#X connect 28 0 46 0;
-#X connect 29 0 43 0;
-#X connect 29 0 47 1;
-#X connect 30 0 42 0;
-#X connect 30 0 50 1;
-#X connect 31 0 41 0;
-#X connect 31 0 52 1;
-#X connect 32 0 3 0;
-#X connect 32 1 4 0;
-#X connect 32 2 5 0;
-#X connect 32 3 6 0;
-#X connect 32 4 7 0;
-#X connect 33 0 34 0;
-#X connect 34 0 35 0;
-#X connect 35 0 36 0;
-#X connect 36 0 41 1;
-#X connect 36 0 54 1;
-#X connect 37 0 40 0;
-#X connect 38 0 39 0;
-#X connect 39 0 33 1;
-#X connect 40 0 33 0;
-#X connect 41 0 42 1;
-#X connect 42 0 43 1;
-#X connect 43 0 44 1;
-#X connect 44 0 45 1;
-#X connect 44 0 49 0;
-#X connect 45 0 1 0;
-#X connect 46 0 45 0;
-#X connect 46 1 44 0;
-#X connect 47 0 48 0;
-#X connect 48 0 2 0;
-#X connect 49 0 47 0;
-#X connect 49 0 50 0;
-#X connect 49 0 52 0;
-#X connect 49 0 54 0;
-#X connect 49 1 48 1;
-#X connect 49 1 51 1;
-#X connect 49 1 53 1;
-#X connect 49 1 55 1;
-#X connect 50 0 51 0;
-#X connect 51 0 57 0;
-#X connect 52 0 53 0;
-#X connect 53 0 56 0;
-#X connect 54 0 55 0;
-#X connect 55 0 58 0;
-#X restore 11 194 pd distance;
-#X obj 11 217 pack f f f f f;
-#X obj 11 266 outlet;
-#X msg 11 242 interp \$1 \$2 \$3 \$4 \$5;
-#X obj 11 50 unpack f f;
-#X obj 11 73 / 2;
-#X obj 72 72 / 2;
-#X obj 11 144 change;
-#X obj 72 144 change;
-#X connect 0 0 10 0;
-#X connect 1 0 2 0;
-#X connect 2 0 14 0;
-#X connect 3 0 4 0;
-#X connect 4 0 13 0;
-#X connect 5 0 6 0;
-#X connect 6 0 7 0;
-#X connect 6 1 7 1;
-#X connect 6 2 7 2;
-#X connect 6 3 7 3;
-#X connect 6 4 7 4;
-#X connect 7 0 9 0;
-#X connect 9 0 8 0;
-#X connect 10 0 11 0;
-#X connect 10 1 12 0;
-#X connect 11 0 3 0;
-#X connect 12 0 1 0;
-#X connect 13 0 5 0;
-#X connect 14 0 5 1;
-#X restore 200 616 pd interpol;
-#X obj 96 474 vsl 15 115 7 0 0 1 empty empty empty 0 -8 0 8 -262144
--1 -1 11400 1;
-#X obj 721 560 pbank 4 12 bushmeat.pbank synth;
-#X msg 106 627 recall \$1;
-#X text 47 455 interpolation beetween adjacent presets;
-#X text 171 563 complicated interpolation;
-#X obj 200 592 xy;
-#X text 229 590 <- click here;
-#X connect 0 0 1 0;
-#X connect 0 0 2 0;
-#X connect 1 0 4 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 4 0 5 0;
-#X connect 4 0 10 0;
-#X connect 5 0 6 0;
-#X connect 7 0 8 0;
-#X connect 8 0 9 0;
-#X connect 11 0 14 0;
-#X connect 12 0 13 0;
-#X connect 13 0 14 0;
-#X connect 14 0 34 0;
-#X connect 14 0 10 1;
-#X connect 15 0 16 0;
-#X connect 17 0 20 0;
-#X connect 18 0 19 0;
-#X connect 19 0 20 0;
-#X connect 20 0 35 0;
-#X connect 20 0 10 2;
-#X connect 21 0 22 0;
-#X connect 23 0 25 0;
-#X connect 23 0 24 0;
-#X connect 24 0 25 0;
-#X connect 25 0 36 0;
-#X connect 25 0 10 3;
-#X connect 26 0 27 0;
-#X connect 28 0 11 0;
-#X connect 28 0 12 0;
-#X connect 29 0 17 0;
-#X connect 29 0 18 0;
-#X connect 30 0 23 0;
-#X connect 31 0 26 0;
-#X connect 32 0 21 0;
-#X connect 33 0 15 0;
-#X connect 34 0 6 0;
-#X connect 35 0 6 0;
-#X connect 36 0 6 0;
-#X connect 37 0 71 0;
-#X connect 39 0 38 0;
-#X connect 40 0 43 0;
-#X connect 41 0 43 0;
-#X connect 42 0 41 0;
-#X connect 44 0 39 0;
-#X connect 44 0 54 0;
-#X connect 45 0 44 0;
-#X connect 48 0 51 0;
-#X connect 48 0 54 0;
-#X connect 49 0 48 0;
-#X connect 51 0 47 0;
-#X connect 56 0 10 0;
-#X connect 57 0 10 1;
-#X connect 58 0 10 2;
-#X connect 59 0 10 3;
-#X connect 60 0 61 0;
-#X connect 63 0 65 0;
-#X connect 64 0 44 1;
-#X connect 64 0 52 0;
-#X connect 64 0 48 1;
-#X connect 65 0 72 0;
-#X connect 67 0 66 0;
-#X connect 68 0 66 0;
-#X connect 69 0 62 0;
-#X connect 70 0 65 0;
-#X connect 72 0 62 0;
-#X connect 75 0 69 0;
-#X restore 1076 740 pd An_EXAMPLE;
-#X text -18 -12 pbank :;
-#X text 776 545 OUTLETS;
-#X text -15 691 "pdjimmies" lib. z. settel 2004;
-#X text 65 216 Arg4 is optional. If it is not specified \, Pbank's
-output will be sent out of its outlet. If arg4 is specified \, pbank's
-outlet will be inactive and output will be directed to a number of
-receive objects whose names are based on arg4 (receive symbol). For
-each column \, there is a corresponding receive whose name shitfuck
-includes the column number -see example below.;
-#X text 723 363 output edit buffer (share beetween diferents object
-with same pbank file);
-#X msg 705 429 interp 0 0.2 0.6 0.2;
-#X text 620 157 output row 2 (same as recall \, but does not compy
-to the edit buffer);
-#X text 712 336 copy edit buffer to row 3;
-#X text 692 273 recall (output) row 3 and copy it into edit buffer
-;
-#X text 746 401 read value from edit buffer (-1) at column 2;
-#X msg 696 399 2 -1;
-#X msg 640 299 recall 2.5;
-#X text 714 450 interpolation between presets : output = 0 * preset1
-+ 0.2 * preset2 + 0.6* preset3 + 0.2 * preset4;
-#X text 721 299 recalls interpolated values between adjacent rows:
-;
-#X text 725 312 output = (row 2 + row 3) * 0.5;
-#X text -14 708 "interp" method contributed by Cyrille Henry;
-#X text 1079 722 LOOK IN HERE;
-#X obj 383 652 pbank 4 12 glen;
-#X text -10 481 Creates a named pbank whose output is sent to receives
-based on the symbol "wireless". Since there are 4 columns \, pbank
-will be sending its output to 4 receives each one corresponding to
-the column number included in its name. This provides an alterative
-(and faster) way of getting data from a pbank.;
-#X msg 680 363 dump;
-#X msg 555 166 dump 2;
-#X msg 572 191 dump 2;
-#X text 625 190 same as above but outputs row as list thru outlet;
-#X connect 0 0 36 0;
-#X connect 1 0 36 0;
-#X connect 4 0 36 0;
-#X connect 6 0 36 0;
-#X connect 8 0 36 0;
-#X connect 9 0 36 0;
-#X connect 19 0 36 0;
-#X connect 20 0 36 0;
-#X connect 21 0 36 0;
-#X connect 24 0 36 0;
-#X connect 32 0 29 0;
-#X connect 32 1 30 0;
-#X connect 32 2 33 0;
-#X connect 32 3 34 0;
-#X connect 35 0 31 0;
-#X connect 35 0 32 0;
-#X connect 37 0 35 0;
-#X connect 41 0 42 0;
-#X connect 41 1 44 0;
-#X connect 41 2 46 0;
-#X connect 41 3 48 0;
-#X connect 42 0 43 0;
-#X connect 44 0 45 0;
-#X connect 46 0 47 0;
-#X connect 48 0 49 0;
-#X connect 50 0 85 0;
-#X connect 51 0 85 0;
-#X connect 52 0 53 0;
-#X connect 53 0 36 0;
-#X connect 54 0 55 0;
-#X connect 61 0 51 0;
-#X connect 62 0 56 0;
-#X connect 63 0 57 0;
-#X connect 64 0 58 0;
-#X connect 65 0 59 0;
-#X connect 73 0 36 0;
-#X connect 78 0 36 0;
-#X connect 79 0 36 0;
-#X connect 85 0 41 0;
-#X connect 87 0 36 0;
-#X connect 88 0 36 0;
-#X connect 89 0 36 0;
diff --git a/pbank/pbank.c b/pbank/pbank.c
deleted file mode 100755
index d391a66..0000000
--- a/pbank/pbank.c
+++ /dev/null
@@ -1,1368 +0,0 @@
-/* pbank - zack settel 1994 */
-// ported to PD - Zack Settel 2004 using the ISPW sources
-// note that the generated message receivers are of the format: "name-n" and not "n-name"(the way it was on the ISPW)
-/* features class-independent data structure see pbank.h */
-
-
-// Source code for this object derived from the original sources in the IRCAM Jimmies release (1994), with the authorization of IRCAM. This object is part of the nSLAM release, developed by La SAT. nSLAM is also available on the IRCAM Forum site (http://forum.ircam.fr), as an incentive to PD users to join and contribute to Forum IRCAM"
-
-
-// multi row interpolation method provided by cyrille.henry@la-kitchen.fr
-
-/*
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the
-Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.
-
-Based on PureData by Miller Puckette and others.
-*/
-
-// Zack Maintenance: march 06
-// fixed recallf method: index bounded now.
-// fixed pbank_saveto: fixed bug when full path is specified.
-
-
-#include "m_pd.h"
-#include <stdio.h>
-#include <string.h>
-
-
-#include "pbank.h"
-#include "common.h"
-
-#define VERSION "pbank/pd v1.11 z.s. 2006"
-#define NIL 0L
-#define MAX_COLUMNS 2048
-#define DEFAULT_COLUMNS 10
-#define DEFAULT_ROWS 32
-#define MAX_ROWS 256 - EDBUFF
-#define PBANK_ID_STRING "theFucKinGPbanKIdeNtifacATioNStrinGGGG"
-
-#define EDBUFF 1 /* edbuffer at rows + 1 */
-#define DIRTFLAG 1 /* dirty flag kept at rows + 2 */
-
-#define GETROW(X,R)(((X)->p_data[(R)]))
-#define GET_EDBUFF(X)(((X)->p_data[((X)->p_rows)]))
-#define CR 13
-#define TAB 9
-
-
-
-typedef struct pbank
-{
- t_object p_ob;
- t_atom **p_data; /* param matrix : data[PATCH_COUNT] X *data+PARAMCOUNT */
- t_symbol **p_receives; /* used for back door messaging */
- t_symbol *p_name; /* pbank data/file name <optional> */
- t_atom **p_dirty; /* points to extra cell in matrix used for dirty flag */
- t_symbol *p_vol; /* default volume */
- int p_curpatch;
- int p_columns;
- int p_rows;
- t_canvas *x_canvas;
-
-} t_pbank;
-
-t_atom pbank_outlist[3]; /* used by list method for output */
-
-void *pbank_new(t_symbol *s, int argc, t_atom *argv);
-void pbank_bang(t_pbank *x);
-void pbank_dispose(t_pbank *x);
-void pbank_list(t_pbank *x, t_symbol *s, int argc, t_atom *argv);
-void pbank_recall(t_pbank *x,t_float row);
-void pbank_recallf(t_pbank *x,t_float row);
-void pbank_dump(t_pbank *x, t_symbol *s, int argc, t_atom *argv);
-void pbank_store(t_pbank *x,t_float row);
-void pbank_set(t_pbank *x, t_symbol *s, int argc, t_atom *argv);
-void pbank_put(t_pbank *x, t_symbol *s, int argc, t_atom *argv);
-void pbank_interp(t_pbank *x, t_symbol *s, int argc, t_atom *argv);
-void pbank_write(t_pbank *x, t_symbol *name);
-void pbank_tobinbuf(t_pbank *x,void *b);
-void pbank_read(t_pbank *x, t_symbol *fname);
-void pbank_saveto(t_pbank *x,char *fn);
-void pbank_db(t_pbank *x,t_float c,t_float r);
-void pbank_setup(void);
-int pbank_fromtext(t_pbank *x,void *b);
-
-t_atom **pbank_getmem(t_symbol *name,int columns,int rows);
-
-t_symbol *z_list, *z_float, *z_symbol, *z_receive; // *z_int,
-
-#define EMPTYSTRING ""
-
-/* class variables */
-
-t_shared *pbank_banks = NIL; /* linked list of shared data-matrixs */
-t_symbol *pbank_ID;
-
-t_atom *pbank_clipboard; /* NOT IMPLEMENTED points to edbuff of "copied" pbank */
-/* clipboard needed ???? */
-
-/* ************************************************************ */
-
-
-void pbank_db(t_pbank *x, t_float c_float, t_float r_float)
-{
- t_atom *a;
- long c = (long) c_float;
- long r = (long) r_float;
-
- *x->p_dirty = (c) ? (t_atom *)1:NIL;
-
-
- post("p_dirty at %lx",x->p_dirty);
- post("plus %ld addr = %lx",r,x->p_data+r);
-
- a = GETROW(x,r);
-}
-
-
-
-void pbank_bang(t_pbank *x)
-{
-
- t_shared *piss = NIL;
-
- post(":DIRTY FLAS = %ld at %lx",*x->p_dirty,x->p_dirty);
- return;
-
- piss = pbank_banks; /* maintain list of instance memories */
- while(piss)
- {
- post("->%s at %lx",piss->s_sym->s_name,piss);
- post(" next->%lx",piss->s_next);
- piss = piss->s_next;
- }
-}
- /* write item to matrix at given column,row address */
- /* message: column row thing1......thingN */
-void pbank_set(t_pbank *x, t_symbol *s, int ac, t_atom *argv)
-{
- t_atom *shit;
- int column,row;
-
- if (ac < 3)
- {
- post("ac=%d",ac);
- error("pbank_set: takes at least 3 arguments: column row item(s)");
- return;
- }
- if ((argv)->a_type != A_FLOAT || (argv+1)->a_type != A_FLOAT)
- {
- error("pbank_set: first arguments must of type float (columnNo. or rowNo.)");
- return;
- }
-
- if ((column = (int)(argv)->a_w.w_float) < 0) column = 0;
- else if (column >= x->p_columns) column = x->p_columns-1;
-
- if ((row = (int)(argv+1)->a_w.w_float) < 0) row = 0;
- else if (row >= x->p_rows) row = x->p_rows-1;
-
- shit = GETROW(x,row);
-
- ac -=2; /* get data */
- argv +=2;
- while (ac-- && (column < x->p_columns))
- {
- if ((argv)->a_type != A_FLOAT && (argv)->a_type != A_SYMBOL && (argv)->a_type != A_FLOAT)
- {
- error("pbank_set: argument no %d must be afloat or symbol",ac+1);
- return;
- }
- *(shit+column++) = *argv++;
- }
- *x->p_dirty = (t_atom *)1; /* set dirty flag */
-
-}
-
- /* same as set but writes to the edirt buffer: 'put' column thing1......thingN */
-void pbank_put(t_pbank *x, t_symbol *s, int ac, t_atom *argv)
-{
- t_atom *shit;
- int column;
-
- if (ac < 2)
- {
- post("ac=%d",ac);
- error("pbank_put: takes at least 2 arguments: column item(s)");
- return;
- }
- if ((argv)->a_type != A_FLOAT)
- {
- error("pbank_put: first argument must a number (columnNo.)");
- return;
- }
- if ((column = (int)(argv)->a_w.w_float) < 0) column = 0;
- else if (column >= x->p_columns) column = x->p_columns-1;
-
- shit = GET_EDBUFF(x);
-
- ac --; /* get data */
- argv ++;
- while (ac-- && (column < x->p_columns))
- {
- if ((argv)->a_type != A_FLOAT && (argv)->a_type != A_SYMBOL && (argv)->a_type != A_FLOAT)
- {
- error("pbank_put: argument no %d must be a float or symbol",ac);
- return;
- }
- *(shit+column++) = *argv++;
- }
-}
-
-
-
-void pbank_recall(t_pbank *x, t_float row_float) /* dumps (outputs) and copies row to edbuffer */
-{
-
- int z,ac;
- t_atom *av,*ebuff;
- long row = (long) row_float;
- float indexf = (float) row_float;
-
- if (row < 0) row = 0L;
- else if (row > x->p_rows-1) row = (long)x->p_rows-1;
-
- if (indexf < 0) indexf = 0L;
- else if (indexf > x->p_rows-1) indexf = (float)x->p_rows-1;
-
-
- if (indexf - row)
- {
- pbank_recallf(x, (t_float) indexf);
- return;
- }
-
- av = GETROW(x,row);
- ebuff = GET_EDBUFF(x);
-
- if (x->p_receives) /* back-door sending??? */
- {
- t_symbol *type;
- ebuff += x->p_columns-1;
- av += x->p_columns-1;
-
- for (z=x->p_columns-1;z>-1;z--,ebuff--,av--)
- {
- *ebuff = *av;
- if (x->p_receives[z]->s_thing)
- {
- ac=1;
- if (ebuff->a_type == A_FLOAT) type = z_float;
- // else if (ebuff->a_type == A_LONG) type = z_int;
- else if (ebuff->a_type == A_SYMBOL) type = z_symbol;
- else
- {
- error("pbank_list: 3rd element must be a float or sym.");
- goto exit;
- }
- typedmess(x->p_receives[z]->s_thing, type,ac, ebuff);
- }
- }
- }
- else /* otherwise use outlet */
- for (z=0;z<x->p_columns;z++,av++,ebuff++)
- {
- *ebuff = *av;
- pbank_outlist->a_w.w_float = (float)z;
- (pbank_outlist+1)->a_type = ebuff->a_type;
- if (ebuff->a_type == A_SYMBOL)
- {
- (pbank_outlist+1)->a_w.w_symbol = z_symbol;
- (pbank_outlist+2)->a_type = A_SYMBOL;
- (pbank_outlist+2)->a_w = ebuff->a_w;
- outlet_list(x->p_ob.ob_outlet,0L,3, pbank_outlist);
- }
- else
- {
- (pbank_outlist+1)->a_w = ebuff->a_w;
- outlet_list(x->p_ob.ob_outlet,0L,2, pbank_outlist);
- }
- }
-exit:
- return;
-}
-
-
-void pbank_recallf(t_pbank *x, t_float row_float) /* interpol, dumps (outputs) and copies row to edbuffer */
-{
- int u, v, z, ac;
- t_atom *av,*avplus1, *ebuff;
-
-
- // no need to range check, since that's done by caller method
-
- // float indexf = (float) row_float;
- float interpfac;
-
- u=(int)row_float;
-
- interpfac = (float) (row_float - u);
-
- av = GETROW(x,u);
- av += x->p_columns-1;
-
- avplus1 = GETROW(x,u+1);
- avplus1 += x->p_columns-1;
-
-
-
- ebuff = GET_EDBUFF(x);
-
- ebuff += x->p_columns-1;
-
-
- // for (v=x->p_columns-1;v>-1;v--,ebuff--)
- // {
- // SETFLOAT(ebuff, 0); //clear edit buffer
- //}
-
- ebuff = GET_EDBUFF(x);
- ebuff += x->p_columns-1;
-
- for (v=x->p_columns-1;v>-1;v--,ebuff--,av--,avplus1--)
- {
- if (ebuff->a_type == A_FLOAT && av->a_type == A_FLOAT && avplus1->a_type == A_FLOAT)
- SETFLOAT(ebuff, (t_float)(av->a_w.w_float * (1 - interpfac) + avplus1->a_w.w_float * interpfac));
- else if (ebuff->a_type == A_SYMBOL)
- {
- if (interpfac <.5) SETSYMBOL(ebuff, av->a_w.w_symbol);
- else SETSYMBOL(ebuff, avplus1->a_w.w_symbol);
- }
- else error("pbank: bug found in recallf method");
- }
-
-#ifdef why_is_this_here_sheefa
-
- if ((int)indexf!=indexf)
- {
- u++;
-
- av = GETROW(x,u);
- av += x->p_columns-1;
-
- ebuff = GET_EDBUFF(x);
- ebuff += x->p_columns-1;
-
- for (v=x->p_columns-1;v>-1;v--,ebuff--,av--)
- {
- if (ebuff->a_type == A_FLOAT && av->a_type == A_FLOAT)
- SETFLOAT(ebuff, ebuff->a_w.w_float + av->a_w.w_float * (indexf - u +1)); else if (ebuff->a_type == A_SYMBOL)
- SETSYMBOL(ebuff, av->a_w.w_symbol);
- else error("pbank: bug found in recallf method");
- }
- }
-
-#endif
-
- if (x->p_receives) /* back-door sending??? */
- {
- t_symbol *type;
-
- ebuff = GET_EDBUFF(x);
- ebuff += x->p_columns-1;
-
- for (z=x->p_columns-1;z>-1;z--,ebuff--,av--)
- {
-
- if (x->p_receives[z]->s_thing)
- {
- ac=1;
- if (ebuff->a_type == A_FLOAT) type = z_float;
- // else if (ebuff->a_type == A_LONG) type = z_int;
- else
- if (ebuff->a_type == A_SYMBOL) type = z_symbol;
- else
- {
- error("pbank_list: 3rd element must be a float or sym.");
- goto exit;
- }
- typedmess(x->p_receives[z]->s_thing, type,ac, ebuff);
- }
- }
- }
- else /* otherwise use outlet */
- {
- ebuff = GET_EDBUFF(x);
-
- for (z=0;z<x->p_columns;z++,ebuff++)
- {
- pbank_outlist->a_w.w_float = (float)z;
- (pbank_outlist+1)->a_type = ebuff->a_type;
- if (ebuff->a_type == A_SYMBOL)
- {
- (pbank_outlist+1)->a_w.w_symbol = z_symbol;
- (pbank_outlist+2)->a_type = A_SYMBOL;
- (pbank_outlist+2)->a_w = ebuff->a_w;
- outlet_list(x->p_ob.ob_outlet,0L,3, pbank_outlist);
- }
- else
- {
- (pbank_outlist+1)->a_w = ebuff->a_w;
- outlet_list(x->p_ob.ob_outlet,0L,2, pbank_outlist);
- }
- }
- }
-exit:
- return;
-
-}
-
-
-void pbank_interp(t_pbank *x, t_symbol *s, int argc, t_atom *argv)
-/* interpol, dumps (outputs) and copies row to edbuffer */
-{
-
- int u, v, z, ac;
- t_atom *av,*ebuff;
-
- ebuff = GET_EDBUFF(x);
- ebuff += x->p_columns-1;
-
- for (v=x->p_columns-1;v>-1;v--,ebuff--)
- {
- SETFLOAT(ebuff, 0); //clear edit buffer
- }
- for (u=argc-1;u>-1;u--)
- {
- av = GETROW(x,u);
- av += x->p_columns-1;
-
- ebuff = GET_EDBUFF(x);
- ebuff += x->p_columns-1;
-
- for (v=x->p_columns-1;v>-1;v--,ebuff--,av--)
- {
- if (ebuff->a_type == A_FLOAT && av->a_type == A_FLOAT)
- SETFLOAT(ebuff, ebuff->a_w.w_float + av->a_w.w_float * atom_getfloatarg(u, argc, argv) ); //add value of each columns and row
- else
- SETSYMBOL(ebuff, gensym("null"));
- }
- }
-
- if (x->p_receives) /* back-door sending??? */
- {
- t_symbol *type;
-
- ebuff = GET_EDBUFF(x);
- ebuff += x->p_columns-1;
-
- for (z=x->p_columns-1;z>-1;z--,ebuff--,av--)
- {
-
- if (x->p_receives[z]->s_thing)
- {
- ac=1;
- if (ebuff->a_type == A_FLOAT) type = z_float;
- // else if (ebuff->a_type == A_LONG) type = z_int;
- else
- if (ebuff->a_type == A_SYMBOL) type = z_symbol;
- else
- {
- error("pbank_list: 3rd element must be a float or sym.");
- goto exit;
- }
- typedmess(x->p_receives[z]->s_thing, type,ac, ebuff);
- }
- }
- }
- else /* otherwise use outlet */
- {
- ebuff = GET_EDBUFF(x);
-
- for (z=0;z<x->p_columns;z++,ebuff++)
-
- {
- pbank_outlist->a_w.w_float = (float)z;
- (pbank_outlist+1)->a_type = ebuff->a_type;
- if (ebuff->a_type == A_SYMBOL)
- {
- (pbank_outlist+1)->a_w.w_symbol = z_symbol;
- (pbank_outlist+2)->a_type = A_SYMBOL;
- (pbank_outlist+2)->a_w = ebuff->a_w;
- outlet_list(x->p_ob.ob_outlet,0L,3, pbank_outlist);
- }
- else
- {
- (pbank_outlist+1)->a_w = ebuff->a_w;
- outlet_list(x->p_ob.ob_outlet,0L,2, pbank_outlist);
- }
-
- }
- }
-
-exit:
- return;
-}
-
-// 'dump' dumps edit buff, 'dump n' dumps memory n, 'dump n l' dumps row n as one single list
-void pbank_dump(t_pbank *x, t_symbol *s, int argc, t_atom *argv) /* dumps (outputs) ediuffer or row */
-{
-
- int z,ac, row;
- t_atom *ebuff;
-
- if (argc==0)
- {
- ebuff = GET_EDBUFF(x);
- if (x->p_receives) /* back-door sending??? */
- {
- t_symbol *type;
- ebuff += x->p_columns-1;
-
- for (z=x->p_columns-1;z>-1;z--,ebuff--)
- {
- if (x->p_receives[z]->s_thing)
- {
- ac=1;
- if (ebuff->a_type == A_FLOAT) type = z_float;
- // else if (ebuff->a_type == A_LONG) type = z_int;
- else if (ebuff->a_type == A_SYMBOL) type = z_symbol;
- else
- {
- error("pbank_list: 3rd element must be a float or sym.");
- goto exit;
- }
- typedmess(x->p_receives[z]->s_thing, type,ac, ebuff);
- }
- }
- }
- else /* otherwise use outlet */
- for (z=0;z<x->p_columns;z++,ebuff++)
- {
- pbank_outlist->a_w.w_float = (float)z;
- (pbank_outlist+1)->a_type = ebuff->a_type;
- if (ebuff->a_type == A_SYMBOL)
- {
- (pbank_outlist+1)->a_w.w_symbol = z_symbol;
- (pbank_outlist+2)->a_type = A_SYMBOL;
- (pbank_outlist+2)->a_w = ebuff->a_w;
- outlet_list(x->p_ob.ob_outlet,0L,3, pbank_outlist);
- }
- else
- {
- (pbank_outlist+1)->a_w = ebuff->a_w;
- outlet_list(x->p_ob.ob_outlet,0L,2, pbank_outlist);
- }
- }
- }
-
- else
- {
- if ((row = (int)(argv)->a_w.w_float) < 0) row = 0;
- else if (row >= x->p_rows) row = x->p_rows-1;
-
- ebuff = GETROW(x, row);
-
- if (x->p_receives) /* back-door sending??? */
- {
- t_symbol *type;
- ebuff += x->p_columns-1;
-
- for (z=x->p_columns-1;z>-1;z--,ebuff--)
- {
- if (x->p_receives[z]->s_thing)
- {
- ac=1;
- if (ebuff->a_type == A_FLOAT) type = z_float;
- // else if (ebuff->a_type == A_LONG) type = z_int;
- else if (ebuff->a_type == A_SYMBOL) type = z_symbol;
- else
- {
- error("pbank_list: 3rd element must be a float or sym.");
- goto exit;
- }
- typedmess(x->p_receives[z]->s_thing, type,ac, ebuff);
- }
- }
- }
- else /* otherwise use outlet */
- {
- if(argc>1) // dump as single list
- outlet_list(x->p_ob.ob_outlet,0L,x->p_columns, ebuff);
- else
- {
- for (z=0;z<x->p_columns;z++,ebuff++)
- {
- pbank_outlist->a_w.w_float = (float)z;
- (pbank_outlist+1)->a_type = ebuff->a_type;
- if (ebuff->a_type == A_SYMBOL)
- {
- (pbank_outlist+1)->a_w.w_symbol = z_symbol;
- (pbank_outlist+2)->a_type = A_SYMBOL;
- (pbank_outlist+2)->a_w = ebuff->a_w;
- outlet_list(x->p_ob.ob_outlet,0L,3, pbank_outlist);
- }
- else
- {
- (pbank_outlist+1)->a_w = ebuff->a_w;
- outlet_list(x->p_ob.ob_outlet,0L,2, pbank_outlist);
- }
- }
- }
- }
- }
-exit:
- return;
-}
-
-
-void pbank_store(t_pbank *x, t_float row_float) /* copies edbuffer to row */
-{
- t_atom *av,*ebuff;
- int z;
- long row = (long) row_float;
-
- if (row < 0) row = 0L;
- else if (row >= x->p_rows) row = (long)x->p_rows-1;
-
- av = GETROW(x,row);
- ebuff = GET_EDBUFF(x);
- for (z=0;z<x->p_columns;z++,av++,ebuff++)
- {
- *av = *ebuff;
- }
- *x->p_dirty = (t_atom *)1; /* set dirty flag */
-}
-
-
-/* eg 'list COLUMN ROW <optional> VALUE' - argc=2 is read, arg=3 is write */
-
-void pbank_list(t_pbank *x, t_symbol *s, int argc, t_atom *argv)
-{
-
- t_atom *av;
- int ac,column,row;
-
- if ((argc != 2) && (argc != 3))
- {
- error("pbank_list: less than 2, or more than 3 elements in list");
- goto exit;
- }
-
-
- if (((argv)->a_type != A_FLOAT) || ((argv+1)->a_type != A_FLOAT))
- {
- error("pbank_list: first two elements must be numbers");
- goto exit;
- }
- if ((column = (int)(argv)->a_w.w_float) < 0) column = 0;
- else if (column >= x->p_columns) column = x->p_columns-1;
-
- if ((row = (int)(argv+1)->a_w.w_float) < -1) row = -1;
- else if (row >= x->p_rows) row = x->p_rows-1;
-
-
- if (row == -1)
- {
- av = GET_EDBUFF(x);
- }
- else
- {
- av = GETROW(x,row);
- }
-
- av += column;
- ac = 1;
-
- if (argc == 2) /* read */
- {
- if (x->p_receives)
- {
- if (x->p_receives[column]->s_thing)
- {
- t_symbol *type;
- if (av->a_type == A_FLOAT) type = z_float;
- // else if (av->a_type == A_LONG) type = z_int;
- else if (av->a_type == A_SYMBOL) type = z_symbol;
- else
- {
- error("pbank_list: 3rd element must be a float or sym.");
- goto exit;
- }
- typedmess(x->p_receives[column]->s_thing, type,ac, av);
- }
- }
- else
- {
- pbank_outlist->a_w.w_float = (t_float)column;
- (pbank_outlist+1)->a_type = av->a_type;
- if (av->a_type == A_SYMBOL)
- {
- (pbank_outlist+1)->a_w.w_symbol = z_symbol;
- (pbank_outlist+2)->a_type = A_SYMBOL;
- (pbank_outlist+2)->a_w = av->a_w;
- outlet_list(x->p_ob.ob_outlet,0L,3, pbank_outlist);
- }
- else
- {
- (pbank_outlist+1)->a_w = av->a_w;
- outlet_list(x->p_ob.ob_outlet,0L,2, pbank_outlist);
- }
- }
-
- }
- else /* write */
- {
- switch ((argv+2)->a_type)
- {
-
- case A_FLOAT:
- SETFLOAT(av,(argv+2)->a_w.w_float);
- break;
- /* case A_LONG:
- SETLONG(av,(argv+2)->a_w.w_long);
- break;
- */
- case A_SYMBOL:
- SETSYMBOL(av,(argv+2)->a_w.w_symbol);
- break;
- default:
- error("pbank_list: 3rd element must be a float or sym.");
- goto exit;
- }
- *x->p_dirty = (t_atom *)1; /* set dirty flag */
- }
-exit:
- return;
-
-}
-
-int pbank_fromtext(t_pbank *x,void *b)
-{
- t_atom *av;
- int z,atype;
- int columnpos = 0,columns = 0;
- int rowpos = 0, rows = 0;
- long items = 0;
- int argc = binbuf_getnatom(b),count = 0;
-
- t_atom *ap = binbuf_getvec(b);
-
-
- /* get pbank symbol */
- if (ap->a_type != A_SYMBOL || ap->a_w.w_symbol != gensym("pbank"))
- {
- error("pbank_fromtext: bad file format: item one must be the symbol 'pbank");
- goto error;
- }
-
- for (z=0;z<2;z++)
- {
- ap++, count++;
-
- // binbuf_getatom(b,&p1,&p2,&at); /* get columns and rows */
- if (ap->a_type != A_FLOAT)
- {
- error("pbank_fromtext: bad file format: item two and three must be COLUMNcount and ROWcount");
- goto error;
- }
- if (z==0) columns = (int)ap->a_w.w_float;
- else rows = (int)ap->a_w.w_float;
- }
-
- if (columns < 1 || rows < 1)
- {
- error("pbank_fromtext: bad value(s) for item two and/or three (COLUMNcount and/or ROWcount)");
- goto error;
- }
- if (columns != x->p_columns)
- {
- error("pbank_fromtext: bad file format: wrong no. of columns (%d) in file", columns);
- goto error;
- }
-
- /* get comma */
- ap++, count++;
- if (ap->a_type != A_COMMA)
- {
- error("pbank_fromtext: bad file format: comma expected after third item");
- goto error;
- }
-
-
-
- av = GETROW(x,rowpos);
-
- // post("pbank_fromtext: columns %d rows %d",columns,rows);
-
- while (count < argc)
- {
-
-
- if (rowpos > x->p_rows) // safety check- remove later
- {
- bug("pbank_fromtext: rowpos=%d x->p_rows=%d items=%d argc=%d",rowpos,x->p_rows,count,argc);
- error("pbank_fromtext: rowpos greater than x->p_rows: aborting");
- goto error;
- }
-
-
-
- ap++, count++; // get next atom
- atype = ap->a_type;
-
- if (atype == A_NULL)
- {
- if (count == argc) goto done;
- else
- {
- error("pbank_fromtext: unexpected A_NULL type read at position %d: aborting", count);
- goto error;
- }
- }
-
-
- if (columnpos >= x->p_columns) goto skipit;
-
-
-
- if (atype==A_FLOAT || atype==A_SYMBOL)
- {
- av[columnpos] = *ap; /* write atom to matrix */
- items++;
- }
-
- else if (atype==A_COMMA) /* new line */
- {
- if (columnpos)
- post("pbank_fromtext: warning: unexpected comma found in column %d row %d", columnpos,rowpos);
- goto skipit;
- }
- else
- {
- // post("ATYPE = %d", atype);
- post("pbank_fromtext: warning: strange token found in at column %d, row %d of file", columnpos,rowpos);
- goto ignore;
- }
-skipit: /* ignore any data that lies outside of X's dimensions */
- if (atype!=A_COMMA)
- columnpos++;
- if (columnpos == columns)
- {
- columnpos = 0;
- rowpos++;
- av = GETROW(x,rowpos);
- }
-ignore:;
- }
-done:
- return(items);
-error:
- return(0);
-}
-
-
-void pbank_fromfile(t_pbank *x,char *name, int type, int silentFlag) // filename with or without path
-{
- void *b;
- int errorf, itemcount;
- char nilbuf[1];
-
- nilbuf[0] = 0;
-
-
- b = binbuf_new();
- // errorf = binbuf_read(b, name, vol, type);
-
- if (*name != '/' && *name != '~') // file name is not an absolute path
- errorf = binbuf_read(b, name, canvas_getdir(x->x_canvas)->s_name, type);
- else
- errorf = binbuf_read(b, name, nilbuf, type);
-
-
- if (errorf)
- {
- if (!silentFlag) post("warning: pbank_fromfile:%s not found",name); // not error, since filename may be used only as symbol for pbanks sharing memory
- }
- else
- {
- itemcount = pbank_fromtext(x,b);
- post("pbank_fromfile: %d items read from file %s",itemcount, name);
- *x->p_dirty = NIL;
- }
- binbuf_free(b);
-}
-
-
-#define TEXT 0
-#define BINARY 1
-
-void pbank_read(t_pbank *x, t_symbol *fname)
-{
- /* if (!open_dialog(name, &vol, &type, types, 1)) */
- pbank_fromfile(x,fname->s_name,TEXT,0);
-}
-
-
- /* format for file <float type> <symbol *pname> <float p1 p2 p3 p4..p10> A_COMMA.... */
-void pbank_tobinbuf(t_pbank *x,void *b)
-{
- t_atom at,*av;
- t_symbol *s;
- char shit[256];
- int z,i;
-
- sprintf(shit,"\n");
- s = gensym("");
-
- SETSYMBOL(&at,gensym("pbank")); /* write class name */
- binbuf_add(b,1,&at);
-
- SETFLOAT(&at,(t_float) x->p_columns); /* write column count */
- binbuf_add(b,1,&at);
-
- SETFLOAT(&at,(t_float) x->p_rows); /* write row count */
- binbuf_add(b,1,&at);
-
- SETCOMMA(&at); /* write comma */
- binbuf_add(b,1,&at);
-
- SETSYMBOL(&at,gensym(shit)); /* write CR */
- binbuf_add(b,1,&at);
-
-
- for (z=0;z<x->p_rows;z++) /* write params to binbuf */
- {
- av = GETROW(x,z);
- for (i=0;i<x->p_columns;i++,av++)
- {
-
-/* if (av->a_type == A_FLOAT)
- {
- post("A_FLOAT"); postfloat(av->a_w.w_float);
- }
-
- // else if (av->a_type == A_LONG) post("A_LONG %ld", av->a_w.w_long);
-
- else if (av->a_type == A_SYMBOL) post("A_SYMBOL %s", av->a_w.w_symbol->s_name);
-*/
- binbuf_add(b,1,av); /* write atom */
- }
- SETCOMMA(&at); /* rows seperated by comma */
- binbuf_add(b,1,&at);
- SETSYMBOL(&at,gensym(shit)); /* write CR */
- binbuf_add(b,1,&at);
-
- }
-}
-
-void pbank_write(t_pbank *x, t_symbol *name)
-{
- char fn[256];
-
- sprintf(fn,"%s", name->s_name);
-
- /* def volume shit here */
-
- pbank_saveto(x,fn);
-}
-
-void pbank_saveto(t_pbank *x,char *fn)
-{
- int errorf = 0;
- char nilbuf[1];
- void *b = binbuf_new();
-
-
- pbank_tobinbuf(x,b);
-
- nilbuf[0]= 0; // nilbuf[1]= 0; bug fixed: zk-03/06
-
- if (*fn != '/' && *fn != '~') // file name is not an absolute path
- errorf = binbuf_write(b, fn, canvas_getdir(x->x_canvas)->s_name, TEXT); /* save as TEXT */
- else
- errorf = binbuf_write(b, fn, nilbuf, TEXT); /* save as TEXT */
-
- binbuf_free(b);
-
- if (errorf)
- error("pbank_saveto: couldn't write %s", fn);
- else
- {
- *x->p_dirty = NIL;
- post("pbank_write:wrote file %s",fn);
- }
-}
-
-void pbank_dispose(t_pbank *x)
-{
- int z;
-
- t_shared *prePiss = NIL;
- t_shared *piss = NIL;
-
- if (*x->p_dirty)
- {
- /* need a save dialog here */
- post("unsaved data");
- }
-
- prePiss = piss = pbank_banks; /* maintain list of instance memories */
- if (x->p_name)
- {
- while(piss)
- {
-
- /* post("->%s at %lx",piss->s_sym->s_name,piss);
- post(" next->%lx",piss->s_next); */
-
- if ((t_symbol *)piss->s_sym == x->p_name) break;
-
- prePiss = piss;
- piss = piss->s_next;
- }
- if (!piss)
- {
- error("pbank_dispose: bug found- can't find symbol");
- goto skip;
- }
- /* post("found %s", piss->s_sym->s_name); */
-
- piss->s_refcount--;
- if (piss->s_refcount)
- {
- /* post("%s refcount = %d",piss->s_sym->s_name, piss->s_refcount); */
- goto skip; /* things still pointing to data- don't dispose */
- }
-
- piss->s_sym->s_thing = (void *) 0L; /* clear symbol to no longer point to this class */
-
- if (!piss->s_next) /* last element in list */
- {
- if (piss == pbank_banks) /* first element in list of only one element*/
- {
- /* post("°°°°°° unique element in list"); */
- freebytes(piss, (int)sizeof(t_shared));
- pbank_banks = NIL;
- }
- else /* last element in list - snip it */
- {
- if (!prePiss)
- {
- error("bug found in pbank_dispose (prePiss)");
- goto skip;
- }
- /* post("°°°°°° last element in list"); */
- prePiss->s_next = NIL;
- freebytes(piss, (int)sizeof(t_shared));
- }
- }
- else if (piss == pbank_banks) /* first element in list of at least two elements */
- {
- /* post("°°°°°° first element in list"); */
- pbank_banks = piss->s_next;
- freebytes(piss, (int)sizeof(t_shared));
- }
- else /* element with adjacent elements */
- {
- if (!prePiss)
- {
- error("bug found in pbank_dispose (prePiss)");
- goto skip;
- }
- /* post("°°°°°° embedded element in list"); */
- prePiss->s_next = piss->s_next;
- freebytes(piss, (int)sizeof(t_shared));
- }
-
- }
-
- for (z=0;z<x->p_rows+EDBUFF;z++)
- {
- freebytes((void *)x->p_data[z], (int)sizeof(t_atom)*x->p_columns);
- }
-
- freebytes((void *)x->p_data,(int)sizeof(t_atom *)*(x->p_rows+EDBUFF+DIRTFLAG));
-
-skip:
- if (x->p_receives)
- freebytes((void *)x->p_receives, (int)sizeof(t_symbol *)*x->p_columns);
-
-}
-
-
-
-t_class *pbank_class;
-
-void pbank_setup(void)
-{
- pbank_class = class_new(gensym("pbank"), (t_newmethod) pbank_new, (t_method) pbank_dispose, sizeof(t_pbank), 0, A_GIMME,0);
- class_addbang(pbank_class, (t_method) pbank_bang);
- class_addlist(pbank_class, (t_method) pbank_list);
- class_addmethod(pbank_class, (t_method) pbank_put, gensym("put"),A_GIMME,0);
- class_addmethod(pbank_class, (t_method) pbank_db, gensym("db"), A_FLOAT,A_FLOAT, 0);
- class_addmethod(pbank_class, (t_method) pbank_recall, gensym("recall"), A_FLOAT,0);
- // class_addmethod(pbank_class, (t_method) pbank_recallf, gensym("recallf"), A_FLOAT,0);
- class_addmethod(pbank_class, (t_method) pbank_dump, gensym("dump"),A_GIMME,0);
- class_addmethod(pbank_class, (t_method) pbank_store, gensym("store"), A_FLOAT,0);
- class_addmethod(pbank_class, (t_method) pbank_write, gensym("write"), A_SYMBOL,0);
- class_addmethod(pbank_class, (t_method) pbank_read, gensym("read"), A_SYMBOL,0);
- class_addmethod(pbank_class, (t_method) pbank_interp, gensym("interp"), A_GIMME,0);
- class_addmethod(pbank_class, (t_method) pbank_set, gensym("set"),A_GIMME,0);
-
-
- pbank_outlist->a_type = A_FLOAT;
-
- z_list = gensym("list");
- z_float = gensym("float");
- // z_int = gensym("int");
- z_symbol = gensym("symbol");
- z_receive = gensym("receive");
- pbank_ID = gensym(PBANK_ID_STRING);
- pbank_ID->s_thing = (void *)pbank_ID;
-
- post("%s", VERSION);
-}
-
-
-/* columns rows memory-name receiveName<optional> */
-/* note: memory-name is optional when no receiveName argument is specified */
-void *pbank_new(t_symbol *s, int argc, t_atom *argv)
-{
- int z=0;
- char *shit;
- char piss[256];
-
- t_pbank *x = (t_pbank *)pd_new(pbank_class);
-
- x->p_name = NIL;
- x->p_receives = NIL;
- x->x_canvas = canvas_getcurrent();
-
- // x->p_vol = getdefvolume();
-
- if (!InRange(argc,2,4))
- {
- error("pbank_new: bad arg count - takes: colums rows fname <opt symbol> sendname");
- goto err;
- }
-
-
-
-
- if (((argv)->a_type != A_FLOAT) || ((argv+1)->a_type != A_FLOAT))
- {
- error("pbank_new: first two elements must be numbers");
- goto err;
- }
-
-
-// if ((argv)->a_w.w_float < 1 || (argv+1)->a_w.w_float < 1)
-// {
-// error("pbank_new: first or second argument less than 1, can't continue");
-// goto err;
-// }
-
- if (!InRange((argv)->a_w.w_float, 1,MAX_COLUMNS-1))
- {
- x->p_columns = DEFAULT_COLUMNS;
- post("pbank_new: warning: columns argument out of range, setting to %d",x->p_columns);
- }
- else x->p_columns = (int)(argv)->a_w.w_float;
-
- if (!InRange((argv+1)->a_w.w_float, 1,MAX_ROWS-1))
- {
- x->p_rows = DEFAULT_ROWS;
- post("pbank_new: warning: rows argument out of range, setting to %d",x->p_rows);
- }
- else x->p_rows = (int)(argv+1)->a_w.w_float;
-
-
-
- if (argc == 2) x->p_name = NIL;
- else
- {
- if ((argv+2)->a_type != A_SYMBOL)
- {
- error("pbank_new: bad third arg: needs to be a symbol (or empty string %s)",gensym("")->s_name);
- goto err;
- }
- shit = (argv+2)->a_w.w_symbol->s_name;
- /* is it a crosshatch or un-defined ("") ? */
- x->p_name = ((shit[0] == '#') || (shit[0] == '"' && shit[1] == '"')) ? NIL:gensym(shit);
- }
-
-
- if (argc == 4) /* argc == 4: establish output pointers to receive objects */
- {
- if ((argv+3)->a_type != A_SYMBOL)
- {
- if ((argv+3)->a_type == A_FLOAT)
- {
- post("pbank_new: warning: 4th arg not symbol: ignoring (%f)", (argv+3)->a_w.w_float);
- goto nosyms;
- }
- else
- {
- error("pbank_new: optional fourth arg. needs to be a symbol");
- goto err;
- }
- }
-
-
- shit = (argv+3)->a_w.w_symbol->s_name;
- if (shit[0] == '#' || (shit[0] == '"' && shit[1] == '"')) goto nosyms; /* crosshatch here */;
-
- x->p_receives = (t_symbol **)getbytes((int)sizeof(t_symbol *)*x->p_columns);
-
- for (z=0;z<x->p_columns;z++)
- {
- sprintf(piss,"%s-%d",shit,z); // generate symbol of form: "name-columnNo"
- x->p_receives[z] = gensym(piss);
-
- if (x->p_receives[z]->s_thing)
- { /* sends or receive obj */
-
- // post("found us a %s",class_getname(pd_class(x->p_receives[z]->s_thing)));
-
- // if ((void *)pd_class(x->p_receives[z]->s_thing)->c_sym != gensym("through"))
- /*
- NO TESTING FOR SHARED SYMBOLS
-
- if (strcmp(class_getname(pd_class(x->p_receives[z]->s_thing)), "send") &&
- strcmp(class_getname(pd_class(x->p_receives[z]->s_thing)), "receive") &&
- strcmp(class_getname(pd_class(x->p_receives[z]->s_thing)), "bindlist"))
- {
- error("pbank_new: symbol %s already being used, can't use it",shit);
- post("z=%d found a %s",z,class_getname(pd_class(x->p_receives[z]->s_thing)));
- goto err;
- }
- */
-
- }
- }
- }
-
-nosyms:
- if (NIL == (x->p_data = pbank_getmem(x->p_name, x->p_columns,x->p_rows))) goto err; /* can't allocate data matrix */
- x->p_dirty = x->p_data+x->p_rows-1+EDBUFF+DIRTFLAG; /* points to extra cell in matrix used for dirty flag */
-
-
- if (x->p_name)
- {
- pbank_fromfile(x,x->p_name->s_name, TEXT,1);
- }
-
- outlet_new((t_object *) x, gensym("list"));
-
- return(x);
-err:
- if (x->p_receives) freebytes((void *)x->p_receives, (int)sizeof(t_symbol *)*x->p_columns);
- return(NIL);
-}
-
-
-
-
-
-
-/* NOTE: light error checking --- allocates memory and manages allocation list */
-/* returns NIL (on error) or pointer to existing or new data matrix */
-/* note memory size is columns*(rows+1) + 1 - where the extra row is for the edit buffer */
-/* and the extra cell is for the DIRTY flag */
-/* class independent allocation - needs class independent dispose method */
-
-t_atom **pbank_getmem(t_symbol *name,int columns,int rows)
-{
- int z,i;
- t_shared *piss = NIL;
- t_atom **matrix,*av;
- char crap[256];
-
- if (!InRange(columns, 1,MAX_COLUMNS-1)) columns = DEFAULT_COLUMNS;
- if (!InRange(rows, 1,MAX_ROWS-1)) rows = DEFAULT_ROWS;
-
- if (name)
- {
- if (name->s_thing)
- {
- if (name->s_thing == pbank_ID->s_thing) /* memory already exists - increment refcount */
- {
- piss = pbank_banks; /* maintain list of instance memories */
- while(piss)
- {
- if (piss->s_sym == name) /* pbank instances sharing memory */
- {
- if (piss->s_columns != columns || piss->s_rows != rows)
- {
- error("pbank_getmem: pbank %s's dimensions must be (%d x %d)",name->s_name,
- piss->s_columns,piss->s_rows);
- return(NIL);
- }
- piss->s_refcount++;
- /* post("%s refcount=%d",piss->s_sym->s_name,piss->s_refcount); */
- return(piss->s_data);
- }
- piss = piss->s_next;
- }
- error("pbank_getmem: bug: name %s not found",name->s_name);
- return(NIL);
- }
- else /* bad symbol - already taken - can't do anything */
- {
- error("pbank_getmem: symbol %s already being used by another object",name->s_name);
- return(NIL);
- }
- }
- else /* allocate entry for given name in shared memory list */
- {
-
- name->s_thing = pbank_ID->s_thing; /* associate symbol with pbank class */
- piss = getbytes(sizeof(t_shared)); /* allocate new entry */
- piss->s_sym = name;
- piss->s_refcount = 1;
- piss->s_next = (pbank_banks) ? pbank_banks:NIL;
- pbank_banks = piss; /* link it in at head of list */
- /* post("PISS alloc %lx",piss); */
- }
- }
-
- /* allocate memory for data matrix */
- /* allocate "rows" + 1 (edbuff) + 1 (dirty flag) ROWS */
- matrix = (t_atom **)getbytes((int)sizeof(t_atom *)*(rows+EDBUFF+DIRTFLAG));
- for (z=0;z<rows+EDBUFF;z++)
- matrix[z] = (t_atom *)getbytes(sizeof(t_atom)*columns);
-
-
- for (z=0;z<rows+EDBUFF;z++) /* data matrix - all 0's */
- {
-
- sprintf(crap,"untitled_%d", z);
- av = matrix[z];
- SETSYMBOL(av,gensym(crap));
- for (i=1;i<columns;i++)
- SETFLOAT(av+i,0L);
- }
-
- matrix[rows-1+EDBUFF+DIRTFLAG] = NIL; /* set dirty flag cell to 0 */
- if (piss)
- {
- piss->s_data = matrix; /* keep pointer to memory with shared */
- piss->s_columns = columns;
- piss->s_rows = rows;
- }
- return(matrix); /* no errors - return pointer to data matrix */
-}
-
-
-
-
-
-
-
-
-
diff --git a/pbank/pbank.h b/pbank/pbank.h
deleted file mode 100644
index 7bd1f44..0000000
--- a/pbank/pbank.h
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-typedef struct shared
-{
- t_symbol *s_sym; /* shared memory name */
- t_atom **s_data; /* memory pointer */
- int s_rows; /* memory dimension */
- int s_columns; /* memory dimension */
- int s_refcount; /* number of objects pointing to "s_data" */
- struct shared *s_next;
-} t_shared;
-
-
diff --git a/tab/makefile b/tab/makefile
deleted file mode 100755
index 4b64dcf..0000000
--- a/tab/makefile
+++ /dev/null
@@ -1,100 +0,0 @@
-current:
- echo make pd_linux, pd_nt, pd_irix5, or pd_irix6
-
-clean: ; rm -f *.pd_linux *.o
-
-# ----------------------- NT -----------------------
-
-pd_nt: tabosc4c~.dll tabread4c~.dll tabosc4i~.dll
-
-.SUFFIXES: .dll
-
-PDNTCFLAGS = /W3 /WX /DNT /DPD /nologo
-VC="C:\Program Files\Microsoft Visual Studio\Vc98"
-
-PDNTINCLUDE = /I. /I$(VC)\include /I..\..\..\pd\src\
-
-PDNTLDIR = $(VC)\lib
-PDNTLIB = $(PDNTLDIR)\libc.lib \
- $(PDNTLDIR)\oldnames.lib \
- $(PDNTLDIR)\kernel32.lib \
- \pds\win32\pd36\bin\pd.lib
-
-.c.dll:
- cl $(PDNTCFLAGS) $(PDNTINCLUDE) /c $*.c
- link /dll /export:$*_setup $*.obj $(PDNTLIB)
-
-# ----------------------- IRIX 5.x -----------------------
-
-pd_irix5: tabosc4c~.pd_irix5 tabread4c~.pd_irix5 tabosc4i~.pd_irix5
-
-.SUFFIXES: .pd_irix5
-
-SGICFLAGS5 = -o32 -DPD -DUNIX -DIRIX -O2
-
-
-SGIINCLUDE = -I../../../pd/src/
-
-.c.pd_irix5:
- cc $(SGICFLAGS5) $(SGIINCLUDE) -o $*.o -c $*.c
- ld -elf -shared -rdata_shared -o $*.pd_irix5 $*.o
- rm $*.o
-
-# ----------------------- IRIX 6.x -----------------------
-
-pd_irix6: tabosc4c~.pd_irix6 tabread4c~.pd_irix6 tabosci~.pd_irix6
-
-.SUFFIXES: .pd_irix6
-
-SGICFLAGS6 = -n32 -DPD -DUNIX -DIRIX -DN32 -woff 1080,1064,1185 \
- -OPT:roundoff=3 -OPT:IEEE_arithmetic=3 -OPT:cray_ivdep=true \
- -Ofast=ip32
-
-.c.pd_irix6:
- cc $(SGICFLAGS6) $(SGIINCLUDE) -o $*.o -c $*.c
- ld -IPA -n32 -shared -rdata_shared -o $*.pd_irix6 $*.o
- rm $*.o
-
-# ----------------------- LINUX i386 -----------------------
-
-pd_linux: tabosci~.pd_linux tabosc4c~.pd_linux tabread4c~.pd_linux
-
-.SUFFIXES: .pd_linux
-
-LINUXCFLAGS = -DPD -O2 -funroll-loops -fomit-frame-pointer \
- -Wall -W -Wshadow -Wstrict-prototypes -Werror \
- -Wno-unused -Wno-parentheses -Wno-switch
-
-LINUXINCLUDE = -I../../../pd/src/
-
-.c.pd_linux:
- cc $(LINUXCFLAGS) $(LINUXINCLUDE) -o $*.o -c $*.c
- ld --export-dynamic -shared -o $*.pd_linux $*.o -lc -lm
- strip --strip-unneeded $*.pd_linux
- rm $*.o
-
-# ----------------------- Mac OS X (Darwin) -----------------------
-
-
-pd_darwin: tabosci~.pd_darwin tabosc4c~.pd_darwin tabread4c~.pd_darwin
-
-.SUFFIXES: .pd_darwin
-
-DARWINCFLAGS = -DPD -DUNIX -DMACOSX -O2 \
- -Wall -W -Wshadow -Wstrict-prototypes \
- -Wno-unused -Wno-parentheses -Wno-switch
-
-# where is your m_pd.h ???
-DARWININCLUDE = -I/. -I../../../pd/src -I../../../pd/obj -I/Applications/Pd-0.42.5-extended-20091214.app/Contents/Resources/include
-
-.c.pd_darwin:
- cc $(DARWINCFLAGS) $(DARWININCLUDE) -o $*.o -c $*.c
- cc -bundle -undefined suppress -flat_namespace -o $*.pd_darwin $*.o
- rm -f $*.o ../$*.pd_darwin
- ln -s $*/$*.pd_darwin ..
-
-
-
-
-
-
diff --git a/tab/tabosc4c~-help.pd b/tab/tabosc4c~-help.pd
deleted file mode 100644
index e8a209a..0000000
--- a/tab/tabosc4c~-help.pd
+++ /dev/null
@@ -1,104 +0,0 @@
-#N canvas 298 40 774 479 12;
-#X floatatom 41 42 9 0 0 0 - - -;
-#X obj 41 63 sig~ 100;
-#N canvas 0 0 450 300 (subpatch) 0;
-#X array array99 11 float 0;
-#X coords 0 1 10 -1 250 200 1;
-#X restore 436 180 graph;
-#X obj 437 48 loadbang;
-#X floatatom 41 -1 5 0 0 0 - - -;
-#X obj 41 19 mtof;
-#X floatatom 77 307 0 0 0 0 - - -;
-#N canvas 159 26 706 447 output 0;
-#X obj 414 196 t b;
-#X obj 414 134 f;
-#X obj 414 73 inlet;
-#X text 421 36 mute;
-#X obj 414 227 f;
-#X msg 521 218 0;
-#X msg 414 104 bang;
-#X obj 414 166 moses 1;
-#X obj 521 187 t b f;
-#X obj 486 143 moses 1;
-#X obj 102 181 dbtorms;
-#X obj 486 113 r master-lvl;
-#X obj 102 52 r master-lvl;
-#X obj 414 257 s master-lvl;
-#X obj 26 222 inlet~;
-#X obj 244 50 inlet;
-#X text 244 22 level;
-#X obj 244 122 s master-lvl;
-#X msg 118 80 set \$1;
-#X obj 118 109 outlet;
-#X msg 262 78 \; pd dsp 1;
-#X obj 102 238 line~;
-#X obj 26 259 *~;
-#X obj 26 295 dac~;
-#X obj 102 210 pack 0 50;
-#X text 24 195 audio;
-#X text 114 135 show level;
-#X connect 0 0 4 0;
-#X connect 1 0 7 0;
-#X connect 2 0 6 0;
-#X connect 4 0 13 0;
-#X connect 5 0 13 0;
-#X connect 6 0 1 0;
-#X connect 7 0 0 0;
-#X connect 7 1 8 0;
-#X connect 8 0 5 0;
-#X connect 9 1 4 1;
-#X connect 10 0 24 0;
-#X connect 11 0 1 1;
-#X connect 11 0 9 0;
-#X connect 12 0 10 0;
-#X connect 12 0 18 0;
-#X connect 14 0 22 0;
-#X connect 15 0 17 0;
-#X connect 15 0 20 0;
-#X connect 18 0 19 0;
-#X connect 21 0 22 1;
-#X connect 22 0 23 0;
-#X connect 22 0 23 1;
-#X connect 24 0 21 0;
-#X restore 43 333 pd output;
-#X msg 113 307 MUTE;
-#X obj 42 123 tabosc4~ array99;
-#X obj 179 230 *~;
-#X msg 356 42 \$1 30;
-#X obj 359 19 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144
--1 -1 0 1;
-#X obj 357 89 -~ 1;
-#X obj 356 113 *~ -1;
-#X obj 356 66 line~;
-#X obj 43 231 *~;
-#X text 498 18 tabosc4~;
-#X text 279 17 tabosc4c~;
-#X msg 294 67 0;
-#X obj 178 123 tabosc4c~ array99;
-#X msg 437 75 \; array99 resize 11 \; array99 0 0 0 -0.5 -0.5 1 -1
-0.5 -1 0 0 0 \; pd dsp 1 \;;
-#X text 40 395 tabosc4c~ is a drop in remplacement for tabosc4~ \,
-but offer a 4 points cubic interpolation with tengent continuity. So
-\, in some case \, quality is better than the standart interpolation
-;
-#X connect 0 0 1 0;
-#X connect 1 0 9 0;
-#X connect 1 0 20 0;
-#X connect 3 0 21 0;
-#X connect 4 0 5 0;
-#X connect 5 0 0 0;
-#X connect 6 0 7 1;
-#X connect 7 0 6 0;
-#X connect 8 0 7 2;
-#X connect 9 0 16 0;
-#X connect 10 0 7 0;
-#X connect 11 0 15 0;
-#X connect 12 0 11 0;
-#X connect 13 0 14 0;
-#X connect 14 0 10 1;
-#X connect 15 0 13 0;
-#X connect 15 0 16 1;
-#X connect 16 0 7 0;
-#X connect 19 0 9 1;
-#X connect 19 0 20 1;
-#X connect 20 0 10 0;
diff --git a/tab/tabosc4c~.c b/tab/tabosc4c~.c
deleted file mode 100644
index ad4e7a2..0000000
--- a/tab/tabosc4c~.c
+++ /dev/null
@@ -1,244 +0,0 @@
-// tabosc4c~
-// can replace with tabosc4~
-// most of this code comes from pd. just the interpolation shematic is diferent.
-
-/*
-This software is copyrighted by Miller Puckette and others. The following
-terms (the "Standard Improved BSD License") apply to all files associated with
-the software unless explicitly disclaimed in individual files:
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-3. The name of the author may not be used to endorse or promote
- products derived from this software without specific prior
- written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-// Cyrille Henry 06 2008
-
-
-#include "m_pd.h"
-
-/******************** tabosc4c~ ***********************/
-
-/* this is all copied from d_osc.c... what include file could this go in? */
-#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
-
-#if defined(__FreeBSD__) || defined(__APPLE__)
-#include <machine/endian.h>
-#endif
-
-#ifdef __linux__
-#include <endian.h>
-#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 <sys/types.h>
-#define int32 int32_t
-#endif /* __unix__ or __APPLE__*/
-
-union tabfudge
-{
- double tf_d;
- int32 tf_i[2];
-};
-
-static t_class *tabosc4c_tilde_class;
-
-typedef struct _tabosc4c_tilde
-{
- t_object x_obj;
- t_float x_fnpoints;
- t_float x_finvnpoints;
- t_word *x_vec;
- t_symbol *x_arrayname;
- t_float x_f;
- double x_phase;
- t_float x_conv;
-} t_tabosc4c_tilde;
-
-static void *tabosc4c_tilde_new(t_symbol *s)
-{
- t_tabosc4c_tilde *x = (t_tabosc4c_tilde *)pd_new(tabosc4c_tilde_class);
- x->x_arrayname = s;
- x->x_vec = 0;
- x->x_fnpoints = 512.;
- x->x_finvnpoints = (1./512.);
- outlet_new(&x->x_obj, gensym("signal"));
- inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1"));
- x->x_f = 0;
- return (x);
-}
-
-static t_int *tabosc4c_tilde_perform(t_int *w)
-{
- t_tabosc4c_tilde *x = (t_tabosc4c_tilde *)(w[1]);
- t_sample *in = (t_sample *)(w[2]);
- t_sample *out = (t_sample *)(w[3]);
- int n = (int)(w[4]);
- int normhipart;
- union tabfudge tf;
- double a3,a1,a2; // CH : for the interpolation
- t_float fnpoints = x->x_fnpoints;
- int mask = fnpoints - 1;
- t_float conv = fnpoints * x->x_conv;
- int maxindex;
- t_word *tab = x->x_vec, *addr;
- int i;
- double dphase = fnpoints * x->x_phase + UNITBIT32;
-
- if (!tab) goto zero;
- tf.tf_d = UNITBIT32;
- normhipart = tf.tf_i[HIOFFSET];
-
- while (n--)
- {
- t_sample frac, a, b, c, d, cminusb;
- tf.tf_d = dphase;
- dphase += *in++ * conv;
- addr = tab + (tf.tf_i[HIOFFSET] & mask);
- tf.tf_i[HIOFFSET] = normhipart;
- frac = tf.tf_d - UNITBIT32;
- a = addr[0].w_float;
- b = addr[1].w_float;
- c = addr[2].w_float;
- d = addr[3].w_float;
-// cminusb = c-b;
-// *out++ = b + frac * (
-// cminusb - 0.1666667f * (1.-frac) * (
-// (d - a - 3.0f * cminusb) * frac + (d + 2.0f*a - 3.0f*b) ) );
-// CH
-// a0 = d - c - a + b;
-// a1 = a - b - a0;
-// a2 = c - a;
-// *out++ = ((a0*frac+a1)*frac+a2)*frac+b;
-
- // 4-point, 3rd-order Hermite (x-form)
- a1 = 0.5f * (c - a);
- a2 = a - 2.5 * b + 2.f * c - 0.5f * d;
- a3 = 0.5f * (d - a) + 1.5f * (b - c);
-
- *out++ = ((a3 * frac + a2) * frac + a1) * frac + b;
- }
-
-
- tf.tf_d = UNITBIT32 * fnpoints;
- normhipart = tf.tf_i[HIOFFSET];
- tf.tf_d = dphase + (UNITBIT32 * fnpoints - UNITBIT32);
- tf.tf_i[HIOFFSET] = normhipart;
- x->x_phase = (tf.tf_d - UNITBIT32 * fnpoints) * x->x_finvnpoints;
- return (w+5);
- zero:
- while (n--) *out++ = 0;
-
- return (w+5);
-}
-
-void tabosc4c_tilde_set(t_tabosc4c_tilde *x, t_symbol *s)
-{
- t_garray *a;
- int npoints, pointsinarray;
-
- x->x_arrayname = s;
- if (!(a = (t_garray *)pd_findbyclass(x->x_arrayname, garray_class)))
- {
- if (*s->s_name)
- pd_error(x, "tabosc4c~: %s: no such array", x->x_arrayname->s_name);
- x->x_vec = 0;
- }
- else if (!garray_getfloatwords(a, &pointsinarray, &x->x_vec))
- {
- pd_error(x, "%s: bad template for tabosc4c~", x->x_arrayname->s_name);
- x->x_vec = 0;
- }
- else if ((npoints = pointsinarray - 3) != (1 << ilog2(pointsinarray - 3)))
- {
- pd_error(x, "%s: number of points (%d) not a power of 2 plus three",
- x->x_arrayname->s_name, pointsinarray);
- x->x_vec = 0;
- garray_usedindsp(a);
- }
- else
- {
- x->x_fnpoints = npoints;
- x->x_finvnpoints = 1./npoints;
- garray_usedindsp(a);
- }
-}
-
-static void tabosc4c_tilde_ft1(t_tabosc4c_tilde *x, t_float f)
-{
- x->x_phase = f;
-}
-
-static void tabosc4c_tilde_dsp(t_tabosc4c_tilde *x, t_signal **sp)
-{
- x->x_conv = 1. / sp[0]->s_sr;
- tabosc4c_tilde_set(x, x->x_arrayname);
-
- dsp_add(tabosc4c_tilde_perform, 4, x,
- sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
-}
-
-void tabosc4c_tilde_setup(void)
-{
- tabosc4c_tilde_class = class_new(gensym("tabosc4c~"),
- (t_newmethod)tabosc4c_tilde_new, 0,
- sizeof(t_tabosc4c_tilde), 0, A_DEFSYM, 0);
- CLASS_MAINSIGNALIN(tabosc4c_tilde_class, t_tabosc4c_tilde, x_f);
- class_addmethod(tabosc4c_tilde_class, (t_method)tabosc4c_tilde_dsp,
- gensym("dsp"), 0);
- class_addmethod(tabosc4c_tilde_class, (t_method)tabosc4c_tilde_set,
- gensym("set"), A_SYMBOL, 0);
- class_addmethod(tabosc4c_tilde_class, (t_method)tabosc4c_tilde_ft1,
- gensym("ft1"), A_FLOAT, 0);
-}
-
diff --git a/tab/tabosci~-help.pd b/tab/tabosci~-help.pd
deleted file mode 100644
index 5b2dad6..0000000
--- a/tab/tabosci~-help.pd
+++ /dev/null
@@ -1,258 +0,0 @@
-#N canvas 72 25 1011 661 12;
-#X floatatom 46 55 9 0 0 0 - - -;
-#N canvas 0 0 450 300 (subpatch) 0;
-#X array array99 11 float 0;
-#X coords 0 1 10 -1 250 200 1;
-#X restore 603 153 graph;
-#X obj 600 27 loadbang;
-#X floatatom 46 12 5 0 135 0 - - -;
-#X obj 46 32 mtof;
-#X floatatom 80 380 0 0 0 0 - - -;
-#N canvas 159 26 706 447 output 0;
-#X obj 414 196 t b;
-#X obj 414 134 f;
-#X obj 414 73 inlet;
-#X text 421 36 mute;
-#X obj 414 227 f;
-#X msg 521 218 0;
-#X msg 414 104 bang;
-#X obj 414 166 moses 1;
-#X obj 521 187 t b f;
-#X obj 486 143 moses 1;
-#X obj 102 181 dbtorms;
-#X obj 486 113 r master-lvl;
-#X obj 102 52 r master-lvl;
-#X obj 414 257 s master-lvl;
-#X obj 26 222 inlet~;
-#X obj 244 50 inlet;
-#X text 244 22 level;
-#X obj 244 122 s master-lvl;
-#X msg 118 80 set \$1;
-#X obj 118 109 outlet;
-#X msg 262 78 \; pd dsp 1;
-#X obj 102 238 line~;
-#X obj 26 259 *~;
-#X obj 26 295 dac~;
-#X obj 102 210 pack 0 50;
-#X text 24 195 audio;
-#X text 114 135 show level;
-#X connect 0 0 4 0;
-#X connect 1 0 7 0;
-#X connect 2 0 6 0;
-#X connect 4 0 13 0;
-#X connect 5 0 13 0;
-#X connect 6 0 1 0;
-#X connect 7 0 0 0;
-#X connect 7 1 8 0;
-#X connect 8 0 5 0;
-#X connect 9 1 4 1;
-#X connect 10 0 24 0;
-#X connect 11 0 1 1;
-#X connect 11 0 9 0;
-#X connect 12 0 10 0;
-#X connect 12 0 18 0;
-#X connect 14 0 22 0;
-#X connect 15 0 17 0;
-#X connect 15 0 20 0;
-#X connect 18 0 19 0;
-#X connect 21 0 22 1;
-#X connect 22 0 23 0;
-#X connect 22 0 23 1;
-#X connect 24 0 21 0;
-#X restore 46 406 pd output;
-#X msg 116 380 MUTE;
-#X obj 200 293 *~;
-#X msg 433 193 \$1 30;
-#X obj 436 170 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144
--1 -1 0 1;
-#X obj 434 240 -~ 1;
-#X obj 433 264 *~ -1;
-#X obj 433 217 line~;
-#X obj 46 294 *~;
-#X msg 341 214 0;
-#X msg 600 54 \; array99 resize 11 \; array99 0 0 0 -0.5 -0.5 1 -1
-0.5 -1 0 0 0 \; pd dsp 1 \;;
-#X obj 200 255 tabosc4~ array99;
-#X text 501 149 tabosc4~;
-#N canvas 371 25 645 661 osc~ 0;
-#X obj 12 133 pack~;
-#X obj 14 7 inlet~;
-#X text 230 14 change block size;
-#X msg 77 379 0;
-#X obj 47 403 f;
-#X obj 63 428 + 1;
-#X obj 17 379 t a b;
-#X obj 16 245 gemhead;
-#X text 72 7 audio input;
-#X obj 13 29 rfft~;
-#X obj 13 51 *~;
-#X obj 53 53 *~;
-#X obj 171 72 block~ 4096 4;
-#X obj 12 75 /~ 4096;
-#X obj 12 95 log~;
-#X obj 12 114 *~ 0.05;
-#X obj 12 152 list prepend 0;
-#X obj 12 173 s \$0-fft;
-#X obj 273 189 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 273 207 t b b;
-#X obj 272 251 until;
-#X msg 272 228 2048;
-#X msg 331 251 0;
-#X obj 272 276 f;
-#X obj 287 299 + 1;
-#X obj 272 349 tabread \$0-fft;
-#X obj 408 348 tabread \$0-fft-lop;
-#X obj 272 399 +;
-#X obj 272 443 tabwrite \$0-fft-lop;
-#X obj 272 324 t f f f;
-#X obj 296 183 bang~;
-#X obj 272 421 / 8;
-#X obj 409 376 * 7;
-#X obj 77 494 tabread \$0-fft-lop;
-#X obj 26 611 loadbang;
-#X obj 47 451 t f f;
-#X obj 72 578 l;
-#X obj 22 224 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X obj 71 547 t l b;
-#X obj 18 659 curve 2;
-#X obj 46 519 pack f f f;
-#X floatatom 36 296 5 0 0 0 - - -;
-#X floatatom 78 297 5 0 0 0 - - -;
-#X obj 17 334 t a b;
-#X floatatom 72 250 5 0 0 0 - - -;
-#X floatatom 114 251 5 0 0 0 - - -;
-#X obj 17 358 repeat 2048;
-#X obj 14 277 translateXYZ -4 0 0;
-#X obj 47 471 log;
-#X obj 17 314 scaleXYZ 1.04 6 0;
-#X msg 26 633 res 2;
-#X obj 170 92 table \$0-fft 2048;
-#X obj 170 112 table \$0-fft-lop 2048;
-#X connect 0 0 16 0;
-#X connect 1 0 9 0;
-#X connect 3 0 4 0;
-#X connect 4 0 5 0;
-#X connect 4 0 35 0;
-#X connect 5 0 4 1;
-#X connect 6 0 39 0;
-#X connect 6 1 4 0;
-#X connect 7 0 47 0;
-#X connect 9 0 10 0;
-#X connect 9 0 10 1;
-#X connect 9 1 11 0;
-#X connect 9 1 11 1;
-#X connect 10 0 13 0;
-#X connect 11 0 13 0;
-#X connect 13 0 14 0;
-#X connect 14 0 15 0;
-#X connect 15 0 0 0;
-#X connect 16 0 17 0;
-#X connect 18 0 19 0;
-#X connect 19 0 21 0;
-#X connect 19 1 22 0;
-#X connect 20 0 23 0;
-#X connect 21 0 20 0;
-#X connect 22 0 23 1;
-#X connect 23 0 24 0;
-#X connect 23 0 29 0;
-#X connect 24 0 23 1;
-#X connect 25 0 27 0;
-#X connect 26 0 32 0;
-#X connect 27 0 31 0;
-#X connect 29 0 25 0;
-#X connect 29 1 26 0;
-#X connect 29 2 28 1;
-#X connect 30 0 19 0;
-#X connect 31 0 28 0;
-#X connect 32 0 27 1;
-#X connect 33 0 40 1;
-#X connect 34 0 50 0;
-#X connect 35 0 48 0;
-#X connect 35 1 33 0;
-#X connect 36 0 39 2;
-#X connect 37 0 7 0;
-#X connect 38 0 36 1;
-#X connect 38 1 36 0;
-#X connect 40 0 38 0;
-#X connect 40 0 39 1;
-#X connect 41 0 49 1;
-#X connect 42 0 49 2;
-#X connect 43 0 46 0;
-#X connect 43 1 3 0;
-#X connect 44 0 47 1;
-#X connect 45 0 47 2;
-#X connect 46 0 6 0;
-#X connect 47 0 49 0;
-#X connect 48 0 40 0;
-#X connect 49 0 43 0;
-#X connect 50 0 39 0;
-#X restore 55 356 pd osc~;
-#X msg 605 385 reset \, create \, 1;
-#X msg 611 407 0 \, destroy;
-#X msg 46 73 \$1 100;
-#X obj 46 96 line~;
-#X obj 605 429 gemwin 20;
-#X msg 172 77 cutoff \$1;
-#X floatatom 172 14 5 0 0 0 - - -;
-#X obj 172 34 mtof;
-#X floatatom 185 58 9 0 0 0 - - -;
-#X text 396 149 tabosc4i~;
-#X obj 45 333 +~;
-#X floatatom 286 52 5 0 0 0 - - -;
-#X msg 286 75 upsample \$1;
-#X msg 325 23 4;
-#X msg 286 23 2;
-#X obj 47 254 tabosci~ array99;
-#X obj 214 353 oscillo~;
-#X msg 364 23 8;
-#X text 41 458 tabosc4c~ is a drop in remplacement for tabosc4~ \,
-but offer an other 4 points interpolation. So \, in some case \, quality
-is better than the standart interpolation. Moreover \, it can use table
-size 2^n (and not 2^n+3) \, so you dan't have to copy the 1st 3 point
-of the table at the end.;
-#X text 764 387 <- draw spectrum with Gem;
-#X text 43 543 You can also adjust an upsamplig factor \, and a cutoff
-freq of the internal biquad. Upsample by 4 is ok most of the time.
-To remove "all" spectrom folding \, main sampling rate should be 96000Hz
-\, but it already gives good result at 44.1 or 48KHz...;
-#X msg 171 110 cutoff 0;
-#X text 255 110 no filter;
-#X connect 0 0 22 0;
-#X connect 2 0 16 0;
-#X connect 3 0 4 0;
-#X connect 4 0 0 0;
-#X connect 5 0 6 1;
-#X connect 6 0 5 0;
-#X connect 7 0 6 2;
-#X connect 8 0 30 0;
-#X connect 9 0 13 0;
-#X connect 10 0 9 0;
-#X connect 11 0 12 0;
-#X connect 12 0 14 1;
-#X connect 13 0 11 0;
-#X connect 13 0 8 1;
-#X connect 14 0 30 0;
-#X connect 15 0 17 1;
-#X connect 15 0 35 1;
-#X connect 17 0 8 0;
-#X connect 20 0 24 0;
-#X connect 21 0 24 0;
-#X connect 22 0 23 0;
-#X connect 23 0 17 0;
-#X connect 23 0 35 0;
-#X connect 25 0 35 0;
-#X connect 26 0 27 0;
-#X connect 27 0 28 0;
-#X connect 27 0 25 0;
-#X connect 30 0 6 0;
-#X connect 30 0 19 0;
-#X connect 30 0 36 0;
-#X connect 31 0 32 0;
-#X connect 32 0 35 0;
-#X connect 33 0 31 0;
-#X connect 34 0 31 0;
-#X connect 35 0 14 0;
-#X connect 37 0 31 0;
-#X connect 41 0 35 0;
diff --git a/tab/tabosci~.c b/tab/tabosci~.c
deleted file mode 100644
index 9936c77..0000000
--- a/tab/tabosci~.c
+++ /dev/null
@@ -1,320 +0,0 @@
-// tabosci~
-// tabosc interpolation
-// can replace tabosc4~
-// most of this code comes from pd. but with somes modifications
-
-/*
-This software is copyrighted by Miller Puckette and others. The following
-terms (the "Standard Improved BSD License") apply to all files associated with
-the software unless explicitly disclaimed in individual files:
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-3. The name of the author may not be used to endorse or promote
- products derived from this software without specific prior
- written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-// Cyrille Henry 02 2009
-
-
-#include "m_pd.h"
-#include <math.h>
-
-#define max(a,b) ( ((a) > (b)) ? (a) : (b) )
-#define min(a,b) ( ((a) < (b)) ? (a) : (b) )
-
-/******************** tabosci~ ***********************/
-
-/* this is all copied from d_osc.c... what include file could this go in? */
-#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
-
-#if defined(__FreeBSD__) || defined(__APPLE__)
-#include <machine/endian.h>
-#endif
-
-#ifdef __linux__
-#include <endian.h>
-#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 <sys/types.h>
-#define int32 int32_t
-#endif /* __unix__ or __APPLE__*/
-
-union tabfudge
-{
- double tf_d;
- int32 tf_i[2];
-};
-
-static t_class *tabosci_tilde_class;
-
-typedef struct _tabosci_tilde
-{
- t_object x_obj;
- t_float x_fnpoints;
- t_float x_finvnpoints;
- t_word *x_vec;
- t_symbol *x_arrayname;
- t_float x_f;
- double x_phase;
- t_float x_conv;
- t_sample x_prev_in, x_last_in, x_prev_out, x_last_out;
- t_float x_fa1, x_fa2, x_fb1, x_fb2, x_fb3;
- t_float cutoff;
- t_int upsample;
- t_float x_sr;
-} t_tabosci_tilde;
-
-void tabosci_tilde_cutoff(t_tabosci_tilde *x, t_float cut)
-{
- x->cutoff = cut;
-
- if (x->cutoff == 0)
- {
- x->x_fb1 = 1;
- x->x_fb2 = 0;
- x->x_fb3 = 0;
- x->x_fa1 = 0;
- x->x_fa2 = 0;
-
- x->x_prev_in = 0;
- x->x_last_in = 0;
- x->x_prev_out = 0; // reset filter memory
- }
- else
- {
- // filter coef to cut all high freq.
- t_float tmp1, tmp2;
-
- tmp1 = sqrt(2)/2;
- tmp1 = sinh(tmp1);
-
- tmp2 = x->cutoff * 2 * 3.1415926 / (x->upsample * x->x_sr);
- tmp2 = min(6.28,tmp2);
-
- tmp1 *= sin(tmp2);
- tmp2 = cos(tmp2);
-
- x->x_fb1 = (1-tmp2 ) /2;
- x->x_fb2 = (1-tmp2 );
- x->x_fb3 = (1-tmp2 ) /2;
- x->x_fa1 = -2 * tmp2;
- x->x_fa2 = 1 - tmp1;
-
- tmp1 +=1;
-
- x->x_fb1 /= tmp1;
- x->x_fb2 /= tmp1;
- x->x_fb3 /= tmp1;
- x->x_fa1 /= tmp1;
- x->x_fa2 /= tmp1;
- }
-}
-
-static void *tabosci_tilde_new(t_symbol *s)
-{
- t_tabosci_tilde *x = (t_tabosci_tilde *)pd_new(tabosci_tilde_class);
- x->x_arrayname = s;
- x->x_vec = 0;
- x->x_fnpoints = 512.;
- x->x_finvnpoints = (1./512.);
- outlet_new(&x->x_obj, gensym("signal"));
- inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1"));
- x->x_f = 0;
- x->cutoff = 0;
- x->upsample = 1;
- x->x_sr = 0;
- tabosci_tilde_cutoff(x,0); // comput filter coef
- return (x);
-}
-
-static t_int *tabosci_tilde_perform(t_int *w)
-{
- t_tabosci_tilde *x = (t_tabosci_tilde *)(w[1]);
- t_sample *in = (t_sample *)(w[2]);
- t_sample *out = (t_sample *)(w[3]);
- int n = (int)(w[4]);
- int normhipart;
- union tabfudge tf;
- double a1,a2,a3; // CH : for the interpolation
- t_float fnpoints = x->x_fnpoints;
- int mask = fnpoints - 1;
- t_float conv = fnpoints * x->x_conv;
- int maxindex;
- t_word *tab = x->x_vec, *addr;
- int i;
- double dphase = fnpoints * x->x_phase + UNITBIT32;
-
- if (!tab) goto zero;
- tf.tf_d = UNITBIT32;
- normhipart = tf.tf_i[HIOFFSET];
-
- while (n--)
- {
- t_sample frac, a, b, c, d, cminusb, temp, filter_out;
-
- for (i=0;i<x->upsample;i++)
- {
- tf.tf_d = dphase;
- dphase += *in/x->upsample * conv;
- addr = tab + (tf.tf_i[HIOFFSET] & mask);
- a = addr[0].w_float;
- addr = tab + ((1+tf.tf_i[HIOFFSET]) & mask);
- b = addr[0].w_float;
- addr = tab + ((2+tf.tf_i[HIOFFSET]) & mask);
- c = addr[0].w_float;
- addr = tab + ((3+tf.tf_i[HIOFFSET]) & mask);
- d = addr[0].w_float;
- tf.tf_i[HIOFFSET] = normhipart;
- frac = tf.tf_d - UNITBIT32;
-
- // 4-point, 3rd-order Hermite (x-form)
- a1 = 0.5f * (c - a);
- a2 = a - 2.5 * b + 2.f * c - 0.5f * d;
- a3 = 0.5f * (d - a) + 1.5f * (b - c);
-
- temp = ((a3 * frac + a2) * frac + a1) * frac + b;
-
- filter_out = x->x_fb1* temp + x->x_fb2 * x->x_last_in + x->x_fb3 * x->x_prev_in - x->x_fa1 * x->x_last_out - x->x_fa2 * x->x_prev_out;
- // low pass
-
- x->x_prev_in = x->x_last_in;
- x->x_last_in = temp;
- x->x_prev_out = x->x_last_out;
- x->x_last_out = filter_out;
- }
- *out++ = x->x_last_out;
- *in++;
- }
-
- tf.tf_d = UNITBIT32 * fnpoints;
- normhipart = tf.tf_i[HIOFFSET];
- tf.tf_d = dphase + (UNITBIT32 * fnpoints - UNITBIT32);
- tf.tf_i[HIOFFSET] = normhipart;
- x->x_phase = (tf.tf_d - UNITBIT32 * fnpoints) * x->x_finvnpoints;
- return (w+5);
- zero:
- while (n--) *out++ = 0;
-
- return (w+5);
-}
-
-void tabosci_tilde_set(t_tabosci_tilde *x, t_symbol *s)
-{
- t_garray *a;
- int npoints, pointsinarray;
-
- x->x_arrayname = s;
- if (!(a = (t_garray *)pd_findbyclass(x->x_arrayname, garray_class)))
- {
- if (*s->s_name)
- pd_error(x, "tabosci~: %s: no such array", x->x_arrayname->s_name);
- x->x_vec = 0;
- }
- else if (!garray_getfloatwords(a, &pointsinarray, &x->x_vec))
- {
- pd_error(x, "%s: bad template for tabosci~", x->x_arrayname->s_name);
- x->x_vec = 0;
- }
- else
- {
- npoints = 1 << ilog2(pointsinarray);
-// if ( npoints != pointsinarray) post("warning, tabosci~ is using only the first %d points of array %s",npoints, x->x_arrayname->s_name);
- x->x_fnpoints = npoints;
- x->x_finvnpoints = 1./npoints;
- garray_usedindsp(a);
- }
-}
-
-
-void tabosci_tilde_upsample(t_tabosci_tilde *x, t_float up)
-{
- x->upsample = max(1,up);
- tabosci_tilde_cutoff(x,x->cutoff);
-}
-
-static void tabosci_tilde_ft1(t_tabosci_tilde *x, t_float f)
-{
- x->x_phase = f;
-}
-
-static void tabosci_tilde_dsp(t_tabosci_tilde *x, t_signal **sp)
-{
- if (x->x_sr != sp[0]->s_sr)
- {
- x->x_sr = sp[0]->s_sr;
- tabosci_tilde_cutoff(x,x->cutoff);
- x->x_conv = 1. / sp[0]->s_sr;
- }
- tabosci_tilde_set(x, x->x_arrayname);
- dsp_add(tabosci_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
-}
-
-void tabosci_tilde_setup(void)
-{
- tabosci_tilde_class = class_new(gensym("tabosci~"),
- (t_newmethod)tabosci_tilde_new, 0,
- sizeof(t_tabosci_tilde), 0, A_DEFSYM, 0);
- CLASS_MAINSIGNALIN(tabosci_tilde_class, t_tabosci_tilde, x_f);
- class_addmethod(tabosci_tilde_class, (t_method)tabosci_tilde_dsp,
- gensym("dsp"), 0);
- class_addmethod(tabosci_tilde_class, (t_method)tabosci_tilde_set,
- gensym("set"), A_SYMBOL, 0);
- class_addmethod(tabosci_tilde_class, (t_method)tabosci_tilde_cutoff,
- gensym("cutoff"), A_FLOAT, 0);
- class_addmethod(tabosci_tilde_class, (t_method)tabosci_tilde_upsample,
- gensym("upsample"), A_FLOAT, 0);
- class_addmethod(tabosci_tilde_class, (t_method)tabosci_tilde_ft1,
- gensym("ft1"), A_FLOAT, 0);
-}
-
diff --git a/tab/tabread4c~-help.pd b/tab/tabread4c~-help.pd
deleted file mode 100644
index 82acd94..0000000
--- a/tab/tabread4c~-help.pd
+++ /dev/null
@@ -1,44 +0,0 @@
-#N canvas 252 101 743 661 10;
-#N canvas 0 0 450 300 (subpatch) 0;
-#X array array99 11 float 0;
-#X coords 0 1 10 -1 250 200 1;
-#X restore 461 80 graph;
-#X obj 69 195 line~;
-#X obj 36 139 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
--1;
-#X msg 69 172 0 \, 10 1000;
-#X obj 70 219 tabread4c~ array99;
-#X obj 36 32 loadbang;
-#X obj 296 195 line~;
-#X msg 296 172 0 \, 10 1000;
-#X obj 297 219 tabread4~ array99;
-#X obj 298 241 tabwrite~ test_miller;
-#X obj 70 241 tabwrite~ test_cubic;
-#X obj 36 55 t b b;
-#N canvas 0 0 450 300 (subpatch) 0;
-#X array test_miller 44100 float 0;
-#X coords 0 1 44099 -1 250 200 1;
-#X restore 295 312 graph;
-#N canvas 0 0 450 300 (subpatch) 0;
-#X array test_cubic 44100 float 0;
-#X coords 0 1 44099 -1 250 200 1;
-#X restore 34 312 graph;
-#X msg 63 77 \; array99 resize 10 \; array99 0 -0.5 -0.5 -0.5 0.5 0.5
-0.5 -0.5 0 0 \; pd dsp 1 \;;
-#X text 43 531 tabread4c~ is a drop in remplacement for tabrad4~ \,
-but offer a 4 points cubic interpolation with tengent continuity. So
-\, in some case \, quality is better than the standart interpolation
-;
-#X connect 1 0 4 0;
-#X connect 2 0 3 0;
-#X connect 2 0 7 0;
-#X connect 2 0 9 0;
-#X connect 2 0 10 0;
-#X connect 3 0 1 0;
-#X connect 4 0 10 0;
-#X connect 5 0 11 0;
-#X connect 6 0 8 0;
-#X connect 7 0 6 0;
-#X connect 8 0 9 0;
-#X connect 11 0 2 0;
-#X connect 11 1 14 0;
diff --git a/tab/tabread4c~.c b/tab/tabread4c~.c
deleted file mode 100644
index c4a7804..0000000
--- a/tab/tabread4c~.c
+++ /dev/null
@@ -1,176 +0,0 @@
-// tabread4c~
-// can replace tabread4c~
-// most of this code comes from pd. just the interpolation shematic is diferent.
-
-
-/*
-This software is copyrighted by Miller Puckette and others. The following
-terms (the "Standard Improved BSD License") apply to all files associated with
-the software unless explicitly disclaimed in individual files:
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-3. The name of the author may not be used to endorse or promote
- products derived from this software without specific prior
- written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-// Cyrille Henry 06 2008
-
-#include "m_pd.h"
-
-/******************** tabread4c~ ***********************/
-
-static t_class *tabread4c_tilde_class;
-
-typedef struct _tabread4c_tilde
-{
- t_object x_obj;
- int x_npoints;
- t_word *x_vec;
- t_symbol *x_arrayname;
- t_float x_f;
-} t_tabread4c_tilde;
-
-static void *tabread4c_tilde_new(t_symbol *s)
-{
- t_tabread4c_tilde *x = (t_tabread4c_tilde *)pd_new(tabread4c_tilde_class);
- x->x_arrayname = s;
- x->x_vec = 0;
- outlet_new(&x->x_obj, gensym("signal"));
- x->x_f = 0;
- return (x);
-}
-
-static t_int *tabread4c_tilde_perform(t_int *w)
-{
- t_tabread4c_tilde *x = (t_tabread4c_tilde *)(w[1]);
- t_sample *in = (t_sample *)(w[2]);
- t_sample *out = (t_sample *)(w[3]);
- int n = (int)(w[4]);
- int maxindex;
- t_word *buf = x->x_vec, *wp;
- int i;
- double a3,a1,a2; // CH
-
- maxindex = x->x_npoints - 3;
-
- if (!buf) goto zero;
-
-#if 0 /* test for spam -- I'm not ready to deal with this */
- for (i = 0, xmax = 0, xmin = maxindex, fp = in1; i < n; i++, fp++)
- {
- t_sample f = *in1;
- if (f < xmin) xmin = f;
- else if (f > xmax) xmax = f;
- }
- if (xmax < xmin + x->c_maxextent) xmax = xmin + x->c_maxextent;
- for (i = 0, splitlo = xmin+ x->c_maxextent, splithi = xmax - x->c_maxextent,
- fp = in1; i < n; i++, fp++)
- {
- t_sample f = *in1;
- if (f > splitlo && f < splithi) goto zero;
- }
-#endif
-
- for (i = 0; i < n; i++)
- {
- t_sample findex = *in++;
- int index = findex;
- t_sample frac, a, b, c, d, cminusb;
- static int count;
- if (index < 1)
- index = 1, frac = 0;
- else if (index > maxindex)
- index = maxindex, frac = 1;
- else frac = findex - index;
- wp = buf + index;
- a = wp[-1].w_float;
- b = wp[0].w_float;
- c = wp[1].w_float;
- d = wp[2].w_float;
- /* if (!i && !(count++ & 1023))
- post("fp = %lx, shit = %lx, b = %f", fp, buf->b_shit, b); */
-// cminusb = c-b;
-// *out++ = b + frac * (
-// cminusb - 0.1666667f * (1.-frac) * (
-// (d - a - 3.0f * cminusb) * frac + (d + 2.0f*a - 3.0f*b)
-// CH
- // 4-point, 3rd-order Hermite (x-form)
- a1 = 0.5f * (c - a);
- a2 = a - 2.5 * b + 2.f * c - 0.5f * d;
- a3 = 0.5f * (d - a) + 1.5f * (b - c);
-
- *out++ = ((a3 * frac + a2) * frac + a1) * frac + b;
- }
- return (w+5);
- zero:
- while (n--) *out++ = 0;
-
- return (w+5);
-}
-
-void tabread4c_tilde_set(t_tabread4c_tilde *x, t_symbol *s)
-{
- t_garray *a;
-
- x->x_arrayname = s;
- if (!(a = (t_garray *)pd_findbyclass(x->x_arrayname, garray_class)))
- {
- if (*s->s_name)
- pd_error(x, "tabread4c~: %s: no such array", x->x_arrayname->s_name);
- x->x_vec = 0;
- }
- else if (!garray_getfloatwords(a, &x->x_npoints, &x->x_vec))
- {
- pd_error(x, "%s: bad template for tabread4c~", x->x_arrayname->s_name);
- x->x_vec = 0;
- }
- else garray_usedindsp(a);
-}
-
-static void tabread4c_tilde_dsp(t_tabread4c_tilde *x, t_signal **sp)
-{
- tabread4c_tilde_set(x, x->x_arrayname);
-
- dsp_add(tabread4c_tilde_perform, 4, x,
- sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
-
-}
-
-static void tabread4c_tilde_free(t_tabread4c_tilde *x)
-{
-}
-
-void tabread4c_tilde_setup(void)
-{
- tabread4c_tilde_class = class_new(gensym("tabread4c~"),
- (t_newmethod)tabread4c_tilde_new, (t_method)tabread4c_tilde_free,
- sizeof(t_tabread4c_tilde), 0, A_DEFSYM, 0);
- CLASS_MAINSIGNALIN(tabread4c_tilde_class, t_tabread4c_tilde, x_f);
- class_addmethod(tabread4c_tilde_class, (t_method)tabread4c_tilde_dsp,
- gensym("dsp"), 0);
- class_addmethod(tabread4c_tilde_class, (t_method)tabread4c_tilde_set,
- gensym("set"), A_SYMBOL, 0);
-}
diff --git a/tab/tabreadi~.c b/tab/tabreadi~.c
deleted file mode 100644
index 85fee98..0000000
--- a/tab/tabreadi~.c
+++ /dev/null
@@ -1,254 +0,0 @@
-// tabreadi~
-// can replace tabread4~
-// most of this code comes from pd. just the interpolation shematic is diferent.
-
-
-/*
-This software is copyrighted by Miller Puckette and others. The following
-terms (the "Standard Improved BSD License") apply to all files associated with
-the software unless explicitly disclaimed in individual files:
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-3. The name of the author may not be used to endorse or promote
- products derived from this software without specific prior
- written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-// Cyrille Henry 06 2008
-
-#include "m_pd.h"
-
-#define max(a,b) ( ((a) > (b)) ? (a) : (b) )
-#define min(a,b) ( ((a) < (b)) ? (a) : (b) )
-
-/******************** tabreadi~ ***********************/
-
-static t_class *tabreadi_tilde_class;
-
-typedef struct _tabreadi_tilde
-{
- t_object x_obj;
- int x_npoints;
- t_word *x_vec;
- t_symbol *x_arrayname;
- t_float x_f;
- t_sample x_prev_in, x_last_in, x_prev_out, x_last_out;
- t_float x_fa1, x_fa2, x_fb1, x_fb2, x_fb3;
- t_float cutoff;
- t_int upsample;
- t_float x_sr;
-} t_tabreadi_tilde;
-
-void tabreadi_tilde_cutoff(t_tabreadi_tilde *x, t_float cut)
-{
- x->cutoff = cut;
-
- if (x->cutoff == 0)
- {
- x->x_fb1 = 1;
- x->x_fb2 = 0;
- x->x_fb3 = 0;
- x->x_fa1 = 0;
- x->x_fa2 = 0;
-
- x->x_prev_in = 0;
- x->x_last_in = 0;
- x->x_prev_out = 0; // reset filter memory
- }
- else
- {
- // filter coef to cut all high freq.
- t_float tmp1, tmp2;
-
- tmp1 = sqrt(2)/2;
- tmp1 = sinh(tmp1);
-
- tmp2 = x->cutoff * 2 * 3.1415926 / (x->upsample * x->x_sr);
- tmp2 = min(6.28,tmp2);
-
- tmp1 *= sin(tmp2);
- tmp2 = cos(tmp2);
-
- x->x_fb1 = (1-tmp2 ) /2;
- x->x_fb2 = (1-tmp2 );
- x->x_fb3 = (1-tmp2 ) /2;
- x->x_fa1 = -2 * tmp2;
- x->x_fa2 = 1 - tmp1;
-
- tmp1 +=1;
-
- x->x_fb1 /= tmp1;
- x->x_fb2 /= tmp1;
- x->x_fb3 /= tmp1;
- x->x_fa1 /= tmp1;
- x->x_fa2 /= tmp1;
- }
-}
-
-static void *tabreadi_tilde_new(t_symbol *s)
-{
- t_tabreadi_tilde *x = (t_tabreadi_tilde *)pd_new(tabreadi_tilde_class);
- x->x_arrayname = s;
- x->x_vec = 0;
- outlet_new(&x->x_obj, gensym("signal"));
- x->x_f = 0;
- x->cutoff = 0;
- x->upsample = 1;
- x->x_sr = 44100;
- tabreadi_tilde_cutoff(x,0); // comput filter coef return (x);
-}
-
-static t_int *tabreadi_tilde_perform(t_int *w)
-{
- t_tabreadi_tilde *x = (t_tabreadi_tilde *)(w[1]);
- t_sample *in = (t_sample *)(w[2]);
- t_sample *out = (t_sample *)(w[3]);
- int n = (int)(w[4]);
- int maxindex;
- t_word *buf = x->x_vec, *wp;
- int i;
- double a3,a1,a2; // CH
-
- maxindex = x->x_npoints - 3;
-
- if (!buf) goto zero;
-
-#if 0 /* test for spam -- I'm not ready to deal with this */
- for (i = 0, xmax = 0, xmin = maxindex, fp = in1; i < n; i++, fp++)
- {
- t_sample f = *in1;
- if (f < xmin) xmin = f;
- else if (f > xmax) xmax = f;
- }
- if (xmax < xmin + x->c_maxextent) xmax = xmin + x->c_maxextent;
- for (i = 0, splitlo = xmin+ x->c_maxextent, splithi = xmax - x->c_maxextent,
- fp = in1; i < n; i++, fp++)
- {
- t_sample f = *in1;
- if (f > splitlo && f < splithi) goto zero;
- }
-#endif
-
- for (i = 0; i < n; i++)
- {
- for (i=0;i<x->upsample;i++)
- {
- t_sample findex = *in++; // ??? comment limiter ca pour faire un band limited????
- int index = findex;
- t_sample frac, a, b, c, d, cminusb;
- static int count;
- if (index < 1)
- index = 1, frac = 0;
- else if (index > maxindex)
- index = maxindex, frac = 1;
- else frac = findex - index;
- wp = buf + index;
- a = wp[-1].w_float;
- b = wp[0].w_float;
- c = wp[1].w_float;
- d = wp[2].w_float;
- /* if (!i && !(count++ & 1023))
- post("fp = %lx, shit = %lx, b = %f", fp, buf->b_shit, b); */
-// cminusb = c-b;
-// *out++ = b + frac * (
-// cminusb - 0.1666667f * (1.-frac) * (
-// (d - a - 3.0f * cminusb) * frac + (d + 2.0f*a - 3.0f*b)
-// CH
- // 4-point, 3rd-order Hermite (x-form)
- a1 = 0.5f * (c - a);
- a2 = a - 2.5 * b + 2.f * c - 0.5f * d;
- a3 = 0.5f * (d - a) + 1.5f * (b - c);
-
-
-// TODO
-
- }
-
- *out++ = ((a3 * frac + a2) * frac + a1) * frac + b;
- }
- return (w+5);
- zero:
- while (n--) *out++ = 0;
-
- return (w+5);
-}
-
-void tabreadi_tilde_set(t_tabreadi_tilde *x, t_symbol *s)
-{
- t_garray *a;
-
- x->x_arrayname = s;
- if (!(a = (t_garray *)pd_findbyclass(x->x_arrayname, garray_class)))
- {
- if (*s->s_name)
- pd_error(x, "tabreadi~: %s: no such array", x->x_arrayname->s_name);
- x->x_vec = 0;
- }
- else if (!garray_getfloatwords(a, &x->x_npoints, &x->x_vec))
- {
- pd_error(x, "%s: bad template for tabreadi~", x->x_arrayname->s_name);
- x->x_vec = 0;
- }
- else garray_usedindsp(a);
-}
-
-
-void tabreadi_tilde_upsample(t_tabreadi_tilde *x, t_float up)
-{
- x->upsample = max(1,up);
- tabreadi_tilde_cutoff(x,x->cutoff);
-}
-
-
-static void tabreadi_tilde_dsp(t_tabreadi_tilde *x, t_signal **sp)
-{
- if (x->x_sr != sp[0]->s_sr)
- {
- x->x_sr = sp[0]->s_sr;
- tabreadi_tilde_cutoff(x,x->cutoff);
- }
-
- tabreadi_tilde_set(x, x->x_arrayname);
-
- dsp_add(tabreadi_tilde_perform, 4, x,
- sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
-
-}
-
-static void tabreadi_tilde_free(t_tabreadi_tilde *x)
-{
-}
-
-void tabreadi_tilde_setup(void)
-{
- tabreadi_tilde_class = class_new(gensym("tabreadi~"),
- (t_newmethod)tabreadi_tilde_new, (t_method)tabreadi_tilde_free,
- sizeof(t_tabreadi_tilde), 0, A_DEFSYM, 0);
- CLASS_MAINSIGNALIN(tabreadi_tilde_class, t_tabreadi_tilde, x_f);
- class_addmethod(tabreadi_tilde_class, (t_method)tabreadi_tilde_dsp,
- gensym("dsp"), 0);
- class_addmethod(tabreadi_tilde_class, (t_method)tabreadi_tilde_set,
- gensym("set"), A_SYMBOL, 0);
-}
diff --git a/tab/vdc~-help.pd b/tab/vdc~-help.pd
deleted file mode 100644
index ce59096..0000000
--- a/tab/vdc~-help.pd
+++ /dev/null
@@ -1,18 +0,0 @@
-#N canvas 695 59 307 351 12;
-#X floatatom 35 39 0 0 0 0 - - -;
-#X text 115 131 signal output (delayed signal);
-#X obj 35 67 sig~;
-#X text 84 64 signal input (delay time in ms);
-#X text 178 97 creation argument: name of delay line;
-#X obj 31 297 phasor~;
-#X msg 31 272 222;
-#X obj 31 248 loadbang;
-#X obj 34 159 oscillo~;
-#X obj 34 92 vdc~ test;
-#X obj 32 322 delwrite~ test 1000;
-#X connect 0 0 2 0;
-#X connect 2 0 9 0;
-#X connect 5 0 10 0;
-#X connect 6 0 5 0;
-#X connect 7 0 6 0;
-#X connect 9 0 8 0;
diff --git a/tab/vdc~.c b/tab/vdc~.c
deleted file mode 100644
index c2efbd0..0000000
--- a/tab/vdc~.c
+++ /dev/null
@@ -1,93 +0,0 @@
-#include "m_pd.h"
-#include "d_delay.c"
-
-
-/* ----------------------------- vdc~ ----------------------------- */
-static t_class *sigvdc_class;
-
-typedef struct _sigvdc
-{
- t_object x_obj;
- t_symbol *x_sym;
- t_float x_sr; /* samples per msec */
- int x_zerodel; /* 0 or vecsize depending on read/write order */
- t_float x_f;
-} t_sigvdc;
-
-static void *sigvdc_new(t_symbol *s)
-{
- t_sigvdc *x = (t_sigvdc *)pd_new(sigvdc_class);
- if (!*s->s_name) s = gensym("vdc~");
- x->x_sym = s;
- x->x_sr = 1;
- x->x_zerodel = 0;
- outlet_new(&x->x_obj, &s_signal);
- x->x_f = 0;
- return (x);
-}
-
-
-static t_int *sigvdc_perform(t_int *w)
-{
- t_sample *in = (t_sample *)(w[1]);
- t_sample *out = (t_sample *)(w[2]);
- t_delwritectl *ctl = (t_delwritectl *)(w[3]);
- t_sigvdc *x = (t_sigvdc *)(w[4]);
- int n = (int)(w[5]);
-
- int nsamps = ctl->c_n;
- t_sample limit = nsamps - n - 1;
- t_sample fn = n-1;
- t_sample *vp = ctl->c_vec, *bp, *wp = vp + ctl->c_phase;
- t_sample zerodel = x->x_zerodel;
- while (n--)
- {
- t_sample delsamps = x->x_sr * *in++ - zerodel, frac;
- int idelsamps;
- t_sample a, b, c, d, cminusb;
- if (delsamps < 1.00001f) delsamps = 1.00001f;
- if (delsamps > limit) delsamps = limit;
- delsamps += fn;
- fn = fn - 1.0f;
- idelsamps = delsamps;
- frac = delsamps - (t_sample)idelsamps;
- bp = wp - idelsamps;
- if (bp < vp + 4) bp += nsamps;
- d = bp[-3];
- c = bp[-2];
- b = bp[-1];
- a = bp[0];
- cminusb = c-b;
- *out++ = b + frac * (
- cminusb - 0.1666667f * (1.-frac) * (
- (d - a - 3.0f * cminusb) * frac + (d + 2.0f*a - 3.0f*b)
- )
- );
- }
- return (w+6);
-}
-
-static void sigvdc_dsp(t_sigvdc *x, t_signal **sp)
-{
- t_sigdelwrite *delwriter =
- (t_sigdelwrite *)pd_findbyclass(x->x_sym, sigdelwrite_class);
- x->x_sr = sp[0]->s_sr * 0.001;
- if (delwriter)
- {
- sigdelwrite_checkvecsize(delwriter, sp[0]->s_n);
- x->x_zerodel = (delwriter->x_sortno == ugen_getsortno() ?
- 0 : delwriter->x_vecsize);
- dsp_add(sigvdc_perform, 5,
- sp[0]->s_vec, sp[1]->s_vec,
- &delwriter->x_cspace, x, sp[0]->s_n);
- }
- else error("vdc~: %s: no such delwrite~",x->x_sym->s_name);
-}
-
-void vdc_tilde_setup(void)
-{
- sigvdc_class = class_new(gensym("vdc~"), (t_newmethod)sigvdc_new, 0,
- sizeof(t_sigvdc), 0, A_DEFSYM, 0);
- class_addmethod(sigvdc_class, (t_method)sigvdc_dsp, gensym("dsp"), 0);
- CLASS_MAINSIGNALIN(sigvdc_class, t_sigvdc, x_f);
-}