HMSL is an object-oriented programming language developed over nearly a decade by Larry Polansky, David Rosenboom and Phil Burk. It is designed to help the composer in the real-time computer music composition and performance.

Brief history – In 1980, Polansky and Rosenboom began work on HMSL, which stands for Hierarchical Music Specification Language. The first version, 1.1 for the Amgia Commodore computer, was released in 1983 at the Center for Contemporary Music of Mills College in Oakland. In 1984 Phil Burk is part of the working group and the following year released the 3.0 version that is also extended to Macintosh computers. In particular, with this version, Burk defines an object-oriented programming.[1] HMSL was released with the source code, to allow all users to customize and improve work. Although over the years have succeeded different versions, the structure of HMSL, on the whole, has remained consistent to that created since 1980.

Real time – The researchers set the initial work with the goal to create a tool that was flexible, portable and, most importantly, suitable for use in real time, both in the composition that performative step. This latter aspect has directed the development of language toward accurate directions. From a hardware perspective, for example, HMSL was first thought to work with 16-bit processors introduced in the eighties. Motorola 68000 processors were used as host processors, and the Forth processors, dedicated to the operating system and ODE language, which HMSL was developed. In particular, the Forth processors are particularly suited to real time thanks to their flexibility in controlling the hardware. We find them also at the base of programs such as FORMULA and MASC.[2]

ODE – In addition to Forth, there is another fundamental programming environment in HMSL: ODE (Object Development Environment) which was introduced in 1986 by Phil Burk to create data structures for HMSL. In the following years ODE has been used in every aspect of programming. This language appears as very strong, complete with several utilities, easily accessible and ideally suited for real time. In small part, ODE is based on Smalltalk-80 by the use of concepts such as Class, Object, Message Passing, Inheritance, etc. The syntax, however, is inspired by NEON language, for Macintosh computers, and an early version of Forth. This last aspect determines the main difference compared to Smalltalk, where some low-level structures, such as constants, variables, or simple functions, are considered objects, unlike that in the ODE, which is only used to implement high-level data structures . The most significant aspect of this language, however, is being optimized for musical performances in real time.[2]

Score Entry System – This is one of the most interesting features of those in HMSL. The SES system allows the insertion of data through a method similar to that of the musical tradition. For this reason, we adopt the same names of the notes, the same rhythmic values and so on. The insertion, should be noted, is through a normal desktop computer keyboard.[2]

The graphical approach – In their article, the developers of HMSL, have described this language as an environment WYSWYH: What You See, What You Hear. This is to emphasize the use, within HMSL, of a graphical environment via interfaces that facilitate users access. The latter have the opportunity to manage and manipulate data in real time, acting on the graphic screens dedicated to different functions. To make it even easier to use, then, HMSL has been equipped with graphics libraries, which are also object-oriented, to which users have access to both a macro and micro level, for any customizations.5 Among the graphic screen, for example, there is one dedicated to 16 tracks sequencer, which follows the typical MIDI sequencer, with the difference of being able to customize the graphical interface.

Libraries – For immediate use, HMSL was equipped with a instruments library. These structures are also suitable for subsequent modifications and customizations by users themselves. Within this set are also tools that allow you to use the audio system of the Amiga, at least in early versions, and MIDI tools. This latter, in addition to providing all aspects characteristic of the MIDI standard, also allow you to customize the management of external MIDI controller.

Units – Within HMSL, Robert Marsanyi developed the concept of units, equivalent to Units Generator of Music N. The Units are computer objects (more or less complex, depending on the functions performed) with a graphical interface, which can be linked together as analog synthesizer module, in order to create more complex instruments, just like Music N. There is also another point of contact between Music N and HMSL: Phil Burk, with composer Nick Didkovsky, also used HMSL to generate Csound scores on a Macintosh II computers.[2]

Further developments: JMSL – As mentioned previously, HMSL has been subject to a continuous development over the years. Among other research, should be mentioned that carried out by David Rosenboom, aimed to create a work environment where HMSL could interact with an Electroencephalogram (EEG). Rosenboom, thus, has carried out, updating to information technology, the research already undertaken in the sixties and seventies. Equally important, however, is the work of Didkovsky, in collaboration with Phil Burk (author of JSYN), which led to the birth of JMSL, considered the successor of HMSL.


For this topic I’ve read:

[1] Larry Polansky, Live Interactive Computer Music in HMSL, 1984-1992, Computer Music Journal, Vol. 18 [2], 1994.
[2] Larry Polansky, Phil Burk, David Rosenboom, HMSL (Hierarchical Music Specification Language): A Theoretical Overview, Perspectives of New Music, Vol. 28 [2], 1990.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.