diff options
author | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2010-08-19 05:04:28 +0000 |
---|---|---|
committer | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2010-08-19 05:04:28 +0000 |
commit | 79096fd626b946efd6947fa94ab15d30bf003ba0 (patch) | |
tree | 9a10305d0ade28bb3f5139c37ab8fa76f4e603d4 /voicing_detector~ | |
parent | 633eaa4b2350c00ddc1b338c357096a441944784 (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.pd | 43 | ||||
-rw-r--r-- | voicing_detector~/makefile | 106 | ||||
-rw-r--r-- | voicing_detector~/voicing_detector~-help.pd | 85 | ||||
-rw-r--r-- | voicing_detector~/voicing_detector~.c | 132 | ||||
-rw-r--r-- | voicing_detector~/voicing_detector~test3-help.pd | 275 |
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; |