A student once asked how to make a high-quality audio link from the basement of a building to an upper floor. It’s too long to run a cable, and a suitable radio link would be complicated. The building does have an ethernet network, so I created these applications. (Just a set of user-interfaces around the recommended MAX/MSP methods for uncompressed network audio streaming.)
It’s a complex solution to a simple problem, but computers/networks seem to be more plentiful than hundreds of feet of XLR cable!
These apps do not compress the audio data (it’s not MP3/OGG/WMV streaming). The sound is transmitted uncompressed over your local network (not the internet).
The transmission is strictly point-to-point. Each transmitter can only connect to one receiver.
How To Use it:
- Connect two computers to your network. Make sure that ports 7374 and 7375 are open on your firewalls. (The receiver broadcasts its info on 7374 and the transmitter sends the audio on 7375. You can assign a custom port for the audio if you want.)
- Copy the Network Audio Transmitter app to the computer where your audio originates. Copy the Network Audio Receiver app to the destination machine.
- Start the Receiver app and wait a few seconds. A hostname and IP address should appear at the top of the window.
- Go to the Transmitter computer and start the Transmitter app. After a few seconds, you should see the receiver’s hostname in the “Available Receivers” field. (The Receiver broadcasts this info every few seconds across the local network.)
- Click the hostname. The green “Connected” indicator should appear. (You can always type a manual hostname or IP if the receiver is not broadcasting its info properly.)
- Use the “Audio Settings” button on both apps to setup your sound hardware. You can play a sound file over the network to test your setup, or stream a live input. If the Live Input button is active, you can toggle the “play-through” button to listen to your input over the local speakers as well as the network.
- To transmit the audio from an app (like iTunes) you can use Soundflower to create a virtual input and then choose it in the “Audio Settings…” window.
If it Doesn’t Do What You Want:
- Modify it. The source code is provided (requires MAX/MSP) under a GPL license.
- Explore other options for sending realtime audio over a network: Quicktime Broadcaster, Icecast, Nicecast, speakershare, NinJAM, JackTrip, Soundfly. Or use the free AUNetSend and AUNetReceive plugins built-in to OS X (tutorial here via wayback machine). For the truly lazy and partially deaf, there’s always Skype!
Download Latest Version (2018-08-19) 56MB MacOS .zip file
There is no Windows version (details).
Changes in this version:
- Recompiled using Max 7 to make it more compatible with recent MacOS versions.
- No longer needs JAVA (hooray!)
- The transmitter app finds the receiver via hostname rather than IP address. This should be more reliable since IP addresses can change.
- UI improvements to make it a bit easier to use.
Known Bugs or oddities:
- The Receiver tries to announce itself to the Transmitter, but it won’t traverse subnets, and it won’t transmit over the internet. (Not actually a bug, just a fact of network topology.)
- Setting are not saved when the apps shut down.
- You may need to adjust your security settings.
- Oracle Java (not the Apple installer) is required.)