aboutsummaryrefslogtreecommitdiff
path: root/voicing_detector~
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2010-08-19 05:04:28 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2010-08-19 05:04:28 +0000
commit79096fd626b946efd6947fa94ab15d30bf003ba0 (patch)
tree9a10305d0ade28bb3f5139c37ab8fa76f4e603d4 /voicing_detector~
parent633eaa4b2350c00ddc1b338c357096a441944784 (diff)
converted to new library template and debianized
svn path=/trunk/externals/ekext/; revision=13835
Diffstat (limited to 'voicing_detector~')
-rw-r--r--voicing_detector~/count.pd43
-rw-r--r--voicing_detector~/makefile106
-rw-r--r--voicing_detector~/voicing_detector~-help.pd85
-rw-r--r--voicing_detector~/voicing_detector~.c132
-rw-r--r--voicing_detector~/voicing_detector~test3-help.pd275
5 files changed, 0 insertions, 641 deletions
diff --git a/voicing_detector~/count.pd b/voicing_detector~/count.pd
deleted file mode 100644
index 9be4cf8..0000000
--- a/voicing_detector~/count.pd
+++ /dev/null
@@ -1,43 +0,0 @@
-#N canvas 529 241 271 210 10;
-#X obj 69 42 inlet;
-#X obj 180 76 inlet;
-#X obj 69 59 f;
-#X obj 92 59 + 1;
-#X msg 172 148 0;
-#X obj 92 76 t f f;
-#X obj 106 103 f;
-#X obj 150 93 >= \$1;
-#X obj 150 131 sel 0 1;
-#X obj 172 114 inlet;
-#X obj 25 139 outlet;
-#X obj 69 139 outlet;
-#X obj 69 122 sel 0;
-#X text 16 25 INLETS: bang/set reset limit;
-#X obj 25 76 t f f;
-#X obj 139 59 loadbang;
-#X msg 25 93 1;
-#X obj 55 99 spigot;
-#X msg 139 76 0;
-#X text 20 170 OUTLETS: count bang-when-done;
-#X connect 0 0 2 0;
-#X connect 1 0 7 1;
-#X connect 2 0 3 0;
-#X connect 2 0 14 0;
-#X connect 3 0 5 0;
-#X connect 4 0 2 1;
-#X connect 4 0 17 1;
-#X connect 5 0 7 0;
-#X connect 5 1 6 1;
-#X connect 6 0 2 1;
-#X connect 7 0 8 0;
-#X connect 8 0 6 0;
-#X connect 8 1 4 0;
-#X connect 9 0 4 0;
-#X connect 12 0 11 0;
-#X connect 14 0 10 0;
-#X connect 14 0 16 0;
-#X connect 14 1 17 0;
-#X connect 15 0 18 0;
-#X connect 16 0 17 1;
-#X connect 17 0 12 0;
-#X connect 18 0 17 1;
diff --git a/voicing_detector~/makefile b/voicing_detector~/makefile
deleted file mode 100644
index 08f4c8f..0000000
--- a/voicing_detector~/makefile
+++ /dev/null
@@ -1,106 +0,0 @@
-current:
- echo make pd_linux, pd_nt, pd_irix5, pd_irix6 or pd_darwin
-
-clean: ; rm -f *.pd_* *.o
-
-# ----------------------- NT -----------------------
-
-pd_nt: voicing_detector~.dll
-
-INSTALL_PREFIX = "C:\pd\extra"
-EXT = dll
-.SUFFIXES: .obj .dll
-
-PDNTCFLAGS = /W3 /WX /DNT /DPD /nologo
-VC="D:\Program Files\Microsoft Visual Studio\Vc98"
-
-PDNTINCLUDE = /I. /I\tcl\include /I..\..\src /I$(VC)\include
-
-PDNTLDIR = $(VC)\lib
-PDNTLIB = $(PDNTLDIR)\libc.lib \
- $(PDNTLDIR)\oldnames.lib \
- $(PDNTLDIR)\kernel32.lib \
- ..\..\bin\pd.lib
-
-.c.dll:
- cl $(PDNTCFLAGS) $(PDNTINCLUDE) /c $*.c
- link /dll /export:$*_setup $*.obj $(PDNTLIB)
-
-# ----------------------- IRIX 5.x -----------------------
-
-pd_irix5: voicing_detector~.pd_irix5
-
-INSTALL_PREFIX = /usr/local
-EXT = pd_irix5
-.SUFFIXES: .pd_irix5
-
-SGICFLAGS5 = -o32 -DPD -DUNIX -DIRIX -O2
-
-SGIINCLUDE = -I/usr/local/include
-
-.c.pd_irix5:
- cc $(SGICFLAGS5) $(SGIINCLUDE) -o $*.o -c $*.c
- ld -elf -shared -rdata_shared -o $*.pd_irix5 $*.o
- rm $*.o
-
-# ----------------------- IRIX 5.x -----------------------
-
-pd_irix6: voicing_detector~.pd_irix6
-
-INSTALL_PREFIX = /usr/local
-EXT = pd_irix6
-.SUFFIXES: .pd_irix6
-
-SGICFLAGS5 = -o32 -DPD -DUNIX -DIRIX -O2
-
-SGIINCLUDE = -I/usr/local/include
-
-.c.pd_irix6:
- cc $(SGICFLAGS5) $(SGIINCLUDE) -o $*.o -c $*.c
- ld -elf -shared -rdata_shared -o $*.pd_irix6 $*.o
- rm $*.o
-
-# ----------------------- LINUX i386 -----------------------
-
-pd_linux: voicing_detector~.pd_linux
-
-INSTALL_PREFIX = /usr
-EXT = pd_linux
-.SUFFIXES: .pd_linux
-
-LINUXCFLAGS = -DPD -O2 -funroll-loops -fomit-frame-pointer \
- -Wall -W -Wshadow -Wstrict-prototypes -Werror \
- -Wno-unused -Wno-parentheses -Wno-switch
-
-LINUXINCLUDE = -I/usr/local/include
-
-.c.pd_linux:
- cc $(LINUXCFLAGS) $(LINUXINCLUDE) -o $*.o -c $*.c
- ld --export-dynamic -shared -o $*.pd_linux $*.o -lc -lm
- strip --strip-unneeded $*.pd_linux
- rm $*.o
-
-# ----------------------- Mac OSX -----------------------
-
-pd_darwin: voicing_detector~.pd_darwin
-
-INSTALL_PREFIX = /usr/local
-EXT = pd_darwin
-.SUFFIXES: .pd_darwin
-
-DARWINCFLAGS = -DPD -O2 -Wall -W -Wshadow -Wstrict-prototypes \
- -Wno-unused -Wno-parentheses -Wno-switch
-
-.c.pd_darwin:
- cc $(DARWINCFLAGS) $(LINUXINCLUDE) -o $*.o -c $*.c
- cc -bundle -undefined suppress -flat_namespace -o $*.pd_darwin $*.o
- rm -f $*.o
-
-# ----------------------------------------------
-
-install::
- install -d $(INSTALL_PREFIX)/lib/pd/extra
-# install -m 644 *.$(EXT) $(INSTALL_PREFIX)/lib/pd/externs
- -install -m 644 voicing_detector~.$(EXT) $(INSTALL_PREFIX)/lib/pd/extra
- install -m 644 *.pd $(INSTALL_PREFIX)/lib/pd/doc/5.reference
-
diff --git a/voicing_detector~/voicing_detector~-help.pd b/voicing_detector~/voicing_detector~-help.pd
deleted file mode 100644
index 6faed88..0000000
--- a/voicing_detector~/voicing_detector~-help.pd
+++ /dev/null
@@ -1,85 +0,0 @@
-#N canvas 0 0 510 323 10;
-#N canvas 119 189 450 300 voxdetect 0;
-#X obj 150 156 voicing_detector~;
-#X obj 150 99 inlet~;
-#X obj 307 124 block~ 1024;
-#X obj 264 95 inlet;
-#X obj 220 209 outlet~;
-#X obj 150 238 outlet;
-#X text 81 195 1=voiced;
-#X text 81 214 0=unvoiced;
-#X text 262 76 threshold (0-100);
-#X connect 0 0 5 0;
-#X connect 1 0 0 0;
-#X connect 1 0 4 0;
-#X connect 3 0 0 1;
-#X restore 96 199 pd voxdetect;
-#X obj 139 71 bng 15 250 50 0 empty empty load-voice -38 -6 0 8 -262144
--1 -1;
-#N canvas 0 0 450 300 play 0;
-#X obj 82 157 tabplay~ voice;
-#X obj 190 66 inlet;
-#X obj 53 67 inlet;
-#X obj 111 66 inlet;
-#X obj 48 140 metro;
-#X obj 84 196 outlet~;
-#X connect 0 0 5 0;
-#X connect 1 0 4 1;
-#X connect 2 0 0 0;
-#X connect 3 0 4 0;
-#X connect 4 0 0 0;
-#X restore 95 139 pd play;
-#X obj 95 115 bng 15 250 50 0 empty empty play 0 -6 0 8 -262144 -1
--1;
-#X obj 117 102 tgl 15 0 empty empty loop 0 -6 0 8 -262144 -1 -1 0 1
-;
-#N canvas 0 0 450 300 load 0;
-#X obj 77 135 soundfiler;
-#X obj 77 169 outlet;
-#X obj 161 101 loadbang;
-#X obj 80 84 openpanel;
-#X obj 80 27 inlet;
-#X msg 8 101 read -resize \$1 voice;
-#X obj 77 152 / 44.1;
-#X obj 114 47 samplerate~;
-#X obj 114 64 / 1000;
-#X msg 77 118 read -resize beauty.wav voice;
-#X connect 0 0 6 0;
-#X connect 2 0 9 0;
-#X connect 3 0 5 0;
-#X connect 4 0 3 0;
-#X connect 4 0 7 0;
-#X connect 5 0 0 0;
-#X connect 6 0 1 0;
-#X connect 7 0 8 0;
-#X connect 8 0 6 1;
-#X connect 9 0 0 0;
-#X restore 139 86 pd load;
-#N canvas 0 0 450 300 graph2 0;
-#X array voice 1.31596e+06 float 0;
-#X coords 0 1 1.31596e+06 -1 100 70 1;
-#X restore 281 55 graph;
-#X floatatom 96 234 5 0 0 0 - - -;
-#X obj 166 233 dac~;
-#X obj 217 44 vsl 15 101 0 100 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 3700 1;
-#X floatatom 193 168 5 0 0 0 - - -;
-#X text 79 253 The voicing detector estimates whether a frame of speech
-is voiced (uses the vocal chords) or unvoiced (does not).;
-#X text 128 288 (Gnu) Edward Kelly and Nicolas Chetry 2005;
-#X msg 15 131 \; pd dsp \$1;
-#X obj 15 102 tgl 15 0 empty empty audio_on 0 -6 0 8 -262144 -1 -1
-0 1;
-#X obj 124 162 adc~;
-#X connect 0 0 7 0;
-#X connect 0 1 8 0;
-#X connect 0 1 8 1;
-#X connect 1 0 5 0;
-#X connect 2 0 0 0;
-#X connect 3 0 2 0;
-#X connect 4 0 2 1;
-#X connect 5 0 2 2;
-#X connect 9 0 10 0;
-#X connect 10 0 0 1;
-#X connect 14 0 13 0;
-#X connect 15 0 0 0;
diff --git a/voicing_detector~/voicing_detector~.c b/voicing_detector~/voicing_detector~.c
deleted file mode 100644
index 9c14308..0000000
--- a/voicing_detector~/voicing_detector~.c
+++ /dev/null
@@ -1,132 +0,0 @@
-#include "m_pd.h"
-#include <math.h>
-
-static t_class *voicing_detector_tilde_class;
-
-typedef struct _voicing_control
-{
- t_float *c_input;
- t_float f_sum_abs;
- t_atom otemp[4096];
- t_int method;
-} t_voicing_control;
-
-typedef struct _voicing_detector_tilde
-{
- t_object x_obj;
- t_float f_dummy, f_thresh, f_low, f_high;
- t_voicing_control x_ctl;
- t_outlet *voiced, *prob;
-} t_voicing_detector_tilde;
-
-static t_int *voicing_detector_tilde_perform(t_int *w)
-{
- t_voicing_detector_tilde *x = (t_voicing_detector_tilde *)(w[1]);
- t_voicing_control *ctl = (t_voicing_control *)(w[2]);
- t_int n = (int)(w[3]);
- t_float *in = ctl->c_input;
- if (x->f_high < x->f_low)
- {
- float tmp = x->f_low;
- x->f_low = x->f_high;
- x->f_high = tmp;
- }
- t_float current, previous, next, temp0, temp1, avg, max, peak0;
- current = previous = next = temp0 = temp1 = avg = max = peak0 = 0;
- t_float min = 1000;
- t_float samplerate = sys_getsr();
- t_float start = samplerate / x->f_high;
- start = start > 1 ? start : 1;
- t_float end = samplerate / x->f_low;
- end = end < (n-1) ? end : n-1;
- t_float result, prob, diff, diff2;
- t_int i = 0;
- int j;
- int l = n;
- int maxp = 0;
- int maxi = 0;
- float temp[n];
- ctl->f_sum_abs = 0.0;
- for (i=0;i<l;i++)
- {
- ctl->f_sum_abs += fabs(in[i]); /* I have to calculate f_sum_abs for the whole block before I can calculate amdf */
- temp[i] = 0.0;
- SETFLOAT(&ctl->otemp[i], 0.0);
- }
- for (i=1;i<l;i++)
- {
- temp1 = 0;
- for (j=start;j<=end;j++) /* the Average Magnitude Difference Function */
- {
- temp[j] = i + j < l ? in[i+j] : 0.0;
- temp0 = atom_getfloatarg(i, 4096, ctl->otemp);
- temp1 += fabs(in[j] - temp[j]);
- }
- temp1 += ((float)i / (float)l) * ctl->f_sum_abs;
- SETFLOAT(&ctl->otemp[i], temp1);
- }
-
- for (i=start+1;i<end;i++)
- {
- previous= atom_getfloatarg(i-1, 2048, ctl->otemp);
- current = atom_getfloatarg(i, 2048, ctl->otemp);
- next = atom_getfloatarg(i+1, 2048, ctl->otemp);
- max = current > max ? current : max;
- min = current < min ? current : min;
- avg += current;
- }
- avg = avg / (end-start);
- diff = avg - min;
- diff2 = max - min;
- result = ctl->method == 0 ? ((avg - min) > (x->f_thresh) ? 1 : 0) : ((max - min) > x->f_thresh ? 1 : 0);
- prob = diff2 / max;
- outlet_float(x->prob, prob);
- outlet_float(x->voiced, result);
- return(w+4);
-}
-
-void voicing_detector_tilde_bound(t_voicing_detector_tilde *x, t_floatarg f1, t_floatarg f2)
-{
- x->f_low = f1;
- x->f_high = f2;
-}
-
-void voicing_detector_tilde_method(t_voicing_detector_tilde *x, t_floatarg f)
-{
- x->x_ctl.method = f > 0 ? 1 : 0;
-}
-
-void *voicing_detector_tilde_dsp(t_voicing_detector_tilde *x, t_signal **sp)
-{
- x->x_ctl.c_input = sp[0]->s_vec;
- dsp_add(voicing_detector_tilde_perform, 3, x, &x->x_ctl, sp[0]->s_n);
- return (void *)x;
-}
-
-void *voicing_detector_tilde_new(t_floatarg f)
-{
- t_voicing_detector_tilde *x = (t_voicing_detector_tilde *)pd_new(voicing_detector_tilde_class);
- x->f_thresh = f < 0 ? f : 25;
- x->f_low = 60;
- x->f_high = 500;
-
- floatinlet_new (&x->x_obj, &x->f_thresh);
- x->voiced = outlet_new(&x->x_obj, gensym("float"));
- x->prob = outlet_new(&x->x_obj, gensym("float"));
- return (void *)x;
-}
-
-void voicing_detector_tilde_setup(void)
-{
- voicing_detector_tilde_class = class_new(gensym("voicing_detector~"), (t_newmethod)voicing_detector_tilde_new, 0, sizeof(t_voicing_detector_tilde), CLASS_DEFAULT, A_DEFFLOAT, 0);
-
- post("\n-->AMDF voicing detector v0.2");
- post("-->by Nicolas Chetry <okin@altern.org>");
- post("-->& Edward Kelly <morph_2016@yahoo.co.uk>");
-
- class_addmethod(voicing_detector_tilde_class, (t_method)voicing_detector_tilde_bound, gensym("bound"), A_DEFFLOAT, A_DEFFLOAT, 0);
- class_addmethod(voicing_detector_tilde_class, (t_method)voicing_detector_tilde_method, gensym("method"), A_DEFFLOAT, 0);
- class_addmethod(voicing_detector_tilde_class, (t_method)voicing_detector_tilde_dsp, gensym("dsp"), 0);
-
- CLASS_MAINSIGNALIN(voicing_detector_tilde_class, t_voicing_detector_tilde, f_dummy);
-}
diff --git a/voicing_detector~/voicing_detector~test3-help.pd b/voicing_detector~/voicing_detector~test3-help.pd
deleted file mode 100644
index f4dedc4..0000000
--- a/voicing_detector~/voicing_detector~test3-help.pd
+++ /dev/null
@@ -1,275 +0,0 @@
-#N canvas 0 0 728 435 10;
-#X floatatom 128 105 5 0 100 2 thresh - -;
-#N canvas 0 0 450 300 graph1 0;
-#X array testinput 1.31596e+06 float 2;
-#X coords 0 1 1.31596e+06 -1 300 60 1;
-#X restore 255 18 graph;
-#X obj 115 71 tabplay~ testinput;
-#X obj 575 252 soundfiler;
-#X obj 575 218 openpanel;
-#X msg 575 235 read -resize \$1 testinput;
-#X obj 575 203 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 115 41 bng 15 250 50 0 empty empty play 0 -6 0 8 -262144 -1
--1;
-#X obj 199 54 spigot;
-#X obj 228 39 tgl 15 0 empty empty loop 0 -6 0 8 -262144 -1 -1 1 1
-;
-#X obj 235 121 tgl 15 0 empty empty on 0 -6 0 8 -262144 -1 -1 1 1;
-#N canvas 0 0 450 300 testload 0;
-#X floatatom 118 256 0 0 0 0 - - -;
-#X obj 118 168 cputime;
-#X obj 118 28 loadbang;
-#X obj 118 112 metro 1000;
-#X msg 118 56 1;
-#X floatatom 118 84 0 0 0 0 - - -;
-#X obj 118 140 t b b;
-#X obj 118 228 * 0.1;
-#X text 163 84 <-- on/off;
-#X text 51 284 CPU load in percent;
-#X connect 1 0 7 0;
-#X connect 2 0 4 0;
-#X connect 3 0 6 0;
-#X connect 4 0 5 0;
-#X connect 5 0 3 0;
-#X connect 6 0 1 0;
-#X connect 6 1 1 1;
-#X connect 7 0 0 0;
-#X restore 62 240 pd testload;
-#N canvas 0 0 450 300 voicingdet~ 0;
-#X obj 95 74 inlet;
-#X obj 51 74 inlet~;
-#X obj 259 117 inlet;
-#X obj 259 137 switch~ 1024 1 1;
-#X obj 51 126 voicing_detector~;
-#X text 83 59 threshold;
-#X obj 151 73 inlet;
-#X text 148 58 search;
-#X obj 206 73 inlet;
-#X obj 165 220 outlet;
-#X obj 51 218 outlet;
-#X text 149 27 peaks;
-#X text 204 40 samples;
-#X text 207 57 window;
-#X connect 0 0 4 1;
-#X connect 1 0 4 0;
-#X connect 2 0 3 0;
-#X connect 4 0 10 0;
-#X connect 4 2 9 0;
-#X connect 6 0 4 2;
-#X connect 8 0 4 3;
-#X restore 116 136 pd voicingdet~;
-#N canvas 0 0 450 300 graph2 0;
-#X array voicing 300 float 3;
-#A 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1
-0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1
-1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0
-0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0
-0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1
-1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0;
-#X coords 0 2 299 -1 300 50 1;
-#X restore 254 223 graph;
-#N canvas 0 0 450 300 graph2 0;
-#X array amdf_pitch 300 float 3;
-#A 0 inf 52.6308 inf inf inf inf inf inf inf 61.6769 inf inf 79.9839
-81.0009 81.3891 80.4557 68.64 64.1892 inf 66.4698 50.6665 inf inf inf
-inf inf inf inf 50.6665 50.6665 50.6665 72.3208 80.0773 72.0166 68.0305
-50.6665 inf inf inf inf inf inf inf 50.6665 inf inf inf inf 50.6665
-inf inf 50.6665 50.6665 inf inf inf 50.6665 77.8829 50.6665 inf 61.011
-63.8438 60.475 54.3953 52.2985 inf 58.8633 51.3383 63.4215 71.0568
-62.7265 70.8633 66.6197 inf 50.6665 inf 55.7069 50.6665 50.6665 50.6665
-inf inf inf inf inf inf inf inf inf 70.4828 68.3603 inf 72.7731 50.6665
-inf 62.1356 inf inf 50.6665 inf inf inf inf inf 50.6665 50.6665 50.6665
-71.1217 75.6314 inf inf inf inf inf inf inf inf 50.6665 inf inf inf
-50.6665 inf inf inf inf inf 78.0763 55.3107 50.6665 inf inf inf 50.6665
-inf 50.6665 inf 50.6665 58.9598 76.4972 76.5862 inf 50.6665 50.6665
-inf inf inf 56.3603 50.6665 inf inf 50.6665 inf inf 50.6665 inf 73.5356
-70.5499 76.0095 inf 50.6665 inf inf 50.9078 inf inf inf inf inf inf
-inf inf inf 63.716 79.2014 76.856 inf inf 80.648 50.6665 50.6665 inf
-50.6665 inf inf inf inf 50.6665 inf inf inf inf inf inf 50.6665 inf
-inf inf inf inf inf inf inf 68.4159 inf 50.6665 81.3498 63.4605 81.0393
-inf inf inf inf inf inf 54.5446 60.9024 50.6665 inf 50.6665 inf inf
-inf inf inf inf inf inf inf 57.4776 63.716 55.3107 inf inf inf inf
-inf inf inf 50.6665 inf 50.6665 inf inf inf 50.6665 50.6665 50.6665
-50.6665 50.6665 inf inf inf inf inf inf inf 69.3891 64.6309 inf 50.6665
-inf inf inf 50.6665 inf inf inf 50.6665 inf inf inf 70.4077 80.6965
-79.0156 80.7342 78.1348 76.2328 78.4102 78.9541 inf inf 50.6665 inf
-inf 50.6665 inf 50.6665 inf 50.6665 inf 67.0773 56.6965 inf inf 50.6665
-50.6665 inf inf inf;
-#X coords 0 128 299 0 300 50 1;
-#X restore 253 159 graph;
-#N canvas 0 0 450 300 graph2 0;
-#X array fiddle_pitch 300 float 3;
-#A 0 42.759 42.5032 42.473 54.6862 54.2724 88.0229 88.184 69.9998 46.2469
-46.1609 36.5253 51.6493 56.2251 57.3686 56.4619 54.6808 0 0 54.0894
-93.1511 68.6615 52.7942 81.0395 66.0331 51.7957 0 68.5582 61.4413 52.6465
-71.037 58.4423 91.8432 92.069 40.0203 0 0 36.8793 58.0122 47.6222 46.0941
-91.8441 91.9697 55.7681 56.0344 55.7733 0 80.8823 81.7433 84.8554 57.472
-55.8532 0 115.991 115.665 77.5622 0 92.1532 95.0497 50.2136 50.1965
-49.5168 48.9704 0 110.374 80.4211 81.7533 120.147 96.2099 77.1305 105.556
-105.273 56.8668 57.1058 58.1518 58.2318 58.253 57.9551 57.9389 57.2086
-58.607 58.7608 58.5285 57.4834 56.6055 44.5336 43.9182 0 55.8955 55.8118
-56.3424 55.9227 0 58.3825 73.8235 73.4276 0 55.4181 54.9552 53.5732
-54.7674 0 70.8503 75.9806 82.2004 80.4199 79.4119 68.8766 77.895 104.482
-105.457 0 42.9514 44.0048 0 43.5638 42.7844 43.0441 43.5913 45.0992
-55.9686 55.7438 0 56.3861 0 118.578 119.062 91.5953 84.6976 82.4846
-116.179 80.4236 0 70.9708 52.6736 36.9783 34.1847 42.4984 73.9364 38.2027
-37.8997 74.0349 40.0425 42.1891 0 0 46.7969 0 42.5967 57.7423 55.0562
-55.214 42.5583 0 0 107.128 66.2461 0 70.8881 62.0142 93.8698 70.2977
-69.6271 65.6152 54.8576 82.2464 46.7154 57.0915 52.4897 0 58.2819 0
-0 48.8379 48.3517 86.5587 57.4985 41.8914 100.744 77.1489 88.6531 101.163
-78.1291 0 58.1589 57.7381 56.8702 54.7868 37.3185 55.048 44.2793 43.7839
-43.6901 44.3304 45.5636 46.8364 47.4256 46.8557 0 66.0394 0 0 37.3535
-53.0011 52.3631 50.8664 52.4876 53.4121 53.9883 42.9063 43.671 56.3301
-0 0 0 0 85.7498 92.9351 92.7796 51.8324 51.7119 50.8787 50.212 49.7494
-49.4586 48.6298 57.9294 44.3071 42.9568 42.047 39.9829 40.5865 40.5722
-42.9498 47.521 48.1418 38.3092 52.8257 53.4445 51.6414 50.1592 47.5694
-44.9923 43.6918 42.54 42.1952 42.3799 88.6103 92.9605 90.0537 82.4926
-0 80.5717 41.5044 53.2398 42.4218 38.5483 38.9727 45.9362 46.204 40.1976
-0 102.734 103.735 103.027 42.8539 44.4726 46.0255 46.6465 58.2084 40.4422
-0 70.0279 73.9915 61.9472 70.0716 81.9317 81.5628 94.0509 53.7554 66.0479
-0 46.3012 44.9257 46.9063 47.3438 65.9144 46.9733 104.83 88.2914 79.6901
-0 74.9976 0 71.7403 45.991 44.0293 44.2378 44.1106 43.711 43.0768;
-#X coords 0 128 300 0 300 50 1;
-#X restore 254 94 graph;
-#N canvas 0 0 450 300 voxwrite 0;
-#X obj 87 73 inlet;
-#X obj 87 103 t f b;
-#X obj 117 132 count 300;
-#X obj 87 174 tabwrite voicing;
-#X obj 146 88 r \$0-reset-counters;
-#X connect 0 0 1 0;
-#X connect 1 0 3 0;
-#X connect 1 1 2 0;
-#X connect 2 0 3 1;
-#X connect 4 0 2 1;
-#X restore 116 159 pd voxwrite;
-#N canvas 0 0 450 300 amdfwrite 0;
-#X obj 87 48 inlet;
-#X obj 87 103 t f b;
-#X obj 117 132 count 300;
-#X obj 146 88 r \$0-reset-counters;
-#X obj 87 174 tabwrite amdf_pitch;
-#X obj 87 75 ftom;
-#X connect 0 0 5 0;
-#X connect 1 0 4 0;
-#X connect 1 1 2 0;
-#X connect 2 0 4 1;
-#X connect 3 0 2 1;
-#X connect 5 0 1 0;
-#X restore 146 185 pd amdfwrite;
-#X obj 21 170 unpack f f;
-#N canvas 0 0 450 300 fidwrite 0;
-#X obj 87 73 inlet;
-#X obj 87 103 t f b;
-#X obj 117 132 count 300;
-#X obj 146 88 r \$0-reset-counters;
-#X obj 87 174 tabwrite fiddle_pitch;
-#X connect 0 0 1 0;
-#X connect 1 0 4 0;
-#X connect 1 1 2 0;
-#X connect 2 0 4 1;
-#X connect 3 0 2 1;
-#X restore 21 196 pd fidwrite;
-#X floatatom 173 105 3 3 50 2 peaks - -;
-#N canvas 0 0 450 300 amgatewrite 0;
-#X obj 161 28 inlet;
-#X obj 87 121 t f b;
-#X obj 117 150 count 300;
-#X obj 146 106 r \$0-reset-counters;
-#X obj 59 25 inlet;
-#X obj 59 45 swap;
-#X obj 59 83 spigot;
-#X msg 106 83 0;
-#X obj 87 174 tabwrite amdf_gated_pitch;
-#X connect 0 0 5 1;
-#X connect 1 0 8 0;
-#X connect 1 1 2 0;
-#X connect 2 0 8 1;
-#X connect 3 0 2 1;
-#X connect 4 0 5 0;
-#X connect 5 0 6 0;
-#X connect 5 1 6 1;
-#X connect 5 1 7 0;
-#X connect 6 0 1 0;
-#X connect 7 0 1 0;
-#X restore 107 298 pd amgatewrite;
-#N canvas 0 0 450 300 graph2 0;
-#X array amdf_gated_pitch 300 float 3;
-#A 0 0 0 0 280.892 0 152.595 0 0 0 0 0 0 0 745.652 0 715.135 0 867.135
-0 450 0 807.692 0 295.973 0 210.054 0 0 0 0 0 0 0 0 0 152.595 0 0 0
-0 0 0 0 613.636 0 907.12 0 869.577 0 842.675 0 439.925 0 755.137 0
-658.209 0 550.791 0 0 0 0 0 152.595 0 152.595 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190.909 0 152.595
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152.595 0 152.595 0 152.595 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 152.595 0 152.595 0 0 0 0 0 0 0 0 0 0 0 0 152.595
-0 0 0 0 0 152.595 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 152.595 0 0 0 0 0 0 0 0 0 0 0 0 0 152.595 0
-0 0 0 0 0 0 0 0 0 882 0 486.04 0 825.401 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152.595 0 152.595 0 0 0
-0 0 781.159 0 827.614 0 494.395 0 484.869 0 832.076 0 152.595 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0;
-#X coords 0 128 299 0 300 50 1;
-#X restore 254 288 graph;
-#X floatatom 163 260 5 0 0 0 - - -;
-#X floatatom 177 220 5 0 0 0 - - -;
-#X floatatom 6 237 5 0 0 0 - - -;
-#X obj 106 322 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 105 378 s \$0-reset_counters;
-#X obj 593 56 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
-;
-#X msg 594 99 \; pd dsp \$1;
-#X msg 104 352 0;
-#X obj 575 326 soundfiler;
-#X obj 575 277 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 575 292 savepanel;
-#X msg 575 309 write \$1 testinput;
-#X obj 16 136 fiddle~ 2048 1;
-#X obj 204 255 print;
-#X floatatom 210 105 3 2 50 2 win - -;
-#X obj 160 203 moses 20000;
-#X msg 218 223 0;
-#X obj 176 238 ftom;
-#X floatatom 36 265 5 0 0 0 - - -;
-#X obj 17 314 -;
-#X floatatom 16 339 5 0 0 0 - - -;
-#X connect 0 0 12 1;
-#X connect 2 0 12 0;
-#X connect 2 0 35 0;
-#X connect 2 1 8 0;
-#X connect 4 0 5 0;
-#X connect 5 0 3 0;
-#X connect 6 0 4 0;
-#X connect 7 0 2 0;
-#X connect 8 0 2 0;
-#X connect 9 0 8 1;
-#X connect 10 0 12 4;
-#X connect 12 0 16 0;
-#X connect 12 0 23 0;
-#X connect 12 1 38 0;
-#X connect 18 0 19 0;
-#X connect 18 0 25 0;
-#X connect 20 0 12 2;
-#X connect 23 0 21 0;
-#X connect 24 0 40 0;
-#X connect 25 0 42 0;
-#X connect 26 0 30 0;
-#X connect 28 0 29 0;
-#X connect 30 0 27 0;
-#X connect 32 0 33 0;
-#X connect 33 0 34 0;
-#X connect 34 0 31 0;
-#X connect 35 2 18 0;
-#X connect 37 0 12 3;
-#X connect 38 0 24 0;
-#X connect 38 0 21 1;
-#X connect 38 1 39 0;
-#X connect 39 0 21 1;
-#X connect 40 0 41 0;
-#X connect 41 0 42 1;
-#X connect 42 0 43 0;