In lieu of an abstract, here is a brief excerpt of the content:

HIERARCHICALMUSIC SPECIFICATION LANGUAGE by Phil Burk, LarryPolanskyand David Rosenboom. Frog Peak Music, Box A-36, Hanover,NH 03755, U.S.A. $295.00 Reviewed by PeterM. Yadlowsky,Academic Computing Center, Universityo f Virginia, Charlottanrille,VA22903, U.S.A.E-mail:pmy@vi@nia.edu Most Musical Instrument Digital Interface (MIDI)-orientedmusic software is intended for persons unskilled in computer programming. Many musicians and composersworkingwith computer-aidedmusic are best served by such ‘plug-and-play’programs, which are easy to use and produce results quickly. There are many such programsavailable,ranging in capabilityfrom toys to fully professional systems. However, each of these programs ,no matter how capable, is necessarily infused with the biases of its designer or its perceived market, with little or no allowance for userdesigned expansion or enhancement. HierarchicalMusic Specification Language (HMSL)is different. It is an extensible computer-programming languagein which a composer can express and implement musical ideas and processes. Most important, the composer can add features to HMSL as needed. HMSL is openended and customizableand is not limited to MIDI; it can control any piece of equipment that might be plugged into the computer. There is, of course, a catch: in order to use HMSL effectively, the composer should be a fairlycompetent programmer --or know one. The idea behind HMSL is to provide programming composersand musicianswith an interactivewoxk environment that providesa set of general elements,yet encourages and facilitatescustomization as the needs of users grow. Thus, HMSL comes small from the factory but expandsvirtuallyinfinitelyto accommodate the imagination and ambitions of the individual user and the HMSL community. Technically,HMSL is an objectoriented dialectof the Forth programming language,with a wealth of tools for the creation, management and schedulingof musical (and other types oQ eventsand processes. Composerswho want to learn HMSL should begin by learning Forth, then the basics of obiect-orientedpromamming and, finally,HMSL itself.The HMSL Reference and User Manual contains many short tutorials and illustrativeexamples that will both brief the experienced programmer and serve as a fun introduction for the beginner through a learn-bydoing approach. Central to HMSL’s structure and function is the notion of hierarchy, i.e. a chain of command from higher, containing entities to subordinates or constituents.Particularlyrelevant to HMSL is the analogy of the orchestra. An orchestra consists of musicians, each of whom plays an instrument and reads from a score. Each musician has exclusiveuse of his or her instrument and score.The orchestra’s conductor, in turn, directs the orchestra , setting the tempo, indicating changes in dynamicsand so forth. HMSL operates in a somewhatsimilar fashion.The composer arranges multidimensional ‘shapes’,analogous to scores. (Afamiliar musical ‘shape’ might use one dimension for melody, one for rhythm, one for harmony, one for articulation.The generalization of the ‘shape’encouragesless familiar uses aswell.) These shapes are assigned to ‘players’,who are also a s signed ‘instruments’.These players can then be placed in ‘collections’,and these collections placed into larger collections (sectionswithin orchestras, perhaps). Altogether, there are about eight major classes of hierarchy constituents , each of which specializesin a particular type of behavior. In addition , the user can create custom classes,either derived from existing ones or designed from scratch. Another important aspect of HMSL is that of interaction. While HMSL is telling ‘players’to play, it is also listeningand responding to what it ‘hears’.HMSL can read data from MIDI devices (e.g.an instrument’s keyboard),from activity on the computer ’s screen (e.g. clicking a button with the mouse), from cues generated within the HMSL program itself or from any device attached to the computer. HMSL comeswith a couple of screen displays for interactive control via the computer’s mouse, and the user can design custom displays. HMSL’scapacityfor directed response to any detectable stimulus,combined with its hierarchical morphology,makes it ideal for live human-machine collaborativeperformance aswell as composition and HMSL runs on Commodore Amiga and Apple Macintosh computerswith at least 1 megabyte of memory. Some features of the current HMSL release include: graphic objectsfor the design of custom screens,a score entry system,a multitrack MIDI sequencer, standard MIDI-file support, userdetermined scheduling (timing),including event buffering, support of Amiga local sound, support...

pdf

Share