OpenMusic (OM) is a visual programming language based on Lisp. Visual programs are created by assembling and connecting icons representing functions and data structures. Most programming and operations are performed by dragging an icon from a particular place and dropping it to an other place. Built-in visual control structures (e.g. loops) are provided, that interface with Lisp ones.
OM may be used as a general purpose functional/object/visual programming language. At a more specialized level, a set of provided classes and libraries make it a very convenient environment for music composition. Above the OpenMusic kernel, live the OpenMusic Projects. A project is a specialized set of classes and methods written in Lisp, accessible and visualisable in the OM environment. Various classes implementing musical data / behaviour are provided. They are associated with graphical editors and may be extended by the user to meet specific needs. Different representations of a musical process are handled, among which common notation, midi piano-roll, sound signal. High level in-time organisation of the music material is proposed through the concept of "maquette".
Existing CommonLisp/CLOS code can easily be used in OM, and new code can be developed in a visual way.
Designed and developed by the IRCAM Music Representation research group
© 1998 - 2022 Carlos Agon, Gérard Assayag, Jean Bresson, Karim Haddad.
Sources and 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.
While the sources of OM are available under the GPL license, the application is developed with LispWorks 7: a commercial Lisp environment providing multiplatform support and graphical/GUI toolkits. Also available a free (limited) edition of LW7 on the LispWorks website.
See the Build Instructions for how to compile, load and deliver OM using LispWorks 7.1.
In order to contribute to the code without a LispWorks license, one must therefore work both with the cloned source package and an up-to-date reseased version on OM (which includes a Lisp interpreter).