Я хочу сгенерировать сигнал PWM на Ubuntu. Моя первая попытка состояла в том, чтобы использовать 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
Что не так?
Последняя Ubuntu выпускает с /dev/dsp
поддержка была 10.04. После той поддержки /dev/dsp
был удален.
Все еще смочь использовать более старое программное обеспечение, которые полагаются /dev/dsp
существует обертка совместимости padsp, который перенаправляет звуковой вывод, предназначенный для dsp
к выполнению pulseaudio сервер. Мы можем использовать эту обертку со следующей терминологией:
padsp [options] APPLICATION [arguments ...]
padsp signalgen -v sin 120
Этим мы можем также играть вывод signalgen на нашу звуковую карту. OSS complatibility слой будет установлено как зависимость с siggen .
Если мы не хотим производить звук непосредственно, мы можем использовать signalgen
непосредственно записать необработанный звуковой файл, чтобы затем играть этот файл посредством использования ALSA aplay
signalgen -w filename -t 5 sin 120 & aplay filename
Обратите внимание, что signalgen выйдет если filename
уже существовал.
Лучший подход для генерации волн без потребности слоя совместимости был бы приложениями, которые могут непосредственно обратиться к ALSA или PuleAudio.
Носки установят игру утилиты командной строки, которая будет не только играть звуковые файлы, но может также генерировать аудио формы сигнала и может добавить эффекты к ним:
play -n synth sine 120.0 gain 0.0