我最近一直在思考一个我想参与的音乐导向项目。有点像游戏......有点像工作室工作站(FL Studio,Reason)。
我想最好的描述方式是:像“吉他英雄”,但没有罐装曲目。所有原创音乐 - 由您即时创作 - 但软件将使用其音乐理论知识(以及一些监督学习算法)来确保您的输入变成听起来很棒的内容。
这听起来有点傻,这样解释,但是你去了。我认为这将是一个有趣的侧面项目。
无论如何,我正在寻找一个用于生成实际音频的Java库。在sourceforge上浏览,有无数的软件合成器,我不知道该选择哪个。
我的首要任务是它应该听起来令人难以置信......真正丰富,分层,有纹理的合成器,配有大量可配置参数。声学仪器的仿真对我来说并不重要。
我的第二个优先事项是,它应该直接严格地用作库,而不涉及任何GUI。 (如果有一个真正令人惊叹的输出的合成器,但它与GUI紧密耦合,那么我可能会考虑从应用程序中删除音频部分,但我宁愿从一个包含很好的库开始。)
我知道我可以将MIDI发送到一个独立的合成器,但我认为阅读实际的合成代码并学习一点DSP是很酷的。
有什么建议吗?
哦,是的,我在Windows上,所以posix-only的东西是不行的。
谢谢!
答案 0 :(得分:7)
你签出了JFugue吗?它是“用于编程音乐的开源Java API,没有MIDI的复杂性”。
其他信息:找到JFugue documentation (pdf)中引用的其他几个资源:
Audio Synthesis Engine Project:Java的MIDI合成器的开源版本
Gervill:作为音频合成引擎项目提案创建的开源软件合成器
答案 1 :(得分:3)
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一起使用。