Roland Juno 6: the DCO

VCO vs. DCO: a non-debate

Much discussion can be found online of the differences between what are simply often labelled VCOs or DCOs (Voltage/Digitally Controlled Oscillators) but as with many things, the truth is less simple. Often the argument boils down to things like phase and stability. I do not want here to get into any kind of debate or pointless pontification about whether one oscillator is better than another, or to try to delineate boundaries between oscillator types in such a black-and-white way.

The reason, in this instance at least, is partly that the Juno 6 oscillators contain features that straddle what some may see as stricly analogue and strictly digitally-controlled. I offer below an explanation, as best I can give it, of the functioning of the Juno 6 oscillators.

The job of key assignment and voice allocation is something I am not going to cover here. The Juno 6 has a CPU that scans the keyboard and generates data, and this process is beyond the scope of my analysis. I pick up the process at the point at which note data is output from the CPU.


How does the Juno’s oscillator work?

Many (if not most) analogue synthesizer VCOs employ a ramp generator core; that is, a voltage representing pitch is fed (via a convertor that scales the control signal correctly) to a circuit that charges a capacitor, the charge across it generating a ramp. When the ramp reaches a pre-defined level, a comparator in the circuit quickly triggers the discharge of the capacitor, at which point the ramp starts its cycle again. The result is what is often called a sawtooth waveform. In the analogue domain, the stability of this process is subject to factors like temperature fluctuations. Digital control helps combat instability.

Though the Juno 6’s oscillator core is based on this analogue capacitor-charging approach, the ramp reset pulse relies not on an analogue comparator but a digital counter. Effectively, the CPU is programmed with the relative frequencies of each note, and provides a counter (one for each voice) with a value representing how long it should wait before resetting the ramp for any given pitch. The CPU also sends note data (via a DAC) as an analogue voltage to the ramp generator control input. Perhaps counterintuitively, this is not to determine its pitch – after all, pitch is frequency, and the frequency is determined by the resetting of the ramp – instead, it is to maintain an even ramp waveform across all frequencies.

Imagine a low frequency. The clock waits longer to reset the ramp. If the voltage fed to the ramp generator were constant for all frequencies, it would ramp at the same rate no matter which note was played. At low frequencies the ramp would reach its limit and stay there before being reset, and at high frequencies, the counter would reset much sooner, cutting the ramp off before it had achieved optimum level. In this scenario, the low pitches would be severely distorted, and the high pitches would be extremely quiet. Thus, in accordance with the frequency data provided by the CPU, an analogue voltage is generated which will charge the capacitor in the analogue oscillator core at a rate optimised for that pitch, while the resetting process (and therefore the oscillator frequency) is controlled digitally. The result is more stable than a purely analogue circuit.

The matter is slightly more involved, however. Firstly, the counters that provide the reset pulse have to know how fast to count. They are clocked not by the CPU, but by an analogue voltage-controlled clock, which is governed in turn by a sum of the pitch bend, fine tune, and LFO voltages as collected on the bender board. This ensures there is no stepping in the pitch during modulation – as the master clock is in the analogue domain, it is thereby continuously variable. The sum of analogue modulation voltages is also mixed with the CPU-generated ramp feed voltage, so that there is no distortion of the ramp during modulation.

To summarise, the basic process is as follows: note data is sent as a binary number from the CPU to a high-speed counter. An analogue voltage is also generated by the CPU via a DAC, and fed to an analogue ramp generator. When the counter completes its cycle, it resets the ramp circuit capacitor, and charging begins again. Thus, an analogue ramp – the sawtooth wave – is frequency-controlled by a digital device.



It may help to study the schematic for the oscillator core and its logic control. Below is the appropriate page of the service manual. The complete manual contains further technical information.

The counters, DAC, exponential converter, and ramp generator are highlighted in red.

Juno 6 main board schematic with highlights

Juno 6 main board schematic

PDF version: Juno 6 main board


Moog Rogue: adding a Filter CV input

The Rogue in its original form includes keyboard CV and Gate inputs and outputs. It’s a slightly odd arrangement of TRS (stereo) jacks – one for the CV, with the input on one terminal and the output on another, plus signal ground, while the Gate connector has an even more awkward arrangement of short-to-ground on one terminal and positive trigger on another, either of which can act as input or output. It’s not great. But it does work, providing you have the right cables.

