2008-09-27 14 views
13

Ich habe in letzter Zeit viel über ein musikorientiertes Projekt nachgedacht, an dem ich gerne arbeiten würde. Ein bisschen wie ein Spiel ... wie ein Studio-Arbeitsplatz (FL Studio, Reason).Software Synth Bibliothek für Java

Ich denke, der beste Weg, es zu beschreiben wäre: wie "Guitar Hero", aber ohne Dosenspuren. Alle originale Musik - von Ihnen im Flug komponiert - aber die Software würde ihr Wissen über Musiktheorie (sowie einige überwachte Lernalgorithmen) verwenden, um sicherzustellen, dass Ihr Input in etwas verwandelt wird, das großartig klingt.

Es klingt ein wenig albern, erklärt es so, aber da gehst du. Es ist etwas, von dem ich denke, dass es ein interessantes Nebenprojekt wäre.

Wie auch immer, ich bin auf der Suche nach einer Java-Bibliothek für die Erzeugung der tatsächlichen Audio. Auf Sourceforge herumstöbern, gibt es unzählige Software-Synthesizer, und ich habe keine Ahnung, welche ich wählen soll.

Meine oberste Priorität ist, dass es unglaublich klingen sollte ... Wirklich reich, geschichtete, strukturierte Synths, mit Tropfen konfigurierbarer Parameter. Emulation von akustischen Instrumenten ist mir nicht wichtig.

Meine zweite Priorität ist, dass es einfach sein sollte, streng als eine Bibliothek zu verwenden, ohne GUI überhaupt. (Wenn es einen Synthesizer mit wirklich atemberaubendem Output gibt, der aber eng mit einer GUI verbunden ist, dann könnte ich erwägen, den Audioteil aus der Anwendung herauszureißen, aber ich würde lieber mit einer schön enthaltenen Library beginnen).

Ich weiß, ich könnte MIDI an einen Standalone-Synthesizer schicken, aber ich denke, es wäre cool, den eigentlichen Synth-Code zu lesen und ein wenig DSP zu lernen, während ich dabei bin.

Irgendwelche Vorschläge?

Oh ja, ich bin auf Windows, also ist Posix-only Zeug ein Nein.

Danke!

Antwort

7

Haben Sie JFugue ausgecheckt? Es ist eine "Open-Source-Java-API für die Programmierung von Musik ohne die Komplexität von MIDI".

Zusätzliche Informationen: ein paar andere Ressourcen gefunden in der JFugue documentation (pdf) verwiesen:

  • Audio Synthesis Engine Project: Open-Source-Version von Synthesizer MIDI Java

  • Gervill: Open-Source-Software-Synthesizer als ein geschaffenes Vorschlag für das Audio Synthesis Engine Projekt

+0

Hey, ich habe diese Dokumentation geschrieben! Hätte ich diese Frage gestern gesehen, hätte ich auch vorgeschlagen, Code aus dem Audio Synthesis Engine Project auszuleihen. –

3

Ja, ich habe JFugue vor ein paar Jahren bemerkt. Es ist auf meiner Liste interessanter Computer/Musik Lesezeichen:

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

Aber JFugue ist alles über die Struktur der Musik selbst ... die Melodien, Harmonien, Rhythmen, etc ....

Was ich gerade suche, ist nur der Synthesizer. Etwas wie das...

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

Und dann werde ich meine Ereignisse in den MIDI-Stream senden (oder in was auch immer Kontrolle API die Synth-Bibliothek zur Verfügung stellt).

+0

Danke für die Links. Ich spiele mit der Idee, einen Java-Tracker zu machen, und diese werden zweifellos nützlich sein. – Oddmund

0

minim ist nicht gerade ein Java-Synth, aber es ist eine Verarbeitungs-Lib und ich stelle mir vor, dass es mit Vanille Java auch ziemlich einfach sein sollte.

1

Wenn Clojure eine akzeptable Option ist (läuft auf der JVM, einfach in Java zu integrieren), dann lohnt es sich, Overtone auszuprobieren.

Es nutzt SuperCollider als Synthese-Engine, aber alles in einer schönen DSL- und interaktiven Programmierumgebung.