Home   Information   Classes   Download   Usage   Mail List   Requirements   Tutorial


Usage Documentation


Directory Structure:

The top level distribution contains the following directories:

This release of STK comes with four separate "project" directories:

  1. The demo project is used to demonstrate nearly all of the STK instruments. The demo program has been written to allow a variety of control input and sound data output options. Simple graphical user interfaces (GUIs) are also provided.

  2. The effects project demonstrates realtime duplex mode (simultaneous audio input and output) operation, when available, as well as various delay-line based effects algorithms.

  3. The ragamatic project is just cool. Fire it up and be enlightened.

  4. The examples project contains several simple programs which demonstrate audio input/output, as well as the use of the audio internet streaming classes.

Compiling:

Control Data:

All STK programs in this distribution take input control data in the form of SKINI or MIDI messages only. The Messager class unifies the various means of acquiring control data under a single, easy to use set of functions. The way that SKINI messages can be sent to the programs is dependent upon the operating system in use, as well as whether the program is running in realtime or not. In general, it is possible to:

  1. Redirect or pipe SKINI scorefiles to an executable.
  2. Pipe realtime SKINI input messages to an executable (not possible under Windows95/98).
  3. Socket realtime SKINI input messages to an executable.
  4. Acquire realtime MIDI messages from a MIDI port on your computer.

Tcl/Tk graphical user interfaces (GUI) are provided with this distribution which can generate realtime SKINI messages. Note that the Messager class allows multiple simultaneous socket client connections, together with MIDI and/or piped input. The Md2Skini program (in the demo directory) is mostly obsolete but can be used to create SKINI scorefiles from realtime MIDI input.

Demo: STK Instruments

The demo project demonstrates the behavior of all the distributed STK instruments. The instruments available with this release include:

Demo: Non-Realtime Use

See the information above with respect to compiling STK for non-realtime use.

In non-realtime mode, it is assumed that input control messages are provided from a SKINI scorefile and that audio output is written to a soundfile (.snd, .wav, .aif, .mat, .raw). A number of SKINI scorefiles are provided in the scores directory of the demo project. Assuming a successful compilation of the demo program, typing:

cat scores/bookert.ski | demo BeeThree -w myfile.wav

or (on WindowsXX and/or Unix)

demo BeeThree -w myfile.wav < scores\bookert.ski

from the demo directory will play the scorefile bookert.ski using the STK BeeThree instrument and write the resulting audio data to a WAV formatted soundfile called "myfile.wav". Typing demo without any arguments will provide a full program usage description.

Demo: Realtime Use

STK realtime audio and MIDI input/output and realtime SKINI control input via socketing support is provided for Linux, SGI, and Windows95/98/2000/XP operating systems. STK realtime SKINI control input via piping is possible under Linux, SGI, and Windows2000/XP only.

Control input and audio output options are typically specified as command-line arguments to STK programs. For example, the demo program is invoked as:

demo instrument flags

where instruments include those described above and flags can be any or all of:

The <-ip> and <-is> flags must be used when piping or socketing realtime SKINI control data to an STK program. The <-im> flag must be used to read MIDI control input from your MIDI port. Note that you can use all three input types simultaneously.

Assuming a successful compilation of the demo program, typing:

cat scores/bookert.ski | demo BeeThree -or

or (on WindowsXX and/or Unix)

demo BeeThree -or < scores\bookert.ski

from the demo directory will play the scorefile bookert.ski using the STK BeeThree instrument and stream the resulting audio data in realtime to the audio output channel of your computer. Typing demo without any arguments will provide a full program usage description.

Realtime Control Input using Tcl/Tk Graphical User Interfaces:

There are a number of Tcl/Tk GUIs supplied with the STK projects. These scripts require Tcl/Tk version 8.0 or later, which can be downloaded for free over the WWW. On Unix and Windows2000/XP platforms, you can run the various executable scripts (e.g. StkDemo.bat) provided with each project to start everything up (you may need to symbolically link the wish80 executable to the name wish). The PhysicalDemo script just implements the following command-line sequence:

wish < tcl/Physical.tcl | demo Clarinet -or -ip

On WindowsXX and Unix platforms, the following operations are necessary to establish a socket connection between the Tcl/Tk GUI and the STK program:

  1. Open a DOS shell and start the STK program with the -is flag (ex. demo Clarinet -or -is).
  2. Open the Tcl/Tk GUI (e.g. tcl/Physical.tcl) by double-clicking on it, or type wish < tcl/Physical.tcl in another DOS shell.
  3. Establish the socket connection by selecting Socket under the Communications menu item in the Tcl/Tk GUI.

Note that it is possible to specify a hostname when establishing the socket connection from the socket client. Thus, the STK socket server program and the Tcl/Tk GUI need not necessarily reside on the same computer.

Realtime MIDI Control Input:

On all supported realtime platforms, you can direct realtime MIDI input to the STK Clarinet by typing:

demo Clarinet -or -im


The Synthesis ToolKit in C++ (STK)
©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.