オーディオ出力にデータをパイプするにはどうすればよいですか?たとえば、ファイル、アーカイブ、ドライブのバックアップ、プログラムを聞きたいと思っています。または、HDDを聴きたい-7年ほど前に可能だったことについて漠然と読んだことを覚えているが、今は何も見つからない。
つまり、ファイル、ディスクの読み取り、さらにはネットワーク接続まで、何でも聞くことができるようにしたいのです。 Linuxではそれが間違いなく可能であることを知っています。どうすればできますか? Lubuntu 20.04の使用
aplay
へのパイプ処理はうまく機能することがわかりました。
_journalctl | aplay
_はきれいに聞こえませんが、驚くほどうまく機能します。
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.
_
これは、debian/ubuntuの_alsa-utils
_パッケージの一部として見つけることができます。
これは、小さなCプログラムをgccにエコーし、コンパイルされたバージョンを実行してaplayにパイプする、好きな1ライナーです。その結果、驚くほど素敵な15分の繰り返しの曲になります。
_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
_
これは、OSSの一部である/dev/dsp
で可能でした。OSSは、Linuxカーネルの一部ではありませんでした。以前はcat some_file >/dev/dsp
またはsome_program >/dev/dsp
と同じくらい簡単でした。
PulseAudioはpadsp
を提供します。
padsp
は、指定されたプログラムを起動し、OSS互換オーディオデバイス(/dev/dsp
および補助デバイス)へのアクセスをPulseAudioサウンドサーバーにリダイレクトします。
( ソース )
例:
ランダムデータ
</dev/urandom padsp tee /dev/dsp >/dev/null
通常ファイル
</etc/fstab padsp tee /dev/dsp >/dev/null
ネットワーク活動
Sudo tcpdump | padsp tee /dev/dsp >/dev/null
ブロックデバイス
Sudo cat /dev/sda | padsp tee /dev/dsp >/dev/null
私のUbuntu 18.04.4 LTSでは、padsp
はpulseaudio-utils
パッケージからのものです。