Audio

用於 Linux 的立體聲“音調發生器”?

  • November 24, 2021

是否有類似 Linux 的立體聲(分離的左右聲道)音調發生器之類的東西?您可以在其中設置每個通道的音量和音調/音高,最好還設置波形(正弦波、方波、鋸齒波……)並反轉一個通道(而不是另一個)。

如果沒有,有什麼想法可以從一個好的地方開始製作嗎?我想最簡單的方法是改編現有的程序,如合成器……但如果效果不佳,是否有任何庫(如 SDL?)可以用作此類程序的基礎?

聽起來您正在尋找Audacity,它是一個跨平台的開源音頻編輯器。它的功能之一是允許您生成音調。它是一個多軌音頻編輯器,因此您可以輕鬆創建立體聲。

在該Generate菜單下,您可以創建任意頻率、幅度和長度的正弦波、鋸齒波和方波音調,而無需記錄或需要額外的輸入文件。

ffmpeg

ffmpeg 可以像往常一樣做到這一點。

創建一個 5 秒的單聲道 1000Hz 正弦out.wav聲音文件:

sudo apt-get install ffmpeg
ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" out.wav

立體聲,而不是-ac 2

ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" -ac 2 out.wav

該文件將是 2 倍大,並ffprobe會說它有2 channels而不是1 channel.

在不創建文件的情況下播放音頻 5 秒:

ffplay -f lavfi -i "sine=frequency=1000:duration=5" -autoexit -nodisp

永遠玩下去,直到你發瘋:

ffplay -f lavfi -i "sine=frequency=1000" -nodisp

文件:

音頻源的另一部分記錄了除 之外的其他有用的聲音生成算法sine,例如:

  • anoisesrc:多種顏色的噪音,例如白色、粉紅色、棕色
  • aevalsrc採用任意數學表達式,因此應該能夠產生三角波形(TODO 表達式)

參考書目:

在 Ubuntu 18.04、ffmpeg 3.4.6 中測試。

沒有額外庫的最小 C 音頻生成範例

只是為了好玩:https ://stackoverflow.com/questions/732699/how-is-audio-represented-with-numbers-in-computers/36510894#36510894

引用自:https://unix.stackexchange.com/questions/82112