From 03c3eedf6c0804cb5aacdc06c0c38ea7141e37de Mon Sep 17 00:00:00 2001 From: Guenter Geiger Date: Wed, 5 Mar 2003 21:14:24 +0000 Subject: small cleanup changes, multichannel for streamout started (how to do it in streamin ??) svn path=/trunk/externals/ggee/; revision=454 --- signal/streamin~.c | 6 +- signal/streamin~.pd | 88 ++++++++++--------- signal/streamout~.c | 68 +++++++++++---- signal/streamout~.pd | 235 ++++++++++++++++++++++++++++++++++++++++----------- 4 files changed, 287 insertions(+), 110 deletions(-) diff --git a/signal/streamin~.c b/signal/streamin~.c index 824543e..437de67 100755 --- a/signal/streamin~.c +++ b/signal/streamin~.c @@ -1,5 +1,5 @@ -/* Written by Guenter Geiger (C) 1999 */ +/* Written by Guenter Geiger (C) 1999 */ #include #include "stream.h" @@ -30,7 +30,7 @@ #ifdef unix #define NONBLOCKED #endif -#define INBUFSIZE 8192 + #define MAXFRAMES 128 #define MAXFRAMESIZE 256 #define AVERAGENUM 10 @@ -349,7 +349,7 @@ static void streamin_print(t_streamin* x) for (i=0;iaverage[i]; post("last size = %d, avg size = %d, %d underflows", - QUEUESIZE,avg,x->underflow); + QUEUESIZE,avg/AVERAGENUM,x->underflow); } diff --git a/signal/streamin~.pd b/signal/streamin~.pd index e248f27..f583714 100755 --- a/signal/streamin~.pd +++ b/signal/streamin~.pd @@ -1,41 +1,47 @@ -#N canvas 248 65 623 459 12; -#X obj 49 95 print~; -#X msg 49 67 bang; -#X obj 27 24 streamin~ 3000; -#X obj 132 210 streamout~; -#X msg 132 108 disconnect; -#X obj 372 72 osc~; -#X obj 372 47 sig~ 220; -#X floatatom 372 20 0 0 0; -#X msg 285 162 format float; -#X msg 284 184 format 16bit; -#X text 14 432 (C) 1999 Guenter Geiger; -#X msg 286 204 format 8bit; -#X floatatom 132 235 0 0 0; -#X text 21 295 The streamin~ object just takes the portnumber it is -listening to as it's argument.; -#X text 23 334 For help on the streamout object \, see the streamout.pd -patch.; -#X obj 27 159 dac~; -#X obj 355 115 *~ 0.1; -#X floatatom 418 88 0 0 0; -#X floatatom 149 159 0 0 0; -#X msg 285 252 connect gige 3001; -#X msg 132 86 connect localhost 3000; -#X connect 1 0 0 0; -#X connect 2 0 0 0; -#X connect 2 0 15 0; -#X connect 2 0 15 1; -#X connect 3 0 12 0; -#X connect 4 0 3 0; -#X connect 5 0 16 0; -#X connect 6 0 5 0; -#X connect 7 0 6 0; -#X connect 8 0 3 0; -#X connect 9 0 3 0; -#X connect 11 0 3 0; -#X connect 16 0 3 0; -#X connect 17 0 16 1; -#X connect 18 0 3 0; -#X connect 19 0 3 0; -#X connect 20 0 3 0; +#N canvas 248 65 623 459 12; +#X obj 45 133 print~; +#X msg 45 105 bang; +#X obj 23 62 streamin~ 3000; +#X obj 132 210 streamout~; +#X msg 132 108 disconnect; +#X obj 371 87 osc~; +#X obj 371 65 sig~ 220; +#X floatatom 371 42 0 0 0 0 - - -; +#X msg 285 162 format float; +#X msg 284 184 format 16bit; +#X text 14 432 (C) 1999 Guenter Geiger; +#X msg 286 204 format 8bit; +#X floatatom 132 235 0 0 0 0 - - -; +#X text 21 295 The streamin~ object just takes the portnumber it is +listening to as it's argument.; +#X text 23 334 For help on the streamout object \, see the streamout.pd +patch.; +#X obj 23 197 dac~; +#X obj 355 115 *~ 0.1; +#X floatatom 418 88 0 0 0 0 - - -; +#X floatatom 149 159 0 0 0 0 - - -; +#X msg 285 252 connect gige 3001; +#X msg 132 86 connect localhost 3000; +#X msg 23 8 reset 4; +#X msg 40 32 print; +#X text 96 8 reset \, using n frames (default = 128); +#X text 96 32 print queue info; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 2 0 15 0; +#X connect 2 0 15 1; +#X connect 3 0 12 0; +#X connect 4 0 3 0; +#X connect 5 0 16 0; +#X connect 6 0 5 0; +#X connect 7 0 6 0; +#X connect 8 0 3 0; +#X connect 9 0 3 0; +#X connect 11 0 3 0; +#X connect 16 0 3 0; +#X connect 17 0 16 1; +#X connect 18 0 3 0; +#X connect 19 0 3 0; +#X connect 20 0 3 0; +#X connect 21 0 2 0; +#X connect 22 0 2 0; diff --git a/signal/streamout~.c b/signal/streamout~.c index f691860..16150b7 100755 --- a/signal/streamout~.c +++ b/signal/streamout~.c @@ -72,11 +72,9 @@ typedef struct _streamout static void streamout_tempbuf(t_streamout *x,int size) { if (x->cbuf && x->tbufsize) freebytes(x->cbuf,x->tbufsize); - x->tbufsize=size; + x->tbufsize=size*sizeof(float)*x->x_tag.channels; if (!x->cbuf) - x->cbuf = getbytes(size*sizeof(short)); - else - x->cbuf = resizebytes(x->cbuf,x->nsamples*sizeof(short),size*sizeof(short)); + x->cbuf = getbytes(x->tbufsize); x->nsamples = size; } @@ -156,11 +154,19 @@ static void streamout_connect(t_streamout *x, t_symbol *hostname, t_floatarg fpo static t_int *streamout_perform(t_int *w) { t_streamout* x = (t_streamout*) (w[1]); - t_float *in = (t_float *)(w[2]); + t_float *in[4]; char* bp; - int n = (int)(w[3]); - int length = n*SF_SIZEOF(x->x_tag.format); + int n; + int length; int sent = 0; + int i; + int chans = x->x_tag.channels; + + + for (i=0;ix_tag.format)*chans; if (n != x->nsamples) streamout_tempbuf(x,n); @@ -168,20 +174,30 @@ static t_int *streamout_perform(t_int *w) x->x_tag.framesize=length; x->x_tag.count++; /* format the buffer */ - bp = (char*)in; + switch (x->x_tag.format) { + case SF_FLOAT: { + float* cibuf =(float*) x->cbuf; + bp = (char*) x->cbuf; + for (i=0;icbuf; bp = (char*) x->cbuf; - while (n--) - *cibuf++ = (short) 32767.0 * *in++; + for (i=0;icbuf; bp = (char*) x->cbuf; - while (n--) - *cbuf++ = (unsigned char)(128. * (1.0 + *in++)); + for (i=0;is_vec, sp[0]->s_n); + switch (x->x_tag.channels) { + case 1: + dsp_add(streamout_perform, 3, x,sp[0]->s_vec, sp[0]->s_n); + post("one channel mode"); + break; + case 2: + dsp_add(streamout_perform, 4, x,sp[0]->s_vec, sp[1]->s_vec,sp[0]->s_n); + post("two channel mode"); + break; + case 4: + dsp_add(streamout_perform, 6, x,sp[0]->s_vec, sp[1]->s_vec, + sp[2]->s_vec,sp[3]->s_vec,sp[0]->s_n); + post("four channel mode"); + break; + default: + post("streamout: %d channels not supported",x->x_tag.channels); + } } @@ -276,11 +308,13 @@ static void streamout_float(t_streamout* x,t_float arg) -static void *streamout_new(t_symbol* prot) +static void *streamout_new(t_symbol* prot,float channels) { t_streamout *x = (t_streamout *)pd_new(streamout_class); outlet_new(&x->x_obj, &s_float); + if (channels == 0) channels = 1; + x->hostname = gensym("localhost"); x->portno = 3000; x->x_fd = -1; @@ -291,7 +325,7 @@ static void *streamout_new(t_symbol* prot) x->x_protocol = SOCK_DGRAM; x->x_tag.format = SF_FLOAT; - x->x_tag.channels = 1; + x->x_tag.channels = channels; x->x_tag.version = 1; x->cbuf = NULL; streamout_tempbuf(x,64); @@ -310,7 +344,7 @@ static void streamout_free(t_streamout* x) void streamout_tilde_setup(void) { streamout_class = class_new(gensym("streamout~"), (t_newmethod) streamout_new, (t_method) streamout_free, - sizeof(t_streamout), 0, A_DEFSYM, 0); + sizeof(t_streamout), 0, A_DEFSYM,A_DEFFLOAT, 0); class_addmethod(streamout_class, (t_method) streamout_connect, gensym("connect"), A_SYMBOL, A_DEFFLOAT, 0); class_addmethod(streamout_class, (t_method) streamout_disconnect, diff --git a/signal/streamout~.pd b/signal/streamout~.pd index 56b2ece..ff1868c 100755 --- a/signal/streamout~.pd +++ b/signal/streamout~.pd @@ -1,49 +1,186 @@ -#N canvas 45 154 820 483 12; -#X floatatom 227 194 0 0 0; -#X msg 46 32 disconnect; -#X obj 368 72 osc~; -#X floatatom 368 20 0 0 0; -#X obj 368 44 sig~ 220; -#X text 13 239 The format message sets the transmission format; -#X text 11 419 Hopefully we will sometimes have a version where we can compress it for transmission over the "real" net.; -#X text 14 462 (C) 1999 Guenter Geiger; -#X obj 455 21 streamin~ 3001; -#X obj 448 78 dac~; -#X msg 156 68 connect tritonus 3000; -#X msg 20 113 format float; -#X msg 20 144 format 16bit; -#X text 13 256 format float: send float numbers; -#X text 12 275 format 16bit: send 16 bit integers; -#X msg 20 176 format 8bit; -#X text 380 246 host:; -#X text 13 219 format:; -#X obj 227 162 streamout~ localhost 3000; -#X text 379 193 connect:; -#X text 378 210 connect sets the host and portnumber and immediatly tries to connect .; -#X text 380 263 Set the host name and connect to the host \, if a connection was active.; -#X msg 250 100 1; -#X msg 284 100 0; -#X text 379 298 disconnect (0); -#X text 378 315 disconnect and 0 disconnect the object; -#X text 379 335 1:; -#X text 376 352 if the number 1 is sent to streamout \, the object connects to the stored host and portnumber. Default is localhost \, port number 3000; -#X obj 366 107 *~ 0.01; -#X msg 179 12 connect gige 15001; -#X msg 156 37 connect localhost 3001; -#X text 12 292 format 8bit: send 8 bit integers; -#X connect 1 0 18 0; -#X connect 2 0 28 0; -#X connect 3 0 4 0; -#X connect 4 0 2 0; -#X connect 8 0 9 0; -#X connect 8 0 9 1; -#X connect 10 0 18 0; -#X connect 11 0 18 0; -#X connect 12 0 18 0; -#X connect 15 0 18 0; -#X connect 18 0 0 0; -#X connect 22 0 18 0; -#X connect 23 0 18 0; -#X connect 28 0 18 0; -#X connect 29 0 18 0; -#X connect 30 0 18 0; +#N canvas 45 154 991 483 12; +#X floatatom 227 194 0 0 0 0 - - -; +#X msg 46 32 disconnect; +#X obj 369 71 osc~; +#X floatatom 368 20 0 0 0 0 - - -; +#X obj 368 44 sig~ 220; +#X text 9 224 The format message sets the transmission format; +#X text 14 462 (C) 1999 Guenter Geiger; +#X obj 455 21 streamin~ 3001; +#X obj 448 78 dac~; +#X msg 156 68 connect tritonus 3000; +#X msg 20 113 format float; +#X msg 20 144 format 16bit; +#X text 9 241 format float: send float numbers; +#X text 8 260 format 16bit: send 16 bit integers; +#X msg 20 176 format 8bit; +#X text 445 259 host:; +#X text 9 206 format:; +#X text 444 206 connect:; +#X text 443 223 connect sets the host and portnumber and immediatly +tries to connect .; +#X text 445 276 Set the host name and connect to the host \, if a connection +was active.; +#X msg 250 100 1; +#X msg 284 100 0; +#X text 444 311 disconnect (0); +#X text 443 328 disconnect and 0 disconnect the object; +#X text 444 348 1:; +#X text 441 365 if the number 1 is sent to streamout \, the object +connects to the stored host and portnumber. Default is localhost \, +port number 3000; +#X msg 179 12 connect gige 15001; +#X msg 156 37 connect localhost 3001; +#X text 8 277 format 8bit: send 8 bit integers; +#X obj 227 162 streamout~; +#N canvas 0 0 450 300 graph1 0; +#X array array1 900 float 1; +#A 0 0.0890625 0.0875 0.0859375 0.084375 0.0828125 0.08125 0.0796875 +0.0773438 0.0757812 0.0734375 0.0710938 0.0695313 0.0671875 0.0648438 +0.0625 0.0601563 0.0578125 0.0546875 0.0523438 0.05 0.046875 0.0445313 +0.0414063 0.0390625 0.0359375 0.0328125 0.0296875 0.0273438 0.0242188 +0.0210938 0.0179687 0.0148437 0.0117188 0.00859375 0.00546875 0.00234375 +-0.00078125 -0.00390625 -0.00703125 -0.0101563 -0.0132813 -0.0164063 +-0.01875 -0.021875 -0.025 -0.028125 -0.03125 -0.034375 -0.0367188 -0.0398437 +-0.0429688 -0.0453125 -0.0484375 -0.0507812 -0.0539063 -0.05625 -0.0585938 +-0.0617188 -0.0640625 -0.0664062 -0.06875 -0.0710938 -0.0726563 -0.075 +-0.0773438 -0.0789063 -0.08125 -0.0828125 -0.084375 -0.0859375 -0.0875 +-0.0890625 -0.090625 -0.0921875 -0.0929688 -0.0945313 -0.0953125 -0.0960938 +-0.096875 -0.0976562 -0.0984375 -0.0992187 -0.0992187 -0.1 -0.1 -0.1 +-0.1 -0.1 -0.1 -0.1 -0.1 -0.0992187 -0.0984375 -0.0984375 -0.0976562 +-0.096875 -0.0960938 -0.0945313 -0.09375 -0.0929688 -0.0914062 -0.0898438 +-0.0882813 -0.0875 -0.0851563 -0.0835937 -0.0820312 -0.0804688 -0.078125 +-0.0765625 -0.0742188 -0.071875 -0.0703125 -0.0679687 -0.065625 -0.0632813 +-0.0601563 -0.0578125 -0.0554687 -0.0523438 -0.05 -0.0476562 -0.0445313 +-0.0414063 -0.0390625 -0.0359375 -0.0328125 -0.0296875 -0.0273438 -0.0242188 +-0.0210938 -0.0179687 -0.0148437 -0.0117188 -0.00859375 -0.00546875 +-0.00234375 0.00078125 0.00390625 0.00703125 0.0101563 0.0132813 0.0164063 +0.01875 0.021875 0.025 0.028125 0.03125 0.034375 0.0367188 0.0398437 +0.0429688 0.0453125 0.0484375 0.0507812 0.053125 0.05625 0.0585938 +0.0609375 0.0632813 0.065625 0.0679687 0.0703125 0.071875 0.0742188 +0.0765625 0.078125 0.0796875 0.0820312 0.0835937 0.0851563 0.0867188 +0.0882813 0.0890625 0.090625 0.0914062 0.0929688 0.09375 0.0945313 +0.0953125 0.0960938 0.096875 0.096875 0.0976562 0.0976562 0.0976562 +0.0976562 0.0976562 0.0976562 0.0976562 0.0976562 0.096875 0.096875 +0.0960938 0.0953125 0.0945313 0.09375 0.0929688 0.0914062 0.090625 +0.0890625 0.0882813 0.0867188 0.0851563 0.0835937 0.0820312 0.0804688 +0.078125 0.0765625 0.0742188 0.0726563 0.0703125 0.0679687 0.065625 +0.0632813 0.0609375 0.0585938 0.05625 0.0539063 0.0507812 0.0484375 +0.0453125 0.0429688 0.0398437 0.0375 0.034375 0.03125 0.028125 0.0257812 +0.0226563 0.0195312 0.0164063 0.0132813 0.0101563 0.00703125 0.00390625 +0.00078125 -0.00234375 -0.00546875 -0.00859375 -0.0117188 -0.0148437 +-0.0179687 -0.0210938 -0.0234375 -0.0265625 -0.0296875 -0.0328125 -0.0359375 +-0.0382813 -0.0414063 -0.0445313 -0.046875 -0.05 -0.0523438 -0.0554687 +-0.0578125 -0.0601563 -0.0625 -0.0648438 -0.0671875 -0.0695313 -0.071875 +-0.0742188 -0.0765625 -0.078125 -0.0804688 -0.0820312 -0.0835937 -0.0851563 +-0.0867188 -0.0882813 -0.0898438 -0.0914062 -0.0921875 -0.09375 -0.0945313 +-0.0960938 -0.096875 -0.0976562 -0.0984375 -0.0984375 -0.0992187 -0.1 +-0.1 -0.1 -0.1 -0.1 -0.1 -0.1 -0.1 -0.0992187 -0.0992187 -0.0984375 +-0.0976562 -0.096875 -0.0960938 -0.0953125 -0.0945313 -0.0929688 -0.0921875 +-0.090625 -0.0890625 -0.0875 -0.0859375 -0.084375 -0.0828125 -0.08125 +-0.0789063 -0.0773438 -0.075 -0.0734375 -0.0710938 -0.06875 -0.0664062 +-0.0640625 -0.0617188 -0.059375 -0.05625 -0.0539063 -0.0515625 -0.0484375 +-0.0460938 -0.0429688 -0.0398437 -0.0375 -0.034375 -0.03125 -0.028125 +-0.0257812 -0.0226563 -0.0195312 -0.0164063 -0.0132813 -0.0101563 -0.00703125 +-0.00390625 -0.00078125 0.00234375 0.00546875 0.00859375 0.0117188 +0.0148437 0.0179687 0.0210938 0.0234375 0.0265625 0.0296875 0.0328125 +0.0359375 0.0382813 0.0414063 0.04375 0.046875 0.0492188 0.0523438 +0.0546875 0.0570313 0.0601563 0.0625 0.0648438 0.0671875 0.06875 0.0710938 +0.0734375 0.075 0.0773438 0.0789063 0.08125 0.0828125 0.084375 0.0859375 +0.0875 0.0882813 0.0898438 0.0914062 0.0921875 0.0929688 0.09375 0.0953125 +0.0953125 0.0960938 0.096875 0.0976562 0.0976562 0.0976562 0.0976562 +0.0976562 0.0976562 0.0976562 0.0976562 0.096875 0.096875 0.0960938 +0.0953125 0.0953125 0.09375 0.0929688 0.0921875 0.0914062 0.0898438 +0.0882813 0.0875 0.0859375 0.084375 0.0828125 0.08125 0.0789063 0.0773438 +0.075 0.0734375 0.0710938 0.06875 0.0671875 0.0648438 0.0625 0.0601563 +0.0570313 0.0546875 0.0523438 0.0492188 0.046875 0.04375 0.0414063 +0.0382813 0.0359375 0.0328125 0.0296875 0.0265625 0.0234375 0.0210938 +0.0179687 0.0148437 0.0117188 0.00859375 0.00546875 0.00234375 -0.00078125 +-0.00390625 -0.00703125 -0.0101563 -0.0132813 -0.0164063 -0.0195312 +-0.0226563 -0.0257812 -0.028125 -0.03125 -0.034375 -0.0375 -0.0398437 +-0.0429688 -0.0460938 -0.0484375 -0.0515625 -0.0539063 -0.05625 -0.059375 +-0.0617188 -0.0640625 -0.0664062 -0.06875 -0.0710938 -0.0734375 -0.075 +-0.0773438 -0.0789063 -0.08125 -0.0828125 -0.084375 -0.0859375 -0.0875 +-0.0890625 -0.090625 -0.0921875 -0.0929688 -0.0945313 -0.0953125 -0.0960938 +-0.096875 -0.0976562 -0.0984375 -0.0992187 -0.0992187 -0.1 -0.1 -0.1 +-0.1 -0.1 -0.1 -0.1 -0.1 -0.0992187 -0.0984375 -0.0984375 -0.0976562 +-0.096875 -0.0960938 -0.0945313 -0.09375 -0.0921875 -0.0914062 -0.0898438 +-0.0882813 -0.0867188 -0.0851563 -0.0835937 -0.0820312 -0.0796875 -0.078125 +-0.0757812 -0.0742188 -0.071875 -0.0695313 -0.0671875 -0.0648438 -0.0625 +-0.0601563 -0.0578125 -0.0554687 -0.0523438 -0.05 -0.046875 -0.0445313 +-0.0414063 -0.0382813 -0.0359375 -0.0328125 -0.0296875 -0.0265625 -0.0234375 +-0.0210938 -0.0179687 -0.0148437 -0.0117188 -0.00859375 -0.00546875 +-0.00234375 0.00078125 0.00390625 0.00703125 0.0101563 0.0132813 0.0164063 +0.0195312 0.0226563 0.0257812 0.028125 0.03125 0.034375 0.0375 0.0398437 +0.0429688 0.0453125 0.0484375 0.0507812 0.0539063 0.05625 0.0585938 +0.0609375 0.0632813 0.065625 0.0679687 0.0703125 0.0726563 0.0742188 +0.0765625 0.078125 0.0804688 0.0820312 0.0835937 0.0851563 0.0867188 +0.0882813 0.0890625 0.090625 0.0914062 0.0929688 0.09375 0.0945313 +0.0953125 0.0960938 0.096875 0.096875 0.0976562 0.0976562 0.0976562 +0.0976562 0.0976562 0.0976562 0.0976562 0.0976562 0.096875 0.096875 +0.0960938 0.0953125 0.0945313 0.09375 0.0929688 0.0914062 0.090625 +0.0890625 0.0882813 0.0867188 0.0851563 0.0835937 0.0820312 0.0796875 +0.078125 0.0765625 0.0742188 0.071875 0.0703125 0.0679687 0.065625 +0.0632813 0.0609375 0.0585938 0.05625 0.053125 0.0507812 0.0484375 +0.0453125 0.0421875 0.0398437 0.0367188 0.034375 0.03125 0.028125 0.025 +0.021875 0.01875 0.0164063 0.0132813 0.0101563 0.00703125 0.00390625 +0.00078125 -0.00234375 -0.00546875 -0.00859375 -0.0117188 -0.0148437 +-0.0179687 -0.0210938 -0.0242188 -0.0273438 -0.0304688 -0.0328125 -0.0359375 +-0.0390625 -0.0414063 -0.0445313 -0.0476562 -0.05 -0.053125 -0.0554687 +-0.0578125 -0.0601563 -0.0632813 -0.065625 -0.0679687 -0.0703125 -0.071875 +-0.0742188 -0.0765625 -0.078125 -0.0804688 -0.0820312 -0.0835937 -0.0859375 +-0.0875 -0.0882813 -0.0898438 -0.0914062 -0.0929688 -0.09375 -0.0945313 +-0.0960938 -0.096875 -0.0976562 -0.0984375 -0.0984375 -0.0992187 -0.1 +-0.1 -0.1 -0.1 -0.1 -0.1 -0.1 -0.1 -0.0992187 -0.0992187 -0.0984375 +-0.0976562 -0.096875 -0.0960938 -0.0953125 -0.0945313 -0.0929688 -0.0921875 +-0.090625 -0.0890625 -0.0875 -0.0859375 -0.084375 -0.0828125 -0.08125 +-0.0789063 -0.0773438 -0.075 -0.0726563 -0.0710938 -0.06875 -0.0664062 +-0.0640625 -0.0617188 -0.0585938 -0.05625 -0.0539063 -0.0507812 -0.0484375 +-0.0453125 -0.0429688 -0.0398437 -0.0367188 -0.034375 -0.03125 -0.028125 +-0.025 -0.021875 -0.01875 -0.015625 -0.0132813 -0.0101563 -0.00703125 +-0.00390625 -0.00078125 0.00234375 0.00546875 0.00859375 0.0117188 +0.0148437 0.0179687 0.0210938 0.0242188 0.0273438 0.0296875 0.0328125 +0.0359375 0.0390625 0.0414063 0.0445313 0.046875 0.05 0.0523438 0.0546875 +0.0578125 0.0601563 0.0625 0.0648438 0.0671875 0.0695313 0.0710938 +0.0734375 0.0757812 0.0773438 0.0796875 0.08125 0.0828125 0.084375 +0.0859375 0.0875 0.0890625 0.0898438 0.0914062 0.0921875 0.0929688 +0.0945313 0.0953125 0.0960938 0.0960938 0.096875 0.0976562 0.0976562 +0.0976562 0.0976562 0.0976562 0.0976562 0.0976562 0.0976562 0.096875 +0.096875 0.0960938 0.0953125 0.0945313 0.09375 0.0929688 0.0921875 +0.090625 0.0898438 0.0882813 0.0875 0.0859375 0.084375 0.0828125 0.0804688 +0.0789063 0.0773438 0.075 0.0734375 0.0710938 0.06875 0.0664062 0.0640625 +0.0617188 0.059375 0.0570313 0.0546875 0.0515625 0.0492188 0.046875 +0.04375 0.0414063 0.0382813 0.0351562 0.0320312 0.0296875 0.0265625 +0.0234375 0.0203125 0.0171875 0.0140625 0.0109375 0.0078125 0.00546875 +0.00234375 -0.00078125 -0.00390625 -0.00703125 -0.0101563 -0.0132813 +-0.0164063 -0.0195312 -0.0226563 -0.0257812 -0.0289063 -0.0320312 -0.034375 +-0.0375 -0.040625 -0.0429688 -0.0460938 -0.0492188 -0.0515625 -0.0539063 +-0.0570313 -0.059375 -0.0617188 -0.0640625 -0.0664062 -0.06875 -0.0710938 +-0.0734375 -0.0757812 -0.0773438 -0.0796875 -0.08125 -0.0828125 -0.0851563 +-0.0867188 -0.0882813 -0.0890625 -0.090625 -0.0921875 -0.0929688 -0.0945313 +-0.0953125 -0.0960938 -0.096875 -0.0976562 -0.0984375 -0.0992187 -0.0992187 +-0.1 -0.1 -0.1 -0.1 -0.1 -0.1 -0.1 -0.1 -0.0992187 -0.0984375 -0.0984375 +-0.0976562 -0.096875 -0.0953125 -0.0945313; +#X coords 0 1 899 -1 200 140 1; +#X restore 689 52 graph; +#X obj 460 140 tabwrite~ array1; +#X msg 541 79 bang; +#X obj 458 47 *~ 0.1; +#X connect 1 0 29 0; +#X connect 2 0 29 0; +#X connect 3 0 4 0; +#X connect 4 0 2 0; +#X connect 7 0 33 0; +#X connect 9 0 29 0; +#X connect 10 0 29 0; +#X connect 11 0 29 0; +#X connect 14 0 29 0; +#X connect 20 0 29 0; +#X connect 21 0 29 0; +#X connect 26 0 29 0; +#X connect 27 0 29 0; +#X connect 29 0 0 0; +#X connect 32 0 31 0; +#X connect 33 0 8 0; +#X connect 33 0 8 1; +#X connect 33 0 31 0; -- cgit v1.2.1