The real parameter represents an array of cosine terms (traditionally the A terms). In audio terminology, the first element (index 0) is the DC-offset of the periodic waveform and is usually set to zero. The second element (index 1) represents the fundamental frequency. The third element represents the first overtone, and so on.
<span>var audioContext = new AudioContext(); </span><span>var osc = audioContext.createOscillator(); </span> <span>var real = new Float32Array([0,0.4,0.4,1,1,1,0.3,0.7,0.6,0.5,0.9,0.8]); </span> <span>var imag = new Float32Array(real.length); </span><span>var hornTable = audioContext.createPeriodicWave(real, imag); </span> osc <span>= audioContext.createOscillator(); </span>osc<span>.setPeriodicWave(hornTable); </span>osc<span>.frequency.value = 160; </span>osc<span>.connect(audioContext.destination); </span>osc<span>.start(0);</span>
並不是完全舒緩的聲音,而是非常接近錄製的聲音。當然,聲音綜合遠遠超出了單獨的頻譜,特別是信封是音色同樣重要的方面。 從信號數據到傅立葉表 像我們剛剛一樣手工創建傅立葉係數是很不尋常的(很少有聲音像我們的喇叭聲一樣簡單,它僅由諧波部分組成,即F的倍數)。通常,通過將真實信號數據饋入逆FFT(快速傅立葉變換)算法來計算傅立葉表。 您可以在鉻存儲庫中找到用於選擇聲音的傅立葉係數,其中包括下面播放的器官聲音:
美國警察警報器在低頻和高頻之間振盪。通過連接兩個振盪器,我們可以使用Web音頻API實現這一目標。第一個(低頻振盪器或LFO)調節第二個產生可聽見聲波的第二個頻率。 與以前一樣,為了解構真實的東西,我們從同一錄音中拍攝了警察警報聲的光譜儀。
現在,我們看到一個鯊魚鰭狀波形,代表了警笛的節奏調製。標準振盪器僅支持正弦,方形,鋸齒和三角形波形,因此我們不能依靠這些波形來模仿這種特定的波形。但是我們可以再次創建一個自定義振盪器。 首先,我們需要代表所需曲線的值數組。以下功能會產生這樣的值,我們將其塞入一個名為Sharkfinvalues的數組中。The real parameter represents an array of cosine terms (traditionally the A terms). In audio terminology, the first element (index 0) is the DC-offset of the periodic waveform and is usually set to zero. The second element (index 1) represents the fundamental frequency. The third element represents the first overtone, and so on.
<span>var audioContext = new AudioContext(); </span><span>var osc = audioContext.createOscillator(); </span> <span>var real = new Float32Array([0,0.4,0.4,1,1,1,0.3,0.7,0.6,0.5,0.9,0.8]); </span> <span>var imag = new Float32Array(real.length); </span><span>var hornTable = audioContext.createPeriodicWave(real, imag); </span> osc <span>= audioContext.createOscillator(); </span>osc<span>.setPeriodicWave(hornTable); </span>osc<span>.frequency.value = 160; </span>osc<span>.connect(audioContext.destination); </span>osc<span>.start(0);</span>
請參閱Codepen上的Seb Molines(@clafou)的筆警笛。
對於更多的現實主義,我們還可以將自定義波形應用於第二個振盪器,正如我們用喇叭聲所顯示的那樣。> Web Audio API是用於處理和合成Web應用程序中音頻的高級JavaScript API。它允許開發人員選擇音頻源,為音頻添加效果,創建音頻可視化,應用空間效果(例如平移)等等。它通過創建音頻上下文來起作用,可以從中創建各種音頻節點並將其連接在一起以形成音頻路由圖。每個節點都執行特定的音頻函數,例如產生聲音,更改音量或應用音頻效果。
Web Audio API? Web音頻API通常用於Web應用程序中的各種目的。其中包括播放和控制音頻,在遊戲中添加聲音效果,創建音頻可視化,在虛擬現實應用程序中應用空間效果,等等。它提供了一種強大而靈活的方式,可以在Web應用程序中使用音頻。 Web Audio API API的某些限制是什麼?強大而靈活,它確實有一些局限性。例如,它需要一個支持API的現代瀏覽器,用於更高級的音頻處理任務可能很複雜。此外,由於它是高級API,因此與低級API相比,它可能無法提供某些應用所需的控制級別。 >有許多資源可用於了解有關Web音頻API的更多信息。 Mozilla開發人員網絡(MDN)提供了有關API的全面文檔,包括指南和教程。在Codecademy,Udemy和Coursera等網站上也有許多在線教程和課程。此外,還有幾本關於該主題的書籍,例如Boris Smus的“ Web Audio API”。>如何使用Web Audio API控制音頻的播放?這包括啟動和停止音頻,調整播放率並尋求音頻不同部分的能力。這通常是使用AudioBufferSourcenode接口完成的,該接口代表由內存音頻數據組成的音頻源。
我可以使用Web Audio API記錄音頻嗎?是的,可以使用Web音頻API記錄音頻,儘管這不是其主要目的。這通常是使用MediaStreamAudioSourCenode接口完成的,該接口代表由媒體流組成的音頻源(例如來自麥克風或其他音頻輸入設備)。
>我如何了解有關Web Audio API的更多信息? 🎜>
以上是使用Web音頻API使用傅立葉變換的詳細內容。更多資訊請關注PHP中文網其他相關文章!