No me queda muy clara la idea de "tener varias formas de onda en cadena"
Lo que quieres es crear formas de onda derivadas de unos fragmentos base? Como 
una onda con la mitad de su ciclo senoidal y la otra mitad diente de sierra? O 
mejor aun: mitad dibujada por vos y la otra mitad cuadrada? 
Si esta es la idea hay que pensar muy bien el tamaño del array, para que la 
onda resultante esté en una frecuencia conocida y por lo tanto ajustable a tus 
necesidades. Se me ocurre un slider que te permita interpolar entre una forma 
de onda y otra, para tener bastantes puntos medios que sean interesantes. Mucho 
mas si las ondas son dibujadas, proque sería menos predecible el resultado.
La otra idea es usar como lector del array [tabread4~] ( complementario a 
tabread~) para que se pueda hacer una lectura a diferentes velocidades de la 
onda y sacarle mas provecho al patch.
Les mando un patch veloz que interpola entre 4 espectros y realiza una ifft 
entre el espectro resultante de la interpolación de los 4 espectros "base". 
Este estaba en proceso para leo y pues aprovecho para mandarlo. :)
Si alguno lo abre pues me cuenta que tal.
Lo interesante es que se puede dibujar el espectro de cada uno de los 4 arrays 
base, para que la exploración de ese "espacio sonoro" no sea tan aburrida.

saludos
D

From: [email protected]
To: [email protected]
Date: Mon, 4 May 2009 17:40:00 -0500
Subject: Re: [Expyezp] multipistas en pd


Se puede empezar por acá:

http://lists.puredata.info/pipermail/pd-list/2007-09/053111.html

y seguir acá:
http://lists.puredata.info/pipermail/pd-announce/2002-06/000010.html

saludo,

lpa.

----- Original Message -----
From: Correa Diego <[email protected]>
Date: Monday, May 4, 2009 5:11 pm
Subject: Re: [Expyezp] multipistas en pd
To: [email protected], [email protected]

> si.
> saludos,
> 
> El 4 de mayo de 2009 17:48, Juan I Reyes <[email protected]> escribió:
> 
> 
> 
> Hola,
> 
> 
> 
> Paso información que solicita mi amigo Jorge Castro desde Cordoba:
> 
> 
> 
> ¿ Existe la posibilidad de un multi-pistas en Pd. Más aún, la
> 
> posibilidad de dibujar la forma de onda con el multipistas ?.
> 
> 
> 
> La idea sería tener varias formas de onda en cadena para luego procesar
> 
> la señal en tiempo real con filtros resonantes. Los filtros estarían
> 
> conectados a un controlador Nocturn de Novation.
> 
> 
> 
> 
> 
>  Mil gracias,
> 
> 
> 
>  --* Juan
> 
> 
> 
> _______________________________________________
> 
> ____ _  _ ___  _   _ ____ ___  ___
> 
> |___  \/  |__]  \_/  |___   /  |__]
> 
> |___ _/\_ |      |   |___  /__ |
> 
> 
> 
> Expyezp mailing list
> 
> [email protected]
> 
> http://lists.slow.tk/listinfo.cgi/expyezp-slow.tk
> 
> 
> 
>> _______________________________________________
> ____ _  _ ___  _   _ ____ ___  ___
> |___  \/  |__]  \_/  |___   
> /  |__]
> |___ _/\_ |      |   
> |___  /__ |
> 
> Expyezp mailing list
> [email protected]
> http://lists.slow.tk/listinfo.cgi/expyezp-slow.tk
_________________________________________________________________
Drag n’ drop—Get easy photo sharing with Windows Live™ Photos.

