A placa de som não suporta o formato solicitado usando signalgen

2

Eu quero gerar um sinal PWM no Ubuntu. Minha primeira tentativa foi usar o pacote siggen . Após o lançamento de signalgen , tenho o seguinte erro:

$ 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

O que está errado?

    
por Patryk 19.03.2014 / 13:55

1 resposta

2

A última versão do Ubuntu com /dev/dsp de suporte foi 10.04. Depois disso, o suporte para /dev/dsp foi removido.

Para continuar a utilizar software mais antigo que dependa de /dev/dsp , existe um padsp que redireciona a saída de som para dsp para um servidor pulseaudio em execução. Podemos usar este wrapper com a seguinte terminologia:

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

Por isso, podemos também reproduzir a saída signalgen da nossa placa de som. A camada de compatibilidade do OSS será instalada como uma dependência com siggen .

Se não quisermos emitir o som diretamente, podemos usar signalgen para gravar diretamente um arquivo de áudio bruto para reproduzir esse arquivo por meio do ALSA usando aplay

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

Observe que signalgen sairá se filename já existisse.

Uma abordagem melhor para gerar ondas sem a necessidade de uma camada de compatibilidade seria uma aplicação capaz de abordar diretamente o ALSA ou o PuleAudio.

Sox < img src="https://hostmar.co/software-small"> .

O Sox instalará o utilitário de linha de comando play que não só reproduzir arquivos de som, mas também pode gerar formas de onda de áudio e pode adicionar efeitos a elas:

play -n synth sine 120.0 gain 0.0
    
por Takkat 20.03.2014 / 13:14