PWGLSynth: A Visual Synthesis Language for Virtual Instrument Design and Control
PWGLSynth: A Visual Synthesis Language for Virtual Instrument Design and Control
复制标题
PWGLSynth:用于虚拟仪器设计和控制的可视化合成语言
DOI:
10.1162/0148926054798223
复制
发表时间:
2005
影响因子:
--
通讯作者:
Mika Kuuskankare
中科院分区:
文献类型:
--
作者:
Mikael Laurson;Vesa Norilo;Mika Kuuskankare
Real-time sound synthesis has recently become more powerful due to advances in low-cost hard-ware. This evolution has opened new possibilities to combine high-level, computer-assisted composi-tion 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 enti-ties. 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; Vaili-maki et al. 2003, 2004). Our synthesizer was originally written as a PW user library. It consisted of a collection of C subrou-tines 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 (Com-mon 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 ap-proach, 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 prototyping and interactive listening. Second, the final-ized 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 …