[sdiy] CC-Modular

Seb Francis seb at is-uk.com
Tue Sep 10 02:33:32 CEST 2002


Hi JB,

Interesting idea to use multiplexed DACs and ADCs and a "virtual" digital matrix to avoid the need for the switch matrix (this seems to be the bit which has the most scaleability problems).  This is not disimilar to the ideas which Paul mailed me, although he doesn't suggest using a multiplexed DAC.

I didn't even realise there was such a thing like the MAX5631.  It looks really good (at least for CVs).

I tried to work out from the datasheet whether it would be fast enough for 32x 48KHz.  I'm not sure that it is .. it seems the fastest it can run the sequencer clock is 120KHz (1/4 the max external clock rate of 480KHz).  So it can't update all the channels at anything more than 3.75KHz.  I might have got this wrong though ;)  This seems not to be enough for anything other than CVs (and even then fast envelopes and LFOs might be a problem).

The other thing which would concern me is what all the converting to and from digital will do to the sound.  Even with high end professional ADCs and DACs I don't like running a signal backwards and forwards from analog to digital too many times.  It doesn't help the sound.  Consider a patch with VCO-VCF-MIXER-VCF-FX mixing with VCO-MIXER.  There's a lot of signal conversion going on.  After all, the reason most people use analog (apart from the fact that a big cabinet full of knobs looks lovely) is because of how it sounds.

Something like the MAX5631 does simplify producing many CVs from the computer & digital controller.  With this chip it looks like it is possible to run say 4 channels very fast for any soft-generated LFOs and envelopes, while running the rest slower for other CVs (would require some clever software to get the timing right!).  Also 16 bits is nice for slow soft-generated LFOs and envelopes (with 14 bits used for the other CVs).

Still the biggest problem is the size of analog switch matrix needed to connect a moderately large set of modules and CVs.  Ian Fritz made the suggestion to design an expandable system where banks of analog switches can be added as the number of analog modules grows.  I'm also looking for dedicated analog switch matrix chips which might reduce the scale of things.  Quality of switch matrix is also important.

As for putting all the analog stuff on a PCI board - well this is fine as long as all modules of the synth would fit, and it wouldn't be possible to expand the system, and plug in modules from other systems like MOTM, etc..

On a practical note, I've never had any experince soldering these tiny SMT chips like the MAX5631 (or most probably large analog switch matrices).  Can this be done by hand with a normal soldering iron?

Seb



jbv wrote:

> Hi list,
>
> Don't know if it's been already discussed on the opensynth
> list or any other "silent" list (just teasing you Paul), but I'd
> like to discuss another approach for this CC modular...
> I guess we all think hardware first, and then add a few
> software components when needed... My approach would
> be, in some way, the opposite...
>
> Let's say the analog stuff is on a PCI board. It features
> analog MIX OUTs, and eventually 1 analog IN (for sound
> processing) and MIDI i/o.
>
> Suggestion #1 : ONLY your patch app talks to the board.
> Your patch app needs to be like any other MIDI app in your
> MIDI setup, and your sequencer needs to talk to the patch app
> through "virtual" MIDI ports.
> Patches are saved/recalled by that app, and the sequencer only
> triggers patch changes with simple MIDI commands, like
> program changes for instance.
> As someone suggested, the patch app can also edit & download
> other kinds of data to the board (WT to the VCO, etc).
>
> Suggestion #2 : don't use analog switch matrix chips.
> Instead, use a uC running a double dynamic LUT.
> Here's what I mean : all ouputs of analog modules on
> the PCI board are hooked to some 32 channel multiplexed
> ADC and stored in fixed order in a LUT.
> Simultaneously, patch data are passed by the patch app to
> the uC in the form of a corresponding list of input destinations :
>          LUT1             LUT2
>     OUT1 data            IN1
>     OUT2 data            IN4
>     OUT3 data            IN2
>     etc                         etc
>
> The uC will then take care of sending the right data to the right
> input, in some form of indirect addressing, through a 32 channel
> multiplexed DAC with S&H. The Maxim MAX5631 looks like a
> good candidate.
> The benefit of this approach is a hardware complexity reduced by
> several orders of magnitude. Furthermore, I'm sure all these data
> transfers can be ran in realtime at 48 KHz. Another uC on the board
> can also take care of EGs and LFOs with phase accumulator algos
> at 48 KHz also. Some uCs (Scenix) are fast enough to handle this.
>
> Of course, it needs some more brainstorming. But I have the feeling
> this is a promising approach.
>
> JB




More information about the Synth-diy mailing list