MusicBox - a new composition method
Wiggen’s principal contribution to composition was software that allowed the composer to work primarily with compositional logic and structure, and to step back from the sounding pitch or recorded timbre. He found that a type of abstraction was necessary for a clear focus on the structures, and also to not have cumbersome data entry limit compositional ideas. While building on several concepts from earlier EMS programs, he wanted a collection of functions that could be connected in multiple ways, and that would allow the user to control execution by selecting functions interactively. As apparent in his drawn diagrams, Wiggen imagined these functions as graphic objects.
(Knut Wiggen, photographed during a presentation of MusicBox. At the bottom of the montage, a short stretch of programmed paper tape is copied in. Photo: Bo-Aje Mellin)
A composition in MusicBox was a network of interconnected boxes that described the control signals for the electronic equipment at EMS. Each box contained a mathematical function that would operate on the input and provide output, whereby the output message would be the input for the next box in the network flow. The originality of this approach was in the data model of the composition, which was then “simulated” through activating (instantiating) the model components. This modelling is essential in object-oriented programming, where the composition is ‘tested’ under different conditions. The composition process was quite different from EMS-1, where the composer needed to describe each event line by line.
A key feature was the ease of encapsulation where micro boxes could be combined into macro boxes. The encapsulations could be reused and further encapsulated, and increasingly complex events could be produced without notating each pitch. When using a layer or two of encapsulation, it would be very difficult to have an exact idea of the resulting sound, and the composer had then effectively taken a step away from the concrete sounding result while working with the compositional concept. The specifications of the inputs for the boxes would be based not on the emergent qualities of the sound, but in logic. Logic had become the tool in the simulations of the composition rules or models.
When searching for a software environment where MusicBox could be developed, Wiggen considered the object-oriented language Simula that had recently been launched (1964) at the University of Oslo by Kristen Nygård and Ole Johan Dahl. Simula has often been credited as being the first object-oriented programming language in the world, and was already popular when work on MusicBox commenced. However, Simula could not address the EMS hardware, and MusicBox was thus realized in Fortran. After the programmer David Fahrland had finished the first version of MusicBox in 1971 and returned to the USA, Kaj Beskow programmed the functionality for moving sound in four channels, based on an article by John Chowning from 1971. Zaid Holmin joined the development in 1972, and added better features for making macros.
Several of Wiggen’s sketches (on paper) for boxes and compositions have been preserved, and may be found at the National Library of Norway. Although Wiggen published the ideas behind MusicBox in 1972, it was not made available to composers; Wiggen felt that he needed to insure that the program worked as well as he had hoped before he would release it in the open – and the proof was in the music. He composed several studies, and became convinced that he could make music with MusicBox, and not only sounds.
During the late 1990s and early 2000s, Dag Svanæs at the Norwegian University of Science and Technology advised students Håvard Wigtil and Harald Stendal in rewriting the software to object-based Pascal, and then to Java. Nils Tesdal and Sigurd Stendal also participated in this effort, which was done in close cooperation with Wiggen. Since that time, Zaid Holmin has expanded the number of boxes and moved the room siimulation to an external sound card. The latest version of MusicBox (2013) runs on Microsoft Windows XP. An 8-channel version has also been envisioned.