[sdiy] [synth-diy] numerically controlled superoscillator without hard sync

Tom Wiltshire tom at electricdruid.net
Tue Feb 11 00:04:58 CET 2014


Hi Damian,

I think the next step with this design is some practical experiments. I'm not saying this to discourage you, quite the reverse. I think you will learn the most from trying some of the ideas you've proposed. Using NCOs to produce IRQs or DMA requests sounds feasible, but I've no idea whether it would really work, and neither has anyone else until they try it. Using external NCOs to clock DMAs on a DSP would be cool, but can it be done practically? I don't know, but I know how to find out.

Using the variable clock across an octave and then mip-mapping the tables is also feasible. I've done similar things myself with fixed rate systems, as have others on the list. I'd be interested to know how it pans out with a variable rate system, and how you cope with the discontinuity as the clock switches octave. In theory, it can be invisible. In practice...well, no-one knows till you try it.

I found that getting a digital oscillator to sound good from a low note right up to the highest note is actually quite difficult. Doing it without any aliasing being apparent is *really* quite difficult. I'm sure others will agree on that, although the usual "throw hardware at it" solution is pretty much guaranteed to work! Nonetheless, it's extremely rewarding when you have something working, even if it isn't perfect. A couple of recent experiments of my own:

http://www.electricdruid.net/digiosc.aiff
http://www.electricdruid.net/vocalosc.aiff

The first is a multiple oscillator wavetable scheme - sort of PPG meets SuperSaw. The second is uses a set of five windowed sine waves to produce formants, and then allows morphing between formant sets (AKA vowel sounds). Neither is particularly brilliant just yet, but I learned a pile more doing them. (A decent demo might help too, to be fair.)

If you're not into creating the hardware, I'm sure there are platforms out there that you could use. There are also plenty of software environments that are ideal for these type of experiments, so there are ways in whatever your angle is.

Good luck, and do please share what you learn.

Regards,
Tom



On 10 Feb 2014, at 18:02, "cheater00 ." <cheater00 at gmail.com> wrote:

> 
> On 10 Feb 2014 15:52, "Roman Sowa" <modular at go2.pl> wrote:
> >
> > >
> > > When I said the ADC would be missing codes, that means something else
> > > than "code executing on the ADC". Codes in an ADC are nomenclature
> > > from signal theory. Missed codes mean that the ADC is not outputting
> > > some values it should be outputting.
> >
> > I know what missing code is. The only ones missing would be at the edges of ramp. But there is no ADC in my proposal, so we're just missing a few clocks while the ramp gets smaller at higher frequency
> 
> Why not? The set of comparators is just an ADC... what's the difference?
> 
> > >
> > >> it does not. Of course there will be nonlinearities, but in rather constant
> > >> and predictible manner, so the tuning can be compensated as it is with
> > >> resistor inserted in series with integrating cap in most common triangle VCO
> > >> core.
> > >
> > > That's not a non-linearity - that's an amount of time in the real
> > > world during which the time was frozen for the variable sample rate
> >
> > or in another words time nonlinearity, or I should actually call it - frequency modulation with modulator's frequency equal to base VCO ramp frequency.
> 
> Hmm I think we don't understand each other :-( but I don't know how to better express myself.
> 
> > > system. It means incorrect reading of the signal and, in the end,
> > > actually aliasing. Why aliasing? The situation I described above is
> > > similar to if you took a recording of a VCO at a constant pitch, and
> > > randomly, now and then, duplicated a run of a few samples. That's not
> > > great.
> >
> > this will just create slight frequency modulation at the edges of reproduced waveform, and I expect that with higher frequency number of clock pulses will drop, either because base sawtooth gets smaller and that pulse circuit will not be fast enough. But that's (hopefully) linear dependency and can be compensated.
> 
> Agaun as above. I think this effect needs more thought put into it. But I am not currently researching in that direction.
> 
> > >>
> > >> I'll shut up if I see good tracking VCO with 10-octave usable range going up
> > >> to, let's say, 50Mhz.
> > >
> > > I can't talk for that. I did describe a DCO though. Those are much
> > > easier to control. You just need a good reference clock (and that can
> > > be had inexpensively). See the post from December. This thread is a
> > > discussion of that DCO's applications.
> >
> > I don't have that post any more. But if the sample clock is derived from DCO, then this whole part of discussion is poitless.
> 
> It's a different kind of DCO.
> 
> > > The barber-pole arrangement can be performed because the original
> > > frequency is very high. So you have to divide it a few times. If you
> > > want to change which Riemann sheet you're on, you just change the
> > > division ratio by two. You signal the current division ratio to the
> > > uC, so that it knows what mip-map to caluclate.
> > >
> >
> > despite your elaborate description I don't completely get it.
> > Anyway, I'd be interested in final results when it turns out as working live circuit.
> 
> We all would!
> 
> D.




More information about the Synth-diy mailing list