JamLan update

JamLan update

I have been playing around with various network audio protocols recently, trying to come up with a solution for hosting music jams at the Hacker Dojo. I’ve been focusing mostly on Linux software since I have found that trying to find something fully cross platform isn’t very likely.

The most promising software package has been PulseAudio. However, PA is not designed for professional audio, thus it focuses more on power saving and low bandwidth rather than performance. I was finally able to get several laptops working together using RTP multicast protocol, which was actually pretty sweet, but unfortunately the latency is too high to be useful for realtime jamming. There are still some tweaks left that I could do, but I think I might start looking at Jack instead.

As mentioned in my previous article, the problem with Jack seems to be fragmentation among the various network audio systems that target it. I think the most promising seems to be the one from CCRMA (Jack.trip) since it isn’t an inherently master/slave setup. In other words, it isn’t expecting one machine to control the transport (start/stop) and expecting sample-accurate sync at all times. This is not necessary for jamming.

If Jack doesn’t end up working out, I still wonder about using Pure Data for this. I know that there is a bit of manual setup to make it work, but it might be just the thing as long as the latency is good enough. I’m sure I’ve played with netsend~ in the past, but I can’t remember what the latency was like. And, now that I’m limiting myself to Linux, I think I might not have as many problems with netsend~ crashing PD.

Now that I’ve covered all of the software options, I have to confess that I have been thinking about doing a simple hardware version of a JamHub. The idea that I’m toying with would use UTP (Cat5) cabling to carry the audio between nodes. Since there are four pairs in Cat5 cabling, this would give us four balanced lines, and thus four buses, allowing up to four players to jam over the same cable. To avoid excessive cabling, I’m thinking that the nodes can be daisy-chained using standard ethernet RJ45-terminated patch cables. The nodes would be built into electrical boxes like my guitar pedal designs.

I want to make this as simple as possible. Each node will be identical in design and will feature a selector switch to set which bus it will send audio on. I think I’ll use a balanced transmission scheme to avoid noise, but even then I’m wondering if I can get away without running the twisted pairs as balanced lines. Maybe for relatively short runs it won’t be that noisy. That will let me use fewer op-amps. However using a balanced line would let me run phantom power over the lines so that the boxes could all be powered from a single box. This feature sounds like overkill though. We’d have to have something in place to keep from powering two boxes up at the same time and blowing one of them up.

In the interest of keeping things really simple, I could see just putting four volume knobs on each box, one for each bus with no master volume. Just turn all the knobs up or down to get overall higher sound level. Turning your own bus up turns your instrument up in your mix (obviously this doesn’t affect anyone else’s mix).

Each node would have an line in and a headphone amplifier. Somehow I think an instrument level input is not necessary. I don’t envision plugging a guitar or microphone directly into the jam system. For a guitar you’d probably have at least an effects board capable of line-level output. For a microphone, you might want phantom power or equalization so you might as well use a small mixer or microphone preamp in front.

Of course, you could argue that if you use a mixer you might as well use that for your headphone mix. I still think that something like what I’m describing would be nicer and more convenient since you don’t have to deal with a lot of audio cables. Three balanced connections coming into everyone’s nodes will add up to a mess very quickly. Not to mention that most small mixers won’t split your signal very conveniently to go out to three other destinations. You might have the master out left and right, and then you’d end up using one of the effects sends if the mixer didn’t have any buses. If we are lucky it will have a tape out or possibly a non-breaking insert or direct out.

Anyway, that’s enough digression. I’ll come up with a schematic for this soon and hopefully a source for the parts like the four pole switch that we need to select which bus each node will be on.

← Audiohackers JamCat design session
Local network audio →