El “Zappator”

Este applet, hecho en Processing, forma parte de un proyecto más ambicioso, el " Zappator", que pretende ser una especie de músico virtual. Por ahora lo único que tenemos es este modulito de generación de ritmos de batería MIDI, que ahora les explico cómo funca.

Filosofía del programa

En problemas como la generación de música, la síntesis y tantos otros de la programación, existen dos "modelos" de solución: el modelo "algorítmico" o el uso de "tablas". Ambos tienen sus pros y sus contras, y en la práctica ninguna implementación es puramente de uno de los dos tipos.

Lo que yo intento en este caso es generar ritmos en forma algorítmica, sin que haya una tabla con "patterns" previamente almacenados, ni siquiera con fragmentos. ¿Por qué? Como ya se dijo, tiene sus ventajas, pero lo discutiremos en otro capítulo.

Este programa utiliza MIDI, de modo que la generación del sonido mismo queda fuera de su alcance, lo que nos permite centrarnos en el nivel del "pattern".  El propósito era generar patrones musicales de la forma más algorítmica posible. Probé diversas cosas, primero arranqué con una rutina recursiva, intentando hacer una especie de "fractales" musicales. Salió una cosa muy linda, pero de musical tenía poco, la verdad. Tuve que recurrir a las "tablas". Introduje algunas tablas de reglas, pero nunca patterns enteros, ni siquiera fragmentos. La  solución sigue siendo en esencia algorítmica, y el resultado es bastante musical. Me pareció que había llegado a un punto interesante…

Instrucciones.

Para invocar al applet, hacemos click aquí.

El modo de uso es el siguiente: primero seteamos los parámetros de abajo y cuando está todo listo, hacemos click en el puerto MIDI adecuado, y ahi arranca la generación de ritmo. Para detenerla, hacemos click en cualquier punto, y esperamos pacientemente a que se cumplan la cantidad de "repeticiones" previamente seteadas. Los valores numéricos se modifican clickeando con el mouse arriba del número y arrastrando para arriba o para abajo. Un consejo: no utilicen el sintetizador de JAVA, anda como el… java; utilicen cualquier otro sinte MIDI, el sintetizador GS de Windows, por ejemplo.

Explicación de los parámetros:

Medida es la medida del compás, expresada en unidades de subdivisión mínima (que muy ocasionalmente pueden subdividirse binariamente). Por ejemplo, si quieren ritmos "funkosos", pongan la medida en "16". Los valores admitidos van de 4 a 24, incluyendo todas las medidas regulares e irregulares comprendidas en ese intervalo, he ahí una de las cosas interesantes.

Feel sólo puede tomar dos valores: 2 y 3, y se refiere a la acentuación de los patterns de hi-hat y de los rellenos en general. El valor "2" tiende a una acentuación binaria y el "3" a una ternaria. Nótese que, por ejemplo, si ustedes quieren generar un ritmo binario de subdivisión ternaria, el clásico "shuffle" o 12/8, deben poner la medida en 12 y el feel en 3.

Repeticiones  admite valores entre 1 y 8. La cosa es así, al clickear en el puerto MIDI, el programa genera un pattern aleatoriamente (respetando ciertas reglas "mágicas" de generación y en función de la medida y el feel), y luego lo repite la cantidad de veces indicada. El módulo que genera el pattern se llama "generador" y el que lo toca "intérprete". El intérprete puede introducir ciertas variaciones en cada repetición, pero ustedes van a notar que en esencia es el mismo pattern. Cuando se cumplen las n repeticiones, se genera un nuevo pattern con las mismas reglas, y se vuelve a tocar n veces.

Tempo es un parámetro para el intérprete. Nótese que este tempo no es exacto, es "trucho", lo único que tiene de familiar es que a mayor número, más velocidad de la reproducción. Una cosa a tener en cuenta: talvez alguien se haya preguntado ¿cómo hago para generar ritmos más "rellenos" o más "pelados", es decir con más o menos subdivisión? La respuesta tentativa es la siguiente: más "denso", medidas largas y tempo alto; más "despojado", medidas cortas y tempo bajo.  Prueben por ejemplo, medida 8, feel 2, tempo 50 (ahora que lo veo, debí haber incluido tempos más bajos aun).

Una última cosa, los parámetros no se pueden cambiar a tiempo real (no me alcanzó la plata), hay que esperar que se detenga la reproducción para volver a probar otra combinación. Espero que lo disfruten, un saludo.

Be Sociable, Share!

5 Comentarios »

  1. avatar Palmera blog » Archivo del Blog » El Círculo Supremo de los Modos Dice:

    […] la concreté por primera vez en esta versión. Es interesante porque se plantea, al igual que en Zappator, el tema ”algoritmo vs. tabla”. Veamos cómo funciona. […]

  2. avatar Reconocimiento de voz | Palmera blog Dice:

    […] al compás de la música (y de paso me serviría para el momentáneamente abandonado proyecto Zappator). Por otro lado, me interesaba también experimentar con redes neuronales, ya que suponía que […]

  3. avatar TaZmAn Dice:

    Do you have copy writer for so good articles? If so please give me contacts, because this really rocks! 🙂

  4. avatar Composición Algorítmica | Palmera blog Dice:

    […] un software que generaba comportamientos baterísticos, y lo llamé “Zappator”; aquí está el artículo que en aquel momento le dediqué, y aquí está el programa […]

  5. avatar pabloxid Dice:

    Las Java Applets no andan más, pueden bajar el programita en la sección “descargas”.

RSS alimentación de los comentarios de esta entrada. TrackBack URL

Dejar un comentario