On 08/24/2012 02:21 PM, harryhaa...@gmail.com wrote:
Hi everybody!

I'm interested in wavetable synthesis, so read around a bit on how they
work, best used etc, but I can find preciously little information that

You probably know this, but wavetable synthesis is different from a table-lookup oscillator. It sounds like you're doing a table look-up oscillator.

describes how to best "create" a wavetable.
Pre-recorded material seems a pretty go-to choice rather than using
csound or freinds to generate wavetables.

The issue of tuning is where I currently struggle the most: How should
that be approached?

I wrote a table-lookup oscillator that is currently being used in omap-audio-tool[1] for the tone generator. See [2] for the header. I originally wrote it for fun, with the intention of using it on platforms with weak floating point.

Like Fons mentioned in the e-mail, I made my tables a length of N^2 and large enough so that they would not need interpolation for frequencies over about 100Hz (IIRC). Below this cut-off frequency it does linear interpolation.

When calculating offsets within your table, it's important to be wary of truncation error (i.e. don't convert your frequency to "play every kth sample in the table). This will cause your output frequencies to be different from what you input (quantization error).

For generating the tables for sine, triangle, etc., audio-tool has a program generate-wave-table.c[3] that generates the look-up tables in a format suitable for inclusion in a C source file. However, you can easily change the output by changing the 'out()' implementation in main().

-gabriel

[1] http://gitorious.org/omap-audio/omap-audio-tool
[2] http://gitorious.org/omap-audio/omap-audio-tool/blobs/master/oscillator-table.h [3] I started off calling everything "wavetable" by mistake, this is one was overlooked in the renaming of thing.

_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev

Reply via email to