The following article was first published in the 1989 Conference Proceedings of the Small Computers in the Arts Network (SCAN) in Philadelphia, PA. No publication or redistribution of any kind is permitted without the express written permission of the author.

Nick Didkovsky, September 1989

This article describes the integration of computer-generated music composition into one composer/programmer's compositional process. The computer program's specifications are also briefly discussed.

Doctor Nerve is a seven piece band based in New York City. The band has gained a reputation for playing hard-edged atonal music of an adventurous and experimental nature. I have been composing for Doctor Nerve for over six years, and have recently introduced computer generated composition to the project. In February of 1989 I began work on a program called DrNerve.hmsl. Coded in Hierarchical Music Specification Language on the Commodore Amiga, DrNerve.hmsl generates musical compositions orchestrated specifically for Doctor Nerve's seven instruments: soprano saxophone, trumpet, bass clarinet, vibraphone, electric guitar, electric bass, and drums. This article describes both the program's specifications and its role in the overall creative process.


My interest in producing DrNerve.hmsl was primarily to give myself a compositional shock. I suspected in advance that the resultant music would exhibit a kind of innocent freshness, unpredictability, and perhaps a curious mixture of clumsiness and precision, as the program would consist of only a limited framework of instructions, devoid almost entirely of world knowledge. Throughout the process of developing the program, I resolved to stay alert to programming errors whose (normally unacceptable) behavior could actually constitute a valid compositional direction. I suspected that the completed program would generate music that my own prejudices could have overlooked, and I was interested in seeing how much of the resultant music would work its way into my own personal aesthetic.

The Development Environment

DrNerve.hmsl was coded in Hierarchical Music Specification Language (HMSL) on a Commodore Amiga personal computer. HMSL is an object-oriented programming language for music experimentation, developed by Phil Burk, Larry Polansky, and David Rosenboom at the Center for Contemporary Music at Mills College. DrNerve.hmsl is coded entirely in HMSL and the language JForth, of which HMSL is an extension.

Since HMSL is fully conversant with MIDI (a communications protocol which affords a computer the ability to connect to and play a synthesizer), I could audition the program's results immediately, without ever leaving the programming environment. The hardware used for playback included a MIDI interface and the Kawai K1 Synthesizer Module . The K1 is a low cost polyphonic synthesizer, with enough voices to simulate all seven musicians in Doctor Nerve.

The combination of HMSL, JForth, the Amiga, and the Kawai K1 constituted a very fast, interactive development environment. Over the course of a few weeks, the first working version of DrNerve.hmsl was completed. At that point, my attention was directed away from programming and focused on the actual realization of some compositions.

The Composition Development Process

The complete realization of a composition can be factored into four stages.

Stage One

DrNerve.hmsl is loaded and compiled into the HMSL environment. Each run of the program takes about thirty seconds of computer time, producing a piece of music from 1 to 3 minutes in length. I typically run the program a number of times, until a piece strikes me favorably.

Stage Two

If a particular resultant piece contains material worth developing, the entire piece is stored to floppy disk in a file format recognized by most Amiga music software products. This acronym for this file format is SMUS, or Simple MUsic Score. The choice for adopting the SMUS file format was motivated by the need to edit the rough score generated by DrNerve.hmsl, and to print the final score for live musicians to read.

Stage Three

The SMUS file is loaded into Deluxe Music Construction Set (DMCS), a commercial software product which allows the composer to edit a musical score in conventional musical notation, much in the way a writer would use a word processor to edit and polish a written work. With DMCS, I can rearrange, edit, and develop the ideas originally generated by DrNerve.hmsl. This process of rearrangement can last anywhere from a few minutes to many days. (On one occasion, DrNerve.hmsl generated a piece which I felt required absolutely no rearrangement or editing whatsoever, and is currently in the band's repertoire.)

I follow no rules or constraints as to the amount of rearrangement I may bring to bear upon a score. However, I have never felt the need to introduce additional musical material to a score, and find myself concerned primarily with the simple acts of deleting excessive material, cutting and pasting musical passages, inserting repeats, and occasionally transposing portions of the score.

Stage Four

Once I feel that a composition is completed, the entire score as well as its individual parts are printed to a dot matrix printer directly from DMCS. Although DMCS only prints in low resolution, I find that xeroxing these parts with an 80-90% reduction results in a clean, crisp, readable score. Finally, I make cassette tapes of the composition for each of Doctor Nerve's musicians. Since DrNerve.hmsl typically generates music which is almost completely insensitive to technical difficulty, these tapes speed the musicians' learning process tremendously .

Program Overview

DrNerve.hmsl should not be confused with "expert system" software, nor is it a "rule-based" program. To the first distinction, the program functions primarily to generate novel musical material quickly and without prejudice. It does not solve problems posed by the user, nor is it concerned with generating solutions that fit the constraints of a changing environment. To the second distinction, the program does not consult a data base of rules, which might have been used to describe my stylistic preferences or to represent a summary of musical decisions I have made in the past.

DrNerve.hmsl proceeds much more directly, using serial techniques, transformation algorithms, and chance operations. As such, it can generate large quantities of music very quickly, as it works closely to the domain of pure mathematics. Due to its use of chance, it is highly unlikely that any two runs of the program will produce identical results. Running the program repeatedly invokes the image of a band improvising, always trying new ideas.


DrNerve.hmsl has contributed a tremendous vocabulary to my compositional work. At times, it has bombarded me with almost too much information too quickly. I find that my principle engagement with the program is one of filtering, or eliminating excessive material from an idea to reveal its essential skeleton.

The compositional shock was delivered in full force. I was repeatedly presented with ideas that I felt should have been obvious to me, but which had never been realized. My attention will now turn toward digestion and assimilation.

Back to Doctor Nerve Main Menu.