Home Information Classes Download Usage Mail List Requirements Tutorial
The top level distribution contains the following directories:
This release of STK comes with four separate "project" directories:
__LITTLE_ENDIAN__
preprocessor definition to your compiler. The demo project will compile without realtime support, allowing the use of SKINI scorefiles for input control and output to a variety of soundfile formats. The following classes cannot be used without realtime support: RtAudio, RtWvIn, RtWvOut, RtDuplex, RtMidi, Socket, Thread, TcpWvIn, TcpWvOut. Because of this, it is not possible to compile the effects, ragamatic, and most of the examples projects for non-realtime use.
__LINUX_OSS__
or __LINUX_ALSA__
preprocessor definitions, which are used to select the underlying audio/MIDI system API. Realtime programs must also link with the pthread
library. When using the ALSA API, it is also necessary to link with the asound
library. In addition, the __LITTLE_ENDIAN__
preprocessor definition is necessary if compiling on a little-endian system. Assuming your system has the GNU Makefile utilities installed, typing make
within a particular project directory will initiate the compilation process. The Makefile
will have to be modified to change the default audio/MIDI system API and for big-endian processors. Special support exists under Linux for the MIDIator serial MIDI device, enabled using the __MIDIATOR__ preprocessor definition (together with either the __LINUX_ALSA__ or __LINUX_OSS__ definitions). See the README-Linux file for further system configuration information.
__IRIX_AL__
preprocessor definition and linkage with the audio
, md
, and pthread
libraries. If your system has the GNU Makefile utilities installed, typing make
(or gmake
) within a particular project directory will initiate the compilation process. If your system does not have the GNU Makefile utilities, you should first try to download and install them. If this is not possible, a generic Makefile is provided with the demo project (Makefile.sgi). It can be invoked by typing make -f Makefile.sgi
within that project directory. STK 4.0 is confirmed to compile using CC version 7.30. There may be problems with old compiler versions.
__WINDOWS_DS__
preprocessor definition and linkage with the dsound.lib
, winmm.lib
, and Wsock32.lib
libraries. In addition, the __LITTLE_ENDIAN__
preprocessor definition is necessary for all Windows systems. A distribution of the release is available with precompiled binaries for all the projects. In order for these binaries to function properly, your system must have the DirectX 5.0 (or higher) runtime libraries installed (available from Microsoft). Further, the effects project requires that your soundcard and drivers provide full duplex mode capabilities. Visual C++ 6.0 project file are provided in each project directory as well should you wish to compile your own binaries. It is important to link with the non-debug libraries when compiling "release" program versions and debug libraries when compiling "debug" program versions.
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:
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.
The demo project demonstrates the behavior of all the distributed STK instruments. The instruments available with this release include:
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.
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:
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:
wish < tcl/Physical.tcl
in another DOS shell. 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.
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. |