Roland Alpha Juno-2 pwm sawtooth

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

CMOS analog circuits aren't known as the most reliable. Mixing analog and digital circuitry within the same CMOS chip (like the SID) was possible, but linearity was extremely expensive. An analog integrator to create the ramp waveshape would most likely take up near the same space as a full counter circuit and DAC. It's only really in situations such as CMOS switches where the digital and analog circuit is in fact very nearly identical if not exactly identical. Regardless, again, my position is the particular details of the actual implementation of the chip are completely irrelevant.

Looking for the particular number of bits used to represent a hypothetically DAC-sourced integral ramp may not even be practical. The output is badly contaminated by the clock input frequency and the noise level is high enough that any more than 11 bits (~66 dB) would not likely be trivial to distinguish. Quantization given the clock frequency would not be particularly relevant other than due to its impact on frequency and phase precision. Since the oscillators do not handle sync, phase precision is less important in the alpha juno series chips. The JX-8P did handle sync and therefore it may be possible to measure phase/frequency precision through direct control of the frequency ratio of two sync'd oscillators.

Realistically, one way or another you need to start from a perceptible difference in timbre. Without any perceptible difference, suffice it to say: there is no difference.
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

TechnoManiac wrote: Sun May 26, 2024 12:35 pm 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.
This is in fact relevant for the opposite reason to that you presuppose. An external capacitor could not be temperature compensated internally.
Although if the oscillator were analog, then they would definitely have to be there.
There is absolutely no evidence to support this assertion, no reason to set up the straw-man and nobody has actually argued such a tangential topic. The master clock input is the sole oscillator in the system. Any analog integrator would merely provide a waveshaping for the oscillator frequency derived by division of the clock.

The two possible implementations we've discussed are:
  1. Fully digital counter used as input to a fully internal DAC along with an internal reference voltage generator.
  2. Feedback-CMOS-opamp integrator with full scale circuitry required for linearity, voltage generation and temperature compensation mechanisms.
Both are hypothetically possible, a fully digital circuit would be far more stable but may require a much more overall complex design with many more (100s - 1000s) cmos transistors. An analog integrator for the ramp shape would require complex temperature compensation and voltage generation circuits which may very well take up the same space. Since the digital circuits are commonplace, it would be a "copy paste" engineering job whilst the analog shape would require a lot of fussing. Regardless, once the ramp was generated the following hybrid analog/digital cmos inverters and switches would be in essence identical in both cases.

Likewise in consideration of ramp <> pulse and width. Regardless, the master clock input would ultimately define the edge and there would be little to no "analog" effects from an analog implementation. There is no low-gain comparator with a gain such as {5x - 30x} as in other famous Roland pulse waveform generating circuits present here. The edges are approximately 50 microsecond slews. In fact, in order to successfully generate these extremely precise and "digital" looking pulse outputs from an analog input would be no trivial matter.
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

Image
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

If you're talking about an element of this chip you need to distinguish between "Pitch Generator", "Sawtooth Generator", "PW Generator", "Sub Generator" as they have.

The diagram implies these are entirely distinct between 6 instances, but, that may not be the actual case. It's also possible the abbreviation "Gen." may not translate to the same word and that word may not be "Generator". It could be "General" or "Gentrification".
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

aciddose wrote: Sun May 26, 2024 9:17 pm It's also possible the abbreviation "Gen." may not translate to the same word and that word may not be "Generator". It could be "General" or "Gentrification".
I don't think they could have meant different terms under the same abbreviation... that would have been too confusing and obvious that would need further clarification

PS: Thanks for the detailed answers ;)

--

There are several factors that make me think about the digital nature of oscillators in Alpha Juno.

Let's consider in more detail with examples:
https://drive.google.com/drive/folders/ ... drive_link

- -
1 - HI Notes - ALIASING or INTERMODULATION DISTORTION.wav

Dirt in the upper note range

In this example, you can hear the saw in the upper registers sounding aliased, dirty, and off-analog

(example without chorus... but at the very end, the chorus was turned on for a couple of seconds, but the cause of the dirty sound is not in the chorus)

Can an analog oscillator produce such a dirty sound? This has to be explained somehow. Although in fairness it must be said that the JX10 also had some aliasing or intermodulation distortion at high notes.

- - - - -
2 - LOW Notes - strange squeak on hight freq.wav

Digital overtone or squeak on low notes

In this example, you can hear that the saw in the lower notes sounds with some additional high-frequency squeak, as befits some old lo-fi samplers.

