aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas O Fredericks <mrtof@users.sourceforge.net>2009-10-28 13:28:46 +0000
committerThomas O Fredericks <mrtof@users.sourceforge.net>2009-10-28 13:28:46 +0000
commit89db37262cee46814540edef54a6db96096e1ee1 (patch)
tree97ffaae5116bda012c2cea8ca1641ded089b2872
parentf18d063d9312c95e25294e0777bc135ee9a3fd8a (diff)
Updated mtl abstractions
svn path=/trunk/abstractions/mtl/; revision=12691
-rw-r--r--1.mtlBrowser.pd (renamed from 1-13LP.pd)116
-rw-r--r--TODO4
-rw-r--r--ambiCatch7~-help.pd7
-rw-r--r--ambiCatch7~.pd22
-rw-r--r--ambiDistance7~-help.pd66
-rw-r--r--ambiDistance7~.pd87
-rw-r--r--ambiGain3~-help.pd36
-rw-r--r--ambiGain3~.pd41
-rw-r--r--ambiGain4~-help.pd36
-rw-r--r--ambiGain4~.pd47
-rw-r--r--ambiGain7~-help.pd48
-rw-r--r--ambiGain7~.pd65
-rw-r--r--ambiLimiter4~-help.pd29
-rw-r--r--ambiLimiter4~.pd42
-rw-r--r--ambiLimiter6~-help.pd44
-rw-r--r--ambiLimiter6~.pd60
-rw-r--r--ambiMonoToWxyuvpq~-help.pd48
-rw-r--r--ambiMonoToWxyuvpq~.pd96
-rw-r--r--ambiMonoToWxyz~-help.pd92
-rw-r--r--ambiMonoToWxyz~.pd73
-rw-r--r--ambiMonoToWxy~-help.pd26
-rw-r--r--ambiMonoToWxy~.pd43
-rw-r--r--ambiReceive7~-help.pd5
-rw-r--r--ambiReceive7~.pd22
-rw-r--r--ambiRotateWxyuvpq~-help.pd5
-rw-r--r--ambiRotateWxyuvpq~.pd136
-rw-r--r--ambiRotateWxy~-help.pd6
-rw-r--r--ambiRotateWxy~.pd74
-rw-r--r--ambiSend7~-help.pd5
-rw-r--r--ambiSend7~.pd22
-rw-r--r--ambiSfRead4~-help.pd70
-rw-r--r--ambiSfRead4~.pd144
-rw-r--r--ambiSfWrite4~-help.pd57
-rw-r--r--ambiSfWrite4~.pd49
-rw-r--r--ambiSfWrite7~-help.pd61
-rw-r--r--ambiSfWrite7~.pd55
-rw-r--r--ambiTable4-help.pd24
-rw-r--r--ambiTable4.pd179
-rw-r--r--ambiTablePlay3~-help.pd62
-rw-r--r--ambiTablePlay3~.pd58
-rw-r--r--ambiTableRead3~-help.pd123
-rw-r--r--ambiTableRead3~.pd46
-rw-r--r--ambiThrow7~-help.pd7
-rw-r--r--ambiThrow7~.pd22
-rw-r--r--ambiVu3~-help.pd14
-rw-r--r--ambiVu3~.pd40
-rw-r--r--ambiVu4~-help.pd16
-rw-r--r--ambiVu4~.pd47
-rw-r--r--ambiVu7~-help.pd18
-rw-r--r--ambiVu7~.pd68
-rw-r--r--ambiWxyToMono~-help.pd27
-rw-r--r--ambiWxyToMono~.pd40
-rw-r--r--ambiWxyToQuad~-help.pd16
-rw-r--r--ambiWxyToQuad~.pd41
-rw-r--r--ambiWxyToWxyuvpq~-help.pd5
-rw-r--r--ambiWxyToWxyuvpq~.pd18
-rw-r--r--ambiWxyuvpqToMono~-help.pd67
-rw-r--r--ambiWxyuvpqToMono~.pd88
-rw-r--r--ambiWxyzToMono~-help.pd92
-rw-r--r--ambiWxyzToMono~.pd58
-rw-r--r--ambiZoomRead~-help.pd100
-rw-r--r--ambiZoomRead~.pd164
-rw-r--r--ambiZoomToWxy~-help.pd35
-rw-r--r--ambiZoomToWxy~.pd47
-rw-r--r--browser.pd116
-rw-r--r--channel~-help.pd57
-rw-r--r--channel~.pd37
-rw-r--r--clk-quantization-help.pd2
-rw-r--r--compress~-help.pd39
-rw-r--r--compress~.pd39
-rw-r--r--core.txt32
-rw-r--r--delayPhasor~-help.pd27
-rw-r--r--delayPhasor~.pd35
-rw-r--r--distoAp~-help.pd95
-rw-r--r--distoAp~.pd3
-rw-r--r--distoCrusher~-help.pd31
-rw-r--r--distoCrusher~.pd3
-rw-r--r--distoFuzz~-help.pd47
-rw-r--r--distoFuzz~.pd3
-rw-r--r--distoLofi~-help.pd35
-rw-r--r--distoLofi~.pd3
-rw-r--r--distoNonmonotone~-help.pd101
-rw-r--r--distoNonmonotone~.pd7
-rw-r--r--distoSign~-help.pd29
-rw-r--r--distoSign~.pd3
-rw-r--r--distoTanh~-help.pd39
-rw-r--r--distoTanh~.pd5
-rw-r--r--echoBp~-help.pd88
-rw-r--r--echoBp~.pd17
-rw-r--r--echoRobot~-help.pd27
-rw-r--r--echoRobot~.pd5
-rw-r--r--echoVd~-help.pd19
-rw-r--r--echoVd~.pd5
-rw-r--r--eq~-help.pd37
-rw-r--r--eq~.pd39
-rw-r--r--filterPeakSig~-help.pd27
-rw-r--r--filterPeakSig~.pd29
-rw-r--r--gateNoise~-help.pd53
-rw-r--r--gateNoise~.pd49
-rw-r--r--granularLive~-help.pd40
-rw-r--r--granularLive~.pd3
-rw-r--r--love.txt8
-rwxr-xr-xmakecore.sh2
-rw-r--r--pitchShift~-help.pd31
-rw-r--r--pitchShift~.pd5
-rw-r--r--reverbCm~-help.pd23
-rw-r--r--reverbCm~.pd5
-rw-r--r--reverbFdn~-help.pd26
-rw-r--r--reverbFdn~.pd5
-rw-r--r--reverbFree~-help.pd31
-rw-r--r--reverbFree~.pd5
-rw-r--r--sfIndexer-help.pd26
-rw-r--r--sfIndexer.pd2
113 files changed, 4089 insertions, 667 deletions
diff --git a/1-13LP.pd b/1.mtlBrowser.pd
index 48259d8..3acd93e 100644
--- a/1-13LP.pd
+++ b/1.mtlBrowser.pd
@@ -1,37 +1,37 @@
-#N canvas 184 399 401 173 10;
-#X obj 137 17 vsl 15 115 0 175 0 0 \$0_slider_s0 \$0_slider_r0 empty
-0 -8 0 8 -1 -228856 -228856 11400 0;
-#X obj -45 45 hradio 15 1 0 12 \$0_hr_2_s0 \$0_hr_2_r0 behavior 2 8
-1 9 -1 -1 -262140 0;
-#X obj -45 60 hradio 15 1 0 12 \$0_hr_3_s0 \$0_hr_3_r0 control~ 2 8
-1 9 -1 -1 -262140 0;
-#X obj -45 75 hradio 15 1 0 12 \$0_hr_4_s0 \$0_hr_4_r0 conversion 2
-8 1 9 -1 -1 -262140 0;
-#X obj -45 90 hradio 15 1 0 12 \$0_hr_5_s0 \$0_hr_5_r0 counter 2 8
-1 9 -1 -1 -262140 0;
-#X obj -45 105 hradio 15 1 0 12 \$0_hr_6_s0 \$0_hr_6_r0 data 2 8 1
-9 -1 -1 -262140 0;
-#X obj -45 120 hradio 15 1 0 12 \$0_hr_7_s0 \$0_hr_7_r0 examples 2
+#N canvas 710 179 403 172 10;
+#X obj 185 17 vsl 15 115 0 175 0 0 \$0_slider_s0 \$0_slider_r0 empty
+0 -8 0 8 -1 -228856 -228856 7800 0;
+#X obj 3 45 hradio 15 1 0 12 \$0_hr_2_s0 \$0_hr_2_r0 fx~ 2 8 1 9 -1
+-1 -258401 0;
+#X obj 3 60 hradio 15 1 0 12 \$0_hr_3_s0 \$0_hr_3_r0 gems 2 8 1 9 -1
+-1 -262140 0;
+#X obj 3 75 hradio 15 1 0 12 \$0_hr_4_s0 \$0_hr_4_r0 info 2 8 1 9 -1
+-1 -262140 0;
+#X obj 3 90 hradio 15 1 0 12 \$0_hr_5_s0 \$0_hr_5_r0 info~ 2 8 1 9
+-1 -1 -262140 0;
+#X obj 3 105 hradio 15 1 0 12 \$0_hr_6_s0 \$0_hr_6_r0 initialization
+2 8 1 9 -1 -1 -262140 0;
+#X obj 3 120 hradio 15 1 0 12 \$0_hr_7_s0 \$0_hr_7_r0 instrument~ 2
8 1 9 -1 -1 -262140 0;
-#X obj 336 17 vsl 15 115 0 175 0 0 \$0_slider_s \$0_slider_r empty
+#X obj 384 17 vsl 15 115 0 175 0 0 \$0_slider_s \$0_slider_r empty
0 -8 0 8 -1 -228856 -1 11400 0;
-#X obj 154 15 hradio 15 1 0 12 \$0_hr_0_s \$0_hr_0_r empty 2 8 1 9
--1 -1 -262140 0;
-#X obj 154 30 hradio 15 1 0 12 \$0_hr_1_s \$0_hr_1_r empty 2 8 1 9
--1 -1 -262140 0;
-#X obj 154 45 hradio 15 1 0 12 \$0_hr_2_s \$0_hr_2_r empty 2 8 1 9
--1 -1 -262140 0;
-#X obj 154 60 hradio 15 1 0 12 \$0_hr_3_s \$0_hr_3_r empty 2 8 1 9
--1 -1 -262140 0;
-#X obj 154 75 hradio 15 1 0 12 \$0_hr_4_s \$0_hr_4_r empty 2 8 1 9
--1 -1 -262140 0;
-#X obj 154 90 hradio 15 1 0 12 \$0_hr_5_s \$0_hr_5_r empty 2 8 1 9
--1 -1 -262140 0;
-#X obj 154 105 hradio 15 1 0 12 \$0_hr_6_s \$0_hr_6_r empty 2 8 1 9
--1 -1 -262140 0;
-#X obj 154 120 hradio 15 1 0 12 \$0_hr_7_s \$0_hr_7_r empty 2 8 1 9
--1 -1 -262140 0;
-#N canvas 1058 43 723 396 ./browser 0;
+#X obj 202 15 hradio 15 1 0 12 \$0_hr_0_s \$0_hr_0_r mtl/delayPhasor~
+2 8 1 9 -1 -1 -258401 4;
+#X obj 202 30 hradio 15 1 0 12 \$0_hr_1_s \$0_hr_1_r cyclone/delay~
+2 8 1 9 -1 -1 -262140 0;
+#X obj 202 45 hradio 15 1 0 12 \$0_hr_2_s \$0_hr_2_r mtl/distoAp~ 2
+8 1 9 -1 -1 -262140 0;
+#X obj 202 60 hradio 15 1 0 12 \$0_hr_3_s \$0_hr_3_r mtl/distoCrusher~
+2 8 1 9 -1 -1 -262140 0;
+#X obj 202 75 hradio 15 1 0 12 \$0_hr_4_s \$0_hr_4_r mtl/distoFuzz~
+2 8 1 9 -1 -1 -262140 0;
+#X obj 202 90 hradio 15 1 0 12 \$0_hr_5_s \$0_hr_5_r mtl/distoLofi~
+2 8 1 9 -1 -1 -262140 0;
+#X obj 202 105 hradio 15 1 0 12 \$0_hr_6_s \$0_hr_6_r mtl/distoNonmonotone~
+2 8 1 9 -1 -1 -262140 0;
+#X obj 202 120 hradio 15 1 0 12 \$0_hr_7_s \$0_hr_7_r mtl/distoSign~
+2 8 1 9 -1 -1 -262140 0;
+#N canvas 301 43 723 396 ./browser 0;
#N canvas 1069 45 887 645 coll 0;
#X obj 23 -42 inlet;
#X obj 247 -40 inlet;
@@ -363,16 +363,11 @@
#X obj 169 543 zexy/demultiplex 0 1;
#X obj 96 207 t b a b;
#X obj 473 542 t b a;
-#X obj 884 154 hcs/folder_list;
-#X obj 884 124 tof/path current absolute;
-#X msg 884 95 symbol examples/*;
-#X obj 884 190 hcs/split_path;
-#X obj 959 235 list prepend examples;
#X obj 381 -2 t b b f b b;
#X obj 502 49 sel 1 0;
#X msg 618 120 read core.txt cr \, flush;
#X connect 0 0 22 0;
-#X connect 1 0 34 0;
+#X connect 1 0 29 0;
#X connect 2 0 22 0;
#X connect 3 0 8 0;
#X connect 3 1 5 0;
@@ -394,7 +389,7 @@
#X connect 18 0 17 0;
#X connect 18 1 19 1;
#X connect 19 0 7 0;
-#X connect 20 0 34 0;
+#X connect 20 0 29 0;
#X connect 21 0 22 0;
#X connect 22 0 25 0;
#X connect 22 1 25 1;
@@ -407,19 +402,13 @@
#X connect 27 2 4 0;
#X connect 28 0 6 0;
#X connect 28 1 24 0;
-#X connect 29 0 32 0;
-#X connect 30 0 29 0;
-#X connect 31 0 30 0;
-#X connect 32 1 33 0;
-#X connect 33 0 7 0;
-#X connect 34 0 3 0;
-#X connect 34 1 21 0;
-#X connect 34 2 35 0;
-#X connect 34 3 31 0;
-#X connect 34 4 0 0;
-#X connect 35 0 16 0;
-#X connect 35 1 36 0;
-#X connect 36 0 14 0;
+#X connect 29 0 3 0;
+#X connect 29 1 21 0;
+#X connect 29 2 30 0;
+#X connect 29 4 0 0;
+#X connect 30 0 16 0;
+#X connect 30 1 31 0;
+#X connect 31 0 14 0;
#X restore 321 63 pd readTags;
#N canvas 178 252 827 449 coll 0;
#X obj 23 -42 inlet;
@@ -647,6 +636,8 @@
#X obj 411 -9 t b f b b;
#X obj 258 137 s \$0_slider_r;
#X obj 435 97 t b b b;
+#X obj 369 -61 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
#X connect 1 0 0 0;
#X connect 1 1 0 1;
#X connect 2 0 0 0;
@@ -679,16 +670,19 @@
#X connect 25 0 8 0;
#X connect 25 1 5 0;
#X connect 25 2 13 0;
-#X restore 229 -9 pd ./browser;
-#X obj -45 15 hradio 15 1 0 12 \$0_hr_0_s0 \$0_hr_0_r0 2d 2 8 1 9 -1
+#X connect 26 0 22 0;
+#X restore 277 -9 pd ./browser;
+#X obj 3 15 hradio 15 1 0 12 \$0_hr_0_s0 \$0_hr_0_r0 file 2 8 1 9 -1
-1 -262140 0;
-#X obj -45 31 hradio 15 1 0 12 \$0_hr_1_s0 \$0_hr_1_r0 3d 2 8 1 9 -1
--1 -262140 0;
-#X obj -45 -9 cnv 15 198 22 empty empty TAG 1 12 1 12 -16645 -228856
+#X obj 3 31 hradio 15 1 0 12 \$0_hr_1_s0 \$0_hr_1_r0 file~ 2 8 1 9
+-1 -1 -262140 0;
+#X obj 3 -9 cnv 15 198 22 empty empty TAG 1 12 1 12 -16645 -228856
0;
-#X obj 154 -9 cnv 15 197 22 empty empty CLASS/ABSTRACTION 0 12 1 12
+#X obj 202 -9 cnv 15 197 22 empty empty CLASS/ABSTRACTION 0 12 1 12
-16645 -228856 0;
-#X obj -45 137 cnv 15 396 20 empty empty empty 20 12 0 14 -16645 -258401
+#X obj 3 137 cnv 15 396 20 empty empty empty 20 12 0 14 -16645 -258401
0;
-#X obj -41 141 tgl 11 0 \$0love \$0lover with:love 17 6 0 8 -162280
--262144 -258401 1 1;
+#X obj 7 141 tgl 11 0 \$0love \$0lover with:love 17 6 0 8 -162280 -262144
+-258401 1 1;
+#X obj 146 141 cnv 15 100 10 empty empty http://wiki.dataflow.ws/PdMtlAbstractions
+0 6 0 8 -16645 -99865 0;
diff --git a/TODO b/TODO
index 7a9cf17..e8db193 100644
--- a/TODO
+++ b/TODO
@@ -3,8 +3,8 @@
------------------------------------------------------
PROBLEMS - QUESTIONS - FEATURES
-
-
+- clk-quantization-help.pd ? Yep. It is used in clk*
+- param-enabled-help.pd should be where? Where it is.
- gems-fft~ : readsf~ fonctionne pas - Aha! Tu as sauvegardé le fichier avec lorsque tu avais la mauvaise version de tof/increment!
- gems-sobel_filter fonctionne pas au complet (le video n'est pas affecte pas les differents settings) - La vidéo est changée, je ne comprend pas le problème que tu soulignes
- gemsPolygon 1148-dynamicpatch 0 30 3 31 (route->polygon) connection failed - Aucune erreure ici non plus?
diff --git a/ambiCatch7~-help.pd b/ambiCatch7~-help.pd
new file mode 100644
index 0000000..ea2ae7b
--- /dev/null
+++ b/ambiCatch7~-help.pd
@@ -0,0 +1,7 @@
+#N canvas 1 57 403 148 10;
+#X text 14 9 Description: Catches 7 signals.;
+#X text 317 4 See;
+#X obj 320 21 catch~;
+#X text 14 24 tags: ambisonic;
+#X obj 16 103 mtl/ambiThrow7~ bar;
+#X obj 15 73 mtl/ambiCatch7~ bar;
diff --git a/ambiCatch7~.pd b/ambiCatch7~.pd
new file mode 100644
index 0000000..3114ecd
--- /dev/null
+++ b/ambiCatch7~.pd
@@ -0,0 +1,22 @@
+#N canvas 123 273 515 126 10;
+#X obj 23 59 outlet~;
+#X obj 91 58 outlet~;
+#X obj 162 58 outlet~;
+#X obj 230 57 outlet~;
+#X obj 286 55 outlet~;
+#X obj 357 55 outlet~;
+#X obj 407 53 outlet~;
+#X obj 20 29 catch~ \$1-1;
+#X obj 90 29 catch~ \$1-2;
+#X obj 164 29 catch~ \$1-3;
+#X obj 233 27 catch~ \$1-4;
+#X obj 289 6 catch~ \$1-5;
+#X obj 339 30 catch~ \$1-6;
+#X obj 420 20 catch~ \$1-7;
+#X connect 7 0 0 0;
+#X connect 8 0 1 0;
+#X connect 9 0 2 0;
+#X connect 10 0 3 0;
+#X connect 11 0 4 0;
+#X connect 12 0 5 0;
+#X connect 13 0 6 0;
diff --git a/ambiDistance7~-help.pd b/ambiDistance7~-help.pd
new file mode 100644
index 0000000..0ca2efd
--- /dev/null
+++ b/ambiDistance7~-help.pd
@@ -0,0 +1,66 @@
+#N canvas 256 351 807 489 10;
+#X obj 64 137 noise~;
+#X floatatom 410 164 5 0 0 0 - - -;
+#X obj 413 143 hsl 200 15 0 6 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 3317 1;
+#X obj 64 381 dac~ 1 2;
+#X msg 410 184 distance \$1;
+#X msg 409 118 1;
+#X obj 407 95 loadbang;
+#X text 3 -43 Description: Changes the perceptual distance of a 3rd
+order horizontal Ambisonic sound source.;
+#X text 3 2 Alters only the amplitude of the w versus xyuvpq channels.
+;
+#X text 5 18 1 represents the unit circle \, which is the actual distance
+of the speakers circle around the listener.;
+#X text 2 80 At a distance of 18 \, there is no more sound.;
+#X text 3 64 Every step of 1 makes the sound -6dB quieter. (half as
+loud);
+#X obj 470 287 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X obj 676 288 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X obj 469 247 expr (1-$f1)*6 \; if ($f1<1 \, (1-$f1)*-100 \, (1-$f1)*6)
+;
+#X text 458 122 Distance (1 is the unit circle);
+#X text 6 45 0 represents the center of the circle.;
+#X text 480 207 Here is the algorythm:;
+#X text 481 222 Is is slightly simplified.;
+#X text 660 416 Other channels;
+#X text 465 414 Amplitude of W;
+#X text 4 95 It can be used with other Ambisonic orders that use 7
+channels or less.;
+#X text 3 -19 tags: ambisonic;
+#X obj 64 263 mtl/ambiDistance7~ distance 6;
+#X obj 64 351 mtl/ambiWxyuvpqToMono~ angle 90;
+#X obj 63 175 mtl/ambiMonoToWxyuvpq~ angle 90;
+#X obj 264 351 mtl/ambiWxyuvpqToMono~ angle 270;
+#X connect 0 0 25 0;
+#X connect 1 0 4 0;
+#X connect 1 0 14 0;
+#X connect 2 0 1 0;
+#X connect 5 0 2 0;
+#X connect 6 0 5 0;
+#X connect 14 0 12 0;
+#X connect 14 1 13 0;
+#X connect 23 0 24 0;
+#X connect 23 0 26 0;
+#X connect 23 1 24 1;
+#X connect 23 1 26 1;
+#X connect 23 2 24 2;
+#X connect 23 2 26 2;
+#X connect 23 3 24 3;
+#X connect 23 3 26 3;
+#X connect 23 4 24 4;
+#X connect 23 4 26 4;
+#X connect 23 5 24 5;
+#X connect 23 5 26 5;
+#X connect 23 6 24 6;
+#X connect 23 6 26 6;
+#X connect 24 0 3 0;
+#X connect 25 0 23 0;
+#X connect 25 1 23 1;
+#X connect 25 2 23 2;
+#X connect 25 3 23 3;
+#X connect 25 4 23 4;
+#X connect 25 5 23 5;
+#X connect 25 6 23 6;
+#X connect 26 0 3 1;
diff --git a/ambiDistance7~.pd b/ambiDistance7~.pd
new file mode 100644
index 0000000..647774b
--- /dev/null
+++ b/ambiDistance7~.pd
@@ -0,0 +1,87 @@
+#N canvas 391 294 985 546 10;
+#X obj 554 66 inlet;
+#X obj 603 56 loadbang;
+#X obj 603 77 t b b;
+#X obj 13 52 inlet~ w;
+#X obj 78 51 inlet~ x;
+#X obj 147 51 inlet~ y;
+#X obj 212 50 inlet~ u;
+#X obj 277 48 inlet~ v;
+#X obj 346 48 inlet~ p;
+#X obj 411 47 inlet~ q;
+#X obj 472 188 f;
+#X obj 89 388 *~;
+#X obj 116 388 *~;
+#X obj 145 388 *~;
+#X obj 174 389 *~;
+#X obj 204 389 *~;
+#X obj 234 388 *~;
+#X obj 21 387 *~;
+#X obj 21 455 outlet~ w;
+#X obj 92 458 outlet~ x;
+#X obj 169 457 outlet~ y;
+#X obj 234 456 outlet~ u;
+#X obj 301 455 outlet~ v;
+#X obj 369 455 outlet~ p;
+#X obj 453 456 outlet~ q;
+#X obj 537 339 line~;
+#X msg 736 123 distance 1;
+#X obj 444 315 line~;
+#X obj 444 291 pack f 15;
+#X obj 537 318 pack f 15;
+#X obj 554 152 route distance duration;
+#X obj 620 278 f;
+#X obj 540 252 expr if ($f1<1 \, (1-$f1)*-100 \, (1-$f1)*6);
+#X obj 449 215 expr (1-$f1)*6;
+#X text 558 217 <-- W amplitude equation;
+#X text 793 247 <-- xyuvpq equation;
+#X obj 447 236 + 100;
+#X obj 540 273 + 100;
+#X obj 537 296 dbtorms;
+#X obj 443 261 dbtorms;
+#X text 61 482 See http://www.york.ac.uk/inst/mustech/3d_audio/ambis2.htm
+;
+#X obj 474 166 clip 0 20;
+#X obj 603 123 tof/arguments comma;
+#X connect 0 0 30 0;
+#X connect 1 0 2 0;
+#X connect 2 0 42 0;
+#X connect 2 1 26 0;
+#X connect 3 0 17 0;
+#X connect 4 0 11 0;
+#X connect 5 0 12 0;
+#X connect 6 0 13 0;
+#X connect 7 0 14 0;
+#X connect 8 0 15 0;
+#X connect 9 0 16 0;
+#X connect 10 0 33 0;
+#X connect 10 0 32 0;
+#X connect 11 0 19 0;
+#X connect 12 0 20 0;
+#X connect 13 0 21 0;
+#X connect 14 0 22 0;
+#X connect 15 0 23 0;
+#X connect 16 0 24 0;
+#X connect 17 0 18 0;
+#X connect 25 0 11 1;
+#X connect 25 0 12 1;
+#X connect 25 0 13 1;
+#X connect 25 0 14 1;
+#X connect 25 0 15 1;
+#X connect 25 0 16 1;
+#X connect 26 0 30 0;
+#X connect 27 0 17 1;
+#X connect 28 0 27 0;
+#X connect 29 0 25 0;
+#X connect 30 0 41 0;
+#X connect 30 1 31 0;
+#X connect 31 0 29 1;
+#X connect 31 0 28 1;
+#X connect 32 0 37 0;
+#X connect 33 0 36 0;
+#X connect 36 0 39 0;
+#X connect 37 0 38 0;
+#X connect 38 0 29 0;
+#X connect 39 0 28 0;
+#X connect 41 0 10 0;
+#X connect 42 0 30 0;
diff --git a/ambiGain3~-help.pd b/ambiGain3~-help.pd
new file mode 100644
index 0000000..9b4dc90
--- /dev/null
+++ b/ambiGain3~-help.pd
@@ -0,0 +1,36 @@
+#N canvas 475 232 526 389 10;
+#X obj 16 49 noise~;
+#X floatatom 341 178 5 0 0 0 - - -;
+#X obj 17 304 dac~ 1 2;
+#X obj 416 196 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X msg 341 198 gain \$1;
+#X obj 342 35 vsl 15 128 -100 6 0 0 empty empty empty 0 -9 0 10 -258113
+-1 -1 11262 1;
+#X obj 339 -8 loadbang;
+#X msg 340 11 -6;
+#X text 9 5 0dB is unity in RMS. -100dB is silence.;
+#X text 10 21 +6dB is twice as loud.;
+#X text 3 -43 Description: Changes the gain (in dB) of 3 signals.;
+#X text 3 -28 tags: ambisonic;
+#X obj 17 186 mtl/ambiGain3~ gain -6;
+#X obj 16 97 mtl/ambiMonoToWxy~ angle 90;
+#X obj 17 274 mtl/ambiWxyToMono~ angle 90;
+#X obj 196 275 mtl/ambiWxyToMono~ angle 270;
+#X connect 0 0 13 0;
+#X connect 1 0 4 0;
+#X connect 1 0 3 0;
+#X connect 4 0 12 3;
+#X connect 5 0 1 0;
+#X connect 6 0 7 0;
+#X connect 7 0 5 0;
+#X connect 12 0 14 0;
+#X connect 12 0 15 0;
+#X connect 12 1 14 1;
+#X connect 12 1 15 1;
+#X connect 12 2 14 2;
+#X connect 12 2 15 2;
+#X connect 13 0 12 0;
+#X connect 13 1 12 1;
+#X connect 13 2 12 2;
+#X connect 14 0 2 0;
+#X connect 15 0 2 1;
diff --git a/ambiGain3~.pd b/ambiGain3~.pd
new file mode 100644
index 0000000..1bb25ce
--- /dev/null
+++ b/ambiGain3~.pd
@@ -0,0 +1,41 @@
+#N canvas 1 57 791 508 10;
+#X obj 19 411 outlet~ w;
+#X obj 141 438 outlet~ x;
+#X obj 218 437 outlet~ y;
+#X obj 510 144 inlet;
+#X obj 140 345 *~;
+#X obj 258 349 *~;
+#X obj 416 322 line~;
+#X obj 24 345 *~;
+#X obj 39 140 inlet~ w;
+#X obj 104 139 inlet~ x;
+#X obj 173 139 inlet~ y;
+#X obj 611 88 loadbang;
+#X obj 605 117 t b b;
+#X obj 509 257 pack 0 15;
+#X obj 517 230 dbtorms;
+#X obj 518 208 + 100;
+#X msg 655 126 gain 0;
+#X obj 551 184 route gain duration float;
+#X obj 600 150 tof/arguments comma;
+#X connect 3 0 17 0;
+#X connect 4 0 1 0;
+#X connect 5 0 2 0;
+#X connect 6 0 5 1;
+#X connect 6 0 4 1;
+#X connect 6 0 7 1;
+#X connect 7 0 0 0;
+#X connect 8 0 7 0;
+#X connect 9 0 4 0;
+#X connect 10 0 5 0;
+#X connect 11 0 12 0;
+#X connect 12 0 18 0;
+#X connect 12 1 16 0;
+#X connect 13 0 6 0;
+#X connect 14 0 13 0;
+#X connect 15 0 14 0;
+#X connect 16 0 17 0;
+#X connect 17 0 15 0;
+#X connect 17 1 13 1;
+#X connect 17 2 15 0;
+#X connect 18 0 17 0;
diff --git a/ambiGain4~-help.pd b/ambiGain4~-help.pd
new file mode 100644
index 0000000..fe6da0b
--- /dev/null
+++ b/ambiGain4~-help.pd
@@ -0,0 +1,36 @@
+#N canvas 475 232 521 433 10;
+#X obj 16 49 noise~;
+#X floatatom 341 178 5 0 0 0 - - -;
+#X obj 17 304 dac~ 1 2;
+#X obj 416 196 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X msg 341 198 gain \$1;
+#X obj 342 35 vsl 15 128 -100 6 0 0 empty empty empty 0 -9 0 10 -258113
+-1 -1 11262 1;
+#X obj 339 -8 loadbang;
+#X msg 340 11 -6;
+#X text 3 -43 Description: Changes the gain (in dB) of 4 signals.;
+#X text 5 -4 0dB is unity in RMS. -100dB is silence.;
+#X text 5 14 +6dB is twice as loud.;
+#X text 3 -28 tags: ambisonic;
+#X obj 17 186 mtl/ambiGain4~ gain -6;
+#X obj 16 97 mtl/ambiMonoToWxy~ angle 90;
+#X obj 17 274 mtl/ambiWxyToMono~ angle 90;
+#X obj 195 274 mtl/ambiWxyToMono~ angle 270;
+#X connect 0 0 13 0;
+#X connect 1 0 4 0;
+#X connect 1 0 3 0;
+#X connect 4 0 12 4;
+#X connect 5 0 1 0;
+#X connect 6 0 7 0;
+#X connect 7 0 5 0;
+#X connect 12 0 14 0;
+#X connect 12 0 15 0;
+#X connect 12 1 14 1;
+#X connect 12 1 15 1;
+#X connect 12 2 14 2;
+#X connect 12 2 15 2;
+#X connect 13 0 12 0;
+#X connect 13 1 12 1;
+#X connect 13 2 12 2;
+#X connect 14 0 2 0;
+#X connect 15 0 2 1;
diff --git a/ambiGain4~.pd b/ambiGain4~.pd
new file mode 100644
index 0000000..4ab1204
--- /dev/null
+++ b/ambiGain4~.pd
@@ -0,0 +1,47 @@
+#N canvas 1 57 765 510 10;
+#X obj 19 411 outlet~ w;
+#X obj 141 438 outlet~ x;
+#X obj 218 437 outlet~ y;
+#X obj 547 87 inlet;
+#X obj 140 345 *~;
+#X obj 258 349 *~;
+#X obj 370 345 *~;
+#X obj 506 283 line~;
+#X obj 24 345 *~;
+#X obj 39 140 inlet~ w;
+#X obj 104 139 inlet~ x;
+#X obj 173 139 inlet~ y;
+#X obj 238 138 inlet~ z;
+#X obj 368 424 outlet~ z;
+#X obj 611 88 loadbang;
+#X obj 605 117 t b b;
+#X obj 509 257 pack 0 15;
+#X obj 517 230 dbtorms;
+#X obj 518 208 + 100;
+#X msg 655 126 gain 0;
+#X obj 551 184 route gain duration float;
+#X obj 590 154 tof/arguments comma;
+#X connect 3 0 20 0;
+#X connect 4 0 1 0;
+#X connect 5 0 2 0;
+#X connect 6 0 13 0;
+#X connect 7 0 6 1;
+#X connect 7 0 5 1;
+#X connect 7 0 4 1;
+#X connect 7 0 8 1;
+#X connect 8 0 0 0;
+#X connect 9 0 8 0;
+#X connect 10 0 4 0;
+#X connect 11 0 5 0;
+#X connect 12 0 6 0;
+#X connect 14 0 15 0;
+#X connect 15 0 21 0;
+#X connect 15 1 19 0;
+#X connect 16 0 7 0;
+#X connect 17 0 16 0;
+#X connect 18 0 17 0;
+#X connect 19 0 20 0;
+#X connect 20 0 18 0;
+#X connect 20 1 16 1;
+#X connect 20 2 18 0;
+#X connect 21 0 20 0;
diff --git a/ambiGain7~-help.pd b/ambiGain7~-help.pd
new file mode 100644
index 0000000..c99a06f
--- /dev/null
+++ b/ambiGain7~-help.pd
@@ -0,0 +1,48 @@
+#N canvas 474 200 587 468 10;
+#X obj 63 126 noise~;
+#X floatatom 410 164 5 0 0 0 - - -;
+#X obj 64 381 dac~ 1 2;
+#X obj 485 182 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X msg 410 184 gain \$1;
+#X obj 411 21 vsl 15 128 -100 6 0 0 empty empty empty 0 -9 0 10 -258113
+-1 -1 11262 1;
+#X obj 408 -22 loadbang;
+#X msg 409 -3 -6;
+#X text 3 -43 Description: Changes the gain (in dB) of 7 signals.;
+#X text 4 6 0dB is unity in RMS. -100dB is silence.;
+#X text 4 24 +6dB is twice as loud.;
+#X text 4 -24 tags: ambisonic;
+#X obj 64 263 mtl/ambiGain7~ gain -6;
+#X obj 63 174 mtl/ambiMonoToWxyuvpq~ angle 90;
+#X obj 64 351 mtl/ambiWxyuvpqToMono~ angle 90;
+#X obj 267 351 mtl/ambiWxyuvpqToMono~ angle 270;
+#X connect 0 0 13 0;
+#X connect 1 0 4 0;
+#X connect 1 0 3 0;
+#X connect 4 0 12 7;
+#X connect 5 0 1 0;
+#X connect 6 0 7 0;
+#X connect 7 0 5 0;
+#X connect 12 0 14 0;
+#X connect 12 0 15 0;
+#X connect 12 1 14 1;
+#X connect 12 1 15 1;
+#X connect 12 2 14 2;
+#X connect 12 2 15 2;
+#X connect 12 3 14 3;
+#X connect 12 3 15 3;
+#X connect 12 4 14 4;
+#X connect 12 4 15 4;
+#X connect 12 5 14 5;
+#X connect 12 5 15 5;
+#X connect 12 6 14 6;
+#X connect 12 6 15 6;
+#X connect 13 0 12 0;
+#X connect 13 1 12 1;
+#X connect 13 2 12 2;
+#X connect 13 3 12 3;
+#X connect 13 4 12 4;
+#X connect 13 5 12 5;
+#X connect 13 6 12 6;
+#X connect 14 0 2 0;
+#X connect 15 0 2 1;
diff --git a/ambiGain7~.pd b/ambiGain7~.pd
new file mode 100644
index 0000000..b5f893f
--- /dev/null
+++ b/ambiGain7~.pd
@@ -0,0 +1,65 @@
+#N canvas 218 73 986 558 10;
+#X obj 19 411 outlet~ w;
+#X obj 141 438 outlet~ x;
+#X obj 218 437 outlet~ y;
+#X obj 784 101 inlet;
+#X obj 837 91 loadbang;
+#X obj 140 345 *~;
+#X obj 258 349 *~;
+#X obj 831 120 t b b;
+#X obj 368 424 outlet~ u;
+#X obj 447 431 outlet~ v;
+#X obj 626 445 outlet~ p;
+#X obj 710 446 outlet~ q;
+#X obj 370 345 *~;
+#X obj 488 349 *~;
+#X obj 630 341 *~;
+#X obj 696 340 *~;
+#X obj 736 282 line~;
+#X obj 735 260 pack 0 15;
+#X obj 24 345 *~;
+#X obj 39 140 inlet~ w;
+#X obj 104 139 inlet~ x;
+#X obj 173 139 inlet~ y;
+#X obj 238 138 inlet~ u;
+#X obj 303 136 inlet~ v;
+#X obj 372 136 inlet~ p;
+#X obj 437 135 inlet~ q;
+#X obj 743 233 dbtorms;
+#X obj 744 211 + 100;
+#X msg 881 129 gain 0;
+#X obj 777 187 route gain duration float;
+#X obj 600 164 tof/arguments comma;
+#X connect 3 0 29 0;
+#X connect 4 0 7 0;
+#X connect 5 0 1 0;
+#X connect 6 0 2 0;
+#X connect 7 0 30 0;
+#X connect 7 1 28 0;
+#X connect 12 0 8 0;
+#X connect 13 0 9 0;
+#X connect 14 0 10 0;
+#X connect 15 0 11 0;
+#X connect 16 0 15 1;
+#X connect 16 0 14 1;
+#X connect 16 0 13 1;
+#X connect 16 0 12 1;
+#X connect 16 0 6 1;
+#X connect 16 0 5 1;
+#X connect 16 0 18 1;
+#X connect 17 0 16 0;
+#X connect 18 0 0 0;
+#X connect 19 0 18 0;
+#X connect 20 0 5 0;
+#X connect 21 0 6 0;
+#X connect 22 0 12 0;
+#X connect 23 0 13 0;
+#X connect 24 0 14 0;
+#X connect 25 0 15 0;
+#X connect 26 0 17 0;
+#X connect 27 0 26 0;
+#X connect 28 0 29 0;
+#X connect 29 0 27 0;
+#X connect 29 1 17 1;
+#X connect 29 2 27 0;
+#X connect 30 0 29 0;
diff --git a/ambiLimiter4~-help.pd b/ambiLimiter4~-help.pd
new file mode 100644
index 0000000..6209f2b
--- /dev/null
+++ b/ambiLimiter4~-help.pd
@@ -0,0 +1,29 @@
+#N canvas 460 142 564 279 10;
+#X obj 29 211 dac~ 1 2 3 4;
+#X obj 29 70 noise~;
+#X text 27 -18 Description: A 4-channels limiter.;
+#X text 25 16 Comments: A limiter limits the gain of all its channel
+to the maximum allowed. This one limits to the unit of the DAC. (0dB)
+;
+#X text 185 128 <-- See how this VERY loud signal is lowered to the
+unit gain (0dB) by the limiter.;
+#X text 27 -3 tags: ambisonic;
+#X obj 29 155 mtl/ambiWxyToQuad~;
+#X obj 28 183 mtl/ambiLimiter4~;
+#X obj 28 100 mtl/ambiMonoToWxy~ angle 0;
+#X obj 28 127 mtl/ambiGain4~ gain 24;
+#X connect 1 0 8 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 7 0 0 0;
+#X connect 7 1 0 1;
+#X connect 7 2 0 2;
+#X connect 7 3 0 3;
+#X connect 8 0 9 0;
+#X connect 8 1 9 1;
+#X connect 8 2 9 2;
+#X connect 9 0 6 0;
+#X connect 9 1 6 1;
+#X connect 9 2 6 2;
diff --git a/ambiLimiter4~.pd b/ambiLimiter4~.pd
new file mode 100644
index 0000000..578ba4b
--- /dev/null
+++ b/ambiLimiter4~.pd
@@ -0,0 +1,42 @@
+#N canvas 1 57 924 510 10;
+#X msg 581 103 print;
+#X obj 53 370 *~;
+#X obj 84 370 *~;
+#X obj 580 72 loadbang;
+#X obj 25 72 inlet~ a;
+#X obj 110 70 inlet~ b;
+#X obj 174 73 inlet~ c;
+#X obj 236 73 inlet~ d;
+#X obj 141 370 *~;
+#X obj 172 370 *~;
+#X obj 52 408 outlet~ a;
+#X obj 124 411 outlet~ b;
+#X obj 197 411 outlet~ c;
+#X obj 270 414 outlet~ d;
+#X obj 246 250 zexy/limiter~ 1 2 3 4;
+#X obj 173 348 zexy/z~ 9;
+#X obj 141 350 zexy/z~ 9;
+#X obj 88 340 zexy/z~ 9;
+#X obj 53 350 zexy/z~ 9;
+#X connect 0 0 14 0;
+#X connect 1 0 10 0;
+#X connect 2 0 11 0;
+#X connect 3 0 0 0;
+#X connect 4 0 14 0;
+#X connect 4 0 18 0;
+#X connect 5 0 14 1;
+#X connect 5 0 17 0;
+#X connect 6 0 14 2;
+#X connect 6 0 16 0;
+#X connect 7 0 14 3;
+#X connect 7 0 15 0;
+#X connect 8 0 12 0;
+#X connect 9 0 13 0;
+#X connect 14 0 1 1;
+#X connect 14 0 2 1;
+#X connect 14 0 8 1;
+#X connect 14 0 9 1;
+#X connect 15 0 9 0;
+#X connect 16 0 8 0;
+#X connect 17 0 2 0;
+#X connect 18 0 1 0;
diff --git a/ambiLimiter6~-help.pd b/ambiLimiter6~-help.pd
new file mode 100644
index 0000000..98795b7
--- /dev/null
+++ b/ambiLimiter6~-help.pd
@@ -0,0 +1,44 @@
+#N canvas 747 168 606 421 10;
+#X obj 89 254 dac~ 1 2 3 4 5 6;
+#X obj 106 51 noise~;
+#X text 25 13 Description: 6-channels limiter;
+#X obj 303 45 vsl 15 50 -100 12 0 0 empty empty empty 0 -9 0 10 -258113
+-1 -1 0 1;
+#X obj 419 100 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X obj 21 223 env~;
+#X obj 20 245 - 100;
+#X obj 23 270 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X text 90 296 <-- Each speaker's level is never going to go over 0dB
+;
+#X text 341 37 <-- Make some very loud noise;
+#X msg 299 19 12;
+#X obj 104 113 mtl/ambiGain3~;
+#X obj 55 193 mtl/ambiLimiter6~;
+#X text 26 31 tags: ambisonic;
+#X obj 44 159 mtl/ambiWxyToMono~ angle 60;
+#X obj 218 158 mtl/ambiWxyToMono~ angle 300;
+#X obj 105 74 mtl/ambiMonoToWxy~ angle 30;
+#X connect 1 0 16 0;
+#X connect 3 0 4 0;
+#X connect 3 0 11 3;
+#X connect 5 0 6 0;
+#X connect 6 0 7 0;
+#X connect 10 0 3 0;
+#X connect 11 0 14 0;
+#X connect 11 0 15 0;
+#X connect 11 1 14 1;
+#X connect 11 1 15 1;
+#X connect 11 2 14 2;
+#X connect 11 2 15 2;
+#X connect 12 0 0 0;
+#X connect 12 0 5 0;
+#X connect 12 1 0 1;
+#X connect 12 2 0 2;
+#X connect 12 3 0 3;
+#X connect 12 4 0 4;
+#X connect 12 5 0 5;
+#X connect 14 0 12 0;
+#X connect 15 0 12 1;
+#X connect 16 0 11 0;
+#X connect 16 1 11 1;
+#X connect 16 2 11 2;
diff --git a/ambiLimiter6~.pd b/ambiLimiter6~.pd
new file mode 100644
index 0000000..ed0cfb0
--- /dev/null
+++ b/ambiLimiter6~.pd
@@ -0,0 +1,60 @@
+#N canvas 1 57 924 510 10;
+#X msg 581 103 print;
+#X obj 53 370 *~;
+#X obj 84 370 *~;
+#X obj 580 72 loadbang;
+#X obj 25 72 inlet~ a;
+#X obj 110 70 inlet~ b;
+#X obj 174 73 inlet~ c;
+#X obj 236 73 inlet~ d;
+#X obj 300 72 inlet~ e;
+#X obj 367 71 inlet~ f;
+#X obj 141 370 *~;
+#X obj 172 370 *~;
+#X obj 228 368 *~;
+#X obj 264 370 *~;
+#X obj 52 408 outlet~ a;
+#X obj 124 411 outlet~ b;
+#X obj 197 411 outlet~ c;
+#X obj 270 414 outlet~ d;
+#X obj 345 413 outlet~ e;
+#X obj 417 416 outlet~ f;
+#X obj 388 246 zexy/limiter~ 1 2 3 4 5 6;
+#X obj 264 350 zexy/z~ 9;
+#X obj 228 348 zexy/z~ 9;
+#X obj 173 348 zexy/z~ 9;
+#X obj 141 350 zexy/z~ 9;
+#X obj 88 340 zexy/z~ 9;
+#X obj 53 350 zexy/z~ 9;
+#X connect 0 0 20 0;
+#X connect 1 0 14 0;
+#X connect 2 0 15 0;
+#X connect 3 0 0 0;
+#X connect 4 0 20 0;
+#X connect 4 0 26 0;
+#X connect 5 0 20 1;
+#X connect 5 0 25 0;
+#X connect 6 0 20 2;
+#X connect 6 0 24 0;
+#X connect 7 0 20 3;
+#X connect 7 0 23 0;
+#X connect 8 0 20 4;
+#X connect 8 0 22 0;
+#X connect 9 0 20 5;
+#X connect 9 0 21 0;
+#X connect 10 0 16 0;
+#X connect 11 0 17 0;
+#X connect 12 0 18 0;
+#X connect 13 0 19 0;
+#X connect 20 0 1 1;
+#X connect 20 0 2 1;
+#X connect 20 0 10 1;
+#X connect 20 0 11 1;
+#X connect 20 0 12 1;
+#X connect 20 0 13 1;
+#X connect 21 0 13 0;
+#X connect 22 0 12 0;
+#X connect 23 0 11 0;
+#X connect 24 0 10 0;
+#X connect 25 0 2 0;
+#X connect 26 0 1 0;
diff --git a/ambiMonoToWxyuvpq~-help.pd b/ambiMonoToWxyuvpq~-help.pd
new file mode 100644
index 0000000..46f6838
--- /dev/null
+++ b/ambiMonoToWxyuvpq~-help.pd
@@ -0,0 +1,48 @@
+#N canvas 2 89 497 597 10;
+#X obj 43 182 noise~;
+#X msg 229 194 angle \$1;
+#X floatatom 229 174 5 0 0 0 - - -;
+#X obj 232 153 hsl 120 15 0 360 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X text 269 174 Angle is in degrees.;
+#X obj 40 554 dac~ 1 2;
+#X obj 234 481 *~ 0.25;
+#X obj 273 400 vsl 15 50 0 1 0 0 empty empty empty 0 -9 0 10 -258113
+-1 -1 0 1;
+#X floatatom 273 458 5 0 0 0 - - -;
+#X obj 38 484 *~ 0.25;
+#X obj 78 403 vsl 15 50 0 1 0 0 empty empty empty 0 -9 0 10 -258113
+-1 -1 0 1;
+#X floatatom 78 461 5 0 0 0 - - -;
+#X text 49 33 Description: Encodes a mono sound to third order horizontal
+Ambisonic B-Format.;
+#X text 47 64 tags: ambisonic;
+#X obj 42 218 mtl/ambiMonoToWxyuvpq~ angle 0;
+#X obj 37 371 mtl/ambiWxyuvpqToMono~ angle 90;
+#X obj 248 371 mtl/ambiWxyuvpqToMono~ angle 270;
+#X connect 0 0 14 0;
+#X connect 1 0 14 1;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 6 0 5 1;
+#X connect 7 0 8 0;
+#X connect 8 0 6 1;
+#X connect 9 0 5 0;
+#X connect 10 0 11 0;
+#X connect 11 0 9 1;
+#X connect 14 0 15 0;
+#X connect 14 0 16 0;
+#X connect 14 1 15 1;
+#X connect 14 1 16 1;
+#X connect 14 2 15 2;
+#X connect 14 2 16 2;
+#X connect 14 3 15 3;
+#X connect 14 3 16 3;
+#X connect 14 4 15 4;
+#X connect 14 4 16 4;
+#X connect 14 5 15 5;
+#X connect 14 5 16 5;
+#X connect 14 6 15 6;
+#X connect 14 6 16 6;
+#X connect 15 0 9 0;
+#X connect 16 0 6 0;
diff --git a/ambiMonoToWxyuvpq~.pd b/ambiMonoToWxyuvpq~.pd
new file mode 100644
index 0000000..0083e3a
--- /dev/null
+++ b/ambiMonoToWxyuvpq~.pd
@@ -0,0 +1,96 @@
+#N canvas 1 57 962 699 10;
+#X obj 47 22 inlet~;
+#X obj 19 411 outlet~ w;
+#X obj 141 438 outlet~ x;
+#X obj 218 437 outlet~ y;
+#X obj 631 38 inlet;
+#X obj 684 28 loadbang;
+#X obj 154 321 line~;
+#X obj 140 345 *~;
+#X obj 258 349 *~;
+#X obj 154 276 cos;
+#X obj 282 327 line~;
+#X obj 153 299 pack 0 15;
+#X obj 281 305 pack 0 15;
+#X obj 678 57 t b b;
+#X obj 282 282 sin;
+#X text 460 2 Encodes a mono sound to third order horizontal Ambisonics
+B-Format.;
+#X obj 624 125 route angle duration directivity;
+#X obj 368 424 outlet~ u;
+#X obj 447 431 outlet~ v;
+#X obj 626 445 outlet~ p;
+#X obj 710 446 outlet~ q;
+#X obj 399 252 * 2;
+#X obj 384 321 line~;
+#X obj 370 345 *~;
+#X obj 488 349 *~;
+#X obj 384 276 cos;
+#X obj 512 327 line~;
+#X obj 383 299 pack 0 15;
+#X obj 511 305 pack 0 15;
+#X obj 512 282 sin;
+#X msg 738 70 angle 0;
+#X obj 644 317 line~;
+#X obj 630 341 *~;
+#X obj 696 340 *~;
+#X obj 644 272 cos;
+#X obj 720 318 line~;
+#X obj 643 295 pack 0 15;
+#X obj 719 296 pack 0 15;
+#X obj 720 273 sin;
+#X obj 672 246 * 3;
+#X obj 500 90 tof/arguments comma;
+#X obj 618 153 ./degreeToRadian;
+#X connect 0 0 7 0;
+#X connect 0 0 8 0;
+#X connect 0 0 23 0;
+#X connect 0 0 24 0;
+#X connect 0 0 32 0;
+#X connect 0 0 33 0;
+#X connect 0 0 1 0;
+#X connect 4 0 16 0;
+#X connect 5 0 13 0;
+#X connect 6 0 7 1;
+#X connect 7 0 2 0;
+#X connect 8 0 3 0;
+#X connect 9 0 11 0;
+#X connect 10 0 8 1;
+#X connect 11 0 6 0;
+#X connect 12 0 10 0;
+#X connect 13 0 40 0;
+#X connect 13 1 30 0;
+#X connect 14 0 12 0;
+#X connect 16 0 41 0;
+#X connect 16 1 11 1;
+#X connect 16 1 12 1;
+#X connect 16 1 27 1;
+#X connect 16 1 28 1;
+#X connect 16 1 36 1;
+#X connect 16 1 37 1;
+#X connect 21 0 25 0;
+#X connect 21 0 29 0;
+#X connect 22 0 23 1;
+#X connect 23 0 17 0;
+#X connect 24 0 18 0;
+#X connect 25 0 27 0;
+#X connect 26 0 24 1;
+#X connect 27 0 22 0;
+#X connect 28 0 26 0;
+#X connect 29 0 28 0;
+#X connect 30 0 16 0;
+#X connect 31 0 32 1;
+#X connect 32 0 19 0;
+#X connect 33 0 20 0;
+#X connect 34 0 36 0;
+#X connect 35 0 33 1;
+#X connect 36 0 31 0;
+#X connect 37 0 35 0;
+#X connect 38 0 37 0;
+#X connect 39 0 34 0;
+#X connect 39 0 38 0;
+#X connect 40 0 16 0;
+#X connect 41 0 9 0;
+#X connect 41 0 14 0;
+#X connect 41 0 21 0;
+#X connect 41 0 39 0;
diff --git a/ambiMonoToWxyz~-help.pd b/ambiMonoToWxyz~-help.pd
new file mode 100644
index 0000000..cdf95c0
--- /dev/null
+++ b/ambiMonoToWxyz~-help.pd
@@ -0,0 +1,92 @@
+#N canvas 610 278 756 504 10;
+#X obj -9 50 noise~;
+#X msg 123 74 angle \$1;
+#X floatatom 123 54 5 0 0 0 - - -;
+#X obj 126 33 hsl 120 15 0 360 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X text 163 54 Angle is in degrees.;
+#X obj -11 274 dac~ 1 2;
+#X floatatom 291 55 5 0 0 0 - - -;
+#X obj 294 34 hsl 120 15 0 90 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X msg 291 75 elevation \$1;
+#X floatatom 462 57 5 0 0 0 - - -;
+#X obj 465 36 hsl 120 15 0 1 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X text 331 55 In degrees.;
+#X text 502 57 Directivity [0 \, 1];
+#X msg 462 77 directivity \$1;
+#X msg 296 336 angle \$1;
+#X floatatom 296 316 5 0 0 0 - - -;
+#X obj 299 295 hsl 120 15 0 360 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X text 336 316 Angle is in degrees.;
+#X floatatom 296 447 5 0 0 0 - - -;
+#X obj 299 426 hsl 120 15 0 1 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X text 336 447 Directivity [0 \, 1];
+#X msg 296 467 directivity \$1;
+#X floatatom 297 381 5 0 0 0 - - -;
+#X obj 300 360 hsl 120 15 0 90 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X msg 297 401 elevation \$1;
+#X text 337 381 In degrees.;
+#X msg 129 336 angle \$1;
+#X floatatom 129 316 5 0 0 0 - - -;
+#X obj 132 295 hsl 120 15 0 360 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X text 169 316 Angle is in degrees.;
+#X floatatom 128 378 5 0 0 0 - - -;
+#X obj 131 357 hsl 120 15 0 90 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X msg 128 398 elevation \$1;
+#X text 168 378 In degrees.;
+#X floatatom 128 442 5 0 0 0 - - -;
+#X obj 131 421 hsl 120 15 0 1 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X text 168 442 Directivity [0 \, 1];
+#X msg 128 462 directivity \$1;
+#X text 11 24 tags: ambisonic;
+#X text 11 -2 Description: Encodes a mono sound to first order Ambisonics
+B-Format.;
+#X obj -11 98 mtl/ambiMonoToWxyz~ angle 0;
+#X obj -12 250 mtl/ambiWxyzToMono~ angle 90;
+#X obj 175 248 mtl/ambiWxyzToMono~ angle 270;
+#X connect 0 0 40 0;
+#X connect 1 0 40 1;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 6 0 8 0;
+#X connect 7 0 6 0;
+#X connect 8 0 40 1;
+#X connect 9 0 13 0;
+#X connect 10 0 9 0;
+#X connect 13 0 40 1;
+#X connect 14 0 42 4;
+#X connect 15 0 14 0;
+#X connect 16 0 15 0;
+#X connect 18 0 21 0;
+#X connect 19 0 18 0;
+#X connect 21 0 42 4;
+#X connect 22 0 24 0;
+#X connect 23 0 22 0;
+#X connect 24 0 42 4;
+#X connect 26 0 41 4;
+#X connect 27 0 26 0;
+#X connect 28 0 27 0;
+#X connect 30 0 32 0;
+#X connect 31 0 30 0;
+#X connect 32 0 41 4;
+#X connect 34 0 37 0;
+#X connect 35 0 34 0;
+#X connect 37 0 41 4;
+#X connect 40 0 41 0;
+#X connect 40 0 42 0;
+#X connect 40 1 41 1;
+#X connect 40 1 42 1;
+#X connect 40 2 41 2;
+#X connect 40 2 42 2;
+#X connect 40 3 41 3;
+#X connect 40 3 42 3;
+#X connect 41 0 5 0;
+#X connect 42 0 5 1;
diff --git a/ambiMonoToWxyz~.pd b/ambiMonoToWxyz~.pd
new file mode 100644
index 0000000..e95e2a4
--- /dev/null
+++ b/ambiMonoToWxyz~.pd
@@ -0,0 +1,73 @@
+#N canvas 114 162 886 678 10;
+#X obj 47 22 inlet~;
+#X obj 20 520 outlet~ w;
+#X obj 111 520 outlet~ x;
+#X obj 189 522 outlet~ y;
+#X obj 242 4 inlet;
+#X obj 295 -6 loadbang;
+#X obj 122 290 line~;
+#X obj 108 314 *~;
+#X obj 226 318 *~;
+#X text 564 90 todo: wxyz version with elevation;
+#X text 471 30 XYZ is right-hand rule. (X: forward and Y:left);
+#X text 469 49 Angles run anticlockwise starting on the right.;
+#X obj 122 245 cos;
+#X obj 250 296 line~;
+#X obj 121 268 pack 0 15;
+#X obj 249 274 pack 0 15;
+#X text 416 9 Encodes a mono sound to first order Ambisonics B-Format.
+;
+#X obj 285 24 t b b;
+#X obj 250 251 sin;
+#X obj 386 330 line~;
+#X obj 220 373 *~;
+#X obj 386 285 cos;
+#X obj 385 308 pack 0 15;
+#X obj 111 373 *~;
+#X obj 332 449 line~;
+#X obj 331 427 pack 0 15;
+#X obj 332 404 sin;
+#X obj 322 483 *~;
+#X msg 349 36 elevation 0;
+#X obj 315 523 outlet~ z;
+#X obj 235 91 route angle duration directivity elevation;
+#X obj 387 262 ./degreeToRadian;
+#X obj 188 181 ./degreeToRadian;
+#X obj 126 47 tof/arguments comma;
+#X connect 0 0 7 0;
+#X connect 0 0 8 0;
+#X connect 0 0 27 0;
+#X connect 0 0 1 0;
+#X connect 4 0 30 0;
+#X connect 5 0 17 0;
+#X connect 6 0 7 1;
+#X connect 7 0 23 0;
+#X connect 8 0 20 0;
+#X connect 12 0 14 0;
+#X connect 13 0 8 1;
+#X connect 14 0 6 0;
+#X connect 15 0 13 0;
+#X connect 17 0 33 0;
+#X connect 17 1 28 0;
+#X connect 18 0 15 0;
+#X connect 19 0 20 1;
+#X connect 19 0 23 1;
+#X connect 20 0 3 0;
+#X connect 21 0 22 0;
+#X connect 22 0 19 0;
+#X connect 23 0 2 0;
+#X connect 24 0 27 1;
+#X connect 25 0 24 0;
+#X connect 26 0 25 0;
+#X connect 27 0 29 0;
+#X connect 28 0 30 0;
+#X connect 30 0 32 0;
+#X connect 30 1 14 1;
+#X connect 30 1 15 1;
+#X connect 30 1 25 1;
+#X connect 30 3 31 0;
+#X connect 31 0 21 0;
+#X connect 31 0 26 0;
+#X connect 32 0 12 0;
+#X connect 32 0 18 0;
+#X connect 33 0 30 0;
diff --git a/ambiMonoToWxy~-help.pd b/ambiMonoToWxy~-help.pd
new file mode 100644
index 0000000..18891d8
--- /dev/null
+++ b/ambiMonoToWxy~-help.pd
@@ -0,0 +1,26 @@
+#N canvas 621 296 503 358 10;
+#X obj -9 50 noise~;
+#X msg 123 74 angle \$1;
+#X floatatom 123 54 5 0 0 0 - - -;
+#X obj 126 33 hsl 120 15 0 360 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X text 163 54 Angle is in degrees.;
+#X obj -9 305 dac~ 1 2;
+#X text 3 25 tags: ambisonic;
+#X text 11 -2 Description: Encodes a mono sound to first order Ambisonics
+horizontal B-Format.;
+#X obj -11 98 mtl/ambiMonoToWxy~ angle 0;
+#X obj -16 251 mtl/ambiWxyToMono~ angle 90;
+#X obj 176 247 mtl/ambiWxyToMono~ angle 270;
+#X connect 0 0 8 0;
+#X connect 1 0 8 1;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 8 0 9 0;
+#X connect 8 0 10 0;
+#X connect 8 1 9 1;
+#X connect 8 1 10 1;
+#X connect 8 2 9 2;
+#X connect 8 2 10 2;
+#X connect 9 0 5 0;
+#X connect 10 0 5 1;
diff --git a/ambiMonoToWxy~.pd b/ambiMonoToWxy~.pd
new file mode 100644
index 0000000..03d36af
--- /dev/null
+++ b/ambiMonoToWxy~.pd
@@ -0,0 +1,43 @@
+#N canvas 22 257 831 395 10;
+#X obj 47 22 inlet~;
+#X obj 22 258 outlet~ w;
+#X obj 111 255 outlet~ x;
+#X obj 189 257 outlet~ y;
+#X obj 242 4 inlet;
+#X obj 290 4 loadbang;
+#X obj 124 208 line~;
+#X obj 235 91 route angle duration;
+#X obj 114 231 *~;
+#X obj 185 230 *~;
+#X text 321 130 todo: dominance;
+#X text 315 163 todo: wxyz version with elevation;
+#X text 296 246 Encodes a mono sound to first order Ambisonics horizontal
+B-Format.;
+#X text 471 30 XYZ is right-hand rule. (X: forward and Y:left);
+#X text 469 49 Angles run anticlockwise starting on the right.;
+#X obj 124 163 cos;
+#X obj 204 203 line~;
+#X obj 204 158 sin;
+#X obj 123 186 pack 0 15;
+#X obj 204 181 pack 0 15;
+#X obj 294 31 tof/arguments comma;
+#X obj 184 119 ./degreeToRadian;
+#X connect 0 0 8 0;
+#X connect 0 0 9 0;
+#X connect 0 0 1 0;
+#X connect 4 0 7 0;
+#X connect 5 0 20 0;
+#X connect 6 0 8 1;
+#X connect 7 0 21 0;
+#X connect 7 1 18 1;
+#X connect 7 1 19 1;
+#X connect 8 0 2 0;
+#X connect 9 0 3 0;
+#X connect 15 0 18 0;
+#X connect 16 0 9 1;
+#X connect 17 0 19 0;
+#X connect 18 0 6 0;
+#X connect 19 0 16 0;
+#X connect 20 0 7 0;
+#X connect 21 0 15 0;
+#X connect 21 0 17 0;
diff --git a/ambiReceive7~-help.pd b/ambiReceive7~-help.pd
new file mode 100644
index 0000000..268fb1a
--- /dev/null
+++ b/ambiReceive7~-help.pd
@@ -0,0 +1,5 @@
+#N canvas 1 57 458 308 10;
+#X text 151 64 Description: Receives 7 signals.;
+#X text 149 85 tags: ambisonic;
+#X obj 151 149 mtl/ambiReceive7~ foo;
+#X obj 155 115 mtl/ambiSend7~ foo;
diff --git a/ambiReceive7~.pd b/ambiReceive7~.pd
new file mode 100644
index 0000000..27bd166
--- /dev/null
+++ b/ambiReceive7~.pd
@@ -0,0 +1,22 @@
+#N canvas 123 273 507 118 10;
+#X obj 23 59 outlet~;
+#X obj 91 58 outlet~;
+#X obj 162 58 outlet~;
+#X obj 230 57 outlet~;
+#X obj 286 55 outlet~;
+#X obj 357 55 outlet~;
+#X obj 407 53 outlet~;
+#X obj 20 29 r~ \$1-1;
+#X obj 90 29 r~ \$1-2;
+#X obj 164 29 r~ \$1-3;
+#X obj 233 27 r~ \$1-4;
+#X obj 287 28 r~ \$1-5;
+#X obj 339 29 r~ \$1-6;
+#X obj 402 29 r~ \$1-7;
+#X connect 7 0 0 0;
+#X connect 8 0 1 0;
+#X connect 9 0 2 0;
+#X connect 10 0 3 0;
+#X connect 11 0 4 0;
+#X connect 12 0 5 0;
+#X connect 13 0 6 0;
diff --git a/ambiRotateWxyuvpq~-help.pd b/ambiRotateWxyuvpq~-help.pd
new file mode 100644
index 0000000..92fa2d3
--- /dev/null
+++ b/ambiRotateWxyuvpq~-help.pd
@@ -0,0 +1,5 @@
+#N canvas 1 57 428 224 10;
+#X text 45 64 Description: Rotates a 3rd order horizontal Ambisonic
+sound.;
+#X obj 50 109 mtl/ambiRotateWxyuvpq~;
+#X text 46 80 tags: ambisonic;
diff --git a/ambiRotateWxyuvpq~.pd b/ambiRotateWxyuvpq~.pd
new file mode 100644
index 0000000..a4a1a05
--- /dev/null
+++ b/ambiRotateWxyuvpq~.pd
@@ -0,0 +1,136 @@
+#N canvas 30 212 1223 628 10;
+#X obj 43 468 outlet~ w;
+#X obj 165 495 outlet~ x;
+#X obj 272 492 outlet~ y;
+#X obj 870 55 inlet;
+#X obj 923 45 loadbang;
+#X obj 178 378 line~;
+#X obj 164 402 *~;
+#X obj 234 419 *~;
+#X obj 178 333 cos;
+#X obj 177 356 pack 0 15;
+#X obj 917 74 t b b;
+#X msg 977 87 angle 0;
+#X obj 30 93 inlet~ w;
+#X obj 150 93 inlet~ x;
+#X obj 240 93 inlet~ y;
+#X obj 164 447 -~;
+#X obj 283 392 line~;
+#X obj 271 423 *~;
+#X obj 309 424 *~;
+#X obj 282 370 pack 0 15;
+#X obj 283 347 sin;
+#X text 102 534 x' = x * cos A - y * sin A && y' = x * sin A + y *
+cos A;
+#X text 91 508 rotation:;
+#X text 93 557 ...et 2A et 3A;
+#X obj 954 216 f;
+#X obj 863 142 route angle duration;
+#X obj 315 95 inlet~ u;
+#X obj 404 95 inlet~ v;
+#X obj 482 98 inlet~ p;
+#X obj 571 98 inlet~ q;
+#X obj 525 370 line~;
+#X obj 511 394 *~;
+#X obj 581 411 *~;
+#X obj 525 325 cos;
+#X obj 605 389 line~;
+#X obj 524 348 pack 0 15;
+#X obj 604 367 pack 0 15;
+#X obj 605 344 sin;
+#X obj 511 439 -~;
+#X obj 671 448 *~;
+#X obj 704 449 *~;
+#X obj 524 291 * 2;
+#X obj 810 374 line~;
+#X obj 796 398 *~;
+#X obj 866 415 *~;
+#X obj 810 329 cos;
+#X obj 890 393 line~;
+#X obj 809 352 pack 0 15;
+#X obj 889 371 pack 0 15;
+#X obj 890 348 sin;
+#X obj 796 443 -~;
+#X obj 956 452 *~;
+#X obj 989 453 *~;
+#X obj 512 487 outlet~ u;
+#X obj 671 481 outlet~ v;
+#X obj 797 491 outlet~ p;
+#X obj 956 485 outlet~ q;
+#X obj 809 295 * 3;
+#X obj 869 108 tof/arguments comma;
+#X obj 873 180 ./degreeToRadian;
+#X connect 3 0 25 0;
+#X connect 4 0 10 0;
+#X connect 5 0 6 1;
+#X connect 5 0 18 1;
+#X connect 6 0 15 0;
+#X connect 7 0 15 1;
+#X connect 8 0 9 0;
+#X connect 9 0 5 0;
+#X connect 10 0 58 0;
+#X connect 10 1 11 0;
+#X connect 11 0 25 0;
+#X connect 12 0 0 0;
+#X connect 13 0 6 0;
+#X connect 13 0 17 0;
+#X connect 14 0 7 0;
+#X connect 14 0 18 0;
+#X connect 15 0 1 0;
+#X connect 16 0 17 1;
+#X connect 16 0 7 1;
+#X connect 17 0 2 0;
+#X connect 18 0 2 0;
+#X connect 19 0 16 0;
+#X connect 20 0 19 0;
+#X connect 24 0 9 1;
+#X connect 24 0 19 1;
+#X connect 24 0 35 1;
+#X connect 24 0 36 1;
+#X connect 24 0 47 1;
+#X connect 24 0 48 1;
+#X connect 25 0 59 0;
+#X connect 25 1 24 0;
+#X connect 26 0 31 0;
+#X connect 26 0 39 0;
+#X connect 27 0 32 0;
+#X connect 27 0 40 0;
+#X connect 28 0 43 0;
+#X connect 28 0 51 0;
+#X connect 29 0 44 0;
+#X connect 29 0 52 0;
+#X connect 30 0 31 1;
+#X connect 30 0 40 1;
+#X connect 31 0 38 0;
+#X connect 32 0 38 1;
+#X connect 33 0 35 0;
+#X connect 34 0 32 1;
+#X connect 34 0 39 1;
+#X connect 35 0 30 0;
+#X connect 36 0 34 0;
+#X connect 37 0 36 0;
+#X connect 38 0 53 0;
+#X connect 39 0 54 0;
+#X connect 40 0 54 0;
+#X connect 41 0 33 0;
+#X connect 41 0 37 0;
+#X connect 42 0 43 1;
+#X connect 42 0 52 1;
+#X connect 43 0 50 0;
+#X connect 44 0 50 1;
+#X connect 45 0 47 0;
+#X connect 46 0 44 1;
+#X connect 46 0 51 1;
+#X connect 47 0 42 0;
+#X connect 48 0 46 0;
+#X connect 49 0 48 0;
+#X connect 50 0 55 0;
+#X connect 51 0 56 0;
+#X connect 52 0 56 0;
+#X connect 57 0 45 0;
+#X connect 57 0 49 0;
+#X connect 58 0 25 0;
+#X connect 59 0 8 0;
+#X connect 59 0 20 0;
+#X connect 59 0 41 0;
+#X connect 59 0 57 0;
diff --git a/ambiRotateWxy~-help.pd b/ambiRotateWxy~-help.pd
new file mode 100644
index 0000000..e649159
--- /dev/null
+++ b/ambiRotateWxy~-help.pd
@@ -0,0 +1,6 @@
+#N canvas 1 57 432 228 10;
+#X text 24 45 Description: Rotates a 1st order horizontal ambisonic
+sound.;
+#X text 26 58 Attributes: @angle <degrees> @duration <ms>;
+#X text 17 77 tags: ambisonic;
+#X obj 50 109 mtl/ambiRotateWxy~;
diff --git a/ambiRotateWxy~.pd b/ambiRotateWxy~.pd
new file mode 100644
index 0000000..2e51e1c
--- /dev/null
+++ b/ambiRotateWxy~.pd
@@ -0,0 +1,74 @@
+#N canvas 1 57 1064 612 10;
+#X obj 43 468 outlet~ w;
+#X obj 165 495 outlet~ x;
+#X obj 390 493 outlet~ y;
+#X obj 631 38 inlet;
+#X obj 684 28 loadbang;
+#X obj 178 378 line~;
+#X obj 164 402 *~;
+#X obj 234 419 *~;
+#X obj 178 333 cos;
+#X obj 258 397 line~;
+#X obj 177 356 pack 0 15;
+#X obj 257 375 pack 0 15;
+#X obj 678 57 t b b;
+#X obj 258 352 sin;
+#X msg 738 70 angle 0;
+#X obj 30 93 inlet~ w;
+#X obj 150 93 inlet~ x;
+#X obj 240 93 inlet~ y;
+#X obj 164 447 -~;
+#X obj 417 362 line~;
+#X obj 403 386 *~;
+#X obj 473 403 *~;
+#X obj 497 381 line~;
+#X obj 416 340 pack 0 15;
+#X obj 496 359 pack 0 15;
+#X obj 417 317 sin;
+#X obj 497 336 cos;
+#X text 578 261 x' = x * cos A - y * sin A && y' = x * sin A + y *
+cos A;
+#X text 567 235 rotation:;
+#X text 569 284 ...et 2A et 3A;
+#X obj 502 281 f;
+#X obj 624 125 route angle duration;
+#X obj 521 81 tof/arguments comma;
+#X obj 416 250 ./degreeToRadian;
+#X connect 3 0 31 0;
+#X connect 4 0 12 0;
+#X connect 5 0 6 1;
+#X connect 6 0 18 0;
+#X connect 7 0 18 1;
+#X connect 8 0 10 0;
+#X connect 9 0 7 1;
+#X connect 10 0 5 0;
+#X connect 11 0 9 0;
+#X connect 12 0 32 0;
+#X connect 12 1 14 0;
+#X connect 13 0 11 0;
+#X connect 14 0 31 0;
+#X connect 15 0 0 0;
+#X connect 16 0 6 0;
+#X connect 16 0 20 0;
+#X connect 17 0 7 0;
+#X connect 17 0 21 0;
+#X connect 18 0 1 0;
+#X connect 19 0 20 1;
+#X connect 20 0 2 0;
+#X connect 21 0 2 0;
+#X connect 22 0 21 1;
+#X connect 23 0 19 0;
+#X connect 24 0 22 0;
+#X connect 25 0 23 0;
+#X connect 26 0 24 0;
+#X connect 30 0 11 1;
+#X connect 30 0 10 1;
+#X connect 30 0 23 1;
+#X connect 30 0 24 1;
+#X connect 31 0 33 0;
+#X connect 31 1 30 0;
+#X connect 32 0 31 0;
+#X connect 33 0 8 0;
+#X connect 33 0 13 0;
+#X connect 33 0 25 0;
+#X connect 33 0 26 0;
diff --git a/ambiSend7~-help.pd b/ambiSend7~-help.pd
new file mode 100644
index 0000000..76b5905
--- /dev/null
+++ b/ambiSend7~-help.pd
@@ -0,0 +1,5 @@
+#N canvas 1 57 458 308 10;
+#X text 124 55 Description: Sends 7 signals;
+#X obj 128 144 mtl/ambiReceive7~ foo;
+#X obj 126 115 mtl/ambiSend7~ foo;
+#X text 126 73 tags: ambisonic;
diff --git a/ambiSend7~.pd b/ambiSend7~.pd
new file mode 100644
index 0000000..2738408
--- /dev/null
+++ b/ambiSend7~.pd
@@ -0,0 +1,22 @@
+#N canvas 433 250 481 443 10;
+#X obj 52 109 inlet~;
+#X obj 99 109 inlet~;
+#X obj 146 108 inlet~;
+#X obj 193 108 inlet~;
+#X obj 239 109 inlet~;
+#X obj 286 108 inlet~;
+#X obj 333 108 inlet~;
+#X obj 11 189 s~ \$1-1;
+#X obj 72 196 s~ \$1-2;
+#X obj 125 203 s~ \$1-3;
+#X obj 174 252 s~ \$1-4;
+#X obj 231 267 s~ \$1-5;
+#X obj 283 260 s~ \$1-6;
+#X obj 354 258 s~ \$1-7;
+#X connect 0 0 7 0;
+#X connect 1 0 8 0;
+#X connect 2 0 9 0;
+#X connect 3 0 10 0;
+#X connect 4 0 11 0;
+#X connect 5 0 12 0;
+#X connect 6 0 13 0;
diff --git a/ambiSfRead4~-help.pd b/ambiSfRead4~-help.pd
new file mode 100644
index 0000000..fd562f6
--- /dev/null
+++ b/ambiSfRead4~-help.pd
@@ -0,0 +1,70 @@
+#N canvas 115 285 650 502 10;
+#X msg 39 147 openpanel;
+#X text 38 343 You can find sample Ambisonic B-format sound files on
+http://ambisonia.com;
+#X msg 194 161 loop \$1;
+#X obj 194 142 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 193 111 play;
+#X msg 232 111 stop;
+#X msg 279 114 autostart \$1;
+#X obj 279 95 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X floatatom 293 223 12 0 0 0 - - -;
+#X obj 439 280 hsl 127 8 0 1 0 0 empty empty empty -2 -8 0 10 -191407
+-1 -1 0 1;
+#X obj 538 219 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X floatatom 481 249 12 0 0 0 - - -;
+#X obj 292 246 / 1000;
+#X floatatom 291 269 12 0 0 0 - - -;
+#X text 374 223 ms;
+#X text 371 271 seconds;
+#X obj 436 183 route duration elapsed done;
+#X obj 436 254 /;
+#X text 38 384 Important: The sampling rate of the file and the sampling
+rate of Pd must be the same if you want the sound to be played at correct
+speed and pitch.;
+#X text 50 451 See also :;
+#X obj 125 456 readsf~;
+#X text 12 9 Description: Reads a 4-channels first order Ambisonic
+B-format wav sound file.;
+#X obj 39 276 dac~ 1 2 3 4;
+#X obj 192 235 vsl 30 60 -100 0 0 0 empty empty empty 0 -9 0 10 -258113
+-1 -1 0 1;
+#X floatatom 195 316 5 0 0 0 - - -;
+#X obj 40 229 mtl/ambiWxyToQuad~;
+#X obj 183 456 mtl/ambiTable4 \$0-dummy;
+#X obj 334 456 mtl/ambiTablePlay3~ \$0-dummy;
+#X text 15 40 tags: ambisonic;
+#X obj 39 191 mtl/ambiSfRead4~ autostart 1 \, loop 0;
+#X obj 39 253 mtl/ambiGain4~ gain -6;
+#X connect 0 0 29 0;
+#X connect 2 0 29 0;
+#X connect 3 0 2 0;
+#X connect 4 0 29 0;
+#X connect 5 0 29 0;
+#X connect 6 0 29 0;
+#X connect 7 0 6 0;
+#X connect 8 0 12 0;
+#X connect 12 0 13 0;
+#X connect 16 0 8 0;
+#X connect 16 0 17 1;
+#X connect 16 1 11 0;
+#X connect 16 1 17 0;
+#X connect 16 2 10 0;
+#X connect 17 0 9 0;
+#X connect 23 0 24 0;
+#X connect 23 0 30 4;
+#X connect 25 0 30 0;
+#X connect 25 1 30 1;
+#X connect 25 2 30 2;
+#X connect 25 3 30 3;
+#X connect 29 0 25 0;
+#X connect 29 1 25 1;
+#X connect 29 2 25 2;
+#X connect 29 4 16 0;
+#X connect 30 0 22 0;
+#X connect 30 1 22 1;
+#X connect 30 2 22 2;
+#X connect 30 3 22 3;
diff --git a/ambiSfRead4~.pd b/ambiSfRead4~.pd
new file mode 100644
index 0000000..d2d4a80
--- /dev/null
+++ b/ambiSfRead4~.pd
@@ -0,0 +1,144 @@
+#N canvas 352 57 1087 783 10;
+#X obj 30 642 readsf~ 4;
+#X msg 149 302 1;
+#X msg 181 300 0;
+#X msg 49 273 print;
+#X obj 388 216 openpanel;
+#X text 607 546 Send it "1" to play once a file is opened.;
+#X obj 31 681 *~ 1.414;
+#X obj 24 711 outlet~;
+#X obj 79 713 outlet~;
+#X obj 134 713 outlet~;
+#X obj 189 715 outlet~;
+#X obj 188 230 t b;
+#X obj 389 191 t b;
+#X obj 337 6 loadbang;
+#X obj 339 34 t b b;
+#X obj 260 332 spigot;
+#X obj 348 289 symbol;
+#X obj 523 415 spigot;
+#X text 602 559 todo: append more args?;
+#X obj 822 92 inlet readsf;
+#X obj 47 29 inlet attr;
+#N canvas 224 201 628 639 wav_info 0;
+#X msg 31 92 read \$1;
+#X text 40 146 "read"-message needs a symbol (soundfile in wave format)
+;
+#X text 50 184 "list"-message output with 7 items;
+#X text 91 224 4.item: <float> header-size in bytes;
+#X text 91 194 1.item: <float> samplerate in Hz;
+#X text 91 204 2.item: <symbol> file-name;
+#X text 91 234 5.item: <float> number of channels;
+#X text 91 254 7.item: <symbol> endianness ("l" for little);
+#X text 260 264 ("b" for big);
+#X text 262 276 (eg. little endian "wav" is natural format on Intel-machines)
+;
+#X text 91 214 3.item: <float> sound-data-length in samples;
+#X text 91 244 6.item: <float> sample-resolution in bytes;
+#X obj 33 49 inlet;
+#X obj 31 302 unpack f s f f f f s;
+#X obj 26 489 outlet duration_ms;
+#X text 132 49 NOTE: we could also use the wavinfo object.;
+#X msg 32 459 duration \$1;
+#X msg 161 434 bytes \$1;
+#X msg 21 393 samplerate \$1;
+#X obj 37 434 ./smpToMs;
+#X obj 31 166 iemlib/soundfile_info;
+#X connect 0 0 20 0;
+#X connect 12 0 0 0;
+#X connect 13 0 18 0;
+#X connect 13 2 19 0;
+#X connect 13 5 17 0;
+#X connect 16 0 14 0;
+#X connect 17 0 14 0;
+#X connect 18 0 14 0;
+#X connect 19 0 16 0;
+#X connect 20 0 13 0;
+#X restore 326 588 pd wav_info;
+#X obj 390 711 outlet info;
+#X msg 261 651 done bang;
+#X obj 418 643 timer;
+#X obj 452 616 metro 50;
+#X obj 147 347 f;
+#X obj 456 559 sel 1;
+#X msg 456 589 1;
+#X obj 501 571 t b;
+#X msg 500 592 0;
+#X msg 416 666 elapsed \$1;
+#X obj 824 148 s \$0-readsf;
+#X obj 91 607 r \$0-readsf;
+#X text 174 350 Playing;
+#X text 154 212 Play stop;
+#X obj 148 249 t b b;
+#X msg 147 381 playing \$1;
+#X obj 562 391 f;
+#X msg 384 58 autostart 1 \, loop 0;
+#X text 395 39 Default values;
+#X obj 347 266 t s s;
+#X obj 349 311 t b s;
+#X text 259 351 autostart;
+#X text 591 390 loop;
+#X obj 523 440 delay 100;
+#X text 590 441 avoids infinite loop;
+#X obj 344 138 route file play stop openpanel open autostart loop loop_interval
+;
+#X obj 486 107 tof/arguments comma;
+#X obj 347 243 zexy/list2symbol;
+#X obj 376 336 cyclone/prepend open;
+#X connect 0 0 6 0;
+#X connect 0 1 8 0;
+#X connect 0 2 9 0;
+#X connect 0 3 10 0;
+#X connect 0 4 17 0;
+#X connect 0 4 23 0;
+#X connect 1 0 26 0;
+#X connect 2 0 26 0;
+#X connect 3 0 0 0;
+#X connect 4 0 49 0;
+#X connect 6 0 7 0;
+#X connect 11 0 2 0;
+#X connect 12 0 4 0;
+#X connect 13 0 14 0;
+#X connect 14 0 48 0;
+#X connect 14 1 39 0;
+#X connect 15 0 1 0;
+#X connect 16 0 42 0;
+#X connect 17 0 45 0;
+#X connect 19 0 32 0;
+#X connect 20 0 47 0;
+#X connect 21 0 22 0;
+#X connect 23 0 22 0;
+#X connect 24 0 31 0;
+#X connect 25 0 24 1;
+#X connect 26 0 0 0;
+#X connect 26 0 27 0;
+#X connect 26 0 37 0;
+#X connect 27 0 24 0;
+#X connect 27 0 28 0;
+#X connect 27 1 29 0;
+#X connect 28 0 25 0;
+#X connect 29 0 30 0;
+#X connect 30 0 25 0;
+#X connect 31 0 22 0;
+#X connect 33 0 0 0;
+#X connect 36 0 1 0;
+#X connect 36 1 16 0;
+#X connect 37 0 22 0;
+#X connect 38 0 17 1;
+#X connect 39 0 47 0;
+#X connect 41 0 16 0;
+#X connect 41 1 21 0;
+#X connect 42 0 15 0;
+#X connect 42 1 50 0;
+#X connect 45 0 16 0;
+#X connect 47 0 49 0;
+#X connect 47 1 36 0;
+#X connect 47 2 11 0;
+#X connect 47 3 12 0;
+#X connect 47 4 16 0;
+#X connect 47 5 15 1;
+#X connect 47 6 38 0;
+#X connect 47 8 45 1;
+#X connect 48 0 47 0;
+#X connect 49 0 41 0;
+#X connect 50 0 0 0;
diff --git a/ambiSfWrite4~-help.pd b/ambiSfWrite4~-help.pd
new file mode 100644
index 0000000..896f4e6
--- /dev/null
+++ b/ambiSfWrite4~-help.pd
@@ -0,0 +1,57 @@
+#N canvas 2 89 494 373 10;
+#X text 45 15 Description: Writes a first-order Ambisonic sound file.
+;
+#X obj 52 197 noise~;
+#X msg 185 199 angle \$1;
+#X floatatom 185 179 5 0 0 0 - - -;
+#X obj 188 158 hsl 120 15 0 360 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 9256 1;
+#X obj 185 115 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+1;
+#N canvas 1 57 454 304 auto_rotate 0;
+#X obj 145 73 inlet;
+#X obj 150 111 metro 20;
+#X floatatom 206 88 5 0 0 0 - - -;
+#X obj 146 178 outlet;
+#X obj 154 142 iemlib/modulo_counter 360;
+#X connect 0 0 1 0;
+#X connect 1 0 4 0;
+#X connect 2 0 1 1;
+#X connect 4 0 3 0;
+#X restore 185 136 pd auto_rotate;
+#X obj 50 313 dac~;
+#X msg 326 77 savepanel;
+#X msg 352 108 start;
+#X msg 365 149 stop;
+#X obj 259 290 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X text 283 291 recording status;
+#X text 47 157 example sound;
+#X obj 185 93 iemlib/init 1;
+#X obj 258 257 mtl/ambiSfWrite4~;
+#X text 44 35 tags: ambisonic;
+#X obj 51 223 mtl/ambiMonoToWxy~ angle 0;
+#X obj 51 264 mtl/ambiWxyToMono~ angle 60;
+#X obj 62 285 mtl/ambiWxyToMono~ angle 300;
+#X connect 1 0 17 0;
+#X connect 2 0 17 1;
+#X connect 3 0 2 0;
+#X connect 4 0 3 0;
+#X connect 5 0 6 0;
+#X connect 6 0 4 0;
+#X connect 8 0 15 4;
+#X connect 9 0 15 4;
+#X connect 10 0 15 4;
+#X connect 14 0 5 0;
+#X connect 15 0 11 0;
+#X connect 17 0 15 0;
+#X connect 17 0 18 0;
+#X connect 17 0 19 0;
+#X connect 17 1 15 1;
+#X connect 17 1 18 1;
+#X connect 17 1 19 1;
+#X connect 17 2 15 2;
+#X connect 17 2 18 2;
+#X connect 17 2 19 2;
+#X connect 18 0 7 0;
+#X connect 19 0 7 1;
diff --git a/ambiSfWrite4~.pd b/ambiSfWrite4~.pd
new file mode 100644
index 0000000..db5f63e
--- /dev/null
+++ b/ambiSfWrite4~.pd
@@ -0,0 +1,49 @@
+#N canvas 1 57 1059 504 10;
+#X msg 856 234 open -wave \$1;
+#X obj 856 210 savepanel;
+#X msg 754 231 start;
+#X msg 800 231 stop;
+#X obj 196 170 inlet~;
+#X obj 253 168 inlet~;
+#X obj 398 440 writesf~ 4;
+#X obj 631 38 inlet;
+#X obj 684 28 loadbang;
+#X obj 751 201 t b;
+#X obj 799 207 t b;
+#X obj 856 190 t b;
+#X obj 325 169 inlet~;
+#X obj 382 167 inlet~;
+#X obj 248 322 *~ 0.707;
+#X obj 624 125 route file start stop savepanel open;
+#X obj 708 391 f;
+#X msg 733 328 1;
+#X msg 775 324 0;
+#X obj 700 435 outlet status;
+#X obj 595 207 cyclone/prepend open -wave;
+#X obj 677 75 tof/arguments comma;
+#X connect 0 0 6 0;
+#X connect 1 0 0 0;
+#X connect 2 0 6 0;
+#X connect 3 0 6 0;
+#X connect 4 0 14 0;
+#X connect 5 0 6 1;
+#X connect 7 0 15 0;
+#X connect 8 0 21 0;
+#X connect 9 0 2 0;
+#X connect 9 0 17 0;
+#X connect 10 0 3 0;
+#X connect 10 0 18 0;
+#X connect 11 0 1 0;
+#X connect 12 0 6 2;
+#X connect 13 0 6 3;
+#X connect 14 0 6 0;
+#X connect 15 0 20 0;
+#X connect 15 1 9 0;
+#X connect 15 2 10 0;
+#X connect 15 3 11 0;
+#X connect 15 4 20 0;
+#X connect 16 0 19 0;
+#X connect 17 0 16 0;
+#X connect 18 0 16 0;
+#X connect 20 0 6 0;
+#X connect 21 0 15 0;
diff --git a/ambiSfWrite7~-help.pd b/ambiSfWrite7~-help.pd
new file mode 100644
index 0000000..3d1540b
--- /dev/null
+++ b/ambiSfWrite7~-help.pd
@@ -0,0 +1,61 @@
+#N canvas 753 306 516 349 10;
+#X text 10 9 Description: Writes a first-order Ambisonic sound file.
+;
+#X obj 51 179 noise~;
+#X msg 183 181 angle \$1;
+#X floatatom 183 161 5 0 0 0 - - -;
+#X obj 186 140 hsl 120 15 0 360 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 5190 1;
+#X obj 183 97 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+1;
+#N canvas 1 57 454 304 auto_rotate 0;
+#X obj 145 73 inlet;
+#X obj 150 111 metro 20;
+#X floatatom 206 88 5 0 0 0 - - -;
+#X obj 146 178 outlet;
+#X obj 145 150 iemlib/modulo_counter 360;
+#X connect 0 0 1 0;
+#X connect 1 0 4 0;
+#X connect 2 0 1 1;
+#X connect 4 0 3 0;
+#X restore 183 118 pd auto_rotate;
+#X obj 48 297 dac~;
+#X msg 340 61 savepanel;
+#X msg 366 92 start;
+#X msg 379 133 stop;
+#X obj 272 268 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X text 296 269 recording status;
+#X text 45 139 example sound;
+#X obj 183 77 iemlib/init 1;
+#X text 9 25 tags: ambisonic;
+#X obj 272 241 mtl/ambiSfWrite7~;
+#X obj 49 205 mtl/ambiMonoToWxy~ angle 0;
+#X obj 49 246 mtl/ambiWxyToMono~ angle 60;
+#X obj 60 267 mtl/ambiWxyToMono~ angle 300;
+#X connect 1 0 17 0;
+#X connect 2 0 17 1;
+#X connect 3 0 2 0;
+#X connect 4 0 3 0;
+#X connect 5 0 6 0;
+#X connect 6 0 4 0;
+#X connect 8 0 16 7;
+#X connect 9 0 16 7;
+#X connect 10 0 16 7;
+#X connect 14 0 5 0;
+#X connect 16 0 11 0;
+#X connect 17 0 16 0;
+#X connect 17 0 16 3;
+#X connect 17 0 18 0;
+#X connect 17 0 19 0;
+#X connect 17 1 16 1;
+#X connect 17 1 16 4;
+#X connect 17 1 16 6;
+#X connect 17 1 18 1;
+#X connect 17 1 19 1;
+#X connect 17 2 16 2;
+#X connect 17 2 16 5;
+#X connect 17 2 18 2;
+#X connect 17 2 19 2;
+#X connect 18 0 7 0;
+#X connect 19 0 7 1;
diff --git a/ambiSfWrite7~.pd b/ambiSfWrite7~.pd
new file mode 100644
index 0000000..f726f27
--- /dev/null
+++ b/ambiSfWrite7~.pd
@@ -0,0 +1,55 @@
+#N canvas 1 57 1059 504 10;
+#X msg 856 234 open -wave \$1;
+#X obj 856 210 savepanel;
+#X msg 754 231 start;
+#X msg 800 231 stop;
+#X obj 196 170 inlet~;
+#X obj 253 168 inlet~;
+#X obj 631 38 inlet;
+#X obj 684 28 loadbang;
+#X obj 751 201 t b;
+#X obj 799 207 t b;
+#X obj 856 190 t b;
+#X obj 325 169 inlet~;
+#X obj 382 167 inlet~;
+#X obj 248 322 *~ 0.707;
+#X obj 624 125 route file start stop savepanel open;
+#X obj 708 391 f;
+#X msg 733 328 1;
+#X msg 775 324 0;
+#X obj 700 435 outlet status;
+#X obj 433 168 inlet~;
+#X obj 505 169 inlet~;
+#X obj 562 167 inlet~;
+#X obj 547 432 writesf~ 7;
+#X obj 595 207 cyclone/prepend open -wave;
+#X obj 674 73 tof/arguments comma;
+#X connect 0 0 22 0;
+#X connect 1 0 0 0;
+#X connect 2 0 22 0;
+#X connect 3 0 22 0;
+#X connect 4 0 13 0;
+#X connect 5 0 22 1;
+#X connect 6 0 14 0;
+#X connect 7 0 24 0;
+#X connect 8 0 2 0;
+#X connect 8 0 16 0;
+#X connect 9 0 3 0;
+#X connect 9 0 17 0;
+#X connect 10 0 1 0;
+#X connect 11 0 22 2;
+#X connect 12 0 22 3;
+#X connect 13 0 22 0;
+#X connect 14 0 23 0;
+#X connect 14 1 8 0;
+#X connect 14 2 9 0;
+#X connect 14 3 10 0;
+#X connect 14 4 23 0;
+#X connect 15 0 18 0;
+#X connect 16 0 15 0;
+#X connect 17 0 15 0;
+#X connect 19 0 22 4;
+#X connect 20 0 22 5;
+#X connect 21 0 22 6;
+#X connect 23 0 22 0;
+#X connect 24 0 14 0;
diff --git a/ambiTable4-help.pd b/ambiTable4-help.pd
new file mode 100644
index 0000000..86ceb7c
--- /dev/null
+++ b/ambiTable4-help.pd
@@ -0,0 +1,24 @@
+#N canvas 326 167 429 268 10;
+#X msg 16 127 openpanel;
+#X floatatom 16 196 12 0 0 0 - - -;
+#X obj 16 173 route samples;
+#X obj 16 90 bng 30 250 50 0 empty empty empty 17 7 0 10 -258113 -1
+-1;
+#X obj 91 86 bng 30 250 50 0 empty empty empty 17 7 0 10 -258113 -1
+-1;
+#X msg 91 123 savepanel;
+#X text 5 11 Description: Holds four tables and provides methods for
+reading and writing from and to sound files.;
+#X text 142 199 See also:;
+#X msg 210 125 clear;
+#X text 6 38 tags: ambisonic;
+#X obj 16 151 mtl/ambiTable4 \$0-bar;
+#X obj 216 176 mtl/ambiTablePlay3~ \$0-egg;
+#X obj 217 201 mtl/ambiTableRead3~ \$0-bar;
+#X connect 0 0 10 0;
+#X connect 2 0 1 0;
+#X connect 3 0 0 0;
+#X connect 4 0 5 0;
+#X connect 5 0 10 0;
+#X connect 8 0 10 0;
+#X connect 10 0 2 0;
diff --git a/ambiTable4.pd b/ambiTable4.pd
new file mode 100644
index 0000000..49eab7b
--- /dev/null
+++ b/ambiTable4.pd
@@ -0,0 +1,179 @@
+#N canvas 12 57 1267 783 10;
+#X obj 160 413 soundfiler;
+#X floatatom 167 436 12 0 0 0 - - -;
+#X floatatom 185 486 12 0 0 0 - - -;
+#X obj 643 127 openpanel;
+#X obj 169 558 outlet;
+#X obj 172 83 t s b;
+#X obj 171 177 pack s s s s s;
+#X obj 577 9 inlet;
+#X obj 204 155 symbol \$1-w;
+#X obj 283 156 symbol \$1-x;
+#X obj 368 157 symbol \$1-y;
+#X obj 446 157 symbol \$1-z;
+#X obj 245 617 table \$1-w 100;
+#X obj 245 638 table \$1-x 100;
+#X obj 243 660 table \$1-y 100;
+#X obj 244 680 table \$1-z 100;
+#X obj 262 234 spigot 1;
+#X msg 184 231 read;
+#X obj 208 121 bang;
+#X obj 212 99 loadbang;
+#X obj 262 116 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 965 257 s \$0-resize;
+#X obj 308 211 r \$0-resize;
+#X obj 169 355 list append;
+#X obj 167 204 t b b b a;
+#X obj 567 80 route open file openpanel;
+#X obj 640 104 t b;
+#X obj 621 372 t s b;
+#X obj 620 466 pack s s s s s;
+#X obj 653 444 symbol \$1-w;
+#X obj 732 445 symbol \$1-x;
+#X obj 817 446 symbol \$1-y;
+#X obj 895 446 symbol \$1-z;
+#X obj 656 420 bang;
+#X obj 655 400 loadbang;
+#X obj 618 644 list append;
+#X obj 755 334 t b;
+#X obj 758 357 savepanel;
+#X msg 633 520 write;
+#X obj 625 9 t b b;
+#X obj 623 -15 loadbang;
+#X obj 711 521 f 44100;
+#X obj 616 493 t b b b a;
+#X msg 711 546 -rate \$1;
+#X obj 787 518 f 2;
+#X msg 787 543 -bytes \$1;
+#X obj 755 174 route write savepanel rate bytes;
+#X text 785 152 write stuff;
+#X text 736 82 <-- read stuff;
+#X obj 1070 331 t b;
+#X msg 1082 411 const 0;
+#X obj 1005 483 s \$1-w;
+#X obj 1050 484 s \$1-x;
+#X obj 1095 484 s \$1-y;
+#X obj 1140 485 s \$1-z;
+#X text 280 278 Maximum duration: 22 million samples.;
+#X text 317 291 Which is 7m42 @ 48kHz;
+#X text 316 305 4 million samples takes 16Mb;
+#X text 318 319 A 22 million samples table takes 88.8Mb;
+#X text 315 335 So four 22M samples tables take 355Mb!;
+#X obj 1039 16 samplerate~;
+#X msg 1038 39 rate \$1;
+#X msg 824 30 bytes 2 \, enable_resize 1;
+#X obj 50 470 * 4;
+#X msg 48 496 megabytes \$1;
+#X obj 972 220 route enable_resize clear open_arguments;
+#X text 633 677 Latest version;
+#X msg 244 414 --------------;
+#X obj 371 649 print ambi.table;
+#X msg 404 218 -resize -maxsize 2.21971e+07;
+#X text 564 242 TODO;
+#X msg 261 257 -resize -maxsize 2.2e+07;
+#X obj 502 112 zexy/list2symbol;
+#X obj 627 41 tof/arguments comma;
+#X obj 170 328 ./listBuild prepend;
+#X obj 163 383 list trim;
+#X obj 49 449 ./smpToMem;
+#X obj 160 464 ./smpToMs;
+#X obj 161 511 cyclone/prepend ms;
+#X obj 341 486 cyclone/prepend samples;
+#X obj 617 342 zexy/list2symbol;
+#X obj 619 617 ./listBuild prepend;
+#X obj 549 283 iemlib/iem_anything;
+#X connect 0 0 1 0;
+#X connect 0 0 76 0;
+#X connect 0 0 77 0;
+#X connect 0 0 79 0;
+#X connect 3 0 72 0;
+#X connect 5 0 6 0;
+#X connect 5 1 67 0;
+#X connect 6 0 24 0;
+#X connect 7 0 25 0;
+#X connect 8 0 6 1;
+#X connect 9 0 6 2;
+#X connect 10 0 6 3;
+#X connect 11 0 6 4;
+#X connect 16 0 71 0;
+#X connect 17 0 74 1;
+#X connect 18 0 8 0;
+#X connect 18 0 9 0;
+#X connect 18 0 10 0;
+#X connect 18 0 11 0;
+#X connect 19 0 18 0;
+#X connect 20 0 18 0;
+#X connect 22 0 16 1;
+#X connect 23 0 75 0;
+#X connect 24 0 74 0;
+#X connect 24 1 17 0;
+#X connect 24 2 16 0;
+#X connect 24 2 82 0;
+#X connect 24 3 23 1;
+#X connect 25 0 72 0;
+#X connect 25 1 72 0;
+#X connect 25 2 26 0;
+#X connect 25 3 46 0;
+#X connect 26 0 3 0;
+#X connect 27 0 28 0;
+#X connect 27 1 67 0;
+#X connect 28 0 42 0;
+#X connect 29 0 28 1;
+#X connect 30 0 28 2;
+#X connect 31 0 28 3;
+#X connect 32 0 28 4;
+#X connect 33 0 29 0;
+#X connect 33 0 30 0;
+#X connect 33 0 31 0;
+#X connect 33 0 32 0;
+#X connect 34 0 33 0;
+#X connect 35 0 75 0;
+#X connect 36 0 37 0;
+#X connect 37 0 27 0;
+#X connect 38 0 81 1;
+#X connect 39 0 73 0;
+#X connect 39 1 62 0;
+#X connect 39 1 60 0;
+#X connect 40 0 39 0;
+#X connect 41 0 43 0;
+#X connect 42 0 81 0;
+#X connect 42 1 38 0;
+#X connect 42 2 41 0;
+#X connect 42 2 44 0;
+#X connect 42 3 35 1;
+#X connect 43 0 81 1;
+#X connect 44 0 45 0;
+#X connect 45 0 81 1;
+#X connect 46 0 80 0;
+#X connect 46 1 36 0;
+#X connect 46 2 41 1;
+#X connect 46 3 44 1;
+#X connect 46 4 65 0;
+#X connect 49 0 50 0;
+#X connect 50 0 51 0;
+#X connect 50 0 52 0;
+#X connect 50 0 53 0;
+#X connect 50 0 54 0;
+#X connect 60 0 61 0;
+#X connect 61 0 25 0;
+#X connect 62 0 25 0;
+#X connect 63 0 64 0;
+#X connect 64 0 4 0;
+#X connect 65 0 21 0;
+#X connect 65 1 49 0;
+#X connect 65 2 82 1;
+#X connect 67 0 68 0;
+#X connect 71 0 74 1;
+#X connect 72 0 5 0;
+#X connect 73 0 25 0;
+#X connect 74 0 23 0;
+#X connect 75 0 0 0;
+#X connect 75 0 68 0;
+#X connect 76 0 63 0;
+#X connect 77 0 2 0;
+#X connect 77 0 78 0;
+#X connect 78 0 4 0;
+#X connect 79 0 4 0;
+#X connect 80 0 27 0;
+#X connect 81 0 35 0;
diff --git a/ambiTablePlay3~-help.pd b/ambiTablePlay3~-help.pd
new file mode 100644
index 0000000..ac0d7a8
--- /dev/null
+++ b/ambiTablePlay3~-help.pd
@@ -0,0 +1,62 @@
+#N canvas 484 214 670 371 10;
+#X text 3 -43 Description: Plays 3 channels from a ambi.table.4 instance.
+;
+#X text 137 271 See tabread~ for help.;
+#X obj 172 114 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X text 194 112 Last outlet outputs bang when done.;
+#X text 170 40 Send table name to second inlet to change.;
+#X msg 172 62 tablename egg;
+#X msg 465 50 openpanel;
+#X floatatom 465 122 12 0 0 0 - - -;
+#X obj 465 99 route samples;
+#X obj 465 13 bng 30 250 50 0 empty empty empty 17 7 0 10 -258113 -1
+-1;
+#X obj 540 9 bng 30 250 50 0 empty empty empty 17 7 0 10 -258113 -1
+-1;
+#X msg 540 46 savepanel;
+#X obj 8 222 dac~ 1 2 3 4;
+#X obj 130 131 vsl 15 50 -100 0 0 0 empty empty empty 0 -9 0 10 -258113
+-1 -1 0 1;
+#X msg 30 52 0 44100;
+#X msg 31 31 44100;
+#X msg 30 11 bang;
+#X obj 465 154 print READ_n_samples;
+#X msg 99 60 stop;
+#X obj 551 122 print INFO;
+#X text 138 287 Left inlet usage is similar to;
+#X obj 326 287 tabplay~;
+#X text 405 285 See also:;
+#X obj 7 88 mtl/ambiTablePlay3~ \$0-hello;
+#X obj 8 128 mtl/ambiWxyToQuad~;
+#X obj 9 188 mtl/ambiGain4~;
+#X obj 465 286 mtl/ambiSfRead4~ \$0-dummy;
+#X obj 465 74 mtl/ambiTable4 \$0-hello;
+#X text 4 -28 tags: ambisonic;
+#X text 403 267 See also ambiTableRead3~;
+#X connect 5 0 23 1;
+#X connect 6 0 27 0;
+#X connect 7 0 17 0;
+#X connect 8 0 7 0;
+#X connect 8 1 19 0;
+#X connect 9 0 6 0;
+#X connect 10 0 11 0;
+#X connect 11 0 27 0;
+#X connect 13 0 25 4;
+#X connect 14 0 23 0;
+#X connect 15 0 23 0;
+#X connect 16 0 23 0;
+#X connect 18 0 23 0;
+#X connect 23 0 24 0;
+#X connect 23 1 24 1;
+#X connect 23 2 24 2;
+#X connect 23 3 2 0;
+#X connect 24 0 25 0;
+#X connect 24 1 25 1;
+#X connect 24 2 25 2;
+#X connect 24 3 25 3;
+#X connect 25 0 12 0;
+#X connect 25 1 12 1;
+#X connect 25 2 12 2;
+#X connect 25 3 12 3;
+#X connect 27 0 8 0;
diff --git a/ambiTablePlay3~.pd b/ambiTablePlay3~.pd
new file mode 100644
index 0000000..8c14e74
--- /dev/null
+++ b/ambiTablePlay3~.pd
@@ -0,0 +1,58 @@
+#N canvas 321 271 726 515 10;
+#X msg 177 250 set \$1;
+#X msg 280 251 set \$1;
+#X msg 388 248 set \$1;
+#X obj 513 467 outlet done;
+#X obj 18 415 *~ 1.414;
+#X obj 268 131 route tablename b_format;
+#X obj 42 366 sel 1 0;
+#X msg 37 394 1.414;
+#X msg 79 394 1;
+#X obj 18 442 outlet~ w;
+#X obj 135 479 outlet~ x;
+#X obj 254 466 outlet~ y;
+#X obj 432 19 loadbang;
+#X obj 275 35 inlet attributes;
+#X obj 23 76 inlet tabplay_ctl;
+#X obj 200 290 tabplay~ \$0-dummy;
+#X obj 108 290 tabplay~ \$0-dummy;
+#X obj 18 293 tabplay~ \$0-dummy;
+#X obj 403 305 table \$0-dummy 10;
+#X obj 427 52 t b b;
+#X obj 526 183 symbol \$1;
+#X symbolatom 491 369 10 0 0 0 - - -;
+#X obj 304 84 tof/arguments comma;
+#X obj 388 225 zexy/makesymbol %s-y;
+#X obj 282 227 zexy/makesymbol %s-x;
+#X obj 179 228 zexy/makesymbol %s-w;
+#X connect 0 0 17 0;
+#X connect 1 0 16 0;
+#X connect 2 0 15 0;
+#X connect 4 0 9 0;
+#X connect 5 0 23 0;
+#X connect 5 0 24 0;
+#X connect 5 0 25 0;
+#X connect 5 1 6 0;
+#X connect 6 0 7 0;
+#X connect 6 1 8 0;
+#X connect 7 0 4 1;
+#X connect 8 0 4 1;
+#X connect 12 0 19 0;
+#X connect 13 0 5 0;
+#X connect 14 0 15 0;
+#X connect 14 0 16 0;
+#X connect 14 0 17 0;
+#X connect 15 0 11 0;
+#X connect 15 1 3 0;
+#X connect 16 0 10 0;
+#X connect 17 0 4 0;
+#X connect 19 0 22 0;
+#X connect 19 1 20 0;
+#X connect 20 0 23 0;
+#X connect 20 0 24 0;
+#X connect 20 0 25 0;
+#X connect 22 0 5 0;
+#X connect 23 0 2 0;
+#X connect 23 0 21 0;
+#X connect 24 0 1 0;
+#X connect 25 0 0 0;
diff --git a/ambiTableRead3~-help.pd b/ambiTableRead3~-help.pd
new file mode 100644
index 0000000..3dfbbcb
--- /dev/null
+++ b/ambiTableRead3~-help.pd
@@ -0,0 +1,123 @@
+#N canvas 395 171 817 613 10;
+#X obj 381 235 line~;
+#X floatatom 382 21 12 0 0 0 - - -;
+#X floatatom 419 106 12 0 0 0 - - -;
+#X obj 381 256 *~ 44.1;
+#X text 420 1 Read from (ms);
+#X text 436 87 Read for (ms);
+#X msg 381 208 \$1 \, \$2 \$3;
+#X obj 381 182 pack f f f;
+#X obj 382 131 expr $f1 \; $f1+$f2 \; $f2;
+#X obj 441 427 snapshot~;
+#X obj 448 407 metro 50;
+#X obj 447 387 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+1;
+#X msg -2 223 openpanel;
+#X floatatom -3 288 12 0 0 0 - - -;
+#X obj 435 298 hradio 30 1 0 2 empty empty empty 0 -8 0 10 -257985
+-1 -1 0;
+#X obj 554 264 +~ 0;
+#X obj 546 176 phasor~ 1;
+#X obj 550 207 *~ 44100;
+#X floatatom 546 122 12 0 0 0 - - -;
+#X msg 544 87 1000;
+#X floatatom 629 224 12 0 0 0 - - -;
+#X obj 441 451 /;
+#X obj 444 474 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -191407
+-1 -1 0 1;
+#X msg 581 86 10000;
+#X msg 626 82 50;
+#X text 629 202 offset (ms);
+#X obj -4 309 s \$0-samples;
+#X obj 507 446 r \$0-samples;
+#X text 504 304 Choose control type;
+#X text 439 492 Playhead position (relative to the file duration);
+#X obj -2 186 bng 30 250 50 0 empty empty empty 17 7 0 10 -258113 -1
+-1;
+#X obj 419 45 loadbang;
+#X msg 419 69 1000;
+#X obj 545 47 loadbang;
+#X obj 382 -13 bng 30 250 50 0 empty empty empty 17 7 0 10 -258113
+-1 -1;
+#X text -12 -39 Description: Reads 3 channels from a ambi.table.4 instance.
+;
+#X text -16 -2 Comments: First argument is the ambi.table name. Can
+be changed via second inlet.;
+#X text -16 27 Controlled with a signal from 0 to n-1 samples.;
+#X text -11 69 In this help patch there are two ways to control a tabread4~
+object.;
+#X text -14 109 You can retrieve the length of the tables grom the
+first outlet of ambi.table.4;
+#X obj 73 182 bng 30 250 50 0 empty empty empty 17 7 0 10 -258113 -1
+-1;
+#X msg 73 219 savepanel;
+#X obj -3 265 route samples ms;
+#X floatatom 90 290 12 0 0 0 - - -;
+#X text 1 354 Send table name to second inlet to change.;
+#X obj 259 485 dac~ 1 2 3 4;
+#X obj 381 422 vsl 15 50 -100 0 0 0 empty empty empty 0 -9 0 10 -258113
+-1 -1 0 1;
+#X text -16 -23 tags: ambisonic;
+#X obj 447 366 iemlib/init 1;
+#X obj 435 335 zexy/multiplex~ 0 1;
+#X obj 258 379 mtl/ambiTableRead3~ \$0-foo;
+#X obj 259 419 mtl/ambiWxyToQuad~;
+#X obj 259 458 mtl/ambiGain4~;
+#X obj 623 174 mtl/msToSmp;
+#X obj 546 144 mtl/msToFreq;
+#X obj 629 247 mtl/msToSmp;
+#X obj -2 247 mtl/ambiTable4 \$0-foo;
+#X connect 0 0 3 0;
+#X connect 1 0 8 0;
+#X connect 2 0 8 1;
+#X connect 3 0 49 0;
+#X connect 6 0 0 0;
+#X connect 7 0 6 0;
+#X connect 8 0 7 0;
+#X connect 8 1 7 1;
+#X connect 8 2 7 2;
+#X connect 9 0 21 0;
+#X connect 10 0 9 0;
+#X connect 11 0 10 0;
+#X connect 12 0 56 0;
+#X connect 14 0 49 0;
+#X connect 15 0 49 1;
+#X connect 16 0 17 0;
+#X connect 17 0 15 0;
+#X connect 18 0 53 0;
+#X connect 18 0 54 0;
+#X connect 19 0 18 0;
+#X connect 20 0 55 0;
+#X connect 21 0 22 0;
+#X connect 23 0 18 0;
+#X connect 24 0 18 0;
+#X connect 27 0 21 1;
+#X connect 30 0 12 0;
+#X connect 31 0 32 0;
+#X connect 32 0 2 0;
+#X connect 33 0 19 0;
+#X connect 34 0 1 0;
+#X connect 40 0 41 0;
+#X connect 41 0 56 0;
+#X connect 42 0 13 0;
+#X connect 42 0 26 0;
+#X connect 42 1 43 0;
+#X connect 46 0 52 4;
+#X connect 48 0 11 0;
+#X connect 49 0 9 0;
+#X connect 49 0 50 0;
+#X connect 50 0 51 0;
+#X connect 50 1 51 1;
+#X connect 50 2 51 2;
+#X connect 51 0 52 0;
+#X connect 51 1 52 1;
+#X connect 51 2 52 2;
+#X connect 51 3 52 3;
+#X connect 52 0 45 0;
+#X connect 52 1 45 1;
+#X connect 52 2 45 2;
+#X connect 52 3 45 3;
+#X connect 53 0 17 1;
+#X connect 54 0 16 0;
+#X connect 55 0 15 1;
+#X connect 56 0 42 0;
diff --git a/ambiTableRead3~.pd b/ambiTableRead3~.pd
new file mode 100644
index 0000000..947c438
--- /dev/null
+++ b/ambiTableRead3~.pd
@@ -0,0 +1,46 @@
+#N canvas 1 57 964 548 10;
+#X obj 23 67 inlet~;
+#X obj 108 290 tabread4~ \$1-x;
+#X obj 18 290 tabread4~ \$1-w;
+#X obj 200 290 tabread4~ \$1-y;
+#X obj 507 22 inlet;
+#X msg 20 258 set \$1;
+#X msg 129 265 set \$1;
+#X msg 237 262 set \$1;
+#X obj 9 420 *~ 1.414;
+#X obj 600 159 route tablename b_format;
+#X obj 33 371 sel 1 0;
+#X msg 28 399 1.414;
+#X msg 70 399 1;
+#X obj 642 89 loadbang;
+#X obj 23 494 outlet~ w;
+#X obj 113 494 outlet~ y;
+#X obj 205 494 outlet~ y;
+#X obj 645 115 tof/arguments comma;
+#X obj 27 238 zexy/makesymbol %s-w;
+#X obj 142 211 zexy/makesymbol %s-x;
+#X obj 236 239 zexy/makesymbol %s-y;
+#X connect 0 0 1 0;
+#X connect 0 0 2 0;
+#X connect 0 0 3 0;
+#X connect 1 0 15 0;
+#X connect 2 0 8 0;
+#X connect 3 0 16 0;
+#X connect 4 0 9 0;
+#X connect 5 0 2 0;
+#X connect 6 0 1 0;
+#X connect 7 0 3 0;
+#X connect 8 0 14 0;
+#X connect 9 0 18 0;
+#X connect 9 0 19 0;
+#X connect 9 0 20 0;
+#X connect 9 1 10 0;
+#X connect 10 0 11 0;
+#X connect 10 1 12 0;
+#X connect 11 0 8 1;
+#X connect 12 0 8 1;
+#X connect 13 0 17 0;
+#X connect 17 0 9 0;
+#X connect 18 0 5 0;
+#X connect 19 0 6 0;
+#X connect 20 0 7 0;
diff --git a/ambiThrow7~-help.pd b/ambiThrow7~-help.pd
new file mode 100644
index 0000000..9f1be3b
--- /dev/null
+++ b/ambiThrow7~-help.pd
@@ -0,0 +1,7 @@
+#N canvas 443 185 343 176 10;
+#X text 31 44 See;
+#X obj 60 45 throw~;
+#X text 30 2 Description: Throws 7 signals.;
+#X text 33 17 tags: ambisonic;
+#X obj 73 101 mtl/ambiThrow7~ bar;
+#X obj 75 129 mtl/ambiCatch7~ bar;
diff --git a/ambiThrow7~.pd b/ambiThrow7~.pd
new file mode 100644
index 0000000..4605422
--- /dev/null
+++ b/ambiThrow7~.pd
@@ -0,0 +1,22 @@
+#N canvas 433 250 494 317 10;
+#X obj 52 109 inlet~;
+#X obj 99 109 inlet~;
+#X obj 146 108 inlet~;
+#X obj 193 108 inlet~;
+#X obj 239 109 inlet~;
+#X obj 286 108 inlet~;
+#X obj 333 108 inlet~;
+#X obj 11 189 throw~ \$1-1;
+#X obj 50 234 throw~ \$1-2;
+#X obj 125 203 throw~ \$1-3;
+#X obj 174 252 throw~ \$1-4;
+#X obj 232 267 throw~ \$1-5;
+#X obj 283 247 throw~ \$1-6;
+#X obj 377 258 throw~ \$1-7;
+#X connect 0 0 7 0;
+#X connect 1 0 8 0;
+#X connect 2 0 9 0;
+#X connect 3 0 10 0;
+#X connect 4 0 11 0;
+#X connect 5 0 12 0;
+#X connect 6 0 13 0;
diff --git a/ambiVu3~-help.pd b/ambiVu3~-help.pd
new file mode 100644
index 0000000..b2241fc
--- /dev/null
+++ b/ambiVu3~-help.pd
@@ -0,0 +1,14 @@
+#N canvas 474 200 399 360 10;
+#X obj 18 -1 noise~;
+#X msg 207 48 enable 1;
+#X msg 281 50 enable 0;
+#X text 3 -43 Description: 3 VU meters. (in dB);
+#X obj 18 136 mtl/ambiVu3~;
+#X text 5 -28 tags: ambisonic;
+#X obj 18 47 mtl/ambiMonoToWxy~ angle 95;
+#X connect 0 0 6 0;
+#X connect 1 0 4 3;
+#X connect 2 0 4 3;
+#X connect 6 0 4 0;
+#X connect 6 1 4 1;
+#X connect 6 2 4 2;
diff --git a/ambiVu3~.pd b/ambiVu3~.pd
new file mode 100644
index 0000000..7e396b6
--- /dev/null
+++ b/ambiVu3~.pd
@@ -0,0 +1,40 @@
+#N canvas 136 146 1002 574 10;
+#X obj 502 93 inlet;
+#X obj 555 83 loadbang;
+#X obj 549 112 t b b;
+#X obj 167 96 inlet~ x;
+#X obj 236 96 inlet~ y;
+#X obj 103 121 env~;
+#X obj 103 143 - 100;
+#X obj 494 179 route enable;
+#X obj 495 217 switch~;
+#X obj 105 224 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X obj 102 97 inlet~ w;
+#X obj 164 122 env~;
+#X obj 164 144 - 100;
+#X obj 154 224 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X obj 232 123 env~;
+#X obj 232 145 - 100;
+#X obj 202 224 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X msg 599 121 enable 1;
+#X obj 206 202 tgl 15 0 empty empty enable 17 7 0 10 -191407 -1 -1
+1 1;
+#X obj 497 141 tof/arguments comma;
+#X connect 0 0 7 0;
+#X connect 1 0 2 0;
+#X connect 2 0 19 0;
+#X connect 2 1 17 0;
+#X connect 3 0 11 0;
+#X connect 4 0 14 0;
+#X connect 5 0 6 0;
+#X connect 6 0 9 0;
+#X connect 7 0 18 0;
+#X connect 10 0 5 0;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 17 0 7 0;
+#X connect 18 0 8 0;
+#X connect 19 0 7 0;
+#X coords 0 -1 1 1 160 150 1 100 200;
diff --git a/ambiVu4~-help.pd b/ambiVu4~-help.pd
new file mode 100644
index 0000000..a242b09
--- /dev/null
+++ b/ambiVu4~-help.pd
@@ -0,0 +1,16 @@
+#N canvas 474 200 508 366 10;
+#X obj 18 -1 noise~;
+#X msg 338 46 enable 1;
+#X msg 401 45 enable 0;
+#X obj 198 47 noise~;
+#X text 3 -43 Description: 4 VU meters. (in dB);
+#X obj 19 136 mtl/ambiVu4~;
+#X text 3 -28 tags: ambisonic;
+#X obj 18 47 mtl/ambiMonoToWxy~ angle 95;
+#X connect 0 0 7 0;
+#X connect 1 0 5 4;
+#X connect 2 0 5 4;
+#X connect 3 0 5 3;
+#X connect 7 0 5 0;
+#X connect 7 1 5 1;
+#X connect 7 2 5 2;
diff --git a/ambiVu4~.pd b/ambiVu4~.pd
new file mode 100644
index 0000000..f8c4a78
--- /dev/null
+++ b/ambiVu4~.pd
@@ -0,0 +1,47 @@
+#N canvas 136 146 596 379 10;
+#X obj 375 102 inlet;
+#X obj 428 92 loadbang;
+#X obj 422 121 t b b;
+#X obj 167 96 inlet~ x;
+#X obj 236 96 inlet~ y;
+#X obj 103 121 env~;
+#X obj 103 143 - 100;
+#X obj 367 188 route enable;
+#X obj 368 226 switch~;
+#X obj 105 224 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X obj 102 97 inlet~ w;
+#X obj 164 122 env~;
+#X obj 164 144 - 100;
+#X obj 154 224 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X obj 232 123 env~;
+#X obj 232 145 - 100;
+#X obj 202 224 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X obj 293 124 env~;
+#X obj 293 146 - 100;
+#X obj 249 225 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X msg 472 130 enable 1;
+#X obj 246 204 tgl 15 0 empty empty enable 17 7 0 10 -191407 -1 -1
+1 1;
+#X obj 301 95 inlet~ z;
+#X obj 422 156 tof/arguments comma;
+#X connect 0 0 7 0;
+#X connect 1 0 2 0;
+#X connect 2 0 23 0;
+#X connect 2 1 20 0;
+#X connect 3 0 11 0;
+#X connect 4 0 14 0;
+#X connect 5 0 6 0;
+#X connect 6 0 9 0;
+#X connect 7 0 21 0;
+#X connect 10 0 5 0;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 17 0 18 0;
+#X connect 18 0 19 0;
+#X connect 20 0 7 0;
+#X connect 21 0 8 0;
+#X connect 22 0 17 0;
+#X connect 23 0 7 0;
+#X coords 0 -1 1 1 200 150 1 100 200;
diff --git a/ambiVu7~-help.pd b/ambiVu7~-help.pd
new file mode 100644
index 0000000..b4a3211
--- /dev/null
+++ b/ambiVu7~-help.pd
@@ -0,0 +1,18 @@
+#N canvas 474 200 504 362 10;
+#X obj 18 -1 noise~;
+#X msg 309 95 enable 1;
+#X msg 383 97 enable 0;
+#X text 3 -43 Description: 7 VU meters. (in dB);
+#X obj 19 135 mtl/ambiVu7~;
+#X text 5 -28 tags: ambisonic;
+#X obj 18 47 mtl/ambiMonoToWxyuvpq~ angle 95;
+#X connect 0 0 6 0;
+#X connect 1 0 4 7;
+#X connect 2 0 4 7;
+#X connect 6 0 4 0;
+#X connect 6 1 4 1;
+#X connect 6 2 4 2;
+#X connect 6 3 4 3;
+#X connect 6 4 4 4;
+#X connect 6 5 4 5;
+#X connect 6 6 4 6;
diff --git a/ambiVu7~.pd b/ambiVu7~.pd
new file mode 100644
index 0000000..916affb
--- /dev/null
+++ b/ambiVu7~.pd
@@ -0,0 +1,68 @@
+#N canvas 136 146 1002 574 10;
+#X obj 770 102 inlet;
+#X obj 823 92 loadbang;
+#X obj 817 121 t b b;
+#X obj 167 96 inlet~ x;
+#X obj 236 96 inlet~ y;
+#X obj 301 95 inlet~ u;
+#X obj 366 93 inlet~ v;
+#X obj 434 93 inlet~ p;
+#X obj 500 92 inlet~ q;
+#X obj 103 121 env~;
+#X obj 103 143 - 100;
+#X obj 762 188 route enable;
+#X obj 763 226 switch~;
+#X obj 105 224 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X obj 102 97 inlet~ w;
+#X obj 164 122 env~;
+#X obj 164 144 - 100;
+#X obj 154 224 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X obj 232 123 env~;
+#X obj 232 145 - 100;
+#X obj 202 224 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X obj 293 124 env~;
+#X obj 293 146 - 100;
+#X obj 249 225 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X obj 366 123 env~;
+#X obj 366 145 - 100;
+#X obj 297 225 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X obj 434 124 env~;
+#X obj 434 146 - 100;
+#X obj 344 225 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X obj 495 125 env~;
+#X obj 495 147 - 100;
+#X obj 390 225 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X msg 867 130 enable 1;
+#X obj 344 203 tgl 15 0 empty empty enable 17 7 0 10 -191407 -1 -1
+1 1;
+#X obj 869 155 tof/arguments comma;
+#X connect 0 0 11 0;
+#X connect 1 0 2 0;
+#X connect 2 0 35 0;
+#X connect 2 1 33 0;
+#X connect 3 0 15 0;
+#X connect 4 0 18 0;
+#X connect 5 0 21 0;
+#X connect 6 0 24 0;
+#X connect 7 0 27 0;
+#X connect 8 0 30 0;
+#X connect 9 0 10 0;
+#X connect 10 0 13 0;
+#X connect 11 0 34 0;
+#X connect 14 0 9 0;
+#X connect 15 0 16 0;
+#X connect 16 0 17 0;
+#X connect 18 0 19 0;
+#X connect 19 0 20 0;
+#X connect 21 0 22 0;
+#X connect 22 0 23 0;
+#X connect 24 0 25 0;
+#X connect 25 0 26 0;
+#X connect 27 0 28 0;
+#X connect 28 0 29 0;
+#X connect 30 0 31 0;
+#X connect 31 0 32 0;
+#X connect 33 0 11 0;
+#X connect 34 0 12 0;
+#X connect 35 0 11 0;
+#X coords 0 -1 1 1 340 150 1 100 200;
diff --git a/ambiWxyToMono~-help.pd b/ambiWxyToMono~-help.pd
new file mode 100644
index 0000000..35b10ca
--- /dev/null
+++ b/ambiWxyToMono~-help.pd
@@ -0,0 +1,27 @@
+#N canvas 621 296 499 354 10;
+#X obj -10 150 noise~;
+#X msg 164 162 angle \$1;
+#X floatatom 164 142 5 0 0 0 - - -;
+#X obj 167 121 hsl 120 15 0 360 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X text 159 100 Angle is in degrees.;
+#X obj -11 286 dac~ 1 2;
+#X text -6 49 tags: ambisonic;
+#X text -7 8 Description: Decodes first order Ambisonics horizontal
+B-Format sounds according to each speaker output in order to send it
+to an audio output.;
+#X obj -12 198 mtl/ambiMonoToWxy~ angle 0;
+#X obj -11 248 mtl/ambiWxyToMono~ angle 90;
+#X obj 179 250 mtl/ambiWxyToMono~ angle 270;
+#X connect 0 0 8 0;
+#X connect 1 0 10 3;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 8 0 9 0;
+#X connect 8 0 10 0;
+#X connect 8 1 9 1;
+#X connect 8 1 10 1;
+#X connect 8 2 9 2;
+#X connect 8 2 10 2;
+#X connect 9 0 5 0;
+#X connect 10 0 5 1;
diff --git a/ambiWxyToMono~.pd b/ambiWxyToMono~.pd
new file mode 100644
index 0000000..5bbee36
--- /dev/null
+++ b/ambiWxyToMono~.pd
@@ -0,0 +1,40 @@
+#N canvas 603 319 705 355 10;
+#X obj 60 53 inlet~ w;
+#X obj 153 54 inlet~ x;
+#X obj 239 57 inlet~ y;
+#X obj 68 289 outlet~;
+#X obj 337 5 inlet;
+#X obj 385 5 loadbang;
+#X obj 330 92 route angle duration;
+#X obj 102 253 *~;
+#X obj 320 191 line~;
+#X obj 319 169 pack 0 50;
+#X obj 171 256 *~;
+#X text 296 278 todo: wxyz version with elevation;
+#X text 296 246 Decodes a first order Ambisonics horizontal B-Format
+to a mono output channel.;
+#X obj 321 146 cos;
+#X obj 392 189 line~;
+#X obj 391 167 pack 0 50;
+#X obj 393 144 sin;
+#X obj 385 30 tof/arguments comma;
+#X obj 323 119 ./degreeToRadian;
+#X connect 0 0 3 0;
+#X connect 1 0 7 0;
+#X connect 2 0 10 0;
+#X connect 4 0 6 0;
+#X connect 5 0 17 0;
+#X connect 6 0 18 0;
+#X connect 6 1 9 1;
+#X connect 6 1 15 1;
+#X connect 7 0 3 0;
+#X connect 8 0 7 1;
+#X connect 9 0 8 0;
+#X connect 10 0 3 0;
+#X connect 13 0 9 0;
+#X connect 14 0 10 1;
+#X connect 15 0 14 0;
+#X connect 16 0 15 0;
+#X connect 17 0 6 0;
+#X connect 18 0 13 0;
+#X connect 18 0 16 0;
diff --git a/ambiWxyToQuad~-help.pd b/ambiWxyToQuad~-help.pd
new file mode 100644
index 0000000..ef31f35
--- /dev/null
+++ b/ambiWxyToQuad~-help.pd
@@ -0,0 +1,16 @@
+#N canvas 2 89 454 304 10;
+#X obj 74 209 dac~ 1 2 3 4;
+#X obj 78 109 noise~;
+#X text 89 53 Description: Renders 1st order Ambisonic for four speakers
+disposed in a square.;
+#X text 88 81 tags: ambisonic;
+#X obj 76 181 mtl/ambiWxyToQuad~;
+#X obj 77 130 ambiMonoToWxy~ angle 0;
+#X connect 1 0 5 0;
+#X connect 4 0 0 0;
+#X connect 4 1 0 1;
+#X connect 4 2 0 2;
+#X connect 4 3 0 3;
+#X connect 5 0 4 0;
+#X connect 5 1 4 1;
+#X connect 5 2 4 2;
diff --git a/ambiWxyToQuad~.pd b/ambiWxyToQuad~.pd
new file mode 100644
index 0000000..5874a98
--- /dev/null
+++ b/ambiWxyToQuad~.pd
@@ -0,0 +1,41 @@
+#N canvas 1 57 597 304 10;
+#X obj 84 238 outlet~;
+#X obj 159 237 outlet~;
+#X obj 259 231 outlet~;
+#X obj 334 230 outlet~;
+#X obj 106 84 inlet~ w;
+#X obj 194 87 inlet~ x;
+#X obj 279 87 inlet~ y;
+#X obj 428 86 inlet;
+#X obj 431 108 route angles;
+#X obj 430 133 unpack f f f f;
+#X obj 478 34 loadbang;
+#X obj 488 61 tof/arguments comma;
+#X obj 158 175 ambiWxyToMono~ angle 135;
+#X obj 319 174 ambiWxyToMono~ angle 225;
+#X obj 97 151 ambiWxyToMono~ angle 45;
+#X obj 258 149 ambiWxyToMono~ angle 315;
+#X connect 4 0 12 0;
+#X connect 4 0 13 0;
+#X connect 4 0 14 0;
+#X connect 4 0 15 0;
+#X connect 5 0 12 1;
+#X connect 5 0 13 1;
+#X connect 5 0 14 1;
+#X connect 5 0 15 1;
+#X connect 6 0 12 2;
+#X connect 6 0 13 2;
+#X connect 6 0 14 2;
+#X connect 6 0 15 2;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 9 0 14 3;
+#X connect 9 1 12 3;
+#X connect 9 2 15 3;
+#X connect 9 3 13 3;
+#X connect 10 0 11 0;
+#X connect 11 0 8 0;
+#X connect 12 0 1 0;
+#X connect 13 0 3 0;
+#X connect 14 0 0 0;
+#X connect 15 0 2 0;
diff --git a/ambiWxyToWxyuvpq~-help.pd b/ambiWxyToWxyuvpq~-help.pd
new file mode 100644
index 0000000..c65303f
--- /dev/null
+++ b/ambiWxyToWxyuvpq~-help.pd
@@ -0,0 +1,5 @@
+#N canvas 157 347 466 158 10;
+#X text 45 2 Description: Converts the 1st order horizontal Ambisonic
+sound format to the 3rd order horizontal.;
+#X text 44 32 tags: ambisonic;
+#X obj 57 78 mtl/ambiWxyToWxyuvpq~;
diff --git a/ambiWxyToWxyuvpq~.pd b/ambiWxyToWxyuvpq~.pd
new file mode 100644
index 0000000..7ef96dc
--- /dev/null
+++ b/ambiWxyToWxyuvpq~.pd
@@ -0,0 +1,18 @@
+#N canvas 156 315 771 350 10;
+#X obj 30 93 inlet~ w;
+#X obj 150 93 inlet~ x;
+#X obj 240 93 inlet~ y;
+#X obj 28 217 outlet~ w;
+#X obj 150 244 outlet~ x;
+#X obj 227 243 outlet~ y;
+#X obj 322 239 outlet~ u;
+#X obj 401 246 outlet~ v;
+#X obj 488 247 outlet~ p;
+#X obj 572 248 outlet~ q;
+#X obj 21 147 *~ 1.5;
+#X text 180 40 Amplitude correction to go from 1st order to 3rd order
+horizontal Ambisonic.;
+#X connect 0 0 10 0;
+#X connect 1 0 4 0;
+#X connect 2 0 5 0;
+#X connect 10 0 3 0;
diff --git a/ambiWxyuvpqToMono~-help.pd b/ambiWxyuvpqToMono~-help.pd
new file mode 100644
index 0000000..c83785c
--- /dev/null
+++ b/ambiWxyuvpqToMono~-help.pd
@@ -0,0 +1,67 @@
+#N canvas 91 202 848 612 10;
+#X obj 44 170 noise~;
+#X msg 229 194 angle \$1;
+#X floatatom 229 174 5 0 0 0 - - -;
+#X obj 232 153 hsl 120 15 0 360 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X text 269 174 Angle is in degrees.;
+#X obj 41 554 dac~ 1 2;
+#X msg 475 254 angle \$1;
+#X floatatom 475 234 5 0 0 0 - - -;
+#X obj 478 213 hsl 120 15 0 360 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X text 515 234 Angle is in degrees.;
+#X msg 476 190 angle \$1;
+#X floatatom 476 170 5 0 0 0 - - -;
+#X obj 479 149 hsl 120 15 0 360 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X text 516 170 Angle is in degrees.;
+#X text 471 109 If you change the angle dynamically you will hear clicks.
+;
+#X text 470 125 Usually \, a speaker doesn't move.;
+#X text 49 33 Description: Decodes third order horizontal Ambisonic
+B-Format to a mono sound intended for a speaker.;
+#X obj 234 481 *~ 0.25;
+#X obj 273 400 vsl 15 50 0 1 0 0 empty empty empty 0 -9 0 10 -258113
+-1 -1 0 1;
+#X floatatom 273 458 5 0 0 0 - - -;
+#X obj 39 484 *~ 0.25;
+#X obj 78 403 vsl 15 50 0 1 0 0 empty empty empty 0 -9 0 10 -258113
+-1 -1 0 1;
+#X floatatom 78 461 5 0 0 0 - - -;
+#X text 49 64 tags: ambisonic;
+#X obj 42 218 mtl/ambiMonoToWxyuvpq~ angle 0;
+#X obj 37 371 mtl/ambiWxyuvpqToMono~ angle 90;
+#X obj 244 369 mtl/ambiWxyuvpqToMono~ angle 270;
+#X connect 0 0 24 0;
+#X connect 1 0 24 1;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 6 0 26 7;
+#X connect 7 0 6 0;
+#X connect 8 0 7 0;
+#X connect 10 0 25 7;
+#X connect 11 0 10 0;
+#X connect 12 0 11 0;
+#X connect 17 0 5 1;
+#X connect 18 0 19 0;
+#X connect 19 0 17 1;
+#X connect 20 0 5 0;
+#X connect 21 0 22 0;
+#X connect 22 0 20 1;
+#X connect 24 0 25 0;
+#X connect 24 0 26 0;
+#X connect 24 1 25 1;
+#X connect 24 1 26 1;
+#X connect 24 2 25 2;
+#X connect 24 2 26 2;
+#X connect 24 3 25 3;
+#X connect 24 3 26 3;
+#X connect 24 4 25 4;
+#X connect 24 4 26 4;
+#X connect 24 5 25 5;
+#X connect 24 5 26 5;
+#X connect 24 6 25 6;
+#X connect 24 6 26 6;
+#X connect 25 0 20 0;
+#X connect 26 0 17 0;
diff --git a/ambiWxyuvpqToMono~.pd b/ambiWxyuvpqToMono~.pd
new file mode 100644
index 0000000..747cd83
--- /dev/null
+++ b/ambiWxyuvpqToMono~.pd
@@ -0,0 +1,88 @@
+#N canvas 354 168 772 511 10;
+#X obj 560 65 inlet;
+#X obj 613 55 loadbang;
+#X obj 159 326 cos;
+#X obj 607 84 t b b;
+#X obj 216 326 sin;
+#X obj 397 299 * 2;
+#X obj 344 326 cos;
+#X obj 397 328 sin;
+#X msg 667 97 angle 0;
+#X obj 505 327 cos;
+#X obj 562 330 sin;
+#X obj 562 304 * 3;
+#X obj 25 484 outlet~;
+#X obj 14 155 inlet~ w;
+#X obj 79 154 inlet~ x;
+#X obj 148 154 inlet~ y;
+#X obj 213 153 inlet~ u;
+#X obj 278 151 inlet~ v;
+#X obj 347 151 inlet~ p;
+#X obj 412 150 inlet~ q;
+#X text 237 369 15/16;
+#X text 416 371 3/8;
+#X text 586 375 1/16;
+#X obj 159 347 * 0.9375;
+#X obj 216 347 * 0.9375;
+#X obj 344 350 * 0.375;
+#X obj 397 350 * 0.375;
+#X obj 505 350 * 0.0625;
+#X obj 562 350 * 0.0625;
+#X obj 19 356 *~ 0.625;
+#X obj 553 152 route angle;
+#X obj 138 368 *~ 0;
+#X obj 195 369 *~ 0;
+#X obj 323 372 *~ 0;
+#X obj 374 373 *~ 0;
+#X obj 485 372 *~ 0;
+#X obj 542 374 *~ 0;
+#X text 87 78 Decodes third order horizontal Ambisonics B-Format to
+a mono sound intended for a speaker.;
+#X text 86 108 Do not change the angle dynamically or you will hear
+clicks.;
+#X text 76 355 5/8;
+#X obj 25 451 *~ 0.5;
+#X obj 601 118 tof/arguments comma;
+#X obj 553 175 ./degreeToRadian;
+#X connect 0 0 30 0;
+#X connect 1 0 3 0;
+#X connect 2 0 23 0;
+#X connect 3 0 41 0;
+#X connect 3 1 8 0;
+#X connect 4 0 24 0;
+#X connect 5 0 6 0;
+#X connect 5 0 7 0;
+#X connect 6 0 25 0;
+#X connect 7 0 26 0;
+#X connect 8 0 30 0;
+#X connect 9 0 27 0;
+#X connect 10 0 28 0;
+#X connect 11 0 9 0;
+#X connect 11 0 10 0;
+#X connect 13 0 29 0;
+#X connect 14 0 31 0;
+#X connect 15 0 32 0;
+#X connect 16 0 33 0;
+#X connect 17 0 34 0;
+#X connect 18 0 35 0;
+#X connect 19 0 36 0;
+#X connect 23 0 31 1;
+#X connect 24 0 32 1;
+#X connect 25 0 33 1;
+#X connect 26 0 34 1;
+#X connect 27 0 35 1;
+#X connect 28 0 36 1;
+#X connect 29 0 40 0;
+#X connect 30 0 42 0;
+#X connect 31 0 40 0;
+#X connect 32 0 40 0;
+#X connect 33 0 40 0;
+#X connect 34 0 40 0;
+#X connect 35 0 40 0;
+#X connect 36 0 40 0;
+#X connect 40 0 12 0;
+#X connect 41 0 30 0;
+#X connect 42 0 2 0;
+#X connect 42 0 4 0;
+#X connect 42 0 5 0;
+#X connect 42 0 11 0;
diff --git a/ambiWxyzToMono~-help.pd b/ambiWxyzToMono~-help.pd
new file mode 100644
index 0000000..e711bf4
--- /dev/null
+++ b/ambiWxyzToMono~-help.pd
@@ -0,0 +1,92 @@
+#N canvas 610 278 756 504 10;
+#X obj -9 50 noise~;
+#X msg 123 74 angle \$1;
+#X floatatom 123 54 5 0 0 0 - - -;
+#X obj 126 33 hsl 120 15 0 360 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X text 163 54 Angle is in degrees.;
+#X obj -9 305 dac~ 1 2;
+#X text 11 -2 Encodes a mono sound to first order Ambisonics B-Format.
+;
+#X floatatom 291 55 5 0 0 0 - - -;
+#X obj 294 34 hsl 120 15 0 90 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X msg 291 75 elevation \$1;
+#X floatatom 462 57 5 0 0 0 - - -;
+#X obj 465 36 hsl 120 15 0 1 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X text 331 55 In degrees.;
+#X text 502 57 Directivity [0 \, 1];
+#X msg 462 77 directivity \$1;
+#X msg 296 336 angle \$1;
+#X floatatom 296 316 5 0 0 0 - - -;
+#X obj 299 295 hsl 120 15 0 360 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X text 336 316 Angle is in degrees.;
+#X floatatom 296 447 5 0 0 0 - - -;
+#X obj 299 426 hsl 120 15 0 1 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X text 336 447 Directivity [0 \, 1];
+#X msg 296 467 directivity \$1;
+#X floatatom 297 381 5 0 0 0 - - -;
+#X obj 300 360 hsl 120 15 0 90 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X msg 297 401 elevation \$1;
+#X text 337 381 In degrees.;
+#X msg 129 336 angle \$1;
+#X floatatom 129 316 5 0 0 0 - - -;
+#X obj 132 295 hsl 120 15 0 360 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X text 169 316 Angle is in degrees.;
+#X floatatom 128 378 5 0 0 0 - - -;
+#X obj 131 357 hsl 120 15 0 90 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X msg 128 398 elevation \$1;
+#X text 168 378 In degrees.;
+#X floatatom 128 442 5 0 0 0 - - -;
+#X obj 131 421 hsl 120 15 0 1 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X text 168 442 Directivity [0 \, 1];
+#X msg 128 462 directivity \$1;
+#X text 10 10 tags: ambisonic;
+#X obj -11 98 mtl/ambiMonoToWxyz~ angle 0;
+#X obj 171 250 mtl/ambiWxyzToMono~ angle 270;
+#X obj -16 251 mtl/ambiWxyzToMono~ angle 90;
+#X connect 0 0 40 0;
+#X connect 1 0 40 1;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 7 0 9 0;
+#X connect 8 0 7 0;
+#X connect 9 0 40 1;
+#X connect 10 0 14 0;
+#X connect 11 0 10 0;
+#X connect 14 0 40 1;
+#X connect 15 0 41 4;
+#X connect 16 0 15 0;
+#X connect 17 0 16 0;
+#X connect 19 0 22 0;
+#X connect 20 0 19 0;
+#X connect 22 0 41 4;
+#X connect 23 0 25 0;
+#X connect 24 0 23 0;
+#X connect 25 0 41 4;
+#X connect 27 0 42 4;
+#X connect 28 0 27 0;
+#X connect 29 0 28 0;
+#X connect 31 0 33 0;
+#X connect 32 0 31 0;
+#X connect 33 0 42 4;
+#X connect 35 0 38 0;
+#X connect 36 0 35 0;
+#X connect 38 0 42 4;
+#X connect 40 0 41 0;
+#X connect 40 0 42 0;
+#X connect 40 1 41 1;
+#X connect 40 1 42 1;
+#X connect 40 2 41 2;
+#X connect 40 2 42 2;
+#X connect 40 3 41 3;
+#X connect 40 3 42 3;
+#X connect 41 0 5 1;
+#X connect 42 0 5 0;
diff --git a/ambiWxyzToMono~.pd b/ambiWxyzToMono~.pd
new file mode 100644
index 0000000..05eb95c
--- /dev/null
+++ b/ambiWxyzToMono~.pd
@@ -0,0 +1,58 @@
+#N canvas 1 57 723 514 10;
+#X obj 60 53 inlet~ w;
+#X obj 123 54 inlet~ x;
+#X obj 188 54 inlet~ y;
+#X obj 69 405 outlet~;
+#X obj 337 5 inlet;
+#X obj 102 253 *~;
+#X obj 320 191 line~;
+#X obj 171 256 *~;
+#X text 69 433 Decodes a first order Ambisonics horizontal B-Format
+to a mono output channel.;
+#X obj 321 146 cos;
+#X obj 392 189 line~;
+#X obj 393 144 sin;
+#X obj 253 53 inlet~ z;
+#X obj 274 332 *~;
+#X obj 520 203 line~;
+#X text 547 158 ??????;
+#X obj 385 2 loadbang;
+#X obj 386 23 t b b;
+#X msg 459 28 directivity 0.5 \, elevation 0;
+#X obj 521 158 sin;
+#X obj 319 169 pack 0 15;
+#X obj 391 167 pack 0 15;
+#X obj 519 181 pack 0 15;
+#X obj 330 92 route angle duration directivity elevation;
+#X obj 377 48 tof/arguments comma;
+#X obj 323 119 ./degreeToRadian;
+#X obj 519 135 ./degreeToRadian;
+#X connect 0 0 3 0;
+#X connect 1 0 5 0;
+#X connect 2 0 7 0;
+#X connect 4 0 23 0;
+#X connect 5 0 3 0;
+#X connect 6 0 5 1;
+#X connect 7 0 3 0;
+#X connect 9 0 20 0;
+#X connect 10 0 7 1;
+#X connect 11 0 21 0;
+#X connect 12 0 13 0;
+#X connect 13 0 3 0;
+#X connect 14 0 13 1;
+#X connect 16 0 17 0;
+#X connect 17 0 24 0;
+#X connect 17 1 18 0;
+#X connect 18 0 23 0;
+#X connect 19 0 22 0;
+#X connect 20 0 6 0;
+#X connect 21 0 10 0;
+#X connect 22 0 14 0;
+#X connect 23 0 25 0;
+#X connect 23 1 20 1;
+#X connect 23 1 21 1;
+#X connect 23 3 26 0;
+#X connect 24 0 23 0;
+#X connect 25 0 9 0;
+#X connect 25 0 11 0;
+#X connect 26 0 19 0;
diff --git a/ambiZoomRead~-help.pd b/ambiZoomRead~-help.pd
new file mode 100644
index 0000000..abe7c16
--- /dev/null
+++ b/ambiZoomRead~-help.pd
@@ -0,0 +1,100 @@
+#N canvas 116 100 734 740 10;
+#X obj 160 431 vsl 20 50 -100 0 0 0 empty empty empty 0 -9 0 10 -258113
+-1 -1 0 1;
+#X obj 38 167 openpanel;
+#X obj 38 111 bng 50 250 50 0 empty empty empty 17 7 0 10 -4034 -1
+-1;
+#X text 14 12 Description: Reads two wave files from the Zoom H2 recorder/microphone.
+;
+#X text 14 61 Open one of the two files to read both if they are in
+the same directory. (rear and front);
+#X msg 417 191 savepanel;
+#X msg 490 213 start;
+#X msg 498 259 stop;
+#X obj 350 404 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X text 374 405 recording status;
+#X obj 338 293 print DONE;
+#X obj 219 257 hsl 127 8 0 1 0 0 empty empty empty -2 -8 0 10 -191407
+-1 -1 0 1;
+#X obj 369 254 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X floatatom 261 226 12 0 0 0 - - -;
+#X obj 230 198 route duration elapsed done;
+#X obj 215 228 /;
+#X obj 353 230 t b;
+#X floatatom 230 277 12 0 0 0 - - -;
+#X obj 439 131 print INFO;
+#X obj 37 552 dac~ 1 2 3 4;
+#X msg 123 379 angle \$1;
+#X obj 123 357 hsl 128 15 0 360 0 0 empty empty empty -2 -8 0 10 -260097
+-1 -1 0 1;
+#X msg 173 149 stop;
+#X msg 172 127 autoplay \$1;
+#X obj 173 107 tgl 15 0 empty empty empty 17 7 0 10 -260097 -1 -1 0
+1;
+#X msg 173 172 play;
+#X obj 501 239 spigot;
+#X obj 537 219 tgl 15 0 empty empty empty 17 7 0 10 -260097 -1 -1 0
+1;
+#X msg 37 191 open \$1;
+#X obj 38 218 mtl/ambiZoomRead~;
+#X obj 349 371 mtl/ambiSfWrite4~;
+#X obj 26 400 mtl/ambiRotateWxy~;
+#X obj 33 457 mtl/ambiWxyToQuad~;
+#X obj 124 550 mtl/ambiVu4~;
+#X text 15 42 tags: ambisonic;
+#X obj 30 492 mtl/ambiGain4~ gain -20;
+#X obj 37 284 mtl/ambiZoomToWxy~;
+#X connect 0 0 35 4;
+#X connect 1 0 28 0;
+#X connect 2 0 1 0;
+#X connect 5 0 30 4;
+#X connect 6 0 30 4;
+#X connect 7 0 30 4;
+#X connect 12 0 26 0;
+#X connect 14 0 15 1;
+#X connect 14 0 17 0;
+#X connect 14 1 13 0;
+#X connect 14 1 15 0;
+#X connect 14 2 10 0;
+#X connect 14 2 16 0;
+#X connect 14 3 18 0;
+#X connect 15 0 11 0;
+#X connect 16 0 12 0;
+#X connect 20 0 31 3;
+#X connect 21 0 20 0;
+#X connect 22 0 29 0;
+#X connect 23 0 29 0;
+#X connect 24 0 23 0;
+#X connect 25 0 29 0;
+#X connect 26 0 7 0;
+#X connect 27 0 26 1;
+#X connect 28 0 29 0;
+#X connect 29 0 36 0;
+#X connect 29 1 36 1;
+#X connect 29 2 36 2;
+#X connect 29 3 36 3;
+#X connect 29 4 14 0;
+#X connect 30 0 8 0;
+#X connect 31 0 32 0;
+#X connect 31 1 32 1;
+#X connect 31 2 32 2;
+#X connect 32 0 35 0;
+#X connect 32 1 35 1;
+#X connect 32 2 35 2;
+#X connect 32 3 35 3;
+#X connect 35 0 19 0;
+#X connect 35 0 33 0;
+#X connect 35 1 19 1;
+#X connect 35 1 33 1;
+#X connect 35 2 19 2;
+#X connect 35 2 33 2;
+#X connect 35 3 19 3;
+#X connect 35 3 33 3;
+#X connect 36 0 30 0;
+#X connect 36 0 31 0;
+#X connect 36 1 30 1;
+#X connect 36 1 31 1;
+#X connect 36 2 30 2;
+#X connect 36 2 31 2;
diff --git a/ambiZoomRead~.pd b/ambiZoomRead~.pd
new file mode 100644
index 0000000..580da38
--- /dev/null
+++ b/ambiZoomRead~.pd
@@ -0,0 +1,164 @@
+#N canvas 462 92 957 600 10;
+#X obj 155 264 readsf~ 2;
+#X obj 232 261 readsf~ 2;
+#X text 177 241 Front;
+#X text 261 243 Rear;
+#X msg 138 235 1;
+#X obj 168 149 t b a;
+#X msg 224 236 1;
+#X obj 254 150 t b a;
+#X obj 128 347 outlet~ FL;
+#X obj 199 347 outlet~ FR;
+#X obj 275 346 outlet~ RL;
+#X obj 349 349 outlet~ RR;
+#X obj 142 -17 inlet;
+#N canvas 751 57 688 783 rm_extension 0;
+#X obj 238 46 inlet list;
+#X obj 406 647 outlet;
+#X obj 175 641 outlet;
+#X obj 221 358 t a a;
+#X obj 166 503 list append 70 46 119 97 118;
+#X obj 393 505 list append 82 46 119 97 118;
+#X msg 352 85 helloF.wav;
+#X obj 220 192 list trim;
+#X obj 172 593 zexy/list2symbol;
+#X obj 405 618 zexy/list2symbol;
+#X obj 221 309 list split -5;
+#X obj 220 215 hcs/ascii2int;
+#X obj 393 537 int2ascii;
+#X obj 167 533 int2ascii;
+#X connect 0 0 7 0;
+#X connect 3 0 4 0;
+#X connect 3 1 5 0;
+#X connect 4 0 13 0;
+#X connect 5 0 12 0;
+#X connect 6 0 7 0;
+#X connect 7 0 11 0;
+#X connect 8 0 2 0;
+#X connect 9 0 1 0;
+#X connect 10 0 3 0;
+#X connect 11 0 10 0;
+#X connect 12 0 9 0;
+#X connect 13 0 8 0;
+#X restore 79 36 pd rm_extension;
+#X obj 148 194 spigot 1;
+#X obj 232 201 spigot 1;
+#X obj 288 15 route open autoplay play stop;
+#X obj 348 229 t 0;
+#X obj 167 83 symbol;
+#X obj 360 79 symbol;
+#X obj 332 52 t b b;
+#X obj 310 -64 loadbang;
+#X obj 499 200 print zoom.readsf~;
+#X msg 439 315 done F;
+#X msg 483 313 done R;
+#X obj 439 351 outlet info;
+#N canvas 132 192 636 647 wav_info 0;
+#X msg 31 92 read \$1;
+#X text 40 146 "read"-message needs a symbol (soundfile in wave format)
+;
+#X text 50 184 "list"-message output with 7 items;
+#X text 91 224 4.item: <float> header-size in bytes;
+#X text 91 194 1.item: <float> samplerate in Hz;
+#X text 91 204 2.item: <symbol> file-name;
+#X text 91 234 5.item: <float> number of channels;
+#X text 91 254 7.item: <symbol> endianness ("l" for little);
+#X text 260 264 ("b" for big);
+#X text 262 276 (eg. little endian "wav" is natural format on Intel-machines)
+;
+#X text 91 214 3.item: <float> sound-data-length in samples;
+#X text 91 244 6.item: <float> sample-resolution in bytes;
+#X obj 33 49 inlet;
+#X obj 31 302 unpack f s f f f f s;
+#X obj 26 489 outlet duration_ms;
+#X text 132 49 NOTE: we could also use the wavinfo object.;
+#X obj 180 482 outlet other_info;
+#X msg 175 420 samplerate \$1;
+#X msg 263 423 file_name \$1;
+#X msg 348 423 header_size \$1;
+#X msg 529 424 endianess \$1;
+#X obj 31 166 iemlib/soundfile_info;
+#X obj 37 434 ./smpToMs;
+#X connect 0 0 21 0;
+#X connect 12 0 0 0;
+#X connect 13 0 17 0;
+#X connect 13 1 18 0;
+#X connect 13 2 22 0;
+#X connect 13 3 19 0;
+#X connect 13 6 20 0;
+#X connect 17 0 16 0;
+#X connect 18 0 16 0;
+#X connect 19 0 16 0;
+#X connect 20 0 16 0;
+#X connect 21 0 13 0;
+#X connect 22 0 14 0;
+#X restore 767 182 pd wav_info;
+#X text 783 200 duration (ms);
+#X msg 645 378 duration \$1;
+#X obj 740 428 timer;
+#X obj 774 401 metro 50;
+#X obj 787 349 sel 1;
+#X msg 792 371 1;
+#X obj 864 340 t b;
+#X msg 844 379 0;
+#X msg 669 468 elapsed \$1;
+#X obj 775 293 f;
+#X obj 310 -38 tof/arguments comma;
+#X obj 168 115 cyclone/prepend open;
+#X obj 320 116 cyclone/prepend open;
+#X connect 0 0 8 0;
+#X connect 0 1 9 0;
+#X connect 0 2 23 0;
+#X connect 0 2 33 0;
+#X connect 1 0 10 0;
+#X connect 1 1 11 0;
+#X connect 1 2 24 0;
+#X connect 1 2 33 0;
+#X connect 4 0 0 0;
+#X connect 5 0 14 0;
+#X connect 5 1 0 0;
+#X connect 5 1 22 0;
+#X connect 6 0 1 0;
+#X connect 6 0 36 0;
+#X connect 7 0 15 0;
+#X connect 7 1 1 0;
+#X connect 7 1 22 0;
+#X connect 12 0 16 0;
+#X connect 13 0 18 0;
+#X connect 13 1 19 0;
+#X connect 14 0 4 0;
+#X connect 15 0 6 0;
+#X connect 16 0 13 0;
+#X connect 16 1 15 1;
+#X connect 16 1 14 1;
+#X connect 16 2 20 0;
+#X connect 16 3 17 0;
+#X connect 17 0 1 0;
+#X connect 17 0 0 0;
+#X connect 17 0 36 0;
+#X connect 18 0 38 0;
+#X connect 19 0 26 0;
+#X connect 19 0 39 0;
+#X connect 20 0 6 0;
+#X connect 20 0 4 0;
+#X connect 20 1 19 0;
+#X connect 20 1 18 0;
+#X connect 21 0 37 0;
+#X connect 23 0 25 0;
+#X connect 24 0 25 0;
+#X connect 26 0 28 0;
+#X connect 26 1 25 0;
+#X connect 28 0 25 0;
+#X connect 29 0 35 0;
+#X connect 30 0 29 1;
+#X connect 31 0 29 0;
+#X connect 31 0 32 0;
+#X connect 31 1 33 0;
+#X connect 32 0 30 0;
+#X connect 33 0 34 0;
+#X connect 34 0 30 0;
+#X connect 35 0 25 0;
+#X connect 36 0 31 0;
+#X connect 37 0 16 0;
+#X connect 38 0 5 0;
+#X connect 39 0 7 0;
diff --git a/ambiZoomToWxy~-help.pd b/ambiZoomToWxy~-help.pd
new file mode 100644
index 0000000..c81f76d
--- /dev/null
+++ b/ambiZoomToWxy~-help.pd
@@ -0,0 +1,35 @@
+#N canvas 2 89 477 379 10;
+#X obj 50 220 readsf~ 4;
+#X msg 63 147 1;
+#X msg 63 168 0;
+#X msg 64 190 print;
+#X msg 50 122 open \$1;
+#X obj 50 98 openpanel;
+#X obj 50 77 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X text 97 147 Send it "1" to play once a file is opened.;
+#X obj 50 325 dac~ 1 2;
+#X text 19 3 Description: Encodes a quadraphonic sound from a Zoom
+H2 microphone to first order Ambisonics horizontal B-Format.;
+#X obj 50 252 mtl/ambiZoomToWxy~;
+#X text 20 37 tags: ambisonic;
+#X obj 50 287 mtl/ambiWxyToMono~ angle 90;
+#X obj 231 287 mtl/ambiWxyToMono~ angle 270;
+#X connect 0 0 10 0;
+#X connect 0 1 10 1;
+#X connect 0 2 10 2;
+#X connect 0 3 10 3;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 0;
+#X connect 5 0 4 0;
+#X connect 6 0 5 0;
+#X connect 10 0 12 0;
+#X connect 10 0 13 0;
+#X connect 10 1 12 1;
+#X connect 10 1 13 1;
+#X connect 10 2 12 2;
+#X connect 10 2 13 2;
+#X connect 12 0 8 0;
+#X connect 13 0 8 1;
diff --git a/ambiZoomToWxy~.pd b/ambiZoomToWxy~.pd
new file mode 100644
index 0000000..9235c94
--- /dev/null
+++ b/ambiZoomToWxy~.pd
@@ -0,0 +1,47 @@
+#N canvas 186 403 836 291 10;
+#X obj 50 191 outlet~ w;
+#X obj 139 188 outlet~ x;
+#X obj 217 190 outlet~ y;
+#X text 445 49 Encodes a quadraphonic sound from a Zoom H2 microphone
+to first order Ambisonics horizontal B-Format.;
+#X obj 47 22 inlet~ FL;
+#X obj 118 22 inlet~ FR;
+#X obj 198 22 inlet~ BL;
+#X obj 272 21 inlet~ BR;
+#X text 438 15 front left and right \, back left and right inputs;
+#X obj 146 139 -~;
+#X obj 184 138 -~;
+#X obj 47 50 *~ 0.5;
+#X obj 121 49 *~ 0.5;
+#X obj 196 51 *~ 0.5;
+#X obj 271 51 *~ 0.5;
+#X obj 27 139 *~ 0.707;
+#X text 46 238 because x and y on the zoom h2 are not loud enough;
+#X text 55 161 could be -4dB (between 3 and 6);
+#X obj 356 38 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 355 67 iemlib/init 0.5;
+#X connect 4 0 11 0;
+#X connect 5 0 12 0;
+#X connect 6 0 13 0;
+#X connect 7 0 14 0;
+#X connect 9 0 1 0;
+#X connect 10 0 2 0;
+#X connect 11 0 9 0;
+#X connect 11 0 10 0;
+#X connect 11 0 15 0;
+#X connect 12 0 9 0;
+#X connect 12 0 10 1;
+#X connect 12 0 15 0;
+#X connect 13 0 9 1;
+#X connect 13 0 10 0;
+#X connect 13 0 15 0;
+#X connect 14 0 9 1;
+#X connect 14 0 10 1;
+#X connect 14 0 15 0;
+#X connect 15 0 0 0;
+#X connect 18 0 19 0;
+#X connect 19 0 14 1;
+#X connect 19 0 13 1;
+#X connect 19 0 12 1;
+#X connect 19 0 11 1;
diff --git a/browser.pd b/browser.pd
index 48259d8..3acd93e 100644
--- a/browser.pd
+++ b/browser.pd
@@ -1,37 +1,37 @@
-#N canvas 184 399 401 173 10;
-#X obj 137 17 vsl 15 115 0 175 0 0 \$0_slider_s0 \$0_slider_r0 empty
-0 -8 0 8 -1 -228856 -228856 11400 0;
-#X obj -45 45 hradio 15 1 0 12 \$0_hr_2_s0 \$0_hr_2_r0 behavior 2 8
-1 9 -1 -1 -262140 0;
-#X obj -45 60 hradio 15 1 0 12 \$0_hr_3_s0 \$0_hr_3_r0 control~ 2 8
-1 9 -1 -1 -262140 0;
-#X obj -45 75 hradio 15 1 0 12 \$0_hr_4_s0 \$0_hr_4_r0 conversion 2
-8 1 9 -1 -1 -262140 0;
-#X obj -45 90 hradio 15 1 0 12 \$0_hr_5_s0 \$0_hr_5_r0 counter 2 8
-1 9 -1 -1 -262140 0;
-#X obj -45 105 hradio 15 1 0 12 \$0_hr_6_s0 \$0_hr_6_r0 data 2 8 1
-9 -1 -1 -262140 0;
-#X obj -45 120 hradio 15 1 0 12 \$0_hr_7_s0 \$0_hr_7_r0 examples 2
+#N canvas 710 179 403 172 10;
+#X obj 185 17 vsl 15 115 0 175 0 0 \$0_slider_s0 \$0_slider_r0 empty
+0 -8 0 8 -1 -228856 -228856 7800 0;
+#X obj 3 45 hradio 15 1 0 12 \$0_hr_2_s0 \$0_hr_2_r0 fx~ 2 8 1 9 -1
+-1 -258401 0;
+#X obj 3 60 hradio 15 1 0 12 \$0_hr_3_s0 \$0_hr_3_r0 gems 2 8 1 9 -1
+-1 -262140 0;
+#X obj 3 75 hradio 15 1 0 12 \$0_hr_4_s0 \$0_hr_4_r0 info 2 8 1 9 -1
+-1 -262140 0;
+#X obj 3 90 hradio 15 1 0 12 \$0_hr_5_s0 \$0_hr_5_r0 info~ 2 8 1 9
+-1 -1 -262140 0;
+#X obj 3 105 hradio 15 1 0 12 \$0_hr_6_s0 \$0_hr_6_r0 initialization
+2 8 1 9 -1 -1 -262140 0;
+#X obj 3 120 hradio 15 1 0 12 \$0_hr_7_s0 \$0_hr_7_r0 instrument~ 2
8 1 9 -1 -1 -262140 0;
-#X obj 336 17 vsl 15 115 0 175 0 0 \$0_slider_s \$0_slider_r empty
+#X obj 384 17 vsl 15 115 0 175 0 0 \$0_slider_s \$0_slider_r empty
0 -8 0 8 -1 -228856 -1 11400 0;
-#X obj 154 15 hradio 15 1 0 12 \$0_hr_0_s \$0_hr_0_r empty 2 8 1 9
--1 -1 -262140 0;
-#X obj 154 30 hradio 15 1 0 12 \$0_hr_1_s \$0_hr_1_r empty 2 8 1 9
--1 -1 -262140 0;
-#X obj 154 45 hradio 15 1 0 12 \$0_hr_2_s \$0_hr_2_r empty 2 8 1 9
--1 -1 -262140 0;
-#X obj 154 60 hradio 15 1 0 12 \$0_hr_3_s \$0_hr_3_r empty 2 8 1 9
--1 -1 -262140 0;
-#X obj 154 75 hradio 15 1 0 12 \$0_hr_4_s \$0_hr_4_r empty 2 8 1 9
--1 -1 -262140 0;
-#X obj 154 90 hradio 15 1 0 12 \$0_hr_5_s \$0_hr_5_r empty 2 8 1 9
--1 -1 -262140 0;
-#X obj 154 105 hradio 15 1 0 12 \$0_hr_6_s \$0_hr_6_r empty 2 8 1 9
--1 -1 -262140 0;
-#X obj 154 120 hradio 15 1 0 12 \$0_hr_7_s \$0_hr_7_r empty 2 8 1 9
--1 -1 -262140 0;
-#N canvas 1058 43 723 396 ./browser 0;
+#X obj 202 15 hradio 15 1 0 12 \$0_hr_0_s \$0_hr_0_r mtl/delayPhasor~
+2 8 1 9 -1 -1 -258401 4;
+#X obj 202 30 hradio 15 1 0 12 \$0_hr_1_s \$0_hr_1_r cyclone/delay~
+2 8 1 9 -1 -1 -262140 0;
+#X obj 202 45 hradio 15 1 0 12 \$0_hr_2_s \$0_hr_2_r mtl/distoAp~ 2
+8 1 9 -1 -1 -262140 0;
+#X obj 202 60 hradio 15 1 0 12 \$0_hr_3_s \$0_hr_3_r mtl/distoCrusher~
+2 8 1 9 -1 -1 -262140 0;
+#X obj 202 75 hradio 15 1 0 12 \$0_hr_4_s \$0_hr_4_r mtl/distoFuzz~
+2 8 1 9 -1 -1 -262140 0;
+#X obj 202 90 hradio 15 1 0 12 \$0_hr_5_s \$0_hr_5_r mtl/distoLofi~
+2 8 1 9 -1 -1 -262140 0;
+#X obj 202 105 hradio 15 1 0 12 \$0_hr_6_s \$0_hr_6_r mtl/distoNonmonotone~
+2 8 1 9 -1 -1 -262140 0;
+#X obj 202 120 hradio 15 1 0 12 \$0_hr_7_s \$0_hr_7_r mtl/distoSign~
+2 8 1 9 -1 -1 -262140 0;
+#N canvas 301 43 723 396 ./browser 0;
#N canvas 1069 45 887 645 coll 0;
#X obj 23 -42 inlet;
#X obj 247 -40 inlet;
@@ -363,16 +363,11 @@
#X obj 169 543 zexy/demultiplex 0 1;
#X obj 96 207 t b a b;
#X obj 473 542 t b a;
-#X obj 884 154 hcs/folder_list;
-#X obj 884 124 tof/path current absolute;
-#X msg 884 95 symbol examples/*;
-#X obj 884 190 hcs/split_path;
-#X obj 959 235 list prepend examples;
#X obj 381 -2 t b b f b b;
#X obj 502 49 sel 1 0;
#X msg 618 120 read core.txt cr \, flush;
#X connect 0 0 22 0;
-#X connect 1 0 34 0;
+#X connect 1 0 29 0;
#X connect 2 0 22 0;
#X connect 3 0 8 0;
#X connect 3 1 5 0;
@@ -394,7 +389,7 @@
#X connect 18 0 17 0;
#X connect 18 1 19 1;
#X connect 19 0 7 0;
-#X connect 20 0 34 0;
+#X connect 20 0 29 0;
#X connect 21 0 22 0;
#X connect 22 0 25 0;
#X connect 22 1 25 1;
@@ -407,19 +402,13 @@
#X connect 27 2 4 0;
#X connect 28 0 6 0;
#X connect 28 1 24 0;
-#X connect 29 0 32 0;
-#X connect 30 0 29 0;
-#X connect 31 0 30 0;
-#X connect 32 1 33 0;
-#X connect 33 0 7 0;
-#X connect 34 0 3 0;
-#X connect 34 1 21 0;
-#X connect 34 2 35 0;
-#X connect 34 3 31 0;
-#X connect 34 4 0 0;
-#X connect 35 0 16 0;
-#X connect 35 1 36 0;
-#X connect 36 0 14 0;
+#X connect 29 0 3 0;
+#X connect 29 1 21 0;
+#X connect 29 2 30 0;
+#X connect 29 4 0 0;
+#X connect 30 0 16 0;
+#X connect 30 1 31 0;
+#X connect 31 0 14 0;
#X restore 321 63 pd readTags;
#N canvas 178 252 827 449 coll 0;
#X obj 23 -42 inlet;
@@ -647,6 +636,8 @@
#X obj 411 -9 t b f b b;
#X obj 258 137 s \$0_slider_r;
#X obj 435 97 t b b b;
+#X obj 369 -61 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
#X connect 1 0 0 0;
#X connect 1 1 0 1;
#X connect 2 0 0 0;
@@ -679,16 +670,19 @@
#X connect 25 0 8 0;
#X connect 25 1 5 0;
#X connect 25 2 13 0;
-#X restore 229 -9 pd ./browser;
-#X obj -45 15 hradio 15 1 0 12 \$0_hr_0_s0 \$0_hr_0_r0 2d 2 8 1 9 -1
+#X connect 26 0 22 0;
+#X restore 277 -9 pd ./browser;
+#X obj 3 15 hradio 15 1 0 12 \$0_hr_0_s0 \$0_hr_0_r0 file 2 8 1 9 -1
-1 -262140 0;
-#X obj -45 31 hradio 15 1 0 12 \$0_hr_1_s0 \$0_hr_1_r0 3d 2 8 1 9 -1
--1 -262140 0;
-#X obj -45 -9 cnv 15 198 22 empty empty TAG 1 12 1 12 -16645 -228856
+#X obj 3 31 hradio 15 1 0 12 \$0_hr_1_s0 \$0_hr_1_r0 file~ 2 8 1 9
+-1 -1 -262140 0;
+#X obj 3 -9 cnv 15 198 22 empty empty TAG 1 12 1 12 -16645 -228856
0;
-#X obj 154 -9 cnv 15 197 22 empty empty CLASS/ABSTRACTION 0 12 1 12
+#X obj 202 -9 cnv 15 197 22 empty empty CLASS/ABSTRACTION 0 12 1 12
-16645 -228856 0;
-#X obj -45 137 cnv 15 396 20 empty empty empty 20 12 0 14 -16645 -258401
+#X obj 3 137 cnv 15 396 20 empty empty empty 20 12 0 14 -16645 -258401
0;
-#X obj -41 141 tgl 11 0 \$0love \$0lover with:love 17 6 0 8 -162280
--262144 -258401 1 1;
+#X obj 7 141 tgl 11 0 \$0love \$0lover with:love 17 6 0 8 -162280 -262144
+-258401 1 1;
+#X obj 146 141 cnv 15 100 10 empty empty http://wiki.dataflow.ws/PdMtlAbstractions
+0 6 0 8 -16645 -99865 0;
diff --git a/channel~-help.pd b/channel~-help.pd
index ccbe7c6..a32282a 100644
--- a/channel~-help.pd
+++ b/channel~-help.pd
@@ -1,29 +1,36 @@
-#N canvas 1063 163 829 470 10;
-#X text 35 22 Description: Controls the panning and volume of a stereo
+#N canvas 426 307 716 270 10;
+#X text 13 15 Description: Controls the panning and volume of a stereo
signal.;
-#X obj 41 88 adc~;
-#X text 38 54 tags: mix~;
-#X obj 39 122 mtl/channel~ /id chan0;
-#X obj 221 261 mtl/aux~ 0;
-#X obj 221 303 mtl/vu~;
-#X obj 380 302 mtl/vu~;
-#X obj 380 260 mtl/aux~ 1;
-#X obj 42 227 mtl/main~;
-#X obj 42 271 mtl/out~;
-#X obj 277 91 hsl 100 15 -20 20 0 0 \$0/chan0/hi \$0/chan0/hi_ /chan0/hi
-105 7 0 10 -262144 -1 -1 8900 1;
-#X obj 277 111 hsl 100 15 -20 20 0 0 \$0/chan0/mid \$0/chan0/mid_ /chan0/mid
-105 7 0 10 -262144 -1 -1 7900 1;
-#X obj 277 131 hsl 100 15 -20 20 0 0 \$0/chan0/low \$0/chan0/low_ /chan0/low
-105 7 0 10 -262144 -1 -1 9900 1;
-#X obj 277 151 hsl 100 15 -1 1 0 0 \$0/chan0/pan \$0/chan0/pan_ /chan0/pan
-105 7 0 10 -262144 -1 -1 0 1;
-#X obj 277 171 hradio 15 1 0 7 \$0/chan0/num \$0/chan0/num_ /chan0/num
-107 7 0 10 -262144 -1 -1 0;
-#X obj 277 191 hsl 100 15 0 1 0 0 \$0/chan0/aux \$0/chan0/aux_ /chan0/aux
-105 7 0 10 -262144 -1 -1 0 1;
-#X obj 277 211 hsl 100 15 0 1 0 0 \$0/chan0/main \$0/chan0/main_ /chan0/main
-105 7 0 10 -262144 -1 -1 0 1;
+#X obj 13 92 adc~;
+#X text 16 47 tags: mix~;
+#X obj 12 126 mtl/channel~ /id chan0;
+#X obj 172 160 mtl/aux~ 0;
+#X obj 172 202 mtl/vu~;
+#X obj 311 202 mtl/vu~;
+#X obj 311 160 mtl/aux~ 1;
+#X obj 12 158 mtl/main~;
+#X obj 12 202 mtl/out~;
+#X obj 483 21 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 543 22 PARAM ENABLED;
+#X obj 516 40 mtl/param-enabled-help;
+#X text 152 125 <-Click on the propeties menu to display params;
+#X obj 484 71 cnv 15 200 20 empty empty /chan0/ 2 12 0 8 -258401 -262144
+0;
+#X obj 484 94 hsl 100 15 -20 20 0 0 /chan0/hi /chan0/hi_ hi 105 7 0
+8 -262144 -1 -1 4950 1;
+#X obj 484 112 hsl 100 15 -20 20 0 0 /chan0/mid /chan0/mid_ mid 105
+7 0 8 -262144 -1 -1 4950 1;
+#X obj 484 130 hsl 100 15 -20 20 0 0 /chan0/low /chan0/low_ low 105
+7 0 8 -262144 -1 -1 4950 1;
+#X obj 484 148 hsl 100 15 -1 1 0 0 /chan0/pan /chan0/pan_ pan 105 7
+0 8 -262144 -1 -1 4950 1;
+#X obj 484 166 hsl 100 15 0 1 0 0 /chan0/aux /chan0/aux_ aux 105 7
+0 8 -262144 -1 -1 0 1;
+#X obj 484 184 hsl 100 15 0 1 0 0 /chan0/main /chan0/main_ main 105
+7 0 8 -262144 -1 -1 0 1;
+#X obj 484 202 nbx 5 14 -1e+37 1e+37 0 0 /chan0/auxn /chan0/auxn_ auxn
+50 8 0 8 -262144 -1 -1 0 256;
#X connect 1 0 3 0;
#X connect 1 1 3 1;
#X connect 4 0 5 0;
diff --git a/channel~.pd b/channel~.pd
index e58a7c3..f9f3ee2 100644
--- a/channel~.pd
+++ b/channel~.pd
@@ -1,4 +1,4 @@
-#N canvas 1079 16 948 682 10;
+#N canvas 362 183 948 682 10;
#X obj 240 66 inlet~;
#X obj 424 66 inlet~;
#X obj 598 288 min 0;
@@ -31,25 +31,15 @@
#X obj 313 405 tof/param /aux 0 /g slider 0 1;
#X obj 254 489 tof/param /main 0 /g slider 0 1;
#X obj 699 337 tof/param /auxn 0 /g nbx;
-#X obj 12 181 hsl 64 13 0 127 0 0 empty empty hi 10 7 0 9 -262144 -1
--1 0 1;
-#X obj 12 196 hsl 64 13 0 127 0 0 empty empty mid 10 7 0 9 -262144
--1 -1 0 1;
-#X obj 12 211 hsl 64 13 0 127 0 0 empty empty low 10 7 0 9 -262144
--1 -1 0 1;
-#X obj 89 181 hsl 69 15 0 127 0 0 empty empty pan 10 7 0 9 -262144
--1 -1 0 1;
-#X obj 117 199 hsl 40 13 0 127 0 0 empty empty aux 10 7 0 9 -262144
--1 -1 0 1;
-#X obj 86 198 nbx 2 14 -1e+37 1e+37 0 0 empty empty empty 30 7 0 9
--262144 -1 -1 0 256;
-#X obj 89 215 hsl 69 15 0 127 0 0 empty empty main 10 7 0 9 -262144
--1 -1 0 1;
-#X obj 15 258 cnv 15 100 16 empty \$0c synth 5 7 0 9 -1 -262144 0;
#X obj 723 547 tof/common~;
#X obj 476 624 tof/common~ MTLMAINR;
#X obj 200 611 tof/common~ MTLMAINL;
#X obj 93 560 tof/common~;
+#X obj 31 126 iemguts/propertybang;
+#X obj 32 155 tof/param gui;
+#X obj 830 76 inlet params;
+#X obj 830 122 print PARAM_NOTFOUND;
+#X obj 830 98 tof/param route;
#X connect 0 0 23 0;
#X connect 1 0 24 0;
#X connect 2 0 9 0;
@@ -65,18 +55,18 @@
#X connect 11 0 10 0;
#X connect 12 0 19 1;
#X connect 12 0 18 1;
-#X connect 13 0 43 0;
-#X connect 14 0 43 0;
-#X connect 15 0 42 0;
+#X connect 13 0 35 0;
+#X connect 14 0 35 0;
+#X connect 15 0 34 0;
#X connect 16 0 18 0;
#X connect 16 0 14 1;
#X connect 17 0 16 0;
-#X connect 18 0 40 0;
-#X connect 19 0 41 0;
+#X connect 18 0 32 0;
+#X connect 19 0 33 0;
#X connect 20 0 15 1;
#X connect 20 0 19 0;
#X connect 21 0 20 0;
-#X connect 22 0 40 0;
+#X connect 22 0 32 0;
#X connect 23 0 4 0;
#X connect 24 0 12 0;
#X connect 25 0 23 5;
@@ -91,4 +81,7 @@
#X connect 30 0 21 0;
#X connect 31 0 22 0;
#X connect 31 0 13 0;
+#X connect 36 0 37 0;
+#X connect 38 0 40 0;
+#X connect 40 0 39 0;
#X coords 0 0 1 1 160 74 0;
diff --git a/clk-quantization-help.pd b/clk-quantization-help.pd
index ee26148..6ea0569 100644
--- a/clk-quantization-help.pd
+++ b/clk-quantization-help.pd
@@ -1,4 +1,4 @@
-#N canvas 0 0 773 540 10;
+#N canvas 90 70 773 540 10;
#X obj 52 509 outlet;
#X text 166 155 That means that the abstraction can start playing on
each beat (every 24 steps).;
diff --git a/compress~-help.pd b/compress~-help.pd
index f99513f..011226a 100644
--- a/compress~-help.pd
+++ b/compress~-help.pd
@@ -1,4 +1,4 @@
-#N canvas 643 527 448 238 10;
+#N canvas 768 235 459 322 10;
#X text 16 39 From www.netpd.org;
#X text 15 8 Description: rcomp is a basic downward compressor. its
control chain is processed in audio rate.;
@@ -7,18 +7,6 @@ control chain is processed in audio rate.;
#X obj 18 95 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#X text 16 60 tags: mix~;
-#X obj 189 137 hsl 100 15 1 10 0 0 \$0/compress~/ratio \$0/compress~/ratio_
-/compress~/ratio 105 7 0 8 -262144 -1 -1 0 1;
-#X obj 189 157 hsl 100 15 -60 0 0 0 \$0/compress~/threshold \$0/compress~/threshold_
-/compress~/threshold 105 7 0 8 -262144 -1 -1 9900 1;
-#X obj 189 177 hsl 100 15 1 300 0 0 \$0/compress~/attack \$0/compress~/attack_
-/compress~/attack 105 7 0 8 -262144 -1 -1 298 1;
-#X obj 189 197 hsl 100 15 5 3000 0 0 \$0/compress~/release \$0/compress~/release_
-/compress~/release 105 7 0 8 -262144 -1 -1 512 1;
-#X obj 186 97 tgl 15 0 \$0/compress~/switch \$0/compress~/switch_ /compress~/switch
-17 7 0 8 -262144 -1 -1 0 1;
-#X obj 189 117 hsl 100 15 -20 30 0 0 \$0/compress~/gain \$0/compress~/gain_
-/compress~/gain 105 7 0 8 -262144 -1 -1 3960 1;
#N canvas 5 185 450 300 generate~ 0;
#X obj 32 213 osc~ 200;
#X obj 32 89 metro 400;
@@ -52,8 +40,27 @@ control chain is processed in audio rate.;
#X connect 13 0 11 0;
#X connect 14 0 2 0;
#X restore 18 120 pd generate~;
+#X obj 222 170 cnv 15 200 20 empty empty /compress~/ 2 12 0 8 -258401
+-262144 0;
+#X obj 225 233 hsl 100 15 1 10 0 0 /compress~/ratio /compress~/ratio_
+ratio 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 225 251 hsl 100 15 -60 0 0 0 /compress~/threshold /compress~/threshold_
+threshold 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 225 269 hsl 100 15 1 300 0 0 /compress~/attack /compress~/attack_
+attack 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 225 287 hsl 100 15 5 3000 0 0 /compress~/release /compress~/release_
+release 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 222 195 tgl 15 0 /compress~/switch /compress~/switch_ switch
+17 7 0 8 -262144 -166441 -1 0 1;
+#X obj 225 215 hsl 100 15 -20 30 0 0 /compress~/gain /compress~/gain_
+gain 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 219 80 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 279 81 PARAM ENABLED;
+#X obj 252 99 mtl/param-enabled-help;
+#X text 113 139 <-Click on the propeties menu to display params;
#X connect 2 0 3 0;
#X connect 2 1 3 1;
-#X connect 4 0 12 0;
-#X connect 12 0 2 0;
-#X connect 12 1 2 1;
+#X connect 4 0 6 0;
+#X connect 6 0 2 0;
+#X connect 6 1 2 1;
diff --git a/compress~.pd b/compress~.pd
index 338f24e..a22202d 100644
--- a/compress~.pd
+++ b/compress~.pd
@@ -1,4 +1,4 @@
-#N canvas 678 217 640 350 10;
+#N canvas 679 249 640 350 10;
#N canvas 233 421 588 419 processing 0;
#X obj 7 271 *~;
#N canvas 284 416 336 370 amp-factor 0;
@@ -170,7 +170,6 @@
#X obj 64 239 outlet~;
#X obj 158 239 outlet~;
#X obj 445 37 inlet params;
-#X obj 445 59 tof/paramRoute;
#X obj 445 83 print PARAM_NOTFOUND;
#X obj 154 96 tof/param /ratio 1 /g slider 1 10;
#X obj 164 76 tof/param /threshold 0 /g slider -60 0;
@@ -182,22 +181,26 @@
#X msg 217 190 \$1 200;
#X obj 144 116 tof/param /gain 0 /g slider -20 30;
#X obj 217 212 line~;
-#X connect 0 0 12 2;
-#X connect 0 1 12 3;
+#X obj 424 185 iemguts/propertybang;
+#X obj 425 214 tof/param gui;
+#X obj 445 59 tof/param route;
+#X connect 0 0 11 2;
+#X connect 0 1 11 3;
#X connect 1 0 0 0;
-#X connect 1 0 12 0;
+#X connect 1 0 11 0;
#X connect 2 0 0 1;
-#X connect 2 0 12 1;
-#X connect 5 0 6 0;
-#X connect 6 0 7 0;
-#X connect 8 0 0 3;
-#X connect 9 0 0 4;
-#X connect 10 0 0 5;
-#X connect 11 0 0 6;
-#X connect 12 0 3 0;
-#X connect 12 1 4 0;
+#X connect 2 0 11 1;
+#X connect 5 0 19 0;
+#X connect 7 0 0 3;
+#X connect 8 0 0 4;
+#X connect 9 0 0 5;
+#X connect 10 0 0 6;
+#X connect 11 0 3 0;
+#X connect 11 1 4 0;
+#X connect 12 0 13 0;
#X connect 13 0 14 0;
-#X connect 14 0 15 0;
-#X connect 15 0 17 0;
-#X connect 16 0 0 2;
-#X connect 17 0 12 4;
+#X connect 14 0 16 0;
+#X connect 15 0 0 2;
+#X connect 16 0 11 4;
+#X connect 17 0 18 0;
+#X connect 19 0 6 0;
diff --git a/core.txt b/core.txt
index 5a946bc..d250977 100644
--- a/core.txt
+++ b/core.txt
@@ -16,6 +16,37 @@ mtl/3dScale 3d
mtl/3dSubtract 3d
mtl/additive~ instrument~
mtl/adsr~ control~
+mtl/ambiCatch7~ ambisonic
+mtl/ambiDistance7~ ambisonic
+mtl/ambiGain3~ ambisonic
+mtl/ambiGain4~ ambisonic
+mtl/ambiGain7~ ambisonic
+mtl/ambiLimiter4~ ambisonic
+mtl/ambiLimiter6~ ambisonic
+mtl/ambiMonoToWxyuvpq~ ambisonic
+mtl/ambiMonoToWxyz~ ambisonic
+mtl/ambiMonoToWxy~ ambisonic
+mtl/ambiReceive7~ ambisonic
+mtl/ambiRotateWxyuvpq~ ambisonic
+mtl/ambiRotateWxy~ ambisonic
+mtl/ambiSend7~ ambisonic
+mtl/ambiSfRead4~ ambisonic
+mtl/ambiSfWrite4~ ambisonic
+mtl/ambiSfWrite7~ ambisonic
+mtl/ambiTable4 ambisonic
+mtl/ambiTablePlay3~ ambisonic
+mtl/ambiTableRead3~ ambisonic
+mtl/ambiThrow7~ ambisonic
+mtl/ambiVu3~ ambisonic
+mtl/ambiVu4~ ambisonic
+mtl/ambiVu7~ ambisonic
+mtl/ambiWxyToMono~ ambisonic
+mtl/ambiWxyToQuad~ ambisonic
+mtl/ambiWxyToWxyuvpq~ ambisonic
+mtl/ambiWxyuvpqToMono~ ambisonic
+mtl/ambiWxyzToMono~ ambisonic
+mtl/ambiZoomRead~ ambisonic
+mtl/ambiZoomToWxy~ ambisonic
mtl/ambient~ synthesize~
mtl/applause~ synthesize~
mtl/arpeggio musical
@@ -73,6 +104,7 @@ mtl/dtmfHandUp~ synthesize~
mtl/dtmfHurryUp~ synthesize~
mtl/dtmfNumber~ synthesize~
mtl/dtmfRing~ synthesize~
+mtl/echoBp~ fx~
mtl/echoRobot~ fx~
mtl/echoVd~ fx~
mtl/eq~ mix~
diff --git a/delayPhasor~-help.pd b/delayPhasor~-help.pd
index 6d53c0e..64f35e7 100644
--- a/delayPhasor~-help.pd
+++ b/delayPhasor~-help.pd
@@ -1,10 +1,10 @@
-#N canvas 584 57 499 243 10;
+#N canvas 321 431 540 306 10;
#X text 14 29 Author: Chun Lee (sonicvariable.goto10.org);
#X text 15 8 Description: Delay controlled by a phasor;
#X obj 20 171 mtl/out~;
#X obj 20 138 mtl/delayPhasor~ /id delayPhasor;
#X text 15 50 tags: fx~;
-#X obj 19 90 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
+#X obj 19 90 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
;
#N canvas 5 185 450 300 generate~ 0;
#X obj 32 213 osc~ 200;
@@ -39,14 +39,21 @@
#X connect 13 0 11 0;
#X connect 14 0 2 0;
#X restore 19 115 pd generate~;
-#X obj 238 138 hsl 100 15 0 1 0 0 \$0/delayPhasor/wet \$0/delayPhasor/wet_
-/delayPhasor/wet 105 7 0 8 -262144 -1 -1 0 1;
-#X obj 238 178 hsl 100 15 1 20000 0 0 \$0/delayPhasor/delay2 \$0/delayPhasor/delay2_
-/delayPhasor/delay2 105 7 0 8 -262144 -1 -1 4 1;
-#X obj 238 158 hsl 100 15 1 20000 0 0 \$0/delayPhasor/delay1 \$0/delayPhasor/delay1_
-/delayPhasor/delay1 105 7 0 8 -262144 -1 -1 49 1;
-#X obj 238 198 hsl 100 15 0.01 10 0 0 \$0/delayPhasor/phasor \$0/delayPhasor/phasor_
-/delayPhasor/phasor 105 7 0 8 -262144 -1 -1 287 1;
+#X text 223 135 <-Click on the propeties menu to display params;
+#X obj 307 18 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 367 19 PARAM ENABLED;
+#X obj 340 37 mtl/param-enabled-help;
+#X obj 276 191 cnv 15 200 20 empty empty /delayPhasor/ 2 12 0 8 -258401
+-262144 0;
+#X obj 276 214 hsl 100 15 0 1 0 0 /delayPhasor/wet /delayPhasor/wet_
+wet 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 276 232 hsl 100 15 1 20000 0 0 /delayPhasor/delay2 /delayPhasor/delay2_
+delay2 105 7 0 8 -262144 -1 -1 4 1;
+#X obj 276 250 hsl 100 15 1 20000 0 0 /delayPhasor/delay1 /delayPhasor/delay1_
+delay1 105 7 0 8 -262144 -1 -1 49 1;
+#X obj 276 268 hsl 100 15 0.01 10 0 0 /delayPhasor/phasor /delayPhasor/phasor_
+phasor 105 7 0 8 -262144 -1 -1 287 1;
#X connect 3 0 2 0;
#X connect 3 1 2 1;
#X connect 5 0 6 0;
diff --git a/delayPhasor~.pd b/delayPhasor~.pd
index 92b0d89..0efdd49 100644
--- a/delayPhasor~.pd
+++ b/delayPhasor~.pd
@@ -1,5 +1,5 @@
-#N canvas 362 310 740 458 10;
-#N canvas 460 241 627 300 delayphasor 0;
+#N canvas 188 238 740 458 10;
+#N canvas 383 314 627 300 delayphasor 0;
#X obj 311 292 *~ 0.8;
#X obj 310 249 /~ 44.1;
#X obj 310 226 +~ 100;
@@ -13,11 +13,11 @@
#X obj 82 130 -~ 0.5;
#X obj 83 156 abs~;
#X obj 84 181 *~ 2;
-#X floatatom 169 91 5 0 0 0 - - -;
+#X floatatom 174 78 5 0 0 0 - - -;
#X obj 84 290 *~ 0.8;
#X obj 9 4 inlet~;
-#X obj 169 50 loadbang;
-#X msg 169 69 0.5;
+#X obj 174 37 loadbang;
+#X msg 174 56 0.5;
#X floatatom 380 36 5 0 0 0 - - -;
#X floatatom 422 34 5 0 0 0 - - -;
#X obj 380 12 inlet;
@@ -27,20 +27,20 @@
#X obj 309 112 phasor~ 0.033;
#X obj 83 317 outlet~;
#X obj 312 319 outlet~;
-#X obj 9 26 delwrite~ dpdelay11 1000;
-#X obj 253 90 delwrite~ dpdelay22 1000;
-#X obj 309 271 vd~ dpdelay22;
-#X obj 82 269 vd~ dpdelay11;
#X obj 488 13 inlet phasor;
+#X obj 82 269 vd~ \$0-dpdelay11;
+#X obj 309 271 vd~ \$0-dpdelay22;
+#X obj 253 90 delwrite~ \$0-dpdelay22 1000;
+#X obj 9 26 delwrite~ \$0-dpdelay11 1000;
#X connect 0 0 26 0;
-#X connect 0 0 28 0;
+#X connect 0 0 30 0;
#X connect 1 0 29 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 3 0;
-#X connect 7 0 30 0;
+#X connect 7 0 28 0;
#X connect 8 0 7 0;
#X connect 9 0 8 0;
#X connect 10 0 11 0;
@@ -48,8 +48,8 @@
#X connect 12 0 9 0;
#X connect 13 0 23 1;
#X connect 14 0 25 0;
-#X connect 14 0 27 0;
-#X connect 15 0 27 0;
+#X connect 14 0 31 0;
+#X connect 15 0 31 0;
#X connect 16 0 17 0;
#X connect 17 0 13 0;
#X connect 18 0 9 1;
@@ -58,12 +58,12 @@
#X connect 19 0 2 1;
#X connect 20 0 18 0;
#X connect 21 0 19 0;
-#X connect 22 0 28 0;
+#X connect 22 0 30 0;
#X connect 23 0 10 0;
#X connect 24 0 4 0;
+#X connect 27 0 13 0;
+#X connect 28 0 14 0;
#X connect 29 0 0 0;
-#X connect 30 0 14 0;
-#X connect 31 0 13 0;
#X restore 27 86 pd delayphasor;
#X obj 135 309 outlet~;
#X obj 227 308 outlet~;
@@ -79,6 +79,8 @@
#X obj 253 219 line~;
#X msg 253 198 \$1 5;
#X obj 590 54 tof/param route;
+#X obj 531 178 iemguts/propertybang;
+#X obj 532 207 tof/param gui;
#X connect 0 0 7 2;
#X connect 0 1 7 3;
#X connect 3 0 0 0;
@@ -95,3 +97,4 @@
#X connect 12 0 7 4;
#X connect 13 0 12 0;
#X connect 14 0 6 0;
+#X connect 15 0 16 0;
diff --git a/distoAp~-help.pd b/distoAp~-help.pd
index 47f9428..4c424a3 100644
--- a/distoAp~-help.pd
+++ b/distoAp~-help.pd
@@ -1,65 +1,50 @@
-#N canvas 631 397 563 270 10;
+#N canvas 84 466 597 403 10;
#X text 10 50 See: http://www.acoustics.hut.fi/~jpekonen/Papers/dafx08/
;
#X text 11 5 Description: "Coefficient Modulated Allpass Filter as
Distortion Effect" as in the DAFx 2008 paper by Jussi Pekonen;
-#X obj 15 125 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
#X obj 15 211 mtl/out~;
#X text 9 68 Author: Frank Barknecht \, 2008;
#X text 10 85 tags: fx~;
-#X obj 243 132 hsl 100 15 0 127 0 0 \$0/disAp/lop \$0/disAp/lop_ /disAp/lop
-105 7 0 8 -262144 -1 -1 0 1;
-#X obj 243 152 hsl 100 15 0 500 0 0 \$0/disAp/drive \$0/disAp/drive_
-/disAp/drive 105 7 0 8 -262144 -1 -1 0 1;
-#X obj 243 112 hsl 100 15 0 1 0 0 \$0/disAp/wet \$0/disAp/wet_ /disAp/wet
-105 7 0 8 -262144 -1 -1 0 1;
-#X text 239 173 presets;
-#X msg 252 214 /disAp/lop 30 \, /disAp/drive 110 \, /disAp/wet 1;
+#X text 22 261 presets;
+#X msg 35 302 /disAp/lop 30 \, /disAp/drive 110 \, /disAp/wet 1;
#X msg 175 164 /wet \$1;
#X floatatom 175 143 5 0 1 0 - - -;
-#X msg 241 194 /disAp/lop 80 \, /disAp/drive 10 \, /disAp/wet 1;
-#N canvas 5 185 450 300 generate~ 0;
-#X obj 32 213 osc~ 200;
-#X obj 32 89 metro 400;
-#X obj 32 175 mtof;
-#X obj 104 195 mtof;
-#X obj 32 132 + 20;
-#X obj 32 111 random 70;
-#X floatatom 83 69 5 0 0 0 - - -;
-#X obj 32 261 outlet~;
-#X obj 103 261 outlet~;
-#X obj 30 14 inlet;
-#X obj 104 175 mtl/closestNote 0 2 4 7 9;
-#X obj 104 234 *~;
-#X obj 31 234 *~;
-#X obj 104 214 osc~ 100;
-#X obj 32 155 mtl/closestNote 0 2 4 7 9;
-#X connect 0 0 12 0;
-#X connect 1 0 5 0;
-#X connect 2 0 0 0;
-#X connect 3 0 13 0;
-#X connect 4 0 10 0;
-#X connect 4 0 14 0;
-#X connect 5 0 4 0;
-#X connect 6 0 1 1;
-#X connect 9 0 1 0;
-#X connect 9 0 11 1;
-#X connect 9 0 12 1;
-#X connect 10 0 3 0;
-#X connect 11 0 8 0;
-#X connect 12 0 7 0;
-#X connect 13 0 11 0;
-#X connect 14 0 2 0;
-#X restore 15 150 pd generate~;
+#X msg 24 282 /disAp/lop 80 \, /disAp/drive 10 \, /disAp/wet 1;
#X obj 16 187 mtl/distoAp~ /id disAp;
-#X obj 241 235 tof/param route;
-#X connect 2 0 14 0;
-#X connect 10 0 16 0;
-#X connect 11 0 15 2;
-#X connect 12 0 11 0;
-#X connect 13 0 16 0;
-#X connect 14 0 15 0;
-#X connect 14 1 15 1;
-#X connect 15 0 3 0;
-#X connect 15 1 3 1;
+#X obj 24 323 tof/param route;
+#X text 166 185 <-Click on the propeties menu to display params;
+#X obj 289 98 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 349 99 PARAM ENABLED;
+#X obj 322 117 mtl/param-enabled-help;
+#X obj 343 268 cnv 15 200 20 empty empty /disAp/ 2 12 0 8 -258401 -262144
+0;
+#X obj 343 291 hsl 100 15 0 127 0 0 /disAp/lop /disAp/lop_ lop 105
+7 0 8 -262144 -1 -1 6236 1;
+#X obj 343 309 hsl 100 15 0 500 0 0 /disAp/drive /disAp/drive_ drive
+105 7 0 8 -262144 -1 -1 198 1;
+#X obj 343 327 hsl 100 15 0 1 0 0 /disAp/wet /disAp/wet_ wet 105 7
+0 8 -262144 -1 -1 9900 1;
+#X obj 19 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#N canvas 367 242 582 409 loop_sample 0;
+#X obj 47 313 outlet~;
+#X obj 43 9 inlet;
+#X obj 193 319 outlet~;
+#X msg 47 163 panel;
+#X obj 47 200 mtl/player~ 1;
+#X connect 1 0 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 0 0;
+#X connect 4 0 2 0;
+#X restore 19 153 pd loop_sample;
+#X connect 6 0 11 0;
+#X connect 7 0 10 2;
+#X connect 8 0 7 0;
+#X connect 9 0 11 0;
+#X connect 10 0 2 0;
+#X connect 10 1 2 1;
+#X connect 20 0 21 0;
+#X connect 21 0 10 0;
+#X connect 21 1 10 1;
diff --git a/distoAp~.pd b/distoAp~.pd
index 1393660..ba4e9f5 100644
--- a/distoAp~.pd
+++ b/distoAp~.pd
@@ -62,6 +62,8 @@
#X msg 187 100 \$1 5;
#X obj 187 122 line~;
#X obj 402 41 tof/param route;
+#X obj 294 183 iemguts/propertybang;
+#X obj 295 212 tof/param gui;
#X connect 0 0 5 0;
#X connect 0 0 6 0;
#X connect 3 0 5 1;
@@ -77,3 +79,4 @@
#X connect 11 0 12 0;
#X connect 12 0 6 4;
#X connect 13 0 10 0;
+#X connect 14 0 15 0;
diff --git a/distoCrusher~-help.pd b/distoCrusher~-help.pd
index 7269141..b82bbad 100644
--- a/distoCrusher~-help.pd
+++ b/distoCrusher~-help.pd
@@ -1,4 +1,4 @@
-#N canvas 526 221 476 401 10;
+#N canvas 212 247 568 405 10;
#X text 15 32 Author: Enrique Erne;
#X text 15 14 Description: a bit crusher;
#X obj 46 112 *~ 0.5;
@@ -9,18 +9,25 @@
#X obj 20 249 cyclone/Scope~ 130 130 256 3 128 -1 1 0 0 0 0 102 255
51 135 135 135 0;
#X text 16 51 tags: fx~;
-#X obj 259 136 hsl 100 15 0 1 0 0 \$0/crush/wet \$0/crush/wet_ /crush/wet
-105 7 0 8 -262144 -1 -1 0 1;
-#X obj 259 156 hsl 100 15 0 1 0 0 \$0/crush/gain \$0/crush/gain_ /crush/gain
-105 7 0 8 -262144 -1 -1 0 1;
#X obj 47 88 osc~ 110;
#X obj 141 88 osc~ 110;
#X obj 47 154 mtl/distoCrusher~ /id crush;
+#X text 223 154 <-Click on the propeties menu to display params;
+#X obj 317 18 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 377 19 PARAM ENABLED;
+#X obj 350 37 mtl/param-enabled-help;
+#X obj 319 84 cnv 15 200 20 empty empty /crush/ 2 12 0 8 -258401 -262144
+0;
+#X obj 319 107 hsl 100 15 0 1 0 0 /crush/wet /crush/wet_ wet 105 7
+0 8 -262144 -1 -1 0 1;
+#X obj 319 125 hsl 100 15 0 1 0 0 /crush/gain /crush/gain_ gain 105
+7 0 8 -262144 -1 -1 0 1;
#X connect 2 0 6 0;
-#X connect 2 0 12 0;
-#X connect 3 0 12 1;
-#X connect 10 0 2 0;
-#X connect 11 0 3 0;
-#X connect 12 0 4 0;
-#X connect 12 1 4 1;
-#X connect 12 1 5 0;
+#X connect 2 0 10 0;
+#X connect 3 0 10 1;
+#X connect 8 0 2 0;
+#X connect 9 0 3 0;
+#X connect 10 0 4 0;
+#X connect 10 1 4 1;
+#X connect 10 1 5 0;
diff --git a/distoCrusher~.pd b/distoCrusher~.pd
index 3c7e2f2..cfc2d42 100644
--- a/distoCrusher~.pd
+++ b/distoCrusher~.pd
@@ -59,6 +59,8 @@
#X msg 180 129 \$1 5;
#X obj 180 150 line~;
#X obj 532 49 tof/param route;
+#X obj 435 154 iemguts/propertybang;
+#X obj 436 183 tof/param gui;
#X connect 0 0 4 0;
#X connect 0 0 8 0;
#X connect 1 0 4 1;
@@ -73,3 +75,4 @@
#X connect 10 0 11 0;
#X connect 11 0 8 4;
#X connect 12 0 7 0;
+#X connect 13 0 14 0;
diff --git a/distoFuzz~-help.pd b/distoFuzz~-help.pd
index 253a745..533d068 100644
--- a/distoFuzz~-help.pd
+++ b/distoFuzz~-help.pd
@@ -1,4 +1,4 @@
-#N canvas 526 221 495 395 10;
+#N canvas 202 237 620 423 10;
#X obj 50 109 *~ 0.5;
#X obj 134 110 *~ 0.5;
#X text 10 28 Author: netpd;
@@ -12,26 +12,33 @@
#X obj 215 233 cyclone/Scope~ 130 130 256 3 128 -1 1 0 0 0 0 102 255
51 135 135 135 0;
#X text 11 43 tags: fx~;
-#X obj 255 98 hsl 100 15 0 1 0 0 \$0/fuzz/wet \$0/fuzz/wet_ /fuzz/wet
-105 7 0 8 -262144 -1 -1 0 1;
-#X obj 255 118 hsl 100 15 0 1 0 0 \$0/fuzz/pregain \$0/fuzz/pregain_
-/fuzz/pregain 105 7 0 8 -262144 -1 -1 4950 1;
-#X obj 255 138 hsl 100 15 0 1 0 0 \$0/fuzz/clip \$0/fuzz/clip_ /fuzz/clip
-105 7 0 8 -262144 -1 -1 4950 1;
-#X obj 252 78 tgl 15 0 \$0/fuzz/difference \$0/fuzz/difference_ /fuzz/difference
-17 7 0 8 -262144 -1 -1 0 1;
-#X obj 255 158 hsl 100 15 0 1 0 0 \$0/fuzz/fuzz \$0/fuzz/fuzz_ /fuzz/fuzz
-105 7 0 8 -262144 -1 -1 4950 1;
-#X obj 255 178 hsl 100 15 0 1 0 0 \$0/fuzz/lowpass \$0/fuzz/lowpass_
-/fuzz/lowpass 105 7 0 8 -262144 -1 -1 4950 1;
-#X obj 255 198 hsl 100 15 0 1 0 0 \$0/fuzz/postgain \$0/fuzz/postgain_
-/fuzz/postgain 105 7 0 8 -262144 -1 -1 4950 1;
#X obj 51 146 mtl/distoFuzz~ /id fuzz;
+#X text 199 144 <-Click on the propeties menu to display params;
+#X obj 310 59 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 370 60 PARAM ENABLED;
+#X obj 343 78 mtl/param-enabled-help;
+#X obj 377 213 cnv 15 200 20 empty empty /fuzz/ 2 12 0 8 -258401 -262144
+0;
+#X obj 377 236 hsl 100 15 0 1 0 0 /fuzz/wet /fuzz/wet_ wet 105 7 0
+8 -262144 -1 -1 0 1;
+#X obj 377 254 hsl 100 15 0 1 0 0 /fuzz/pregain /fuzz/pregain_ pregain
+105 7 0 8 -262144 -1 -1 0 1;
+#X obj 377 272 hsl 100 15 0 1 0 0 /fuzz/clip /fuzz/clip_ clip 105 7
+0 8 -262144 -1 -1 0 1;
+#X obj 374 346 tgl 15 0 /fuzz/difference /fuzz/difference_ difference
+17 7 0 8 -262144 -166441 -1 0 1;
+#X obj 377 290 hsl 100 15 0 1 0 0 /fuzz/fuzz /fuzz/fuzz_ fuzz 105 7
+0 8 -262144 -1 -1 0 1;
+#X obj 377 308 hsl 100 15 0 1 0 0 /fuzz/lowpass /fuzz/lowpass_ lowpass
+105 7 0 8 -262144 -1 -1 0 1;
+#X obj 377 326 hsl 100 15 0 1 0 0 /fuzz/postgain /fuzz/postgain_ postgain
+105 7 0 8 -262144 -1 -1 0 1;
#X connect 0 0 7 0;
-#X connect 0 0 17 0;
-#X connect 1 0 17 1;
+#X connect 0 0 10 0;
+#X connect 1 0 10 1;
#X connect 5 0 0 0;
#X connect 6 0 1 0;
-#X connect 17 0 4 0;
-#X connect 17 1 4 1;
-#X connect 17 1 8 0;
+#X connect 10 0 4 0;
+#X connect 10 1 4 1;
+#X connect 10 1 8 0;
diff --git a/distoFuzz~.pd b/distoFuzz~.pd
index 5caead2..722bfe9 100644
--- a/distoFuzz~.pd
+++ b/distoFuzz~.pd
@@ -149,6 +149,8 @@ d 4 8 0 8 -228992 -62784 -62784 0 1;
#X msg 205 190 \$1 5;
#X obj 205 214 line~;
#X obj 400 29 tof/param route;
+#X obj 354 98 iemguts/propertybang;
+#X obj 355 127 tof/param gui;
#X connect 0 0 4 0;
#X connect 0 0 8 0;
#X connect 3 0 4 1;
@@ -168,3 +170,4 @@ d 4 8 0 8 -228992 -62784 -62784 0 1;
#X connect 15 0 16 0;
#X connect 16 0 8 4;
#X connect 17 0 7 0;
+#X connect 18 0 19 0;
diff --git a/distoLofi~-help.pd b/distoLofi~-help.pd
index fa8ffc5..2979ddd 100644
--- a/distoLofi~-help.pd
+++ b/distoLofi~-help.pd
@@ -1,4 +1,4 @@
-#N canvas 526 221 452 396 10;
+#N canvas 365 245 587 391 10;
#X obj 45 102 *~ 0.5;
#X obj 126 101 *~ 0.5;
#X text 14 29 Author: netpd;
@@ -10,20 +10,27 @@
51 135 135 135 0;
#X obj 213 223 cyclone/Scope~ 130 130 256 3 128 -1 1 0 0 0 0 102 255
51 135 135 135 0;
-#X obj 234 95 hsl 100 15 0 1 0 0 \$0/lofi/wet \$0/lofi/wet_ /lofi/wet
-105 7 0 8 -262144 -1 -1 0 1;
-#X obj 234 115 hsl 100 15 0 1 0 0 \$0/lofi/freq \$0/lofi/freq_ /lofi/freq
-105 7 0 8 -262144 -1 -1 4950 1;
-#X obj 234 135 hsl 100 15 0 1 0 0 \$0/lofi/bits \$0/lofi/bits_ /lofi/bits
-105 7 0 8 -262144 -1 -1 3960 1;
#X obj 46 78 osc~ 110;
#X obj 126 77 osc~ 110;
#X obj 44 134 mtl/distoLofi~ /id lofi;
+#X text 195 131 <-Click on the propeties menu to display params;
+#X obj 354 10 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 414 11 PARAM ENABLED;
+#X obj 387 29 mtl/param-enabled-help;
+#X obj 355 56 cnv 15 200 20 empty empty /lofi/ 2 12 0 8 -258401 -262144
+0;
+#X obj 355 79 hsl 100 15 0 1 0 0 /lofi/wet /lofi/wet_ wet 105 7 0 8
+-262144 -1 -1 0 1;
+#X obj 355 97 hsl 100 15 0 1 0 0 /lofi/freq /lofi/freq_ freq 105 7
+0 8 -262144 -1 -1 0 1;
+#X obj 355 115 hsl 100 15 0 1 0 0 /lofi/bits /lofi/bits_ bits 105 7
+0 8 -262144 -1 -1 0 1;
#X connect 0 0 6 0;
-#X connect 0 0 13 0;
-#X connect 1 0 13 1;
-#X connect 11 0 0 0;
-#X connect 12 0 1 0;
-#X connect 13 0 4 0;
-#X connect 13 1 4 1;
-#X connect 13 1 7 0;
+#X connect 0 0 10 0;
+#X connect 1 0 10 1;
+#X connect 8 0 0 0;
+#X connect 9 0 1 0;
+#X connect 10 0 4 0;
+#X connect 10 1 4 1;
+#X connect 10 1 7 0;
diff --git a/distoLofi~.pd b/distoLofi~.pd
index f8b2502..25a25dc 100644
--- a/distoLofi~.pd
+++ b/distoLofi~.pd
@@ -71,6 +71,8 @@
#X msg 215 200 \$1 5;
#X obj 215 224 line~;
#X obj 414 9 tof/param route;
+#X obj 386 168 iemguts/propertybang;
+#X obj 387 197 tof/param gui;
#X connect 0 0 4 0;
#X connect 0 0 8 0;
#X connect 3 0 4 1;
@@ -86,3 +88,4 @@
#X connect 11 0 12 0;
#X connect 12 0 8 4;
#X connect 13 0 7 0;
+#X connect 14 0 15 0;
diff --git a/distoNonmonotone~-help.pd b/distoNonmonotone~-help.pd
index 8af67d7..2a4ab20 100644
--- a/distoNonmonotone~-help.pd
+++ b/distoNonmonotone~-help.pd
@@ -1,52 +1,61 @@
-#N canvas 494 278 763 356 10;
-#X obj 405 5 cnv 15 320 90 empty empty empty 20 12 0 14 -261682 -66577
+#N canvas 63 491 905 408 10;
+#X obj 564 12 cnv 15 320 90 empty empty empty 20 12 0 14 -261682 -66577
0;
-#X text 408 29 le 16 septembre 2009;
-#X text 407 64 Copyright © 2009 par Mathieu Bouchard;
-#X text 408 52 Fabriqué à Villeray \, avec amour;
-#X text 408 17 Tel que presenté au club PureData de Montréal;
-#X text 408 6 Patch de distorsion nonmonotone qui suit l'enveloppe
+#X text 567 36 le 16 septembre 2009;
+#X text 566 71 Copyright © 2009 par Mathieu Bouchard;
+#X text 567 59 Fabriqué à Villeray \, avec amour;
+#X text 567 24 Tel que presenté au club PureData de Montréal;
+#X text 567 13 Patch de distorsion nonmonotone qui suit l'enveloppe
;
-#X text 407 79 Publié sous licence Standard Improved BSD;
-#X obj 243 186 cyclone/Scope~ 130 130 256 3 128 -1 1 0 0 0 0 102 255
-51 135 135 135 0;
-#X obj 16 186 cyclone/Scope~ 130 130 256 3 128 -1 1 0 0 0 0 102 255
-51 135 135 135 0;
+#X text 566 86 Publié sous licence Standard Improved BSD;
#X obj 31 121 mtl/out~;
#X text 26 -2 Description: distortion nonmonotone;
#X text 28 14 tags: fx~;
-#X obj 31 71 *~ 0.5;
-#X obj 136 72 *~ 0.5;
-#X obj 32 47 osc~ 110;
-#X obj 136 47 osc~ 110;
-#X obj 407 108 hsl 100 15 0 1 0 0 \$0/matju/wet \$0/matju/wet_ /matju/wet
-105 7 0 8 -262144 -1 -1 0 1;
-#X obj 407 128 nbx 5 14 -1e+37 1e+37 0 0 \$0/matju/freq1 \$0/matju/freq1_
-/matju/freq1 48 7 0 8 -262144 -1 -1 0 256;
-#X obj 407 148 nbx 5 14 -1e+37 1e+37 0 0 \$0/matju/amp1 \$0/matju/amp1_
-/matju/amp1 48 7 0 8 -262144 -1 -1 0 256;
-#X obj 407 168 nbx 5 14 -1e+37 1e+37 0 0 \$0/matju/base1 \$0/matju/base1_
-/matju/base1 48 7 0 8 -262144 -1 -1 0 256;
-#X obj 407 188 nbx 5 14 -1e+37 1e+37 0 0 \$0/matju/freq2 \$0/matju/freq2_
-/matju/freq2 48 7 0 8 -262144 -1 -1 0 256;
-#X obj 407 208 nbx 5 14 -1e+37 1e+37 0 0 \$0/matju/amp2 \$0/matju/amp2_
-/matju/amp2 48 7 0 8 -262144 -1 -1 0 256;
-#X obj 407 228 nbx 5 14 -1e+37 1e+37 0 0 \$0/matju/base2 \$0/matju/base2_
-/matju/base2 48 7 0 8 -262144 -1 -1 0 256;
-#X obj 407 248 nbx 5 14 -1e+37 1e+37 0 0 \$0/matju/freqfeed \$0/matju/freqfeed_
-/matju/freqfeed 48 7 0 8 -262144 -1 -1 0 256;
-#X obj 407 268 nbx 5 14 -1e+37 1e+37 0 0 \$0/matju/ampfeed \$0/matju/ampfeed_
-/matju/ampfeed 48 7 0 8 -262144 -1 -1 0 256;
-#X obj 407 288 nbx 5 14 -1e+37 1e+37 0 0 \$0/matju/basefeed \$0/matju/basefeed_
-/matju/basefeed 48 7 0 8 -262144 -1 -1 0 256;
-#X obj 407 308 nbx 5 14 -1e+37 1e+37 0 0 \$0/matju/feedback \$0/matju/feedback_
-/matju/feedback 48 7 0 8 -262144 -1 -1 0 256;
+#X obj 321 13 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 381 14 PARAM ENABLED;
+#X obj 354 32 mtl/param-enabled-help;
+#X text 232 95 <-Click on the propeties menu to display params;
#X obj 31 96 mtl/distoNonmonotone~ /id matju;
-#X connect 12 0 8 0;
-#X connect 12 0 27 0;
-#X connect 13 0 27 1;
-#X connect 14 0 12 0;
-#X connect 15 0 13 0;
-#X connect 27 0 9 0;
-#X connect 27 1 7 0;
-#X connect 27 1 9 1;
+#X obj 331 139 cnv 15 200 20 empty empty /matju/ 2 12 0 8 -258401 -262144
+0;
+#X obj 331 162 nbx 5 14 -1e+37 1e+37 0 0 /matju/freq1 /matju/freq1_
+freq1 50 8 0 8 -262144 -1 -1 5 256;
+#X obj 331 180 nbx 5 14 -1e+37 1e+37 0 0 /matju/amp1 /matju/amp1_ amp1
+50 8 0 8 -262144 -1 -1 10 256;
+#X obj 331 198 nbx 5 14 -1e+37 1e+37 0 0 /matju/base1 /matju/base1_
+base1 50 8 0 8 -262144 -1 -1 10 256;
+#X obj 331 216 nbx 5 14 -1e+37 1e+37 0 0 /matju/freq2 /matju/freq2_
+freq2 50 8 0 8 -262144 -1 -1 4 256;
+#X obj 331 234 nbx 5 14 -1e+37 1e+37 0 0 /matju/amp2 /matju/amp2_ amp2
+50 8 0 8 -262144 -1 -1 13 256;
+#X obj 331 252 nbx 5 14 -1e+37 1e+37 0 0 /matju/base2 /matju/base2_
+base2 50 8 0 8 -262144 -1 -1 14 256;
+#X obj 331 270 nbx 5 14 -1e+37 1e+37 0 0 /matju/freqfeed /matju/freqfeed_
+freqfeed 50 8 0 8 -262144 -1 -1 9 256;
+#X obj 331 288 nbx 5 14 -1e+37 1e+37 0 0 /matju/ampfeed /matju/ampfeed_
+ampfeed 50 8 0 8 -262144 -1 -1 5 256;
+#X obj 331 306 nbx 5 14 -1e+37 1e+37 0 0 /matju/basefeed /matju/basefeed_
+basefeed 50 8 0 8 -262144 -1 -1 13 256;
+#X obj 331 324 hsl 100 15 0 1 0 0 /matju/feedback /matju/feedback_
+feedback 105 7 0 8 -262144 -1 -1 5600 1;
+#X obj 331 342 hsl 100 15 0 1 0 0 /matju/wet /matju/wet_ wet 105 7
+0 8 -262144 -1 -1 3100 1;
+#X obj 32 30 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#N canvas 367 242 582 409 loop_sample 0;
+#X obj 47 313 outlet~;
+#X obj 43 9 inlet;
+#X obj 193 319 outlet~;
+#X msg 47 163 panel;
+#X obj 47 200 mtl/player~ 1;
+#X connect 1 0 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 0 0;
+#X connect 4 0 2 0;
+#X restore 32 66 pd loop_sample;
+#X connect 14 0 7 0;
+#X connect 14 1 7 1;
+#X connect 27 0 28 0;
+#X connect 28 0 14 0;
+#X connect 28 1 14 1;
diff --git a/distoNonmonotone~.pd b/distoNonmonotone~.pd
index a1a106a..5b815ff 100644
--- a/distoNonmonotone~.pd
+++ b/distoNonmonotone~.pd
@@ -3,7 +3,7 @@
#X obj 148 238 outlet~ right;
#X obj 67 86 inlet~ left;
#X obj 146 86 inlet~ right;
-#N canvas 300 102 1068 724 distortionnonmonotone 0;
+#N canvas 300 102 1022 685 distortionnonmonotone 0;
#X obj 54 20 inlet~;
#X obj 513 17 inlet~;
#X obj 42 527 outlet~;
@@ -69,7 +69,7 @@ volume.;
#X obj 723 37 tof/param /freqfeed 0 /g nbx;
#X obj 724 57 tof/param /ampfeed 0 /g nbx;
#X obj 724 79 tof/param /basefeed 0 /g nbx;
-#X obj 724 99 tof/param /feedback 0 /g nbx;
+#X obj 724 99 tof/param /feedback 0 /g slider 0 1;
#X connect 0 0 7 0;
#X connect 1 0 25 0;
#X connect 4 0 5 0;
@@ -145,6 +145,8 @@ volume.;
#X msg 255 213 \$1 5;
#X obj 255 237 line~;
#X obj 438 92 tof/param route;
+#X obj 402 226 iemguts/propertybang;
+#X obj 403 255 tof/param gui;
#X connect 2 0 4 0;
#X connect 2 0 8 0;
#X connect 3 0 4 1;
@@ -158,3 +160,4 @@ volume.;
#X connect 9 0 10 0;
#X connect 10 0 8 4;
#X connect 11 0 7 0;
+#X connect 12 0 13 0;
diff --git a/distoSign~-help.pd b/distoSign~-help.pd
index fb4a311..61986b7 100644
--- a/distoSign~-help.pd
+++ b/distoSign~-help.pd
@@ -1,22 +1,29 @@
-#N canvas 610 186 462 238 10;
+#N canvas 311 214 546 294 10;
#X obj -25 118 *~ 0.5;
#X obj 71 117 *~ 0.5;
#X obj -25 177 mtl/out~;
#X text -29 46 tags: fx~;
#X obj -25 94 osc~ 110;
#X obj 71 93 osc~ 110;
-#X obj 193 106 hsl 100 15 0 1 0 0 \$0/distoSign/wet \$0/distoSign/wet_
-/distoSign/wet 105 7 0 8 -262144 -1 -1 0 1;
-#X obj 193 126 hsl 100 15 0 1 0 0 \$0/distoSign/positive \$0/distoSign/positive_
-/distoSign/positive 105 7 0 8 -262144 -1 -1 0 1;
-#X obj 193 146 hsl 100 15 0 1 0 0 \$0/distoSign/negative \$0/distoSign/negative_
-/distoSign/negative 105 7 0 8 -262144 -1 -1 0 1;
#X text -29 12 Description: A simple distortion. Positive and negative
distortion can be set independently.;
#X obj -26 146 mtl/distoSign~ /id distoSign;
-#X connect 0 0 10 0;
-#X connect 1 0 10 1;
+#X text 153 145 <-Click on the propeties menu to display params;
+#X obj 270 40 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 330 41 PARAM ENABLED;
+#X obj 303 59 mtl/param-enabled-help;
+#X obj 272 174 cnv 15 200 20 empty empty /distoSign/ 2 12 0 8 -258401
+-262144 0;
+#X obj 272 197 hsl 100 15 0 1 0 0 /distoSign/wet /distoSign/wet_ wet
+105 7 0 8 -262144 -1 -1 0 1;
+#X obj 272 215 hsl 100 15 0 1 0 0 /distoSign/positive /distoSign/positive_
+positive 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 272 233 hsl 100 15 0 1 0 0 /distoSign/negative /distoSign/negative_
+negative 105 7 0 8 -262144 -1 -1 0 1;
+#X connect 0 0 7 0;
+#X connect 1 0 7 1;
#X connect 4 0 0 0;
#X connect 5 0 1 0;
-#X connect 10 0 2 0;
-#X connect 10 1 2 1;
+#X connect 7 0 2 0;
+#X connect 7 1 2 1;
diff --git a/distoSign~.pd b/distoSign~.pd
index 5996b69..c3b89fa 100644
--- a/distoSign~.pd
+++ b/distoSign~.pd
@@ -127,6 +127,8 @@
#X msg 218 283 \$1 5;
#X obj 218 307 line~;
#X obj 477 105 tof/param route;
+#X obj 473 228 iemguts/propertybang;
+#X obj 474 257 tof/param gui;
#X connect 2 0 4 0;
#X connect 2 0 10 0;
#X connect 3 0 10 3;
@@ -144,3 +146,4 @@
#X connect 13 0 14 0;
#X connect 14 0 10 4;
#X connect 15 0 9 0;
+#X connect 16 0 17 0;
diff --git a/distoTanh~-help.pd b/distoTanh~-help.pd
index a2fc55d..312e253 100644
--- a/distoTanh~-help.pd
+++ b/distoTanh~-help.pd
@@ -1,19 +1,26 @@
-#N canvas 509 200 434 220 10;
-#X obj -35 88 *~ 0.5;
-#X obj 46 88 *~ 0.5;
-#X text -38 9 Description: A distortion using expr~ tanh;
-#X obj -36 155 mtl/out~;
-#X obj -36 64 osc~ 110;
-#X obj 47 63 osc~ 110;
-#X text -37 27 tags: fx~;
-#X obj 149 94 hsl 100 15 0 1 0 0 \$0/tanh/wet \$0/tanh/wet_ /tanh/wet
+#N canvas 13 57 567 226 10;
+#X obj -15 98 *~ 0.5;
+#X obj 66 98 *~ 0.5;
+#X text -18 19 Description: A distortion using expr~ tanh;
+#X obj -16 165 mtl/out~;
+#X obj -16 74 osc~ 110;
+#X obj 67 73 osc~ 110;
+#X text -17 37 tags: fx~;
+#X obj -15 123 mtl/distoTanh~ /id tanh;
+#X text 132 123 <-Click on the propeties menu to display params;
+#X obj 301 20 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 361 21 PARAM ENABLED;
+#X obj 334 39 mtl/param-enabled-help;
+#X obj 299 66 cnv 15 200 20 empty empty /tanh/ 2 12 0 8 -258401 -262144
+0;
+#X obj 299 89 hsl 100 15 0 1 0 0 /tanh/wet /tanh/wet_ wet 105 7 0 8
+-262144 -1 -1 0 1;
+#X obj 299 107 hsl 100 15 1 100 0 0 /tanh/amount /tanh/amount_ amount
105 7 0 8 -262144 -1 -1 0 1;
-#X obj 149 114 hsl 100 15 1 100 0 0 \$0/tanh/amount \$0/tanh/amount_
-/tanh/amount 105 7 0 8 -262144 -1 -1 0 1;
-#X obj -35 113 mtl/distoTanh~ /id tanh;
-#X connect 0 0 9 0;
-#X connect 1 0 9 1;
+#X connect 0 0 7 0;
+#X connect 1 0 7 1;
#X connect 4 0 0 0;
#X connect 5 0 1 0;
-#X connect 9 0 3 0;
-#X connect 9 1 3 1;
+#X connect 7 0 3 0;
+#X connect 7 1 3 1;
diff --git a/distoTanh~.pd b/distoTanh~.pd
index 557d187..2cb63e5 100644
--- a/distoTanh~.pd
+++ b/distoTanh~.pd
@@ -1,4 +1,4 @@
-#N canvas 105 155 539 284 10;
+#N canvas 12 372 539 284 10;
#X obj 33 21 inlet~;
#X obj 31 231 outlet~;
#X obj 82 209 outlet~;
@@ -26,6 +26,8 @@
#X msg 235 220 \$1 5;
#X obj 235 244 line~;
#X obj 393 103 tof/param route;
+#X obj 364 203 iemguts/propertybang;
+#X obj 365 232 tof/param gui;
#X connect 0 0 4 0;
#X connect 0 0 8 0;
#X connect 3 0 4 1;
@@ -40,3 +42,4 @@
#X connect 10 0 11 0;
#X connect 11 0 8 4;
#X connect 12 0 7 0;
+#X connect 13 0 14 0;
diff --git a/echoBp~-help.pd b/echoBp~-help.pd
index d436297..0b6e2d3 100644
--- a/echoBp~-help.pd
+++ b/echoBp~-help.pd
@@ -1,37 +1,16 @@
-#N canvas 172 143 499 499 10;
-#X obj 323 93 hsl 128 15 0 2000 0 0 empty delay.l empty -2 -8 0 10
--262144 -1 -1 1900 1;
-#X obj 323 141 hsl 128 15 0 2000 0 0 empty delay.r empty -2 -8 0 10
--262144 -1 -1 4800 1;
-#X obj 323 235 hsl 128 15 0 127 0 0 empty frequency empty -2 -8 0 10
--262144 -1 -1 3800 1;
-#X obj 324 189 hsl 128 15 0 127 0 0 empty feedback empty -2 -8 0 10
--262144 -1 -1 11900 1;
-#X obj 323 280 hsl 128 15 0 127 0 0 empty q empty -2 -8 0 10 -262144
--1 -1 2700 1;
-#X obj 320 323 tgl 17 0 empty routing empty 17 7 0 10 -262144 -1 -1
-0 1;
+#N canvas 461 89 470 441 10;
#X text 1 58 Author: Roman Haefeli;
#X text 2 72 Version: 2007-11-04;
#X obj 1 -21 cnv 15 690 30 empty empty echoBp~ 2 12 1 14 -233017 -66577
0;
-#X obj 15 402 cnv 15 400 40 empty empty empty 20 12 0 14 -258699 -66577
+#X obj 5 352 cnv 15 400 40 empty empty empty 20 12 0 14 -258699 -66577
0;
-#X text 17 403 warning:;
-#X text 17 421 high q and high feedback can show unstable behaviour.
+#X text 7 353 warning:;
+#X text 7 371 high q and high feedback can show unstable behaviour.
;
-#X obj 324 49 hsl 128 15 0 1 0 0 empty frequency empty -2 -8 0 10 -262144
--1 -1 12700 1;
-#X obj 20 258 mtl/out~;
-#X msg 320 114 /delayl \$1;
-#X msg 320 162 /delayr \$1;
-#X msg 321 209 /feedback \$1;
-#X msg 320 255 /frequency \$1;
-#X msg 320 300 /q \$1;
-#X msg 320 345 /routing \$1;
-#X msg 321 69 /wet \$1;
-#X obj 20 223 mtl/echoBp~ /id fbdel;
-#X obj 20 171 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+#X obj 10 188 mtl/out~;
+#X obj 10 153 mtl/echoBp~ /id fbdel;
+#X obj 10 101 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#N canvas 5 185 450 300 generate~ 0;
#X obj 32 213 osc~ 200;
@@ -65,30 +44,33 @@
#X connect 12 0 7 0;
#X connect 13 0 11 0;
#X connect 14 0 2 0;
-#X restore 20 196 pd generate~;
-#X text 2 41 tag: fx~;
+#X restore 10 126 pd generate~;
#X text 1 12 Description: stereo delay with a bandpass filter in the
feedback loop.;
-#X obj 407 345 tof/paramGui;
-#X obj 407 325 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X connect 0 0 14 0;
-#X connect 1 0 15 0;
-#X connect 2 0 17 0;
-#X connect 3 0 16 0;
-#X connect 4 0 18 0;
-#X connect 5 0 19 0;
-#X connect 12 0 20 0;
-#X connect 14 0 21 2;
-#X connect 15 0 21 2;
-#X connect 16 0 21 2;
-#X connect 17 0 21 2;
-#X connect 18 0 21 2;
-#X connect 19 0 21 2;
-#X connect 20 0 21 2;
-#X connect 21 0 13 0;
-#X connect 21 1 13 1;
-#X connect 22 0 23 0;
-#X connect 23 0 21 0;
-#X connect 23 1 21 1;
-#X connect 27 0 26 0;
+#X obj 238 54 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 298 55 PARAM ENABLED;
+#X obj 271 73 mtl/param-enabled-help;
+#X obj 235 181 cnv 15 200 20 empty empty /fbdel/ 2 12 0 8 -258401 -262144
+0;
+#X obj 235 204 hsl 100 15 1 10000 0 0 /fbdel/delayl /fbdel/delayl_
+delayl 105 7 0 8 -262144 -1 -1 98 1;
+#X obj 235 222 hsl 100 15 1 10000 0 0 /fbdel/delayr /fbdel/delayr_
+delayr 105 7 0 8 -262144 -1 -1 98 1;
+#X obj 235 240 hsl 100 15 0 127 0 0 /fbdel/feedback /fbdel/feedback_
+feedback 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 235 258 tgl 15 0 /fbdel/routing /fbdel/routing_ routing 17 7
+0 8 -262144 -166441 -1 0 1;
+#X obj 235 276 hsl 100 15 0 127 0 0 /fbdel/frequency /fbdel/frequency_
+frequency 105 7 0 8 -262144 -1 -1 7795 1;
+#X obj 235 294 hsl 100 15 0 127 0 0 /fbdel/q /fbdel/q_ q 105 7 0 8
+-262144 -1 -1 0 1;
+#X obj 235 312 hsl 100 15 0 1 0 0 /fbdel/wet /fbdel/wet_ wet 105 7
+0 8 -262144 -1 -1 0 1;
+#X text 149 151 <-Click on the propeties menu to display params;
+#X text 2 41 tags: fx~;
+#X connect 7 0 6 0;
+#X connect 7 1 6 1;
+#X connect 8 0 9 0;
+#X connect 9 0 7 0;
+#X connect 9 1 7 1;
diff --git a/echoBp~.pd b/echoBp~.pd
index 1eab977..59da69e 100644
--- a/echoBp~.pd
+++ b/echoBp~.pd
@@ -1,4 +1,4 @@
-#N canvas 294 281 682 266 10;
+#N canvas 296 345 682 266 10;
#X text 333 81 feedback 0-127;
#X text 334 97 frequency 0-127;
#X text 334 110 q 0-127;
@@ -119,11 +119,13 @@
#X obj 71 105 outlet~;
#X obj 21 63 tof/crossfade~ 2;
#X obj 499 -8 inlet params;
-#X obj 499 14 tof/paramRoute;
#X obj 499 38 print PARAM_NOTFOUND;
#X obj 159 -6 tof/param /wet 0 /g slider 0 1;
#X obj 159 37 line~;
#X msg 159 16 \$1 5;
+#X obj 499 14 tof/param route;
+#X obj 492 69 iemguts/propertybang;
+#X obj 493 98 tof/param gui;
#X connect 10 0 15 2;
#X connect 10 1 15 3;
#X connect 11 0 10 0;
@@ -132,8 +134,9 @@
#X connect 12 0 15 1;
#X connect 15 0 13 0;
#X connect 15 1 14 0;
-#X connect 16 0 17 0;
-#X connect 17 0 18 0;
-#X connect 19 0 21 0;
-#X connect 20 0 15 4;
-#X connect 21 0 20 0;
+#X connect 16 0 21 0;
+#X connect 18 0 20 0;
+#X connect 19 0 15 4;
+#X connect 20 0 19 0;
+#X connect 21 0 17 0;
+#X connect 22 0 23 0;
diff --git a/echoRobot~-help.pd b/echoRobot~-help.pd
index 93e761a..dde0341 100644
--- a/echoRobot~-help.pd
+++ b/echoRobot~-help.pd
@@ -1,7 +1,7 @@
-#N canvas 618 57 435 205 10;
+#N canvas 123 346 514 204 10;
#X obj 16 133 mtl/out~;
#X text 15 24 tags: fx~;
-#X obj 15 56 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
+#X obj 15 56 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#N canvas 5 185 450 300 generate~ 0;
#X obj 32 213 osc~ 200;
@@ -36,14 +36,21 @@
#X connect 13 0 11 0;
#X connect 14 0 2 0;
#X restore 15 81 pd generate~;
-#X obj 210 86 hsl 100 15 0 1 0 0 \$0/echorobot/wet \$0/echorobot/wet_
-/echorobot/wet 105 7 0 8 -262144 -1 -1 0 1;
-#X obj 210 106 hsl 100 15 1 100 0 0 \$0/echorobot/amount \$0/echorobot/amount_
-/echorobot/amount 105 7 0 8 -262144 -1 -1 1900 1;
#X text 14 8 Description: Basic echo.;
#X obj 16 106 mtl/echoRobot~ /id echorobot;
+#X obj 221 16 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 281 17 PARAM ENABLED;
+#X obj 254 35 mtl/param-enabled-help;
+#X text 195 104 <-Click on the propeties menu to display params;
+#X obj 220 133 cnv 15 200 20 empty empty /echorobot/ 2 12 0 8 -258401
+-262144 0;
+#X obj 220 156 hsl 100 15 0 1 0 0 /echorobot/wet /echorobot/wet_ wet
+105 7 0 8 -262144 -1 -1 0 1;
+#X obj 220 174 hsl 100 15 1 100 0 0 /echorobot/amount /echorobot/amount_
+amount 105 7 0 8 -262144 -1 -1 0 1;
#X connect 2 0 3 0;
-#X connect 3 0 7 0;
-#X connect 3 1 7 1;
-#X connect 7 0 0 0;
-#X connect 7 1 0 1;
+#X connect 3 0 5 0;
+#X connect 3 1 5 1;
+#X connect 5 0 0 0;
+#X connect 5 1 0 1;
diff --git a/echoRobot~.pd b/echoRobot~.pd
index 150f6ff..d0fa433 100644
--- a/echoRobot~.pd
+++ b/echoRobot~.pd
@@ -1,4 +1,4 @@
-#N canvas 344 463 628 279 10;
+#N canvas 345 495 628 279 10;
#N canvas 457 452 466 316 robotfeedback 0;
#X obj 260 117 *~ 0.9;
#X obj 33 118 *~ 0.9;
@@ -38,6 +38,8 @@
#X msg 263 208 \$1 5;
#X obj 147 29 tof/param /amount 20 /g slider 1 100;
#X obj 484 33 tof/param route;
+#X obj 481 87 iemguts/propertybang;
+#X obj 482 116 tof/param gui;
#X connect 0 0 5 2;
#X connect 0 1 5 3;
#X connect 1 0 0 0;
@@ -52,3 +54,4 @@
#X connect 10 0 9 0;
#X connect 11 0 0 2;
#X connect 12 0 7 0;
+#X connect 13 0 14 0;
diff --git a/echoVd~-help.pd b/echoVd~-help.pd
index 00d70cc..adaf1ea 100644
--- a/echoVd~-help.pd
+++ b/echoVd~-help.pd
@@ -1,4 +1,4 @@
-#N canvas 499 262 425 194 10;
+#N canvas 325 438 528 237 10;
#X obj 24 101 mtl/echoVd~ /id echovd;
#X obj 25 126 mtl/out~;
#X text 22 4 Description: Echo.;
@@ -38,12 +38,19 @@
#X connect 13 0 11 0;
#X connect 14 0 2 0;
#X restore 24 77 pd generate~;
-#X obj 185 62 hsl 100 15 0 1 0 0 \$0/echovd/wet \$0/echovd/wet_ /echovd/wet
+#X text 166 99 <-Click on the propeties menu to display params;
+#X obj 280 16 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 340 17 PARAM ENABLED;
+#X obj 313 35 mtl/param-enabled-help;
+#X obj 284 142 cnv 15 200 20 empty empty /echovd/ 2 12 0 8 -258401
+-262144 0;
+#X obj 284 165 hsl 100 15 0 1 0 0 /echovd/wet /echovd/wet_ wet 105
+7 0 8 -262144 -1 -1 0 1;
+#X obj 284 183 hsl 100 15 0 5000 0 0 /echovd/delay /echovd/delay_ delay
105 7 0 8 -262144 -1 -1 0 1;
-#X obj 185 82 hsl 100 15 0 5000 0 0 \$0/echovd/delay \$0/echovd/delay_
-/echovd/delay 105 7 0 8 -262144 -1 -1 0 1;
-#X obj 185 102 hsl 100 15 0 1 0 0 \$0/echovd/strength \$0/echovd/strength_
-/echovd/strength 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 284 201 hsl 100 15 0 1 0 0 /echovd/strength /echovd/strength_
+strength 105 7 0 8 -262144 -1 -1 0 1;
#X connect 0 0 1 0;
#X connect 0 1 1 1;
#X connect 4 0 5 0;
diff --git a/echoVd~.pd b/echoVd~.pd
index 4a1f7be..75a6a39 100644
--- a/echoVd~.pd
+++ b/echoVd~.pd
@@ -1,4 +1,4 @@
-#N canvas 396 180 626 518 12;
+#N canvas 397 212 626 518 12;
#X obj 31 42 inlet~;
#X obj 81 42 inlet~;
#X obj 31 344 outlet~;
@@ -62,6 +62,8 @@
#X obj 184 122 tof/param /delay 100 /g slider 0 5000;
#X obj 194 152 tof/param /strength 0.5 /g slider 0 1;
#X obj 523 83 tof/param route;
+#X obj 479 206 iemguts/propertybang;
+#X obj 480 235 tof/param gui;
#X connect 0 0 9 0;
#X connect 0 0 15 0;
#X connect 1 0 8 0;
@@ -83,3 +85,4 @@
#X connect 17 0 8 2;
#X connect 17 0 9 2;
#X connect 18 0 11 0;
+#X connect 19 0 20 0;
diff --git a/eq~-help.pd b/eq~-help.pd
index 9be71ae..743cf49 100644
--- a/eq~-help.pd
+++ b/eq~-help.pd
@@ -1,23 +1,30 @@
-#N canvas 489 464 408 202 10;
+#N canvas 463 266 526 326 10;
#X text 20 1 Description: equalizer using hml_shelf;
#X obj 23 63 noise~;
#X obj 22 131 mtl/out~;
#X obj 23 98 mtl/eq~ /id eq;
#X text 20 18 tags: mix~;
-#X obj 191 38 tgl 15 0 \$0/eq/switch \$0/eq/switch_ /eq/switch 17 7
-0 8 -262144 -1 -1 1 1;
-#X obj 195 158 hsl 100 15 0 5000 0 0 \$0/eq/release \$0/eq/release_
-/eq/release 105 7 0 8 -262144 -1 -1 5600 1;
-#X obj 195 58 hsl 100 15 -40 40 0 0 \$0/eq/low \$0/eq/low_ /eq/low
-105 7 0 8 -262144 -1 -1 6000 1;
-#X obj 195 78 hsl 100 15 -40 40 0 0 \$0/eq/mid \$0/eq/mid_ /eq/mid
-105 7 0 8 -262144 -1 -1 4787 1;
-#X obj 195 98 hsl 100 15 -40 40 0 0 \$0/eq/high \$0/eq/high_ /eq/high
-105 7 0 8 -262144 -1 -1 3000 1;
-#X obj 195 118 hsl 100 15 880 14080 0 0 \$0/eq/hfreq \$0/eq/hfreq_
-/eq/hfreq 105 7 0 8 -262144 -1 -1 7266 1;
-#X obj 195 138 hsl 100 15 22.5 440 0 0 \$0/eq/lfreq \$0/eq/lfreq_ /eq/lfreq
-105 7 0 8 -262144 -1 -1 5571 1;
+#X text 127 99 <-Click on the propeties menu to display params;
+#X obj 284 5 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 344 6 PARAM ENABLED;
+#X obj 317 24 mtl/param-enabled-help;
+#X obj 289 143 cnv 15 200 20 empty empty /eq/ 2 12 0 8 -258401 -262144
+0;
+#X obj 289 166 tgl 15 0 /eq/switch /eq/switch_ switch 17 7 0 8 -262144
+-166441 -1 0 1;
+#X obj 289 184 hsl 100 15 880 14080 0 0 /eq/hfreq /eq/hfreq_ hfreq
+105 7 0 8 -262144 -1 -1 0 1;
+#X obj 289 202 hsl 100 15 22.5 440 0 0 /eq/lfreq /eq/lfreq_ lfreq 105
+7 0 8 -262144 -1 -1 0 1;
+#X obj 289 220 hsl 100 15 -40 40 0 0 /eq/low /eq/low_ low 105 7 0 8
+-262144 -1 -1 0 1;
+#X obj 289 238 hsl 100 15 -40 40 0 0 /eq/mid /eq/mid_ mid 105 7 0 8
+-262144 -1 -1 0 1;
+#X obj 289 256 hsl 100 15 -40 40 0 0 /eq/high /eq/high_ high 105 7
+0 8 -262144 -1 -1 0 1;
+#X obj 289 274 hsl 100 15 0 5000 0 0 /eq/release /eq/release_ release
+105 7 0 8 -262144 -1 -1 0 1;
#X connect 1 0 3 0;
#X connect 1 0 3 1;
#X connect 3 0 2 0;
diff --git a/eq~.pd b/eq~.pd
index d149b84..c59ee48 100644
--- a/eq~.pd
+++ b/eq~.pd
@@ -1,4 +1,4 @@
-#N canvas 387 257 757 453 10;
+#N canvas 388 289 757 453 10;
#X obj 29 109 inlet~;
#X obj 27 246 outlet~;
#X obj 212 102 inlet~;
@@ -138,7 +138,6 @@
#X text 342 -90 TODO: reset?;
#X obj 29 189 tof/crossfade~ 2;
#X obj 602 -65 inlet params;
-#X obj 602 -43 tof/paramRoute;
#X obj 602 -19 print PARAM_NOTFOUND;
#X obj 175 216 tof/param /switch 0 /g tgl;
#X obj 175 237 != 0;
@@ -150,6 +149,9 @@
#X obj 115 -57 tof/param /mid 0 /g slider -40 40;
#X obj 127 -37 tof/param /high 0 /g slider -40 40;
#X obj 201 20 tof/param /release 100 /g slider 0 5000;
+#X obj 602 -43 tof/param route;
+#X obj 601 21 iemguts/propertybang;
+#X obj 602 50 tof/param gui;
#X connect 0 0 5 0;
#X connect 0 0 7 0;
#X connect 2 0 4 0;
@@ -158,22 +160,23 @@
#X connect 5 0 7 2;
#X connect 7 0 1 0;
#X connect 7 1 3 0;
-#X connect 8 0 9 0;
-#X connect 9 0 10 0;
+#X connect 8 0 20 0;
+#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
-#X connect 13 0 14 0;
-#X connect 14 0 7 4;
-#X connect 15 0 5 5;
-#X connect 15 0 4 5;
-#X connect 16 0 5 4;
-#X connect 16 0 4 4;
-#X connect 17 0 5 1;
-#X connect 17 0 4 1;
-#X connect 18 0 5 2;
-#X connect 18 0 4 2;
-#X connect 19 0 5 3;
-#X connect 19 0 4 3;
-#X connect 20 0 4 6;
-#X connect 20 0 5 6;
+#X connect 13 0 7 4;
+#X connect 14 0 5 5;
+#X connect 14 0 4 5;
+#X connect 15 0 5 4;
+#X connect 15 0 4 4;
+#X connect 16 0 5 1;
+#X connect 16 0 4 1;
+#X connect 17 0 5 2;
+#X connect 17 0 4 2;
+#X connect 18 0 5 3;
+#X connect 18 0 4 3;
+#X connect 19 0 4 6;
+#X connect 19 0 5 6;
+#X connect 20 0 9 0;
+#X connect 21 0 22 0;
#X coords 0 0 1 1 213 69 0;
diff --git a/filterPeakSig~-help.pd b/filterPeakSig~-help.pd
index 7eb3168..15fe0cb 100644
--- a/filterPeakSig~-help.pd
+++ b/filterPeakSig~-help.pd
@@ -1,4 +1,4 @@
-#N canvas 553 188 617 442 10;
+#N canvas 554 220 617 442 10;
#X text 423 2 Version: 2007-09-15;
#X text 423 17 Author: Roman Haefeli;
#X text 26 3 Description: Peakfilter with signal frequency and Q control
@@ -6,10 +6,10 @@
#X obj 350 50 cnv 15 200 100 empty empty empty 20 12 0 14 -24198 -66577
0;
#X text 355 55 SYNOPSIS;
-#X text 27 395 Comment: modulate q with a pad-synth as input to get
+#X text 29 406 Comment: modulate q with a pad-synth as input to get
nice sounds;
#X obj 30 247 mtl/out~;
-#X obj 31 44 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
+#X obj 31 44 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#N canvas 5 185 450 300 generate~ 0;
#X obj 32 213 osc~ 200;
@@ -45,17 +45,24 @@ nice sounds;
#X connect 14 0 2 0;
#X restore 31 69 pd generate~;
#X obj 199 248 mtl/spectrum~;
-#X obj 199 98 mtl/spectrum~;
+#X obj 199 64 mtl/spectrum~;
#X text 354 79 inlet0-1: signal (input);
#X text 354 96 inlet2: param;
#X text 354 113 outlet0-1: signal (output);
#X obj 30 210 mtl/filterPeakSig~ /id fps;
-#X obj 353 160 hsl 100 15 0 1 0 0 \$0/fps/wet \$0/fps/wet_ /fps/wet
-105 7 0 8 -262144 -1 -1 9900 1;
-#X obj 353 180 hsl 100 15 1 1000 0 0 \$0/fps/frequency \$0/fps/frequency_
-/fps/frequency 105 7 0 8 -262144 -1 -1 1900 1;
-#X obj 353 200 hsl 100 15 0 100 0 0 \$0/fps/q \$0/fps/q_ /fps/q 105
-7 0 8 -262144 -1 -1 6400 1;
+#X obj 350 251 cnv 15 200 20 empty empty /fps/ 2 12 0 8 -258401 -262144
+0;
+#X obj 350 274 hsl 100 15 0 1 0 0 /fps/wet /fps/wet_ wet 105 7 0 8
+-262144 -1 -1 0 1;
+#X obj 350 292 hsl 100 15 1 1000 0 0 /fps/frequency /fps/frequency_
+frequency 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 350 310 hsl 100 15 0 100 0 0 /fps/q /fps/q_ q 105 7 0 8 -262144
+-1 -1 0 1;
+#X text 201 207 <-Click on the propeties menu to display params;
+#X obj 349 161 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 409 162 PARAM ENABLED;
+#X obj 382 180 mtl/param-enabled-help;
#X connect 7 0 8 0;
#X connect 8 0 14 0;
#X connect 8 1 10 0;
diff --git a/filterPeakSig~.pd b/filterPeakSig~.pd
index 387c9d6..3cfa683 100644
--- a/filterPeakSig~.pd
+++ b/filterPeakSig~.pd
@@ -1,4 +1,4 @@
-#N canvas 814 361 667 473 10;
+#N canvas 772 367 667 473 10;
#X text 14 413 Version: 2007-09-15;
#X text 15 430 Author: Roman Haefeli;
#X text 15 394 taken and modified from 3.audio.examples/H12.peaking.pd
@@ -97,7 +97,6 @@
#X obj 55 12 inlet~;
#X obj 105 12 inlet~;
#X obj 405 72 inlet params;
-#X obj 405 94 tof/paramRoute;
#X obj 405 118 print PARAM_NOTFOUND;
#X obj 207 128 tof/param /wet 0 /g slider 0 1;
#X obj 207 171 line~;
@@ -192,20 +191,24 @@
#X connect 27 0 12 1;
#X connect 27 0 13 1;
#X restore 203 93 pd filterl;
+#X obj 386 200 iemguts/propertybang;
+#X obj 387 229 tof/param gui;
+#X obj 405 94 tof/param route;
#X connect 3 0 4 2;
#X connect 4 0 5 0;
#X connect 4 1 6 0;
#X connect 7 0 4 0;
#X connect 7 0 3 0;
#X connect 8 0 4 1;
-#X connect 8 0 17 0;
-#X connect 9 0 10 0;
-#X connect 10 0 11 0;
-#X connect 12 0 14 0;
-#X connect 13 0 4 4;
-#X connect 14 0 13 0;
-#X connect 15 0 3 1;
-#X connect 15 0 17 1;
-#X connect 16 0 3 2;
-#X connect 16 0 17 2;
-#X connect 17 0 4 3;
+#X connect 8 0 16 0;
+#X connect 9 0 19 0;
+#X connect 11 0 13 0;
+#X connect 12 0 4 4;
+#X connect 13 0 12 0;
+#X connect 14 0 3 1;
+#X connect 14 0 16 1;
+#X connect 15 0 3 2;
+#X connect 15 0 16 2;
+#X connect 16 0 4 3;
+#X connect 17 0 18 0;
+#X connect 19 0 10 0;
diff --git a/gateNoise~-help.pd b/gateNoise~-help.pd
index faff14c..872153d 100644
--- a/gateNoise~-help.pd
+++ b/gateNoise~-help.pd
@@ -1,6 +1,6 @@
-#N canvas 463 121 588 450 10;
+#N canvas 464 153 588 450 10;
#X obj 128 196 nbx 5 14 -1e+37 1e+37 0 0 empty empty right 0 -8 0 10
--262144 -1 -1 96.9235 256;
+-262144 -1 -1 96.9169 256;
#X obj 16 135 *~;
#X obj 33 114 osc~ 2;
#X obj 104 135 *~;
@@ -27,7 +27,7 @@
#X connect 4 0 2 0;
#X restore 28 163 pd env;
#X obj 40 197 nbx 5 14 -1e+37 1e+37 0 0 empty empty left 0 -8 0 10
--262144 -1 -1 96.6015 256;
+-262144 -1 -1 96.9864 256;
#X obj 43 256 bonk~;
#X obj 143 255 bonk~;
#X text 189 255 only an idea;
@@ -42,25 +42,32 @@
useful for removing noise from an incoming signal or making breakbeat.
;
#X text 13 53 tags: mix~;
-#X obj 299 88 hsl 100 15 0 1 0 0 \$0/gatenoise/wet \$0/gatenoise/wet_
-/gatenoise/wet 105 7 0 8 -262144 -1 -1 9900 1;
-#X obj 299 118 hsl 100 15 0 100 0 0 \$0/gatenoise/thresholdleft \$0/gatenoise/thresholdleft_
-/gatenoise/thresholdleft 105 7 0 8 -262144 -1 -1 0 1;
-#X obj 299 138 hsl 100 15 0 100 0 0 \$0/gatenoise/thresholdright \$0/gatenoise/thresholdright_
-/gatenoise/thresholdright 105 7 0 8 -262144 -1 -1 0 1;
-#X obj 299 158 hsl 100 15 0 500 0 0 \$0/gatenoise/attackleft \$0/gatenoise/attackleft_
-/gatenoise/attackleft 105 7 0 8 -262144 -1 -1 20 1;
-#X obj 299 178 hsl 100 15 0 500 0 0 \$0/gatenoise/attackright \$0/gatenoise/attackright_
-/gatenoise/attackright 105 7 0 8 -262144 -1 -1 20 1;
-#X obj 299 198 hsl 100 15 0 5000 0 0 \$0/gatenoise/releaseleft \$0/gatenoise/releaseleft_
-/gatenoise/releaseleft 105 7 0 8 -262144 -1 -1 396 1;
-#X obj 299 218 hsl 100 15 0 5000 0 0 \$0/gatenoise/releaseright \$0/gatenoise/releaseright_
-/gatenoise/releaseright 105 7 0 8 -262144 -1 -1 396 1;
-#X obj 289 298 tgl 15 0 \$0/gatenoise/automatic \$0/gatenoise/automatic_
-/gatenoise/automatic 17 7 0 8 -262144 -1 -1 1 1;
-#X obj 299 268 hsl 100 15 0 100 0 0 \$0/gatenoise/automatic+- \$0/gatenoise/automatic+-_
-/gatenoise/automatic+- 105 7 0 8 -262144 -1 -1 9900 1;
#X obj 69 320 mtl/out~ 30;
+#X obj 301 252 cnv 15 200 20 empty empty /gatenoise/ 2 12 0 8 -258401
+-262144 0;
+#X obj 301 275 hsl 100 15 0 1 0 0 /gatenoise/wet /gatenoise/wet_ wet
+105 7 0 8 -262144 -1 -1 0 1;
+#X obj 301 293 hsl 100 15 0 100 0 0 /gatenoise/thresholdleft /gatenoise/thresholdleft_
+thresholdleft 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 301 311 hsl 100 15 0 100 0 0 /gatenoise/thresholdright /gatenoise/thresholdright_
+thresholdright 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 301 329 hsl 100 15 0 500 0 0 /gatenoise/attackleft /gatenoise/attackleft_
+attackleft 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 301 347 hsl 100 15 0 500 0 0 /gatenoise/attackright /gatenoise/attackright_
+attackright 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 301 365 hsl 100 15 0 5000 0 0 /gatenoise/releaseleft /gatenoise/releaseleft_
+releaseleft 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 301 383 hsl 100 15 0 5000 0 0 /gatenoise/releaseright /gatenoise/releaseright_
+releaseright 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 301 401 tgl 15 0 /gatenoise/automatic /gatenoise/automatic_
+automatic 17 7 0 8 -262144 -166441 -1 0 1;
+#X obj 301 419 hsl 100 15 0 100 0 0 /gatenoise/automatic+- /gatenoise/automatic+-_
+automatic+- 105 7 0 8 -262144 -1 -1 0 1;
+#X text 194 221 <-Click on the propeties menu to display params;
+#X obj 298 168 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 358 169 PARAM ENABLED;
+#X obj 331 187 mtl/param-enabled-help;
#X connect 1 0 7 0;
#X connect 1 0 15 0;
#X connect 2 0 1 1;
@@ -79,5 +86,5 @@ useful for removing noise from an incoming signal or making breakbeat.
#X connect 15 0 18 0;
#X connect 15 1 10 0;
#X connect 15 1 18 1;
-#X connect 16 0 30 1;
-#X connect 17 0 30 0;
+#X connect 16 0 21 1;
+#X connect 17 0 21 0;
diff --git a/gateNoise~.pd b/gateNoise~.pd
index 8eee243..3756efb 100644
--- a/gateNoise~.pd
+++ b/gateNoise~.pd
@@ -1,4 +1,4 @@
-#N canvas 385 148 1054 304 10;
+#N canvas 385 180 1054 304 10;
#N canvas 437 219 602 401 noisegate~ 0;
#X obj 114 112 env~;
#X obj 78 282 *~;
@@ -122,7 +122,6 @@
#X obj 24 234 outlet~ left;
#X obj 115 233 outlet~ right;
#X obj 857 0 inlet params;
-#X obj 857 22 tof/paramRoute;
#X obj 857 46 print PARAM_NOTFOUND;
#X obj 232 213 tof/param /wet 0 /g slider 0 1;
#X obj 232 256 line~;
@@ -136,26 +135,30 @@
#X obj 579 24 tof/param /releaseright 200 /g slider 0 5000;
#X obj 307 88 tof/param /automatic 0 /g tgl;
#X obj 307 107 tof/param /automatic+- 50 /g slider 0 100;
-#X connect 0 0 12 2;
-#X connect 1 0 12 3;
+#X obj 856 108 iemguts/propertybang;
+#X obj 857 137 tof/param gui;
+#X obj 857 22 tof/param route;
+#X connect 0 0 11 2;
+#X connect 1 0 11 3;
#X connect 2 0 0 0;
-#X connect 2 0 12 0;
+#X connect 2 0 11 0;
#X connect 3 0 1 0;
-#X connect 3 0 12 1;
-#X connect 6 0 7 0;
-#X connect 7 0 8 0;
-#X connect 9 0 11 0;
-#X connect 10 0 12 4;
-#X connect 11 0 10 0;
-#X connect 12 0 4 0;
-#X connect 12 1 5 0;
-#X connect 13 0 0 1;
-#X connect 14 0 1 1;
-#X connect 15 0 0 2;
-#X connect 16 0 1 2;
-#X connect 17 0 0 3;
-#X connect 18 0 1 3;
-#X connect 19 0 1 4;
-#X connect 19 0 0 4;
-#X connect 20 0 1 5;
-#X connect 20 0 0 5;
+#X connect 3 0 11 1;
+#X connect 6 0 22 0;
+#X connect 8 0 10 0;
+#X connect 9 0 11 4;
+#X connect 10 0 9 0;
+#X connect 11 0 4 0;
+#X connect 11 1 5 0;
+#X connect 12 0 0 1;
+#X connect 13 0 1 1;
+#X connect 14 0 0 2;
+#X connect 15 0 1 2;
+#X connect 16 0 0 3;
+#X connect 17 0 1 3;
+#X connect 18 0 1 4;
+#X connect 18 0 0 4;
+#X connect 19 0 1 5;
+#X connect 19 0 0 5;
+#X connect 20 0 21 0;
+#X connect 22 0 7 0;
diff --git a/granularLive~-help.pd b/granularLive~-help.pd
index 2deda57..53f9a80 100644
--- a/granularLive~-help.pd
+++ b/granularLive~-help.pd
@@ -1,4 +1,4 @@
-#N canvas 368 121 560 246 10;
+#N canvas 302 583 560 246 10;
#X text 17 11 Description: Live granular;
#X text 18 27 Author: Unknown;
#X obj 20 123 mtl/granularLive~ /id granule;
@@ -39,22 +39,28 @@
#X connect 13 0 11 0;
#X connect 14 0 2 0;
#X restore 20 96 pd generate~;
-#X obj 220 64 hsl 100 15 0 1 0 0 \$0/granule/wet \$0/granule/wet_ /granule/wet
-105 7 0 8 -262144 -1 -1 4400 1;
-#X obj 220 84 hsl 100 15 0 1 0 0 \$0/granule/feedbackleft \$0/granule/feedbackleft_
-/granule/feedbackleft 105 7 0 8 -262144 -1 -1 4300 1;
-#X obj 220 104 hsl 100 15 0 1 0 0 \$0/granule/feedbackright \$0/granule/feedbackright_
-/granule/feedbackright 105 7 0 8 -262144 -1 -1 3600 1;
-#X obj 220 124 nbx 5 14 -1e+37 1e+37 0 0 \$0/granule/transpositionleft
-\$0/granule/transpositionleft_ /granule/transpositionleft 48 7 0 8
--262144 -1 -1 12 256;
-#X obj 220 144 nbx 5 14 -1e+37 1e+37 0 0 \$0/granule/transpositionright
-\$0/granule/transpositionright_ /granule/transpositionright 48 7 0
-8 -262144 -1 -1 24 256;
-#X obj 220 164 nbx 5 14 -1e+37 1e+37 0 0 \$0/granule/windowleft \$0/granule/windowleft_
-/granule/windowleft 48 7 0 8 -262144 -1 -1 100 256;
-#X obj 220 184 nbx 5 14 -1e+37 1e+37 0 0 \$0/granule/windowright \$0/granule/windowright_
-/granule/windowright 48 7 0 8 -262144 -1 -1 100 256;
+#X obj 280 61 cnv 15 200 20 empty empty /granule/ 2 12 0 8 -258401
+-262144 0;
+#X obj 280 84 hsl 100 15 0 1 0 0 /granule/wet /granule/wet_ wet 105
+7 0 8 -262144 -1 -1 0 1;
+#X obj 280 102 hsl 100 15 0 1 0 0 /granule/feedbackleft /granule/feedbackleft_
+feedbackleft 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 280 120 hsl 100 15 0 1 0 0 /granule/feedbackright /granule/feedbackright_
+feedbackright 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 280 138 nbx 5 14 -1e+37 1e+37 0 0 /granule/transpositionleft
+/granule/transpositionleft_ transpositionleft 50 8 0 8 -262144 -1 -1
+0 256;
+#X obj 280 156 nbx 5 14 -1e+37 1e+37 0 0 /granule/transpositionright
+/granule/transpositionright_ transpositionright 50 8 0 8 -262144 -1
+-1 0 256;
+#X obj 280 174 nbx 5 14 -1e+37 1e+37 0 0 /granule/windowleft /granule/windowleft_
+windowleft 50 8 0 8 -262144 -1 -1 15000 256;
+#X obj 280 192 nbx 5 14 -1e+37 1e+37 0 0 /granule/windowright /granule/windowright_
+windowright 50 8 0 8 -262144 -1 -1 15000 256;
+#X obj 278 12 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 338 13 PARAM ENABLED;
+#X obj 311 31 mtl/param-enabled-help;
#X connect 2 0 3 0;
#X connect 2 1 3 1;
#X connect 5 0 6 0;
diff --git a/granularLive~.pd b/granularLive~.pd
index df715b9..0c8ce8a 100644
--- a/granularLive~.pd
+++ b/granularLive~.pd
@@ -228,6 +228,8 @@
#X obj 400 -2 tof/param /windowleft 15000 /g nbx;
#X obj 429 58 tof/param /windowright 15000 /g nbx;
#X obj 536 260 tof/param route;
+#X obj 334 328 iemguts/propertybang;
+#X obj 331 354 tof/param gui;
#X connect 0 0 10 2;
#X connect 1 0 10 0;
#X connect 1 0 0 0;
@@ -247,3 +249,4 @@
#X connect 16 0 0 1;
#X connect 17 0 11 1;
#X connect 18 0 6 0;
+#X connect 19 0 20 0;
diff --git a/love.txt b/love.txt
index 532f5ed..8793e0c 100644
--- a/love.txt
+++ b/love.txt
@@ -122,13 +122,21 @@ send routing
sigpack/vowel~ fx~
smlib/threshold routing
tof/argument initialization patch
+tof/breakpoints~ ui control~
+tof/breakpoints ui timing
+tof/common~ mix~
tof/crossfade~ mix~
tof/folderpanel file
tof/getdollarzero patch
tof/increment counter
tof/iterate routing
tof/listUnfold lists
+tof/onlyone initialization symbols
+tof/openHelp tools patch
+tof/param state routing
tof/path patch file
+tof/phasorshot~ control~
+tof/streamMinMax math
unauthorized/grid ui
unauthorized/wahwah~ fx~
writesf~ file~ record~
diff --git a/makecore.sh b/makecore.sh
index 6ee5958..9f55fb1 100755
--- a/makecore.sh
+++ b/makecore.sh
@@ -9,4 +9,4 @@ rm love.txt
mv amourette.txt love.txt
echo "Making copy of browser.pd"
-cp browser.pd 1-13LP.pd
+cp browser.pd 1.mtlBrowser.pd
diff --git a/pitchShift~-help.pd b/pitchShift~-help.pd
index a815edd..b4244ee 100644
--- a/pitchShift~-help.pd
+++ b/pitchShift~-help.pd
@@ -1,10 +1,6 @@
-#N canvas 417 57 407 261 10;
+#N canvas 696 418 476 249 10;
#X obj 9 157 mtl/out~;
#X text 5 15 tags: fx~;
-#X obj 205 133 nbx 5 14 -1e+37 1e+37 0 0 \$0/pishi/transpose \$0/pishi/transpose_
-/pishi/transpose 48 7 0 8 -262144 -1 -1 25 256;
-#X obj 205 88 tgl 15 0 \$0/pishi/switch \$0/pishi/switch_ /pishi/switch
-17 7 0 8 -262144 -1 -1 0 1;
#X obj 8 61 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#N canvas 367 242 582 409 loop_sample 0;
@@ -18,12 +14,23 @@
#X connect 4 0 0 0;
#X connect 4 0 2 0;
#X restore 8 97 pd loop_sample;
-#X obj 205 109 tgl 15 0 \$0/pishi/method \$0/pishi/method_ /pishi/method
-17 7 0 8 -262144 -1 -1 1 1;
#X obj 8 129 mtl/pitchShift~ /id pishi;
#X text 5 -2 Description: pitchshifter with 2 methods.;
-#X connect 4 0 5 0;
-#X connect 5 0 7 0;
-#X connect 5 1 7 1;
-#X connect 7 0 0 0;
-#X connect 7 1 0 1;
+#X obj 193 162 cnv 15 200 20 empty empty /pishi/ 2 12 0 8 -258401 -262144
+0;
+#X obj 193 185 nbx 5 14 -1e+37 1e+37 0 0 /pishi/transpose /pishi/transpose_
+transpose 50 8 0 8 -262144 -1 -1 0 256;
+#X obj 193 203 tgl 15 0 /pishi/switch /pishi/switch_ switch 17 7 0
+8 -262144 -166441 -1 0 1;
+#X obj 193 221 tgl 15 0 /pishi/method /pishi/method_ method 17 7 0
+8 -262144 -166441 -1 0 1;
+#X obj 189 75 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 249 76 PARAM ENABLED;
+#X obj 222 94 mtl/param-enabled-help;
+#X text 170 129 <-Click on the propeties menu to display params;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 3 1 4 1;
+#X connect 4 0 0 0;
+#X connect 4 1 0 1;
diff --git a/pitchShift~.pd b/pitchShift~.pd
index ae2091f..8d3cca0 100644
--- a/pitchShift~.pd
+++ b/pitchShift~.pd
@@ -1,4 +1,4 @@
-#N canvas 656 399 678 298 10;
+#N canvas 657 431 678 298 10;
#N canvas 449 458 721 323 processing 0;
#N canvas 0 110 466 295 hann-window 0;
#X obj 288 130 osc~;
@@ -743,6 +743,8 @@ example I07.phase.vocoder.pd from the doc.;
#X obj 313 64 tof/param /method 0 /g tgl;
#X obj 313 85 == 0;
#X obj 548 65 tof/param route;
+#X obj 537 134 iemguts/propertybang;
+#X obj 538 163 tof/param gui;
#X connect 0 0 8 2;
#X connect 0 1 8 3;
#X connect 1 0 0 0;
@@ -768,3 +770,4 @@ example I07.phase.vocoder.pd from the doc.;
#X connect 19 0 16 2;
#X connect 19 0 17 2;
#X connect 20 0 10 0;
+#X connect 21 0 22 0;
diff --git a/reverbCm~-help.pd b/reverbCm~-help.pd
index 96fc928..fd4787e 100644
--- a/reverbCm~-help.pd
+++ b/reverbCm~-help.pd
@@ -1,8 +1,8 @@
-#N canvas 278 185 422 227 10;
+#N canvas 279 217 473 241 10;
#X text 11 -44 Comment: Original patch by Claude H.;
#X text 12 -57 Description: A simple stereo reverb.;
#X obj 33 93 mtl/out~;
-#X obj 33 6 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
+#X obj 33 6 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#N canvas 5 185 450 300 generate~ 0;
#X obj 32 213 osc~ 200;
@@ -39,12 +39,19 @@
#X restore 33 31 pd generate~;
#X text 11 -30 tags: fx~;
#X obj 33 59 mtl/reverbCm~ /id rc;
-#X obj 183 20 hsl 100 15 0 1 0 0 \$0/rc/wet \$0/rc/wet_ /rc/wet 105
-7 0 8 -262144 -1 -1 9900 1;
-#X obj 183 40 hsl 100 15 0 1 0 0 \$0/rc/delay \$0/rc/delay_ /rc/delay
-105 7 0 8 -262144 -1 -1 1000 1;
-#X obj 183 60 hsl 100 15 0 1 0 0 \$0/rc/feedback \$0/rc/feedback_ /rc/feedback
-105 7 0 8 -262144 -1 -1 8600 1;
+#X obj 210 92 cnv 15 200 20 empty empty /rc/ 2 12 0 8 -258401 -262144
+0;
+#X obj 210 115 hsl 100 15 0 1 0 0 /rc/wet /rc/wet_ wet 105 7 0 8 -262144
+-1 -1 0 1;
+#X obj 210 133 hsl 100 15 0 1 0 0 /rc/delay /rc/delay_ delay 105 7
+0 8 -262144 -1 -1 0 1;
+#X obj 210 151 hsl 100 15 0 1 0 0 /rc/feedback /rc/feedback_ feedback
+105 7 0 8 -262144 -1 -1 0 1;
+#X obj 211 -10 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 271 -9 PARAM ENABLED;
+#X obj 244 9 mtl/param-enabled-help;
+#X text 167 58 <-Click on the propeties menu to display params;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 4 1 6 1;
diff --git a/reverbCm~.pd b/reverbCm~.pd
index 78add1c..ed24e90 100644
--- a/reverbCm~.pd
+++ b/reverbCm~.pd
@@ -1,4 +1,4 @@
-#N canvas 605 82 811 495 10;
+#N canvas 606 114 811 495 10;
#N canvas 2 89 731 555 cmreverb 0;
#X obj 25 22 inlet~;
#X obj 85 22 inlet~;
@@ -99,6 +99,8 @@
#X obj 278 111 tof/param /delay 0 /g slider 0 1;
#X obj 169 64 tof/param /feedback 0 /g slider 0 1;
#X obj 593 237 tof/param route;
+#X obj 588 339 iemguts/propertybang;
+#X obj 589 368 tof/param gui;
#X connect 0 0 10 2;
#X connect 0 1 10 3;
#X connect 1 0 10 0;
@@ -116,3 +118,4 @@
#X connect 14 0 6 0;
#X connect 15 0 5 0;
#X connect 16 0 9 0;
+#X connect 17 0 18 0;
diff --git a/reverbFdn~-help.pd b/reverbFdn~-help.pd
index 0b047eb..2f20381 100644
--- a/reverbFdn~-help.pd
+++ b/reverbFdn~-help.pd
@@ -1,8 +1,8 @@
-#N canvas 699 384 606 282 10;
+#N canvas 700 416 606 282 10;
#X obj -2 0 cnv 15 600 30 empty empty fx.reverb.fdn~ 2 12 1 14 -233017
-66577 0;
-#X text 426 42 Author: Miller Puckette;
-#X text 426 58 Version: 2008-03-05;
+#X text 440 32 Author: Miller Puckette;
+#X text 440 48 Version: 2008-03-05;
#X obj 183 203 dac~ 3 4;
#X text 179 217 outlets 3 and 4 can be used to feed rear channels in
a multichannel setup (they don't require addition computation power).
@@ -46,14 +46,20 @@ a multichannel setup (they don't require addition computation power).
#X connect 13 0 11 0;
#X connect 14 0 2 0;
#X restore 15 118 pd generate~;
-#X obj 188 91 hsl 100 15 0 1 0 0 \$0/fdn/wet \$0/fdn/wet_ /fdn/wet
+#X obj 161 81 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 221 82 PARAM ENABLED;
+#X obj 194 100 mtl/param-enabled-help;
+#X obj 374 81 cnv 15 200 20 empty empty /fdn/ 2 12 0 8 -258401 -262144
+0;
+#X obj 374 104 hsl 100 15 0 1 0 0 /fdn/wet /fdn/wet_ wet 105 7 0 8
+-262144 -1 -1 0 1;
+#X obj 374 122 hsl 100 15 0 100 0 0 /fdn/damp /fdn/damp_ damp 105 7
+0 8 -262144 -1 -1 0 1;
+#X obj 374 140 hsl 100 15 0 100 0 0 /fdn/liveness /fdn/liveness_ liveness
105 7 0 8 -262144 -1 -1 0 1;
-#X obj 188 111 hsl 100 15 0 100 0 0 \$0/fdn/damp \$0/fdn/damp_ /fdn/damp
-105 7 0 8 -262144 -1 -1 7920 1;
-#X obj 188 131 hsl 100 15 0 100 0 0 \$0/fdn/liveness \$0/fdn/liveness_
-/fdn/liveness 105 7 0 8 -262144 -1 -1 8910 1;
-#X obj 188 151 hsl 100 15 0 127 0 0 \$0/fdn/crossover \$0/fdn/crossover_
-/fdn/crossover 105 7 0 8 -262144 -1 -1 6236 1;
+#X obj 374 158 hsl 100 15 0 127 0 0 /fdn/crossover /fdn/crossover_
+crossover 105 7 0 8 -262144 -1 -1 0 1;
#X connect 6 0 7 0;
#X connect 6 1 7 1;
#X connect 6 2 3 0;
diff --git a/reverbFdn~.pd b/reverbFdn~.pd
index 41be59a..b95dad7 100644
--- a/reverbFdn~.pd
+++ b/reverbFdn~.pd
@@ -1,4 +1,4 @@
-#N canvas 221 111 705 576 10;
+#N canvas 222 143 705 576 10;
#N canvas 549 339 890 407 processing 0;
#X obj 420 84 inlet;
#X obj 420 190 pack 0 50;
@@ -418,6 +418,8 @@
#X obj 242 -21 tof/param /liveness 90 /g slider 0 100;
#X obj 245 10 tof/param /crossover 80 /g slider 0 127;
#X obj 573 25 tof/param route;
+#X obj 548 152 iemguts/propertybang;
+#X obj 549 181 tof/param gui;
#X connect 0 0 14 2;
#X connect 0 1 14 3;
#X connect 0 2 5 0;
@@ -436,3 +438,4 @@
#X connect 16 0 0 2;
#X connect 17 0 0 3;
#X connect 18 0 10 0;
+#X connect 19 0 20 0;
diff --git a/reverbFree~-help.pd b/reverbFree~-help.pd
index 71467df..39f72e5 100644
--- a/reverbFree~-help.pd
+++ b/reverbFree~-help.pd
@@ -1,8 +1,8 @@
-#N canvas 474 91 456 233 10;
+#N canvas 475 123 512 296 10;
#X obj 24 134 mtl/reverbFree~ /id freeverb;
#X obj 23 161 mtl/out~;
#X text 19 25 tags: fx~;
-#X obj 23 84 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
+#X obj 23 84 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#N canvas 5 185 450 300 generate~ 0;
#X obj 32 213 osc~ 200;
@@ -38,16 +38,23 @@
#X connect 14 0 2 0;
#X restore 23 109 pd generate~;
#X text 18 8 Description: wrap freeverb.;
-#X obj 217 53 hsl 100 15 0 1 0 0 \$0/freeverb/wet \$0/freeverb/wet_
-/freeverb/wet 105 7 0 8 -262144 -1 -1 0 1;
-#X obj 217 93 hsl 100 15 0 1 0 0 \$0/freeverb/width \$0/freeverb/width_
-/freeverb/width 105 7 0 8 -262144 -1 -1 0 1;
-#X obj 217 73 hsl 100 15 0.11 1.6 0 0 \$0/freeverb/roomsize \$0/freeverb/roomsize_
-/freeverb/roomsize 105 7 0 8 -262144 -1 -1 0 1;
-#X obj 214 133 tgl 15 0 \$0/freeverb/freeze \$0/freeverb/freeze_ /freeverb/freeze
-17 7 0 8 -262144 -1 -1 0 1;
-#X obj 217 113 hsl 100 15 0 2 0 0 \$0/freeverb/damping \$0/freeverb/damping_
-/freeverb/damping 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 222 163 cnv 15 200 20 empty empty /freeverb/ 2 12 0 8 -258401
+-262144 0;
+#X obj 222 186 hsl 100 15 0 1 0 0 /freeverb/wet /freeverb/wet_ wet
+105 7 0 8 -262144 -1 -1 0 1;
+#X obj 222 204 hsl 100 15 0 1 0 0 /freeverb/width /freeverb/width_
+width 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 222 222 hsl 100 15 0.11 1.6 0 0 /freeverb/roomsize /freeverb/roomsize_
+roomsize 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 222 240 tgl 15 0 /freeverb/freeze /freeverb/freeze_ freeze 17
+7 0 8 -262144 -166441 -1 0 1;
+#X obj 222 258 hsl 100 15 0 2 0 0 /freeverb/damping /freeverb/damping_
+damping 105 7 0 8 -262144 -1 -1 0 1;
+#X obj 218 51 cnv 15 200 40 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 278 52 PARAM ENABLED;
+#X obj 251 70 mtl/param-enabled-help;
+#X text 202 133 <-Click on the propeties menu to display params;
#X connect 0 0 1 0;
#X connect 0 1 1 1;
#X connect 3 0 4 0;
diff --git a/reverbFree~.pd b/reverbFree~.pd
index a0d35e5..651ee4a 100644
--- a/reverbFree~.pd
+++ b/reverbFree~.pd
@@ -1,4 +1,4 @@
-#N canvas 166 155 1016 505 10;
+#N canvas 167 187 1016 505 10;
#X obj 42 454 outlet~ left;
#X obj 134 454 outlet~ right;
#X obj 44 71 inlet~ left;
@@ -55,6 +55,8 @@
#X obj 360 177 tof/param /freeze 0 /g tgl;
#X obj 360 137 tof/param /damping 0.4 /g slider 0 2;
#X obj 741 152 tof/param route;
+#X obj 742 233 iemguts/propertybang;
+#X obj 743 262 tof/param gui;
#X connect 2 0 4 0;
#X connect 2 0 5 0;
#X connect 3 0 4 1;
@@ -72,3 +74,4 @@
#X connect 13 0 4 5;
#X connect 14 0 4 3;
#X connect 15 0 7 0;
+#X connect 16 0 17 0;
diff --git a/sfIndexer-help.pd b/sfIndexer-help.pd
index e9759ca..0ea7a5b 100644
--- a/sfIndexer-help.pd
+++ b/sfIndexer-help.pd
@@ -1,4 +1,4 @@
-#N canvas 611 66 775 629 10;
+#N canvas 250 98 775 629 10;
#X obj 14 134 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X text 12 12 description: Loads and stores soundfiles.;
@@ -15,9 +15,9 @@ index;
#X obj 90 401 cyclone/prepend set;
#X obj 29 452 cyclone/prepend set;
#X obj 203 326 cyclone/prepend set;
-#X text 185 419 Outlet 2: samplerate length channels;
-#X text 580 343 Outlet 3: index soundfile;
-#X text 202 471 Outlet 1: tables (one table per channel);
+#X text 214 398 Outlet 2: samplerate length channels;
+#X text 326 327 Outlet 3: index soundfile;
+#X text 152 448 Outlet 1: tables (one table per channel);
#X text 13 28 tags: tables file~;
#X obj 528 103 bng 15 250 50 0 empty empty save 17 7 0 10 -262144 -1
-1;
@@ -30,7 +30,6 @@ index;
-1;
#X obj 41 228 openpanel;
#X text 62 177 "add" soundfile: adds the indicated soundfile;
-#X text 67 205 "symbol": add the soundfile and output it's data.;
#X text 12 82 sfIndexer will never reload the same soundfile twice.
It will point to the previously filled tables instead.;
#X text 13 48 sfIndexer can store and refer to an unlimited number
@@ -46,17 +45,18 @@ through the param system.;
#X msg 29 472;
#X msg 203 346;
#X obj 528 144 tof/param file;
+#X text 67 205 "symbol": add the soundfile and output its data.;
#X connect 0 0 20 0;
-#X connect 2 0 28 0;
+#X connect 2 0 27 0;
#X connect 4 0 19 0;
#X connect 5 0 19 0;
#X connect 6 0 19 0;
#X connect 7 0 19 0;
-#X connect 10 0 33 0;
-#X connect 11 0 34 0;
-#X connect 12 0 35 0;
-#X connect 17 0 36 0;
-#X connect 18 0 36 1;
+#X connect 10 0 32 0;
+#X connect 11 0 33 0;
+#X connect 12 0 34 0;
+#X connect 17 0 35 0;
+#X connect 18 0 35 1;
#X connect 19 0 2 0;
#X connect 19 0 11 0;
#X connect 19 1 10 0;
@@ -65,5 +65,5 @@ through the param system.;
#X connect 21 0 19 0;
#X connect 22 0 23 0;
#X connect 23 0 19 0;
-#X connect 28 0 3 0;
-#X connect 28 0 3 1;
+#X connect 27 0 3 0;
+#X connect 27 0 3 1;
diff --git a/sfIndexer.pd b/sfIndexer.pd
index 9d4cc66..09f6d33 100644
--- a/sfIndexer.pd
+++ b/sfIndexer.pd
@@ -1,4 +1,4 @@
-#N canvas 1067 100 981 616 10;
+#N canvas 458 164 981 616 10;
#X obj 171 25 inlet;
#N canvas 477 373 450 300 \$0tables 0;
#X restore 437 56 pd \$0tables;