[sdiy] Communications with voices in a polyphonic synth

Tom Wiltshire tom at electricdruid.net
Thu Mar 11 16:38:04 CET 2010


Cheater,

I agree with you that perhaps I wasn't thinking "worst case  
scenario", and I certainly need a bit of slack for these kinds of  
occasions.

However, I'd raise a couple of points;

1) If a glitch occurs when(if) 64 keys are hit simultaneously, I  
don't care - it's going to be a racket anyway. Who'd notice a couple  
of dropped notes in that mess?
2) Why should 'matrix destination' packets get priority over key ons?  
Parameter changes are a lower priority.

As far as OSC support is concerned, I haven't heard of it, so I'm not  
supporting it. If I manage to catch up with MIDI (I'm still 25 years  
behind present day technology) and get that working, I'll be more  
than happy.

Thanks,
Tom

On 11 Mar 2010, at 15:08, cheater cheater wrote:
>
> Think about the worst case scenario when the packet will only happen
> after other packets. As I can see it, what could happen is:
> 1. user presses 64 keys
> 2. lfo/noise packets happen (say, 10 multicast packets)
> 3. for each key you get a packet which sets up every matrix
> destination based on velocity and pitch (say, 10 packets each)
> 4. for each key you get a packet which starts the note (say, 2  
> packets)
> so this is 10 + 640 + 128 packets for 64 voices.
>
> For 16 voices that's 10 + 160 + 32 packets.
>
> For 8 voices that's 10 + 80 + 16 packets. That's 106 packets. In 9-bit
> mode that's 954 bits, so round it up to 1 kilobit, which has to happen
> in 0.25 ms. This means 4 Kbit per 1ms so 4 Mbit per 1 sec so 4 Mb/s.
> For 64 voices it's 8 times more, so 32 Mb/s.
>
> This is the absolute worst case scenario. Usually, keys won't be
> pressed at the same time, and for this sort of chording to happen you
> would need all keys to be pressed within the time of transfer of this
> many packets:
>
> 10 + 10 + 2
>
> which is 22 packets, which are 198 bits in 9-bit mode, which happens
> in 0.19 ms on a 1Mb/s bus with zero latency. This is not very likely
> to happen at all; but bear in mind that catastrophes can happen.
>
> What's more important is that if you want to one day support OSC, then
> you'll be having this situation, because sequencers will send all
> notes at once, since the notes will be set up nicely on a grid, and
> therefore can and will be grouped into one packet or expressed as a
> multicast message.
>
> But that's completely removed from the reality of today, just bear  
> that in mind.
>
> What's less removed from reality is the fact that at 1Mb/s if you have
> those 10 lfo events and 10 mod matrix events happening, then you only
> have a 0.05ms margin, which is very very little, so you could think
> about hardware with less latency than that.
>
> D.




More information about the Synth-diy mailing list