Skip to main content

A video-to-sound theramin

Project description

theramin

A video-to-sound theramin.

To install: pip install theramin

About this project

The objective of this project is to make "instruments" that work like a theramin, that is, whereby the features of the sounds produced are controlled by the position of the left and right hand.

That, but generalized. A theramin is an analog device that whose sound is parametrized by two features only: Pitch and volume, respectively controlled by the left and right hand; the distance from the device's sensor determines the pitch and volume of the sound produced.

Here, though, we'll use video as our sensor, so we can not only detect the positions of the hands, but also the positions of the fingers, and the angles between them, detect gestures, and so on. Further, we can use the facial expressions to add to the parametrization of the sound produced.

What the project wants to grow up to be is a platform for creating musical instruments that are controlled by the body, enabling the user to determine the mapping between the video stream and the sound produced. We hope this will enable the creation of new musical instruments that are more intuitive and expressive than the traditional theramin.

Right now, the project is very much in its infancy, and we're just trying to get the basics working.

Here's a bit about what exists so far:

  • _03_hand_gesture_recognition_with_video_feedback.py: Detects hand gestures and overlays the detected landmarks and categories on the video stream in real-time.
  • _06_hand_gesture_w_slabs.py: The same, but using slabs, for a better framework setup
  • _05_a_wrist_lines.py: Draws lines showing the wrist position on the video stream in real-time.
  • _07_wrist_lines_w_sound.py: Draws lines showing the wrist position on the video stream and produces sound based on the wrist position. The resulting sound is horrible though, due to the lack of a proper real-time setup (I believe). The sound produced is produced in realtime, but only a small waveform chunk is produced. It's choppy. We need to buffer the stream of sound features and have an independent process that reads from the buffer and produces the sound, taking more than one chunk of information to determine the sound produced.
  • _08_keyboard_theramin.py: To reduce the complexity of the sound produced, this script uses a keyboard to produce sound, with the pitch and volume controlled by the left and right hand, respectively. This doesn't work well at all. More work is needed.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

theramin-0.0.5.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

theramin-0.0.5-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file theramin-0.0.5.tar.gz.

File metadata

  • Download URL: theramin-0.0.5.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.13

File hashes

Hashes for theramin-0.0.5.tar.gz
Algorithm Hash digest
SHA256 23c3681451bc35004313f7753f5d533f7c010186b9b296fbde3b826d886994fd
MD5 89bb8523a1b0775684565f7cfa44c457
BLAKE2b-256 e8ce58f27f3909456d3f47d9c45b18e2dbb718ca988c1f8d310e864a2a06ce46

See more details on using hashes here.

File details

Details for the file theramin-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: theramin-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.13

File hashes

Hashes for theramin-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 47ac42b35349e523ee75b7e3490d93630d2d3626159099605599668d8ddea592
MD5 8872663c9aadc8eeaa5793fa137a8130
BLAKE2b-256 9a54ceafce118504d2e5b3918b3253fff7232ebf0b0c8fe399ac81e5dde5d720

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page