lunes, 20 de septiembre de 2010

Sonido fractal (experimento)

Update: corregido un detalle que podría causar un error al dividir por 0

La idea (no me acuerdo de donde salio, la verdad) es diseñar un fractal y "mostrarlo" a través de un archivo de música. El fractal elegido es una conjunto de Cantor por que es simple, y porque se puede presentar en un formato de 1 dimensión, de tiempo en este caso y otra que aquí será la frecuencia. Este script genera un archivo wave (.wav) basandose en esa idea.



El código está aquí: http://pastebin.com/YdURGkqa http://pastebin.com/Ecx1uR7f

Nota: como suele pasar con estas cosas, la primera vez mejor bajar el volumen... yo aviso ;)

La verdad, no se me ocurre nada que explicar =P el sonido que se obtiene es "mono" de 8 bits, y la sintaxis es:

./fracAudio.py <archivo de salida> [-d <duración>] [-s <paso>] [-b <frecuencia base>] [-fs <paso de frecuencia>] [-p <proporción>] [-l <nivel del fractal>] | -h
Archivo de salida: archivo donde se guardará el audio
Duración: duración en segundos del archivo de audio
Paso: segundos mínimos que durará cada parte del fractal
Frecuencia base: la frecuencia de la que se partirá
Paso de frecuencia: lo que cambiará la frecuencia en cada paso (-*** para que descienda)
Proporción: proporción del fractal (siempre ha de ser menor que 0.5)
Nivel del fractal: Nivel máximo de recursividad que se aplicará al fractal
-h: muestra esto


Y el resultado podría ser este, por ejemplo, con:


./fracAudio.py out.wav -d 60 -s 0.25



[Referencias]
http://es.wikipedia.org/wiki/Conjunto_de_Cantor
http://docs.python.org/library/wave.html
http://docs.python.org/library/audioop.html

No hay comentarios:

Publicar un comentario