2009-09-20 65 views
8

我正在研究製作音樂理論實驗室應用程序,您可以在其中看到音樂理論概念之間的圖形關係。我希望這可以在網上找到,所以Flash和Silverlight都浮現在腦海。Dynamic Audio Generation Actionscript 3

但我想從用戶輸入動態生成音調和和絃等。我知道這是Flash Player中一個非常不發達的區域。所以我的問題是Flash和Silverlight播放器上的動態音頻生成功能的當前狀態是什麼?

回答

0

因此,Silverlight和Flash似乎認爲Flash可以在動態音頻生成功能上擊敗Silverlight(這讓我感到意外,因爲我考慮了Flash在Flash中的基本音頻支持情況)。看來Silverlight根本無法生成動態音頻,並且Flash只能從播放器的第10版開始正式生成。

我可以在兩個平臺上找到關於動態音頻未來的非常少的信息,但Flash目前有最活躍的討論。

1

有辦法做到這一點,涉及到一點點的黑客行爲。我不記得確切機制,但你可以看看(或使用)現有的流媒體庫,例如StandingWave: http://code.google.com/p/standingwave/ 或Popforge的東西: http://code.google.com/p/popforge/

它希望能提供更多的信息比我就在這兒。 :)

+0

@Dentoid感謝您的鏈接我會給他們看看他們能爲我做些什麼 – 2009-09-20 10:01:19

3

從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(); 
+1

您還可以在http://lab.andre-michelle.com/找到許多有趣的源代碼和示例。 – speps 2010-06-04 17:01:03

2

你可以嘗試The Synthesis ToolKit in AS3這是從C++由我:)移植

這是一個從standingwavepopforge不同,STK在AS3提供了現實生活中的文書,如長笛和單簧管供您使用該前兩個不要。

+0

整齊的圖書館! – ina 2011-02-13 15:28:58