The Hierarchical Audio Construction Kit: Composition and Design
Judith Shatin, Associate Fellow
McIntyre Department of Music, University of Virginia
Unless otherwise noted, items published by the Institute for Advanced Technology in the Humanities are copyrighted by the authors and may be shared in accordance with the Fair Use provisions of U.S. copyright law. Redistribution or republication on other terms, in any medium, requires express written consent from the author(s) and advance notification of the publisher.
Hack Development, 1995
The project for which I received support during 1994-95 was the continued development of Hack, or Hierarchical Audio Construction Kit, a computer music language developed at the Virginia Center for Computer Music by Pete Yadlowsky. Mr. Yadlowsky, technical director of the Virginia Center for Computer Music and a staff member at IATH, has worked closely with me in developing compositional and pedagogical applications. The goals of our effort were multiple and will be described in the following categories:
- Compostional Applications
- Pedagogical Usage
- Program Development.
The first composition to be developed using Hack was my 1-1/2 hour oratorio COAL, scored for chorus, Appalachian ensmeble and electronics. Based on the lore and culture of coal mining in West Virginia, COAL was commissioned by Shpherd College of West Virginia through the Lila Wallace-Readers Digest Arts program as part of a two-year retrospective of my work. For this composition, I harvested sounds in the Eagle Nest coal mine in Twilight, West Virginia. These sounds were transfered to the NeXT using an analogue/digial converter and then processed using Hack. Two examples are described here. The first, in which an explosion was created by processing the sounds of a pick-axe as well as sounds of prerecorded explosions, was created in Hack proper. The second, in which a pick-axe sound is filtered until it resmebles a banjo, was created using Lisp functions. To play the associated sound file, click on its name.
The lyrics for these soungs and a recording of them can be examined as well:
- Oh God, Why? (coming soon)
- We Like Minin Coal (coming soon)
I am now at work on a new composition using Hack. Titled
Elijah's Chariot, it is scored for string quartet and electronics
and was commissioned by the Kronos Quartet. Additional Lisp functions
have been developed for this piece. A particularly useful one is
tempo.cl, used to create a tempo contour for a group of note events.
Tempo.cl as well as a resultant sound file may also be examined. This
functionality will become a part of a library of functions upon which
users may draw.
Hack was the main language taught in MUSI 540, Computer Music 2.
During the fellowship period I began the process of revising and adding
to the tutorials for Hack. The development of the tutorials is an
ongoing process and is by no means complete. However, these models
enable users to gain experience and to develop their own scripts.
In addition to teaching Hack fundamentals, I encouraged the
students to generate hack scripts with functions in Common Lisp. As we
continue to develop a Lisp function library and to develop pedagogical
tools for teaching it, I expect students to become more involved in this
aspect of compositional structure. Two students in the engineering
school will be involved in Hack projects for their senior theses.
The students in MUSI 540 created final compositions using Hack. A
selection of these works were programmed in a public recital at Garrett
Hall. To hear examples, click on any of the following sound files:
Refinements to Hack
The kernel of Hack has been rewritten for maximum efficiency
during the 1994-95 year.
Another ongoing goal is to speed up the computations involved in Hack
runs. ALthough we were given access to an IBM RS/600 and to the SP-2, we
were faced with a major hurdle: the lack of an Objective-C compiler on
IBM equipment. After a great deal of work, Pete Yadlowsky determined
that by using socket programming he would be able to develop a
cross-platform method of running Hack scripts. Moreover, he found a way
to rewrite Hack in C++ without a massive loss of functionality. This
project is underway and the expected completion date is August 1995.
Development of a Lisp front-end for Hack
We have begun the development of a library of Lisp functions that
generate Hack scripts, enabling the composer to algorithmically generate
groups of events with desired chracteristics rather than individually
specifying each note event. This has two important results: it is much
more efficient to be able to generate groups of note events; and it
enables the composer to create note events that would otherwise not
occur. For instance, I have created cue contours according to
distribution functions that I never imagined using in my acoustic
IATH WWW Server
Last Modified: Friday, 29-Jul-2005 13:01:05 EDT