Roland Juno DCOs

This page is a brief look at the technology of the Roland Juno series digitally controlled oscillators. The specific scheme presented here was introduced in the Juno 106 in 1984, but the same basic DCO design turned up in many Roland instruments through the 1980s (including the JX-3P, JX-8P, JX-10 and the MKS modules based on these) up until the D-50 in 1987.

The Roland DCO is an interesting hybrid design. Although digitally controlled and digitally stable, the oscillator produces a true analogue output, even for ramp waves, rather than the typical staircase waveform produced by feeding an incrementing count to a DAC or from a wavetable.

Here we will look at how this is done.

Contents

General Scheme

There are six voices in the Juno series synths. Each voice has a single DCO. All of the oscillators derive their pitch from one high frequency master clock.


JunoDCOGeneralScheme

For each voice, there is a programmable counter that counts pulses from the master clock. The output of the counter produces a square wave for each timed interval. Thus the microprocessor is able to produce any of the required pitches by programming the counter with the required number. This is essentially a divide-by-x scheme.

The second part of the DCO is a waveshaper. This takes the raw square wave output from the counter and produces a ramp wave, a sub-octave square wave and a PWM output. Of these, generating the ramp wave is the hardest part.

Master Clock

The master clock runs at 8MHz and is followed by a programmable divider that divides its output by 2, 4 or 8 corresponding to the setting (4, 8, 16) of the Range switch on the front panel. The use of the divider ensures that the master clock output has a perfect 50% duty cycle.

Counters

The counters are Intel 8253 16-bit programmable interval timers. A more recent version of the chip is the triple counter 82C54 (also made by NEC as the uPD71054) which can be bought for around £2.50. The chip operates in Mode 3, its square wave output mode. This was originally intended for baud-rate generation, but here is used for audio. Each counter divides the master clock by a number set by the divide data from the microprocessor. The divide data is the sum of a key number and the outputs from the LFO, Bender, Portamento and Tune. It falls to the microprocessor to perform this sum.

Waveshapers

The waveshapers are built on custom ICs which in the later Junos contain all the parts for two entire circuits. This means the waveshapers for six voices can be done with only three chips! The following diagram shows half of one waveshaper chip and its associated circuitry:

JunoDCOwaveshaper

Sub-Oscillator

This is a very simple flip-flop divider. The output level is controlled by the collector supply voltage (SUB-LEVEL) on transistor TR19.

Sawtooth

The sawtooth waveform is generated by charging a capacitor linearly in an op-amp integrator configuration. A rising edge on the square waveform discharges the capacitor and resets the sawtooth.

The problem with this arrangement is that as the frequency of the square wave increases, the capcitor will have less time to charge, so the output amplitude of the sawtooth will decrease. The CPU provides a control voltage (DCO CV) which is designed to compensate for this effect by increasing the voltage that the capacitor charges from, thereby increasing its rate of charging. Thus the DCO CV keeps the sawtooth amplitude nearly constant (approx 12Vp-p) over the whole frequency range. In order to do this, the DCO CV has to include LFO, BENDER, PORTAMENTO and TUNE data as well as key value. Note that it does not contain RANGE data; instead the RANGE data is used to switch resistor values using a 4052 analogue switch. This also alters the rate at which the capacitor charges.

PWM

The PWM output is generated in the standard way by feeding the Ramp output and a PWM LFO control voltage to a comparator. This allows the duty cycle to vary from 50% at +6V PWM CV to 95% at +0.6V PWM CV. The PWM CV is also used to disable the PWM output by setting the CV to -0.8V. This keeps the output high and effectively turns off the PWM audio output.

Frequency accuracy and smoothness

Although this design can produce a true analog ramp wave, it is based on a digital divider, and so cannot produce a smooth variable frequency. Instead it can only produce various discrete frequencies, depending on the value in the divider. When a modulation is applied to the DCO, the frequency actually steps through various values of the divider under control of the microprocessor. If these steps are not close enough, the result will be audible zippering noise.

