java music

Software Synth Library para Java



music (4)

He estado pensando mucho últimamente sobre un proyecto orientado a la música en el que me gustaría trabajar. Algo así como un juego ... algo así como una estación de trabajo de estudio (FL Studio, Reason).

Supongo que la mejor manera de describirlo sería: como "Guitar Hero", pero sin pistas enlatadas. Toda la música original, compuesta por usted, sobre la marcha, pero el software utilizaría su conocimiento de la teoría de la música (así como algunos algoritmos de aprendizaje supervisado) para asegurarse de que su entrada se convierta en algo que suene genial.

Suena un poco tonto, explicándolo así, pero ya está. Es algo que creo que sería un proyecto secundario interesante.

De todos modos, estoy buscando una biblioteca Java para generar el audio real. Navegando en sourceforge, hay innumerables sintetizadores de software, y no tengo idea de qué elegir.

Mi principal prioridad es que suene increíble ... Sintéticos muy ricos, en capas y texturizados, con montones de parámetros configurables. La emulación de instrumentos acústicos no es importante para mí.

Mi segunda prioridad es que debería ser sencillo usar estrictamente como una biblioteca, sin ninguna GUI involucrada. (Si hay un sintetizador con una producción realmente impresionante, pero está estrechamente relacionado con una GUI, entonces podría considerar extraer la parte de audio de la aplicación, pero preferiría comenzar con una biblioteca muy bien contenida).

Sé que podría enviar MIDI a un sintetizador independiente, pero creo que sería genial leer el código de sintetizador real y aprender un poco de DSP mientras estoy en ello.

¿Alguna sugerencia?

Oh, sí, estoy en Windows, por lo que las cosas de solo posix es un no ir.

¡Gracias!


¿Has revisado JFugue ? Es una "API Java de código abierto para programar música sin las complejidades de MIDI".

Información adicional: Se encontraron otros dos recursos a los que se hace referencia en la documentación de JFugue (pdf) :

  • Proyecto de Audio Synthesis Engine : versión de código abierto del sintetizador MIDI de Java

  • Gervill : sintetizador de software de código abierto creado como una propuesta para el proyecto Audio Synthesis Engine


Sí, noté JFugue hace unos años. Está en mi lista de marcadores de computadora / música interesantes:

http://delicious.com/BenjiSmith/computermusic http://delicious.com/BenjiSmith/programming.java.libraries.music

Pero JFugue tiene que ver con la estructura de la música en sí ... las melodías, armonías, ritmos, etc.

Lo que estoy buscando ahora mismo es solo el sintetizador. Algo como esto...

Synth s = new Synth(); Instrument i = s.getInstrument("Robot Bass"); i.makeAwesome(true);

Y luego enviaré mis eventos a la transmisión MIDI (o a cualquier API de control que proporcione la biblioteca de sintetizadores).


minim no es exactamente un sintetizador java, pero es una libreta de procesamiento y me imagino que también debería ser bastante fácil de usar con vainilla java.


Si Clojure es una opción aceptable (se ejecuta en la JVM, es fácil de integrar con Java), entonces definitivamente vale la pena verificar Overtone .

Utiliza SuperCollider como motor de síntesis, pero lo envuelve todo en un agradable DSL y entorno de programación interactiva.