Una manera muy recomendable de emplear programas para música algorítmica es a través de Emacs (Editor MACroS), un editor de texto que puede ser configurado y personalizado a través de scripts y paquetes de código escritos en Emacs Lisp, un dialecto propio de Lisp.

Pero lo que hace a Emacs una de las mejores opciones para música algorítmica y live coding es que es posible--para lenguajes interpretados como Lisp, Python, Haskell y otros--evaluar línea por línea, bloque por bloque, el código escrito. Por ejemplo, puedo tener iniciado el servidor de SuperCollider y crear y hacer sonar sonidos sintetizados en tiempo real, diseñados empleando el lenguaje nativo, sclang, o Haskell. Al mismo tiempo puedo tener una ventana en la que puedo ir interactuando con CSound, incluso a través del lenguaje Haskell, y otra más donde uso Lisp o Scheme para interactuar con Common Music.
![]() |
Emacs corriendo Tidal, en las dos ventanas de la izquierda, y SuperCollider, en las dos ventanas de la derecha. Por tanto puede ejercitarse en vivo códigos en los dos lenguajes, Tidal y ScLang. |
Tenemos SuperCollider, por ejemplo. En la distribución de los archivos fuente de este programa, en la carpeta editors/scel/el, están los archivos que conforman el paquete en Emacs Lisp para interactuar con SuperCollider en tiempo real desde Emacs. En Planet CCRMA hay una guía que explica cómo preparar y usar Emacs para esto.
Hay varios proyectos que permite hacer sonidos en SuperCollider a través de Haskell, un lenguaje de programación funcional. Uno de ellos es hsc3, de Rohan Drape y otros. Instalarlo es muy simple pata quienes ya programan en Haskell. La distribución incluye un archivo llamado hsc3.el, que es el script que configura a Emacs para que se conecte con el interprete de Haskell, cargue los módulos de hsc3 y, de esta manera, podamos comunicarnos con SuperCollider en tiempo real, pero a través de Haskell. Rohan Darpe ha realizado otras interfaces con SuperCollider para otros lenguaje de programación funcional: rsc3 y smlsc3. Rsc3 es el acronimo de R6RS Scheme SuperCollider, y permite comunicarse con SuperCollider desde Emacs a través del lenguaje de programación Scheme. Lo mismo permite smlsc3, pero a través de SML (Standard ML), otro lenguaje de programación funcional.

La última versión de CSound, uno de los primeros programas para hacer música con computadoras, incluye soporte para live coding. Para CSound hay también una interface para trabajar desde un lenguaje embebido en Haskell: Csound-expression. Funciona en manera similar a tidal, pero está pensado para hacer sonidos por síntesis en tiempo real. Incluye una guía que explica en forma sencilla como trabajar con este paquete de Haskell para hacer sonidos en CSound. Para usar csound-expression con Emacs, sólo hay que configurar Emacs para trabajar con el intérprete de Haskell, y cargar el módulo Csound.Base:
> ghci Prelude> :m +Csound.Base Prelude Csound.Base>
Por supuesto, también podemos usar Emacs para hacer música en Common Lisp o en Python, sólo que no hay en este momento las facilidades que existen ya en otros lenguajes. Las primeras versiones de Common Lisp Music, hasta la versión 2.10, fueron pensadas para ser usadas desde Emacs. En Python, como hemos visto, existen algunos paquetes para producir sonidos y hacer composición algorítmica vía MIDI, como pyknon.
Las posibilidades son amplias, incluso existen otros lenguajes para hacer live coding. Acá sólo nos hemos centrado en sistemas en los que podemos trabajar desde Emacs. Hay que reconocer, sin embargo, que no es una labor muy sencilla, pero quien hace live coding debe saber programar, pues de eso se trata, de hacer música improvisando códigos al vuelo y en público.