sox:如何在 OSX 上指定音频输入和音频输出设备

reg*_*tre 5 sox macos coreaudio

在Linux中,我曾经使用以下命令,该命令接受音频输入,应用混响和音调变换效果,然后将结果输出到指定的音频设备。

sox -r 44100 -t alsa hw:1 -t alsa hw:0 reverb 1 50 10 50 pitch 100
Run Code Online (Sandbox Code Playgroud)

在 mac/OSX 上,我已经安装了命令行音频实用程序sox,并且我可以使用-d(默认音频设备)录制或播放音频,但我无法让 sox 执行与我在 Linux 中所做的相同的实时音频操作多于。我认为关键是找出该-t选项指定的内容

reg*_*tre 5

事实上,诀窍是 1. 指定-t coreaudio后跟设备名称,2. 弄清楚设备名称的用途。

设备名称的用途:

$ sox -V6 -n -t coreaudio junkname

<snip>
sox INFO coreaudio: Found Audio Device "Built-in Mi"
sox INFO coreaudio: Found Audio Device "Built-in Ou"
sox INFO coreaudio: Found Audio Device "Scarlett 2i"
Run Code Online (Sandbox Code Playgroud)

完整命令行:

sox -r 48000 -t coreaudio "Scarlett 2i2 USB" -t coreaudio "Built-in Output" reverb 1 50 10 50 pitch 100
Run Code Online (Sandbox Code Playgroud)

我能够使用 -V6 输出中显示的缩写名称以及系统首选项下的声音设置中看到的全名成功运行该命令。

操作系统:Mojave/10.14、Darwin 18.7.0 Darwin 内核版本 18.7.0:2019 年 10 月 12 日星期六 00:02:19 PDT;根:xnu-4903.278.12~1/RELEASE_X86_64 x86_64