8

我正在研究制作一个音乐理论实验室应用程序,您可以在其中看到音乐理论概念之间的图形关系。我希望这个可以在线获得,所以我想到了 Flash 和 Silverlight。

但我想从用户输入动态生成音调和和弦等。我知道这是 Flash Player 中一个非常不发达的领域。所以我的问题是 Flash 和 Silverlight 播放器的动态音频生成功能的当前状态是什么?

4

4 回答 4

3

从 Flash Player 10 起,您不需要做任何 hacky 类型的东西。有一个 API 可以动态生成声音。

这篇博文有一个快速介绍。他的代码从 mp3 中读取样本,但您可以以任何方式编写样本。

与往常一样,文档也有很多信息,以及这个代码示例,它应该可以让你很快完成。

var mySound:Sound = new Sound();
function sineWaveGenerator(event:SampleDataEvent):void {
    for ( var c:int=0; c<8192; c++ ) {
        event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25);
        event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25);
    }
}

mySound.addEventListener(SampleDataEvent.SAMPLE_DATA,sineWaveGenerator);
mySound.play();
于 2009-09-20T11:15:15.287 回答
2

你可以试试我从 C++ 移植的 AS3 中的 Synthesis ToolKit :)

standingwavepopforge不同,AS3 中的STK 提供了长笛和单簧管等现实生活中的乐器供您使用,而前两者没有。

于 2009-09-20T12:42:24.130 回答
1

有一些方法可以做到这一点,这涉及到相当多的黑客攻击。我不记得确切的机制,但你可以看看(或使用)现有的流媒体库,如 ​​StandingWave: http ://code.google.com/p/standingwave/ 或 Popforge 的东西: http:// code.google.com/p/popforge/

希望它可以提供比我在这里更多的信息。:)

于 2009-09-20T09:57:08.633 回答
0

因此,似乎在 Silverlight 和 Flash 之外,Flash 在动态音频生成功能上胜过 Silverlight(考虑到 Flash 中的基本音频支持如何让我感到惊讶)。Silverlight 似乎根本无法生成动态音频,而 Flash 从播放器版本 10 开始只能正式这样做。

我在这两个平台上都找不到关于动态音频未来的信息,但目前 Flash 的讨论最为活跃。

于 2009-10-01T13:10:53.223 回答