4

我目前正在开发一个应用程序,可以帮助用户调整他的吉他并生成吉他效果。这是实时的。我一直在寻找可以提供生成吉他效果(例如过载和延迟)的想法的 Java 应用程序,但我找不到任何东西。还需要实时创建波形的来源。您的评论会很有帮助,在此先感谢。

4

4 回答 4

12

约翰说:

首先,忘记 Java……其次,您将与硬件交互……Java 不支持这种东西。

天哪,这有点苛刻 - 你应该告诉 Sun 在他们发布 API 之前这是不可能的:http: //java.sun.com/products/java-media/sound/。在 Java 中处理了很多声音,我从来没有遇到过延迟或缓冲区的问题,即使在有些破旧的硬件上也是如此。

好例子@http ://www.jsresources.org/examples/index.html

好帮手@http://java.sun.com/products/java-media/sound/list.html

...话虽如此,John 对学习 DSP 和波形分析的评论是在 $$$。

玩得开心 - 戴夫

于 2009-02-18T18:15:48.487 回答
2

这个开源项目对你来说可能是一个很好的参考。有一个构造波形的函数 http://code.google.com/p/musicg/

于 2011-11-10T09:27:23.607 回答
0

关于低延迟声音处理的可行性:看看这篇关于Harmonicon 的文章,一个 java 软合成器。这是一个完全在 java 中实现的示例播放合成器,使用Metronome GC,它在实时操作系统上运行时具有 < 2 ms 的较高延迟保证。

关于波形生成/dsp,请查看这个问题中的示例,Java 生成声音,一个非常简单的波形生成示例。

于 2013-08-18T09:30:17.203 回答
-5

首先,忘记Java。Java 是一个托管运行时,它进行垃圾收集。发生这种情况时,您会听到关闭的声音,因为您希望将声音缓冲区保持在较小以最小化延迟,

其次,您将与硬件(即声卡)交互,Java 不支持这种东西,因此您要么必须在 JNI 中编写一些硬件抽象,要么找到现有的解决方案,但这样做有问题。您不太可能从 Java 平台获得实时性能。

你想要做的是你想要去做C++,你会想要了解更多关于偏微分、DSP、声音合成和波形分析的知识。这是相当多的工作,但如果你开始阅读相关研究,它应该会给你一个很好的方向感......

于 2009-02-07T08:40:30.977 回答