Roland Alpha Juno-2 pwm sawtooth

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

Urs wrote: Mon May 24, 2021 10:33 am It was pretty novel, sure. I haven't followed the prior argument in this thread, but I'm pretty sure we came to the conclusion that Roland used the bits of the digital phase counter to "chop" the waveform, or the PWM signal.
It's more likely the digital waveforms are produced by a digital division circuit. The 2x pulse is the input frequency waveform and further divisions are then made. The PWM waveforms however are most likely analog integrators and comparators as the clock frequency is not high enough in this system to provide the width precision it demonstrates. The chip itself also lacks a master clock input and takes only the frequency clock input after division, unless I'm mistaken.

It should be possible to observe error in the minimal width waveforms which changes based upon frequency most evident at the highest frequencies. You can also observe the peak to peak volume changes in the analog integrated ramp waveform. This is due to a limited number of integrator input voltage bits used to only roughly maintain consistent volume for the ramps across the frequency range.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

Whether there is a digital counter and width comparison N-bits wide or an integrator and voltage comparator would essentially be proven indirectly by either:
1) Digital: There is a master clock input and the pulse width input bits are input directly.
2) Analog: There is no master clock input and the pulse width input is an analog voltage.

From the Alpha Juno service manual:
Image

Unfortunately I haven't been able to locate actual schematics to fully verify, but it seems the EXTAL input may be the master frequency from the 12 MHz crystal. This can be misleading as the frequency is often divided once from the full frequency to improve stability.

Without seeing any error in narrow pulse widths it would be safe to assume the pulse is generated using a digital counter ... but from these block diagrams I can not locate a distinct pulse width input. In which case the pulse width register(s) may be some multiple of 8-bit width passed in via the data bus + address latch paths.

Measuring the maximum clock frequency at 12 MHz and the minimum pulsewidth variation at the maximum note frequency and across multiple notes may reveal more regarding the mechanisms and precision of the circuits.

I think I posted years ago in the earlier part of the thread; whether or not the pwm circuit is digital doesn't seem to make much difference. The audible components should be almost entirely indistinguishable as for a pulse above 20k width == volume with a single audible partial. Given 6 MHz master clock input, 6e6/256 = 23437.5, over 8-bit width precision would be present past 20 kHz. The skew on the edges is also far beyond the range of audible hearing (<50 uS).

The "digital" timbre of the juno pulse waveforms vs. analog comparator outputs would mostly appear at low frequencies and width error at high frequencies should lead mostly to audible variations in level.

So these are likely indistinguishable from fully digital "perfect" oscillators (software blit/blep-based) with intentionally quantized pitch precision. It's a sad trade-off in my opinion and I wonder whether true analog pulse outputs would have acceptable precision.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

@aluxp
That WT is in fact 256 frames at 2048 samples. Very nice thanks.
We jumped the fence because it was a fence not be cause the grass was greener.
https://scrubbingmonkeys.bandcamp.com/
https://sites.google.com/view/scrubbing-monkeys

Post

Scrubbing Monkeys wrote: Mon May 24, 2021 11:07 am
Urs wrote: Mon May 24, 2021 11:04 am Well, thing is, the "curve" depends on the :hyper: setting of the highpass filter in the synth, and the note you play... analogue oscillators are commonly pretty perfect. But as people hardly ever see them in isolation, people attribute the waveform they see to the oscillator. Most of the time, the quirk of the visible oscillator waveform is actually a highness filter or some other process in the chain...

Kkkkkkl

You just summed up 7 pages of arguing. :hyper:
Well, no. The first pages were on such a topic but the later 2/3rds were re: whether the oscillator is analog or digital. The truth is it's a hybrid system that generates digital pulses and noise but with an analog integrator and chopper circuits for the ramp sync'd to those digital pulses.

So in that respect it's much more like the near ideal digital oscillators we use in software today. Accurate frequency precision & "virtually" continuous waveforms that are filtered before being quantized or aliased.

Sadly that trade-off means they're boring and you can't expect to get the interesting analog pulse timbres, interference, frequency drift, sync or other modulation effects you find in a true analog system. It also means although the tuning is static and doesn't drift, the frequency precision and range are both between poor and very poor. The keyboard doesn't track true equal temperament closer than at best several cents and the fine-tuning range and precision are both low.

On the bright side, I've disassembled the BIOS for the alpha juno and it should be possible with a hand-made disassembler capable of a-20-bit (?) address wrapping to produce source-code and a replacement BIOS including customizations of the various trade-offs they made. Just don't look for that from me.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

I didn't read the whole thread through but I'll ask anyway about the chopped waveform this thread is about:

What's the easiest way to model that kind of oscillator in DSP code? Is wavetable the best way to go or is there some fairly straight forward way to go using other methods?
Misspellers of the world, unit!
https://soundcloud.com/aflecht

Post

is this shape similar to the Hoover?
-I played with this at some point Kraku,
if sendy is barking up the right tree,
it can be a modulation of pulse and saw, however you want to generate them

