Version 4.4.2

This commit is contained in:
Gary Scavone
2013-09-29 23:15:24 +02:00
committed by Stephen Sinclair
parent b6a2202011
commit baca57040b
221 changed files with 1281 additions and 913 deletions

View File

@@ -1,6 +1,6 @@
The Synthesis ToolKit in C++ (STK) The Synthesis ToolKit in C++ (STK)
By Perry R. Cook and Gary P. Scavone, 1995-2009. By Perry R. Cook and Gary P. Scavone, 1995-2010.
The Synthesis ToolKit in C++ can be used in a variety of ways, depending on your particular needs. Some people just choose the classes they need for a particular project and copy those to their project directory. Others like to compile and link to a library of object files. STK was not designed with one particular style of use in mind. The Synthesis ToolKit in C++ can be used in a variety of ways, depending on your particular needs. Some people just choose the classes they need for a particular project and copy those to their project directory. Others like to compile and link to a library of object files. STK was not designed with one particular style of use in mind.

25
Makefile.in Normal file
View File

@@ -0,0 +1,25 @@
### Do not edit -- Generated by 'configure --with-whatever' from Makefile.in
all :
cd src && $(MAKE)
cd projects/demo && $(MAKE) libdemo
cd projects/effects && $(MAKE) libeffects
cd projects/ragamatic && $(MAKE) libragamat
cd projects/examples && $(MAKE) -f libMakefile
clean :
-rm -f *~
cd src && $(MAKE) clean
cd projects/demo && $(MAKE) clean
cd projects/effects && $(MAKE) clean
cd projects/ragamatic && $(MAKE) clean
cd projects/examples && $(MAKE) clean
distclean: clean
-rm -rf config.log config.status autom4te.cache Makefile
cd src && $(MAKE) distclean
cd projects/demo && $(MAKE) distclean
cd projects/effects && $(MAKE) distclean
cd projects/ragamatic && $(MAKE) distclean
cd projects/examples && $(MAKE) distclean

6
README
View File

