Command-Line
如何為 /dev/audio 指定特定的音調?
cat /dev/urandom
生成所有可能“值”的隨機序列。cat /dev/urandom | padsp tee /dev/audio > /dev/null
將這些“值”定向到您的音頻設備,將它們變成“隨機雜訊”或“隨機音調”(請參閱:在 /dev/snd/ 中生成隨機雜訊以獲得樂趣)但是我怎麼能做同樣的事情,而不是隨機雜訊/音調,我從所有可能的值中選擇一個值,並且
cat
無限期地選擇音頻設備(創建相同值的序列而不是隨機值)?這應該產生單一一致的音調。
界面
您可以手動嘗試不同的值,但一個假想的“界面”可以更容易地選擇/點擊您想要的值:
- 頻率(Hz) 例如 440
- 幅度(0 - 1) 例如 0.8
我寧願不使用音頻文件,例如 file.wav、file.mp3、file.ogg 等。只是一個 bash 腳本和預設的 cli 應用程序(例如
cat
,padsp
等)。
您可以玩任何可以做數學的東西(
sin
尤其是),並將一個數字作為字元寫入標準輸出。例如:awk --characters-as-bytes 'BEGIN { freq=2200; amp=0.3; for (i=0; i>=0; i++) { printf "%c", 127+ amp*(127.0*sin(2*3.14159265/44100*i*freq)); } }' | padsp tee /dev/audio > /dev/null
根據您的設置方式
freq
,它聽起來更像是一個警報器……也許這是可以玩的東西,具體取決於您的案例。幅度用 調整
amp
,最大 1.0。請注意,我使用的是 GNU awk,因此
--characters-as-bytes
有效。您不希望在寫入標準輸出時對字元進行 UTF-8 編碼!此外,根據您的系統,如果預設採樣率不同,您可能希望將 44100 替換為 48000 或不同的數字。