Poly Keyboard Interfaces
gstopp at fibermux.com
gstopp at fibermux.com
Tue Apr 30 20:00:08 CEST 1996
Are you saying you have schematics for a poly interface??? I'd like to
see those if you do.
I think that the idea of a CPU-less polyphonic CV interface is
fascinating, especially now that I will have many voice cards to play
with. I have been thinking about it....
I would probably start with a keyboard switch scanner built around a
6-bit counter and a mux. This would scan all 61 keys (for a 5-octave
keyboard) sequentially and provide a pulse on the mux output every
time a depressed key is found during the scan cycle. If you were to
press only one key at a time, and the mux output were to clock a latch
on the address counter, you would latch in the counter's value for
that key. If you were to hand this 6-bit word to a 6-bit DAC you would
have a CV suitable for VCO control.
The challenge of a Control Voltage keyboard interface is to do
something intelligent when more than one key is depressed. The above
description will have big problems when you press more than one key at
a time - the DAC will have glitches in it. For a monophonic CV
controller the best design I know of uses a flip-flop to block the
latch after the first mux pulse output, until the scan cycle starts
over. This means that only the first key detected during a scan will
be allowed to go to the DAC. If the scan counter is counting up, you
will get the familiar low-note priority scheme which we all know and
love. For a poly interface, you will need n latches for n voices. Now
the fun begins.
If you think about the mux output, you will recognize that it is a
serial representation in time of which addresses in the scan count
have depressed keys associated with them. Now we need to figure out
how to assign each voice latch to one of the pulses coming out of the
keyscan mux. Each voice latch, when it latches in a 6-bit word, sets
its own Gate high. Then it needs to watch the mux output to make sure
that the scan count pulse that's associated with the word stored in
the latch continues to come out. If the pulse goes away, then the Gate
must go low and the voice is free to be assigned to another key. The
Gate can also serve as a "busy" status, to block new key assignments
to its voice, and to act as a "taken" status to the other voices to
keep them from taking the same mux pulse (key).
There are a couple of ways for the voice to check that the scan
counter address matches the latched word. One would be to use a 6-bit
address comparator in each voice (made out of 2 cascaded 4-bit
comparators). Another way would be to have a copy of the scan counter
in each voice, that gets loaded with zeroes when the voice is assigned
to a key. If this counter is clocked with the same clock as the key
mux scan counter, then the voice counter will overflow during the mux
scan every time it expects to see the key down.
Now there must be a way to determine which voice gets chosen to pick a
note to play. If each voice is enabled for decision-making one at a
time, from a 3-bit count driven by the scan counter's MSB, then every
eight scans of the keyboard a voice will get it's chance to either get
a new note, keep the same note, or drop a note. This would result in
sequential assignment, in a rotary fashion, like on the OB-8 for
example.
As for the CV outputs, either each latch could have its own 6-bit DAC,
or the voice latch outputs could be bussed together and enabled
sequentially to a single DAC, whose output goes into a 1-of-n analox
mux to holding caps with buffers.
Now that I've gone this far I realize that I have no idea on how to
implement keyboard split. My brain hurts.
So - will this work? Any thoughts? Maybe someday I'll draw this up on
our Altera station. I could do all of this on one chip. After hours,
of course.
- Gene
gstopp at fibermux.com
______________________________ Reply Separator _________________________________
Subject: AW: Re: Linear VCO's + CEM's
Author: Haible_Juergen#Tel2743 <HJ2743 at denbgm3xm.scnn1.msmgate.m30x.nbg.scn.de>
at ccrelayout
Date: 4/25/96 7:25 PM
But I still dream of a DIY keyboard for my Modular that works
without processor stuff. We had this topic a while ago, and I won't
bring up pro's and cons again, but I have taken another deep look
into those n-voice keyboard scanning schematics last weekend.
It's very, very mind-boggling with all this random feedback around
flipflops and counters, and I am still far from understanding it all,
but the more I look at it, the more I love it. All this restet/continue and
reasign stuff ... increadible. I think I got this portion now - still musing
over the split stuff, however.
Gene's SEM-like project has brought up a dream of mine again -
maybe when JH-3 is finished, I go Polyphonic as well!
More information about the Synth-diy
mailing list