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

  • PWGLSynth:A Visual Synthesis Language for Virtual Instrument Design and Control
  • Mikael Laurson, Vesa Norilo, and Mika Kuuskankare

Real-time sound synthesis has recently become more powerful due to advances in low-cost hardware. This evolution has opened new possibilities to combine high-level, computer-assisted composition environments with real-time sound synthesis. Computer-assisted composition environments, such as PatchWork (PW; Laurson 1996) and Open Music (OM; Assayag et al. 1999), have primarily been used as non-real-time tools that deal with compositional problems that result in material or scores for acoustical instruments. Sound synthesis, in turn, has often been used within improvisational real-time systems or to enhance musical instruments with the help of live electronics. Popular examples of this category are Max/MSP (Puckette 1988; Zicarelli 1998) and Pd (Puckette 1996).

PWGLSynth (Laurson and Norilo 2003) can be seen as an attempt to make a bridge between these worlds that were previously seen as separate entities. PWGLSynth can be used as a general-purpose synthesis engine, or music notation can be a starting point to generate control information for sound synthesis. The latter approach has been extensively used to control physical models of musical instruments (see for example Laurson et al. 2001; Välimäki et al. 2003, 2004).

Our synthesizer was originally written as a PW user library. It consisted of a collection of C subroutines and a collection of visual boxes that could be used within the PW environment to define sound synthesis patches. Recently, PW has been rewritten and has resulted in a new visual language called PWGL (Laurson and Kuuskankare 2002b). Like PW, PWGL is written in Common Lisp and CLOS (Common Lisp Object System). One of the main differences between PW and PWGL, however, is that the graphics engine of the latter is written in OpenGL. During this rewriting process, we also decided to renew the synthesis part of the system. The most important change was to use C++ instead of C. The C++ language allows us to use an object-oriented approach, resulting in a system where new synthesis boxes can be designed in a more flexible manner than before. We also removed several bottlenecks from the previous system, so the current version is significantly faster than the old one.

Building and controlling instrument models can be divided into three main problems. First, it should be possible to implement instruments in an efficient and modular way. Instrument design is an interactive process in which components are tested and refined until satisfactory results are achieved. This phase requires a system that allows fast proto-typing and interactive listening. Second, the finalized instruments must be tested with some convincing control material. This phase requires the definition of conceptually important control parameters that allow one to mimic various playing styles. Finally, control material must be produced that allows testing in a musical context. Our approach to this part of the problem is to use a music notation system called Expressive Notation Package, or ENP (Kuuskankare and Laurson 2002), to generate control data. ENP is written in Common Lisp, CLOS, and OpenGL and is currently an integral part of PWGL. The user is granted full access to the underlying musical structures of ENP. This close integration is of primary importance in our system, and it allows users to combine musical scores and sound synthesis in a unique way.

This article gives an overview of our system that has been also described in separate articles (Laurson and Kuuskankare 2002a, 2003; Laurson and Norilo 2003, 2004). These articles have been revised, and together they comprise roughly the first three sections of this article. The fourth section, "Mapping of Control Information," has not been published [End Page 29] elsewhere and thus represents our latest developments in our research.

Our work is strongly related to the "Music-N" tradition, in which the problem of combining a score and instruments has been investigated for several decades. Other related work includes, for example, the FORMES environment (Rodet and Cointe 1984), which allows scheduled processes to generate envelopes. The Swedish "Rulle" system (Friberg 1991), in turn, has affected our performance rule scheme to modify score information. Finally, some more recent textual synthesis...

pdf

Share