[sdiy] [synth-diy] numerically controlled superoscillator without hard sync
cheater00 .
cheater00 at gmail.com
Mon Feb 10 11:11:28 CET 2014
I did think we had a bit of a terminology problem here. Reconstruction
filter vs anti-aliasing filter. But I thought it wasn't worth
mentioning. While we're at it, the filter used during sample-rate
conversion is an oversampling filter. However, I wouldn't say there's
no imaging during resampling. But that's polemics right now, and I
don't want to derail the topic.
On Mon, Feb 10, 2014 at 12:18 AM, <rburnett at richieburnett.co.uk> wrote:
> The main problems with this scheme are the wide range of frequencies that
> the clocking oscillator must cover to be musically useful, and the
> performance demands made of the variable-sample-rate DAC used to output the
> audio. (eg. glitch energy at the analogue output every time one of the
> digital input lines change state.)
>
> DDS chips are cheaply available now that will let you generate frequencies
> from DC to well into the hundreds of MHz, to a resolution measured in the
> milli-hertz! These are digitally programmed devices though, not VCOs.
> Analogue VCOs capable of operating up into the high MHz range exist, but
> usually have poor V/Hz tracking linearity by musical standards, because that
> is tamed by making them part of a PLL control-loop in frequency synthesiser
> applications.
>
> We also need to be careful with terminology here: "Aliasing frequency
> components vs Imaging frequency components." When you play back a digital
> stream through a DAC the output consists of the baseband signal plus a
> series of *images* due to the discrete-time sampling process. (The
> infinitely repeating images in the spectrum are then usually removed with an
> "anti-imaging filter" or often just called a "reconstruction filter".)
> Aliasing is a problem that occurs either when you sample a broadband
> continuous-time signal (or function) at a finite sampling rate, or when you
> perform sample rate conversion. It does not happen during
> "variable-sample-rate playback", unless you start dropping, skipping or
> duplicating samples.
>
> -Richie,
>
>
>
>
>
> On 2014-02-09 21:55, Tom Wiltshire wrote:
>>
>> Hi Brian,
>>
>>> The problem with PWM is that it's even worse than a square wave.
>>
>>
>> For the purposes of what Damian is talking about, it doesn't make any
>> difference. He's got a waveform look-up table into which you can put
>> an arbitrary waveform.
>>
>>> When you generate a square wave as a wave table by just plugging in
>>> values, the discontinuity when it jumps from the bottom to the top, and from
>>> the top to the bottom, creates an infinite series of harmonics. But the
>>> harmonics above Nyquist can't really be reproduced at their actual
>>> frequency, so they are reproduced as aliased frequencies that aren't part of
>>> the real square wave. That's why a (poorly implemented) digital square wave
>>> sample sounds "digital" compared to an actual analog square wave circuit.
>>> But this can be fixed in the digital version by summing sines instead of
>>> naively filling in the sample values with discontinuities.
>>>
>>> PWM has the same problem with discontinuities in the digital domain, but
>>> it's worse because the aliased frequencies are shifting all around. I don't
>>> know of a simple way to create a PWM waveform by sum of sines, because of
>>> the changing pulse width, so I don't know how to avoid the aliases. Does the
>>> David Jaffe article on band-limited waveform generation cover this topic?
>>
>>
>> I don't remember if the Jaffe article is the one with "BLEPs" and
>> "MinBLEPs", but they're the way to do band-limited PWM in the digital
>> domain at a fixed sample rate. Essentially you correct a naive ramp
>> with a band-limited step function to generate a band-limited ramp. The
>> difference of two band-limited ramps is a band-limited pulse wave of
>> some width, depending on the phase difference between the two ramps.
>>
>>> The problem I describe assumes you're generating samples and sending them
>>> to a DAC at some sample rate (it doesn't really matter whether the sample
>>> rate is fixed or variable).
>>
>>
>> Not true. It matters a good deal.
>>
>> If the sample rate is a multiple of the output frequency, then any
>> aliasing *has to* be harmonically related to the output frequency. To
>> alter the output frequency, you alter the sample rate, not the number
>> of samples you read out - your waveform starts of with (say) 256
>> samples, and it still has 256 samples when it's up at 10KHz, not the
>> dozen samples (if we're lucky) we usually get if we've got a fixed
>> sample rate.
>>
>> Obviously it is possible to put non-bandlimited data into the waveform
>> table (a simple incrementing count as a ramp wave will do it..) and
>> this *will* produce aliasing - but that aliasing will all be
>> harmonically related, so the effect is of waveform distortion rather
>> than "aliasing" as usually understood. It's simply as if you put a
>> slightly different set of data into the table from what's really
>> there. Te important bit is you *don't* get the "unrelated frequencies
>> coming down as pitch slides up" effect which is so obvious with
>> digital aliasing.
>>
>> Regards,
>> Tom
>>
>> _______________________________________________
>> Synth-diy mailing list
>> Synth-diy at dropmix.xs4all.nl
>> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at dropmix.xs4all.nl
> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
More information about the Synth-diy
mailing list