SCORE OBJECTS IN OM# Jean Bresson Ableton, Berlin STMS lab: Ircam, CNRS, Sorbonne Universit´ e, Paris 1 jean.bresson@ircam.fr ABSTRACT This paper is an overview of the new score objects and editors available in the OM# visual programming and computer-assisted composition environment. 1. INTRODUCTION OM# [1] 2 is a visual programming and computer-assisted music composition environment derived from OpenMu- sic [2]. As a computer-assisted composition environment, its main purpose is to provide composers with program- ming tools allowing them to implement models for the gen- eration, transformation, representation or synthesis of mu- sical material. The visual language is a comprehensive and general-purpose graphical interface on Common Lisp, us- ing the “patching” metaphor to assemble function calls and data structures in functional graphs. The possibility to manipulate and visualize musical data structures within visual programs, using music notation in particular, is a key element to make such environment an effective compositional framework. Musical data contain- ers and editors can be used as input, output, and for the storage, display and manipulation of intermediate mate- rial and results in compositional processes. They enable a specific workflow that contributes to set computer-assisted composition (CAC) beyond so-called “algorithmic compo- sition” systems [3]. OM# was inially developed in the context of research projects aiming at extending the possibilities of OpenMu- sic in the domains of interaction, time structures and sound spatialization [4, 5, 6]. The early prototypes of the visual language – as presented for instance in [1] – did not yet include any support for scores and “traditional” music no- tation. We are now a few years later, and a fairly complete score object framework is available (see Figure 1). 3 This paper gives an overview of this framework. 1 This work was partially carried out while the author was at Ircam STMS laboratory. 2 https://cac-t-u-s.github.io/om-sharp/ 3 The project was also renamed OM# in the meantime since these early prototypes. Copyright: c 2021 Jean Bresson. This is an open-access article distributed under the terms of the Creative Commons Attribution 3.0 Unported License , which per- mits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited. Figure 1. Score objects in an OM# visual program. 2. SCORE OBJECTS – BASICS The updated score object framework in OM# inherits the core functionality from OpenMusic/Patchwork [7], and is structured hierarchically as follows: A NOTE is defined by a pitch, a velocity and a duration, as well as complementary information about MIDI channel and port numbers. A CHORD is a set of one or several NOTEs. CHORD- SEQs and VOICEs are sequences of CHORDs, where time-positions are represented respectively as abso- lute onsets or as rhythmic proportions (see Section 3). MULTI - SEQ and POLY are polyphonic objects which con- tain superimposed CHORD- SEQs or VOICEs, respectively. Figure 2 shows an overview of these different objects. 4 4 From the user interface point of view, CHORD, CHORD- SEQ and VOICE objects’ read/write accessors gather pitches, velocities, durations, etc. as separate lists of values, offering an orthogonal approach to this underlying hierarchical structure.