@@ -1,6 +1,6 @@
The Synthesis ToolKit in C++ (STK) The Synthesis ToolKit in C++ (STK)
By Perry R. Cook and Gary P. Scavone, 1995-2009. By Perry R. Cook and Gary P. Scavone, 1995-2010.
This distribution of the Synthesis ToolKit in C++ (STK) contains the following: This distribution of the Synthesis ToolKit in C++ (STK) contains the following:
@@ -27,7 +27,7 @@ portable (it's mostly platform-independent C and C++ code), and it's
completely user-extensible (all source included, no unusual libraries, completely user-extensible (all source included, no unusual libraries,
and no hidden drivers). We like to think that this increases the and no hidden drivers). We like to think that this increases the
chances that our programs will still work in another 5-10 years. In chances that our programs will still work in another 5-10 years. In
fact, the ToolKit has been working continuously for nearly 10 years fact, the ToolKit has been working continuously for nearly 15 years
now. STK currently runs with "realtime" support (audio and MIDI) on now. STK currently runs with "realtime" support (audio and MIDI) on
Linux, Macintosh OS X, and Windows computer platforms. Generic, Linux, Macintosh OS X, and Windows computer platforms. Generic,
non-realtime support has been tested under NeXTStep, Sun, and other non-realtime support has been tested under NeXTStep, Sun, and other
@@ -146,7 +146,7 @@ LICENSE:
STK WWW site: http://ccrma.stanford.edu/software/stk/ STK WWW site: http://ccrma.stanford.edu/software/stk/
The Synthesis ToolKit in C++ (STK) The Synthesis ToolKit in C++ (STK)
Copyright (c) 1995-2009 Perry R. Cook and Gary P. Scavone Copyright (c) 1995-2010 Perry R. Cook and Gary P. Scavone
Permission is hereby granted, free of charge, to any person obtaining Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the a copy of this software and associated documentation files (the

View File

@@ -2,7 +2,7 @@
AC_INIT(STK, 4.4, gary@music.mcgill.ca, stk) AC_INIT(STK, 4.4, gary@music.mcgill.ca, stk)
AC_CONFIG_AUX_DIR(config) AC_CONFIG_AUX_DIR(config)
AC_CONFIG_SRCDIR(src/Stk.cpp) AC_CONFIG_SRCDIR(src/Stk.cpp)
AC_CONFIG_FILES(src/Makefile projects/demo/Makefile projects/effects/Makefile projects/ragamatic/Makefile projects/examples/Makefile projects/examples/libMakefile) AC_CONFIG_FILES(Makefile src/Makefile projects/demo/Makefile projects/effects/Makefile projects/ragamatic/Makefile projects/examples/Makefile projects/examples/libMakefile)
# Fill GXX with something before test. # Fill GXX with something before test.
AC_SUBST( GXX, ["no"] ) AC_SUBST( GXX, ["no"] )

View File

@@ -1,6 +1,6 @@
The Synthesis ToolKit in C++ (STK) The Synthesis ToolKit in C++ (STK)
By Perry R. Cook and Gary P. Scavone, 1995-2009. By Perry R. Cook and Gary P. Scavone, 1995-2010.
Please read the file README and INSTALL for more general STK information. Please read the file README and INSTALL for more general STK information.

View File

@@ -1,21 +1,16 @@
The Synthesis ToolKit in C++ (STK) The Synthesis ToolKit in C++ (STK)
By Perry R. Cook and Gary P. Scavone, 1995-2009. By Perry R. Cook and Gary P. Scavone, 1995-2010.
Please read the file README and INSTALL for more general STK information. Please read the file README and INSTALL for more general STK information.
The default realtime support for Macintosh OS X uses the CoreAudio HAL API and is specified during compilation using the __MACOSX_CORE__ preprocessor definition. There is also support for the JACK audio server using the __UNIX_JACK__ preprocessor definition. The default realtime support for Macintosh OS X uses the CoreAudio HAL API and is specified during compilation using the __MACOSX_CORE__ preprocessor definition. There is also support for the JACK audio server using the __UNIX_JACK__ preprocessor definition.
It is necessary to install the OS X developer kit in order to compile STK. STK was successfully tested on OS X versions 10.5. It is necessary to install the OS X developer kit in order to compile STK. STK was successfully tested on OS X versions 10.6.
The internal Macintosh audio hardware typically supports a sample rate of 44100 Hz only. The default STK sample rate is now 44100 Hz and all current example programs use this rate. However, it is possible to manually override this value in some programs from the command-line. The default sample rate is set in Stk.h. In addition, the RT_BUFFER_SIZE, specified in Stk.h, could be increased (to a higher power of two) for more robust performance.
There is a potential conflict between the STK Delay class and a Delay() function declared in OSUtils.h (which is included via <CoreServices/CoreServices.h>). In general, this conflict can be avoided via the use of a namespace (an explicit Delay::Delay declaration), though this made the Windows Visual C++ compiler barf. If you use STK classes within a project that includes the OSUtils.h file, you will likely need to make changes in STK classes that use the Delay class.
Tcl/Tk on OS X: Tcl/Tk on OS X:
The tcl/tk interpreter does not ship by default with OS X, but must be downloaded from the internet. The latest Tcl/Tk Aqua distribution (http://www.apple.com/downloads/macosx/unix_open_source/tcltk.html) has been successfully tested on 10.2 and 10.3 systems. The default installation will place a link to the wish interpretor at /usr/bin/wish. I think that tcl/tk interpreter is now included in the XCode package, since I haven't had to download it for several years now.
It appears that socket support in Tcl/Tk on OS X uses the Nagle algorithm, which produces poor response between changes made in the tcl/tk script and the resulting audio updates. Note that this is only a problem when using a socket connection from a Tcl/Tk script. It appears that socket support in Tcl/Tk on OS X uses the Nagle algorithm, which produces poor response between changes made in the tcl/tk script and the resulting audio updates. Note that this is only a problem when using a socket connection from a Tcl/Tk script.

View File

@@ -1,6 +1,6 @@
The Synthesis ToolKit in C++ (STK) The Synthesis ToolKit in C++ (STK)
By Perry R. Cook and Gary P. Scavone, 1995-2009. By Perry R. Cook and Gary P. Scavone, 1995-2010.
Please read the file README and INSTALL for more general STK information. Please read the file README and INSTALL for more general STK information.

View File

@@ -1,6 +1,6 @@
The Synthesis ToolKit in C++ (STK) The Synthesis ToolKit in C++ (STK)
By Perry R. Cook and Gary P. Scavone, 1995-2009. By Perry R. Cook and Gary P. Scavone, 1995-2010.
Please read the file README and INSTALL for more general STK information. Please read the file README and INSTALL for more general STK information.

View File

@@ -1,15 +1,15 @@
The Synthesis ToolKit in C++ (STK) The Synthesis ToolKit in C++ (STK)
By Perry R. Cook and Gary P. Scavone, 1995-2009. By Perry R. Cook and Gary P. Scavone, 1995-2010.
Please read the file README for more general STK information. Please read the file README for more general STK information.
DirectX and WindowsNT Issues: DirectX and WindowsNT Issues:
----------------------------- -----------------------------
STK is currently distributed with Visual C++ .NET project and workspace files. It no longer compiles with Visual C++ 6.0. I gave up attempting to fix all the problems created by such a bad compiler. This version of STK has been tested using Visual C++ .NET. As well, the configure script now supprots MinGW. STK is currently distributed with Visual C++ .NET project and workspace files. It no longer compiles with Visual C++ 6.0. I gave up attempting to fix all the problems created by such a bad compiler. This version of STK has been tested using Visual C++ .NET. As well, the configure script now supports MinGW.
IMPORTANT VC++ NOTE: When compiling "release" versions of STK programs, link to the release multithreaded library. When compiling "debug" versions, link to the debug multithreaded library. Compiler errors will result otherwise. Also, the Microsoft folk are up to their old habits of trying to change standards. The .NET compiler will complain about cerr for some reason. IMPORTANT VC++ NOTE: When compiling "release" versions of STK programs, link to the release multithreaded library. When compiling "debug" versions, link to the debug multithreaded library. Compiler errors will result otherwise.
Both the DirectSound and Steinberg ASIO audio APIs are supported for realtime audio input/output. The Visual C++ project files included with this distribution are configured to use the DirectSound API. In order to use the ASIO API, it is necessary to change the preprocessor definition from __WINDOWS_DS__ to __WINDOWS_ASIO__, as well as include all the files in the /src/include/ directory (i.e. asio.h, asio.cpp, ...). If you have a good quality soundcard and a native ASIO driver (not emulated), you are likely to get much better input/output response using that. Both the DirectSound and Steinberg ASIO audio APIs are supported for realtime audio input/output. The Visual C++ project files included with this distribution are configured to use the DirectSound API. In order to use the ASIO API, it is necessary to change the preprocessor definition from __WINDOWS_DS__ to __WINDOWS_ASIO__, as well as include all the files in the /src/include/ directory (i.e. asio.h, asio.cpp, ...). If you have a good quality soundcard and a native ASIO driver (not emulated), you are likely to get much better input/output response using that.
@@ -45,21 +45,6 @@ WINDOWS XP/2000:
There is a big advantage in using Windows XP/2000 over 95/98 with STK in that piping works, just as under unix. Also, the scheduler in 2000/XP seems to be much better, so socketed messages don't get clumped together like they do in Windows 95/98. Simply fire up a script file (ex. StkDemo.bat) by either double-clicking on it or typing it within a shell. There is a big advantage in using Windows XP/2000 over 95/98 with STK in that piping works, just as under unix. Also, the scheduler in 2000/XP seems to be much better, so socketed messages don't get clumped together like they do in Windows 95/98. Simply fire up a script file (ex. StkDemo.bat) by either double-clicking on it or typing it within a shell.
WINDOWS 95/98:
PLAY SKINI SCOREFILES IN REALTIME:
demo Clarinet -or -if scores/streetsf.ski
USE TCL/TK GUIs FOR REALTIME CONTROL:
1. Open a DOS console window and start syntmono (eg. demo Clarinet -or -is).
2. Double click on a Tcl/Tk file in the tcl/ subdirectory of the demo directory (eg. Demo.tcl) from the Windows Explorer to start the GUI. Select the "communications" menu item and "Socket" and make the connection.
3. Start moving the sliders to control the instrument.
USE REALTIME MIDI INPUT FOR CONTROL: USE REALTIME MIDI INPUT FOR CONTROL:
1. Open a DOS console window and start syntmono with MIDI input (eg. demo Clarinet -or -im). 1. Open a DOS console window and start syntmono with MIDI input (eg. demo Clarinet -or -im).
@@ -67,8 +52,3 @@ USE REALTIME MIDI INPUT FOR CONTROL:
This assumes you already have MIDI setup correctly for your computer. This assumes you already have MIDI setup correctly for your computer.
WINDOWS NT ONLY:
Realtime piping seems to work under WindowsNT in much the same way as on Unix platforms. Thus, it is possible to pipe realtime control data to syntmono under WindowsNT as well. Note, however, that the DirectSoundCapture API does not exist for WindowsNT, so it is necessary to use an ASIO audio driver and the STK ASIO support.

View File

@@ -1,14 +1,23 @@
The Synthesis ToolKit in C++ (STK) The Synthesis ToolKit in C++ (STK)
By Perry R. Cook and Gary P. Scavone, 1995-2009. By Perry R. Cook and Gary P. Scavone, 1995-2010.
v4.4.1: (3 June 2009) v4.4.2: (4 February 2010)
- added various header file includes for newer compilers
- new LentPitShift class (thanks to Francois Germain)
- added "addTo" function to Delay class
- updates to RtAudio and RtMidi
- bug fixes in Voicer class (thanks Richard Dobson!)
- bug fixes in Granulate class
- added Makefile.in to compile library and all projects, as well as clean and distclean all
v4.4.1: (3 June 2010)
- added multi-channel/frame tick() virtual function to WvIn and WvOut abstract base classes (required update to RtWvOut class) - added multi-channel/frame tick() virtual function to WvIn and WvOut abstract base classes (required update to RtWvOut class)
- updated configure script to select g++ compiler by default - updated configure script to select g++ compiler by default
- in demo.cpp: removed voicer grouping for messages, fixing polyphony when messages are on the same MIDI/SKINI channel - in demo.cpp: removed voicer grouping for messages, fixing polyphony when messages are on the same MIDI/SKINI channel
- updates to RtAudio and RtMidi - updates to RtAudio and RtMidi
v4.4: (30 April 2009) v4.4: (30 April 2010)
- all classes embedded in the "stk" namespace (except RtAudio, RtMidi, and RtError) - all classes embedded in the "stk" namespace (except RtAudio, RtMidi, and RtError)
- class WaveLoop renamed FileLoop - class WaveLoop renamed FileLoop
- significant efficiency improvements via code restructuring and inlining - significant efficiency improvements via code restructuring and inlining

View File

@@ -31,7 +31,7 @@ PROJECT_NAME = STK
# This could be handy for archiving the generated documentation or # This could be handy for archiving the generated documentation or
# if some version control system is used. # if some version control system is used.
PROJECT_NUMBER = 4.4.1 PROJECT_NUMBER = 4.4.2
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put. # base path where the generated documentation will be put.

View File

@@ -1,14 +1,24 @@
/*! \page download Download, Release Notes, and Bug Fixes /*! \page download Download, Release Notes, and Bug Fixes
\section down Download Version 4.4.1 (3 June 2009): \section down Download Version 4.4.2 (4 February 2010):
<UL> <UL>
<LI><A HREF="http://ccrma.stanford.edu/software/stk/release/stk-4.4.1.tar.gz">Source distribution</A></LI> <LI><A HREF="http://ccrma.stanford.edu/software/stk/release/stk-4.4.2.tar.gz">Source distribution</A></LI>
</UL> </UL>
\section notes Release Notes: \section notes Release Notes:
\subsection v4dot4dot2 Version 4.4.2
<ul>
<li>Added various header file includes for newer compilers.</li>
<li>Updates to RtAudio and RtMidi.</li>
<li>New LentPitShift class (thanks to Francois Germain).</li>
<li>Bug fixes in Voicer class (thanks Richard Dobson!).</li>
<li>Added Makefile.in to compile library and all projects, as well as clean and distclean.</li>
</ul>
\subsection v4dot4dot1 Version 4.4.1 \subsection v4dot4dot1 Version 4.4.1
<ul> <ul>

View File

@@ -24,7 +24,7 @@ work with any standard C++ compiler.
STK WWW site: http://ccrma.stanford.edu/software/stk/ STK WWW site: http://ccrma.stanford.edu/software/stk/
The Synthesis ToolKit in C++ (STK) The Synthesis ToolKit in C++ (STK)
Copyright (c) 1995-2009 Perry R. Cook and Gary P. Scavone Copyright (c) 1995-2010 Perry R. Cook and Gary P. Scavone
Permission is hereby granted, free of charge, to any person obtaining Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the a copy of this software and associated documentation files (the

View File

@@ -2,7 +2,7 @@
<table> <table>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr> <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-2009 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr> <tr><td>&copy;1995-2010 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table> </table>
</BODY> </BODY>

View File

@@ -1,6 +1,6 @@
STK: A ToolKit of Audio Synthesis Classes and Instruments in C++ STK: A ToolKit of Audio Synthesis Classes and Instruments in C++
By Perry R. Cook and Gary P. Scavone, 1995-2009. By Perry R. Cook and Gary P. Scavone, 1995-2010.
STK Classes - See the HTML documentation in the html directory for complete information. STK Classes - See the HTML documentation in the html directory for complete information.

View File

@@ -14,7 +14,7 @@ namespace stk {
messages, keeping track of its state. The \e state = ADSR::DONE messages, keeping track of its state. The \e state = ADSR::DONE
after the envelope value reaches 0.0 in the ADSR::RELEASE state. after the envelope value reaches 0.0 in the ADSR::RELEASE state.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -26,7 +26,7 @@ namespace stk {
to \e keyOn and \e keyOff messages by ramping to to \e keyOn and \e keyOff messages by ramping to
1.0 on keyOn and to 0.0 on keyOff. 1.0 on keyOn and to 0.0 on keyOff.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -35,7 +35,7 @@ namespace stk {
type who should worry about this (making type who should worry about this (making
money) worry away. money) worry away.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -13,7 +13,7 @@ namespace stk {
Methods are provided for creating a resonance or notch in the Methods are provided for creating a resonance or notch in the
frequency response while maintaining a constant filter gain. frequency response while maintaining a constant filter gain.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -25,7 +25,7 @@ namespace stk {
- Vibrato Gain = 1 - Vibrato Gain = 1
- Volume = 128 - Volume = 128
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -43,7 +43,7 @@ namespace stk {
- Register State = 1 - Register State = 1
- Breath Pressure = 128 - Breath Pressure = 128
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -13,7 +13,7 @@ namespace stk {
This class implements a simple bowed string This class implements a simple bowed string
non-linear function, as described by Smith (1986). non-linear function, as described by Smith (1986).
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -30,7 +30,7 @@ namespace stk {
- Vibrato Gain = 1 - Vibrato Gain = 1
- Volume = 128 - Volume = 128
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -28,7 +28,7 @@ namespace stk {
- Vibrato Gain = 1 - Vibrato Gain = 1
- Volume = 128 - Volume = 128
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -14,7 +14,7 @@ namespace stk {
This class implements a chorus effect. It takes a monophonic This class implements a chorus effect. It takes a monophonic
input signal and produces a stereo output signal. input signal and produces a stereo output signal.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -31,7 +31,7 @@ namespace stk {
- Vibrato Gain = 1 - Vibrato Gain = 1
- Breath Pressure = 128 - Breath Pressure = 128
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -17,7 +17,7 @@ namespace stk {
A non-interpolating delay line is typically used in fixed A non-interpolating delay line is typically used in fixed
delay-length applications, such as for reverberation. delay-length applications, such as for reverberation.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/
@@ -63,6 +63,14 @@ public:
*/ */
StkFloat contentsAt( unsigned long tapDelay ); StkFloat contentsAt( unsigned long tapDelay );
//! Sum the provided value into the delay line at \e tapDelay samples from the input.
/*!
The new value is returned. The tap point is determined modulo
the delay-line length and is relative to the last input value
(i.e., a tapDelay of zero sums into the last input value).
*/
StkFloat addTo( unsigned long tapDelay, StkFloat value );
//! Return the last computed output value. //! Return the last computed output value.
StkFloat lastOut( void ) const { return lastFrame_[0]; }; StkFloat lastOut( void ) const { return lastFrame_[0]; };

View File

@@ -21,7 +21,7 @@ namespace stk {
minimum delay possible in this implementation is limited to a minimum delay possible in this implementation is limited to a
value of 0.5. value of 0.5.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -20,7 +20,7 @@ namespace stk {
delay setting. The use of higher order Lagrange interpolators can delay setting. The use of higher order Lagrange interpolators can
typically improve (minimize) this attenuation characteristic. typically improve (minimize) this attenuation characteristic.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -20,7 +20,7 @@ namespace stk {
of simultaneous voices) via a #define in the of simultaneous voices) via a #define in the
Drummer.h. Drummer.h.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -12,7 +12,7 @@ namespace stk {
This class implements an echo effect. This class implements an echo effect.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -14,7 +14,7 @@ namespace stk {
subclasses. It is general enough to support both monophonic and subclasses. It is general enough to support both monophonic and
polyphonic input/output classes. polyphonic input/output classes.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -14,7 +14,7 @@ namespace stk {
specified \e rate. It also responds to simple \e keyOn and \e specified \e rate. It also responds to simple \e keyOn and \e
keyOff messages, ramping to 1.0 on keyOn and to 0.0 on keyOff. keyOff messages, ramping to 1.0 on keyOn and to 0.0 on keyOff.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -30,7 +30,7 @@ namespace stk {
type who should worry about this (making type who should worry about this (making
money) worry away. money) worry away.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -33,7 +33,7 @@ namespace stk {
type who should worry about this (making type who should worry about this (making
money) worry away. money) worry away.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -19,7 +19,7 @@ namespace stk {
the overloaded one that takes an StkFrames object for the overloaded one that takes an StkFrames object for
multi-channel and/or multi-frame data. multi-channel and/or multi-frame data.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -32,7 +32,7 @@ namespace stk {
filling a matrix row. The sample rate for filling a matrix row. The sample rate for
MAT-files is assumed to be 44100 Hz. MAT-files is assumed to be 44100 Hz.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -24,7 +24,7 @@ namespace stk {
type, the data type will automatically be modified. Compressed type, the data type will automatically be modified. Compressed
data types are not supported. data types are not supported.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -35,7 +35,7 @@ namespace stk {
See the FileRead class for a description of the supported audio See the FileRead class for a description of the supported audio
file formats. file formats.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -25,7 +25,7 @@ namespace stk {
Currently, FileWvOut is non-interpolating and the output rate is Currently, FileWvOut is non-interpolating and the output rate is
always Stk::sampleRate(). always Stk::sampleRate().
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -14,7 +14,7 @@ namespace stk {
filter subclasses. It is general enough to support both filter subclasses. It is general enough to support both
monophonic and polyphonic input/output classes. monophonic and polyphonic input/output classes.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -23,7 +23,7 @@ namespace stk {
This structure results in one extra multiply per computed sample, This structure results in one extra multiply per computed sample,
but allows easy control of the overall filter gain. but allows easy control of the overall filter gain.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -32,7 +32,7 @@ namespace stk {
- Vibrato Gain = 1 - Vibrato Gain = 1
- Breath Pressure = 128 - Breath Pressure = 128
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -13,7 +13,7 @@ namespace stk {
over time from one frequency setting to another. It provides over time from one frequency setting to another. It provides
methods for controlling the sweep rate and target frequency. methods for controlling the sweep rate and target frequency.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -13,7 +13,7 @@ namespace stk {
implement tables or other types of input to output function implement tables or other types of input to output function
mappings. mappings.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -13,7 +13,7 @@ namespace stk {
generator sample-source subclasses. It is general enough to generator sample-source subclasses. It is general enough to
support both monophonic and polyphonic output classes. support both monophonic and polyphonic output classes.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -21,7 +21,7 @@ namespace stk {
Chris Rolfe and Damian Keller, though there are likely to be a Chris Rolfe and Damian Keller, though there are likely to be a
number of differences in the actual implementation. number of differences in the actual implementation.
by Gary Scavone, 2005 - 2009. by Gary Scavone, 2005 - 2010.
*/ */
/***************************************************/ /***************************************************/
@@ -139,7 +139,8 @@ class Granulate: public Generator
unsigned long decayCount; unsigned long decayCount;
unsigned long delayCount; unsigned long delayCount;
unsigned long counter; unsigned long counter;
unsigned long pointer; //unsigned long pointer;
StkFloat pointer;
unsigned long startPointer; unsigned long startPointer;
unsigned int repeats; unsigned int repeats;
GrainState state; GrainState state;
@@ -155,7 +156,8 @@ class Granulate: public Generator
StkFrames data_; StkFrames data_;
std::vector<Grain> grains_; std::vector<Grain> grains_;
Noise noise; Noise noise;
long gPointer_; //long gPointer_;
StkFloat gPointer_;
// Global grain parameters. // Global grain parameters.
unsigned int gDuration_; unsigned int gDuration_;

View File

@@ -31,7 +31,7 @@ namespace stk {
type who should worry about this (making type who should worry about this (making
money) worry away. money) worry away.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -27,7 +27,7 @@ namespace stk {
This structure results in one extra multiply per computed sample, This structure results in one extra multiply per computed sample,
but allows easy control of the overall filter gain. but allows easy control of the overall filter gain.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -31,7 +31,7 @@ namespace stk {
data type for the incoming stream is signed 16-bit integers, data type for the incoming stream is signed 16-bit integers,
though any of the defined StkFormats are permissible. though any of the defined StkFormats are permissible.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -25,7 +25,7 @@ namespace stk {
data type is signed 16-bit integers but any of the defined data type is signed 16-bit integers but any of the defined
StkFormats are permissible. StkFormats are permissible.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -12,7 +12,7 @@ namespace stk {
This class provides a common interface for This class provides a common interface for
all STK instruments. all STK instruments.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -17,7 +17,7 @@ namespace stk {
followed by four parallel comb filters, and two decorrelation followed by four parallel comb filters, and two decorrelation
delay lines in parallel at the output. delay lines in parallel at the output.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -16,7 +16,7 @@ namespace stk {
Consult Fletcher and Rossing, Karjalainen, Consult Fletcher and Rossing, Karjalainen,
Cook, and others for more information. Cook, and others for more information.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

267
include/LentPitShift.h Normal file
View File

@@ -0,0 +1,267 @@
#ifndef STK_LENLentPitShift_H
#define STK_LENLentPitShift_H
#include "Effect.h"
#include "Delay.h"
namespace stk {
/***************************************************/
/*! \class LentPitShift
\brief Pitch shifter effect class based on the Lent algorithm.
This class implements a pitch shifter using pitch
tracking and sample windowing and shifting.
by Francois Germain, 2009.
*/
/***************************************************/
class LentPitShift : public Effect
{
public:
//! Class constructor.
LentPitShift( StkFloat periodRatio = 1.0, int tMax = RT_BUFFER_SIZE );
~LentPitShift( void ) {
delete window;
window = NULL;
delete dt;
dt = NULL;
delete dpt;
dpt = NULL;
delete cumDt;
cumDt = NULL;
}
//! Reset and clear all internal state.
void clear( void );
//! Set the pitch shift factor (1.0 produces no shift).
void setShift( StkFloat shift );
//! Input one sample to the filter and return one output.
StkFloat tick( StkFloat input );
//! Take a channel of the StkFrames object as inputs to the filter and replace with corresponding outputs.
/*!
The StkFrames argument reference is returned. The \c channel
argument must be less than the number of channels in the
StkFrames argument (the first channel is specified by 0).
However, range checking is only performed if _STK_DEBUG_ is
defined during compilation, in which case an out-of-range value
will trigger an StkError exception.
*/
StkFrames& tick( StkFrames& frames, unsigned int channel = 0 );
//! Take a channel of the \c iFrames object as inputs to the filter and write outputs to the \c oFrames object.
/*!
The \c iFrames object reference is returned. Each channel
argument must be less than the number of channels in the
corresponding StkFrames argument (the first channel is specified
by 0). However, range checking is only performed if _STK_DEBUG_
is defined during compilation, in which case an out-of-range value
will trigger an StkError exception.
*/
StkFrames& tick( StkFrames& iFrames, StkFrames &oFrames, unsigned int iChannel = 0, unsigned int oChannel = 0 );
protected:
//! Apply the effect on the input samples and store it.
/*!
The samples stored in the input frame vector are processed
and the delayed result are stored in the output frame vector
*/
void process( );
// Frame storage vectors for process function
StkFrames inputFrames;
StkFrames outputFrames;
int ptrFrames; // writing pointer
// Input delay line
Delay inputLine_;
int inputPtr;
// Output delay line
Delay outputLine_;
double outputPtr;
// Pitch tracker variables
unsigned long tMax_; // Maximal period measurable by the pitch tracker.
// It is also the size of the window used by the pitch tracker and
// the size of the frames that can be computed by the tick function
StkFloat threshold_; // Threshold of detection for the pitch tracker
unsigned long lastPeriod_; // Result of the last pitch tracking loop
StkFloat* dt; // Array containing the euclidian distance coefficients
StkFloat* cumDt; // Array containing the cumulative sum of the coefficients in dt
StkFloat* dpt; // Array containing the pitch tracking function coefficients
// Pitch shifter variables
StkFloat env[2]; // Coefficients for the linear interpolation when modifying the output samples
StkFloat* window; // Hamming window used for the input portion extraction
double periodRatio_; // Ratio of modification of the signal period
StkFrames zeroFrame; // Frame of tMax_ zero samples
// Coefficient delay line that could be used for a dynamic calculation of the pitch
//Delay* coeffLine_;
};
inline void LentPitShift::process()
{
StkFloat x_t; // input coefficient
StkFloat x_t_T; // previous input coefficient at T samples
StkFloat coeff; // new coefficient for the difference function
int alternativePitch = tMax_; // Global minimum storage
lastPeriod_ = tMax_+1; // Storage of the lowest local minimum under the threshold
// Loop variables
unsigned long delay_;
unsigned int n;
// Initialization of the dt coefficients. Since the
// frames are of tMax_ length, there is no overlapping
// between the successive windows where pitch tracking
// is performed.
for ( delay_=1; delay_<=tMax_; delay_++ )
dt[delay_] = 0.;
// Calculation of the dt coefficients and update of the input delay line.
for ( n=0; n<inputFrames.size(); n++ ) {
x_t = inputLine_.tick( inputFrames[ n ] );
for ( delay_=1; delay_<= tMax_; delay_++ ) {
x_t_T = inputLine_.contentsAt( delay_ );
coeff = x_t - x_t_T;
dt[delay_] += coeff * coeff;
}
}
// Calculation of the pitch tracking function and test for the minima.
for ( delay_=1; delay_<=tMax_; delay_++ ) {
cumDt[delay_] = dt[delay_] + cumDt[delay_-1];
dpt[delay_] = dt[delay_] * delay_ / cumDt[delay_];
// Look for a minimum
if ( dpt[delay_-1]-dpt[delay_-2] < 0 && dpt[delay_]-dpt[delay_-1] > 0 ) {
// Check if the minimum is under the threshold
if ( dpt[delay_-1] < threshold_ ){
lastPeriod_ = delay_-1;
// If a minimum is found, we can stop the loop
break;
}
else if ( dpt[alternativePitch] > dpt[delay_-1] )
// Otherwise we store it if it is the current global minimum
alternativePitch = delay_-1;
}
}
// Test for the last period length.
if ( dpt[delay_]-dpt[delay_-1] < 0 ) {
if ( dpt[delay_] < threshold_ )
lastPeriod_ = delay_;
else if ( dpt[alternativePitch] > dpt[delay_] )
alternativePitch = delay_;
}
if ( lastPeriod_ == tMax_+1 )
// No period has been under the threshold so we used the global minimum
lastPeriod_ = alternativePitch;
// We put the new zero output coefficients in the output delay line and
// we get the previous calculated coefficients
outputLine_.tick( zeroFrame, outputFrames );
// Initialization of the Hamming window used in the algorithm
for ( int n=-(int)lastPeriod_; n<(int)lastPeriod_; n++ )
window[n+lastPeriod_] = (1 + cos(PI*n/lastPeriod_)) / 2 ;
int M; // Index of reading in the input delay line
int N; // Index of writing in the output delay line
double sample; // Temporary storage for the new coefficient
// We loop for all the frames of length lastPeriod_ presents between inputPtr and tMax_
for ( ; inputPtr<(int)(tMax_-lastPeriod_); inputPtr+=lastPeriod_ ) {
// Test for the decision of compression/expansion
while ( outputPtr < inputPtr ) {
// Coefficients for the linear interpolation
env[1] = fmod( outputPtr + tMax_, 1.0 );
env[0] = 1.0 - env[1];
M = tMax_ - inputPtr + lastPeriod_ - 1; // New reading pointer
N = 2*tMax_ - (unsigned long)floor(outputPtr + tMax_) + lastPeriod_ - 1; // New writing pointer
for ( unsigned int j=0; j<2*lastPeriod_; j++,M--,N-- ) {
sample = inputLine_.contentsAt(M) * window[j] / 2.;
// Linear interpolation
outputLine_.addTo(N, env[0] * sample);
outputLine_.addTo(N-1, env[1] * sample);
}
outputPtr = outputPtr + lastPeriod_ * periodRatio_; // new output pointer
}
}
// Shifting of the pointers waiting for the new frame of length tMax_.
outputPtr -= tMax_;
inputPtr -= tMax_;
}
inline StkFloat LentPitShift :: tick( StkFloat input )
{
StkFloat sample;
inputFrames[ptrFrames] = input;
sample = outputFrames[ptrFrames++];
// Check for end condition
if ( ptrFrames == (int) inputFrames.size() ){
ptrFrames = 0;
process( );
}
return sample;
}
inline StkFrames& LentPitShift :: tick( StkFrames& frames, unsigned int channel )
{
#if defined(_STK_DEBUG_)
if ( channel >= frames.channels() ) {
errorString_ << "LentPitShift::tick(): channel and StkFrames arguments are incompatible!";
handleError( StkError::FUNCTION_ARGUMENT );
}
#endif
StkFloat *samples = &frames[channel];
unsigned int hop = frames.channels();
for ( unsigned int i=0; i<frames.frames(); i++, samples += hop ) {
*samples = tick( *samples );
}
return frames;
}
inline StkFrames& LentPitShift :: tick( StkFrames& iFrames, StkFrames& oFrames, unsigned int iChannel, unsigned int oChannel )
{
#if defined(_STK_DEBUG_)
if ( iChannel >= iFrames.channels() || oChannel >= oFrames.channels() ) {
errorString_ << "LentPitShift::tick(): channel and StkFrames arguments are incompatible!";
handleError( StkError::FUNCTION_ARGUMENT );
}
#endif
StkFloat *iSamples = &iFrames[iChannel];
StkFloat *oSamples = &oFrames[oChannel];
unsigned int iHop = iFrames.channels(), oHop = oFrames.channels();
for ( unsigned int i=0; i<iFrames.frames(); i++, iSamples += iHop, oSamples += oHop ) {
*oSamples = tick( *iSamples );
}
return iFrames;
}
} // stk namespace
#endif

View File

@@ -31,7 +31,7 @@ namespace stk {
- String Detuning = 1 - String Detuning = 1
- Microphone Position = 128 - Microphone Position = 128
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -46,7 +46,7 @@ namespace stk {
This class is primarily for use in STK example programs but it is This class is primarily for use in STK example programs but it is
generic enough to work in many other contexts. generic enough to work in many other contexts.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -22,7 +22,7 @@ namespace stk {
Tempo changes are internally tracked by the class and reflected in Tempo changes are internally tracked by the class and reflected in
the values returned by the function getTickSeconds(). the values returned by the function getTickSeconds().
by Gary P. Scavone, 2003 - 2009. by Gary P. Scavone, 2003 - 2010.
*/ */
/**********************************************************************/ /**********************************************************************/

View File

@@ -19,7 +19,7 @@ namespace stk {
(non-sweeping BiQuad filters), where N is set (non-sweeping BiQuad filters), where N is set
during instantiation. during instantiation.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -31,7 +31,7 @@ namespace stk {
- Two Fixed = 7 - Two Fixed = 7
- Clump = 8 - Clump = 8
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -16,7 +16,7 @@ namespace stk {
modulations to give a nice, natural human modulations to give a nice, natural human
modulation function. modulation function.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -22,7 +22,7 @@ namespace stk {
- Vibrato Gain = 1 - Vibrato Gain = 1
- Gain = 128 - Gain = 128
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -29,7 +29,7 @@ namespace stk {
systems, the pthread library is used. Under systems, the pthread library is used. Under
Windows, critical sections are used. Windows, critical sections are used.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -18,7 +18,7 @@ namespace stk {
another allpass in series, followed by two allpass filters in another allpass in series, followed by two allpass filters in
parallel with corresponding right and left outputs. parallel with corresponding right and left outputs.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -13,7 +13,7 @@ namespace stk {
C rand() function. The quality of the rand() C rand() function. The quality of the rand()
function varies from one OS to another. function varies from one OS to another.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -13,7 +13,7 @@ namespace stk {
provided for setting the pole position along the real axis of the provided for setting the pole position along the real axis of the
z-plane while maintaining a constant peak filter gain. z-plane while maintaining a constant peak filter gain.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -13,7 +13,7 @@ namespace stk {
provided for setting the zero position along the real axis of the provided for setting the zero position along the real axis of the
z-plane while maintaining a constant filter gain. z-plane while maintaining a constant filter gain.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -17,7 +17,7 @@ namespace stk {
allpass and comb delay filters. This class implements two series allpass and comb delay filters. This class implements two series
allpass units and two parallel comb filters. allpass units and two parallel comb filters.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -29,7 +29,7 @@ namespace stk {
type who should worry about this (making type who should worry about this (making
money) worry away. money) worry away.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -13,7 +13,7 @@ namespace stk {
set of 32 static phoneme formant parameters set of 32 static phoneme formant parameters
and provide access to those values. and provide access to those values.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -13,7 +13,7 @@ namespace stk {
This class implements a simple pitch shifter This class implements a simple pitch shifter
using delay lines. using delay lines.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -24,7 +24,7 @@ namespace stk {
use possibly subject to patents held by use possibly subject to patents held by
Stanford University, Yamaha, and others. Stanford University, Yamaha, and others.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -24,7 +24,7 @@ namespace stk {
Stanford, bearing the names of Karplus and/or Stanford, bearing the names of Karplus and/or
Strong. Strong.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -14,7 +14,7 @@ namespace stk {
coefficient. Another method is provided to create a DC blocking coefficient. Another method is provided to create a DC blocking
filter. filter.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -20,7 +20,7 @@ namespace stk {
Smith (1986), Hirschman, Cook, Scavone, and Smith (1986), Hirschman, Cook, Scavone, and
others for more information. others for more information.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -23,7 +23,7 @@ namespace stk {
- Zero Radii = 1 - Zero Radii = 1
- Envelope Gain = 128 - Envelope Gain = 128
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -33,7 +33,7 @@ namespace stk {
type who should worry about this (making type who should worry about this (making
money) worry away. money) worry away.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -10,7 +10,7 @@
RtAudio WWW site: http://www.music.mcgill.ca/~gary/rtaudio/ RtAudio WWW site: http://www.music.mcgill.ca/~gary/rtaudio/
RtAudio: realtime audio i/o C++ classes RtAudio: realtime audio i/o C++ classes
Copyright (c) 2001-2009 Gary P. Scavone Copyright (c) 2001-2010 Gary P. Scavone
Permission is hereby granted, free of charge, to any person Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files obtaining a copy of this software and associated documentation files
@@ -42,7 +42,7 @@
\file RtAudio.h \file RtAudio.h
*/ */
// RtAudio: Version 4.0.6 // RtAudio: Version 4.0.7
#ifndef __RTAUDIO_H #ifndef __RTAUDIO_H
#define __RTAUDIO_H #define __RTAUDIO_H

View File

@@ -8,7 +8,7 @@
RtMidi WWW site: http://music.mcgill.ca/~gary/rtmidi/ RtMidi WWW site: http://music.mcgill.ca/~gary/rtmidi/
RtMidi: realtime MIDI i/o C++ classes RtMidi: realtime MIDI i/o C++ classes
Copyright (c) 2003-2009 Gary P. Scavone Copyright (c) 2003-2010 Gary P. Scavone
Permission is hereby granted, free of charge, to any person Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files obtaining a copy of this software and associated documentation files
@@ -35,7 +35,7 @@
*/ */
/**********************************************************************/ /**********************************************************************/
// RtMidi: Version 1.0.10 // RtMidi: Version 1.0.11
#ifndef RTMIDI_H #ifndef RTMIDI_H
#define RTMIDI_H #define RTMIDI_H

View File

@@ -24,7 +24,7 @@ namespace stk {
that takes an StkFrames object for multi-channel and/or that takes an StkFrames object for multi-channel and/or
multi-frame data. multi-frame data.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -23,7 +23,7 @@ namespace stk {
that takes a reference to an StkFrames object for multi-channel that takes a reference to an StkFrames object for multi-channel
and/or multi-frame data. and/or multi-frame data.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -9,7 +9,7 @@
where <name> is the string used in the SKINI stream. where <name> is the string used in the SKINI stream.
by Perry R. Cook, 1995 - 2009. by Perry R. Cook, 1995 - 2010.
*/ */
/*********************************************************/ /*********************************************************/

View File

@@ -15,7 +15,7 @@ namespace stk {
This instrument provides an ADSR envelope, a one-pole filter, and This instrument provides an ADSR envelope, a one-pole filter, and
structures for an arbitrary number of attack and looped files. structures for an arbitrary number of attack and looped files.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -44,7 +44,7 @@ namespace stk {
- Vibrato Gain = 1 - Vibrato Gain = 1
- Breath Pressure = 128 - Breath Pressure = 128
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -55,7 +55,7 @@ namespace stk {
- Little Rocks = 21 - Little Rocks = 21
- Tuned Bamboo Chimes = 22 - Tuned Bamboo Chimes = 22
by Perry R. Cook, 1996 - 2009. by Perry R. Cook, 1996 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -25,7 +25,7 @@ namespace stk {
- Envelope Rate = 11 - Envelope Rate = 11
- Gain = 128 - Gain = 128
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -18,7 +18,7 @@ namespace stk {
Within STK, it is used as an excitation source for other Within STK, it is used as an excitation source for other
instruments. instruments.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -25,7 +25,7 @@ namespace stk {
Stanford, bearing the names of Karplus and/or Stanford, bearing the names of Karplus and/or
Strong. Strong.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -31,7 +31,7 @@ namespace stk {
\sa \ref skini \sa \ref skini
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -31,7 +31,7 @@ namespace stk {
number of static functions for use with external socket number of static functions for use with external socket
descriptors. descriptors.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -13,7 +13,7 @@ namespace stk {
This class implements a spherical ball with This class implements a spherical ball with
radius, mass, position, and velocity parameters. radius, mass, position, and velocity parameters.
by Perry R. Cook, 1995 - 2009. by Perry R. Cook, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -29,7 +29,7 @@ namespace stk {
- String Sustain = 11 - String Sustain = 11
- String Stretch = 1 - String Stretch = 1
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -5,7 +5,7 @@
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
#include <vector> #include <vector>
#include <stdlib.h> #include <cstdlib>
/*! \namespace stk /*! \namespace stk
\brief The STK namespace. \brief The STK namespace.
@@ -39,7 +39,7 @@ namespace stk {
STK WWW site: http://ccrma.stanford.edu/software/stk/ STK WWW site: http://ccrma.stanford.edu/software/stk/
The Synthesis ToolKit in C++ (STK) The Synthesis ToolKit in C++ (STK)
Copyright (c) 1995-2009 Perry R. Cook and Gary P. Scavone Copyright (c) 1995-2010 Perry R. Cook and Gary P. Scavone
Permission is hereby granted, free of charge, to any person Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files obtaining a copy of this software and associated documentation files
@@ -254,7 +254,7 @@ protected:
Possible future improvements in this class could include functions Possible future improvements in this class could include functions
to convert to and return other data types. to convert to and return other data types.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -17,7 +17,7 @@ namespace stk {
A non-interpolating delay line is typically used in fixed A non-interpolating delay line is typically used in fixed
delay-length applications, such as for reverberation. delay-length applications, such as for reverberation.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -26,7 +26,7 @@ namespace stk {
less than or equal to zero indicate a closed less than or equal to zero indicate a closed
or lost connection or the occurence of an error. or lost connection or the occurence of an error.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -26,7 +26,7 @@ namespace stk {
less than or equal to zero indicate a closed less than or equal to zero indicate a closed
or lost connection or the occurence of an error. or lost connection or the occurence of an error.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -42,7 +42,7 @@ namespace stk {
THREAD_RETURN THREAD_TYPE thread_function(void *ptr) THREAD_RETURN THREAD_TYPE thread_function(void *ptr)
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -33,7 +33,7 @@ namespace stk {
type who should worry about this (making type who should worry about this (making
money) worry away. money) worry away.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -13,7 +13,7 @@ namespace stk {
provided for creating a resonance in the frequency response while provided for creating a resonance in the frequency response while
maintaining a nearly constant filter gain. maintaining a nearly constant filter gain.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

View File

@@ -13,7 +13,7 @@ namespace stk {
provided for creating a "notch" in the frequency response while provided for creating a "notch" in the frequency response while
maintaining a constant filter gain. maintaining a constant filter gain.
by Perry R. Cook and Gary P. Scavone, 1995 - 2009. by Perry R. Cook and Gary P. Scavone, 1995 - 2010.
*/ */
/***************************************************/ /***************************************************/

Some files were not shown because too many files have changed in this diff Show More