A friend asked me if I had a Theramin sound. I figured, I could cheat with a sine wave or
a deeply-filtered sawtooth maybe, but then I thought, hmm, what is a real Theramin wave
anyway?
Google Images pumped me up nicely:
http://www.horst-theremin.com/images/_mid%20600%20Hz.jpg
Diagrams for waveforms of the original Lev Termen and RCA instruments, and the Moog and
Big Briar Theramins, that I was able to find, also look similar to the above.
And, umm, that ain't no sine wave. It's got some strange bias, louder on the
positive than the negative side, more rounded and sine-like on the negative side, and more
like a sawtooth on the positive side. I'm told it's also non-linear and the
waveform for the lower and higher notes look slightly different, but one thing at a time.
So I thought, well, maybe I could hack up a LADSPA oscillator plugin that does that weird
waveform.
Looked at the SDK, and sure enough, in the sine.cpp file, there's an
initialize_sine_table() that looks like the right place to put the wave. It's just a
table of floats, looks like.
However, my DSP and maths skills stop right about there. I have no idea how to generate
the points on that oddball waveform in such a way that they could be dumped into, say,
g_pfSineTable.
Has anyone already done this? Anyone want to take a shot at it?
-ken