Skip to content

chaosct/xmm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XMM — Probabilistic Models for Continuous Motion Recognition and Mapping

XMM is a portable, cross-platform C++ library that implements Gaussian Mixture Models and Hidden Markov Models for recognition and regression. The XMM library was developed for movement interaction in creative applications and implements an interactive machine learning workflow with fast training and continuous, real-time inference.

Contact

Jules Françoise: jules.francoise@ircam.fr

author

This code has been initially authored by Jules Françoise during his PhD thesis, supervised by Frederic Bevilacqua, in the Sound Music Movement Interaction team of the STMS Lab - IRCAM - CNRS - UPMC (2011-2015).

Copyright

Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.

Licence

This project is released under the GPLv3 license. For commercial applications, a proprietary license is available upon request to Frederick Rousseau frederick.rousseau@ircam.fr.

XMM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

XMM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with XMM. If not, see http://www.gnu.org/licenses/.

Citing this work

If you use this code for research purposes, please cite one of the following publications:

  • J. Françoise, N. Schnell, R. Borghesi, and F. Bevilacqua, Probabilistic Models for Designing Motion and Sound Relationships. In Proceedings of the 2014 International Conference on New Interfaces for Musical Expression, NIME’14, London, UK, 2014.
  • J. Françoise, N. Schnell, and F. Bevilacqua, A Multimodal Probabilistic Model for Gesture-based Control of Sound Synthesis. In Proceedings of the 21st ACM international conference on Multimedia (MM’13), Barcelona, Spain, 2013.

Dependencies

This software uses the open-source library libJSON for JSON file I/O.

Download

The source code is available on Github: https://github.com/Ircam-RnD/xmm

For the Cycling'74 Max externals, see the MuBu collection of Max objects on the ISMM team website: http://ismm.ircam.fr/mubu

Documentation

The full documentation is available on Github Pages: http://ircam-rnd.github.io/xmm/

Compilation and Usage

Dependencies

The library depends on the libjson c++ library for JSON file I/O. A modified version of the library is distributed with this source code. The library depends on the Catch unit-test framework. The library uses PTHREADS for parallel training of models with multiple classes.

Compiling as a static/dynamic library

XCode

See the xcode project in "ide/xcode/"

CMake

The library can be built using CMake. In the root directory, type the following command to generate the Makefiles:

cmake . -G"Unix Makefiles"

The following commands can be used to build the static library, run the unit tests, and generate the developer documentation or api documentation:

make
make test
make doc
make docapi

Usage

The header file "xmm.h" includes all useful headers of the library. To enable parallel training, define the preprocessor macro "USE_PTHREAD" and link with the pthread library.

Building the Python Library

Dependencies

Building

The python module can be built using CMake. In the python directory, type the following command to generate the Makefiles and build the python module:

cmake . -G"Unix Makefiles"
make

The module should be installed in "${xmm_root}/python/bin/"

About

XMM — Probabilistic Models for Motion Recognition and Mapping

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 61.9%
  • Jupyter Notebook 19.9%
  • C 12.2%
  • Python 3.3%
  • Objective-C 1.9%
  • CMake 0.8%