声卡不支持使用 signalgen 请求的格式

声卡不支持使用 signalgen 请求的格式

我想在 Ubuntu 上生成 PWM 信号。我第一次尝试使用siggen包。启动时signalgen出现以下错误:

$ signalgen -v sin 120
signalgen  Ver. 2.3.10 (May 2008)   Digital Signal Generator
/dev/dsp : DAC Opened for output
22050 mono, signed 16 bit, little endian, samples/sec.
8192 bytes per DAC buffer.
[signalgen] Invalid argument : Sound card doesn't support format requested.
$ sudo signalgen -v sin 120
signalgen  Ver. 2.3.10 (May 2008)   Digital Signal Generator
[signalgen] Input/output error : /dev/dsp

怎么了 ?

答案1

最后一个提供支持的 Ubuntu 版本/dev/dsp是 10.04。此后,对它的支持/dev/dsp被取消。

为了能够继续使用依赖于/dev/dsp兼容性包装器的旧软件垫片它将声音输出重定向到dsp正在运行的 pulseaudio 服务器。我们可以用以下术语使用此包装器:

padsp [options] APPLICATION [arguments ...]
padsp signalgen -v sin 120

通过这种方式,我们也可以播放信号发生器到我们的声卡。OSS 兼容层将作为依赖项安装信号 安装 siggen

如果我们不想直接输出声音,我们可以signalgen直接写入原始音频文件,然后使用 ALSA 播放此文件aplay

signalgen -w filename -t 5 sin 120 & aplay filename

filename请注意,如果已经存在,signalgen 将退出。


不需要兼容层的生成波的更好方法是能够直接寻址 ALSA 或 PuleAudio 的应用程序。

袜子 安装 sox

Sox 将安装命令行实用程序它不仅可以播放声音文件,还可以生成音频波形并为其添加效果:

play -n synth sine 120.0 gain 0.0

相关内容