[sdiy] Communications with voices in a polyphonic synth

Tom Wiltshire tom at electricdruid.net
Wed Mar 10 20:15:33 CET 2010


Hi all,

I'm currently tackling the above problem.

I've already asked about SPI after encountering problems with it. It  
seems to me that some of the problems that I'm having are because it  
isn't really designed for single-master/multiple-slave communications  
over distances of a couple of feet. I've used it to talk to DACs and  
such like, which is fine, because you've got a single master and  
single slave and they're more or less next to each other (distances  
of a few centimetres, not tens of centimetres).

What I'm looking for is a way of talking to the voices. It needs to  
be as fast as possible (no-one likes latency), robust (there will be  
other electronic circuits in close proximity!) and as simple as  
possible (but not simpler).

There are two aspects to this; the hardware level and the protocol.  
I'm currently not really sure where I'm at with either, and I'd like  
to hear people's views and experiences. Usually (I've found) there is  
a wealth of previous experience to learn from, both on this list and  
by digging through the circuit diagrams left to us by synth engineers  
of old, who have already faced these same challenges.

Neil Johnson suggested RS485 to me as a possible hardware option.  
This seems like it would be good from the robustness point of view,  
since it is a differential signal, but I don't how it would do for  
speed, and it might require extra driver chips. I've looked at SPI  
since it's what I know best. I2C is the other one I've heard of. What  
else is there hardware wise?

Protocol-wise, I need to be able to send parameter and control  
information to single voices or groups of voices. How is this  
typically done? I can see easily enough how I can give each voice an  
address, and then send an address message ahead of a data message (or  
group of messages, I suppose), but how do I talk to a couple of  
voices without repeating the message for each?

Sorry to be asking so many  questions, but this sort of stuff is  
where googling isn't so good, because (1) it's pretty specialised and  
(2) I don't really know what I'm asking.

Any relevant experiences or pointers to useful material would be  
greatly appreciated.

Thanks,
Tom






More information about the Synth-diy mailing list