2008-09-27 17 views
13

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).Software Synth Library para Java

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 de 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 debería sonar increíble ... Sintetizadores texturizados, superpuestos y ricos en capas, con montones de parámetros configurables. La emulación de instrumentos acústicos no es importante para mí.

Mi segunda prioridad es que debe ser fácil de 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 solo las cosas posix es un no ir.

Gracias!

Respuesta

7

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

Información adicional: encontrado un par de otros recursos que se hace referencia en el JFugue documentation (pdf):

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

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

+0

¡He escrito esa documentación! Si hubiera visto esta pregunta ayer, también habría sugerido un código de préstamo del Proyecto de motor de síntesis de audio. –

3

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

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 es solo el sintetizador. Algo como esto...

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

Y luego voy a enviar mis eventos en la corriente de MIDI (o en cualquier API de control de la biblioteca proporciona sintetizador).

+0

Gracias por los enlaces. Estoy jugando con la idea de hacer un rastreador de java, y estos sin duda serán útiles. – Oddmund

0

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

1

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

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