[sdiy] BLEP, PolyBLEP, aliasing, etc
Richie Burnett
rburnett at richieburnett.co.uk
Tue Feb 16 14:39:06 CET 2021
I've uploaded some audio examples of what you can expect from these
different synthesis techniques if anyone is interested:
http://www.richieburnett.co.uk/temp/blep/
They all contain a Sawtooth waveform slowly swept from about 47Hz up to
12kHz over a duration of 20 seconds...
File "Saw_Naive" contains what you get if you just output the oscillator's
phase accumulator directly at 48kHz. You get a Sawtooth with lots of
aliasing. Most noticeable at the higher pitches though.
File "Saw_PolyBLEP" contains what you get if you apply corrections to one
sample before and one sample after each discontinuity using the PolyBLEP
technique I mentioned, with 48kHz sample rate. This clearly sounds way
better than just outputting the raw phase accumulator! But if you view the
spectrum or spectrogram in something like Audacity or Goldwave you will see
there's still plenty of aliasing going on at the top of the audio frequency
range. You can actually watch harmonics bounce off the Nyquist limit (right
edge of spectrum) and reflect back down. You can probably hear them too if
you listen carefully.
File "Saw_PolyBLEPx2" contains what you get if you run the same basic
PolyBLEP technique with x2 oversampling (i.e. 96kHz sample rate). You still
see some low-level aliasing right at the top end of the spectrum in
Goldwave, but not much ventures into the region below the tone's
fundamental. You will likely struggle to hear the aliasing now at sensible
volume levels.
File "Saw_BLEP16" contains a sawtooth synthesised using a full BLEP method
correcting 16 samples around each discontinuity and running with x2
oversampling (96kHz.) Now you will see that the spectrum looks very clean
everywhere right down to the noise-floor. (If you can hear aliasing in this
file, then your PC or audio interface is likely performing some sort of
sample-rate conversion, and doing it badly!)
File "Saw_Aliases" contains just the corrections applied to the Naive Saw
waveform around the discontinuities, just for fun. It essentially contains
all of the aliased rubbish that gets removed by the BLEP algorithm, but you
can hear it more clearly without the main Sawtooth tone masking it!
As you can see the simple PolyBLEP method does a very good job of
attenuating aliasing in the low-frequency region of the spectrum where it is
most annoying, but the full BLEP technique tweaking several samples around
each discontinuity gets close to perfection across the full audio spectrum.
-Richie,
--
This email has been checked for viruses by AVG.
https://www.avg.com
More information about the Synth-diy
mailing list