2009-02-03 25 views
30

Me gustaría escribir una canción interactiva. Contendría estado y lógica. Un oyente/usuario debería poder modificar algunos vars de estado usando una GUI o una interfaz MIDI. Los vars accesibles a los oyentes no tienen que representar directamente el tempo, el tono o cualquier otra propiedad de la música. Preferirían representar valores que la lógica procesaría para realizar cambios en la canción.Lenguaje de programación de alto nivel para la composición musical

¿Tengo que escribir esa plataforma yo mismo o algo que encaja con mi imaginación ya existe?

Respuesta

11

Mire cSounds y PureData.

+0

[Max MSP] (http://cycling74.com/products/max/) es muy similar a PureData. – Kevin

+0

SuperCollider es muy superior a cualquiera (ver respuesta a continuación) – cmc

1

No estoy seguro de si cubre lo que busca, pero eche un vistazo a Java Sound API. Para obtener más información sobre lo que puede hacer, consulte here. Los beneficios son que ya está incluido en SDK y JRE y que es multiplataforma. Además, podría compilar la GUI utilizando cualquier kit de herramientas Java.

7

Si está contento de utilizar Java, consulte JFugue.

+0

O bien JMusic tiene características mucho más fuertes en comparación con JFugue y más flexibilidad ver [1] para aplicaciones creadas por JMusic [1] http://explodingart.com/jmusic/applications .html – poohdedoo

+0

El problema con jfugue es que necesita un procesador súper rápido o la música estará muy lejos del ritmo. Eso es lo que me pasó. Parece que no puede usar marcas de tiempo midi ni nada. – DankMemes

0

que en realidad no obtiene lo que quiere hacer, pero aquí es una lista de algunos programas de música CL, tanto para la composición y la cognición: http://www.cliki.net/Music

3

un vistazo a Strasheela:

Es un sistema de composición basado en el lenguaje de programación Oz. Learning Oz no es fácil, ya que combina el paradigma de programación funcional y lógica. Sin embargo, si te gustó el libro SICP, entonces es probable que también te guste.

Strasheela trata la composición musical como un Problema de Estabilidad de Restricción (CSP), y busca "soluciones" para ello. Significa que el estilo de la música se define como restricciones matemáticas en números enteros (dominio finito), que deben estar estadísticos, y el sistema integrado de resolución de restricciones computa las soluciones "automáticamente".

P.S .: No puedo programar en Oz, pero estoy en camino de aprenderlo.

1

respuesta es para .NET:
he encontrado algo, pago y envío NAudio por Mark Heath, una gran biblioteca de música .NET diría que debe estar contenida en el BCL.

midi-dot-net es otro gran proyecto de C# de Tom Lokovic.

1

Para la interacción musical, PureData, Max/MSP y OpenMusic (estos dos últimos son de IRCAM) son los mejores. PureData es freeware. Google ellos!

6

He intentado PureData, CSound y SuperCollider.

CSound es muy engorroso para programar en el, y ha tenido graves problemas de estabilidad para mis necesidades (24 bits/96 kHz en tiempo real de baja latencia de Linux) en la versión 4.

PureData es gráfico, lo que hace aún más difícil mantener código ordenado y ordenado luego con archivos de texto. Redactar es un problema porque tienes que compilar tu propia GUI de composición, que puede ser poderosa, pero mientras sea mi único usuario, me parece que es más rápido usar texto.

El ganador sin dudas es SuperCollider, porque es un lenguaje orientado a objetos smalltalk que es bastante agradable para trabajar. Se divide en un servidor de sonido controlado por OSC y el idioma del cliente. Puedo recomendar el servidor de síntesis de sonido y usar el lenguaje para crear instrumentos sin reservas por su excelente estabilidad, gran flexibilidad y potencia increíble. Lo he usado en vivo en el escenario y el rendimiento es increíblemente bueno.

El lenguaje de creación de puntaje sufre del síndrome de manos múltiples; en ausencia de un liderazgo claro reciente, hay demasiadas formas de hacer demasiadas cosas con demasiadas limitaciones, pero aún así es mejor que CSound porque al menos puede usar estructuras razonables de alto nivel.

Todavía estoy buscando un lenguaje de composición que lo haga bien.

+0

¡Excelente respuesta! ¿Cómo se compara SuperCollider con ChucK? Alguna experiencia con eso? –

+0

No he probado el mandril, pero al investigarlo supongo que es una opción adecuada de procesamiento de sonido de bajo nivel, pero no tan adecuado como un lenguaje de audio de propósito general. – cmc

0

Es una pena que ninguno haya dicho sobre Chuck ................ Chuck es un lenguaje de programación creado específicamente para la generación y composición de música/audio. Puede descargar Chuck en http://chuck.stanford.edu es mucho más fácil de usar, y es muy familiar para c, C++, java, etc., sin embargo es más fácil de aprender también. Puede encontrar en Coursera sobre chuck gratis en California arts university, enlace here.

Cuestiones relacionadas