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