If it was an analogue - where does this squeak come from ?? Juno-106 probably does not have such sound "artifacts"

ps - squeak not very loud, in relation to the useful signal, so to hear it, you need to make it louder. It can also be seen as a straight line on the spectrogram. The line changes on different notes.
- - - - -

3 - PORTAMENTO on off - change saw spectrum.wav

A very digital nature of the portamento, in addition to the attack, the very nature of the timbre changes.

When portamento is turned on and off, a clear difference in the spectrum of the saw's timbre is heard. It seems to me that such an artifact cannot be explained in an analog oscillator. However, this can be easily explained with digital oscillators, when a sample from the lower zone is transposed up through portamento, it has many high harmonics that are usually cut off by the filter in the native zone of each sample. A purely digital artifact that is often seen in romplers when to use portamento.

Do you think this is possible in an oscillator that generates a signal using the analog method?


aciddose wrote: Sun May 26, 2024 8:42 pm The two possible implementations we've discussed are:
  1. Fully digital counter used as input to a fully internal DAC along with an internal reference voltage generator.
  2. Feedback-CMOS-opamp integrator with full scale circuitry required for linearity, voltage generation and temperature compensation mechanisms.
How is the SAW generated in any of these cases? Digital or analog? That is, a smooth increase in voltage? Or is it purely digital and then converted into an analog signal through a DAC?

Do you know how the SAW is generated in D50? This is digital ring modulation of SIN and SQUARE .. info from the D50 owner manual (page 7). Maybe this digital method was also used in Alpha Juno? Synthesizers are almost the same period. The D50 came out just a year or two after the aJuno
(But this still does not answer the question of why such a digital character of timbre when to use portamento in aJuno)
Last edited by TechnoManiac on Mon May 27, 2024 1:47 pm, edited 1 time in total.

Post

Lots had changed in those two years ...
We are the KVR collective. Resistance is futile. You will be assimilated. Image
My MusicCalc is served over https!!

Post

https://www.youtube.com/watch?v=VPHIecZV4UU


Here at 4:58 you can hear two saws - from 106 and from Alpha. On the lowest note, Alpha's saw has additional artifacts, high-frequency overtones... similar to digital ones. I zoomed the sample in Audition... and you can really see the steps, as with a low-bit sample. Can this be justified or explained in an analog oscillator? Any noises or interference? There are no such steps in the Juno-106! But somehow strangely, there is an overtone only on the lowest note. At higher notes the steps are neither audible nor visible. Looks like several zones with samples of different quality? What do you think about it?

Image

Post

Do you know what format and quality the audio in video is (compressed (bit-rate) or not)?

Post

juha_p wrote: Mon May 27, 2024 9:26 pm Do you know what format and quality the audio in video is (compressed (bit-rate) or not)?
Of course, the audio on YouTube is equivalent to mp3 128. The quality is quite low for listening. However, it is enough to understand that with the same quality, there is no tonal overtone in the Juno106 saw, but there is clearly one in the aJuno saw. If you want a pure WAV file, I posted a link a few posts above. There is clear sound without compression, but with the same steps "ladder"

Check file:
2 - LOW Notes - strange squeak on hight freq
https://drive.google.com/drive/folders/ ... drive_link

Post

I don't know why you're setting up this straw-man about "analog oscillator". You're wasting time and posting nonsense. You might be confused about what I'm actually talking about, but, no version of the aJuno series "DCO" based oscillator ever had an analog oscillator. An oscillator is a timer circuit. The only oscillator connected to the signal path in the aJuno is the crystal oscillator for the master oscillator digital clock in pins 11+12, "EXTAL".

The chip in question is the MB87123.

If you want to attempt to measure the quantization (N bits) used in a supposed DAC internally for the ramp, you simply need to play it at a very low frequency. Rather all you'll observe at any frequency is a mixture of the ramp with a high level of noise, mostly contamination from the master clock input above 1 - 5 MHz.

You also need to own the actual hardware like I do, and use real measurement tools to directly take the isolated signal off the pins with a proper buffer.

Any analog recording and further sampling + discretization of the signal will be contaminated even worse by later elements of the signal chain. It is also hopeless to measure a single oscillator without manually setting the other five into a shut-down by giving them halting frequency codes.

The aJuno firmware (intel 8051 code) incorporates a test mode for this purpose.
Last edited by aciddose on Wed May 29, 2024 6:21 pm, edited 2 times in total.
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

(C) Roland
Image

Post

