I think I have come up with a possible explanation for this behaviour, together with a simple workaround.
The Science Bit:
There are two types of oscillator class built in to the Cherry Audio Java SDK, the AnalogOscillator and the DigitalOscillator:
- AnalogOscillatorClass.PNG (16.15 KiB) Viewed 11664 times
- DigitalOscillatorClass.PNG (15.46 KiB) Viewed 11664 times
The AnalogOscillator is the go-to model for audio-rate oscillators, as it has built-in features such as alias-free operation and drift modelling.
The DigitalOscillator on the other hand, is better suited to LFO duties, as its output waveforms are mathematically precise, with instantaneous transitions from -5V to +5V. This is perfect for sub-audio modulation, logic and control purposes. However, it will lead to the generation of audio components above the Nyquist frequency when operated at higher audio frequencies. These audio frequencies then get reflected back down into the audio spectrum and almost always end up being at a non-harmonically-related frequencies to the oscillator's pitch. When the amplitude of these reflected frequencies is high enough, you get audible 'classic aliasing' sounds.
Now, when you use different modules for different purposes, it makes sense to implement them using the AnalogOscillator class for audio-frequency oscillators, and the DigitalOscillator class for low-frequency (modulation) oscillators.
However, many vintage (hardware) oscillator modules are multi-purpose, designed to be used throughout the entire frequency range as both audio signals (audio VCO) and control voltage signals (LFO). Minimoog's Oscillator 3 is a perfect example of this design philosophy, where it can be used for both vibrato and audio-rate FM. So, when it comes to replicating the functionality of a vintage Moog or ARP modular, it makes sense to have an oscillator behave as a DC-coupled LFO which also has the ability to operate into the highest reaches of the audio range.
My hunch is that when you switch the VM2500 oscillators to the 125Hz range and below, then the DigitalOscillator class kicks in. When you switch to the 250Hz range and above, it then switches over to the AnalogOscillator class. Only Mark Barton himself can confirm this.
If that is the case, then I'm happy to live with it. In order to get alias-free oscillators which operate one or two octaves down, just add a DC offset of -1V or -2V to the V/Oct input and leave it on the 250Hz Coarse range setting.