libmapper

libmapper logoParticipants: Joseph Malloch, Stephen Sinclair, Marcelo M. Wanderley (supervisor)
Time period: 2010–present
Website: libmapper.org

libmapper is an open-source, cross-platform software library for declaring data signals on a shared network and enabling arbitrary connections to be made between them. libmapper creates a distributed mapping system/network, with no central points of failure, the potential for tight collaboration and easy parallelization of media synthesis. The main focus of libmapper development is to provide tools for creating and using systems for interactive control of media synthesis.

Motivation

Open Sound Control (OSC) has been adopted by the academic and experimental-music communities for interactive media programming due to its flexibility in representing control data, strong semantics/human-readability, precise time-tagging, etc. Unfortunately, different projects utilizing OSC are rarely protocol-compatible. Many proposals have been made for creating standardized address-spaces/schemas to enable intercommunication, but we believe this is the wrong approach since it destroys the most powerful and useful aspect of OSC – the flexibility it allows for each user/designer/programmer to represent control signals and structures according to their specific needs or desires.

libmapper takes a different approach: instead of enforcing preset schemas we provide simple, distributed discovery and description; instead of address standardization we provide automatic translation; instead of normalization we provide automatic scaling… but that’s not all!

In addition to the flexibility of data-representation provided by Open Sound Control, libmapper provides:

  • automatic negotiation for resources (e.g. ports, unique names)
  • automatic peer discovery
  • a semantic abstraction of the networking layer (make connections between devices and signals by name rather than having to manually set namespaces/IP addresses/ports
  • description, including extensible properties as key-value pairs
  • automatic translation of OSC addresses between peers
  • automatic type coercion & linear scaling between peers
  • arbitrary signal processing within connections, including FIR and IIR filtering
  • remote connection management for persistence, automatic recovery, session management, saving and loading mapping configurations
  • the ability to query or stream the current value of remote destinations, enabling the use of supervised machine learning techniques for mapping
  • a powerful abstraction of signal “instances”, supporting arbitrary interconnection of polyphonic media synthesizers, multitouch interfaces, tangible interfaces, computer-vision blob-tracking algorithms, etc

libmapper creates a distributed mapping system/network, with no central points of failure, the potential for tight collaboration and easy parallelization of media synthesis.

Related Pages:

Other related tools and projects:

Related publications:

Christian Frisson, Mathias Bredholt, Joseph Malloch and Marcelo M. Wanderley (2021), “MapLooper: Live-looping of Distributed Gesture-to-Sound Mappings”. In Proceedings of the International Conference on New Interfaces for Musical Expression (NIME), Shanghai, China, 2021.

Joseph Malloch, Jérémie Garcia, Marcelo M. Wanderley, Wendy E. Mackay, Michel Beaudouin-Lafon and Stéphane Huot. “A Design Workbench for Interactive Music Systems”. In Simon Holland, Katie Wilkie, Tom Mudd, Andrew McPherson, and Marcelo M. Wanderley, eds. New Directions in Music and Human-Computer Interaction, Springer Verlag, upcoming (2019).

Joseph Malloch, Stephen Sinclair, and Marcelo M. Wanderley. “Generalized Multi-Instance Control Mapping for Interactive Media Systems”IEEE MultiMedia, 25(1), January–March 2018.

Joseph Malloch, Stephen Sinclair, and Marcelo M. Wanderley. “Distributed tools for interactive design of heterogeneous signal networks”. Multimedia Tools and Applications, 73(2),  2014.

Joseph Malloch. “A Framework and Tools for Mapping of Digital Musical Instruments”, Ph.D. thesis, Music Technology, McGill University, Montréal. Thesis defended on November 4, 2013.

Joseph Malloch, Stephen Sinclair, and Marcelo M. Wanderley. “Libmapper (A Library for Connecting Things)”. In Proceedings of the International Conference on Human Factors in Computing Systems (CHI EA 2013), Paris, France, pp. 3087–3090, 2013.

Joseph Malloch, Stephen Sinclair, and Marcelo M. Wanderley. “A network-based framework for collaborative development and performance of digital musical instruments”. In R. Kronland-Martinet, S. Ystad, and K. Jensen (Eds.): CMMR 2007, – Proc. of Computer Music Modeling and Retrieval 2007 Conference, LNCS 4969. Berlin Heidelberg: Springer-Verlag, pp. 401–425, 2008.

Joseph Malloch, Stephen Sinclair, and Marcelo M. Wanderley. “From controller to sound: Tools for collaborative development of digital musical instruments”. In Proceedings of the 2007 International Computer Music Conference, Copenhagen, Denmark, pp. 65–72, 2007.