Rather than split these into separate jacks, which would be a handy mod, I just use custom made cables for my interconnects between CV devices. However, the Rogue lacks a CV input for the filter, which I thought might make a useful addition. It’s a simple enough job.

I decided to use a 3.5mm minijack for the sake of convenience. Pick a spot on the rear panel and drill a suitable hole:

photo showing a newly drilled hole for the Moog Rogue filter CV input modification

Freshly drilled hole for the Filter CV input jack


photo showing a newly drilled hole for the Moog Rogue filter CV input modification (inner)

Inner shot of the Filter CV input jack hole

I had a switched 3.5mm mono socket to hand, so used that:

photo showing the Moog Rogue Filter CV input jack (inner)

New Filter CV input jack (inner)


photo showing the Moog Rogue Filter CV input jack (outer)

The new Filter CV input jack from outside

Solder a ground wire from the appropriate jack terminal to the Rogue’s jack PCB. Its large solder plane is suitable and easy to work with:

photo showing the ground wire of the new Moog Rogue Filter CV input jack

Grounding the Filter CV input jack

The filter CV input requires a 45k3 resistor to give the same scaling as the keyboard. As presented here, there is no onboard scaling, so if you want to run the input as anything other than 100% follow, use an external amplifier/attentuator. It would also be possible to build such a circuit into the Rogue, but I chose not to for simplicity.

photo showing a resistor soldered to the Moog Rogue Filter CV input jack

Solder a 45k3 resistor to the Filter CV input jack

The other end of that blue wire goes to the filter CV node on the main PCB. Rather than outline it on the schematic, I’ll just show you where that is on the board. This is the point where various filter CV inputs are summed. It’s an easy job to solder a wire at the top of this area:

photo showing the Moog Rogue Filter CV summing node

Filter CV summing node

Here’s a wider shot. Note the longer black wire is a previous bodge and not related to these mods and repairs:

photo showing the Moog Rogue Filter CV summing node and input mod wiring

Filter CV summing node and input jack wiring

I used a Dymo labeller to add the finishing touch to the back panel:

photo showing Moog Rogue Filter CV input jack mod

Filter CV input jack mod, finished!

Hey presto! A filter CV input scaled at the same degree as the keyboard. I use a Kenton MIDI-CV interface, which has an auxiliary output for filter CVs, amongst other things, so this little mod should come in quite handy.

Moog Rogue: replacing the power supply

The Rogue’s original power supply is not ideal. It uses an external transformer in a box with one cable going to the mains, and another cable plugging into a 3.5mm headphone-style minijack on the synth. The minijack delivers a nominal 24V AC, which is then rectified into +12 and -12V DC internally. The power switch on the synth simply connects/disconnects the AC input at the jack.

When I received my Rogue, the transformer was damaged. Rather than buy a replacement, I decided to install a power supply inside the body of the Rogue. There is plenty of room to do this safely.

NB: I take no responsibility for anyone’s actions regarding mains electricity. If you are not confident working with it, don’t. Hand the job to someone qualified.

First job was to desolder the power inlet jack, and solder two wires to the place where the jack was on the main PCB. Unfortunately, the photo below is the best I have at hand. Note the two red wires supplying low-voltage AC:

Photo showing replacement power jack wiring

Power minijack replacement wiring

These two wires go to a connector that allows one to plug or unplug from the transformer for ease of maintenance. There are several kinds of connector that would work; I chose the type found in computer power supplies, as it’s what I had in the spares box:

Photo of replacement power supply connector in Moog Rogue

Replacement power supply connector

The other part of this connector goes to the low-voltage AC output of a transformer. The service notes state the Rogue requires 24V AC at 200mA. I leave selection of a suitable transformer up to you. Note that the Rogue’s rectification is provided by a 78M12 and a 79M12. A 12V AC, 12VA unit should suffice – the Rogue is rated at 6W. Again, I am not taking responsibility for the safety of others here, only providing an outline of my own process.

The transformer is bolted to the base plate of the Rogue. An earth lead is connected to one foot of the transformer:

Replacement mains transformer for Moog Rogue