Post

Kraku wrote: Sat Feb 26, 2022 11:11 am I didn't read the whole thread through but I'll ask anyway about the chopped waveform this thread is about:

What's the easiest way to model that kind of oscillator in DSP code? Is wavetable the best way to go or is there some fairly straight forward way to go using other methods?
If you can model a waveform using BLEPs then modelling a chopped version of said waveform using BLEPs is almost equally straight-forward.

Post

In my own code (I haven't finished) I generate waveforms by using operator overloads to do things like:
chopped_ramp_p2 = ramp & pulse_p2;

Image
https://i.imgur.com/1RpmUT9.png (frequency)

Then from that point on "chopped_ramp_p2 " is just a normal input waveform vector table to the remainder of the oscillator. A word of advice: this is incredibly complicated and a ton of work. I've been held back by producing an optimal through-zero capable version of this for the past decade.

If I were satisfied not having FM/through-zero effects then my current implementation works well enough. One thing needed is simulation of slew-rate limiting and therefore phase delay in the output waveforms. The pulse and sub-pulse waveforms lag slightly versus the ramp by different amounts. This has the effect of applying a very light low-pass filter.

It's just a delay by less than a sample, so a type of FIR filter. When you mix ramp + pulse + sub waveforms together you get this "comb filter" effect. That makes the timbre of the juno oscillator "softer" than phase-aligned waveforms would be. So to simulate that you want to add a delay to your sync functionality. The sync origin might be "0.684282" samples ago but you may want to actually sync the pulse to "0.285238" samples ago or similar. That can be achieved with a sync-offset control that allows for fine tuning.

You could also build soft-skew into the waveforms to be more accurate, but since you need to apply sub-sample sync precision anyway there is zero cost to apply a sync-phase offset while adding additional n-order segments to the waveforms does have an incremental cost. Alternatively you could also use a high frequency all-pass filter as a phase shifter but these tend to have stability issues.

https://i.imgur.com/tTBUYVV.png
https://i.imgur.com/0XQsnkz.png (frequency)
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

nix808 wrote: Sat Feb 26, 2022 1:49 pm is this shape similar to the Hoover?
It definitely is used in the hoover sound along with sub-oscillator and mixed with pulse and noise. The ramp waveform has a 2x PWM "AND", so when the PWM pulse at an octave above is low the chopper-ramp waveform is zeroed out.
it can be a modulation of pulse and saw, however you want to generate them
You can use amplitude modulation by an anti-aliased PWM an octave up. This would probably be the easiest method by far and would require a high quality anti-aliasing filter applied to a 2x oversample. Since the band-limited ramp and 2x PWM would be band-width of "1 + 1 = 2".

That may be more expensive overall though because the 2x PWM is being redundantly "double anti-aliased" and the anti-aliasing filter on the 2x oversample would add to it too.

One mistake people are likely to make is that due to the pulse width parameter having a range 0 - 127 internally they might assume you can use a PCM wavetable with 128 phases... but the LFO applied to the width may be more precise. I'm not sure what precision the width has internally in the digital register input of the 6-DCO oscillator chip.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

oh ok ty!
-I have done some work on this at some point,
will see if I can find it
I did some masking or something, some pulse modulation of the saw
... can't remember what and how successful, just with osc modules
that could be algorythmic or pcm waves

Post

Hi, please can someone sum it up
what is the nature of the AJ DCO chip?
what do we know for sure in 2024 about this?
Thx

Post

aciddose wrote: Sun Jun 20, 2021 5:16 am Unfortunately I haven't been able to locate actual schematics to fully verify...
Many people on many sites often don't delve into the nuances, so they say that this is a pure analog synthesizer, since it contains DCO. Although if you delve into this topic, it turns out that only the first DCOs were purely analog ... like the first Junos - 6 / 60 / 106. And we can actually see the analog circuit of their oscillators in service manual. However, no one has been able to provide the same analog circuitry of DCO "Alpha Juno" , where one could see specific resistors, transistors, operational amplifiers, etc for generating an analog signal, as this can be seen in the Junos 60 oscillator diagram. Later, other companies began to apply the DCO abbreviation to their digital synthesizers. For example, the oscillators in the Casio CZ-101 (1984) are called DCO. But we know that CZ-101 is not analog synth. The same goes for Kawai K4 - oscillators are called DCO. It's just another good marketing ploy. And if you consider that Casio CZ-101 with digital DCO was released a year earlier than Alpha Juno... So why couldn't aJuno use the same marketing? ) Therefore, the abbreviation DCO is often misleading. And the sites often erroneously (perhaps erroneously) write that since aJuno contains DCO, it is an analog synthesizer. But no one has seen a detailed diagram of the DCO chip of aJuno, where the analog elements for signal conditioning would be visible, as can be clearly seen in the DCO of Juno-60. Moreover, some experts just say the opposite, that in the DCO of Alpha Juno the wave formation is just digital. Eg: "...Then, the top 8 bits of the accumulator are sent to a DIGITAL waveshaper, and then to what looks like an R-2R based DAC on-chip. This signal is then sent straight to the fully-analog filter. " (Russell McClellan from iZotope) ... Pay attention the word: DIGITAL waveshaper + DAC.

Link:
https://web.archive.org/web/20200616164 ... 64266.html

Text from link:

After reading the very interesting conversation regarding the new
novation peak synthesizer, I was made curious by something Richie Burnett
mentioned in that thread regarding the Alpha Juno oscillators. This
led to some further investigation on my part and some may be
interested in hearing about the results.

I had always (incorrectly, it turns out) thought that the alpha juno
oscillators followed the same basic topology of the Juno 6, 60, and
106 synths - which, for those unfamiliar, is a complicated
digital/analog hybrid; basically an analog ramp wave hard-synced to a
digitally generated pulse.

However, it turns out that the Alpha Juno has a completely different
design, with much less of an analog component. There is a custom
"DCO" chip which has 6 independent digital oscillators. Each
oscillator takes the 12MHz master clock and divides it down by a power
of two based on the note being played. For the highest notes the
effective clock is 6MHz, and for the lowest notes this seems to be
divided by 2048 to form an effective sample rate of 3kHz. On each
divided clock, an increment is added to a 16 bit accumulator (I'm sure
the accumulator is at least 13 bits, but I'm not sure of the exact
number of bits). Then, the top 8 bits of the accumulator are sent to
a digital waveshaper, and then to what looks like an R-2R based DAC
on-chip. This signal is then sent straight to the fully-analog
filter.

In general, the output is "pretty" clean - certainly there's no frequency
drift since it's based on the crystal. There are aliasing artifacts,
but since the sampling rate is always so high compared to the note
they are usually fairly quiet (I noticed some audible aliasing on the
lowest notes). Since the DAC is only 8-bits, quantization noise is
also an issue.

Anyways, I was really stunned to learn that the alpha juno had so much
digital horsepower, and a bit surprised that I haven't seen this
oscillator design before. Does anyone know of any synths with a
similar approach? (Other than the new novation, which seems to run at
a fixed sampling-rate, but is otherwise similar)

I think it would be a fun project to create a similar oscillator using
an FPGA and an R-2R dac - perhaps with some additional capabilities
like inter-oscillator FM and a sine lookup table shaper.

Thanks to Richie for mentioning this in the other thread and for
helping me off-list to investigate this.

Thanks for your time,
-Russell McClellan


- - -

Another important point is that any chip with a DCO or VCO oscillator necessarily has external capacitors on the board around this chip, and quite a few. Capacitors are not placed inside the oscillator chip. Such external capacitors are not required for digital oscillators. And.. lo and behold... for some reason there are no such capacitors around Alpha Juno’s oscillator. Although if the oscillator were analog, then they would definitely have to be there.

And I have another question for the experts: does anyone know at least one chip that would contain six analog oscillators in one microchip? Not six chips, one for each voice, but all six true ANALOG oscillators in one chip.... I don’t remember this))