This introduces various questions:

  • How closely do the frequencies produced match the true values required for in-tune notes?
  • How small are the steps between adjacent frequencies?

If we think about the way the division produces frequencies, we can see that if dividing the master clock (2MHz in this example) by 2000 produces a note of 1KHz, then dividing by 1000 gives a frequency of 2KHz, one octave higher. If we halve the division again, we raise the frequency another octave, and so on. This means that the following series of division ratios gives us equal octaves: 2000, 1000, 500, 250, 125. The importance of this is that between the first of these are 999 steps, but in the next octave up there are only 499 steps. The situation gets progressively worse as the frequency climbs, with only 124 steps between the top and bottom of the highest octave shown. In actual fact, the situation on the Juno isn’t quite this bad, but the principle still applies – frequency errors (and steps) are worse at higher frequencies. For most of the range of the instrument, the errors are much less than a single cent, and six cents is smallest difference in frequency detectable by the ear. Only the highest MIDI note 127 reaches this.

At the low end of the range, another problem occurs, which is that the 16-bit counter only allows a maximum division ratio of 131072. If the master clock is set at 4MHz, this gives a lowest possible frequency of 30.5175Hz, roughly MIDI note 23. This is why the Juno uses the Range divider to reduce its master clock frequency. This allows it to produce frequencies another two octaves lower, all the way down to MIDI note 0. This extra division stage essentially gives the Juno a 18-bit divider rather than a 16-bit divider.

Pros and Cons

There are certain advantages and disadvantages to the design. Some of the plus points also have a flipside.

Advantages

  • All oscillators remain in tune between voices, even if the master pitch drifts. This is highly unlikely since it is a digital crystal oscillator.
  • Waveforms generated are genuine analogue waveforms, with no digital stepping.

Disadvantages

  • All oscillators are phase-locked to the master clock.
  • Much effort and circuitry is expended to keep the RAMP output level constant.

Despite the disadvantages, I think the Roland Juno DCO design is a legitimate and useful strategy. Whilst I’m no expert on the 8253 Programmable Interval counter, initially I thought that it resets to zero when a new count is applied. However, I’ve since been informed this is not the case. So the oscillators are free-running from one note to the next, giving an uncertain phase at the note start, even if locked to the same master pitch.

The problem of the oscillators being locked to the master clock is easily solved by having more than one master clock. I suspect that much of the reason these synths are thought thin is because of the single oscillator, rather than because that oscillator is a DCO. Put a second master clock, controlling a second set of oscillators for two-per-voice, and I expect you’d have all the free-phase fatness and beating that anyone could wish for. I believe some of the later Oberheim analogue modules used this technique – the Matrix6 or 1000, can’t remember which.

The RAMP level problem is not as easily surmountable. Roland’s solution works reasonably well, and if a microprocessor is used to calibrate the amplitude compensation CVs, an accurate output can be generated. This is all quite involved though, and I haven’t been able to find a way to avoid it.

Still, this technique provides true analogue waveforms and digital stability and tuning, without any of the aliasing issues that come with digital oscillators. This surely makes it a valid approach. Rather than use the 8253, a modern solution might be to implement a similar system using the 16 or 32-bit timers on a microcontroller like the AVRs, PIC or dsPIC series. The DSI Prophet 08 used the 32-bit timers on a dsPIC for the DCOs.

 

