HMSL Hierarchical Musical specification Language (HMSL) is a computer language designed for music composition and performance. Unlike most music software, HMSL has no preconceived aesthetic bias. The composer may experiment freely with musical form and style. There is no such thing as a typical HMSL piece, just as there is no such thing as a typical English novel or French poem.
HMSL was co-authored by Phil Burk, Larry Polansky and David Rosenboom and was written in the Forth programming language. The Forth code that constitutes HMSL is included on disk, allowing the user to extend and customize HMSL itself. It is in this spirit of information exchange that HMSL has attracted a society of composers who are themselves partially responsible for HMSL's evolution.
The HMSL composer may use a variety of standard and non-standard musical media, HMSL's MIDI toolbox allows the user to input music live from a MIDI keyboard or any other MIDI input device. HMSL can send MIDI to external devices as well. System exclusive libraries for a variety of synthesizers are freely shared by the HMSL community. The Amiga version can access this computer's audio hardware, HMSL can play any pre-recorded Amiga audio sample, However, a number of pieces have been written which create and dynamically change their own Amiga audio samples. MIDI and Amiga local sound are but two of the many ways that HMSL can interface to the outside world. HMSL's Virtual Device Interface (VDI) lets the composer write custom 'interpreters' that access low level drivers to interface to any external electronic or electro-mechanical hardware. Once installed the machine level details of these interpreters are nicely hidden, allowing the composer to concentrate on a higher level of musical organization.
HMSL's strength lies in its unbiased generality and its powerful object-oriented programming environment. While it is possible to use HMSL exclusively as a MIDI sequencer/recorder, this would do an injustice to its open-ended design. Potential users should realize that they will have to learn how to program in Forth to fully utilize HMSL's capabilities. The HMSL manual has a tutorial to get the novice started in Forth. Soon there after, the user will be wrestling with very real problems in computer science, object-oriented programming, and logic. To help with the steep learning curve, two electronic bulletin boards are available for technical support. These boards are also a great way to informally get in touch with the various composers in the HMSL community. (ND) Nick Didkovski