在 /dev/snd/ 中产生随机噪声以获得乐趣

jon*_*nes 45 alsa audio

最近我一直在探索迷人的 /dev 文件夹。我想将一些随机数据写入音频设备以产生一些噪音。

我正在使用 ALSA。

所以我指示 cat 将一些随机数据通过管道传输到 /dev 文件夹中的播放文件...

 cat file-of-random-data > /dev/snd/pcmC0D0p
Run Code Online (Sandbox Code Playgroud)

然后我收到了来自 cat 的似乎是错误的信息

 cat: write error: File descriptor in bad state
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题,以便我可以从我的声卡中听到一些美妙的静态播放?

小智 52

我认为这对您不起作用的原因是该接口已被弃用。您通常不能再使用编写音频/dev/dsp,至少不会很棘手。

有一个程序可以在您的系统上为您完成此操作:padsp. 这会将/dev/audio/dev/dsp文件映射到新的音频服务器系统。

启动终端并使用 进入 root 模式sudo su

然后,我将通过cat /dev/urandom管道将输出导入padsp并使用tee命令将数据发送到/dev/audio. 您会在终端中收到大量垃圾,因此您可能需要重定向到/dev/null.

进入超级用户后,请尝试以下命令:

cat /dev/urandom | padsp tee /dev/audio > /dev/null
Run Code Online (Sandbox Code Playgroud)

您甚至可能想尝试使用其他设备,例如您的鼠标:/dev/psaux例如,使用:或 USB 驱动程序。你甚至可以通过它运行你的记忆: /dev/mem

希望这能澄清为什么它以前不起作用。

就个人而言,我发现鼠标和内存比播放随机静态更有趣!

  • 似乎不需要`sudo`权限。 (3认同)
  • 非常感谢。我发现二进制文件非常有趣。诸如 /usr/bin/ls /usr/bin/gnome-terminal /usr/bin/mysql 之类的东西 (2认同)

Pau*_*ian 9

cat /dev/urandom | aplay 是需要输入的命令。如果您不在“音频”组中,则可以使用 sudo 作为 aplay 前缀。这也不会干扰任何守护进程(我pulseaudio在此命令处于活动状态时运行并正确听到“噪音”。

编辑(2019 年 8 月 6 日):在旧版本的命令中,我padsp teecat和之间也有一个东西aplay。现在我实际上在该领域工作,我意识到这完全没有意义。另外,我知道更新的命令(现在在本答案开头可见的命令)有效,因为我每天在工作中使用它几次。

  • 我使用 ALSA,不需要“padsp tee”。 (8认同)