[sdiy] Polybleps and arbitrary waveforms

Tom Wiltshire tom at electricdruid.net
Wed Mar 30 12:45:04 CEST 2016

I've looked at this integrated wavetable synthesis before, but there's one thing I don't get. Perhaps you could explain, Olivier.

If we integrate the wavetables, the size of the numeric representation required for the samples goes up. Significantly. A 16-bit number (for example) instead become the sum of many thousands of 16-bit numbers. That requires perhaps a 32-bit number. Is that right? Or is this done with floats?

Repeating this process more times increases this problem. Say I integrate twice more. By the end of this process, I'm going to need very large numbers to store the values I've generated.

The "output" part of the process (the part you do in realtime) seems pretty straight-forward. Read the samples, interpolate to get the value between the samples you're after, differentiate several times, then output.

The problem is the large storage, which seems to offset the benefits quite a bit, at least on chips with limited memory.


On 30 Mar 2016, at 11:12, Olivier Gillet <ol.gillet at gmail.com> wrote:

> Polybleps are used to band-limit a *discontinuity* in the waveform (or
> its derivative, eg for triangle/slope synthesis).
> Do we really want to model discontinuities in wavetable data? When
> your 256-sample wavetable contains the following data: "... 150, 148,
> 146..." does it really mean that we should play a sample value of 150,
> hold it for f0 / 256, and then play a sample value of 148?
> If this is your goal, yes, polybleps are useful. What you describe
> would actually synthesize a band-limited version of the signal you
> would obtain by using a variable clock rate and a ZOH. Useful for a
> Prophet-VS emulation...
> For (almost) band-limited wavetable playback I'd recommend this instead:
> https://www.dafx12.york.ac.uk/papers/dafx12_submission_69.pdf
> On Wed, Mar 30, 2016 at 11:38 AM, Gordonjcp <gordonjcp at gjcp.net> wrote:
>> I was thinking about polybleps and it occurred to me - if you could compute the polyblep fast enough, could you do that for every sample read from a wavetable and thus antialias any wave you play back?
>> --
>> Gordonjcp MM0YEQ
>> _______________________________________________
>> 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