Replacement mains transformer for Moog Rogue

From the transformer’s mains-level connections, wiring goes to a newly-added mains inlet. I chose the clip-in type with an internal switch and fuse. I cut a rectangular hole in the rear of the Rogue, set low down so as not to interfere with the graphics, which also meant trimming a little of the base plate’s rear lip.

New mains inlet for Moog Rogue

New mains inlet for Moog Rogue

Here is an overview of the result, with tape to secure the looser wires:

Overview of replacement power supply for Moog Rogue

Overview of replacement power supply for Moog Rogue

Here is the result from the outside:

Replacement Moog Rogue power inlet

Replacement Moog Rogue power inlet


External view of the screw mounting for the Rogue's replacement transformer

External view of the screw mounting for the Rogue’s replacement transformer

My Rogue also came with a plug to stop up the hole left by removing the power jack:

Photo of the plastic bung used to cover the Moog Rogue's old power inlet jack

Plastic bung to cover the old power inlet

I tend to use the mains switch on the rear, and leave the panel switch set to ON. It would be a simple job to remove and bypass this, but I consider it unnecessary.



Moog Rogue: cleaning and repairing the dust shield

Between the top panel and the main PCB, the Rogue employs a sheet that fits around the controls to prevent dust from clogging the sliders and switches. For some reason, the material has a tendency to decay, and after 20 years, it’s likely that it has turned to crumbly black goo. This goo is horrible stuff, and will stick to anything. The only remedy is to scrape it away.

My own Rogue arrived after a clean, so I have no photos of this goo. But below is a picture of the switches collecting dust after using the Rogue with no dust protector for a while. Clearly it would be a good idea to not only remove the sticky residue from a decayed dust-shield, but to replace it so as to avoid having to clean all these contacts.

photo of dusty switches in a Moog Rogue

Dusty switches in a Moog Rogue

The best material I have found for the job is neoprene sheeting. It can be found at craft stores, or online, and comes in sheets around 2mm thick, which is ideal for this purpose. I use black sheets around 200 x 300mm in size, though it doesn’t matter much what size the sheets are because they will be cut into much smaller pieces for application.

If we look at the Rogue’s control panel, we can see a cluster of sliders, two separate sliders, and several switches spread across the surface. It would be possible but awkward to cut one sheet to fit all these holes at once, so I chose to use a simpler method: apply individual pieces to the switches, and use larger pieces for the sliders. The switches being relatively broad, I chose to use snug slip-on pieces over each switch. The sliders only need to poke through a slot, so I chose to attach slit pieces to the panel and have the slider tangs poke through.

photo of the interior of a Moog Rogue control panel

Interior of the Moog Rogue control panel

Measuring the panel is easy enough:

photo of a drawing for a Moog Rogue dust protector

Drawing for a template for a Moog Rogue replacement dust shield

The neoprene sheet can be marked with pencil, and scored and cut with a craft knife:

photo of cutting a replacement neoprene dust sheet for a Moog Rogue

Cutting a replacement neoprene dust sheet for a Moog Rogue

Here are some close-ups of the slider protectors:

photo of replacement neoprene dust sheet for slider bank of a Moog Rogue

Replacement neoprene dust sheet for slider bank of a Moog Rogue

Single slider dust protector cut from neoprene sheet for a Moog Rogue

Single slider dust protector cut from neoprene sheet for a Moog Rogue

Checking that it fits:

photo of neoprene dust sheet for a Moog Rogue

Checking the slider dust sheet fits

Fastening the sheets to the panel is also easy. Rather than glue, I use double-sided sticky tape. These strips are about 5mm wide. I buy broader tape and cut the lengths down the middle. Care should be taken applying these taped pieces to the panel as the adhesive sticks quite readily.

photo of dust sheet with tape attached

Using double-sided tape to secure the dust sheet to the panel

photo of Moog Rogue panel with dust sheet attached

Moog Rogue panel with neoprene dust shields attached

The pieces for the switches are more fiddly. I cut small rectangles and used a regular office hole punch to make the holes for the switch to poke through:

photo of a small piece of neoprene with a hole-punched hole

Using a hole punch to make the switch dust protectors

They happen to fit nicely. In retrospect, I would have used larger pieces, as these were a little narrow for my liking, but they still do the job.

