pedroreina.net

Composición algorítmica

Me gusta la música desde la adolescencia, antes no la conocía bien y creía que no me gustaba. En algún momento me planteé que el hecho sonoro era un concepto más amplio que el musical y que también me sentía atraído por conocerlo. En la década de 1980 conocí en la universidad los Festivales de la Libre Expresión Sonora; las experiencias que sentí en ellos me convencieron definitivamente para ampliar mis horizontes. Hay sonidos que no son música pero también son atractivos.

Intenté componer música, pero no tenía ni conocimientos ni aptitudes, solo buena intención. Más adelante, los ordenadores personales entraron en mi vida y se me ocurrió que se podría escribir un programa que generara música. Me familiaricé con el sistema MIDI y estuve buscando la manera de comunicar un ordenador con una caja de ritmos mediante un cable MIDI.

En la década de 1990 conocí a Sergi Jordà en un curso sobre el lenguaje de programación C. Él era el profesor y yo un alumno. Le comenté que quería escribir un programa que generara música y me contestó con toda naturalidad: «Yo ya lo he escrito». Me quedé impactado. A partir de ahí, él fue sumamente amable conmigo: me llevó a su casa y me mostró parte de su trabajo, me dio abundante documentación y me animó a seguir adelante.

El tiempo fue pasando y nunca me ponía a trabajar. En 2015, por fin, se juntaron todas las circunstancias que me han permitido comenzar.

En el listado que viene a continuación se pueden oir y descargar los archivos de audio que contienen los sonidos generados por los diferentes programas, así como el propio código y mis comentarios. Es un trabajo en progreso, y deseo ir ampliándolo cuando vaya pensando más ideas.

Listado
Nombre Oir en línea (en OGG) Descargar en FLAC Descargar en OGG Código en Python Comentarios
ca0001 ca0001.flac (3.9 MB) ca0001.ogg (0.7 MB) ca0001.py (5.1 kB) ca0001.txt
ca0002 ca0002.flac (4.3 MB) ca0002.ogg (0.8 MB) ca0002.py (5.2 kB) ca0002.txt
ca0003 ca0003.flac (6 MB) ca0003.ogg (1 MB) ca0003.py (5.2 kB) ca0003.txt
ca0004 ca0004.flac (5.8 MB) ca0004.ogg (1.1 MB) ca0004.py (5.4 kB) ca0004.txt
ca0005 ca0005.flac (5.8 MB) ca0005.ogg (1.1 MB) ca0005.py (5.6 kB) ca0005.txt
ca0006 ca0006.flac (2.8 MB) ca0006.ogg (0.5 MB) ca0006.py (5.7 kB) ca0006.txt
ca0007 ca0007.flac (5.7 MB) ca0007.ogg (1.1 MB) ca0007.py (6.1 kB) ca0007.txt
ca0008 ca0008.flac (3.6 MB) ca0008.ogg (0.7 MB) ca0008.py (5.8 kB) ca0008.txt
ca0009 ca0009.flac (5 MB) ca0009.ogg (1.1 MB) ca0009.py (7.1 kB) ca0009.txt
ca0010 ca0010.flac (6.7 MB) ca0010.ogg (1.3 MB) ca0010.py (7.1 kB) ca0010.txt
Licencia

Todos los programas y los archivos de audio tienen licencia libre CC0 1.0 Universal.

Modo de trabajo

Los programas están escritos en Python y utilizan la librería pyPortMidi para comunicarse con el sistema MIDI.

Los programas se ejecutan en un ordenador Raspberry Pi B+ con un adaptador de USB a MIDI.

Los mensajes MIDI llegan a una caja de ritmos Roland R-8 que envía su sonido estéreo a un amplificador de alta fidelidad.

La salida de audio del amplificador llega a un ordenador Dell Optiplex GX270 Small Factor en el que se graba con Audacity.

En Audacity se recortan los extremos de la captura del audio para ajustarla bien al sonido y se exporta a formatos FLAC y OGG.

Posibilidades para seguir
Mejor visto con cualquier navegador HTML 4.01 válido CSS válido