A geek's wet dream

Friday, June 02, 2006

 

"Airtunes" for tight arses; the wireless speakers on OS X howto__

Champagne Lifestyle, Cask wine budget

I listen to music quite often on my PowerBook whilst studying, but, like most people, I find hearing it through shitty inbuilt 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 effort of hard working and hospitible geeks, a free, open-source solution is at hand! (and has been since about 1998) Its name - 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 not geeky enough for this tute... 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


For your "sound-receiver" you'll need


Setting up the sound receiver on the stereo-connected machine

I've got 2 "sound-receiver" access points; an old Toshiba Tecra500 (pentium 120) in the loungeroom 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
  2. run:

    esd -tcp -public



  3. Essentially this command starts up the Enlightenment sound daemon and allows it to receive sound from other ip's. You should hear a funky sound , denoting that esd is correctly up and running . If no sound is heard, then something isnt 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. Ensure that you've got darwinports installed (thats, right, DarwinPorts)
  2. Install the enlightenment sound daemon using ports:


    sudo port install esound


    This may take some time, particularly if you're on a G3 or early G4. Grab a coffee, take a slash, etc

  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". Your audio Hijack window should now appear similar to the following:

  5. Ensure 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 pulldown menu with "Custom" written on it. Enter the following script (and save it somewhere):

<&0 esdcat -s YOUR-RECEIVER-IP_HERE

  1. Hit Start.
  2. Back in the Audio-Hijack main window, hit "Hijack".
  3. With a bit of luck, your iTunes audio should now be playing in your remote computer!

For the uber tight arses, who can't even afford Audio Hijack.
  1. Install DarwinPorts and esd (as mentioned above)
  2. Install soundflower.
  3. Open up "System preferences" and hit sound. 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.

Comments:
Thanks for posting this. It got me most the way there, except for some minor differences for IPv6 (on the server: esd -tcp -bind [server ip v4 address] -public; on the client, explicitly start esd -tcp -bind ::1, then esdrec -s ::1 | esdcat -s [server ip]:[server port]). My own writeup
 
Post a Comment



<< Home

Archives

June 2006  

This page is powered by Blogger. Isn't yours?