Skip to content

gaborpapp/sonotopy

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SONOTOPY

Original author: Alexander Berman (see http://nimations.com)

Github repo: https://github.com/alex-berman/sonotopy

Contact: alex@nimations.com


//////////////////////////////////////////////////////////////////////////////

Sonotopy: the mapping of sound (from Latin sonus for sound, topica for place)

Sonotopy is a C++ library for perceptually analyzing the contents of
an acoustic signal in real time. Its primary use is to map sound
streams such as music or voice to a visual or other kind of output.

The library consists of novel techniques to extract high-level
features from an acoustic waveform. These numeric feature values can
be interpreted as e.g. shapes, colors or motion parameters. The
library also gives access to lower levels of processing such as
spectral distribution.

Typical uses:
- visualization of music, beat-sensitive visuals
- dancing toys and robots
- artistic explorations of interactions between sound and other senses

Key features:
- implements a simple psychoacoustic model of the human hearing system,
  resulting in a natural response
- autonomy: continuous adaption using biologically inspired algorithms
  (neural networks) eliminates the need of offline training or manual user
  adjustments
- efficient implementation in C++, supporting real-time processing
- high-level API: complex processing and large parameter sets are
  hidden behind simple abstractions
- cross-platform: the library compiles and runs on Linux, Mac OS X and Windows
- noise robustness: the adaptivity and psychoacoustic modelling
  limit the effects of noise in the signal


//////////////////////////////////////////////////////////////////////////////

EXAMPLE VIDEOS

Example videos with different feature types can be found at
http://vimeo.com/channels/206361


//////////////////////////////////////////////////////////////////////////////

ROADMAP (preliminary)

- Integrate with Fluxus (http://www.pawfal.org/fluxus/)
- Integrate with Pure Data (http://puredata.info/)
- Integrate with Max (http://cycling74.com/products/maxmspjitter/)
- Integrate with Processing (http://processing.org/)


//////////////////////////////////////////////////////////////////////////////

CONTRIBUTING

Anyone is welcome to contribute to the project. Currently, the main
areas where contributions are requested are:

- Using the library and providing feedback to further development
- Building demos and applications
- Integration with other software (see the roadmap above)
- Developments of the library core (ideas and/or implementation)

But this list can easily be extended; if you have other ideas, get in touch.


//////////////////////////////////////////////////////////////////////////////

REQUIREMENTS

Sonotopy is built using Scons:
http://www.scons.org/
(or: apt-get install scons)

Sonotopy requires FFTW3:
http://www.fftw.org/
(or: apt-get install libfftw3-dev)


//////////////////////////////////////////////////////////////////////////////

INSTALLATION

To build the library, run "scons" in the root directory.

To install the library and header files, run "sudo scons install".


//////////////////////////////////////////////////////////////////////////////

RUNTIME EXAMPLES

Sonotopy is bundled with a demo. To build the demo, run "scons examples".

To execute the demo, run "build/release/examples/Demo". For usage 
instructions, run Demo with the -h flag.

About

Library for perceptually analyzing an acoustic signal in real time

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 95.3%
  • Python 4.7%