MusaDSL
MusaDSL es un lenguaje de dominio específico de código abierto basado en Ruby, diseñado para la composición sonora y musical algorítmica. Nació en el estudio para componer: cada obra ha pedido capacidades que el lenguaje no tenía, y el lenguaje, al ganarlas, ha abierto caminos que antes no estaban a la vista.
MusaDSL separa la lógica compositiva del renderizado de audio, permitiendo crear estructuras musicales complejas de forma independiente a los sintetizadores o DAWs utilizados. Esta arquitectura facilita la exploración de sistemas generativos, la composición algorítmica y el live coding.
Obras compuestas con MusaDSL: Espiral, El Bosque, Piezoreflections o el Estudio Fibonacci.
Características principales
- Secuenciador avanzado con precisión de microsegundos para estructuras polirrítmicas y politemporales, con múltiples fuentes de reloj (interno, MIDI, externo)
- Herramientas generativas: cadenas de Markov, Variatio, GenerativeGrammar y algoritmos genéticos Darwin
- Series: iteradores lazy con operaciones funcionales (transformar, filtrar, invertir, combinar, cortar, repetir) y generadores especializados (Fibonacci, serie armónica, aleatorio con restricciones)
- Más de 30 escalas y modos en 9 familias (modos griegos, pentatónicas, blues, simétricas, bebop, étnicas, menor melódica…) con soporte de temperamento igual y afinación justa
- Sistema de acordes con calidad, extensiones, voicings y navegación acorde-escala
- Datasets y Score: representación estructurada de eventos musicales (grados de escala, alturas MIDI, dinámicas) con organización multivoce
- Sistema de notación textual Neumalang con soporte para grados de escala y ornamentos
- Operaciones matriciales para transformación de estructuras sonoras y musicales
- Transcripción a MIDI y generación de partituras en MusicXML con expansión de ornamentos
- Comunicaciones MIDI multiplataforma para conexión con instrumentos y controladores
- Gestión polifónica MIDI con asignación automática de voces
Licencia GPL 3.0 o posterior; licencia comercial disponible (contactar).
MusaLCE — Entorno de Live Coding
MusaLCE es el entorno de live coding de MusaDSL: permite escribir Ruby en el editor y oír los cambios en tiempo real mientras el secuenciador sigue tocando.
Soporta dos vías de uso - un REPL standalone que tú instancias para destinos arbitrarios (SuperCollider, Max/MSP, OSC), y una integración llave-en-mano con Ableton Live o Bitwig Studio a través de musalce-server y una extensión específica del DAW.
Licencia GPL 3.0 o posterior; licencia comercial disponible (contactar).
Nota — Asistente de composición con IA
Nota es un plugin para Claude Code y opencode que transforma la IA en un asistente de composición algorítmica con conocimiento profundo de MusaDSL. Permite preguntar sobre el framework en lenguaje natural (/nota:explain), generar ideas compositivas (/nota:think), escribir código verificado a partir de intenciones musicales (/nota:code), y analizar las propias obras (/nota:analyze). En Claude Code se invocan mediante slash commands; en opencode las skills se activan automáticamente por contexto.
Nota incorpora una base de conocimiento semántica que cubre toda la documentación, la referencia de API y más de 20 proyectos de demostración. A medida que el compositor indexa sus obras (/nota:index) y extrae buenas prácticas (/nota:best-practices), el asistente se enriquece con ese conocimiento personal. Cada paso alimenta al siguiente, formando un ciclo creativo continuo.
Gratuito, con licencia propietaria: se licencia para usarlo, no para copiarlo, modificarlo ni redistribuirlo. Lo que compongas con él es tuyo, sin condición por parte de Nota; el código que use MusaDSL sigue la licencia de MusaDSL, como cualquier otro. Licencia comercial disponible (contactar).
Próximamente
- Pulso — sistema de control remoto OSC para DAWs musicales mediante un plugin de Elgato Stream Deck más un bridge específico del DAW. Para Bitwig Studio en su primera versión; Ableton Live planificado. Incluye, entre otras superficies, integración con MusaLCE Surface para sesiones de live coding. Publicación pendiente.