News for hackers. Stuff that matters.
Re:/dev/audio by bodyfour on Tuesday November 08, 2011 @07:01PM (#3213516)
That reminds me of a couple tricks I used to use in the old days. As an alarm clock I'd do:

  $ sleep 28800; while :; do cat /etc/termcap; done >/dev/audio
I found that termcap had just the right mix of structure and randomness to make an annoying noise that was really hard to sleep through.

Another classic was:

  $ ping -f hostname >/dev/audio
When you have zero packet loss, "ping -f" would generate an endless sequence of '.' and '\b' characters, resulting in a constant tone. When there is 100% loss you only get the '.' characters and the sound will stop. In between, you'll get a progressively noisier sound. Then just turn the speakers on your SPARCstation all the way up and crawl around the lab, flexing the 10base2 cabling until you find what segment is causing that irritating intermittent problem!
Re:/dev/audio by ja27 on Tuesday November 08, 2011 @07:32PM (#3213623)
rsh coworkersbox "cat /dev/audio" > /dev/audio

Or vice-versa. Not sure what systems it'd still work on, but it was a lot of fun on pre-Solaris SunOS machines.

Re:/dev/audio by nitrogen on Wednesday November 09, 2011 @02:46AM (#3214694)

  ssh otherbox cat /dev/dsp > /dev/dsp
should work on a Linux system with OSS emulation enabled. Or, if you have alsa-utils installed on both systems:

  ssh otherbox arecord -D plughw | aplay -D plughw
Re:/dev/audio by DanielRibeiro on Wednesday November 09, 2011 @10:13AM (#3215729)
You can also hear the sound of any phrase:

    $ yes hacker news  >/dev/audio
Re:/dev/audio by morganpyne on Tuesday November 08, 2011 @07:21PM (#3213594)
We had a lot of fun with this in University 20 years ago. Our computer lab had a handful of shiny new Sun Sparcstations. The freshmen would regularly end up hogging them (no timelimit) and we needed them for project work, so we'd just remote login to them and cat some pre-recorded messages out to /dev/audio. A very official-sounding "Please log out now, system going down for maintenance" usually worked wonders, although occasionally more serious messing with people's minds was done. Some of the 1st year students had literally no idea what a computer was capable of and would believe anything that came out of its speakers. :D
Re:/dev/audio by juiceandjuice on Tuesday November 08, 2011 @08:06PM (#3213739)
On a tangent... I remotely logged into my computer at the dorms once and opened up the webcam and microsoft speech assistant thing. I started talking to my roommate based on how he responded, and played some rage against the machine really loud. He thought the computer was possessed (he wasn't that bright overall). Anyways, when I saw him pick up the web cam and slam it into the desk I figured I better start running back the half mile to the dorms before he destroyed the whole thing. I wish I would have recorded it.
Re:/dev/audio by lloeki on Wednesday November 09, 2011 @07:56AM (#3215290)
On Mac OS X a common trick is to ssh into the box and use `say(1)`.
Re:/dev/audio by sbierwagen on Tuesday November 08, 2011 @06:57PM (#3213504)
From July 19, 2000: "Catting weird things to /dev/audio"

http://everything2.com/user/mcc/writeups/catting+weird+thing...

The eleven-year-old MP3 link in this article is dead, of course. I probably still have the files on a hard drive somewhere, but they're exactly what you would expect: weird looping noise.

Re:/dev/audio by jes5199 on Tuesday November 08, 2011 @10:15PM (#3214085)
that very node had me catting my hard drive into my speakers for weeks!
Re:/dev/audio by rwl4 on Tuesday November 08, 2011 @07:36PM (#3213644)
Only mildly related, but I have fond memories of my friend and I needing to wake each other up at different points in the 90's, and we had our neat-o Linux boxes next to our beds, and we would create loops that would echo ^G's to a tty on the console.

But if you sent them too fast the sound would completely cease, so we would have to put a sleep 1 in the loop to make a nice consistent beep-beep-beep-beep, etc.

That always amused us, and sure was useful.

Re:/dev/audio by SickAnimations on Tuesday November 08, 2011 @11:45PM (#3214294)
I found people had posted audio interpretations of binary files on YouTube.

shell32.dll: http://www.youtube.com/watch?v=mqNLuunxp0o itunes.exe: http://www.youtube.com/watch?v=iY-lJrX2VD0&;

Re:/dev/audio by tommyd on Wednesday November 09, 2011 @07:30AM (#3215229)
Probably been posted before, but this reminds me of this rather awesome article about one-liner algorithms outputting to /dev/audio to create some really quite cool "compositions": http://createdigitalmusic.com/2011/10/entire-musical-composi...

There's a site to try your own at: http://wurstcaptures.untergrund.net/music/

Re:/dev/audio by pavel_lishin on Tuesday November 08, 2011 @05:33PM (#3213177)
Alas, OS X doesn't seem to support anything like this.
Re:/dev/audio by ajross on Tuesday November 08, 2011 @06:00PM (#3213312)
Neither does modern Linux, sadly. The older SunOS-style audio devices still exist in the kernel as an emulation, but aren't loaded by default (and tend to have weird behavior vs. other parts of your distro's audio stack). The ALSA framework is the modern equivalent. It's much more featureful, but its device API is frustratingly opaque. So much so that the only "supported" interface to the driver is the libasound userspace library. This, too, is low level and opaque. So you're really supposed to use the pulseaudio middleware to actually play and mix your audio stream. And even then, the pulse API is basically PCM-only, and your stream is probably sourced from something encoded. So you really want to be using gstreamer to generate your stream and take advantage of existing codec plugins (and hardware acceleration, etc...). And even then gstreamer is opaque, so all the toolkits have wrapper APIs.

Sigh. The days of being able to spit sounds to a char device are basically over. We have more powerful software now with far more capability. And that kind of sucks, sometimes.

Re:/dev/audio by njs12345 on Tuesday November 08, 2011 @06:12PM (#3213359)
Try using `padsp tee /dev/audio` >& /dev/null

For example: sudo cat /dev/mem | `padsp tee /dev/audio` >& /dev/null

Re:/dev/audio by ajross on Tuesday November 08, 2011 @06:29PM (#3213411)
Yes yes. The existence of that silliness is kind of my point. There's nothing "wrong" with Linux audio from a technical/feature standpoint. But the aesthetics are a frothing mess. It's not a clean design.

The /dev/audio device on SunOS 4.1 was a clean design (albeit one that solved a much simpler problem). That sanity wasn't preserved in the march to modernity, and it sucks.

Re:/dev/audio by njs12345 on Tuesday November 08, 2011 @06:55PM (#3213484)
The design is pretty similar to how every other modern OS does it, I think - what would you change if you had the choice?

I mean, it's not as clean as things were, but we've come a long way since then in terms of features so obviously simplicity is going to suffer. Worth the trade off, in my opinion :)

Re:/dev/audio by burgerbrain on Tuesday November 08, 2011 @10:45PM (#3214160)
You can also use pacat

Example: `cat /dev/urandom | pacat`

Re:/dev/audio by saucerful on Tuesday November 08, 2011 @08:08PM (#3213745)
I followed along the examples by piping into the command line ALSA player 'aplay', which is I think included in all ALSA installs.
Re:/dev/audio by bingaling on Tuesday November 08, 2011 @06:13PM (#3213361)
It can be done on OS X with sox:

    cat /dev/urandom | sox -traw -r44100 -b16 -u - -tcoreaudio
Re:/dev/audio by semanticist on Tuesday November 08, 2011 @07:12PM (#3213560)
sox isn't part of core Mac OS X, and the homebrew package appears to be broken at the moment.

I don't think there's a built-in method to play raw audio like this.

Re:/dev/audio by pavel_lishin on Tuesday November 08, 2011 @09:57PM (#3214026)

    brew update
Fixed all my ills.
Re:/dev/audio by nknight on Tuesday November 08, 2011 @07:20PM (#3213590)
Conveniently, the sox project on sourceforge has Mac OS X binaries available.

http://sox.sourceforge.net/

Re:/dev/audio by pavel_lishin on Tuesday November 08, 2011 @06:27PM (#3213403)
Excellent, thanks!
Re:/dev/audio by aidos on Tuesday November 08, 2011 @06:56PM (#3213494)
Actually, while we're on the topic(ish), how does one do it back the other way? Ie, stream from audio input to a file (I was looking into it earlier today). Best I could find, you had to install some wrapper drivers or something.
Re:/dev/audio by aranazo on Wednesday November 09, 2011 @07:18AM (#3215197)
If you run pulseaudio you can use parec. It's fiddly but there is an example script here http://www.outflux.net/blog/archives/2009/04/19/recording-fr...
Re:/dev/audio by petercooper on Wednesday November 09, 2011 @12:16AM (#3214359)
Related from HN a few years ago: http://news.ycombinator.com/item?id=564568 (not a dupe, but extra awesome stuff on the same topic)
Re:/dev/audio by davidhollander on Tuesday November 08, 2011 @11:38PM (#3214284)
I believe this is specific to OSS, which was deprecated after it went closed source for a bit and ALSA replaced it:

http://en.wikipedia.org/wiki/Open_Sound_System

I'm fairly happy using the OpenAL API instead to generate audio cross-platform at the moment.

Re:/dev/audio by wnoise on Wednesday November 09, 2011 @01:28AM (#3214526)
ALSA emulates the OSS devices.
Re:/dev/audio by davidhollander on Wednesday November 09, 2011 @02:04AM (#3214609)
Not by default in arch linux, debian, ubuntu, etc. Requires an extra module.
Re:/dev/audio by stylishgnome on Wednesday November 09, 2011 @09:45AM (#3215590)
A while ago I did a bit of reverse-engineering on this and figured out how to get it to play music.

https://github.com/caoilteguiry/dev_music

Explanation of how it works is pretty scant at the moment, I'll try to expand it a little when I get a chance.

Re:/dev/audio by RexRollman on Tuesday November 08, 2011 @07:43PM (#3213666)
How hard is it to output /dev/audio to a file instead of hardware? For example, to capture the output of streaming audio.
Re:/dev/audio by guylhem on Tuesday November 08, 2011 @08:06PM (#3213740)
That's so simple and old school !!

cat /dev/audio > record.au

Here you will get Sun .au, which is mulaw IIRC.

/dev/dsp is different.

EDIT - after a quick google search, here are some details on the encoding difference : OSS has three kind of device files for audio programming. The only difference between these device files is the default sample encoding used after opening the device. /dev/dsp uses 8 bit unsigned encoding while /dev/dspW uses 16 bit signed little endian (Intel) encoding and /dev/audio uses logarithmic mu-Law encoding. There are no other differences between the devices. All of them work in 8 kHz mono mode after opening them.

http://www.opensound.com/pguide/audio.html

Re:/dev/audio by jrockway on Tuesday November 08, 2011 @10:41PM (#3214151)
That will capture the microphone input; it won't capture the sound that the computer is playing, which is what I think the comment you are replying to wants.
Re:/dev/audio by guylhem on Wednesday November 09, 2011 @06:32AM (#3215117)
Oops, I thought the original poster to record, like a dictaphone.
Re:/dev/audio by RexRollman on Tuesday November 08, 2011 @09:56PM (#3214025)
Thank you!
Re:/dev/audio by keeperofdakeys on Tuesday November 08, 2011 @08:15PM (#3213763)
Try the directory /dev/input/ for your input devices.
Re:/dev/audio by robo on Tuesday November 08, 2011 @11:20PM (#3214241)
does any of this sound like a pots modem baud negotiation?