Optical Theremin

Optical Theremin
Play audioListen to Sample

Optical Theremin
A digital Theremin that uses two optical proximity sensors instead of radio frequency fields. Similar to a classic Theremin, the optical sensors control the volume and frequency. Control knobs select the pitch, waveshape arrangement, LFO (vibrato), and distortion effect.

The technology is STM32 DMA DDS signal generation and a simple low pass filter, producing 16 bit single channel (mono) sound.

The software is Arduino compatible and available for download below.

Design Documents

Schematic Diagramschematic_iB22_optical_theremin.pdf
Bill of Materialsbom_iB22_optical_theremin.pdf
PCB Gerbersgerbers_iB22_optical_theremin.zip
3D Modelsoptical_theremin_mechanical.zip
Source Codecode_iB22_optical_theremin.zip


Power Requirement5.0V 500mA USB micro jack
OutputAudio line level, 3.5mm stereo jack
Requires powered speakers or amplifier.

Connect 5V USB power source and 3.5mm stereo audio cables. The audio output is the same on both left and right channels.


WAVE knobSelects the waveshape and number of voices
VIBRATO knobLFO control
DISTORTION knobDistortion effect and intensity
OCTAVE dialFrequency range control
SEMITONES switchInclude semitones
FREQUENCY proximityLeft optical sensor controls the frequency
VOLUME proximityRight optical sensor controls the volume
Both the FREQUENCY and VOLUME optical sensors must be engaged to produce audio output


SIGNALDDS audio output
CLKOn when generating audio output (both VOLUME and FREQUENCY sensors engaged)
DMAGets brighter as DMA load level increases
ERRAudio processing overload - this won't happen unless you modify the instrument code