Waveform tables

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

I have tables of 4096 values for my waveforms. My current plan is to have those for each of the first 12 harmonics, these are the "big," "loud" harmonics, and the others trail off in relative quietness.

As has been pointed out to me, these higher ones, though, quiet, are important to have. I'm thinking of storing these higher ones in tables that are much smaller. Said tables will lack the first 12 harmonics. When I generate the sounds, I'll have the first 12 generated the standard way, from the nice, accurate tables, then add in these higher ones as if they were a cheap hair extension.

Does that seem reasonable?

Post

I wouldn't know, I haven't done Wavetable synthesis.

But are these mostly trivial waveforms? Saw, Pulse? If so, you might find it quite a bit easier to use BLEP synthesis instead. Its easy to understand (I'd be glad to help you step through it), and its plenty faster than WT too.

But if you're using weird WT shapes, then just ignore me. ;)

-- Chris

Post

toaster > I can't think of a reason why it wouldn't work. It's a plain additive manouver. Given that you will use two diferent table sizes you could get some slight misalignments in phase or frequency due to float imprecision, but I doubt it would be audible..or even meassurable.

bslf > It's not strictly speaking wavetable synthesis in the conventional sense, but rather a table based oscilliator if I understand right. I'm not sure it's possible to make anything faster than a non interpolated lookup table?

But I'd enjoy a quick outline (or link) on bleps either way because I know jack about them.

Post

How could a BLEP be faster than a table? Doesn't the BLEP come out of a table?

>>toaster > I can't think of a reason why it wouldn't work. It's a plain additive maneuver. Given that you will use two different table sizes you could get some slight misalignments in phase or frequency due to float imprecision, but I doubt it would be audible.

That's my idea--keep all the small errors in places where it doesn't matter. Gives me more memory for resolution where it counts. I'll keep them power-of-two tables and I shouldn't get too much in the "weird" department.

I am using linear interpolation, since my tables are so big. But I'll probably use one of the elephant paper's interpolators for the smaller tables.

Also, seems though most of my current waves have a lot of symmetry. I can cut most of them into 1/4 size. And a couple of them into 1/2 size.

Smaller the tables, probably better the caching.

Post

Go ahead and step me through BLEPs. I'll use them next time around. I'm supporting some "classic" digital synth sample ROMs in this synth, so makes sense to keep this one table-based.
Last edited by mistertoast on Wed Dec 06, 2006 11:33 pm, edited 1 time in total.

Post

mistertoast wrote:I am using linear interpolation, since my tables are so big.
Did you see any noticable improvments? (Or did you cover this in one of the other threads?)

Post

Yes, I absolutely noticed a difference. A huge difference. Crispness, noise floor.

In fact, I'm going to let the user flip a switch on the "classic" waveforms to interpolate them or not. I'll use an elephant paper interpolator because those old skool tables are hella small.

Post

look on www.experimentalscene.com for a good BLEP paper :)

DSP
Image

Post

mistertoast wrote:Go ahead and step me through BLEPs. I'll use them next time around. I'm supporting some "classic" digital synth sample ROMs in this synth, so makes sense to keep this one table-based.
Do you want it explained in terms of how to do it or in terms of how it works? :)

-- Chris
Last edited by bslf on Wed Dec 06, 2006 11:41 pm, edited 1 time in total.

Post

Hey DSP, that's sweet. Code!

Post

Chris,

Actually, I'd prefer the "how it works."

Post

LOL, your gui is going to look like the togglebutton national convention. :D Not that there's anything wrong with that. :|

Post

mistertoast, I'd recommend writing it yourself anyway, because (1) You can then specify your own tradeoffs (2) You can design it to conform to your current way of doing things, instead of creating a wrapper or modifying it through and through and hoping you didn't forget a piece of context (3) Its fun! :D

For some reason, that code looks familiar, but I don't know why ... :shrug:

-- Chris

Post

>>LOL, your gui is going to look like the togglebutton national convention.

Hmm. Maybe I need one of those "hidden pages" where you tweak the guts of the machine, to handle switches like that.

Post

Actually, that toggle could be a slider to let the user choose on a smooth scale between old skool raunch and interpolated.

Post Reply

Return to “DSP and Plugin Development”