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
Mika Kuuskankare
中科院分区:
计算机科学4区
文献类型:
--
作者:
Mikael Laurson;Vesa Norilo;Mika Kuuskankare

文献摘要

被引文献

相似文献

由于低成本硬件的进步,实时声音合成最近变得更加强大。这一发展为联合收割机高级计算机辅助合成环境与实时声音合成的结合开辟了新的可能性。计算机辅助作曲环境,如PatchWork(PW; Laurson 1996)和Open-Music(OM; Assayag et al. 1999),主要用作处理导致声学乐器材料或乐谱的作曲问题的非实时工具。反过来,声音合成通常用于即兴实时系统或在现场电子设备的帮助下增强乐器。这一类的流行例子是Max/MSP(Puccillo 1988; Zicarelli 1998)和Pd(Puccillo 1996)。PWGLSynth(Laurson and Norilo 2003)可以被看作是在这些以前被视为独立实体的世界之间建立桥梁的一种尝试。PWGLSynth可以用作通用合成引擎,或者音乐符号可以作为生成声音合成控制信息的起点。后一种方法已被广泛用于控制乐器的物理模型(例如,参见Laurson et al. 2001; Vaili-maki et al. 2003,2004)。我们的合成器最初是作为PW用户库编写的。它由一组C子程序和一组可视框组成,可在PW环境中用于定义声音合成补丁。最近,PW被重写,并产生了一种新的视觉语言PWGL(Laurson和Kuuskankare 2002 b)。与PW一样,PWGL也是用Common Lisp和CLOS(Common Lisp Object System)编写的。PW和PWGL的主要区别之一是后者的图形引擎是用OpenGL编写的,在重写过程中,我们还决定更新系统的合成部分。最重要的变化是使用C++而不是C。C++语言允许我们使用面向对象的ap-proach,从而产生一个系统,其中新的合成框可以设计在一个更灵活的方式比以前。我们还从以前的系统中删除了几个瓶颈,因此当前版本比旧版本快得多。建立和控制仪器模型可以分为三个主要问题。第一,应当能够以有效和模块化的方式执行文书。仪器设计是一个交互式的过程,在这个过程中,对组件进行测试和改进,直到获得满意的结果。这个阶段需要一个允许快速原型和交互式倾听的系统。第二,必须用一些令人信服的控制材料来测试最终确定的仪器。这个阶段需要定义概念上重要的控制参数,允许人们模仿各种演奏风格。最后,控制材料必须制作,允许在音乐背景下进行测试。我们解决这部分问题的方法是使用一个音乐符号系统,称为表达符号包,或ENP(Kuuskankare和Laurson 2002),以生成控制数据。ENP是用Common Lisp、CLOS和OpenGL编写的,目前是PWGL的一个组成部分。用户被授予对ENP的基本音乐结构的完全访问权。这种紧密的集成在我们的系统中至关重要,它允许用户以独特的方式将联合收割机乐谱和声音合成相结合。本文概述了我们的系统,也在单独的文章中进行了描述(Laurson和Kuuskankare 2002 a,2003; Laurson和Norilo 2003,2004)。这些文章已经过修订,它们大致组成了本书的前三部分。
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 …