Friday, February 25, 2011

Kinect Keyboard-Anywhere

Getting the Xbox Kinect working as a giant piano for the Hackerspace-Adelaide demonstration day for the Format Festival. The keyboard-anywhere was written in Python by petermoz, and was released after much public interest. Using a QGLViewer and Fluidsynth to display the Kinect point could and synthesis keyboard notes.




Petermoz provides a ReadMe file with the project containing dependency installation instructions(see below)
== Detailed Dependencies

I got keyboard-anywhere working on a fresh Ubuntu 10.10 install with the
following steps (hopefully I didn't leave any out).

1.  apt-get install the following (this is AFAIK the minimal set):
    (to get PyQGLViewer / PyQt4 working)
    - build-essential
    - pyqt4-devtools
    - qt4-qmake
    - libqt4-dev
    - python-qt4-gl
    - python-qt4-dev
    - python-numpy
    - python-setuptools

    (to get freenect working)
    - cmake
    - libusb-1.0-0-dev
    - freeglut3-dev
    - libxmu-dev
    - libxi-dev

    (for audio output)
    - fluidsynth
    - fluid-soundfont-gm

2.  use easy_install to get cython 0.14
    - sudo easy_install cython

3.  compile libfreenect (with BUILD_PYTHON set to ON)
    (follow the instructions at https://github.com/OpenKinect/libfreenect)

4.  download, compile and install QGLViewer and PyQGLViewer (follow instructions in the 
    INSTALL or README files)
    - https://gforge.inria.fr/frs/download.php/28138/libQGLViewer-2.3.9-py.tgz
    - https://gforge.inria.fr/frs/download.php/28139/PyQGLViewer-0.9.0.zi
The first problem encountered after following the instructions was that there did not appear to be a python wrapper for Fluidsynth. Help from shenki (a member of Hackerspace-Adelaide) directed me to  pyFluidSynth, a python wrapper for FuildSynth.
The Second problem was not having either the libfreenect/lib or pyFluidSynth path variables setup. With a little more help from shenki, and using "export LD_LIBRARY_PATH=`pwd` " from within the libfreenect/lib folder and "export PYTHONPATH=`pwd` " from within the pyFluidSynth folder.

No comments:

Post a Comment