SP – Duophonic Keyboard

UPDATE: Grounding

In the “Build Notes” section just after the “Power Supply Regulation/Filtering:”, I’ve added a section relating to the grounding scheme for this circuit. There are two grounds which need to be kept separate until you have brought the power back to the mains. If you don’t do this, the trigger circuitry can cause problems with the signal circuitry due to current flowing in the ground path from the trigger circuit which caused a shift in the ground potential. There is also some care needed if you are using this design along with the Fatar keybed decoding circuit board and some kind of relay PCB to mimic an organ (like Pratt-Read) keybed. There is a new Rev 1.8 PCB which has not been physically made that only changes the ground connection to Q12 from GND1 to GND2. See the section on grounding mentioned above after the section on “Power Supply Regulation/Filtering:”. If you want one of these PCBs instead of the current version, contact me.

UPDATE: 5 Octave electronics.

See below for details, but in recent exploring the keyboard electronics with a 5 octave keybed, some issues were uncovered and Nyle was in top form as he explained how to fix the issues by changing the values of just a few resistors.

UPDATE: New buss keybed emulation system.

The original setup I designed used two square’ish PCBs populated with the resistor chain and reed relays emulating the action of a buss/switch type keybed. I works great. But, I wanted to eliminate the MIDI conversion as it added the complexity of a microprocessor controlled keybed scanner then a conversion from MIDI to TTL level outputs to drive the reed relays. Roman Sowa graciously helped and designed a discrete diode matrix keybed scanner circuit that directly outputs a separate voltage for each individual key when pressed. I designed the circuit board so that it can be mounted under a typical FATAR keybed. This then is connected to one of a couple of relay PCBs that can be mounted behind the keybed itself in the case, or as I did with a Synthesizers Dot Com keyboard, I designed a custom “shelf” and mounted it under this shelf outside the case and below my excellent Synthesizers Dot Com ribbon controller. The point is, there is no intermediate MIDI conversion, the decoder can drive a PCB with one or two sets of relays to mimic a single or dual bus keybed where the dual keybed is guaranteed to always actuate one relay a few milliseconds ahead of the one on the second row. The system can be used to replace a tired, old Pratt Read action or other buss keybed. I tried to design the dual relay PCB so that it would accommodate how the resistor ladder was wired/configured for ARP, Moog, and Aries keyboards that use two busses. I don’t have a stock of PCBs yet, but expect to order them soon. Please let me know if you want any and I’ll get moving on the order. I think I will add a new page, with a link here, as the system is more general purpose than specific to the Steiner system, although it really works wonderfully.

Buy the PCB set:

Steiner Duophonic Keyboard - MIDI Set
Steiner Duophonic Keyboard - MIDI Set
Includes Keyboard PCB, Power PCB, and upper/lower reed relay PCBs. Does NOT include reed relays. Does NOT include MIDI controller keyboard. Does NOT include MIDI to Parallel converter such as MTC64 or MTP-8. See below for more details.
Available Qty: 25
Price: $80.00
Steiner Duophonic Keyboard - Buss Keybed Set
Steiner Duophonic Keyboard - Buss Keybed Set
Includes Keyboard PCB and Power PCB. Does NOT include buss type keybed.
Available Qty: 24
Price: $50.00


There are several PCBs to build for this if you are going to make it a MIDI to CV controller rather than a dedicated controller using a buss/switch per key type keybed. There is the PCB for the duophonic keyboard electronics, two PCBs for the reed relays and resistor chain, and one for the power distribution. See Build Notes for more information about what each PCB does (coming soon). You will also have to have a module that is a MIDI to parallel output converter with at least one “switch” per key, such as the Doepfer MTC64 or the MTP-8 from jω Electronics. I’ve used the MTC64 with good luck, but it can only sink a low current (5 volt, 5 mA) reed relay like the COTO 9007-05-40 without adding an additional transistor switch per output. Digi-Key was out of these relays last I checked Digi-Key #306-1251-ND. As of January 1, 2015, Online Components has some stock. This reed relay has a 5 volt, 1000 ohm (high sensitivity) coil which is compatible with the 5 mA limit for the Doepfer™ MTC64. The MTP-8 has an extra open collector transistor switch built in so you can use a different COTO relay with the same pin out, but a different coil resistance and/or coil voltage if you want. Just remember each key press will draw a coil’s current from your power supply and the more keys you press, the more current will be drawn. Granted this is only a duophonic keyboard, but someone might try pressing a bunch of keys to see what happens. Be aware and account for the possible draw. Here is a link to the COTO devices web site with the specs for the 9007 series. Contact bounce for these relays has not been a problem that I’ve seen. I have some MTP-8s to try, but haven’t had time yet. The MTP-8 connects a little differently than the MTC64, but I think they should work fine. If you are interested in this PCB, first decide if you you are going to use a buss type keybed like the ones available from Kimber-Allen (you need to email them and ask about the double switch, 4 octave keybeds and if they still have stock) or an old Pratt-Read action. If you want the MIDI interface (which requires a MIDI to Parallel converter and the Reed Relay PCBs) you need to decide which MIDI to Parallel converter you are going to use, and make sure you can get the reed relays you need. Email me (see contact box) to discuss before you buy. You might want to “roll your own” Midi to Parallel converter with an Arduino, this is SDIY, right? One last comment. There is a lot to be written here about the build and component selection because there are some choices you have to make with some parts. Suffice to say, it matters if you are using a 3, 4, or 5 octave keybed. And, it matters what resistor value you use in the buss chain. You can use a 68 ohm or 100 ohm, but there are other components which will have to be selected depending on what you choose. I think the notes on the schematics explain this for now.