http://www.microsoft.com/windows/windowslive/products/photos.aspx
#N canvas 0 21 1280 956 10;
#N canvas 0 0 450 300 (subpatch) 0;
#X array array1 64 float 3;
#A 0 0 -0.00714286 0.0814296 0.0814296 0.0814296 0.15143 0.0214293
0.0214293 0.0214293 0.00714356 0.00714356 0.00714356 -0.00285644 -0.00285644
-0.00285644 -0.00285644 -0.00285644 0.00714356 -0.00714286 -6.98492e-009
-6.98492e-009 -6.98492e-009 -0.00714286 -0.00714286 -0.00714286 -0.00714286
-0.00714286 -0.00714286 -0.00714286 -0.00714285 -0.00714285 -0.00714285
-0.00714285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0;
#X coords 0 1 63 0 100 100 1;
#X restore 107 88 graph;
#N canvas 0 0 450 300 (subpatch) 0;
#X array array2 64 float 3;
#A 0 -2.98955e-007 -2.98955e-007 -2.98955e-007 -3.81842e-007 -3.81842e-007
0.139999 0.0199992 -7.58097e-007 -7.58097e-007 -7.58097e-007 -7.58097e-007
-7.58097e-007 -7.58097e-007 -7.58097e-007 -7.58097e-007 -7.58097e-007
-7.58097e-007 -7.58097e-007 -7.58097e-007 -7.58097e-007 -7.58097e-007
-7.58097e-007 -7.58097e-007 -7.58097e-007 0.119999 0.109999 0.0999992
-7.58097e-007 -7.58097e-007 -7.58097e-007 -7.58097e-007 -7.58097e-007
-7.58097e-007 -7.58097e-007 -7.58097e-007 -7.58097e-007 -7.58097e-007
-7.58097e-007 -7.58097e-007 -7.58097e-007 -7.58097e-007 -7.58097e-007
-7.58097e-007 -7.58097e-007 -7.58097e-007 -7.58097e-007 -7.58097e-007
-7.58097e-007 -7.58097e-007 -7.58097e-007 -7.58097e-007 -7.58097e-007
-7.58097e-007 -7.58097e-007 -7.58097e-007 -7.58097e-007 -7.58097e-007
-7.58097e-007 -7.58097e-007 -7.58097e-007 -7.58097e-007 -7.58097e-007
-7.58097e-007 -0.00714316;
#X coords 0 1 63 0 100 100 1;
#X restore 307 88 graph;
#N canvas 0 0 450 300 (subpatch) 0;
#X array array3 64 float 3;
#A 0 0.010629 0.00748611 0.0216577 0.0684577 0.0684577 0.182557 0.0581573
0.0441573 0.0434573 0.0367716 0.0367716 0.0360716 -0.00852837 -0.00852837
0.0100718 0.019372 0.0472723 0.0509723 0.0446862 0.0478291 0.0478291
0.0478291 0.0446862 0.0446862 0.101686 0.0581856 0.0518856 -0.0111144
-0.0111144 -0.0111144 -0.0111144 -0.0111144 -0.0111144 -0.00797153
-0.00797153 -0.00797153 -0.00797153 -0.00797153 -0.00797153 -0.00797153
-0.00797153 -0.00797153 -0.00797153 -0.00797153 -0.00797153 -0.00797153
0.00132857 0.0106287 0.0291287 0.0106287 0.0106287 0.0106287 0.0106287
0.0106287 0.0106287 0.0106287 0.0106287 0.0106287 0.0106287 0.0106287
0.0106287 0.0106287 0.0106287 -0.00450019;
#X coords 0 1 63 0 300 100 1;
#X restore 107 314 graph;
#X obj 111 525 tabreceive~ array1;
#X obj 184 548 tabreceive~ array2;
#X obj 110 609 expr~ $v1+(($v2-$v1)*$v3);
#X obj 303 593 sig~;
#X obj 264 642 tabsend~ array3;
#N canvas 0 48 1251 690 fft-analysis 0;
#X obj 15 164 *~;
#X obj 14 99 inlet~;
#X obj 15 218 rfft~;
#X obj 14 353 *~;
#X obj 56 353 *~;
#X text 85 88 The inlet~ now re-uses 3/4 of the previous block \, along
with the 128 new samples.;
#X text 221 141 window function as before.;
#X obj 77 225 *~;
#X obj 16 506 *~;
#X obj 37 481 tabreceive~ \$0-hann;
#X obj 77 283 /~ 768;
#X text 98 301 divide by 3N/2 (factor of N because rfft and rifft aren't
normalized \, and 3/2 is the gain of overlap-4 reconstruction when
Hann window function is applied twice.);
#X text 120 216 Just to show we're doing something \, we multiply each
channel by a gain controlled by an array in the main window. The control
is quartic-scaled for easy editing.;
#X text 99 336 Multiply the (complex-valued) spectrum amplitudes by
the (real-valued) gain-and-normalization-factor;
#X obj 15 399 rifft~;
#X obj 16 566 outlet~;
#X text 88 499 Multiply by the Hann window function again \, necessary
because the operation we performed might result in a signal that doesn't
go smoothly to zero at both ends.;
#X text 89 566 This repackages the output into 64-sample chunks for
the parent window. Since we're operating with an overlap \, the outlet~
object performs an overlapped sum of the blocks computed in this window.
;
#X text 129 8 block~ object specifies vector size of 512 and overlap
four. This window now computes blocks of 512 samples at intervals of
128 samples computed on the parent patch.;
#X obj 36 140 tabreceive~ \$0-hann;
#X obj 76 196 tabreceive~ array3;
#X obj 15 8 block~ 1024 4;
#X text 95 366 Real-valued inverse Fourier transform. This uses only
the first N/@ points of its inputs \, supplying the rest by symmerty
(so it's OK that rfft~ obly puts out those N/2 points.) There's only
one outlet because the output is real-valued.;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 2 0 3 0;
#X connect 2 1 4 0;
#X connect 3 0 14 0;
#X connect 4 0 14 1;
#X connect 8 0 15 0;
#X connect 9 0 8 1;
#X connect 10 0 3 1;
#X connect 10 0 4 1;
#X connect 14 0 8 0;
#X connect 19 0 0 1;
#X connect 20 0 7 0;
#X connect 20 0 7 1;
#X connect 20 0 10 0;
#X restore 744 69 pd fft-analysis;
#N canvas 35 66 592 433 Hann-window 0;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-hann 1024 float 0;
#X coords 0 1 1023 0 200 120 1;
#X restore 262 73 graph;
#X msg 171 263 0;
#X obj 65 312 osc~;
#X obj 65 264 samplerate~;
#X obj 65 335 *~ -0.5;
#X obj 65 358 +~ 0.5;
#X obj 57 383 tabwrite~ \$0-hann;
#X obj 57 241 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 113 310 period 512;
#X text 90 215 recalculate Hann;
#X text 125 230 window table;
#X obj 57 146 loadbang;
#X msg 79 179 \; pd dsp 1;
#X text 40 27 The Hann window is now recomputed on 'loadbang' to make
the file smaller (it doesn't have to be saved with the array.);
#X obj 198 313 osc~;
#X obj 198 336 *~ -0.5;
#X obj 198 359 +~ 0.5;
#X text 245 311 period 64;
#X obj 196 291 / 64;
#X obj 190 384 tabwrite~ \$1-hann;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$1-hann 64 float 0;
#X coords 0 1 63 0 200 140 1;
#X restore 344 229 graph;
#X obj 73 290 / 1024;
#X connect 1 0 2 1;
#X connect 1 0 14 1;
#X connect 2 0 4 0;
#X connect 3 0 18 0;
#X connect 3 0 21 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 7 0 3 0;
#X connect 7 0 1 0;
#X connect 7 0 6 0;
#X connect 7 0 19 0;
#X connect 11 0 7 0;
#X connect 11 0 12 0;
#X connect 14 0 15 0;
#X connect 15 0 16 0;
#X connect 16 0 19 0;
#X connect 18 0 14 0;
#X connect 21 0 2 0;
#X restore 1085 143 pd Hann-window;
#X obj 740 259 dac~;
#X obj 918 -1 vsl 15 128 0 1 0 1 empty empty empty 0 -9 0 10 -262144
-1 -1 8900 1;
#X obj 743 219 *~;
#X obj 885 -31 vsl 15 128 20 20000 0 1 empty empty empty 0 -9 0 10
-262144 -1 -1 12700 1;
#X obj 744 135 moog~;
#X obj 207 88 grid grid1 100 0 199 100 0 100 0 1 1 10 10 239 181;
#X obj 207 194 s gridx;
#X obj 304 554 r gridx;
#X obj 304 574 / 100;
#N canvas 0 0 450 300 (subpatch) 0;
#X array array5 64 float 3;
#A 0 0.0114292 0.0114292 -0.00857103 -0.00857103 -0.00857103 -0.00857103
-0.00857103 -0.00857103 -0.00857103 -0.00857103 -0.00857103 -0.00857103
-0.00857103 -0.00857103 0.0114292 0.0214293 0.0514297 0.0514297 0.0514297
0.0514297 0.0514297 0.0514297 0.0514297 0.0514297 0.0314294 -0.00857103
-0.00857103 -0.00857103 -0.00857103 -0.00857103 -0.00857103 -0.00857103
-0.00857103 -0.00857103 -0.00857103 -0.00857103 -0.00857103 -0.00857103
-0.00857103 -0.00857103 -0.00857103 -0.00857103 -0.00857103 -0.00857103
-0.00857103 -0.00857103 0.00142909 0.0114292 0.0114292 0.0114292 0.0114292
0.0114292 0.0114292 0.0114292 0.0114292 0.0114292 0.0114292 0.0114292
0.0114292 0.0114292 0.0114292 0.0114292 0.0114292 0;
#X coords 0 1 63 0 100 100 1;
#X restore 207 188 graph;
#N canvas 0 0 450 300 (subpatch) 0;
#X array array4 64 float 3;
#A 0 0 -0.00714286 -0.00714286 0.661429 0.661429 0.661429 0.651429
0.631429 0.621429 0.601429 0.601429 0.591429 0.00714356 0.00714356
0.00714356 0.00714356 0.00714356 0.00714356 -0.00714286 -6.98492e-009
-6.98492e-009 -6.98492e-009 -0.00714286 -0.00714286 -0.00714286 -0.00714286
-0.00714286 -0.00714286 -0.00714286 -0.00714285 -0.00714285 -0.00714285
-0.00714285 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;
#X coords 0 1 63 0 100 100 1;
#X restore 207 -13 graph;
#X obj 384 609 expr~ $v1+(($v2-$v1)*$v3);
#X obj 569 592 sig~;
#X obj 570 573 / 100;
#X obj 458 592 tabreceive~ array4;
#X obj 364 235 s gridy;
#X obj 570 553 r gridy;
#X obj 383 570 tabreceive~ array5;
#X obj 264 625 +~;
#X obj 744 28 noise~;
#X obj 744 50 *~ 1;
#X text 917 -25 vol;
#X text 871 -50 cutoff;
#X connect 3 0 5 0;
#X connect 4 0 5 1;
#X connect 5 0 28 0;
#X connect 6 0 5 2;
#X connect 8 0 14 0;
#X connect 11 0 12 1;
#X connect 12 0 10 0;
#X connect 12 0 10 1;
#X connect 13 0 14 1;
#X connect 14 0 12 0;
#X connect 15 0 16 0;
#X connect 15 1 25 0;
#X connect 17 0 18 0;
#X connect 18 0 6 0;
#X connect 21 0 28 1;
#X connect 22 0 21 2;
#X connect 23 0 22 0;
#X connect 24 0 21 1;
#X connect 26 0 23 0;
#X connect 27 0 21 0;
#X connect 28 0 7 0;
#X connect 29 0 30 0;
#X connect 30 0 8 0;
_______________________________________________
____ _  _ ___  _   _ ____ ___  ___
|___  \/  |__]  \_/  |___   /  |__]
|___ _/\_ |      |   |___  /__ |

Expyezp mailing list
[email protected]
http://lists.slow.tk/listinfo.cgi/expyezp-slow.tk

Responder a