[sdiy] BLEP, PolyBLEP, aliasing, etc

Andrew Simper andy at cytomic.com
Wed Feb 17 04:26:22 CET 2021

Minimum Phase bleps / blamps will sound the same pretty much the same as
linear phase ones if you don't modulate the pitch or process the oscillator
afterwards with non-linear elements. People generally use linear phase blep
/ blamp since no DC component is added with modulation like with the
minimum phase version.

Practical blep implementations are a tradeoff of length and accuracy of the
corrective grain vs cpu. From my point of view all methods are "poly blep"
of some form. A linear interpolated table is just using a bunch of 1st
order polynomials to generate the corrective grain, where each part of the
polynomial only covers a fraction of a sample. You can also increase the
degree of the polynomial approximation, as well as the length it covers of
the corrective grain to generate other forms. If the length covered is 1
sample then this is normally called a Farrow Structure. The original poly
blep paper (from memory) has 2 taps (samples), and uses two second order
polynomials each covering 1 sample, so this is a Farrow Structure of length
2 using 2nd order polynomials.



On Wed, 17 Feb 2021 at 04:01, Brian Willoughby <brianw at audiobanshee.com>

> Thanks so much for putting this together!
> I'll be listening after work today.
> In the interim, I wonder if you're able to compare the minimum-phase
> "MinBLEP" to these other options, especially the 32-sample Saw_BLEP16 (or
> is that only 8 samples on each side?). If I had to place my bets, I'd
> expect that there'd be no audible difference between minimum-phase and
> textbook step, even though the waveform would be different. I'd also expect
> that the harmonic and aliasing content would be the same. I'm just curious
> what the real-world results are.
> Brian Willoughby
> On Feb 16, 2021, at 05:39, Richie Burnett wrote:
> > 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.
> >
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at synth-diy.org
> http://synth-diy.org/mailman/listinfo/synth-diy
> Selling or trading? Use marketplace at synth-diy.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://synth-diy.org/pipermail/synth-diy/attachments/20210217/900180c0/attachment.htm>

More information about the Synth-diy mailing list