Os poderes do /dev/dsp

OSS (Open Sound System) é uma interface de reprodução e captura de som em sistemas Unix-like, este pode prover uma interface ao hardware de som.  Utilizado até o kernel 2.4  (estamos no 3.18)  seu uso atualmente se resume a uma camada de emulação do OSS.

O dispositivo padrão de entrada e saída é o /dev/dsp que reproduz sons mono de 8-bit à taxa de 8 kHz.  A parte interessante disso tudo é que -como sabemos- podemos enviar um stream de dados diretamente aos dispositivos que são assim reconhecidos pelo linux (/dev), e podemos, em forma de áudio, escutar tudo àquilo que é enviado a este dispositivo.

Ainda não entendeu? resumidamente podemos transformar tudo aquilo que gera uma saída, seja texto puro, binário… em áudio.

Dito isso, podemos escutar desde música (não me diga) até mesmo os dados do seu hd, memória ram, movimentos do mouse, tráfego de dados na rede, programas, dentre outros.

Podemos ouvir:

A sua imagem predileta:

$ cat imagem.jpg > /dev/dsp

Memória ram:

# cat /dev/mem > /dev/dsp

Tráfego de dados na rede:

# tcpdump -v > /dev/dsp

Seu HD, por que não?

# dd if=/dev/sda of=/dev/dsp

Coisas aleatórias

$ cat /dev/urandom > /dev/dsp

Um programa qualquer

$ cat programa > /dev/dsp

Saída de um programa qualquer

$ ./programa > /dev/dsp

E música?

sound_music_itunes_green

Obviamente é perfeitamente possível escutar uma música e outros sons audíveis mas ironicamente é levemente mais trabalhoso; se quer testar algo de imediato baixe este arquivo e o execute da mesma forma que o exemplo da imagem predileta. i.e:  $ cat 8k8bitpcm.wav > /dev/dsp

Como dito inicialmente o /dev/dsp reproduz sons mono de 8-bit com taxa de 8kHz e cada byte enviado é interpretado como uma amplitude sonora, então para isso precisamos de enviar um áudio puro, em seu formato exatamente da forma como será reproduzido, sem codecs, cabeçalhos, nem nada disso, então mp3 está totalmente fora de cogitação. O formato que iremos usar é o WAV (Waveform Audio File Format) criado pela Microsoft e IBM para armazenar puramente o ‘bitstreaming’ de áudio.

Não preciso dizer que temos que converter o áudio a ser reproduzido, podemos fazer de pelo menos 2 formas, com o SoX (Sound eXchange, nativo em linux) e ffmpeg disponível aqui para download.

SoX:       sox musica.mp3 -r 8000 -c1 -b 8 musica.wav

ffmpeg:  ffmpeg -i musica.mp3 -codec pcm_u8 -ar 8000 -ac 1 musica.wav


E isso é tudo pessoal, percebam que as possibilidades são infinitas e que vocês podem ouvir dezenas de coisas que lhe derem na teia (deixo como desafio ouvirem esta página html).  No próximo post sairei  um pouco dos sons abstratos e mostrarei que é possível até mesmo criar programas que gerem sons audíveis e compreensíveis por meio disto, considero inclusive uma forma de arte. O nome disso? fica pro próximo post, até mais ;-) .

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre user="" computer="" escaped="" class="" title="" data-url=""> <span class="" title="" data-url="">