Audio
用於 Linux 的立體聲“音調發生器”?
是否有類似 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
,例如:參考書目:
- https://superuser.com/questions/724391/how-to-generate-a-sine-wave-with-ffmpeg
- https://stackoverflow.com/questions/11831214/how-to-run-ffplay-as-a-window-less-process/53295994#53295994
在 Ubuntu 18.04、ffmpeg 3.4.6 中測試。
沒有額外庫的最小 C 音頻生成範例