GNU/Linux >> Linux Esercitazione >  >> Linux

Come collegare qualcosa all'uscita audio?

Trovo cose che convogliano in aplay funziona bene.

journalctl | aplay non suona bene ma funziona sorprendentemente bene.

Ecco un esempio da 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.

Può essere trovato come parte del alsa-utils pacchetto su debian/ubuntu.

Ecco un 1-liner che mi piace che fa eco a un piccolo programma C in gcc ed esegue la versione compilata, inviandola a aplay. Il risultato è una canzone sorprendentemente piacevole di 15 minuti che si ripete.

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

Era possibile con /dev/dsp , che fa parte di OSS, che non fa parte del kernel Linux da molto tempo. Prima era facile come cat some_file >/dev/dsp o some_program >/dev/dsp .

PulseAudio fornisce padsp .

padsp avvia il programma specificato e reindirizza il suo accesso ai dispositivi audio compatibili con OSS (/dev/dsp e dispositivi ausiliari) a un server audio PulseAudio.

Esempi:

  • dati casuali

    </dev/urandom padsp tee /dev/dsp >/dev/null
    
  • file normale

    </etc/fstab padsp tee /dev/dsp >/dev/null
    
  • attività di rete

    sudo tcpdump | padsp tee /dev/dsp >/dev/null
    
  • dispositivo di blocco

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

Nel mio Ubuntu 18.04.4 LTS padsp proviene dal pulseaudio-utils pacchetto.


Linux
  1. In che modo Linux gestisce più separatori di percorsi consecutivi (/home////nomeutente///file)?

  2. Linux:differenza tra /dev/console , /dev/tty e /dev/tty0?

  3. Quanto sono portatili /dev/stdin, /dev/stdout e /dev/stderr?

  4. Quando usare /dev/random vs /dev/urandom?

  5. Come codificare in base64 /dev/random o /dev/urandom?

Come reindirizzare l'output su /dev/null in Linux

Come si scambia /dev/sda con /dev/sdb?

Quando dovrei usare /dev/shm/ e quando dovrei usare /tmp/?

Linux:differenza tra /dev/console , /dev/tty e /dev/tty0

echo o print /dev/stdin /dev/stdout /dev/stderr

Perché sono necessari < o > per usare /dev/tcp