There are a lot of notes on the schematics. Please read them.

Duophonic Keyboard PCB:

Schematic BOM Names Values

Reed Relay PCBs, High and Low Octaves:

Low Schematic, High Schematic Low BOM, High BOM Low Names, High Names Low Values, High Values

Power Distribution:

Schematic BOM Names Values


The function of the Duophonic Keyboard is pretty straight forward. It allows a user to play notes tied to a specific scale, or a non standard one. It creates triggers/gates for control as well. A synthesizer needs a way to interface with a person. Traditional musicians like an interface they are used to. This desire was a big motivation for Nyle, as a trumpeter, to develop his EVI controller. A piano keyboard is another natural and common interface. Other manufacturers went away from traditional to other controllers to allow a greater flexibility and ability to play outside of the box. I like keyboards. Nyle developed a way to get a second control voltage out of his keyboard. It isn’t a truly independent second voice, but it’s still very useful for playing a second note, controlling a filter, VCA, or a modulation source, or other module that uses a control voltage.


Duophonic panel with MIDIIt’s a little easier to understand on this module with a picture of the panel. Open the image at the right in a separate window and refer to it as I go through the operation and use. It will also help during the component selection and mounting.


There is really only one input whether you use the MIDI or Buss Switch version. You plug the keybed into either the MIDI or buss input jack. If you use this panel design and added the optional foot pedal jack, you will also have an input for the foot pedal to enable the portamento. This should be a normally closed foot switch so that when pressed, the portamento circuit is enabled. Adjust the portamento to the amount you want, then when you want the glide, press the switch and you’ll get it. There are only three outputs:
  1. Lower voice control voltage.
  2. Upper voice control voltage.
  3. Trigger (either S-Trigger or Voltage Trigger depending on how you configure the PCB).

Lower Voice:

The lower voice is the main voice to use. It tracks the lowest key pressed. It also generates the triggers.

Upper Voice:

The upper voice is a secondary voice which will always mirror the lower voice when no upper key is pressed. In practice, you can use this to have two real voices if you keep in mind that when you release the upper key, it will always return to track the second voice.


The trigger outputs can be configured as S-Triggers or Voltage Triggers or maybe both. You can choose when wire the jacks and PCB. See below about legato/lift, but for here, note that the triggers can be generated with each lower voice key pressed regardless whether or not you have released the first key, or only when you lift off the lower voice key and press a new one.


There are several knobs and trimmers:
  1. Scale.
  2. Tune.
  3. Range.
  4. Portamento.
  5. Pitch Bend.
  6. Auxiliary voice scale.
  7. Auxiliary voice tune.
The Scale is used in conjunction with the calibration to set the 1 volt per octave primary scale for the keyboard. After the keyboard and VCOs are calibrated, you shouldn’t have to touch this knob. However, you can use this if you think the volt per octave output has drifted. The Tune adjustment simply allows you to tune the entire system up or down after the VCOs and everything else is set. The Range allows you to shift the tuning in one octave increments to shift the tuning. You can adjust this with the Range trimmer, or even experiment with the fixed resistors on the PCB if you want different shifts. Portamento adds glide between the notes. You can add a foot switch so that this knob can be set, but disabled until you press the foot switch. Pitch Bend lets you modulate the CV by hand and shift it up or down about one octave. Nyle just used a standard pot with a designed in dead spot near the middle so you could more easily return to the not bent output. You can also use a pot with a detent which also helps. See panel notes about knobs. The Auxilliary Voice Scale and Tune let you set up an alternate scale for the keyboard and switch to it easily. Trimmers:
  1. Main lower voice scale.
  2. Range trim.
  3. Two voice offset
  4. Two voice scale