photo of neoprene switch dust protectors in place

Switch dust protector pieces in place

Once the job is complete, the panel looks much neater from outside, and the likelihood of dust getting in to clog the controls and damage them is much lower:

photo of Moog Rogue with replacement dust sheet

Finished! The Moog Rogue with fresh replacement dust protectors installed

Moog Rogue: open wide

Opening the Rogue is easy enough. There are five screws to undo on the base and back, and two on the front. It doesn’t matter what order you work in, as long as care is taken while moving the Rogue when it is only partially screwed together, so as to avoid spraining or cracking the screw points. Four screws are located at the corners of the base plate, as outlined in red on the photo below. One screw is located at the bottom of the rear panel, also outlined in red on the photo. Two screws are located on the front, one at each end of the keyboard. The second photo shows one of these partially undone.

photo of the screw points on the base of a Moog rogue

Moog Rogue screw points on baseplate

photo of screw points on front of Moog Rogue

Moog Rogue screw points on front of keyboard

Turn the Rogue upright and lift the lid. The third photo shows my previously-modified Rogue open like this; note the wiring at the left that connects the keyboard to the upper part. This is present in an unmodified Rogue. Be careful not to strain this.

photo of Moog Rogue open for work

Moog Rogue gut shot

To remove the main PCB from the top part, firstly remove all the knobs from the rotary controls and sliders. They should just pull off with little difficulty. The main PCB is attached to the top section by mean of three screws at the front, and a clip at the rear, which is itself attached to the body via three more screws. It is a simple matter to unscrew these in whichever order you feel works best. The clip simply slides off the PCB. The photos below highlight the locations of these screws from inside and out. Note that in the photos I have also removed the jack PCB. This is attached to the rear panel by the nuts around the jack sockets. Simply unscrew them and the PCB pulls away.

photo of Moog Rogue internal screw points

Moog Rogue internal screw points

photo of the location of Moog Rogue screw points for the main PCB, external

Moog Rogue screw points, main PCB, external

The final photo shows the Rogue open with the main PCB and jack PCB removed from the panel.

photo of a Moog Rogue open with PCBs removed for work

Moog Rogue open, with PCBs removed for work

Yamaha CS Trigger Input Modification

Problem: Yamaha CS not triggering from an external Gate
Solution: small converter circuit

I had a Yamaha CS5 for some time, a neat little monophonic synth with one oscillator, one envelope, switchable HP/BP/LP filter, a simple LFO, white noise, and a single VCA. It has Control Voltage and Trigger input jacks round the back for interfacing with other devices.

The CS series uses a Hz/V (Hertz per Volt) CV, and the better modern MIDI-CV interfaces can handle this with no problem. The Trigger levels are comparatively awkward though, with ‘off’ being nominally +3 to +15V, and ‘on’ being nominally 0 to -10V. I say ‘nominally’, because the outputs of these CS synths are stated as +3V for off, -7V for on.

Why is this awkward? Well, there are two other common systems – Positive Gate (aka V-Trig), and Short to Ground (aka S-Trig), which I shall not discuss here – and whereas the other systems have been employed by several manufacturers, Yamaha was, and is, on its own with theirs. Though many CV interfaces are stated as being compatible with Yamaha CS synths, I have found this not to be reliably the case.

The problem comes when a Short to Ground signal will not trigger a Yamaha Gate. For whatever reason, some units just don’t provide a good enough trigger output to correctly pull down the inputs of some Yamaha CS triggers. I suspect a number of things, but won’t speculate here as I found an easy and practical solution.


I owned both a CS5 and CS15, which use very similar, but not identical, trigger input circuits. My Kenton Pro-2 MIDI-CV interface would trigger the 15, but not the 5.

The Pro-2 is an older model, and has been long superceded by better units, but at the time I wanted to get the Kenton and the CS5 working correctly. My solution was to build a small buffer board and install it in the Kenton, adding a separate Trigger Out jack on the Kenton specifically designed for Yamaha’s system.

