用于Java的软件Synth库

时间:2008-09-27 12:37:41

标签: java audio

我最近一直在思考一个我想参与的音乐导向项目。有点像游戏......有点像工作室工作站(FL Studio,Reason)。

我想最好的描述方式是:像“吉他英雄”,但没有罐装曲目。所有原创音乐 - 由您即时创作 - 但软件将使用其音乐理论知识(以及一些监督学习算法)来确保您的输入变成听起来很棒的内容。

这听起来有点傻,这样解释,但是你去了。我认为这将是一个有趣的侧面项目。

无论如何,我正在寻找一个用于生成实际音频的Java库。在sourceforge上浏览,有无数的软件合成器,我不知道该选择哪个。

我的首要任务是它应该听起来令人难以置信......真正丰富,分层,有纹理的合成器,配有大量可配置参数。声学仪器的仿真对我来说并不重要。

我的第二个优先事项是,它应该直接严格地用作库,而不涉及任何GUI。 (如果有一个真正令人惊叹的输出的合成器,但它与GUI紧密耦合,那么我可能会考虑从应用程序中删除音频部分,但我宁愿从一个包含很好的库开始。)

我知道我可以将MIDI发送到一个独立的合成器,但我认为阅读实际的合成代码并学习一点DSP是很酷的。

有什么建议吗?

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

谢谢!

4 个答案:

答案 0 :(得分:7)

你签出了JFugue吗?它是“用于编程音乐的开源Java API,没有MIDI的复杂性”。

其他信息:找到JFugue documentation (pdf)中引用的其他几个资源:

答案 1 :(得分: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)。

答案 2 :(得分:1)

如果Clojure是一个可接受的选项(在JVM上运行,很容易与Java集成),那么绝对值得查看Overtone

它使用SuperCollider作为合成引擎,但将其全部包含在一个不错的DSL和交互式编程环境中。

答案 3 :(得分:0)

minim并不是一个java合成器,但它是一个处理库,我想它也应该很容易与vanilla java一起使用。