See the calibration to understand the trimmers.


There are three switches:
  1. Aux/Norm
  2. Reverse On/Off
  3. Legato/Lift
The Aux/Norm switch selects either the auxiliary or normal scale for the keyboard. The Reverse On/Off flips the keyboard voltage so that the lowest key will output the highest voltage and vice versa. The Legato/Lift affects how the trigger works. A trigger is generated from the lowest key pressed. You can either generate a trigger at each lowest key pressed regardless how many other keys are still pressed, or only when no other key is pressed. That is, you have to fully release all keys before a key press will generate another trigger.


The connections are straight forward. Connect the keybed or MIDI controller to the bus or MIDI input. Connect the lower voice and upper voice to an appropriate module, like VCO, VCF, VCA, anything that wants a control voltage to control something. Connect the trigger to any module that needs triggering, typically an EG. Remember, S-Triggers from the keyboard and any other module (eg: VC Trigger Generator) can be OR’d together in a multiple if you use S-Triggers. If you use Voltage Triggers, you can only combine triggers using a buffer with voltage summing.


See the Component Notes page for more information.


For the most part, 1% metal film work everywhere except in the range selection circuit, R15, R22, R25, and R32. These must be matched as closely as possible to guarantee a exact 1 octave shift. 0.1% is great, 0.01% is better. You can buy them at these tolerances (expensive) or use a good ohm meter with appropriate precision/accuracy and hand match some 1% resistors. Interestingly, Nyle said 1% resistors are fine in the keybed chain. He said he found even 5% resistors worked fine.


C8 and C9 must be temperature stable, low ESR capacitor like polystyrene. The tolerance is not as important as the temperature stability. If you can’t find a polystyrene, use a polypropylene (see here for a great article by Harry Bissell). Other capacitors are not too critical. Make sure the voltage rating is 25 volts or more.


There is a CA3140 OpAmp in the circuit, FET input. Be careful and use your best static handling. For the others, 741s were the standard and work fine.


All NPN, 2N5172 or similar small signal transistor.


1N4148s are fine.


Alpha 12mm or 16mm or other pot of your choice. They are all panel mount, so you just need to make sure the panel holes will fit your pots. I use the Alpha 313 series and they work fine. For the Tune pots, I did choose a 10 turn wire wound pot so I had better control. I also picked a counting dial with lock that didn’t require any mounting holes. the lock helps keep it from getting bumped and changed. Because of the counting dials, there are no tic marks on the panel for these pots. You can use a ten turn or single turn here. It’s all your choice.


Use good trimmers, please, really on this PCB use good trimmers. A good Bourns multi-turn trimmer like Bourns 3296Y series will fit the pad layout and works well. The original modules used single turn, carbon trimmers. You can get a Bourns model that will fit the pad pattern if you want to. They cost about as much as the nicer multi-turn pots, though. It’s a Bourns 3352H series has the appropriate pin spacing/configuration. The 3329H and 3329W series are sealed versions which will work, too. For the panel mount trimmers, I made a little PCB chiclet like the ones above to make this easier. I suggest using a Bourns adapter, p/n H-83P. It has plastic 5/16 inch threads, so the hole is 0.3125 inches in diameter. It seems to work with any standard 3.4 inch multi-turn trimmer. Insert the trimmer and push it til it snaps into place. Another option is a Vishay part p/n 006-1-0 or 006-1-1, or 006-1-2, or 006-1-3. It depends on what type of shaft you want to have. These have a smaller, metal bushing. A 0.22 inch hole works fine. They are a bit smaller than the Bourns and about 3 times as expensive. $5.00 compared to about $1.50. If you use this one, I’d also recommend getting the Vishay trimmer adjustment tool. It’s made to fit down the hole if you don’t buy the adapter with a shaft. No Vishay part number. Mouser p/n 594-8T000. The Bourns trimmers which work are the 3006 series. Easy to find. The Vishay trimmers which work are the model 43P 3/4″ 20 turn series. Easy to find.


For the panel I laid out, a good 3.5mm or 1/8 inch jack will work. I use the Switchcraft 42A Tini-Jax true 1/8 inch jack. These are switched jacks and they work with 1/8 inch plugs and 3.5 mm plugs.


Use any good switches that fit the holes on your panel.


Notes from Schematic:

The notes from the schematic were updated to reflect Nyle’s instructions regarding how to modify the electronics for a 5 octave keybed. Changed lines are indicated and changes are in bold italics. The issue was that with a 5 octave keybed, I was unable to get the upper voice and lower voice calibrated properly with a 1 volt/octave standard. The Keyboard is the most SDIY PCB of the bunch. You need to make some decisions regarding the number of octaves for your keybed because this design is not necessarily universal. I could have added a bunch of jumpers/DIP switches or other means to select the number of octaves, but I didn’t. If you are building this, you should know some electronics and should be able to make some choices and adjust accordingly.
  1. The keyboard uses two isolated grounds which should only be joined at the power supply mains. Do not connect these two grounds on the PCB. Run two separate gound wires back to your distribution location or better, at the output of the power supply itself. Be sure you don’t connect the two grounds on the I/O jacks, panel, or other locations. GND1 is the Analog or signal ground. GND2 is the Trigger Ground.
  2. The resistors on the keybed buss can be 1% (or even 5% per Nyle’s experience).
  3. The 22k resistors in the octave switch and in the upper voice output stage should be 0.1% (0.01% if available) or better.
  4. The portamento shows a 100k pot and two 10uF capacitors. This combination give an almost imperceptible glide. Other documentation shows a 2M pot instead of the 100k. 10u capacitors work with a 2M pot. For a 100k pot, 220u are OK. For a 1M pot, 22u are OK. Choose ones which work well for you.
  5. R14, 8.2k can be varied to adjust the span of the pitch bend. 8.2k gives about 1 octave span.
  6. R37 can be adjusted between 4.3k and 55k (I used a 22k) to eliminate unwanted retriggering when a low key is held down and a key in the highest octave is also pressed.
  7. R73 should be a jumper except for a three octave keybed. In that case make R73 a 22k resistor.
  8. CHANGED: If you use a 100 ohm resistor in the chain (instead of 68 ohm), make R9 7.84k. If you are using a 5 octave keybed with 68 ohm resistors, R9 needs to be a little bigger, 6.5k works.

Number of Octaves:

The Duophonic can be 3 to 5 octaves big, but depending on which one you choose, you will have to make some component choices. You will not be able to calibrate the module if you don’t make the following adaptations. For a three octave keybed:
  1. Use a 22k resistor for R73, not a jumper.
  2. Leave all else the same as for a four octave keybed.
For a four octave keybed:
  1. Build as shown on the schematic, and silkscreen and make sure you put a jumper at R73.
If you want to use a 5 octave or bigger keybed, make the following modifications:
  1. CHANGED: Make R9 bigger, 6.5k is good for 5 octave.
  2. CHANGED: Deleted…
  3. CHANGED: Make R72 30k. Just like you need to make the combined resistance of R71 and R73 bigger by adding a 22k resistor for R73 for a shorter keybed, you need to make the combined resistance less for a longer keybed.
  4. CHANGED: Now reads: Make R13 and R65 17k.


I assume you know the basics of soldering. I like to insert the low lying parts first, like resistors, diodes, etc. After these, I install the IC sockets. Next capacitors, transistors, connectors. Use a good solder, either an organic flux, which you should wash regularly, or a no-wash flux. Take a break every so often, wash off the flux if you are using a flux which required cleaning. Double and triple check orientations, pins, and solder joints.

Power Supply Regulation/Filtering:

There is a unique power supply/conditioning PCB which comes with either PCB set. You need the supplied power conditioning because there is a “Signal” ground and “Trigger” ground on the PCB. These two grounds should only connect physically when the two separate wires are as close to the mains as possible. I mount my “power PCB” than regulates and conditions the +/- 15 volts from the main supply as close to where my primary +/- 15 volts come into the cabinet. The ground wires are kept separate through the main 0.156 MTA four pin connector so you can run separate grounds to your main supply.


