2008-09-27 60 views
13

最近我一直在想關於一個我想工作的面向音樂的項目。有點像遊戲...有點像工作室工作站(FL Studio,Reason)。適用於Java的軟件合成器庫

我想描述它的最好方法是:像「吉他英雄」,但沒有罐頭曲目。所有原創音樂 - 由您自己編寫 - 即時編輯 - 但軟件將使用其音樂理論知識(以及一些監督學習算法)來確保您的輸入變成聽起來不錯的東西。

這聽起來有點愚蠢,像這樣解釋它,但那裏你去。這是我認爲會做出有趣的一面的項目。

無論如何,我正在尋找一個Java庫來生成實際的音頻。瀏覽sourceforge,有無數的軟件合成器,我不知道該選擇哪一個。

我的首要任務是它應該聽起來不可思議......真正豐富的,分層的,帶紋理的合成器,帶有可配置參數的gobs。原聲樂器的仿真對我來說並不重要。

我的第二個優先事項是它應該是直接嚴格地用作庫,根本不涉及GUI。 (如果合成器的輸出非常驚人,但它與GUI緊密結合,那麼我可能會考慮將音頻部分從應用程序中剝離出來,但我寧願從一個很好包含的庫開始)。

我知道我可以將MIDI發送到獨立合成器,但我認爲在閱讀實際合成器代碼並學習一些DSP時很酷。

有什麼建議嗎?

哦,是的,我在Windows上,所以posix-only的東西是不行的。

謝謝!

回答

7

您退房JFugue?這是一個「開放源代碼的Java API,用於編程音樂,而不需要MIDI的複雜性」。

其他信息:發現一對情侶在JFugue documentation (pdf)引用的其他資源:

+0

嘿,我寫了文檔! 昨天我看過這個問題,我也會建議從音頻合成引擎項目中借用代碼。 – 2008-09-28 21:42:38

3

是的,幾年前我注意到JFugue。這是我的電腦有趣/音樂書籤列表:

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

但JFugue是所有關於音樂本身......旋律,和聲,節奏等的結構....

我現在正在尋找的只是合成器。像這樣的東西...

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

然後我會將我的事件發送到MIDI流(或合成器庫提供的​​任何控制API)。

+0

感謝您的鏈接。我正在製作一個java跟蹤器的想法,這些無疑將派上用場。 – Oddmund 2008-09-28 01:07:00

0

​​不完全是一個java合成器,但它是一個處理庫,我想它應該很容易與香草java一起使用。

1

如果Clojure是一個可以接受的選項(運行在JVM上,很容易與Java集成),那麼絕對值得檢查Overtone

它使用SuperCollider作爲綜合引擎,但將其全部包裝在一個不錯的DSL和交互式編程環境中。