Release 4.4.0 tarball

This commit is contained in:
Gary Scavone
2013-09-29 23:44:33 +02:00
committed by Stephen Sinclair
parent 3706458166
commit d2ed001eb5
1427 changed files with 44061 additions and 39976 deletions

View File

@@ -8,8 +8,9 @@
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"> &nbsp; <img src="mcgill.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="faq.html">FAQ</a> &nbsp; <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.4.4 -->
<h1><a class="anchor" name="usage">Usage Documentation</a></h1><ul>
<!-- Generated by Doxygen 1.5.8 -->
<div class="contents">
<h1><a class="anchor" name="usage">Usage Documentation </a></h1><ul>
<li><a class="el" href="usage.html#directory">Directory Structure:</a></li><li><a class="el" href="usage.html#compiling">Compiling:</a></li><li><a class="el" href="usage.html#control">Control Data:</a></li><li><a class="el" href="usage.html#voices">Demo: STK Instruments</a></li><li><a class="el" href="usage.html#nort">Demo: Non-Realtime Use</a></li><li><a class="el" href="usage.html#rt">Demo: Realtime Use</a></li><li><a class="el" href="usage.html#tcl">Realtime Control Input using Tcl/Tk Graphical User Interfaces:</a></li><li><a class="el" href="usage.html#midi">Realtime MIDI Control Input:</a></li><li><a class="el" href="usage.html#polyphony">Polyphony:</a></li></ul>
<p>
<hr>
@@ -41,7 +42,7 @@ The <em><b>projects</b></em> directory contains various demo and example STK pro
This release of STK comes with four separate "project" directories:<p>
<ol>
<li>
The <em><b>demo</b></em> project is used to demonstrate nearly all of the STK instruments. The <em><b>demo</b></em> program has been written to allow a variety of control input and sound data output options. <a class="el" href="classSimple.html">Simple</a> graphical user interfaces (GUIs) are also provided.<p>
The <em><b>demo</b></em> project is used to demonstrate nearly all of the STK instruments. The <em><b>demo</b></em> program has been written to allow a variety of control input and sound data output options. Simple graphical user interfaces (GUIs) are also provided.<p>
<p>
</li>
<li>
@@ -59,10 +60,7 @@ The <em><b>examples</b></em> project contains several simple programs that demon
Compiling:</a></h2>
<ul>
<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> and <code>__WINDOWS_MM__</code> preprocessor definitions are necessary for all Windows systems (<a class="el" href="classRtMidi.html">RtMidi</a> uses the Windows MultiMedia MIDI API). 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++ .NET 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>
<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>
<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> and <code>__WINDOWS_MM__</code> preprocessor definitions are necessary for all Windows systems (<a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> uses the Windows MultiMedia MIDI API). 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++ .NET 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>
<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>
@@ -89,93 +87,93 @@ For novice STK users, the default configuration should be adequate. </li>
<p>
For those who wish to create their own system-specific <code>Makefiles</code>: <ul>
<li>
<b>Linux:</b> Realtime audio support is enabled with either the <code>__LINUX_ALSA__</code>, <code>__UNIX_JACK__</code>, and/or <code>__LINUX_OSS__</code> preprocessor definitions, which are used to select the underlying audio system API(s). Because the ALSA library is now integrated into the standard Linux kernel, it is the default audio/MIDI API with STK versions 4.2 and higher. The <code>__LINUX_ALSASEQ__</code> preprocessor definition must be included for MIDI support. Note that native OSS MIDI support no longer exists in <a class="el" href="classRtMidi.html">RtMidi</a>. If the <code>__LINUX_OSS__</code> preprocessor definition is specified, only OSS (version 4.0) audio support will be compiled and <a class="el" href="classRtMidi.html">RtMidi</a> will still be compiled using the ALSA API (assuming the <code>__LINUX_ALSASEQ__</code> definition is defined). For this reason, STK now requires the <code>asound</code> library for realtime support. Realtime programs must also link with the <code>pthread</code> library. In addition, the <code>__LITTLE_ENDIAN__</code> preprocessor definition is necessary if compiling on a little-endian system. See the README-Linux file for further system configuration information.<p>
<b>Linux:</b> Realtime audio support is enabled with either the <code>__LINUX_ALSA__</code>, <code>__UNIX_JACK__</code>, and/or <code>__LINUX_OSS__</code> preprocessor definitions, which are used to select the underlying audio system API(s). Because the ALSA library is now integrated into the standard Linux kernel, it is the default audio/MIDI API with STK versions 4.2 and higher. The <code>__LINUX_ALSASEQ__</code> preprocessor definition must be included for MIDI support. Note that native OSS MIDI support no longer exists in <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a>. If the <code>__LINUX_OSS__</code> preprocessor definition is specified, only OSS (version 4.0) audio support will be compiled and <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> will still be compiled using the ALSA API (assuming the <code>__LINUX_ALSASEQ__</code> definition is defined). For this reason, STK now requires the <code>asound</code> library for realtime support. Realtime programs must also link with the <code>pthread</code> library. In addition, the <code>__LITTLE_ENDIAN__</code> preprocessor definition is necessary if compiling on a little-endian system. See the README-Linux file for further system configuration information.<p>
</li>
<li>
<b>Macintosh OS X:</b> Realtime support is enabled with the <code>__MACOSX_CORE__</code> and <code>__UNIX_JACK__</code> preprocessor definitions, which incorporate the CoreAudio audio/MIDI API and/or the JACK 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 (for Core Audio support) and/or the JACK library. See the README-MacOSX file for further system configuration information.<p>
</li>
<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 SKINI 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>, RtDuplex, <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="classMutex.html">Mutex</a>, TcpWvIn, TcpWvOut. 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>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 SKINI 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" title="Realtime audio i/o C++ classes.">RtAudio</a>, RtWvIn, RtWvOut, RtDuplex, <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a>, Socket, Thread, Mutex, TcpWvIn, TcpWvOut. 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>
</ul>
<h2><a class="anchor" name="control">
Control Data:</a></h2>
All STK programs in this distribution take input control data in the form of <a href="skini.html">SKINI</a> or MIDI messages only. The <a class="el" href="classMessager.html">Messager</a> 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:<p>
All STK programs in this distribution take input control data in the form of <a href="skini.html">SKINI</a> 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:<p>
<ol>
<li>
Redirect or pipe SKINI scorefiles to an executable. </li>
<li>
Pipe realtime SKINI input messages to an executable (not possible under Windows95/98). </li>
<li>
<a class="el" href="classSocket.html">Socket</a> realtime SKINI input messages to an executable. </li>
Socket realtime SKINI input messages to an executable. </li>
<li>
Acquire realtime MIDI messages from a MIDI port on your computer. </li>
</ol>
<p>
<a href="http://dev.scriptics.com">Tcl/Tk</a> graphical user interfaces (GUI) are provided with this distribution that can generate realtime SKINI messages. Note that the <a class="el" href="classMessager.html">Messager</a> class allows multiple simultaneous socket client connections, together with MIDI and/or piped input. The <em><b>Md2Skini</b></em> program (in the <em><b>demo</b></em> directory) is mostly obsolete but can be used to create SKINI scorefiles from realtime MIDI input.<h2><a class="anchor" name="voices">
<a href="http://dev.scriptics.com">Tcl/Tk</a> graphical user interfaces (GUI) are provided with this distribution that can generate realtime SKINI messages. Note that the Messager class allows multiple simultaneous socket client connections, together with MIDI and/or piped input. The <em><b>Md2Skini</b></em> program (in the <em><b>demo</b></em> directory) is mostly obsolete but can be used to create SKINI scorefiles from realtime MIDI input.<h2><a class="anchor" name="voices">
Demo: STK Instruments</a></h2>
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>
Clarinet: Pretty good physical model of the clarinet </li>
<li>
<a class="el" href="classBlowHole.html">BlowHole</a>: A clarinet physical model with one tonehole and one register vent </li>
BlowHole: A clarinet physical model with one tonehole and one register vent </li>
<li>
<a class="el" href="classSaxofony.html">Saxofony</a>: A psuedo-conical bore reed instrument that sometimes sounds like a saxophone </li>
Saxofony: A psuedo-conical bore reed instrument that sometimes sounds like a saxophone </li>
<li>
<a class="el" href="classFlute.html">Flute</a>: Pretty good physical model of the flute </li>
Flute: Pretty good physical model of the flute </li>
<li>
<a class="el" href="classBrass.html">Brass</a>: Not so bad physical model of a brass instrument </li>
Brass: Not so bad physical model of a brass instrument </li>
<li>
<a class="el" href="classBlowBotl.html">BlowBotl</a>: A basic helmholtz resonator and air jet model </li>
BlowBotl: A basic helmholtz resonator and air jet model </li>
<li>
<a class="el" href="classBowed.html">Bowed</a>: Not hideous physical model of a bowed string instrument </li>
Bowed: Not hideous physical model of a bowed string instrument </li>
<li>
<a class="el" href="classPlucked.html">Plucked</a>: Yer basic plucked string physical model </li>
Plucked: Yer basic plucked string physical model </li>
<li>
<a class="el" href="classStifKarp.html">StifKarp</a>: A simple plucked, stiff string physical model </li>
StifKarp: A simple plucked, stiff string physical model </li>
<li>
<a class="el" href="classSitar.html">Sitar</a>: A simple sitar/plucked string physical model </li>
Sitar: A simple sitar/plucked string physical model </li>
<li>
<a class="el" href="classMandolin.html">Mandolin</a>: Two-string mandolin physical model </li>
Mandolin: Two-string mandolin physical model </li>
<li>
<a class="el" href="classRhodey.html">Rhodey</a>: Rhodes-like electric piano <a class="el" href="classFM.html">FM</a> synthesis model </li>
Rhodey: Rhodes-like electric piano FM synthesis model </li>
<li>
<a class="el" href="classWurley.html">Wurley</a>: Wurlitzer-like electric piano <a class="el" href="classFM.html">FM</a> synthesis model </li>
Wurley: Wurlitzer-like electric piano FM synthesis model </li>
<li>
<a class="el" href="classTubeBell.html">TubeBell</a>: <a class="el" href="classFM.html">FM</a> synthesis model </li>
TubeBell: FM synthesis model </li>
<li>
<a class="el" href="classHevyMetl.html">HevyMetl</a>: Distorted synthesizer <a class="el" href="classFM.html">FM</a> synthesis model </li>
HevyMetl: Distorted synthesizer FM synthesis model </li>
<li>
<a class="el" href="classPercFlut.html">PercFlut</a>: Percussive flute-like <a class="el" href="classFM.html">FM</a> synthesis model </li>
PercFlut: Percussive flute-like FM synthesis model </li>
<li>
<a class="el" href="classBeeThree.html">BeeThree</a>: Cheezy organ <a class="el" href="classFM.html">FM</a> synthesis model </li>
BeeThree: Cheezy organ FM synthesis model </li>
<li>
<a class="el" href="classMoog.html">Moog</a>: Swept filter sampler </li>
Moog: Swept filter sampler </li>
<li>
<a class="el" href="classFMVoices.html">FMVoices</a>: Three-formant <a class="el" href="classFM.html">FM</a> voice synthesis </li>
FMVoices: Three-formant FM voice synthesis </li>
<li>
<a class="el" href="classVoicForm.html">VoicForm</a>: Four-formant resonance filter voice synthesis </li>
VoicForm: Four-formant resonance filter voice synthesis </li>
<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>
Resonate: Noise through a BiQuad filter </li>
<li>
<a class="el" href="classDrummer.html">Drummer</a>: Sampling synthesis </li>
Drummer: Sampling synthesis </li>
<li>
<a class="el" href="classBandedWG.html">BandedWG</a>: Banded waveguide meta-object for bowed bars, tibetan bowls, etc. </li>
BandedWG: Banded waveguide meta-object for bowed bars, tibetan bowls, etc. </li>
<li>
<a class="el" href="classShakers.html">Shakers</a>: Various stochastic event models of shaker instruments </li>
Shakers: Various stochastic event models of shaker instruments </li>
<li>
<a class="el" href="classModalBar.html">ModalBar</a>: Various four-resonance presets (marimba, vibraphone, etc...) </li>
ModalBar: Various four-resonance presets (marimba, vibraphone, etc...) </li>
<li>
<a class="el" href="classMesh2D.html">Mesh2D</a>: Two-dimensional, rectilinear digital waveguide mesh </li>
Mesh2D: Two-dimensional, rectilinear digital waveguide mesh </li>
<li>
<a class="el" href="classWhistle.html">Whistle</a>: Hybrid physical/spectral model of a police whistle </li>
Whistle: Hybrid physical/spectral model of a police whistle </li>
</ul>
<h2><a class="anchor" name="nort">
Demo: Non-Realtime Use</a></h2>
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 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 <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 class="fragment">demo <a class="code" href="classBeeThree.html">BeeThree</a> -ow myfile.wav -<span class="keywordflow">if</span> scores/bookert.ski
<div class="fragment"><pre class="fragment">demo BeeThree -ow myfile.wav -<span class="keywordflow">if</span> 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" (note that you may need to append <code>./</code> to the program name if your default shell setup is not set to look in the current directory). Typing <code>demo</code> without any arguments will provide a full program usage description.<h2><a class="anchor" name="rt">
from the <em><b>demo</b></em> directory will play the scorefile <em>bookert.ski</em> using the STK BeeThree instrument and write the resulting audio data to a WAV formatted soundfile called "myfile.wav" (note that you may need to append <code>./</code> to the program name if your default shell setup is not set to look in the current directory). Typing <code>demo</code> without any arguments will provide a full program usage description.<h2><a class="anchor" name="rt">
Demo: Realtime Use</a></h2>
STK realtime audio and MIDI input/output and realtime SKINI control input via socketing support is provided for Linux, Mac OS-X, and Windows95/98/2000/XP operating systems. STK realtime SKINI control input via piping is possible under Linux, 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>
@@ -205,36 +203,37 @@ where instruments include those described above and flags can be any or all of:
</ul>
The <em>-ip</em> and <em>-is</em> flags must be used when piping or socketing realtime SKINI control data to an STK program. The <em>-im</em> 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:<p>
<div class="fragment"><pre class="fragment">demo <a class="code" href="classBeeThree.html">BeeThree</a> -or -<span class="keywordflow">if</span> scores/bookert.ski
<div class="fragment"><pre class="fragment">demo BeeThree -or -<span class="keywordflow">if</span> 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 stream the resulting audio data in realtime to the audio output channel of your computer. Typing <code>demo</code> without any arguments will provide a full program usage description.<h2><a class="anchor" name="tcl">
from the <em><b>demo</b></em> directory will play the scorefile <em>bookert.ski</em> using the STK BeeThree instrument and stream the resulting audio data in realtime to the audio output channel of your computer. Typing <code>demo</code> without any arguments will provide a full program usage description.<h2><a class="anchor" name="tcl">
Realtime Control Input using Tcl/Tk Graphical User Interfaces:</a></h2>
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 class="fragment">wish &lt; tcl/Physical.tcl | demo <a class="code" href="classClarinet.html">Clarinet</a> -or -ip
<div class="fragment"><pre class="fragment">wish &lt; tcl/Physical.tcl | demo Clarinet -or -ip
</pre></div><p>
On WindowsXX and Unix platforms, the following operations are necessary to establish a socket connection between the Tcl/Tk GUI and the STK program: <ol>
<li>
Open a DOS shell and start the STK program with the <em>-is</em> flag (ex. <em><b>demo <a class="el" href="classClarinet.html">Clarinet</a> -or -is</b></em>). </li>
Open a DOS shell and start the STK program with the <em>-is</em> flag (ex. <em><b>demo Clarinet -or -is</b></em>). </li>
<li>
Open the Tcl/Tk GUI (e.g. tcl/Physical.tcl) by double-clicking on it, or type <code>wish &lt; tcl/Physical.tcl</code> in another DOS shell. </li>
<li>
Establish the socket connection by selecting <em><a class="el" href="classSocket.html">Socket</a></em> under the Communications menu item in the Tcl/Tk GUI. </li>
Establish the socket connection by selecting <em>Socket</em> under the Communications menu item in the Tcl/Tk GUI. </li>
</ol>
<p>
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.<h2><a class="anchor" name="midi">
Realtime MIDI Control Input:</a></h2>
On all supported realtime platforms, you can direct realtime MIDI input to the STK <a class="el" href="classClarinet.html">Clarinet</a> by typing:<p>
<div class="fragment"><pre class="fragment">demo <a class="code" href="classClarinet.html">Clarinet</a> -or -im
On all supported realtime platforms, you can direct realtime MIDI input to the STK Clarinet by typing:<p>
<div class="fragment"><pre class="fragment">demo Clarinet -or -im
</pre></div><p>
This will attempt to use the default MIDI port for input. An optional MIDI port number can be specified after the <code>-im</code> flag. Valid MIDI ports are numbered from 0 (default) and higher. On Linux and Macintosh OS-X systems, it is possible to open a virtual MIDI input port (that other software applications can connect to) by specifying a port identifier of -1.<h2><a class="anchor" name="polyphony">
Polyphony:</a></h2>
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 class="fragment">demo <a class="code" href="classBeeThree.html">BeeThree</a> -n 8 -or -im
</pre></div> <HR>
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 BeeThree instruments with realtime output and control them from a MIDI device by typing:<p>
<div class="fragment"><pre class="fragment">demo BeeThree -n 8 -or -im
</pre></div> </div>
<HR>
<table>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
<tr><td>&copy;1995-2009 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>