2010-06-07 73 views
10

我只想通过给我的电脑一个整数的频率来演奏一个非常简单,直接的音符,然后从那里我可以找出如何使音符演奏更长或更短的音符。它不一定必须从实际的声卡中出来 - 如果它是由内部扬声器生成并输出的,那么可以。在java中播放单个频率的简单方法?

我看了一下java包含的midi库,它们比我想做的要多得多。这只需要非常基本。

回答

2

example构造和播放equal tempered scale

+0

这是比我所希望的更多的代码,但非常坚实,而且我搜索的任何其他代码都是最短的。谢谢! – nathas 2010-06-07 19:43:20

0

据我所知,如果没有Java中的一些样板代码,没有办法做到这一点。最简单的API可能是由静态newAudioClip(URL url) - 方法的Applet类提供的(也可以由非Applets使用)。但是,这只能让您播放预定义的音频剪辑,而且您几乎无法控制音频。如果你只需要从一个小的预定义的片段播放音频就足够了(你可以有一组包含你的音符的wav文件并以这种方式播放,如果需要,AudioClip可以循环播放)。

除此之外,midi和采样音频API功能更强大,但灵活性的代价是:您需要更多的代码来设置它们。

7

调查JFugue - 做一些基本的东西真的很容易,如果您想稍后扩展,功能就在那里。

Player player = new Player(); 
player.play("A C# E"); 
+2

此外,您可以使用JFugue的MicrotoneHelper类为一个字母指定一个特定的频率(以赫兹为单位),然后将该字母用作播放音调的音符。 – 2010-07-15 20:39:00

+0

哦,是新的?我还没有玩过它。 (/我下载新版本...) – 2010-07-15 21:24:38

相关问题