The Linux-powered Robot Clarinet
We've built a robot that plays the clarinet --- see
http://www.nicta.com.au/research/research_themes2/embedded_systems/artemis --- which won the European Artemis Orchestra competition in its class.
There were three main challenges to overcome in creating the robot. The _mechanical_ problems of actually blowing air, moving `fingers', and doing this fast enough and quietly enough; the _acoustical_ _physics_ problems of designing a mouthpiece that works and getting the instrument to play more-or-less in tune; and the _programming_ problems, of getting Linux to do real-time control of all the robot's bits and produce something that sounds more like music than a robot.
In the presentation, we will:
-- give a (brief) introduction to the physics of the clarinet, so
as to be able to understand the rest of the talk
-- describe the robot's mechanical arrangement
-- describe the computer control gear (two embedded processors,
both running Linux, driving custom-designed control hardware)
-- describe the control software at a high level (C-code with python)
-- describe the open-source adaptations to LilyPond (http://lilypond.org) to
allow good-sounding music.
-- give a demo of the clarinet.
We expect that the talk will be given mostly by Mark Sheahan (who developed the software), but shared with Peter Chubb (who adapted LilyPond) and John Judge (who oversaw the mechanical/electrical design).
Mark is currently an engineering masters student at UNSW. He was the primary software contributer to the NICTA/UNSW 2008 entry for the ARTEMIS Orchestra Contest. He has worked with the Embedded Real Time Operating Systems (ERTOS) Group at NICTA, and the UNSW Music Acoustics group.
Peter started using Unix in 1979, and was programming for the Edition 7 kernel by 1982. He started using Linux with the Manchester Computer Centre distribution (Linux kernel verson 0.91).
He helped to found Slug, the Sydney Linux Users' Group, in 1993, and has been active in the Linux community ever since. He currently manages Gelato@UNSW, a group working on Linux scalability and performance.