electronics, linux, music, ...



Chronos-theremin is a (lousy named) Python script for using TI Chronos watch (wiki) as a MIDI controller under Linux. It can also be modified for any other serial device providing usable (preferably accelerometar data) output.

Chronos-theremin is released under GPLv3 licence.

Chronos-theremin screenshot


Chronos-theremin can be downloaded from http://hyperglitch.com/files/chronos-theremin.tar.gz

Running and requirements

To run it you need to have installed PyQt4, PySerial and alsaseq.


 > tar xvzf chronos-theremin.tar.gz
 > cd chronos-theremin
 (at this point you need to edit path to alsaseq and maybe serial port in file chronos-theremin)
 > chmod +x chronos-theremin
 > ./chronos-theremin

See it in action


  1. How do you use it? I have the watch and the script it runs But nothing. How do I do the bit where you connect alsa to the watch. ANy documentation?

    — by a on Tue, 25 May 2010

  2. script represents itself as an ALSA MIDI device. to get any sound, first you need to start some kind of synth which you'll controll with watch (i used qsynth in the example. there is also, for example, zynaddsubfx.). you can then use aconnect from the terminal to connect chronos output MIDI port to synth input MIDI port, or you can connect it with qjackctl. mail me if you need more info..

    — by igor on Sat, 29 May 2010

  3. I have kubuntu 10.04 and after I install qsynth I got an annoying. Qsynth1: failed to create the audio driver (jack) I lurked into other forums and discussions but nobody solved that problem. Yes i installed the jack demon. Any suggestions?

    — by epolpa on Thu, 30 Sep 2010

  4. @epolpa: if you want to use JACK driver then you need to start JACK itself. probably the easiest way is using qjackctl program. other (simpler) way is using alsa driver in qsynth. start qsynth, go to setup, audio tab, then choose alsa audio driver and restart qsynth. it should work then (you also need to load a soundbank in qsynth)

    — by igor on Thu, 30 Sep 2010

  5. How do you use it? I have the watch and the script it runs But nothing. How do I do the bit where you connect alsa to the watch. ANy documentation?

    — by affiliation on Sat, 29 Jan 2011

  6. @affiliation: see second comment on this page.

    — by igor on Sat, 29 Jan 2011

  7. How do I do the comment 2. Do I start qsynth in separate terminal?

    — by alias_mk on Tue, 31 May 2011

  8. @alias_mk yes, you can start qsynth in another terminal. but maybe better try with zynaddsubfx because qsynth (actually fluidsynth - qsynth is only gui for it) is soundfont player so you'll need some soundfont to get any sound from it. then install qjackctl, open its 'connections' window, go to alsa tab and connect chronos from the left side to the zynaddsubfx (or fluidsynth) on the right side.

    — by igor on Tue, 31 May 2011

  9. I have the software pre-requisites. With the Control Center, I verified that the watch is sending accelerometer data to the computer. I started qjackctl and hooked up a virtual keyboard to ZynAddSubFX. I can play notes on the virtual keyboard. Then I hooked up chronos-theremin to Zyn. With the watch in ACC mode and sending signal to the computer, no MIDI commands come out of chronos-theremin. Instead, the application generates a bunch of these messages: $ ./chronos-theremin Traceback (most recent call last): File "./chronos-theremin", line 216, in readData dat1=ord(dat[config['index_1']]) IndexError: string index out of range I'm using Ubuntu 11.04 and alsaseq-0.4.1

    — by Florin Andrei on Thu, 25 Aug 2011

  10. Nevermind! It works great! The problem was, the Control Center was running in another screen while I tried to run chronos-theremin. There was an access conflict somewhere, probably. Feel free to delete this and my previous message. Thanks.

    — by Florin Andrei on Thu, 25 Aug 2011