The Open.Theremin uses wave tables to generate the theremin sound. By changing the values in the wave table any wave form can be synthesized and various classic theremin sounds can be reproduced. In the Arduino software the wave table is stored in the file "theremin_sintable.c". By replacing this file or changing the values in it you can change your wave form.
Here are some wave tables I prepared (click on the name and right click to download the corresponding wave table):
Standard - slightly tilted sinus which makes the typical theremin sound.
Sinus - Plain sinus as a reference and for those who like to experiment with it.
If you have waves that you want to share, just contact me and I will put them here.
Arduino script to generate new wavetables
The Arduino UNO has not the computing power to generate a complex waveform in real time, thus the external lookup table is the only way to obtain nice waveforms. To generate new wavetables files for the instrument based on a mathematical model you can use this script developped by Thierry Frenkel. The script calculates different wave tables offline in a different sketch and then use the result by recompiling and uploading the Open.Theremin software again.
wavegen.ino (zip, 1kB)
Please download the full article with instruction, musical and mathematical details here: wavegen (pdf, 333kB)
Code, and desicription kindly provided by Thierry Frenkel, musician, “electronic luthier” and reputable expert for theremin instruments.
Online Tool to generate wave tables
This is an online tool to generate new wave forms for the Open.Theremin.
Simply draw in the drawing area and the hit the GENERATE button to generate the new wave table. Then copy and upload the wave table to your theremin and you are playing your own sound. Works best on Google Chrome browser. Have fun.
Command Line Tool
David Harvey, technologist, software expert and music enthusiast developed a command line tool to generate various sounds based on harmonic synthesis as well as on Thierries etherwave formulas. You can pre-listen the sound on your computer, generate ASCII or PNG plots and once you like it export the data for open theremin wave tables.
If you know what "
npm install -g wavyd" means, you should definitely try this out. Thank you David.
GitHub for wavyd