It works very simply. The Kenton provides a +15 Positive Gate by default. Its own subsequent conversion to S-Trig being insufficient, I added to the V-Trig output a single op-amp with a few resistors to provide both offset and scaling of the signal, transforming it into the ‘correct’ +3/-7V, and routed the new Trigger output to its own ‘CS-Trig’ jack socket. The schematic can be found below in both JPEG and PDF formats.

The circuit can be built onto a small piece of stripboard; I used a TL072 as it’s what I had to hand, but almost any op-amp will do. Mine was powered from the dual +15/-15 supply rails in the Kenton, but you could equally well install it within your CS synth if desired – just pay attention to where in the circuit you install it. Perhaps add a second jack for this input if you wish to leave the original in place (for example, if you wish to run your badly-triggering CS from another CS). Another option would be to install a switch to select the type of Gate input being used. That’s up to you; I present only the basic circuit that converts one gate to another.

NB: actual output values are 3.74V for ‘off’ and -6.45V for ‘on’, but they are within tolerance and much closer to Yamaha spec than the regular S-Trig.


Schematic for a V-Trig to Yamaha CS-Trig converter

Schematic for a V-Trig to Yamaha CS-Trig converter

PDF version: CS Trig schematic

Here are a couple of photographs of the extra board in situ in the Kenton Pro-2. Note the angled PCB at the bottom left is Kenton’s own optional Hz/V CV board (from the factory the Pro-2 only provided V/Oct CV). My extra circuit is mounted on the small piece of stripboard at top left. It takes power from the Kenton’s 15V rails, and takes its trigger input from the Kenton’s V-Trig +15V Gate, and it outputs a near-Yamaha-spec +3/-7V off/on gate signal to a dedicated jack socket which I added myself. The unused half of the dual op-amp is not connected to anything other than 0V and itself, as indicated on the schematic. If you use a single or even quad op-amp in this circuit, re-arranging the pin-out is up to you.

V-Trig to CS-Trig convertor installed in Kenton Pro-2

V-Trig to CS-Trig convertor installed in Kenton Pro-2

V-Trig to CS-Trig convertor installed in Kenton Pro-2, detail

V-Trig to CS-Trig convertor installed in Kenton Pro-2, detail


Korg Lambda repair and modification

The Korg Lambdas I have encountered have each exhibited problems:

Fault: A very thin, almost silent, Chorus preset; all other sounds were fine.
Solution: A loose capacitor in the filter bank for that preset, which was a simple solder job.

Fault: A loss of Percussion presets and a thinning of the Ensemble presets in Normal Octave mode; in Up Octave mode everything was fine.
Solution: A faulty CMOS switch (IC1 on KLM-184, a 4066) which failed to pass the divided-by-two clock to the first TOG, thereby effectively muting the first oscillator in that mode.

One case proved more problematic, however, and I have documented the process for reference.

Two main jobs were carried out on this machine:

  1. Tidying up a previous bad repair job
  2. Troubleshooting a bad oscillator


Tidying up a previous bad repair job

The main PCB in the base of the Lambda is home to the TOGs, divider/keyer circuits, and associated per-key envelope generators. The lines of diodes/resistors/caps that form the envelopes can be seen quite clearly stretching along the board, and the nine divider/keyer ICs can be seen poking up, mounted vertically on daughter-boards. Each of these smaller boards holds a single divider/keyer IC and some zero-Ohm jumpers.

Korg Lambda KLM-185 main board

Korg Lambda KLM-185 main board

In this example, two of these daughter-boards had been damaged – someone had gouged away the tracks on the PCBs and bridged the gaps with wire, but solder was everywhere and the PCBs were in less than ideal condition. Rather than simply tidy up the existing mess, I chose to replace one of those boards with a fresh PCB. The manufacture was carried out by Jim Harris, who kindly documented the process in the video below.

The results are very satisfactory. I always install replacement ICs in sockets for ease of future repair. Turned-pin sockets are preferable as I find they assist in seating the IC firmly, but here a flat-pin type is used as it was the only one to hand.

Korg Lambda KLM-182 front

Korg Lambda KLM-182 front

Korg Lambda KLM-182 rear

Korg Lambda KLM-182 rear


Troubleshooting a Bad Oscillator

When I initially tested this particular Lambda, it was exhibiting thinner sounds than expected. It became quickly clear that one of the oscillators was not sounding. The beat-frequency indicator LED B was locked in one state, revealing the culprit to be the third oscillator (Miii, as per the schematics).

