Real-Time Cmix (RTcmix) es uno de los lenguajes de programación musical por ordenador de la familia MUSIC-N . RTcmix desciende del programa MIX desarrollado por Paul Lansky en la Universidad de Princeton en 1978 para realizar composiciones algorítmicas utilizando archivos de sonido de audio digital en una computadora central IBM 3031. Después de que se añadieran funciones de síntesis , el programa pasó a llamarse Cmix en la década de 1980. David Topper, John Gibson, Brad Garton y Douglas Scott añadieron la capacidad de tiempo real a mediados de la década de 1990. Además, se añadieron compatibilidad con la conectividad de socket TCP , control interactivo del programador , así como la capacidad de integrar el motor de síntesis en aplicaciones con todas las funciones, como Max/MSP .
A lo largo de los años, Cmix/RTcmix se ha ejecutado en una variedad de plataformas informáticas y sistemas operativos, incluidos NeXT , Sun Microsystems , IRIX , Linux y Mac OS X. Es y siempre ha sido un proyecto de código abierto , lo que lo diferencia de los sintetizadores comerciales y el software de música. Actualmente, lo desarrolla un grupo de investigadores de música informática, tanto académicos (en la Universidad de Princeton , la Universidad de Columbia y la Universidad de Indiana en Bloomington ) como privados.
RTcmix tiene una serie de características únicas (o altamente inusuales) en comparación con otros lenguajes de síntesis y procesamiento de señales . Por un lado, tiene un analizador MINC integrado , que permite al usuario escribir código de estilo C dentro del archivo de partitura, lo que extiende su capacidad para la composición algorítmica y lo acerca en algunos aspectos al software musical posterior, como SuperCollider y Max/MSP . Utiliza un archivo de instrucciones de un solo script (el archivo de partitura) y rutinas de síntesis y procesamiento de señales (llamadas instrumentos) cargadas como bibliotecas compartidas . Esto es diferente de los lenguajes MUSIC-N como Csound , donde los instrumentos existen en un segundo archivo escrito en un lenguaje de especificación que construye las rutinas a partir de bloques de construcción simples (organizados como códigos de operación o generadores de unidades ). Sin embargo, RTcmix tiene una funcionalidad similar a Csound y otros lenguajes de música por computadora, y su linaje compartido significa que los scripts escritos para un lenguaje tendrán un aspecto extremadamente familiar (si no inmediatamente comprensible) para los usuarios del otro lenguaje.