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