Doing music with a stepper motor and... Python

relief.fr

Relief.fr is an agency specialized in 3D stereographic technologies (what we call "relief" in french), located in Paris. It's a great team, they have a long-standing know-how with stereography, anaglyphs, 3D projection, and they also really master the production of images dedicated to the innovative 3D LCD panels from Alioscopy.

Stereoscopy normally needs making 2 images: one for the left eye, one for the right eye. Producing images for these 3D screen is much harder because they require shooting 8 images. Seeing such a screen for the first time is really astonishing, because you not only see in 3D without 3D glasses, but you can also turn around the object on the screen! Not a lot, but you can. Just put a screen on your stand in an exhibition, and you are guaranteed to see everybody stopping in front of you. I'll try to bring one at Solution Linux 2009 for the AFPY stand.

To be able to shoot 8 images, we need to move a camera on an aluminium rail very quickly, while the camera is in burst mode. Everything is home made. The rail and the power supply is manufactured by a motion control specialist, while I'm programming the movements of the stepper motor in Python, with an USB controller, an eee-pc, and everything on Linux.

Since I'm also a musician, I really like to do music with everything: that's really easy with a stepper motor: you just give him a frequency to make it move, and a frequency is just a note. Starting with the 440Hz A, you just have to multiply by the twelfth root of two ( 2^(1/12) ) to get the next semitone. Then you can play music :)

This is very noisy because the rail is on a wood box. The high notes are not exactly right, because of some harmonics, and also the rounding of frequencies to the nearest integer.