13

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

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

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

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

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

我的第二个优先事项是它应该直接作为一个库使用,完全不涉及 GUI。(如果有一个输出非常惊人的合成器,但它与 GUI 紧密耦合,那么我可能会考虑将音频部分从应用程序中提取出来,但我宁愿从一个包含良好的库开始)。

我知道我可以将 MIDI 发送到独立的合成器,但我认为阅读实际的合成器代码并在我使用它的同时学习一点 DSP 会很酷。

有什么建议么?

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

谢谢!

4

4 回答 4

7

你检查过JFugue吗?它是一个“没有 MIDI 复杂性的用于音乐编程的开源 Java API”。

附加信息:在JFugue 文档 (pdf)中找到了一些其他资源:

于 2008-09-27T12:41:41.403 回答
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)。

于 2008-09-27T13:15:42.603 回答
1

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

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

于 2013-04-01T05:43:03.103 回答
0

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

于 2011-02-01T18:22:04.920 回答