mirror of
https://github.com/thestk/stk
synced 2026-01-13 21:11:53 +00:00
330 lines
16 KiB
HTML
330 lines
16 KiB
HTML
<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"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
|
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
|
<HR>
|
|
<!-- Generated by Doxygen 1.3.4 -->
|
|
<h1><a class="anchor" name="download">Download and Release Notes</a></h1><b>Version 4.2.0, 4 October 2004</b><p>
|
|
<ul>
|
|
<li>
|
|
<a href="http://www-ccrma.stanford.edu/software/stk/release/stk-4.2.0.tar.gz">Source distribution</a> </li>
|
|
<li>
|
|
<a href="http://www-ccrma.stanford.edu/software/stk/release/stk-4.2.0.binaries.tar.gz">Source with precompiled Windows binaries</a> </li>
|
|
<li>
|
|
<a href="http://www-ccrma.stanford.edu/planetccrma/software/">Linux RPMs from Planet CCRMA</a> </li>
|
|
</ul>
|
|
<h2><a class="anchor" name="notes">
|
|
Release Notes:</a></h2>
|
|
<h3><a class="anchor" name="v4dot2dot0">
|
|
Version 4.2.0</a></h3>
|
|
<ul>
|
|
<li>
|
|
Simultaneous multiple audio APIs supported at compile time. </li>
|
|
<li>
|
|
Various changes to better conform to standard C++ programming practices. </li>
|
|
<li>
|
|
Fixed hidden overloaded virtual functions. </li>
|
|
<li>
|
|
New <a class="el" href="classAsymp.html">Asymp</a> exponential envelope class. </li>
|
|
<li>
|
|
<code>MY_FLOAT</code> type converted to <code>StkFloat</code> and changed throughout (use <code>treesed</code> utility to search/replace in old files). </li>
|
|
<li>
|
|
Most example programs rewritten to use an audio callback paradigm (which works better in OS-X). </li>
|
|
<li>
|
|
New <a class="el" href="classStkFrames.html">StkFrames</a> class for vectorized multichannel data and associated new tick() functions making use of <a class="el" href="classStkFrames.html">StkFrames</a>. </li>
|
|
<li>
|
|
New <a class="el" href="classRtMidi.html">RtMidi</a> class with MIDI output capabilities (API changes). </li>
|
|
<li>
|
|
New <a class="el" href="classMidiFileIn.html">MidiFileIn</a> class for reading MIDI files. </li>
|
|
<li>
|
|
Revised <a class="el" href="classFilter.html">Filter</a> classes to use std::vectors for coefficients (API changes). </li>
|
|
<li>
|
|
Revised <a class="el" href="classMessager.html">Messager</a> class (API changes). </li>
|
|
<li>
|
|
New abstract parent <a class="el" href="classEffect.html">Effect</a> class for various effects. </li>
|
|
<li>
|
|
New abstract parent <a class="el" href="classGenerator.html">Generator</a> class for various signal sources. </li>
|
|
<li>
|
|
New abstract parent <a class="el" href="classFunction.html">Function</a> class for tables and various non-linear functions. </li>
|
|
<li>
|
|
<a class="el" href="classSkini.html">Skini</a> class completely rewritten (simplified) using the C++ STL (API changes). </li>
|
|
<li>
|
|
<a class="el" href="classWvOut.html">WvOut</a> classes now clip to -1.0 to +1.0 and report out of range. </li>
|
|
<li>
|
|
New <a class="el" href="classMutex.html">Mutex</a> class. </li>
|
|
<li>
|
|
Turned Nagle algorithm off by default in <a class="el" href="classSocket.html">Socket</a> class. </li>
|
|
<li>
|
|
Error reporting standardized in all classes. </li>
|
|
</ul>
|
|
<h3><a class="anchor" name="v4dot1dot3">
|
|
Version 4.1.3</a></h3>
|
|
<ul>
|
|
<li>
|
|
Bug fix in <a class="el" href="classRtAudio.html">RtAudio</a> for Windows DirectSound output only support </li>
|
|
</ul>
|
|
<h3><a class="anchor" name="v4dot1dot2">
|
|
Version 4.1.2</a></h3>
|
|
<ul>
|
|
<li>
|
|
Added Linux JACK support to <a class="el" href="classRtAudio.html">RtAudio</a>. </li>
|
|
<li>
|
|
Added optional doNormalize argument to <a class="el" href="classWvIn.html">WvIn</a> to allow specification of data normalization or not. </li>
|
|
<li>
|
|
Added volume control to demo program and various tcl scripts. </li>
|
|
<li>
|
|
Added support for dynamic rawwavePath() setting. </li>
|
|
<li>
|
|
<a class="el" href="classWaveLoop.html">WaveLoop</a> bug fix. </li>
|
|
<li>
|
|
Fixed bug in <a class="el" href="classADSR.html#a10">ADSR::setReleaseTime()</a> method. </li>
|
|
<li>
|
|
Fixed missing initialization of apInput in non-default constructor of <a class="el" href="classDelayA.html">DelayA</a> class. </li>
|
|
<li>
|
|
Added time seeding of random number generator to <a class="el" href="classNoise.html">Noise</a> constructor. </li>
|
|
<li>
|
|
Update to the contentsAt() method of <a class="el" href="classDelay.html">Delay</a> class. </li>
|
|
<li>
|
|
WAV file fixes (8-bit) in <a class="el" href="classWvIn.html">WvIn</a> and <a class="el" href="classWvOut.html">WvOut</a> classes. </li>
|
|
<li>
|
|
Configure script changes. </li>
|
|
<li>
|
|
Updated <iostream> include statements and appended "std::" as necessary throughout for compatibility with gcc 3. </li>
|
|
</ul>
|
|
<h3><a class="anchor" name="v4dot1dot1">
|
|
Version 4.1.1</a></h3>
|
|
<ul>
|
|
<li>
|
|
Bug fix in <a class="el" href="classRtAudio.html">RtAudio</a> for Macintosh OS X and Windows ASIO duplex operation. </li>
|
|
<li>
|
|
Windows ASIO fix in <a class="el" href="Stk_8h.html">Stk.h</a>. </li>
|
|
<li>
|
|
Documentation updates. </li>
|
|
<li>
|
|
Expanded tutorial. </li>
|
|
<li>
|
|
Fixed <a class="el" href="classRtDuplex.html">RtDuplex</a> omission in src Makefile. </li>
|
|
</ul>
|
|
<h3><a class="anchor" name="v4dot1">
|
|
Version 4.1</a></h3>
|
|
<ul>
|
|
<li>
|
|
Macintosh OS X support added. </li>
|
|
<li>
|
|
New <a class="el" href="classWhistle.html">Whistle</a> class. </li>
|
|
<li>
|
|
Added <a class="el" href="classVoicer.html">Voicer</a>, <a class="el" href="classSingWave.html">SingWave</a>, and <a class="el" href="classVoicForm.html">VoicForm</a> classes. </li>
|
|
<li>
|
|
Improvements/fixes to the banded waveguide instruments. </li>
|
|
<li>
|
|
Demo program now uses <a class="el" href="classVoicer.html">Voicer</a>, allowing polyphony. </li>
|
|
<li>
|
|
Demo tcl/tk scripts changed to use SKINI PitchChange instead of PitchBend. </li>
|
|
<li>
|
|
Demo program response to PitchBend modified to octave up/down. </li>
|
|
<li>
|
|
Several <a class="el" href="classRtAudio.html">RtAudio</a> fixes and improvements (OS X and Windows ASIO support added). </li>
|
|
<li>
|
|
Added nextOut() method to <a class="el" href="classDelay.html">Delay</a> classes. </li>
|
|
<li>
|
|
Documentation fixes for Reverb classes. </li>
|
|
<li>
|
|
RAWWAVE_PATH changed to include the "rawwave" directory. </li>
|
|
<li>
|
|
"configure" support added for unix systems. </li>
|
|
<li>
|
|
Multivoice flag (-n NUMBER) added as command line option to demo program. </li>
|
|
<li>
|
|
Sample rate flag added as command line option to example programs. </li>
|
|
<li>
|
|
<a class="el" href="classSocket.html">Socket</a> port number added as command line option to example programs. </li>
|
|
</ul>
|
|
<h3><a class="anchor" name="v4">
|
|
Version 4.0</a></h3>
|
|
<ul>
|
|
<li>
|
|
New documentation and tutorial. </li>
|
|
<li>
|
|
Several new instruments, including <a class="el" href="classSaxofony.html">Saxofony</a>, <a class="el" href="classBlowBotl.html">BlowBotl</a>, and <a class="el" href="classStifKarp.html">StifKarp</a>. </li>
|
|
<li>
|
|
New <a class="el" href="classStk.html">Stk</a> base class, replacing Object class. </li>
|
|
<li>
|
|
New <a class="el" href="classFilter.html">Filter</a> class structure and methods. </li>
|
|
<li>
|
|
Extensive modifications to <a class="el" href="classWvIn.html">WvIn</a> and <a class="el" href="classWvOut.html">WvOut</a> class structures and methods. </li>
|
|
<li>
|
|
Looping functionality moved to <a class="el" href="classWaveLoop.html">WaveLoop</a> (subclass of <a class="el" href="classWvIn.html">WvIn</a>). </li>
|
|
<li>
|
|
Automatic file type detection in <a class="el" href="classWvIn.html">WvIn</a> ... hosed WavWvIn, AifWvIn, RawWavIn, SndWavIn, and MatWvIn subclasses. </li>
|
|
<li>
|
|
New file type specifier argument in <a class="el" href="classWvOut.html">WvOut</a> ... hosed WavWvOut, AifWvOut, RawWavOut, SndWavOut, and MatWvOut subclasses. </li>
|
|
<li>
|
|
Some simplifications of <a class="el" href="classMessager.html">Messager</a> class (was Controller). </li>
|
|
<li>
|
|
New independent <a class="el" href="classRtAudio.html">RtAudio</a> class. </li>
|
|
<li>
|
|
Extensive revisions in code and a significant number of API changes. </li>
|
|
</ul>
|
|
<h3><a class="anchor" name="v3dot2">
|
|
Version 3.2</a></h3>
|
|
<ul>
|
|
<li>
|
|
New input control handling class (Controller) </li>
|
|
<li>
|
|
Added AIFF file input/output support. </li>
|
|
<li>
|
|
New C++ error handling capabilities. </li>
|
|
<li>
|
|
New input/output internet streaming support (StrmWvIn/StrmWvOut). </li>
|
|
<li>
|
|
Added native ALSA support for linux. </li>
|
|
<li>
|
|
Added optional "device" argument to all "Rt" classes (audio and MIDI) and printout of devices when argument is invalid. </li>
|
|
<li>
|
|
<a class="el" href="classWvIn.html">WvIn</a> classes rewritten to support very big files (incremental load from disk). </li>
|
|
<li>
|
|
Changed WvIn/WvOut classes to work with sample frame buffers. </li>
|
|
<li>
|
|
Fixed looping and negative rate calculations in <a class="el" href="classWvIn.html">WvIn</a> classes. </li>
|
|
<li>
|
|
Fixed interpolation bug in <a class="el" href="classRtWvIn.html">RtWvIn</a>. </li>
|
|
<li>
|
|
Windoze <a class="el" href="classRtAudio.html">RtAudio</a> code rewritten (thank Dave!). </li>
|
|
<li>
|
|
Simplified byte-swapping functions (in-place swapping). </li>
|
|
<li>
|
|
"Stereo-ized" RagaMatic. </li>
|
|
<li>
|
|
Miscellaneous renamings. </li>
|
|
<li>
|
|
Probably a bunch more fixes that I've long since forgotten about. </li>
|
|
</ul>
|
|
<h3><a class="anchor" name="v3dot1">
|
|
Version 3.1</a></h3>
|
|
<ul>
|
|
<li>
|
|
New RagaMatic project ... very cool!!! </li>
|
|
<li>
|
|
Less clipping in the <a class="el" href="classShakers.html">Shakers</a> class. </li>
|
|
<li>
|
|
Added "microphone position" to <a class="el" href="classMandolin.html">Mandolin</a> in STKdemo. </li>
|
|
<li>
|
|
Fixed MIDI system message exclusion under Irix. </li>
|
|
<li>
|
|
Added a few bitmaps for the Shaker instruments. </li>
|
|
<li>
|
|
Made destructors virtual for Reverb.h, <a class="el" href="WvIn_8h.html">WvIn.h</a> and <a class="el" href="Simple_8h.html">Simple.h</a>. </li>
|
|
<li>
|
|
Fixed bug setting delay length in DLineA when value too big. </li>
|
|
<li>
|
|
Fixed bug in WinMM realtime code (RTSoundIO). </li>
|
|
<li>
|
|
Added tick() method to BowTabl, JetTabl, and ReedTabl (same as lookup). </li>
|
|
<li>
|
|
Switched to pthread API on SGI platforms. </li>
|
|
<li>
|
|
Added some defines to Object.h for random number generation, FPU overflow checking, etc.... </li>
|
|
<li>
|
|
A few minor changes, some bug fixes ... can't remember all of them. </li>
|
|
</ul>
|
|
<h3><a class="anchor" name="v3">
|
|
Version 3.0</a></h3>
|
|
<ul>
|
|
<li>
|
|
New #define flags for OS and realtime dependencies (this will probably cause problems for old personal STK code, but it was necessary to make future ports easier). </li>
|
|
<li>
|
|
Expanded and cleaned the <a class="el" href="classShakers.html">Shakers</a> class. </li>
|
|
<li>
|
|
New BowedBar algorithm/class. </li>
|
|
<li>
|
|
Fixed Linux MIDI input bug. </li>
|
|
<li>
|
|
Fixed MIDI status masking problem in Windows. </li>
|
|
<li>
|
|
OS type defines now in Makefile. </li>
|
|
<li>
|
|
New RAWWAVE_PATH define in Object.h. </li>
|
|
<li>
|
|
Syntmono project pulled out to separate directory and cleaned up. </li>
|
|
<li>
|
|
Socketing capabilities under Unix, as well as Windoze. </li>
|
|
<li>
|
|
Multiple simultaneous socket client connections to STK servers now possible. </li>
|
|
<li>
|
|
MD2SKINI now can merge MIDI and piped messages under Irix and Linux (for TCL->MD2SKINI->syntmono control). </li>
|
|
<li>
|
|
Defined INT16 and INT32 types and fixed various <a class="el" href="classWvIn.html">WvIn</a> and <a class="el" href="classWvOut.html">WvOut</a> classes. </li>
|
|
<li>
|
|
Updated MatWvIn and MatWvOut for new MAT-file documentation from Matlab. </li>
|
|
<li>
|
|
New demo Tcl/Tk GUI (TclDemo.tcl). </li>
|
|
<li>
|
|
Minor fixes to <a class="el" href="classFM.html">FM</a> behavior. </li>
|
|
<li>
|
|
Added record/duplex capabilities to RTSoundIO (Linux, SGI, and Windoze). </li>
|
|
<li>
|
|
Fixed bugs in WavWvOut and MatWvOut header specifications. </li>
|
|
<li>
|
|
Added RawWvOut class. </li>
|
|
<li>
|
|
New <a class="el" href="classWvIn.html">WvIn</a> class with RawWvIn, SndWvIn, WavWvIn, MatWvIn, and RTWvIn subclasses. </li>
|
|
<li>
|
|
Removed RawWave, RawShot, RawInterp, and RawLoop classes (supplanted by RawWvIn). </li>
|
|
<li>
|
|
Multi-channel data support in <a class="el" href="classWvIn.html">WvIn</a> and <a class="el" href="classWvOut.html">WvOut</a> classes using MY_MULTI data type (pointer to StkFloat) and the methods mtick() and mlastOutput(). </li>
|
|
<li>
|
|
Now writing to primary buffer under Windoze when allowed by hardware. </li>
|
|
<li>
|
|
Cleaned up Object.h a bit. </li>
|
|
<li>
|
|
Pulled various utility and thread functions out of syntmono.cpp (to aid readability of the code). </li>
|
|
</ul>
|
|
<h3><a class="anchor" name="v2dot02">
|
|
Version 2.02</a></h3>
|
|
<ul>
|
|
<li>
|
|
Created RawWave abstract class, with subclasses of RawLoop (looping rawwave oscillator), RawShot (non-looping, non-interpolating rawwave player ... used to be RawWvIn), and RawInterp (looping or non-looping, interpolating rawwave player ... used to be RawWave). </li>
|
|
<li>
|
|
Modified DrumSynt to correctly handle sample rates different than 22050 Hz. </li>
|
|
<li>
|
|
Modified syntmono parsing vs. tick routine so that some ticking occurs between each message. When multiple messages are waiting to be processed, the time between message updates is inversely proportional to the number of messages in the buffer. </li>
|
|
<li>
|
|
Fixed DirectSound playback bug in WinXX distribution. Sound was being played at 8-bit, 22 kHz in all cases. Playback is now 16-bit and dependent on SRATE. </li>
|
|
<li>
|
|
Fixed bug in MD2SKINI which prevented some NoteOff statements from being output. </li>
|
|
<li>
|
|
This distribution includes an example STK project, mus151, which demonstrates a means for keeping a user's personal projects separate from the main distribution. This is highly recommended, in order to simplify upgrades to future STK releases. </li>
|
|
</ul>
|
|
<h3><a class="anchor" name="v2">
|
|
Version 2</a></h3>
|
|
<ul>
|
|
<li>
|
|
Unification of the capabilities of STK across the various platforms. All of the previous SGI functionality has been ported to Linux and Windows, including realtime sound output and MIDI input. </li>
|
|
<li>
|
|
MIDI input (with optional time-stamping) supported on SGI, Linux (OSS device drivers only), and Windows operating systems. Time stamping under IRIX and Windows is quantized to milliseconds and under Linux to hundredths of a second. </li>
|
|
<li>
|
|
Various Sound Output Options - .wav, .snd, and .mat (Matlab MAT-file) soundfile outputs are supported on all operating systems. I hacked out the MAT-file structure, so you don't have to include any platform-specific libraries. Realtime sound output is provided as well, except under NeXTStep. </li>
|
|
<li>
|
|
Multiple Reverberator Implementations - Reverb subclasses of <a class="el" href="classJCRev.html">JCRev</a> and <a class="el" href="classNRev.html">NRev</a> (popular reverberator implementations from CCRMA) have been written. Perry's original reverb implementation still exists as <a class="el" href="classPRCRev.html">PRCRev</a>. All reverberators now take a T60 initializer argument. </li>
|
|
<li>
|
|
MD2SKINI - A program which parses a MIDI input stream and spits out SKINI code. The output of MD2SKINI is typically piped into an STK instrument executable (eg. <code>MD2SKINI | syntmono <a class="el" href="classClarinet.html">Clarinet</a> -r -i</code>). In addition, you can supply a filename argument to MD2SKINI and have it simultaneously record a SKINI score file for future reuse. </li>
|
|
<li>
|
|
Modifications to <em>Object.h</em> for OS_TYPE compilation dependencies. <em>Makefile</em> automatically determines OS_TYPE when invoked (if you have the GNU makefile utilities installed on your system). </li>
|
|
<li>
|
|
A single distribution for all platforms. The Unix and Windows versions have been merged into a single set of classes. Makefiles and Visual C++ workspace/project files are provided for compiling. </li>
|
|
</ul>
|
|
<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>©1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
|
</table>
|
|
|
|
</BODY>
|
|
</HTML>
|