Release 4.1 tarball

This commit is contained in:
Gary Scavone
2013-09-29 23:35:44 +02:00
committed by Stephen Sinclair
parent 71e5c027fb
commit f25eb5c3d7
269 changed files with 12509 additions and 45583 deletions

View File

@@ -1,17 +1,17 @@
<HTML>
<HEAD>
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"><P>
<a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="information.html">Information</a> &nbsp; <a class="qindex" href="classes.html">Classes</a> &nbsp; <a class="qindex" href="download.html">Download</a> &nbsp; <a class="qindex" href="usage.html">Usage</a> &nbsp; <a class="qindex" href="maillist.html">Mail List</a> &nbsp; <a class="qindex" href="system.html">Requirements</a> &nbsp; <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
<HTML>
<HEAD>
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"><P>
<a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="information.html">Information</a> &nbsp; <a class="qindex" href="classes.html">Classes</a> &nbsp; <a class="qindex" href="download.html">Download</a> &nbsp; <a class="qindex" href="usage.html">Usage</a> &nbsp; <a class="qindex" href="maillist.html">Mail List</a> &nbsp; <a class="qindex" href="system.html">Requirements</a> &nbsp; <a class="qindex" href="links.html">Links</a> &nbsp; <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.2.8.1 -->
<a name="usage"><h2>Usage Documentation</h2></a>
<ul>
<li><a href="usage.html#directory">Directory Structure:</a><li><a href="usage.html#compiling">Compiling:</a><li><a href="usage.html#control">Control Data:</a><li><a href="usage.html#instruments">Demo: STK Instruments</a><li><a href="usage.html#nort">Demo: Non-Realtime Use</a><li><a href="usage.html#rt">Demo: Realtime Use</a><li><a href="usage.html#tcl">Realtime Control Input using Tcl/Tk Graphical User Interfaces:</a><li><a href="usage.html#midi">Realtime MIDI Control Input:</a></ul>
<li><a href="usage.html#directory">Directory Structure:</a><li><a href="usage.html#compiling">Compiling:</a><li><a href="usage.html#control">Control Data:</a><li><a href="usage.html#instruments">Demo: STK Instruments</a><li><a href="usage.html#nort">Demo: Non-Realtime Use</a><li><a href="usage.html#rt">Demo: Realtime Use</a><li><a href="usage.html#tcl">Realtime Control Input using Tcl/Tk Graphical User Interfaces:</a><li><a href="usage.html#midi">Realtime MIDI Control Input:</a><li><a href="usage.html#polyphony">Polyphony:</a></ul>
<hr>
<p>
<a name="directory"><h2>Directory Structure:</h2></a>
@@ -20,11 +20,11 @@
The top level distribution contains the following directories:
<p>
<ul>
<li> The <em><b>src</b></em> directory contains the source .cpp files for almost all the STK unit generator and algorithm classes.
<li> The <em><b>src</b></em> directory contains the source .cpp files for all the STK unit generator and algorithm classes.
<p>
<p>
<li> The <em><b>include</b></em> directory contains the header files for almost all the STK unit generator and algorithm classes.
<li> The <em><b>include</b></em> directory contains the header files for all the STK unit generator and algorithm classes.
<p>
<p>
@@ -63,15 +63,30 @@ This release of STK comes with four separate "project" directories:
<p>
<ul>
<li><b>Generic (non-realtime):</b> Most STK classes are operating system <em>independent</em> and can be compiled using any current C++ compiler. STK assumes big-endian host byte order by default, so if your system is little-endian (i.e. Intel processor), you must provide the <code>__LITTLE_ENDIAN__</code> preprocessor definition to your compiler. The <em><b>demo</b></em> project will compile without realtime support, allowing the use of <a class="el" href="classSKINI.html">SKINI</a> scorefiles for input control and output to a variety of soundfile formats. The following classes <em>cannot</em> be used without realtime support: RtAudio, <a class="el" href="classRtWvIn.html">RtWvIn</a>, <a class="el" href="classRtWvOut.html">RtWvOut</a>, <a class="el" href="classRtDuplex.html">RtDuplex</a>, <a class="el" href="classRtMidi.html">RtMidi</a>, <a class="el" href="classSocket.html">Socket</a>, <a class="el" href="classThread.html">Thread</a>, <a class="el" href="classTcpWvIn.html">TcpWvIn</a>, <a class="el" href="classTcpWvOut.html">TcpWvOut</a>. Because of this, it is not possible to compile the <em><b>effects</b></em>, <em><b>ragamatic</b></em>, and most of the <em><b>examples</b></em> projects for non-realtime use.
<li><b>Windows95/98/2000/XP:</b> Realtime support is available using either DirectSound or ASIO audio drivers. For DirectSound support, use the <code>__WINDOWS_DS__</code> preprocessor definition and link with the <code>dsound.lib</code>, <code>winmm.lib</code>, and <code>Wsock32.lib</code> libraries. For ASIO support, use the <code>__WINDOWS_ASIO__</code> preprocessor definition, include all the files in the <code>src/asio/</code> directory (i.e. <code>asio.h,cpp</code>, <code>asiodrivers.h,cpp</code>, ...), and link with the <code>winmm.lib</code>, and <code>Wsock32.lib</code> libraries. In addition, the <code>__LITTLE_ENDIAN__</code> preprocessor definition is necessary for all Windows systems. A distribution of the release is available with precompiled binaries (using DirectSound) 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 <a href="http://www.microsoft.com/directx/">Microsoft</a>). Further, the <em><b>effects</b></em> project requires that your soundcard and drivers provide full duplex mode capabilities. Visual C++ 6.0 project files 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.
<p>
<li><b>Linux:</b> Realtime support is enabled with either the <code>__LINUX_OSS__</code> or <code>__LINUX_ALSA__</code> preprocessor definitions, which are used to select the underlying audio/MIDI system API. Realtime programs must also link with the <code>pthread</code> library. When using the ALSA API, it is also necessary to link with the <code>asound</code> library. In addition, the <code>__LITTLE_ENDIAN__</code> preprocessor definition is necessary if compiling on a little-endian system. Assuming your system has the <a href="http://gnu.cetcol.net.co/">GNU</a> Makefile utilities installed, typing <code>make</code> within a particular project directory will initiate the compilation process. The <code>Makefile</code> 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.
<li><b>WindowsNT:</b> DirectX support for NT is inadequate, so it is not possible to use STK under WindowsNT with realtime DirectX support. It may be possible to use STK under WindowsNT with realtime ASIO support, though this has not been tested.
<p>
<li><b>SGI:</b> Realtime support is enabled with the <code>__IRIX_AL__</code> preprocessor definition and linkage with the <code>audio</code>, <code>md</code>, and <code>pthread</code> libraries. If your system has the <a href="http://gnu.cetcol.net.co/">GNU</a> Makefile utilities installed, typing <code>make</code> (or <code>gmake</code>) 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 <em><b>demo</b></em> project (Makefile.sgi). It can be invoked by typing <code>make -f Makefile.sgi</code> within that project directory. STK 4.0 is confirmed to compile using CC version 7.30. There may be problems with old compiler versions.
<li><b>Unix Systems:</b> A GNU <code>configure</code> shell script is included in the distribution for unix-based systems. From the top-level distribution directory, type <code>'./configure'</code> and the script will create <code>Makefiles</code> in each project directory specific to the characteristics of the host computer. Then from within any given project directory (example <code>demo</code>), type <code>'make'</code> to compile the project. In addition, an STK library can be compiled from within the <code>src</code> directory.
<p>
<li><b>Windows95/98/2000/XP:</b> Realtime support is enabled with the <code>__WINDOWS_DS__</code> preprocessor definition and linkage with the <code>dsound.lib</code>, <code>winmm.lib</code>, and <code>Wsock32.lib</code> libraries. In addition, the <code>__LITTLE_ENDIAN__</code> 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 <a href="http://www.microsoft.com/directx/">Microsoft</a>). Further, the <em><b>effects</b></em> 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.
Several options can be supplied to the <code>configure</code> script to customize the build behavior: <ul>
<li><code>--disable-realtime</code> to only compile generic non-realtime classes <li><code>--enable-debug</code> to enable various debug output <li><code>--enable-midiator</code> to enable native MS-124W MIDI support (linux only) <li><code>--with-alsa</code> to choose native ALSA API support (linux only) </ul>
<p>
<li><b>WindowsNT:</b> I've given up trying to make things work under NT. You'll have to switch to Windows 2000 (which does seem to work). </ul>
In addition, it is possible to specify the location of the STK rawwaves and the STK include path as follows: <div class="fragment"><pre>./configure RAWWAVE_PATH=<font class="stringliteral">"/home/gary/rawwaves/"</font>
./configure INCLUDE_PATH=<font class="stringliteral">"/home/gary/include/"</font></pre></div>
<p>
For novice STK users, the default configuration should be adequate. </ul>
<p>
For those who wish to create their own system-specific <code>Makefiles</code>: <ul>
<li><b>Linux:</b> Realtime support is enabled with either the <code>__LINUX_OSS__</code> or <code>__LINUX_ALSA__</code> preprocessor definitions, which are used to select the underlying audio/MIDI system API. Realtime programs must also link with the <code>pthread</code> library. When using the ALSA API, it is also necessary to link with the <code>asound</code> library. In addition, the <code>__LITTLE_ENDIAN__</code> preprocessor definition is necessary if compiling on a little-endian system. Special support exists under Linux for the MIDIator serial MIDI device, enabled using the <code>__MIDIATOR__</code> preprocessor definition (together with either the <code>__LINUX_ALSA__</code> or <code>__LINUX_OSS__</code> definitions). See the README-Linux file for further system configuration information.
<p>
<li><b>Macintosh OS X:</b> Realtime support is enabled with the <code>__MACOSX_CORE__</code> preprocessor definitions, which incorporates the CoreAudio audio/MIDI API. Realtime programs must also link with the <code>pthread</code> library and the <code>CoreAudio</code>, <code>CoreMIDI</code>, and <code>CoreFoundation</code> frameworks. See the README-MacOSX file for further system configuration information.
<p>
<li><b>SGI:</b> Realtime support is enabled with the <code>__IRIX_AL__</code> preprocessor definition and linkage with the <code>audio</code>, <code>md</code>, and <code>pthread</code> libraries. STK 4.0 (and higher) is confirmed to compile using CC version 7.30. There may be problems with old compiler versions.
<p>
<li><b>Generic (non-realtime):</b> Most STK classes are operating system <em>independent</em> and can be compiled using any current C++ compiler. STK assumes big-endian host byte order by default, so if your system is little-endian (i.e. Intel processor), you must provide the <code>__LITTLE_ENDIAN__</code> preprocessor definition to your compiler. The <em><b>demo</b></em> project will compile without realtime support, allowing the use of <a class="el" href="classSKINI.html">SKINI</a> scorefiles for input control and output to a variety of soundfile formats. The following classes <em>cannot</em> be used without realtime support: <a class="el" href="classRtAudio.html">RtAudio</a>, <a class="el" href="classRtWvIn.html">RtWvIn</a>, <a class="el" href="classRtWvOut.html">RtWvOut</a>, <a class="el" href="classRtDuplex.html">RtDuplex</a>, <a class="el" href="classRtMidi.html">RtMidi</a>, <a class="el" href="classSocket.html">Socket</a>, <a class="el" href="classThread.html">Thread</a>, <a class="el" href="classTcpWvIn.html">TcpWvIn</a>, <a class="el" href="classTcpWvOut.html">TcpWvOut</a>. Because of this, it is not possible to compile the <em><b>effects</b></em>, <em><b>ragamatic</b></em>, and most of the <em><b>examples</b></em> projects for non-realtime use. </ul>
<p>
<a name="control"><h2>Control Data:</h2></a>
@@ -89,7 +104,7 @@ All STK programs in this distribution take input control data in the form of <a
<p>
The <em><b>demo</b></em> project demonstrates the behavior of all the distributed STK instruments. The instruments available with this release include: <ul>
<li><a class="el" href="classClarinet.html">Clarinet</a>: Pretty good physical model of the clarinet <li><a class="el" href="classBlowHole.html">BlowHole</a>: A clarinet physical model with one tonehole and one register vent <li><a class="el" href="classSaxofony.html">Saxofony</a>: A psuedo-conical bore reed instrument which sometimes sounds like a saxophone <li><a class="el" href="classFlute.html">Flute</a>: Pretty good physical model of the flute <li><a class="el" href="classBrass.html">Brass</a>: Not so bad physical model of a brass instrument <li><a class="el" href="classBlowBotl.html">BlowBotl</a>: A basic helmholtz resonator and air jet model <li><a class="el" href="classBowed.html">Bowed</a>: Not hideous physical model of a bowed string instrument <li><a class="el" href="classPlucked.html">Plucked</a>: Yer basic plucked string physical model <li><a class="el" href="classStifKarp.html">StifKarp</a>: A simple plucked, stiff string physical model <li><a class="el" href="classSitar.html">Sitar</a>: A simple sitar/plucked string physical model <li><a class="el" href="classMandolin.html">Mandolin</a>: Two-string mandolin physical model <li><a class="el" href="classRhodey.html">Rhodey</a>: Rhodes-like electric piano <a class="el" href="classFM.html">FM</a> synthesis model <li><a class="el" href="classWurley.html">Wurley</a>: Wurlitzer-like electric piano <a class="el" href="classFM.html">FM</a> synthesis model <li><a class="el" href="classTubeBell.html">TubeBell</a>: <a class="el" href="classFM.html">FM</a> synthesis model <li><a class="el" href="classHevyMetl.html">HevyMetl</a>: Distorted synthesizer <a class="el" href="classFM.html">FM</a> synthesis model <li><a class="el" href="classPercFlut.html">PercFlut</a>: Percussive flute-like <a class="el" href="classFM.html">FM</a> synthesis model <li><a class="el" href="classBeeThree.html">BeeThree</a>: Cheezy organ <a class="el" href="classFM.html">FM</a> synthesis model <li><a class="el" href="classMoog.html">Moog</a>: Swept filter sampler <li><a class="el" href="classFMVoices.html">FMVoices</a>: Three-formant <a class="el" href="classFM.html">FM</a> voice synthesis <li><a class="el" href="classResonate.html">Resonate</a>: <a class="el" href="classNoise.html">Noise</a> through a <a class="el" href="classBiQuad.html">BiQuad</a> filter <li><a class="el" href="classDrummer.html">Drummer</a>: Sampling synthesis <li><a class="el" href="classBandedWG.html">BandedWG</a>: Banded waveguide meta-object for bowed bars, tibetan bowls, etc. <li><a class="el" href="classShakers.html">Shakers</a>: Various stochastic event models of shaker instruments <li><a class="el" href="classModalBar.html">ModalBar</a>: Various four-resonance presets (marimba, vibraphone, etc...) <li><a class="el" href="classMesh2D.html">Mesh2D</a>: Two-dimensional, rectilinear digital waveguide mesh </ul>
<li><a class="el" href="classClarinet.html">Clarinet</a>: Pretty good physical model of the clarinet <li><a class="el" href="classBlowHole.html">BlowHole</a>: A clarinet physical model with one tonehole and one register vent <li><a class="el" href="classSaxofony.html">Saxofony</a>: A psuedo-conical bore reed instrument which sometimes sounds like a saxophone <li><a class="el" href="classFlute.html">Flute</a>: Pretty good physical model of the flute <li><a class="el" href="classBrass.html">Brass</a>: Not so bad physical model of a brass instrument <li><a class="el" href="classBlowBotl.html">BlowBotl</a>: A basic helmholtz resonator and air jet model <li><a class="el" href="classBowed.html">Bowed</a>: Not hideous physical model of a bowed string instrument <li><a class="el" href="classPlucked.html">Plucked</a>: Yer basic plucked string physical model <li><a class="el" href="classStifKarp.html">StifKarp</a>: A simple plucked, stiff string physical model <li><a class="el" href="classSitar.html">Sitar</a>: A simple sitar/plucked string physical model <li><a class="el" href="classMandolin.html">Mandolin</a>: Two-string mandolin physical model <li><a class="el" href="classRhodey.html">Rhodey</a>: Rhodes-like electric piano <a class="el" href="classFM.html">FM</a> synthesis model <li><a class="el" href="classWurley.html">Wurley</a>: Wurlitzer-like electric piano <a class="el" href="classFM.html">FM</a> synthesis model <li><a class="el" href="classTubeBell.html">TubeBell</a>: <a class="el" href="classFM.html">FM</a> synthesis model <li><a class="el" href="classHevyMetl.html">HevyMetl</a>: Distorted synthesizer <a class="el" href="classFM.html">FM</a> synthesis model <li><a class="el" href="classPercFlut.html">PercFlut</a>: Percussive flute-like <a class="el" href="classFM.html">FM</a> synthesis model <li><a class="el" href="classBeeThree.html">BeeThree</a>: Cheezy organ <a class="el" href="classFM.html">FM</a> synthesis model <li><a class="el" href="classMoog.html">Moog</a>: Swept filter sampler <li><a class="el" href="classFMVoices.html">FMVoices</a>: Three-formant <a class="el" href="classFM.html">FM</a> voice synthesis <li><a class="el" href="classVoicForm.html">VoicForm</a>: Four-formant resonance filter voice synthesis <li><a class="el" href="classResonate.html">Resonate</a>: <a class="el" href="classNoise.html">Noise</a> through a <a class="el" href="classBiQuad.html">BiQuad</a> filter <li><a class="el" href="classDrummer.html">Drummer</a>: Sampling synthesis <li><a class="el" href="classBandedWG.html">BandedWG</a>: Banded waveguide meta-object for bowed bars, tibetan bowls, etc. <li><a class="el" href="classShakers.html">Shakers</a>: Various stochastic event models of shaker instruments <li><a class="el" href="classModalBar.html">ModalBar</a>: Various four-resonance presets (marimba, vibraphone, etc...) <li><a class="el" href="classMesh2D.html">Mesh2D</a>: Two-dimensional, rectilinear digital waveguide mesh <li><a class="el" href="classWhistle.html">Whistle</a>: Hybrid physical/spectral model of a police whistle </ul>
<p>
<a name="nort"><h2>Demo: Non-Realtime Use</h2></a>
@@ -99,25 +114,25 @@ See the information above with respect to compiling STK for non-realtime use.
<p>
In non-realtime mode, it is assumed that input control messages are provided from a <a class="el" href="classSKINI.html">SKINI</a> scorefile and that audio output is written to a soundfile (.snd, .wav, .aif, .mat, .raw). A number of <a class="el" href="classSKINI.html">SKINI</a> scorefiles are provided in the <em>scores</em> directory of the <em><b>demo</b></em> project. Assuming a successful compilation of the <em><b>demo</b></em> program, typing:
<p>
<div class="fragment"><pre>cat scores/bookert.ski | demo <a class="code" href="classBeeThree.html">BeeThree</a> -w myfile.wav</pre></div>
<div class="fragment"><pre>cat scores/bookert.ski | demo <a class="code" href="classBeeThree.html">BeeThree</a> -ow myfile.wav</pre></div>
<p>
or (on WindowsXX and/or Unix)
<p>
<div class="fragment"><pre>demo <a class="code" href="classBeeThree.html">BeeThree</a> -w myfile.wav &lt; scores\bookert.ski</pre></div>
<div class="fragment"><pre>demo <a class="code" href="classBeeThree.html">BeeThree</a> -ow myfile.wav &lt; scores\bookert.ski</pre></div>
<p>
from the <em><b>demo</b></em> directory will play the scorefile <em>bookert.ski</em> using the STK <a class="el" href="classBeeThree.html">BeeThree</a> instrument and write the resulting audio data to a WAV formatted soundfile called "myfile.wav". Typing <code>demo</code> without any arguments will provide a full program usage description.
<p>
<a name="rt"><h2>Demo: Realtime Use</h2></a>
<p>
STK realtime audio and MIDI input/output and realtime <a class="el" href="classSKINI.html">SKINI</a> control input via socketing support is provided for Linux, SGI, and Windows95/98/2000/XP operating systems. STK realtime <a class="el" href="classSKINI.html">SKINI</a> control input via piping is possible under Linux, SGI, and Windows2000/XP only.
STK realtime audio and MIDI input/output and realtime <a class="el" href="classSKINI.html">SKINI</a> control input via socketing support is provided for Linux, SGI, Mac OS X, and Windows95/98/2000/XP operating systems. STK realtime <a class="el" href="classSKINI.html">SKINI</a> control input via piping is possible under Linux, SGI, Mac OS X, and Windows2000/XP only.
<p>
Control input and audio output options are typically specified as command-line arguments to STK programs. For example, the <em><b>demo</b></em> program is invoked as:
<p>
<div class="fragment"><pre>demo instrument flags</pre></div>
<p>
where instruments include those described above and flags can be any or all of: <ul>
<li><em>-or</em> for realtime audio output, <li><em>-ow &lt;file name&gt;</em> for WAV soundfile output, <li><em>-os &lt;file name&gt;</em> for SND (AU) soundfile output, <li><em>-om &lt;file name&gt;</em> for MAT-file output, <li><em>-ip</em> or <em>-is</em> for realtime <a class="el" href="classSKINI.html">SKINI</a> control input via piping or socketing, respectively, <li><em>-im &lt;file name&gt;</em> for MIDI control input </ul>
<li><em>-or</em> for realtime audio output, <li><em>-ow &lt;file name&gt;</em> for WAV soundfile output, <li><em>-os &lt;file name&gt;</em> for SND (AU) soundfile output, <li><em>-om &lt;file name&gt;</em> for MAT-file output, <li><em>-ip</em> for realtime <a class="el" href="classSKINI.html">SKINI</a> control input via piping, <li><em>-is &lt;port&gt;</em> &gt; for realtime <a class="el" href="classSKINI.html">SKINI</a> control input via socketing (with an optional port number), <li><em>-im &lt;file name&gt;</em> for MIDI control input <li><em>-s RATE</em> to specify a sample rate <li><em>-n NUMBER</em> to specify multivoice polyphony </ul>
The &lt;-ip&gt; and &lt;-is&gt; flags must be used when piping or socketing realtime <a class="el" href="classSKINI.html">SKINI</a> control data to an STK program. The &lt;-im&gt; flag must be used to read MIDI control input from your MIDI port. Note that you can use all three input types simultaneously.
<p>
Assuming a successful compilation of the <em><b>demo</b></em> program, typing:
@@ -133,7 +148,7 @@ from the <em><b>demo</b></em> directory will play the scorefile <em>bookert.ski<
<a name="tcl"><h2>Realtime Control Input using Tcl/Tk Graphical User Interfaces:</h2></a>
<p>
There are a number of <a href="http://dev.scriptics.com">Tcl/Tk</a> 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 <em>wish</em>). The PhysicalDemo script just implements the following command-line sequence:
There are a number of <a href="http://dev.scriptics.com">Tcl/Tk</a> 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 wishXX executable to the name <em>wish</em>). The Physical.bat script just implements the following command-line sequence:
<p>
<div class="fragment"><pre>wish &lt; tcl/Physical.tcl | demo <a class="code" href="classClarinet.html">Clarinet</a> -or -ip</pre></div>
<p>
@@ -150,12 +165,19 @@ On all supported realtime platforms, you can direct realtime MIDI input to the S
<p>
<div class="fragment"><pre>demo <a class="code" href="classClarinet.html">Clarinet</a> -or -im</pre></div>
<p>
<HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>
<a name="polyphony"><h2>Polyphony:</h2></a>
<p>
The <em><b>demo</b></em> program supports an arbitrary number of voices via the <code>-n NUMBER</code> command-line flag and argument. For example, you can play eight <a class="el" href="classBeeThree.html">BeeThree</a> instruments with realtime output and control them from a MIDI device by typing:
<p>
<div class="fragment"><pre>demo <a class="code" href="classBeeThree.html">BeeThree</a> -n 8 -or -im</pre></div>
<p>
<HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>
</HTML>