Common Music
Common Music (CM) es un entorno de programación orientada al objeto, para composición de música. Basándose en el lenguaje lisp, permite la creación y manipulación de información (objetos) musical, que puede ser transformada en sonido, partituras, u otras representaciones, mediante varios protocolos estándar. El creador y referencia base del proyecto se llama Rick Taube, profesor de composición en la universidad de Illinois.
Common Music comenzó como proyecto en 1989, presentándose como un sistema de programación musical, de interés para compositores, que podía funcionar en máquinas de bajo coste. Algo que también, hace especialmente interesante el lenguaje Common Music, es que una vez comprendido el lenguaje de objetos musicales que ofrece, es posible extender el propio sistema, expresándose en Lisp.
Relaciones con otros softwares y librerías
[editar]Mediante el sistema de instalación de paquetes de lisp, Common Music entabla diálogo con los siguientes protocolos:
- Csound (sound synthesis)
- Fomus (music notation)
- Common Lisp Music (sound synthesis)
- Common Music Notation (music notation)
- MIDI (synthesis control)
- Midishare (MIDI I/O)
- Plotter (data visualization)
- Open Sound Control (synthesis control)
- Supercollider (sound synthesis)
- Portmidi (MIDI I/O)
- RTS and Receive (real time extensions)
Ejemplo
[editar]El siguiente código, genera una sucesión de notas midi con sus parámetros elegidos al azar, entre respectivas listas de valores. La última línea genera efectivamente el archivo midi.
(define (play-pick len) (process repeat len for o = (pick 0 0 -24 24) for r = (pick.1.2.2.2.4) for k = (between 60 67) for a = (pick.25.25.24.5.5.75) output (new midi:time (now) :duration (* r (pick 1.5.5)) :keynum ( k o) :amplitude a) wait r)) (events (play-pick 60) "test.mid")
El mismo código se retocaría ligeramente, para proporcionar como salida, una score de Csound, una partitura en notación clásica, u otros formatos de la lista de protocolos que aparece más arriba.