There are multiple possible causes for a dead oscillator in the Lambda: faulty clock (including its output buffer logic), faulty octave switching, faulty wiring and dry/cracked solder joints/tracks, faulty TOG, badly seated ICs, corroded sockets, dirty switches, or even failed capacitors pulling down the power rails. There are probably more, but these are some options that occurred to me during testing.

In fact, everything seemed OK except the TOG itself, so I ordered a replacement vintage part and installed it. Despite initial success (all three oscillators worked, hurrah!) the new-old TOG failed after a few minutes. A pattern emerged of it working for the first few minutes after switch-on from cold, but then failing – and the machine had to cool down again for the TOG to function once more. It occurred to me there could be another faulty component bringing this TOG down, but isolation of the TOG from the other parts and testing it again showed the TOG itself to be at fault.

These ICs have been obsolete for many years, and are expensive to replace, if they are to be found at all. Stocking up with a batch of S50241s, of unknown provenance and with unknown remaining lifespans, is not a viable option.

How not to build a Top Octave Generator

I initially resolved to build a replacement using CMOS logic to fulfill the same function as the TOG – effectively it is a logic device, taking a clock signal and dividing it by fixed amounts to give outputs such that the pulse trains on them represent the frequencies of an octave scale.

Although the frequencies outlined on the S50240 datasheet are specified to give a certain pitch for a certain frequency clock, the Lambda’s keyboard begins at F, not C. To minimise the circuitry used, the TOGs are clocked so the outputs are pitched to match the octaves on the keyboard; thus, the nominal C output becomes an actual F, etc. This requires a higher speed clock than the recommended 2.00024 MHz, somewhere closer to 2.5 MHz to raise the overall pitch by a few tones.

The need to divide by 3-digit numbers in the low hundreds, some of which have no common factors, suggested the 4040 CMOS counter. My initial sketch is presented here for reference only, and in no way represents a functional circuit:

Erroneous TOG replacement using 4040 CMOS

Erroneous TOG replacement using 4040 CMOS

The clock, buffered by a 40106, pushes the 4040 along on each positive edge. The 4040 is a 12-stage (divide-by-4096) ripple counter, which means it has enough stages to divide by several hundred, but suffers the disadvantage of long propagation delays – each stage only flip-flops after the previous one, so there are several consecutive toggles to go through before a stable and desired output is obtained. The principle of using a clock divider is that when the correct number of clock pulses has been received (as derived by AND-ing together the correct combination of output bits), the counter is reset and an output pulse sent. This triggers a flip-flop to give a 50% duty-cycle output at the correct frequency. In theory, the result is a pulse train with a frequency of clock/n where n is the divide-by for a given pitch.

Experiments were sadly not successful. To illustrate one example, the note A requires division of the clock by 358. The total propagation delay using the 4040 to get through enough cascaded toggles is 65+(30*7) = 275ns. As the clock period is approximately 200ns, it can be easily seen that this is too long. In practice, I found this particular example gave a note around E – the incoming clock pushes the 4040 along before that count’s toggles have settled on the correct combination, erroneously triggering the next division faster than the desired division can be completed; a partial set of toggles is carried out and spills over to the next count – the resulting output is therefore at a higher frequency than desired.

Although there are ways around this, pragmatism demanded a tighter solution.

How to replace an obsolete Top Octave Generator the easy way

Time constraints eventually led to the purchase of a custom-built TOG replacement from FlatKeys, which is a small SMD circuit housed in a compact enclosure, and connected to the original IC position by a ribbon cable. It came configured as a 50240, which is identical to the 50241 except for the output pulse width – not an issue here as the Lambda further divides the TOG outputs at the divider/keyers. The enclosure fits nicely down the side of the main PCB, and the ribbon plugs into the TOG’s socket. It works perfectly, and there is no obvious difference between the original and replacement tones. It responds to pitch bend and modulation as expected. Though it would have been nice to make an entirely DIY circuit myself, simplicity proved the greater benefit.

Korg Lambda FlatKeys TOG replacement

Korg Lambda FlatKeys TOG replacement


Get every new post delivered to your Inbox.

%d bloggers like this: