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:
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?
Linux-audio-user mailing list