So .... it doesn't feel like an analog synthesizer, but rather a hybrid one with digital oscillators and analog filters. And a 1-2 year later, the fully digital synthesizer was released - D-50 ... with virtual analog digital oscillator... including Saw, Pulse, PWM + digital reso filter ... and sample player section

Post

TechnoManiac wrote: Sun May 26, 2024 12:35 pm And I have another question for the experts: does anyone know at least one chip that would contain six analog oscillators in one microchip? Not six chips, one for each voice, but all six true ANALOG oscillators in one chip.... I don’t remember this))
CEM3374 (http://www.synfo.nl/datasheets/CEM3374.pdf) is a dual VCO (pair with CEM3372 and you have a barebones two oscillator synth voice), but I don't think there's any (at least not classic) chip with more than two.

It might actually not even make much sense to try to cram more into a single package, especially if you're working with DIPs and thru-hole. Those are already both 18 pin DIPs and since there's quite a few support components required around most pins, you're probably not going to save meaningful amount of PCB footprint by trying to cram more into a single IC (kinda like you might use a bunch of dual opamps even if a quad was available, just because it makes your PCB routing easier; sometimes a quad might save space.. but often time it really doesn't).

Post

mystran wrote: Sun May 26, 2024 4:03 pm ... but I don't think there's any (at least not classic) chip with more than two.
Does this mean that it would be a mistake to think that Alpha Juno's DCO chip has six ANALOG voices in one chip? Given that each voice consists of three waveforms, and some of them are the result of ring modulation, this requires even more internal oscillators to implement the multiplication waveforms that are available for selection there. Do you think that the signal is generated digitally?

Post

There really shouldn't be any discussion whatsoever about "analog oscillators". There is absolutely zero chance any part of the oscillator itself has any associated analog circuitry whatsoever. Only the waveshape generation for the ramp may have an analog integrator. The oscillator is entirely a division of the master clock. There is no other oscillator present in the circuit to my knowledge.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Return to “DSP and Plugin Development”