[sdiy] Innovative Oscillator Design (or not ?)

mjbauer at iprimus.com.au mjbauer at iprimus.com.au
Thu Apr 11 03:13:28 CEST 2024

Thanks, Roman. You and other correspondents have convinced me that my 
initial approach was flawed and would most likely result in some sort of 
unwanted audible artifact. (The initial approach was that the firmware 
would adjust the PWM duty dynamically, cycle by cycle.)

René advised that some other DCO designs (also using an analog 
integrator) achieve pitch accuracy using a precision timer/counter to 
set the output wave period. The integrator charge/discharge rates are 
set using a DAC controlled current source. The accuracy of the current 
source is not as critical, but the error results in (minor) errors in 
the output signal amplitude. The amplitude error is not problematic.

Hence, my revised approach is to use a 16-bit timer/counter in the MCU 
to set the output wave period. The integrator charge/discharge rates 
will still be set using the PWM scheme, but the integrator will be reset 
at the end of each period. I have not yet done the calculations to 
determine the range of frequency over which this scheme would give 
adequate pitch accuracy for musical purposes, but my intuition tells me 
it will be acceptable... perhaps 3 octaves.

I don't care if anyone has already patented this idea... I'm just 
experimenting for my own amusement. To commercialize an idea, you need 
to be very wealthy, very brave, very bold or very delusional... 
preferably all of the above!


On 10/04/2024 6:48 pm, Roman Sowa wrote:

> I agree that "not give enough detail" is the key here, although your 
> idea was clearly described in the document. It said even 40kHz PWM if 
> I'm not mistaken. But regardless of PWM frequency, there is also its 
> resolution. You wanted cheap micros with 8 bit PWM. You could even make 
> 10bit PWM above audio with small PIC. So assuming top frequency of 
> 10kHz, the lowest PWM = 1/1024 only gets as low as 9.77Hz. One PWM step 
> more and we have 2/1024, that is one octave higher. So that was my 
> concern about unusable resolution at low end.
> Now you're telling that planned range is only 4 octaves. Then yes, this 
> might work with 10-bit PWM, but still it will not sound clean but FM 
> modulated at low end, because PWM has to be adjusted every few cycles.
> You could add octave range resistors from Vref with a MUX in the 
> integrator, so each octave has better resolution of pitch.
> And I dare to dissagree with your intuition - those steps will be 
> audible, and not as harmonic distortion, but as aliasing whistles. Not 
> very loud probably, but will be there. Like aliasing from short 
> wavetable DDS with no interpolation.
> Of course I encourage you to build it, that concept is interesting and 
> I'm sure many people will enjoy seeing the results.
> Roman
> W dniu 2024-04-10 o 03:32, mjbauer at iprimus.com.au pisze:
> Hello Roman,
> Thanks for your thoughtful reply.
> You may be correct with some of your criticisms, but I think perhaps I 
> did not give enough detail about the role of the MCU firmware, leading 
> you to some false assumptions. The firmware would not need to make 
> "huge corrections from cycle to cycle"... just very minor corrections. 
> The "steps" that you referred to are at the PWM carrier frequency 
> (16kHz minimum), so they would not be audible. Sure, there would be 
> some timing "jitter" in the output signal, but my intuition tells me it 
> would be negligible... like harmonic distortion. Anyhow, I guess 
> there's only one way to find out... I must build the thing and prove 
> the concept. Also I am not expecting to achieve a 10kHz range. I would 
> be happy if it worked over a 4 octave range with musical precision.
> Thanks also for your suggestion about using a sigma-delta DAC. I will 
> look into this idea. There is also the possibility to use a 
> digital-to-resistance type DAC, but an objective was to minimize 
> external components.
> Kind regards,
> On 9/04/2024 6:42 pm, Roman Sowa wrote:
> This is not doable with simple PWM. You talk about closed loop control, 
> but then it will have to make huge corrections from cycle to cycle, 
> leading to blurry, modulated waveform. Assuming 10kHz range, the low 
> end using 8-bit PWM is like 40Hz, and next step is one octave higher. 
> To make it work you have to constantly measure the VCO output voltage 
> and not just the cycle period and adjust PWM multiple times during 
> single slope.
> The slopes of the triangle will not be smooth anyway, but steppy. The 
> steps will have the slope the same as the highest frequency triangle, 
> that is when PWM is at 100%.
> PWM frequency is independent of VCO frequency, so at some frequencies 
> you might expect intermodulation that will blend all over audio band.
> Interesting idea and I don't hink I have ever seen it, although it 
> highly resembles switched capacitor filter. Who knows, maybe there is a 
> way to use commercially available switched cap filter ICs to work as 
> VCO. But IMHO there is a lot more other simpler options to make VCO.
> How about using common $2 Sigma-Delta DAC to control the integrator 
> switch? It makes it so much easier. Wide range precise control of 24 
> bits, every note is kept stable with single write to the DAC. The MCU 
> only writes the DAC on pitch change, and possibly check tuning from 
> time to time but it will not drift at all if you use proper integrator 
> parts.
> Roman
> W dniu 2024-04-09 o 08:52, M J Bauer via Synth-diy pisze:
> Attn: Synth-DIY community...
> A while back (2022), I had an idea for an oscillator design which could 
> be used in modular or hybrid synth's, but I have not yet tested the 
> concept. The oscillator may be digitally controlled or voltage 
> controlled, or both at once. I'm not sure if this technique has already 
> been tried and proven. I haven't seen any evidence of it, so I would be 
> grateful if anyone with a greater knowledge of the art can tell me if 
> this is a novel idea, or a concept that has appeared before. (See 
> attached summary.)
> M.J. Bauer
> ________________________________________________________
> This is the Synth-diy mailing list
> Submit email to: Synth-diy at synth-diy.org 
> <mailto:Synth-diy at synth-diy.org>
> View archive at: https://synth-diy.org/pipermail/synth-diy/ 
> <https://synth-diy.org/pipermail/synth-diy/> [1]
> Check your settings at: 
> https://synth-diy.org/mailman/listinfo/synth-diy 
> <https://synth-diy.org/mailman/listinfo/synth-diy> [2]
> Selling or trading? Use marketplace at synth-diy.org 
> <mailto:marketplace at synth-diy.org>

[1] https://synth-diy.org/pipermail/synth-diy/
[2] https://synth-diy.org/mailman/listinfo/synth-diy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://synth-diy.org/pipermail/synth-diy/attachments/20240411/c9746736/attachment.htm>

More information about the Synth-diy mailing list