GNU/Linux >> Znalost Linux >  >> Linux

Jak dát něco potrubím do audio výstupu?

Našel jsem věci do aplay funguje dobře.

journalctl | aplay nezní to hezky, ale funguje překvapivě dobře.

Zde je příklad z aplay(1) :

aplay -c 1 -t raw -r 22050 -f mu_law foobar
              will play the raw file "foobar" as a 22050-Hz, mono, 8-bit, Mu-Law .au file.

Lze jej nalézt jako součást alsa-utils balíček na debian/ubuntu.

Zde je 1-linka, která se mi líbí, která odráží malý program v C do gcc a spouští zkompilovanou verzi a převádí ji do přehrávání. Výsledkem je překvapivě pěkná 15minutová opakující se skladba.

echo "g(i,x,t,o){return((3&x&(i*((3&i>>16?\"BY}6YB6$\":\"Qj}6jQ6%\")[t%8]+51)>>o))<<4);};main(i,n,s){for(i=0;;i++)putchar(g(i,1,n=i>>14,12)+g(i,s=i>>17,n^i>>13,10)+g(i,s/3,n+((i>>11)%3),10)+g(i,s/5,8+n-((i>>10)%3),9));}"|gcc -xc -&&./a.out|aplay

Bylo to možné s /dev/dsp , který je součástí OSS, který již dlouho není součástí linuxového jádra. Dříve to bylo stejně snadné jako cat some_file >/dev/dsp nebo some_program >/dev/dsp .

PulseAudio poskytuje padsp .

padsp spustí určený program a přesměruje jeho přístup na audio zařízení kompatibilní s OSS (/dev/dsp a pomocná zařízení) na zvukový server PulseAudio.

Příklady:

  • náhodná data

    </dev/urandom padsp tee /dev/dsp >/dev/null
    
  • běžný soubor

    </etc/fstab padsp tee /dev/dsp >/dev/null
    
  • síťová aktivita

    sudo tcpdump | padsp tee /dev/dsp >/dev/null
    
  • blokovat zařízení

    sudo cat /dev/sda | padsp tee /dev/dsp >/dev/null
    

V mém Ubuntu 18.04.4 LTS padsp je z pulseaudio-utils balíček.


Linux
  1. Jak vygenerovat náhodné heslo v linuxu pomocí /dev/random

  2. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  3. Linux:Rozdíl mezi /dev/console, /dev/tty a /dev/tty0?

  1. Jak přenosné jsou /dev/stdin, /dev/stdout a /dev/stderr?

  2. Kdy použít /dev/random vs /dev/urandom?

  3. Jak převést potrubí /dev/urandom do linuxového zvukového výstupu?

  1. Jak vyměnit vadný pevný disk v softwarovém RAID systému Linux

  2. Kdy mám použít /dev/shm/ a kdy /tmp/?

  3. Proč jsou < nebo > vyžadovány pro použití /dev/tcp