2.3 Effects Algorithms The Synthesis ToolKit includes several simple delay-based effects algorithms for reverberation, chorus, flanging, and pitch shifting. The RTDuplex class provides simultaneous realtime sound input and output (when supported by hardware) for realtime effects processing. A simple effects demonstration application and control GUI are provided with the latest version of STK. 3 Realtime Control STK control sources connect to synthesis programs via pipes and sockets, allowing for networked connections, and decoupling audio synthesis from control generation. An input handler, MD2SKINI, converts standard MIDI to SKINI (Synthesis toolKit Interactive Network Interface). Using SKINI, any language, system, or program capable of sending formatted text across a socket can control STK instruments. Wherever possible, STK algorithms share a common set of controllers which are mapped to standard MIDI controllers. This allows voicing and experimentation using Tcl/Tk GUIs, and expressive control using standard MIDI control sources. 3.1 SKINI SKINI was created for the Synthesis Toolkit as a simple text-based extension to MIDI. SKINI supports a unified control interface across multiple platforms, multiple control signal sources such as GUIs of multiple flavors, MIDI controllers and score files, and simple text-based connections between processes on a single machine and across networks. SKINI extends MIDI in incremental ways, specifically in representation accuracy by allowing for floating point note numbers (micro-tuning for example), floating point control values, and double precision time stamps and delta-time values. Further, a text message basis for the control stream is used to allow for easy creation of SKINI files and debugging of SKINI control consumers and providers. Finally, SKINI goes beyond MIDI in that it allows for parametric control curves and functions to be specified and used. This allows continuous control streams to be potentially lower in bandwidth than MIDI (hence part of the name SKINI), yet higher in resolution and quality because the control functions are "rendered" in the instrument and/or in a performer-expert class which controls the instrument. Expressive figures like trills, drum rolls, characteristic pitch bends, heavy-metal guitar hammer-ons, etc. can all be specified and called up using text messages. To support SKINI scorefiles, the ToolKit provides SKINIll.cpp, which parses SKINI control data. 3.2 GUI Support A number of Tcl/Tk control scripts are provided with the STK distribution. Tcl/Tk is a crossplatform scripting language that offers a simple means for creating sliders, radio buttons, etc. which generate control data that can be piped or socketed to an STK application. By formatting these control messages in the form of standard MIDI control messages, MIDI controllers can be exchanged for GUI control enabling real-time expressive synthesis control. 4 Summary The Synthesis ToolKit offers a fast prototyping environment for audio DSP and computer music applications. STK's cross-platform functionality and generic C/C++ development language minimize program obsolescence issues. STK's objectoriented programming structure and "ease of use" design goals make it useful as a teaching aid. And STK's open-source model allows for complete user extensibility. The Synthesis ToolKit is probably not for those that feel the need for GUI wrappers around their programs. But the benefits gained by avoiding such platform-dependent code far outweigh the inconvenience of having to port your algorithms every five years. References Computer Music Journal (1992-1993). Computer Music Journal. Special Issues on Physical Modeling, 16(4) and 17(1). Cook, P. R. (1996). Synthesis ToolKit in C++, Version 1.0. In SIGGRAPH 1996, Course #17 & 18, Creating and Manipulating Sound to Enhance Computer Graphics. Available from ACM SIGGRAPH. Cook, P. R. (1997). Physically informed sonic modeling (phism): Synthesis of percussive sounds. Computer Music J., 21(3):38-49. Mathews, M. V. (1969). The Technology of Computer Music. Cambridge, Massachusetts: MIT Press. Roads, C., editor (1996). The Computer Music Tutorial. Cambridge: MIT Press. - 166 - ICMC Proceedings 1999
Top of page Top of page