an idea ...
jwilmin at hzsbg01.nl.lucent.com
jwilmin at hzsbg01.nl.lucent.com
Thu Nov 14 17:24:32 CET 1996
Hi there,
> >> There's a lot to work out - such as the classic program-able synth
> >> dilemma - "how do we show knobs with values that differ from the
> >> programmer's values?"
>
>
> Huh? No. You switch to a memory location. Now, how do you know which
> knobs match the current memory settings and which ones don't? It could be
> that none of them match - it could be that all of them match - how do you
> know? What happens when you turn a knob? Nothing? I guess that's OK, but
> I think it should be fancier - like a Juno.
>
As far as I know it's really simple (but I don't have any schematics, it's
just the way I would do it and what I remember :-) )
Let's start at the beginning:
Suppose that all pot's simply generate an (analogue) voltage. Normally those
voltages would have to be fed to the voices of your synth. Now, if you would
like to store this patch, you press this program button, and all knobs
(i.e. analogue parameters) are read by the cpu via an ADC and stored in memory.
If you now decide to recall a certain patch from memory, then the cpu just
reads that patch from memory and distributes the parameters via one or more
DACs (usually one per voice) to the voices. after DA-conversion, the parameters
can be fed to their destinations (filter freq, adsr, etc).
Now the interesting part: the cpu does not only scan the front panel knobs
upon the pressing of the program button; it does this scanning continuously.
So, after you recalled a patch from memory, it will continue scanning the
front panel, and notice when a knob's value is being changed (it just compares
the new value with the previous one). If it then detects that a certain
parameter was changed, it will send the NEW / CHANGED value to the voices.
A little more detail on this DAC thingy process. There are a couple of options:
1) the cpu takes care of refreshing the DAC(s), so it just has to overwrite
this parameter's value with the new value, or
2) the cpu sends the (digital) parameter information to some kind of dedicated
memory, from which the DAC(s) are being refreshed. The cpu then simply
sends the new value for this parameter to this memory.
But in all cases: NO, you can't see the actual value of a parameter on the
outside (the knob). What you can do of course (but it's a little pricy) is
to use motor controlled knobs, as in automated mixing consoles.
Some other related info on scanning:
In synths of the 80's it was common practice to update one voice every msec,
in the following way:
The first msec you would update the first voice, the second msec the second
voice, etc. Looking closer at those updates, the first half of the msec would
be used for the real voice updating, while the second half would be used for
system functions, like scanning the keyboard, front panel, etc.
Graphically:
For an 8 voice instrument:
cycle 1 (8 msec) cycle 2
|-----------------------------------------------|-----
| | | | | | | | |
| s| 1| s| 2| s| 3| s| 4| s| 5| s| 6| s| 7| s| 8| s| 1| ...
| | |-----|
| | 1 msec
| |
| |__ update of voice: 1
|
|__ serve keyboard, frontpanel, etc.
CU
Janwillem Wilmink
jwilmink at lucent.com
More information about the Synth-diy
mailing list