Tuesday, March 31, 2009

Polyphonic Spree

Now that I've covered monophonic keyboards in detail, it's time to move on to scanning keyboards as used in the early polyphonics and monophonics with last-note priority/built-in sequencers. This type of keyboard is used only on microprocessor based synths because it requires a little software to decode the notes . This is not the method used on the Polymoog and other paraphonics whose keyboards are akin to organs.

To start off, let's ask a question. How many wires do you need between a CPU and keyboard to read keys being played? If you guessed at least one for every key, hello from the future. If you guessed one, to transmit serial data, slow down. The keyboard only has simple switches and components. We need to read the keyboard before we can transmit note data by MIDI or other means. Luckily smart people have already found the answer. We can use a switch matrix with inputs and outputs instead of individual inputs for all the keys. A switch matrix is used in all sorts of devices with keypads, buttons, or switches to scan . Using this method we need at least 2x the square root of the number of keys. For a 61 key synth that would be 2 x sqrt(61) = 15.6 or 16 data lines. Below is a schematic from the Jupiter-6 Service Manual.I've labeled the connection KC-1 in the upper left "Outputs from CPU" and KC-2 in the upper right "Inputs to CPU." Here's how it works. The CPU cycles through different outputs for KC-1. It will output 10000000, 01000000, 00100000, 00010000, 00001000, 00000100, 00000010, 00000001 in some predetermined order. For each of those outputs it will scan for a particular section of keys. For example, if the output is 10000000, pin 61 will get 5V and 62-68 will be 0V. That 5V is connected to the key contacts for notes C0, G#0, E1, C2, G#2, E3, C4, G#4. Those key contacts connect to separate buss bars. Each of those eight buss bars is connected to a separate input back into the CPU. If the CPU reads 00101100, we know E1, G2#, E3 are being played. Then the CPU changes it's output and checks for a different set of seven or eight keys.

The only components in this keyboard other than wires and switches are diodes for every key. Why do they need to be there? Let's imagine they aren't there. You play F1 and G#1 simultaneously. The CPU is outputting 01000000. The 5V from the F1 will go to the buss bar 3rd from the left and be read by the CPU. There's a problem though. Without the diodes, the 5V at the buss bar also goes back through the G#1 and back to that note's CPU output, which is 0V. A 5V and 0V output get shorted together which may or may not make sparks, let out smoke, and ruin the CPU.

No comments:

Post a Comment