osiris wrote: Wed May 29, 2024 12:20 pm(C) Roland
The thread-raised-from-the-dead reviver asked a question without an answer. There is really nothing to understand about the aJuno chip which was used in many other synthesizers that could lead to any clearly audible difference.

The major issues are pitch and phase precision (and therefore also width.) Any model reproducing the same set of effects would need to model the propagation delay leading to the comb-filtered effect "muffling" of the oscillator's mixed-waveform outputs.

It may very well be possible for someone to somehow determine the exact sort of counter circuits, DAC and/or integrators, switch/multiplexers/choppers or otherwise used. I don't see that being worthwhile apart from for the purpose of extreme technical accuracy.

Overall, at least in my opinion the performance and quality of the circuit is garbage. So from my perspective the only application for such an intense modelling effort would be to enable a modular approach to selectively apply these techniques.

I'd personally love to be able to by-hand set or modulate a phase delay parameter on sync'd oscillators. The out-of-tune effect is interesting, but not best-in-class and so I'd prefer other options such as a tuning drift model. It may be possible to measure the frequency contribution of quantization error, but, given the hardware I own I have not measured any such error signals. I did however document the clear contamination of the outputs by the master clock and/or divisions of the master clock input.
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

aciddose wrote: Wed May 29, 2024 10:52 am The aJuno firmware (x86 16-bit real-mode code) incorporates a test mode for this purpose.
I'm curious.. what's the CPU on that thing is?

Post

mystran wrote: Wed May 29, 2024 12:45 pm I'm curious.. what's the CPU on that thing is?
It uses N-bit address wrapping (?), and the segments and code are very confusing. Both code and data offsets seem to be chaotic in the upper-bits. It's possible random garbage bits were simply left in the upper bits ignored by the CPU. So you can't use something like IDA without a proper plug-in for the 8051 series. I tested an older free version years ago but it definitely didn't come close to working and did not handle address masking.

The service manual claims P8032AH, which is as far as I'm aware mostly 286-alike (similar at least) ... at least I recall disassembling the firmware partially. https://en.wikipedia.org/wiki/MCS-51

I guess I've mixed up the attempt I invested with a lot of x86 stuff that was more successful but faced the same address/register issues. I decided at some point I needed to write the disassemblers myself but haven't bothered due to lack of motivation and limited or no access to documentation.

The ROM I have is 4k, with only about 12730 bytes (guesstimate) code and 2438 bytes data and tables (plus 1216 bytes null). So with proper documentation it may be possible to disassemble quite easily. My fear is the MB62H195PF-G-BND "Gate Array" may make understanding the code's actions for I/O quite difficult.
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

re: a counter-based ramp waveform,
without speculating about how a DAC might be constructed internally let's just assume there is a N-bit counter of some form. The oscillator chip has 8-bit parallel data/address word input. The input data could be measured, reverse engineered and finally manually reproduced in a test circuit to ensure it produces the same output frequency.

Given the 12 MHz clock input, this would make the minimum count 12000/20kHz = 600. Fine-tuning data likely makes up the lower bits with coarse tuning (cents, semi-tones) some mixture of low + high bits.

Something like:

Code: Select all

512 + coarse*x + fine
12000000/(512 + 3345*8 + -123) = 442.005230~
This would give a minimum of 22.87~ Hz and a maximum of 30226.7 Hz, but, using <<3 (*8) there would mean the actual counter and divisor would need to be be over 19 bits wide to achieve both the demonstrated range and fine-tuning precision. To test this it would require a high-precision frequency counter applied to a pulse output with the oscillator IC in an isolated test circuit.

If my guess is correct and the lowest significant bits are filled from the fine-tune parameter ... it should be possible to use a frequency counter while adjusting the total frequency to both its minimum and maximum extent. Adjusting the fine-tuning parameter up and down a single step at a time could then measure the output frequency steps and determine the precision of the divisor.

If the circuit pretty much requires more than 19 bits, this would make the number of bits used by a DAC for the ramp somewhat irrelevant in terms of audibility. Certainly they wouldn't use every bit and could simply take the N most significant bits instead. The size of registers to my knowledge would be far larger than any counters, and a DAC could hypothetically use the discrete analog voltage input and ground as a reference. Early vs. later versions of the circuit outside the chip changed the analog voltage input for the MKS-50 version of the RD87123 DCO which may have affected waveform levels.

A very interesting mod for these synthesizers may be to place a potentiometer here to allow for an adjustable "filter drive" parameter.
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”