是否有类似于 Linux 的立体声(单独的左右声道)音调发生器?您可以在其中为每个通道设置音量和音调/音高,最好还设置波形(正弦、方波、锯齿等)并反转一个通道(与另一个通道相反)。
如果没有,有没有关于一个好的地方开始制作的想法?我想最简单的方法是适应现有的程序,如合成器……但如果效果不佳,是否有任何库(如 SDL?)可以用作此类程序的基础?
Cir*_*郝海东 13
ffmpeg
ffmpeg 可以做到,像往常一样。
创建一个 5 秒的单声道 1000Hz 正弦out.wav
声音文件:
sudo apt-get install ffmpeg
ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" out.wav
Run Code Online (Sandbox Code Playgroud)
立体声代替-ac 2
:
ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" -ac 2 out.wav
Run Code Online (Sandbox Code Playgroud)
该文件将是 2 倍大,并且ffprobe
会说它有2 channels
而不是1 channel
.
在不创建文件的情况下播放音频 5 秒钟:
ffplay -f lavfi -i "sine=frequency=1000:duration=5" -autoexit -nodisp
Run Code Online (Sandbox Code Playgroud)
永远玩,直到你发疯:
ffplay -f lavfi -i "sine=frequency=1000" -nodisp
Run Code Online (Sandbox Code Playgroud)
文档:
另一部分 sunder音频源记录了除 之外的其他有用的声音生成算法sine
,例如:
参考书目:
在 Ubuntu 18.04、ffmpeg 3.4.6 中测试。
没有额外库的最小 C 音频生成示例
只是为了好玩:https : //stackoverflow.com/questions/732699/how-is-audio-represented-with-numbers-in-computers/36510894#36510894
Bru*_*ger 10
您可能会查看speaker-test
我在 alsa-utils 包中找到的(在 Arch 机器上)。
speaker-test -c2 -t sine
从 xterm 运行,给我一个 440 Hz 的正弦波,每个大约 6 秒,左右扬声器交替。在 xterm 中,它提供了一些关于它认为正在使用的扬声器的信息。
根据手册页,它可以做任意频率和粉红噪声的正弦波。
该siggen
程序应该可以解决问题。
它有两个具有独立信号的通道以及它们之间的相位。每个通道可以执行以下信号类型:
您可以像这样在立体声模式下运行它:
siggen -2
Run Code Online (Sandbox Code Playgroud)
请注意,这依赖于OSS/dev/dsp
提供的内容
。OSS 已被ALSA取代,并于 2006 年左右被弃用,因此您可能需要安装兼容性库。在基于 Debian 的发行版上,安装该软件包并按如下方式运行:alsa-oss
aoss siggen -2
Run Code Online (Sandbox Code Playgroud)
您还可以使用软件包中提供的 PulseAudio OSS Wrapper 进行尝试pulseaudio-utils
:
padsp siggen -2
Run Code Online (Sandbox Code Playgroud)