This page is optimized for mobile devices, if you would prefer the desktop version just click here

7.1 Design concept

Overall goal

In our project, we attempted to simulate a theremin using a typical webcam. Just as a theremin is controlled only by 2 values, our virtual theremin is also controlled by two values based on image processing techniques.

By tracking some object, the virtual theremin can determine x-position, y-position, angle, and size of that object in the image that a camera returns. Pitch and volume can be controlled by any two of these values.

The two normalized values representing pitch and volume will be passed to audio control which will then set volume and pitch to correspond to the values given by object tracking.

Implementation methodology

Object detection

For our object tracking, we decided to isolate objects based on their HSV (Hue Saturation Value) values. This gives us the flexibility to use any object and the robustness to operate with almost any background in any sort of lighting. All object tracking is done using OpenCV.

Real time audio

The audio is implemented based on a foundation of classes that are part of the Synthesis Toolkit package (also referred to as STK). Instrument models in the STK as well as other synthesized sounds are controlled by the STK and passed to the host computer's audio buffer, changing in time as the object being tracked changes its position.

    Specification goals

  • Have multiple sounds possible
  • Have multiple object usage possible
  • Real-time video and audio output
  • Steady object holds pitch and volume to within +/- 5% of normalized range
<< Chapter < Page Page > Chapter >>

Read also:

OpenStax, Elec 301 projects fall 2013. OpenStax CNX. Sep 14, 2014 Download for free at http://legacy.cnx.org/content/col11709/1.1
Google Play and the Google Play logo are trademarks of Google Inc.
Jobilize.com uses cookies to ensure that you get the best experience. By continuing to use Jobilize.com web-site, you agree to the Terms of Use and Privacy Policy.