by Steve Cunningham
Grab your pocket protector, put some tape on your eyeglasses, and prepare to geek out. This month we’re gonna delve into the world of TCP/IP and networking. I’ve been fooling around for awhile now with a plug-in called Wormhole that lets you play real-time audio from one software editor into another over a network, and lemme tell ya, this is getting good.
But why would anybody want to play audio in real time over a network when a file transfer is probably faster? Because sometimes a file transfer won’t do what you need to have done. For example, some of the newest and most powerful effects plug-ins can max out your computer’s processor in short order, and the newer convolution reverbs are a perfect example. Being able to run them on a dedicated computer makes sense, and being able to run them on a computer that doesn’t need another expensive sound card makes even more sense. Why bother with audio cables between computers when you can just use the network that probably already connects them?
So before we dive into the Wormhole (so to speak), we need to cover some networking basics. If you can hang through the geek speak, you may even find some information that will help you figure out why you couldn’t get your email yesterday, or at least what questions you need to ask your IT guy to get your email working. And if like me you are the IT guy, then this will be easy for you.
Pronounced as separate letters, TCP/IP is short for Transmission Control Protocol/Internet Protocol, and it’s the de facto method for communicating data over networks, particularly the Internet. While the Ethernet specification basically describes the pipe down which your data will travel, it’s TCP/IP that makes sure all the data gets to where it needs to be successfully. TCP/IP is truly the engine that powers the Internet.
When you send a data message from one place to another, be it an email message or an audio file, that data is first broken up into individual small packets called datagrams. By packet-izing your data, it’s easier for your network to deal with lost or corrupt datagrams, since only the single bad datagram has to be resent rather than the entire message. The TCP portion of the TCP/IP protocol is what sends these datagrams as an unstructured stream, using sequence numbers and acknowledgement messages to tell the sender if a datagram was delivered successfully or not. If a datagram is reported as lost, TCP can retransmit the datagram, and can also adjust the transmission speed to allow a slow receiver to keep up with the stream.
However, because your data has been broken into packets, it’s quite possible that not all the datagrams for a given message will arrive at their destination at the same time, or in the right order. This is clearly a Bad Thing, but this is where the IP portion comes to the rescue. IP provides the address and routing information for each of the datagrams, reassembly information, and error reporting that’s all necessary to ensure that all the parts of your data show up at the receiver and are assembled in the right order.
Most of you have seen and perhaps worked with IP addresses — certainly you have if you’ve set up a studio at home with more than one computer and Internet access. IP addresses are globally unique, allowing IP networks anywhere in the world to communicate with each other.
An IP address is divided into three parts: the network address, the subnet mask, and the host (or router address). You’re probably most familiar with the network address as the 12-digit number, which is divided into four groups of three number separated by dots. For example, 192.168.2.7 (where there’s a fewer than three numbers in a group, we assume there are one or two leading zeros as part of that group — 7 implies 007).
These four groups roughly correspond to your mailing address. Assume your address is 35 Maple Drive, Los Angeles, California. Read backwards, your address consists of the State (California), the City (Los Angeles), the Street (Maple) and the House number (35). If we assign numbers to each of these, we could assign an IP address to your house. Since California was the 31st state, well give it the number 31. We’ll call Los Angeles 001 and Maple 202 at random, and your house already has a number. So the IP address for your house would be 031.001.202.035, which would be written informally as 184.108.40.206. It’s that simple.
The second part of the IP address is the subnet mask, and suffice it to say that this is used by administrators to help divide large networks to make management easier. Your subnet mask is in part determined by your network address, and a quick look in a manual or a conversation with your IT person will get you going. Most subnet masks come in the form of 255.255.xxx.xxx, so if you see one of these then you’ll know what you’re dealing with.
The third part of a complete IP address is the host or router address, and we’ll get to that in a second.
Even though there are 12 digits in a network address, the worldwide explosion in the number of networks has put a strain on the total number of unique IP addresses that are available. As a result, many Internet Service Providers (ISPs or “hosts”) use DHCP, or Dynamic Host Control Protocol, to assign IP addresses to their client’s computers. Your ISP has a limited block of IP addresses with which to serve all its customers, so it assigns IP addresses to each connected customer for a limited period of time. This is called the “lease time”, and when a customer shuts off their computer or goes off the network, then their IP address goes back into the pool of available addresses.
If you have a cable or DSL at home, then your ISP will assign a unique IP address to your computer from their pool. If you want more than one of your computers to have Internet access through that single IP address, then you need to have a router connected to your modem, and your computers connected to that router [see figure on page 11]. The router lets your computers talk to one another, and looks like a single computer to your ISP, so your ISP will assign the router its own IP address. Meanwhile the router can use its internal DHCP function to assign a completely different set of IP addresses to your computers, and can translate those internal addresses on outgoing messages to match the address your ISP assigned to you. This is called Network Address Translation (or NAT) and it has the added benefit of making your computers more or less invisible to your ISP or hackers. The router knows which internal address to send data based on its internal table, and meanwhile your internal network addresses are hidden from the outside world.
If you use a router to share your Internet connection among multiple computers and are using its NAT functions, then your router’s address will also comprise the third part of a complete IP address, at least for the computers connected to it. Since the router is the central point in your network, its network address will always end in the number “1”, as in 192.168.2.1. In this case all your other computers will have similar addresses, but the fourth group will be different, as in 192.168.2.134. If you’re using your router’s DHCP services, it will take care of all that for you. Just be sure that your computers are configured with your router’s address in the “host” field of your network configuration window.
So if IP addresses define every computer on a network and on the Internet, how the heck do we find websites like www.cnn.com? That’s the job of the Domain Name Server, or DNS. Every ISP has one or more servers that do nothing but store and update a table of every name on the Internet, and it’s associated IP address. For example, if you want to go to CNN, you can type http://www.cnn.com. But CNN has several IP addresses, and you can also get there by typing http://220.127.116.11 and you’ll end up in the same place. It’s a lot easier to recognize an alpha name than a string of numbers, and the DNS takes care of that for us.
ROUTERS, SWITCHES, AND HUBS
We’ve already looked at some of the functions of a router, including security and connectivity. Most routers have one port that connects to your cable or DSL modem (usually labeled WAN for Wide Area Network), and several other ports for connecting your computers (labeled LAN for Local Area Network). The LAN ports comprise a switch, which is simply circuitry that connects computers to one another, and routes messages from a sending computer directly to a receiving computer. Switches and hubs look the same on the outside, but are very different inside. When a hub receives a datagram, it will re-broadcast it out all its active ports, so all the connected computers will get the datagram (although only the intended receiver will accept it). When a switch receives a datagram, it re-broadcasts it only out the single port where the receiver is connected, so switches cut down on overall network traffic significantly.
Think of a router as the main Post Office. A switch is then like a Post Office substation, and a hub is like a shared mailbox in an apartment complex. Imagine having to sift through your neighbor’s mail every day to find yours... switches are superior to hubs, especially for using Wormhole.
Finally, a word about speed. Faster is better. Seriously.
The speed with which your data is sent and received is usually dependent on the speed of the Ethernet hardware used on your network, starting with your network card. Older computers will come equipped with a 10 Base-T ethernet card, which is capable of spitting out data at up to 10Mbps (megabits per second), while current computers come with network cards that will do 100Mbps (100 Base-T) or even 1000Mbps (gigabit ethernet). But real world speeds are always significantly lower than the advertised maximum, and depend on the total amount of traffic on the network (use a switch!). Routers, switches, and hubs are rated with the same speeds, so buy the fastest hardware you can find.
Then there’s wireless Ethernet. The current standards are known as 802.11b, with an advertised max of 11Mbps, and 802.11g with a max of 54Mbps. Moreover, wireless networks with mixed-speed computers attached tend to run at the speed of the slowest clients. Again, real world numbers are substantially less, and most 11b computers poop out at about 4Mbps while 11g computers top out at less than 20Mbps. For the moment, wireless 11g will work for uncompressed audio, but 11b is out of the question.
Still with me? Impressive. Now the good stuff.
Wormhole is a nifty plug from a little Swiss company called apulSoft. It’s a VST-format plug-in that transmits and receives 32 bit audio over your network. ApulSoft claims it will handle up to 100 channels of 16-bit, 44.1kHz audio over Firewire (!), and about 35 channels over Ethernet.
Wormhole works on Windows 98SE or better, although they recommend Windows 2000 as a realistic minimum. They’re right about that — the plug-in was marginal at best on my ME box, but worked nicely on Win 2K and XP. It also works on Mac using OSX 10.2.6 or better (with 10.3 recommended), and comes as both a VST and an AU plug for the Mac.
Installation is a drag-and-drop process. You then authorize the plug on each machine using the included Authorization application. This is where you enter your serial number and tell Wormhole the numeric IP address of each machine you want to access, and give each machine a name. It’s a sort of manual DNS. You’ll want to use a low-latency driver in Windows — ASIO was perfect, and WDM worked okay for me, but Sound Mapper stunk.
Once installed, you just load the VST plug into your editors. I used it with Samplitude, Vegas, and Sound Forge on the PC, and with Pro Tools (with a VST wrapper) and Nuendo on the Mac. You can also use it with standalone VST effects hosts like Spin Audio’s VSTDX Wrapper (www.spinaudio.com), which will let you set up a virtual effects rack on a dedicated PC, with Wormhole handling the audio I/O.
First step is to set up a send machine, which in my case was Nuendo on the Mac. Hitting the Audio Thru button lets you hear the audio as it comes into the plug-in. You begin sending audio with the Sender button, choose an available channel (the number depends on your network speed), and switch on the receiver with its dedicated button. Choose an available receive computer from the little drop down (from the list you authorized earlier), and a channel on which to receive. This will give you a two-way conversation.
Set up your receiving machine the same way, which for me was several VST effects in the VSTDX Wrapper application. It takes a few seconds for both machines to find each other on the network, but once they do you’re up and running. The only other thing to do is play with the buffer settings — if the audio sounds crackly, you’ll want to increase the buffer size. Remember, this helps give the network extra time to get all the packets there and in order.
There are some elements of Wormhole that can make it appear to be a work-in-progress. I occasionally had to hit the send or receive button several times to get the machines to see one another and start the conversation. Once started however, it was quite stable.
Yeah, there’s some of that. ApulSoft claims latency (the delay time between send and receive machines) to be around 2 milliseconds. My experience was somewhat worse than that, but never more than about 25 milliseconds. Hey, we’re using this mostly for effects, so it was never a real problem for me — I just recorded the effect to a separate track and moved it a bit to compensate.
The other variable that can give you less-than-stellar results is your network. Along the way I replaced a 100 Base-T switch in my room with a gigabit switch, and bought a new network card for the PC. The Macs have gigabit, so they were fine. These upgrades reduced the latency substantially, and in the end it was very workable. And wireless is really great fun, even if the latency gets higher when working without wires.
Wormhole is available by download only, and costs 20 Euros, which today is $26.68 in American dollars. That buys you a license for both the PC and Mac, and you can use that copy on as many computers as you own. It’s a freakin’ bargain, especially when compared to the cost of a reasonably good sound card. I’ve been playing with an alpha of version 2 (which adds several new things including latency adjustments and measurements), but I’ve been using version 1 for several months with pretty good results. It’s a winner with effects, that’s for sure.
GET THE DEMO
There’s a free demo version that is definitely worth checking out. Even if it’s not perfect, Wormhole is an inexpensive plug that bears watching — how about one really nice audio interface for your entire studio, with several computers running mondo mega effects and sound loops into the main computer, all with just those skinny little Ethernet cables? I don’t know about you, but I do like it.
For more information on Wormhole, visit www.apulsoft.ch (note the .ch, not .com). Oh, and you can lose the pocket protector now.