我正在研究製作音樂理論實驗室應用程序,您可以在其中看到音樂理論概念之間的圖形關係。我希望這可以在網上找到,所以Flash和Silverlight都浮現在腦海。Dynamic Audio Generation Actionscript 3
但我想從用戶輸入動態生成音調和和絃等。我知道這是Flash Player中一個非常不發達的區域。所以我的問題是Flash和Silverlight播放器上的動態音頻生成功能的當前狀態是什麼?
我正在研究製作音樂理論實驗室應用程序,您可以在其中看到音樂理論概念之間的圖形關係。我希望這可以在網上找到,所以Flash和Silverlight都浮現在腦海。Dynamic Audio Generation Actionscript 3
但我想從用戶輸入動態生成音調和和絃等。我知道這是Flash Player中一個非常不發達的區域。所以我的問題是Flash和Silverlight播放器上的動態音頻生成功能的當前狀態是什麼?
因此,Silverlight和Flash似乎認爲Flash可以在動態音頻生成功能上擊敗Silverlight(這讓我感到意外,因爲我考慮了Flash在Flash中的基本音頻支持情況)。看來Silverlight根本無法生成動態音頻,並且Flash只能從播放器的第10版開始正式生成。
我可以在兩個平臺上找到關於動態音頻未來的非常少的信息,但Flash目前有最活躍的討論。
有辦法做到這一點,涉及到一點點的黑客行爲。我不記得確切機制,但你可以看看(或使用)現有的流媒體庫,例如StandingWave: http://code.google.com/p/standingwave/ 或Popforge的東西: http://code.google.com/p/popforge/
它希望能提供更多的信息比我就在這兒。 :)
從Flash Player 10開始,你不需要做任何黑客類型的東西。有一個API可以動態生成聲音。
This blog post has a quick introduction。他的代碼從一個mp3裏讀取樣本,但是你可以用任何你想要的方式寫樣本。
一如既往the docs也有很多信息,以及這個代碼示例,應該讓你很快進入。
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();
您還可以在http://lab.andre-michelle.com/找到許多有趣的源代碼和示例。 – speps 2010-06-04 17:01:03
你可以嘗試The Synthesis ToolKit in AS3這是從C++由我:)移植
這是一個從standingwave和popforge不同,STK在AS3提供了現實生活中的文書,如長笛和單簧管供您使用該前兩個不要。
整齊的圖書館! – ina 2011-02-13 15:28:58
@Dentoid感謝您的鏈接我會給他們看看他們能爲我做些什麼 – 2009-09-20 10:01:19