[sdiy] Xpander
Roman Sowa
modular at go2.pl
Wed Oct 21 15:59:08 CEST 2020
W dniu 2020-10-21 o 14:43, Rainer Buchty pisze:
>
> One sender, any number of receivers. Doesn't matter how many if all
> receivers are on "the other" phase compared to the sender.
both boards need different data - different notes are played, and it can
be set up so each voice plays different patch. Well I can imagine a
scenario when at every even cycle the master CPU can mingle one slave's
RAM, and on every odd cycle - the other RAM. Still that seems
unnecessary as data transfer is needed very rarely compared to bus speed.
> The synth CPUs don't need to actively DMA back and neither communicate
> with each other. If feedback is required, they could reserve a
> mailbox/flag memory area that is checked/processed by the control CPU
> and/or trigger an IRQ of the control CPU, just like it is done by
> peripheral chips.
AFAIK the only feedback is autotune results and maybe "i'm here"
messages on power up.
> The shared-bus way is cheaper in terms of parts as no arbitration logic
> is needed; depending on the CPU used, you wouldn't even need tristating
> bus drivers (6809E has these built-in together with a control input).
There is no arbitration logic, only buffers. Just set the Halt line and
bus is yours to write those few bytes and go back. That seems simpler
than anything else.
>
> Likewise, the main CPU doesn't have to wait for the synth CPU(s) having
> halted and detached from the bus (or needing FIFOs for non-blocking/
> posted writes and async reads), but can just read/write away.
yes, needs to wait till the end of one instruction cycle, not a great
deal I think. That's done by Halt line and confirmed by slave processor
on Bus Available pin.
>
> Also, if you don't want to keep the entire patch memory on the synth
> boards but just the currently played patch, you might end up with patch
> memory writes with every new keypress (thinking multi-mode here).
That's wahat Iwas talking about. Memory is written when only a patch is
changed, like recalling new patch from keypad. Or any knob on the panel
is moved, or when MIDI comes in.
> Finally, it also does not induce different timing behavior of "free
> running synth" vs. "synth being parameterized", which might be an
> (audible) issue on slower CPUs.
There's no possibility of audible issues, because all that voice CPU is
doing is providing control signals to analog voices, and that is much
slower than CPU anyway. One might think about note latency jitter, but
IMHO not such a big deal. Think what a massive amount of data you can
transfer this way during 1ms, which is one note event in MIDI and
everybody are OK with this. Too bad I haven't done any timing
measurements when I had a chance.
There are many thing we can argue over Matrix12 or Xpander. It's clear
to anyone they are not perfectly designed. May compromises and bad
decisions all the way starting from the worst power supply ever
designed. Tell it to Tom Oberheim he did bad. Actually last time I asked
him about Matrix12, he told me he wasn't involved in the design on
digital/CPU stuff.
Roman
More information about the Synth-diy
mailing list