There are two grounds in this circuit. There is the “Signal” ground (GND1) and the “Trigger” ground (GND2). The reason for this is that the trigger circuitry can cause problems with the signal circuitry due to current flowing in the ground path from the trigger circuit which caused a shift in the ground potential. I’ll re-emphasize from above. Run two separate ground wires from pins 2 (GND1) and 3 (GND2) of the 4 pin MTA connector back to as close as you can get to the main power supply connection. Modification 1: When I laid out the schematic, I also added an S-Trigger to V-Trigger circuit if the builder wanted to have one built in. I mistakenly used GND1 (Signal ground) instead of GND2 (Trigger ground). This in and of itself is inconsequential, but if you like, you can cut the trace between the emitter of Q12 which goes to pin 2 (next to the V+ pin) of the 4 pin MTA power connector and run a bodge wire from the emitter to pin 3 (next to the V- pin) of the 4 pin MTA power connector. Pretty simple. You don’t have to do this. Modification 2: YOU MUST DO THE FOLLOWING IF YOU ARE USING THE FATAR DECODER WITH A RELAY PCB MIMICING A PRATT-READ KEYBED. Connect the ground to the decoder and the relay PCB to the Trigger ground, GND2 NOT to the Signal ground, GND1. I used the Signal ground without thinking it through and when ever there was a key up event, the control voltage would shift just enough to hear it. To be fair, I could only tell when there was just a sawtooth wave, no EG/VCA, no filter, no signal processing at all. It was very subtle, but it was a few mili-volts and the shift was enough to drive me nuts. The short version of how I understood what was going on is I was discussing the multiphonic keyboard I had just purchased with Nyle and he was explaining the reasons for the two grounds, Signal and Trigger. This made me think about the issue with the Duophonic circuit and sure enough when I checked the ground wiring, I had connected the Signal ground to the Fatar decoder and relay PCB. I had thought the issue was with the V+/V- and didn’t even think about the ground connection. I changed the ground connection to the Fatar decoder and relay PCB to the Trigger ground and surprise, swapping the ground from the Signal ground to the Trigger ground completely fixed the problem. Thank you again Nyle!



There are as many as 4 boards to piggy-back on each other. The main PCB, two reed relay PCBs, and the MIDI to parallel converter. The PCBs supplied have similar sizes and mounting holes so you can piggy-back them. Or, you can mount the reed relay and MIDI to parallel boards elsewhere in your cabinet and run your wires to them. The power regulation PCB has holes that match the odd spacing Blacet™ used in their old racks, long story. But, this mounting has, for no good reason, endured in my cabinets and panels. This PCB should be close to your mains. run separate ground wires from each one of the two ground pins on the MTA connector to your mains supply to keep the “trigger” and analog grounds separate.


Personally, I think the keyboard is harder than the VCOs to calibrate. There is a lot of interaction between the trimmers. But if I can do it…, well here goes anyway. Keyboard Tuning:
  1. Adjust the Main Lower Voice Scale (R7 or R8) for a zero shift in the upper voice output voltage when a lower key is pressed and release repeatedly while holding the upper key down. You many need to adjust the Upper Voice Offset (R68 or R71) first to get the upper voice into a reasonable range to start
  2. Adjust the the front panel Scale (AKA Fine Scale) (R4 or R6) for octave intervals from the lower voice output with the Range switch in the middle or Tune position.
  3. With the keyboard scale in proper adjustment, adjust the Octave/Range Trim (R47 or R53) so that the Octave/Range switch shifts the pitch in one octave intervals (you can do this last if you want).
  4. Adjust Upper Voice Offset (AKA Two Voice Trimmer) and Upper Voice Scale with one key pressed so that the upper key output voltage is the same as the lower key output voltage. That is, when one key is pressed, the lower voice and upper voice should be outputting the same voltage. The Upper Voice Offset and Scale are adjusted in concert to make the upper voice track the lower voice. This may require some iteration in adjusting.
    1. Adjust the Upper Voice Offset (AKA Two Voice Trimmer) (R68 or R71) so that the upper voice and lower voice output the same voltage when a low note is pressed.
    2. Adjust the Upper Voice Scale (R62 or R63) so that the lower voice and upper voice output the same voltage when a high note is pressed.
  5. Repeat 4a and 4b until the lower and upper voice track over the entire keyboard range.
Additional notes:
  1. I found there is an interaction between the UV Scale and LV Scale trimmers. After calibrating, check steps 1 and 2. If you have to turn the Fine Scale knob close to fully CW or CCW to get a double in pitch per octave turn the Fines Sale to approximately mid-point then adjust the LV Scale trimmer to get a doubling in frequency per octave.
  2. Now, adjust the UV Scale so that the upper voice does not shift when a lower note is pressed.
  3. Next, go back and make sure the double frequency per octave is still calibrated. Go to step 3 again and set the UV Offset and check the UV Scale.
  4. Re-check the LV Scale and Fine Scale and call it good.


The panel is set up for the counting knobs for the Tune pots (see above) and for a big knob for the pitch bend. I originally used a big knurled aluminum knob, but went to a black fluted knob to be a little easier to grab and to match the other knobs. It also is expecting to through hole MIDI jacks that use a nut on the back to mount them. Kind of hard to find lately. To do over, I’d probably use a different jack. Feel free to change the holes to match the jacks you can find.