16 thoughts on “Roland Juno DCOs

  1. Tom,

    Thank you for your time, analysis and contribution to the discussion of Roland’s approach to polyphonic tone generation by means of digitally controlled oscillators, and the challenges faced producing various waveform, specifically the ramp or saw tooth. For one year beginning the summer of 1974 I worked at Arp Instruments as a bench technician and electro mechanical assembler building Arp 2600, 2700 (Pro Soloist), and 2800’s (Odyssey). Prior to that, I was attempting to build a synth from scratch at home using schematics and parts from PAiA. It didn’t go well so I applied for the 1 position Arp had open, and because the NAMM show was in Houston, Tx that year, interviewed in my home city.

    What an amazing time that was.

    A couple years ago I downloaded the TAPLFO HEX, programmed a PIC and built a Tremolo. These days I’m looking to build a similar controller using an Arduino. Mainly because I’m looking to use it in a product to sell commercially and wouldn’t want to infringe upon your work. But there will be other features as well and since I can program on the Arduino, I may have a bit more flexibility.

    I’ve still got a number of VCO’s, ADSRs, VCFs, and a complete Arp Odyssey. What a great sounding synth. It’s very cool to see Korg and David Friend develop the new Odyssey to reintroduce today’s generation of keyboard players to the world of vintage synths.

  2. The earlier models, Juno6 and 60 do not use an 8Mhz crystal as a clock, they have an analog clock circuit running at 1.902Mhz which feeds a digital counter. This means that they can have smooth global pitch bend and modulation because the master clock clocks frequency can be modulated without zippering. They are also more susceptible to slight pitch drift.

    1. Hi Colin, Thanks very much for your comment, that’s very interesting. I haven’t studied the earlier Junos, so I wasn’t aware of this. As you say, the alternative scheme has some advantages (smooth pitch bend and global pitch modulation) and some disadvantages (tuning). At least with the divider-based scheme, the synth always remains in tune with itself. This is better than a VCO-based polysynth, where individual voices, or even individual oscillators, can go out of tune with one another (and often do!).
      Tom

      1. So the square wave in the 106 and the sub oscillator are pure digital? only the saw and the pulse width modulation(the manipulation of the square at specific areas of the wave) go through an analog wave shaper but the pure square wave is pure digital?

        1. No, not really, but also, yes, exactly!
          A square wave is always a “digital signal” in the sense that it only has two levels, but it depends how you treat it. Here it’s treated as analog audio, so that’s what it is.
          When people talk about “digital” versus “analog” in audio they’re usually talking about quantisation and sampling, neither of which is what’s happening here, so it doesn’t make much sense to describe it as a “digital signal”.

          1. hi what about the alpha Juno’s? still dcos? or digital clock based no analog wave shapers?

  3. Thanks Tom and Colin for the great info!
    I now understand why the Juno 6 sounds so different from the 106.
    The portamento (glide) on the 106 is quite smooth though, and doesn’t really cause suspicion. Maybe an additional trick was employed to achieve that? I’m off to study the service manual!

    1. No, no tricks. It’s just a question of how small the frequency increments are from one divider value to the next. As the article says, they’re worst at the top, but even up there, they’re not bad. Have a play with some numbers and see what you find!

  4. The reason for the zippering with the pitch bend is the B-bit readout of its potentiometer by the cpu. The 7 octave (+/-3.5) range it has at max DCO setting ultimately limits it resolution to 33cents (8400cts/256).

  5. This has really helped me understand the design of the Juno DCOs, thank you.

    Has anyone come across little clicks when the voice changes frequency?

    I’ve got a Kiwi 106 that seems to click a little even when only the sub out is selected (clicking is worse on the ramp, and the ramp-derived PWM).

    Re-triggering the same note doesn’t cause a click. The severity of the click varies with the distance between notes. Adjacent notes don’t really click. Playing the lowest note and the highest note on the keyboard does click. Adjusting the DCO CV so it’s just before clipping helps.

  6. Your article is often cited as reference material regarding the concept of a DCO oscillator. But the thing is, the article is wrong…it confuses a lot of people. Roland introduced the abbreviation DCO in its first Junos (6, 60, 106). You took the diagram from the Juno-106 manual, but interpreted it slightly incorrectly. You completely failed to see that under the concept of DCO, Roland in the Juno-106 manual means ONLY a counter based on the Intel 8253 chip. This is a DCO oscillator. The waveshaper based on the MC5534A chip is not a part of DCO!!! This is clearly shown in several diagrams of the Juno-60 and 106 manual. There is a separate counter (Intel 8253) called DCO, and then there is a separate waveshaper MC5534A. These are two different parts. You got everything mixed up and described it in such a way that the waveshaper is part of the DCO. Nowhere in the Juno-60 manual is this mentioned. It is the chain (master clock + divider + counter) that is the element that generates a stable discrete tone. Moreover, if instead of the DCO counter of the Intel 8253 you install a VCO oscillator that will generate a square wave, then Juno’s waveshaper will be a completely non-discrete analog VCO synthesizer. That is, the waveshaper is not tied to the counter in any way, and is not a mandatory part of it. Very often you can find the MC5534A chip on the secondary market labeled as a DCO generator. This is an error and contradicts the official manual. The square wave signal of the desired note has already been generated by the counter, this is enough to be called DCO. And the MC5534A waveshaper simply adds additional waveforms. Moreover, it is not indicated anywhere that the waveshaper must necessarily be analog. For example, the oscillators in the Casio CZ-101 (1984) were also called DCO. Although it is known that the CZ-101 is a digital synthesizer. And there is not a word about this in your article. It looks like the analog DCO circuit is the only one in the world. But history doesn’t agree with you) And a year later, in 1985, Alpha Juno was released, its oscillators are also called DCO, but some experts claim that the waveformer is digital, that is, the signal is generated digitally and then through the DAC is converted into analog and goes to an analog filter. A striking example of a synthesizer from the category – Hybrid (Digital Osc + Analog Filter). Although when people see the inscription DCO, and read articles like yours, they begin to prove that since it says DCO, it means it is an analog synthesizer.

    1. There is *no* agreement about what DCO means, so arguments about “What constitutes a DCO?” are pointless.
      As you point out, Casio’s CZ series use it in a completely different way to Roland’s Junos, and the Alpha Junos use the term a different way again, for a thing which is an entirely digital oscillator. There are other examples – Synthex for one – but there’s no agreement about what a DCO is. It is basically only a marketing term from a particular era of synth history, not a technical term at all. Roland have form in this regard. Their use of the term “Cross modulation” is similarly vague, being used for several different things.
      My article is simply discussing how one particular implementation of a DCO works, and I think the waveshaper (and associated amplitude compensation) is an important part of that implementation. Without it, the device is just a counter.

  7. >>”My article is simply discussing how one particular implementation of a DCO works, and I think the waveshaper (and associated amplitude compensation) is an important part of that implementation. Without it, the device is just a counter.”

    But even this one implementation is described incorrectly, because in the JUNO-106 manual the waveshaper is not part of the DCO. It is absolutely clear that these are two different parts. And you drew a diagram and signed that the waveshaper is part of the DCO. This contradicts the official manual. You are wishful thinking, thereby misleading people. I understand that you think that the waveshaper is an important component in the synthesizer, but let’s follow the diagram from the official manual. First, a rectangular signal is generated by a counter called DCO. This is a full-fledged analog signal that can be used to generate music. Already at this stage this is enough to be considered a full-fledged analog synthesizer. However, to diversify this signal, the next link is the waveshaper, which adds several waveforms. But outside of DCO!!! This is an important fundamental point. Since the same waveshaper can be used with another type of square wave signal, for example from a VCO. It will be a completely analog VCO synthesizer with the same waveforms. Therefore, it is not the DCO that affects the waveforms, but the waveshaper, which can also operate from the VCO. So…. If you wrote your article based on the Juno-106 manual, then you should still make adjustments to your diagram so that it corresponds to the logic and intention of the Roland engineers… Imho 😉

    1. You have your opinion about this and I have mine.
      In my view, the counter is just a counter, whatever Roland say about it. I’m not required to follow their description. Roland’s manuals aren’t infallible anyway (check my articles on the Roland Metal Sync or TR-909 noise gen).

      My article aims to show how the Roland DCO design replaces the classic ramp-core VCO, so seeing how the ramp is generated is an important part of that. Since the ramp is crucial part of the VCO, I include it as part of the DCO. The counter merely provides the timing. Rather than being “an important fundamental point”, this is merely a question of definitions. And since “DCO” is a term that’s been used to describe a *lot* of different things, it’s not a strict definition.

Leave a Reply

Your email address will not be published. Required fields are marked *