簡體   English   中英

如何使用Delphi播放單音或自定義波?

[英]How can I play a single tone or custom wave with Delphi?

我查了一些代碼,似乎一切都在創造一些數學函數波,但我想要一個單音,或者用自定義單音制作的自定義波。

我讀過這個如何生成不同頻率的連續音?

哪個接近我的答案。 Assumin我將在上面的鏈接中使用waveOutWrite,我似乎無法弄清楚如何為HWAVEOUT中的每個Sample計算放大器/頻率。

在鏈接的代碼中這樣做: Samples[i] := round(vol*sin(omega*t));

假設我想要15kHz freq單音和一些放大器(無關緊要),如何計算樣本[1]?

連續(時間)正弦波可以定義為A*sin(2*PI*f*t) ,其中A是一些幅度, PI是,良好,3.14 ......, f是以赫茲為單位的音調頻率和t是秒的時間。

現在,因為你沒有連續的時間,因為你的時間是離散的,你用dt*i代替t並得到A*sin(2*PI*f*dt*i) ,其中dt是樣本之間的時間或1/sample ratei是樣本編號。 你可以拼寫為A*sin(2*PI*(f/Fs)*i) 請注意,一旦選擇某個采樣率Fs (采樣/秒或簡稱Hz),最高音調永遠不會大於Fs/2 Hz。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM