What is RaopX

RaopX is a Apple Airport Express client for Os X based on raop_play.

What is the main difference between RaopX and raop_play

The original raop_play lets you stream audio files to your Airport Express. RaopX streams any audio that comes in on the default input device of your Mac, and combined with the routing functionality of Soundflower this gives you the ability to stream audio from any application you’ve got on your Mac to the Airport Express.


  • Xcode Developer Tools – Available from your Os X install DVD, or you can download it from Apple Developer Connection (Only needed if building from source)
  • libsamplerate (Secret Rabbit Code) – Get it here (Only needed if building from source)
  • Soundflower – Get it here

Install Instructions: Using the installer package

Only for Intel Macs running OS X 10.5 or newer

  • Download and install Soundflower – follow instructions
  • Enable Soundflower – Set ‘Soundflower (2ch)’ as default input and output device in System Preferences
  • Download and install RaopX – Download the RaopX Installer (dmg file) and follow instructions. Installs the RaopX executable and the libsamplerate library into /usr/local/bin and /usr/local/lib
  • Start RaopX – Open Terminal.app and enter RaopX at the prompt

Install Instructions: Building from source

  • Install Xcode Developer Tools – follow instructions
  • Download and install libsamplerate
  • tar zxvf libsamplerate-0.1.7.tar.gz
    cd libsamplerate-0.1.7
    sudo make install
  • Install RaopX – One of two options
  • Option one: Download RaopX_v0.0.4.tar.gz
  • tar zxvf RaopX_v0.0.4.tar.gz
    cd RaopX_v0.0.4
    sudo make install
  • Option Two: Download and unzip the Xcode project. Open project in Xcode and build it. Copy executable to e.g./usr/local/bin/
  • Download and install Soundflower – follow instructions
  • Enable Soundflower – Set ‘Soundflower (2ch)’ as default input and output device in System Preferences
  • Start RaopX – Open Terminal.app and enter RaopX at the prompt

Known Issues

  • 9 seconds delay because of buffering
  • No support for ‘iTunes Speaker Password’.
  • No Tv support
  • Consumes disk space while in use (/tmp/raopxtmpbuffer). Approximately 6-700MB per hour

I only get ‘Bus Error’, ‘Segmentation Fault’ or ‘Command not found’

Possible workaround: See if you can find the RaopX executable by running ‘ls -l /usr/local/bin’ (without the quotes). if you get permission denied, try with sudo. If the file is there, try moving it to e.g your home folder or the Applications directory and run it from there. (HowTo)


This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Uninstall Instructions

Open Terminal.app and cut and paste the following commands. One line at a time.

sudo rm /usr/local/bin/RaopX
sudo rm /usr/local/lib/libsamplerate.*
sudo rm /private/var/db/receipts/com.hersson.raopxVersion004.*
  • Twitter
  • Facebook
  • del.icio.us
  • Digg
  • Google Bookmarks
  • StumbleUpon
  • FriendFeed

264 thoughts on “RaopX”

  1. Works reliably for me on Lion (10.6.1), but I see it as a proof-of-concept so far. Sunflower and RaopX would best be integrated (so you only choose the device, which runs all necessary code, and then the Airtunes device is configured in a System Preferences pane). That would hopefully also take care of the crash (or quitting) when putting the machine to sleep.
    I reckon the authors have tried to reduce the excessive buffering. I guess iTunes can get away with it as it has the sound data available anyway, rather than working with a real-time stream. In that case, there wouldn’t be much one could do about it…

  2. Thanks for this nice solution for home audio. A little confusing to set up, but possible. Though changing between PC and airport output is a bit of a hassle, its worth it.

  3. Awesome! I had no problem installing and figuring out how to set it up, despite very little experience with terminal etc, thanks hersson!

  4. Raopx wasn’t for me, but now I’d like to remove all of the code/executables that were installed, but I don’t how do it. How do this?

  5. This looks like an awesome project – however, it doesn’t work right now. When I run RaopX, this appears:

    MacBook:~ tom$ RaopX

    RaopX 0.0.4

    Searching for RAOP capable devices
    ERR: gethostbyname: ‘Toms-AirPort-Express.local.?’

    The Airport isn’t connected to the internet right now – using mobile internet – is that a problem?

    Cheers, keep up the good work!

  6. This software rocks, thanks so much. But my buffer, though set to 9, takes 20 seconds, each time. I downloaded the .dmg file, so I’m not sure how to change that. Thanks!

    1. Thanks!

      The buffer should be 9 seconds and not 20, no clue whats going on there, but in regards to how to really change it: You can’t without a rewrite of the program.
      I’ve made some comments about how to change the size of the buffer file, but that does not have any effect on the delay which still remains.

  7. I just installed the 2 programs, and setup was pretty easy to do. There are 2 problems however, the delay time from starting the program to hearing it over my speakers (buffer time?) was about 1.5 minutes. From there, it cuts out about every 7 seconds for a pause of 2 or 3 seconds. I have a fast macbook pro, with 8 gigs of ram, so I’m not sure what the issue is.


  8. Hi,
    I can’t figure out what is the matter with my installation.
    When I run the app, RaopX throw an error 400
    Here is the result of the command :

    RaopX 0.0.4

    Searching for RAOP capable devices

    Multiple devices found:
    0) freebox-player.local.
    1) freebox-server.local.

    Which device would you like to use
    Enter number and press : 0
    ERR: exec_request: request failed, error 400

    - No password is needed to access the airplay server
    - The app is already in my /Application/ folder
    - It works fine with iTunes

    Thanks a lot

      1. No, freebox-player is a media center which includes airplay protocol. It works fine with iTunes, iPhone and Airfoil. Any idea for the reason of this bad request ?

        1. No, I don’t, but RaopX is a client for Airport Express (AirTunes) not AirPlay.
          RaopX uses raop_play for all communication with the ‘server’, and the latest version of raop_play (0.5.1) is from 2005. AirPlay is from 2010. So my guess is that when Apple added the ability for streaming videos and photos to AirTunes, and renamed it AirPlay, they also made some changes for streaming audio which ‘breaks’ raop_play. The same goes for streaming to the TV(also with airtunes) which I think is an encryption key change, but I am not certain. The excellent developers at Rogue Amoeba (Airfoil) has figured all of this out, but this is way out of my league I am afraid :-)


  9. Hi thanks a lot for sharing this app with us, i am trying it but i get the following error:
    Searching for RAOP capable devices
    ERR: error:get_tcp_nconnect addr=, port=6003

    I am using OSX Lion, trying to stream to shairport on ubuntu 11.10, any idea of whats going on? or how to solve it?

    1. RaopX attempts to connect with TCP, while Shairport is using UDP. Thus, when RaopX attempts to call to connect(), it returns ECONNREFUSED. One or the other would need to switch protocol.

  10. We just tried RaopX and it works perfectly. Thank you!
    My two year old son is just singing canons on his own – using the microphone and the 9 second delay he is singing several voices alone ;-)

  11. Works perfectly! Do we need to periodically clear out/delete “/tmp/raopxtmpbuffer” or does it clear automatically?

    1. The raopxtmpbuffer file gets deleted when RaopX stops. If for some reason it should exist when RaopX starts it will be deleted then, so manually deleting the file should not be necessary.

  12. I’ve got this working but had to do a little guess work to get it all going, but perhaps if I post my solution it will help the next person.

    I saw two entries for my Airport Express when I started RaopX. For a while I just used the first one and could not figure out why I was getting mic output instead of music coming out of the stereo connected to the airport. After lots and lots of mucking with Soundflower configurations (not needed for the solution), I gave up and as a last ditch, tried the other (identically named) output device and it worked!

    So it seems that if you have a built-in mic and see 2 devices for each airport, the first will output your mic to the stereo and the second will output as desired.

    Here’s the output in case it helps:

    Multiple devices found:
    0) bert.local. <– mic output
    1) bert.local. <– sound output
    2) Second-Chance.local. <– mic output
    3) Second-Chance.local. <– sound output

  13. What would happen if I changed BUFFER_SECONDS to a smaller value, say 1 or 0.1 instead of 9? I’d like to use RaopX to stream audio to my stereo while viewing the associated video on my laptop, in which case I need to shorten the buffer substantially.

    1. It will still take approximately 9 seconds before the audio is played back to you without disruptions, and the chance for it being in sync with your video then is next to nothing.

  14. This works great for watching movies, just use “mplayer -delay 11 movie.avi” and it is in sync. Of course you might need to change the 11 parameter for your system (it is the delay in seconds).

    Brilliant thanks!

  15. Hello , I would like to output the sound of my iphone on the mac is it possible with this app ? I installed it but my I launch Raop it doesnot find any capables devices.
    PS : I am using mac book pro retina OS 10.8.3 and iphone 5

  16. hello,

    thanks for the great freeware!! i installed it and soundflower and everything was working fine now however it appears to have become a lot quieter i have to crank my stereo way up. i’m using it with spotify to airport extreme and have both spotify’s and my computer volume on max…when i tried my itunes airplay the volume is fine. i haven’t seen this problem reported by anyone else. Any idea why this would suddenly start?


Comments are closed.