OM7 is the latest generation of OpenMusic (OM), a visual programming language based on Common Lisp, dedicated to computer-assisted music composition.


Download

Beta versions available here: https://github.com/openmusic-project/om7/releases/latest

Source repository: https://github.com/openmusic-project/om7/


Documentation pages (in progress…)

Documentation is still at its very early stages. The OM6 User Documentation can be useful to find out about the basics of OM visual programming workflow.

See also the ICMC’17 paper about OM7.


Libraries

Check out the OM7-compatible external libraries:

– Unzip the libraries in a folder and specify this folder in the om7 Preferences/Libraries/


About OM

OM is a visual programming language based on Common Lisp. Visual programs are created by assembling and connecting icons representing Lisp functions and data structures, built-in control structures (e.g. loops), and other program constructs. OM may be used as a general purpose visual programming language, and reuse any existing Common Lisp code. At a more specialized level, a set of in-built tools and external libraries make it a powerful environment for music composition. Various classes implementing musical structures are provided, associated with graphical editors including common music notation, MIDI, OSC, 2D/3D curves, and audio buffers.


Licensing

OpenMusic is a free software distributed under the GPLv3 license. As a Common Lisp program, the environment can be considered just as an extension of Lisp including the specific built-in features of the application. It is also possible to compile, load and run OpenMusic sources in a Lisp environment, using the adequate compiler.

While the sources of OM7 are available under the GPL license, the application is currently developed with LispWorks 7.1.1: a commercial Lisp environment providing multiplatform support and graphical/GUI toolkits. A free (limited) edition of LW6 is available on the LispWorks website, but unfortunately no free version of LW7 exists at the moment.

In order to contribute to the code with a LispWorks license, one must therefore work both with the source package and an up-to-date reseased version on OM7 (which includes a Lisp interpreter).


Publications

OM7 has been used as a support for research and production in a number of recent projects. See related papers below:

See also some previous papers and resources on OM6.


Timeline and state of the project…

The OM7 project was initiated by @j-bresson around 2013. Most of the code is written from scratch, but a significant part of it is largely inspired or borrowed from the OM original sources and musical features, including the indirect contributions of its successive authors and contributors. The initial objective of OM7 was to experiment with new visual Lisp programming features, without taking into account any specific music application yet. Important developments have been carried out during the EFFICACe research project conducted at IRCAM (2013-2017). This project aimed at exploring relationships between calculation, time and interactions in computer-assisted music composition processes, focusing on specific topics such as dynamic temporal structures or the control, visualization and interactive execution of sound synthesis and spatialization processes. The reactive model recently introduced in OpenMusic has been integrated as a native feature of OM7 and works seamlessly in the visual programming environment. @jeremie-gracia created a framework for timeline-based control of musical object, and new tools for the representation adn interaction with spatial audio scenes (om-spat). @dimitribouche developed a dynamic scheduling architecture that was implemented and integrated as the main core for musical rendering and computation in OM7, as well as new interfaces for temporal representation and organization of compositional processes (a new design of the OpenMusic maquette). At the same time, new editors and architectures for the manipulation of musical objects (curves, temporal data streams, controllers, scores, etc.) are being developed to cover most operational areas of OpenMusic processes.

Current developments mostly aim at finalizing the import functionality for OM6 patches, as well as common music notation interactions in score editors.

I am doing my best to keep OM6 running and improving in parallel: the sources are hosted on this repository and the latest version can be downloaded here.