Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

Create a wireless speaker setup without AirTunes Network
I listen to music quite often on my PowerBook whilst studying, but, like most people, I find hearing it through the built-in speakers sacrilege. Aside from setting up my desk next to a stereo, the first solution that comes to mind is Apple's AirPort Express with Airtunes; this is essentially a wireless router that has a connection to your stereo, and has the ability to play audio from iTunes. This all comes at a price, however.

The following guide will show you how to live the champagne lifestyle on a cask-wine budget (at least with respect to your audio setup).

The solution

Thanks to the efforts of hard working and hospitable geeks, a free, open-source solution is at hand -- and has been since about 1998. Its name is the Enlightenment Sound Daemon (esd). The Enlightenment Sound Daemon is essentially a network-transparent audio protocol, in many ways is analagous to X11 with graphics (if you don't know what X11 is, then you're probably not geeky enough for this tutorial -- buy an AirPort Express).

What you'll need

This guide covers wireless audio streaming on my PowerBook, so from here on, I'm going to assume that you have a Macintosh running OS X. For your "sound transmitter," you'll need:
  • An installed copy of DarwinPorts
  • A copy of Audio Hijack Pro (1.3 or newer) by Rogue Amoeba. If you buy nothing else, I'd highly recommend purchasing this program. It's like a swiss army knife for all of your audio recording needs.
  • Music!
  • SoundFlower and Soundflowerbed -- top-notch loopback sound drivers. (Optional; needed only if you're too cheap to buy Audio Hijack.)
For your "sound-receiver," you'll need:
  • A physical connection into a stereo or a set of speakers
  • A computer GNU shell-like-environment. Eg linux, cygwin, darwin, etc.
  • The Englightenment Sound Daemon installed (hint: if you're using cygwin, you can install the Englightenment sound daemon using setup.exe)
Setting up the sound receiver on the stereo-connected machine
I've got two "sound-receiver" access points: an old Toshiba Tecra500 (Pentium 120) in the lounge room running gentoo-linux, and a P3-700 with Windows XP (with a complete cygwin installation). I'll describe how to set up the latter:
  1. Open a cygwin bash shell and run this command: esd -tcp -public.
  2. Essentially this command starts up the Enlightenment sound daemon and allows it to receive sound from other IP addresses. You should hear a funky sound, denoting that esd is correctly up and running. If no sound is heard, then something isn't working, and you should read the esd manual and perform the usual troubleshooting procedures before proceeding.
Setting up your Macintosh to send audio to your sound receiver
  1. Make sure that you've got darwinports installed (thats, right, DarwinPorts).
  2. Install the enlightenment sound daemon using the port command: sudo port install esound. This may take some time, particularly if you're on a G3 or early G4. Grab a coffee.
  3. Open Audio Hijack Pro. Choose your audio source (eg iTunes), and hit Effects in the lower-right-hand corner of the window.
  4. Click to insert an effect. Choose "4FX effect--> Pipe Dream". You should now have an effect displayed in your audio hijack window.
  5. Insure that the "pipe dream" effect is not being bypassed. Click on Editor. A Pipe Dream script editor should now appear. On the lower-left-hand-side of this dialog, there should be a pull-down menu with Custom written on it. Enter the following script (and save it somewhere):
    PATH=${PATH}:/opt/local/bin
       <&0 esdcat -s *sound-server-ip*
For those who can't even afford Audio Hijack:
  1. Install DarwinPorts and esd (as mentioned above)
  2. Install Soundflower.
  3. Open up System Preferences and go to the Sound pane. Set up 'Soundflower 2-ch' as your default audio input, and your default audio output device, and close the preferences pane.
  4. Open up a terminal window, and enter the following: esdrec | esdcat -s your-sound-receiver-ip-here
  5. Your Mac's entire sound output should now be forwared to the remote machine.
[robg adds: I haven't tried this one.]
    •    
  • Currently 2.71 / 5
  You rated: 1 / 5 (7 votes cast)
 
[112,923 views]  

Create a wireless speaker setup without AirTunes | 13 comments | Create New Account
Click here to return to the 'Create a wireless speaker setup without AirTunes' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
Create a wireless speaker setup without AirTunes
Authored by: Stereo on Jun 06, '06 08:15:09AM

Are you familiar with NetworkAudioDevice? It was an experimental software audio device that communicated with remote esound, but it unfortunately does not seem to compile on recent versions of Mac OS X.



[ Reply to This | # ]
Create a wireless speaker setup without AirTunes
Authored by: AlienX on Jul 23, '08 03:51:40AM
Hi! Great information! Thanks!
I wrote a similar post how to do it with Soundflower.
Those that still have trouble might find some help there, too:
http://rolf.haynberg.de

Regards



[ Reply to This | # ]
Create a wireless speaker setup without AirTunes
Authored by: billpenn on Jun 06, '06 10:13:46AM

I have this working using the fink version of esound and soundflower. Sending from a MacBook Pro to an B&W G3.

Of note, esound's default tcp port is 16001. I had to poke a hole in the G3's firewall to get this to work.

[ Reply to This | # ]

Create a wireless speaker setup without AirTunes
Authored by: zpjet on Jun 06, '06 10:27:59AM
I've used AULab from Developer Tools to do the same, and covered in this hint.

[ Reply to This | # ]
Glitches
Authored by: tr on Jun 06, '06 05:07:40PM

The basic feature, sending music over airport (wpa with additional openvpn-encryption) works great. Thanks for the hint! But -

as soon as I want to browse the web or actually do something (like opening System Preferences) with my iBook 1,2 Ghz / 1,25Gb, the audio-output stutters. The overall system load is not particularly high, about 80% idle.

I have not found any settings I could optimize - is there something I can do?

Thanks,
Tomas



[ Reply to This | # ]
Glitches
Authored by: Whosawhatsis on Jun 08, '06 05:39:43PM

It's probably not a CPU issue, but a network issue. Because there's little or no buffering, it's extremely vulnerable to dropped/delayed packets. If you can, prioritize this traffic in your router's QoS settings.

---
I was offered a penny for my thoughts, so I gave my two cents... I got ripped off.



[ Reply to This | # ]
Create a wireless speaker setup without AirTunes
Authored by: tksh on Jun 07, '06 07:45:37PM

Is there a way to capture more than just two channels? In particular, capturing 5.1 channel output, sending it over LAN to a Windows machine and have it play back the 5.1 audio stream.

I tried both Audio Hijack Pro and Sunflower with ESD and both don't seem to like non-stereo streams.



[ Reply to This | # ]
Reboot after Installing SoundFlower
Authored by: bedouin on Jun 10, '06 11:53:56AM

If you're using SoundFlower you'll need to reboot after installing; otherwise the additional options will not appear in your sound preference pane.

Works great for sending audio to my iMac in the kitchen running Debian. This will be especially nice when I'm listening to podcasts or some TV shows (Daily Show, Colbert Report) whether through iTunes or my AlchemyTV card.



[ Reply to This | # ]
Create a wireless speaker setup without AirTunes
Authored by: combinatorics on Jun 11, '06 02:51:12PM

Fantastic article - I was up and running within minutes, and it saved me the shame of dropping $120 on an airport express. However I did run into a little hickup:

I'm using a gentoo box for the server, and my macbook is sending iTunes audio to it. The sound playing through the stereo had crazy pitch problems, like someone was playing the record at a slow speed. Also there were lots of little pops. Giving the parameter '-r 96000' (96kHZ sampling rate) on both the client and server side cleared that right up. Just thought someone else might find themselves in the same boat.

Thanks again!



[ Reply to This | # ]
Create a wireless speaker setup without AirTunes
Authored by: guyzmo on Jun 15, '06 12:05:35PM

About NetworkAudioDevice, I successfully recompiled it for Panther, given some minor changes in the code...
But I didn't try with Tiger... :/
As HiJack seems to work for me, I don't think I'll look further,
though I find this is a much more elegant solution than using some
resource-eating application.



[ Reply to This | # ]
Working on Leopard w/ SoundFlower
Authored by: dacc on Jun 10, '08 09:14:45PM

You are my hero! Been looking for a way to stream audio around the house for a while, and never thought of good ol' esd.

My setup uses SoundFlower on Leopard to stream audio to a Nokia n770 hooked up to a mixer. I followed your instructions above, but there is one extra trick that I had to Google up from another helpful fellow. On the OS X end I'm running:

esd -tcp -bind ::1 &
esdrec -s ::1 | esdcat -s 192.168.1.66

Something about IPv6 listen ports...

Cheers,

- dacc



[ Reply to This | # ]
Create a wireless speaker setup without AirTunes
Authored by: AlienX on Aug 10, '08 01:07:52PM
Thanks for this how to! Combined with the useful comments I was able to get it up and running wireless.
I did it with soundflower and reported my experiences here:
http://rolf.haynberg.de/?p=14
There's also a section troubleshooting. I hope it helps others.

Regards,
Rolf

[ Reply to This | # ]
Create a wireless speaker setup without AirTunes
Authored by: Thom on Sep 27, '09 07:36:45PM

FWIW, if you buy Rogue Amoeba's Airfoil ($25), you also get clients you can put on other machines, called 'Airfoil Speakers'.

I have a mac mini set up to be my HTPC and it's connected to my home stereo and TV. So, it's a nice fast way to send music to the stereo.

Plus, the software lets you send any app's audio to an actual Airtunes-capable device, if/when you do get one.



[ Reply to This | # ]