[Expyezp] matematica a musica con Pd

Juan I Reyes juanig at Maginvent.ORG
Mon Jul 6 12:26:55 PDT 2009


Hola Jose Ignacio,

Quizá la mejor forma de darse cuenta de la relación entre matemáticas y
música es haciendo el programa mas básico cuando uno comienza a estudiar
composición algorítmica. Es decir una especie de 'hello world', 'Hola
Gente',  en composición  algorítmica.

Lo mas simple es generar una escala a partir de la función seno.

Por lo tanto si genero valores entre cero y 360 grados, la función seno
me va a devolver valores entre menos 1 y uno. Como es mas fácil trabajar
con radianes, esto mismo significa trabajar con ángulos entre 0 y 2PI.

Lo primero que tengo que hacer es generar estos valores con un contador
que va de 0 a 2pi (0~>6.2832).

Luego obtengo los valores de la función seno (Y=sin(x)). Después de esto
lo ico que hay que hacer es mapear estos valores a notas MIDI utilizando
una función como:

  y = (127/2)(x+1) + 64

Estos valores de notas_MIDI o los paso a un teclado MIDI o, los asigno
como frecuencias a un oscilador.

Para facilitarte las cosas y para que trabajes en Pd este tipo de
aplicaciones, adjunto el patch y su imagen.

Para utilizar otras funciones solo es cambiar [sin] por [cos], por
ejemplo. Sin embargo hay que pensar en los acotamientos para que los
valores hagan sentido

Suerte,

  --* Juan


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.randomlab.net/pipermail/expyezp-randomlab.net/attachments/20090706/c4139917/attachment-0002.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sinescala-pd.png
Type: image/png
Size: 40437 bytes
Desc: not available
URL: <http://lists.randomlab.net/pipermail/expyezp-randomlab.net/attachments/20090706/c4139917/attachment-0002.png>
-------------- next part --------------
#N canvas 451 91 525 611 10;
#X obj 349 492 dac~;
#X msg 379 27 \; pd dsp 1;
#X msg 444 26 \; pd dsp 0;
#X text 399 62 ON;
#X text 464 62 OFF;
#X obj 359 432 *~;
#X obj 374 399 line~;
#X msg 374 368 0.7 10;
#X obj 374 198 bng 18 250 50 0 empty tocarnota empty 0 -6 0 10 -204786
-83269 -1;
#X obj 427 344 del 80;
#X obj 144 189 float;
#X floatatom 144 252 5 0 0 0 - - -;
#X msg 243 172 0;
#X obj 144 42 bng 24 250 50 0 empty empty START -12 -12 0 10 -261682
-260097 -128992;
#X msg 185 42 0;
#X obj 142 421 mtof;
#X obj 243 265 sel 1;
#X obj 145 273 sin;
#X obj 142 391 int;
#X floatatom 142 459 5 0 0 0 - - -;
#X obj 144 72 trigger bang bang;
#X obj 144 130 trigger bang bang;
#X obj 142 482 send frecu;
#X obj 359 304 receive frecu;
#X obj 280 147 bng 18 250 50 0 tocarnota empty empty 0 -6 0 10 -204786
-83269 -1;
#X obj 359 343 osc~;
#X text 186 323 Normalizar a notas MIDI;
#X obj 359 457 hip~ 10;
#X obj 234 430 vsl 18 128 0 127 0 0 empty empty Notas_MIDI -20 140
0 10 -204800 -232576 -1 5700 1;
#X floatatom 234 408 5 0 0 0 - - -;
#X text 190 191 generar valores entre:;
#X msg 427 374 0 400;
#X text 84 274 y=SIN(x);
#X text 146 441 MIDI a frecu;
#X obj 235 241 > 6.2832;
#X obj 144 100 metro 600;
#X obj 144 224 + 0.05236;
#X text 189 204 0 y 2PI cada pi/60;
#X text 212 40 STOP;
#X text 399 202 Tocar nota;
#X text 304 153 Tocar nota;
#X text 25 534 Generar una escala a partir;
#X text 41 546 de la funcion seno;
#X text 402 164 comment;
#X obj 145 294 + 1;
#X obj 145 318 / 2;
#X obj 145 365 + 1;
#X text 191 306 Y = [(x+1)/2]127+(1/2);
#X obj 145 343 * 127;
#X text 51 571 juanig_at/_ccrma;
#X connect 5 0 27 0;
#X connect 6 0 5 1;
#X connect 7 0 6 0;
#X connect 8 0 7 0;
#X connect 8 0 9 0;
#X connect 9 0 31 0;
#X connect 10 0 36 0;
#X connect 11 0 17 0;
#X connect 12 0 10 1;
#X connect 13 0 20 0;
#X connect 14 0 35 0;
#X connect 15 0 19 0;
#X connect 16 0 12 0;
#X connect 17 0 44 0;
#X connect 18 0 15 0;
#X connect 18 0 29 0;
#X connect 19 0 22 0;
#X connect 20 0 35 0;
#X connect 20 1 12 0;
#X connect 21 0 10 0;
#X connect 21 1 24 0;
#X connect 23 0 25 0;
#X connect 25 0 5 0;
#X connect 27 0 0 0;
#X connect 27 0 0 1;
#X connect 29 0 28 0;
#X connect 31 0 6 0;
#X connect 34 0 16 0;
#X connect 35 0 21 0;
#X connect 36 0 11 0;
#X connect 36 0 10 1;
#X connect 36 0 34 0;
#X connect 44 0 45 0;
#X connect 45 0 48 0;
#X connect 46 0 18 0;
#X connect 48 0 46 0;


More information about the Expyezp mailing list