Release 4.2.0 tarball

This commit is contained in:
Gary Scavone
2013-09-29 23:39:37 +02:00
committed by Stephen Sinclair
parent fe20fe92a2
commit de344668dd
347 changed files with 16972 additions and 8538 deletions

337
configure vendored
View File

@@ -1,8 +1,8 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.57 for STK 4.1.2.
# Generated by GNU Autoconf 2.57 for STK 4.2.0.
#
# Report bugs to <gary@ccrma.stanford.edu>.
# Report bugs to <gary@music.mcgill.ca>.
#
# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
# Free Software Foundation, Inc.
@@ -268,9 +268,9 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='STK'
PACKAGE_TARNAME='stk'
PACKAGE_VERSION='4.1.2'
PACKAGE_STRING='STK 4.1.2'
PACKAGE_BUGREPORT='gary@ccrma.stanford.edu'
PACKAGE_VERSION='4.2.0'
PACKAGE_STRING='STK 4.2.0'
PACKAGE_BUGREPORT='gary@music.mcgill.ca'
ac_unique_file="src/Stk.cpp"
# Factoring default headers for most tests.
@@ -310,7 +310,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CPP EGREP byte_order rawwaves include realtime sound_api debug cflags object_path warn build build_cpu build_vendor build_os host host_cpu host_vendor host_os audio_apis midiator frameworks LIBOBJS LTLIBOBJS'
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CPP EGREP byte_order rawwaves include realtime sound_api debug cflags object_path warn build build_cpu build_vendor build_os host host_cpu host_vendor host_os audio_apis frameworks LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -787,7 +787,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures STK 4.1.2 to adapt to many kinds of systems.
\`configure' configures STK 4.2.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -848,7 +848,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of STK 4.1.2:";;
short | recursive ) echo "Configuration of STK 4.2.0:";;
esac
cat <<\_ACEOF
@@ -857,7 +857,6 @@ Optional Features:
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-realtime = only compile generic non-realtime classes
--enable-debug = enable various debug output
--enable-midiator = enable native MS-124W MIDI support (linux only)
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -880,7 +879,7 @@ Some influential environment variables:
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to <gary@ccrma.stanford.edu>.
Report bugs to <gary@music.mcgill.ca>.
_ACEOF
fi
@@ -943,7 +942,7 @@ fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
STK configure 4.1.2
STK configure 4.2.0
generated by GNU Autoconf 2.57
Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
@@ -958,7 +957,7 @@ cat >&5 <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by STK $as_me 4.1.2, which was
It was created by STK $as_me 4.2.0, which was
generated by GNU Autoconf 2.57. Invocation command line was
$ $0 $@
@@ -4129,14 +4128,14 @@ echo $ECHO_N "checking whether to compile debug version... $ECHO_C" >&6
# Check whether --enable-debug or --disable-debug was given.
if test "${enable_debug+set}" = set; then
enableval="$enable_debug"
debug=-D_STK_DEBUG_
cflags=-g
debug="-D_STK_DEBUG_ -D__RTAUDIO_DEBUG__"
cflags="-g -O2"
object_path=Debug
echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
else
debug=
cflags=-O2
cflags=-O3
object_path=Release
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
@@ -4144,7 +4143,7 @@ fi;
# Check compiler and use -Wall if gnu.
if test $GXX = "yes" ; then
warn="-Wall -g"
warn="-Wall -g -Woverloaded-virtual -D__GXX__"
fi
@@ -4236,6 +4235,77 @@ echo $ECHO_N "checking for audio API... $ECHO_C" >&6
sound_api=_NO_API_
# Look for ALSA library because we need it for RtMidi
echo "$as_me:$LINENO: checking for snd_pcm_open in -lasound" >&5
echo $ECHO_N "checking for snd_pcm_open in -lasound... $ECHO_C" >&6
if test "${ac_cv_lib_asound_snd_pcm_open+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lasound $LIBS"
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char snd_pcm_open ();
int
main ()
{
snd_pcm_open ();
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_asound_snd_pcm_open=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_cv_lib_asound_snd_pcm_open=no
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_asound_snd_pcm_open" >&5
echo "${ECHO_T}$ac_cv_lib_asound_snd_pcm_open" >&6
if test $ac_cv_lib_asound_snd_pcm_open = yes; then
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBASOUND 1
_ACEOF
LIBS="-lasound $LIBS"
else
{ { echo "$as_me:$LINENO: error: STK in Linux requires the ALSA asound library for RtMidi!" >&5
echo "$as_me: error: STK in Linux requires the ALSA asound library for RtMidi!" >&2;}
{ (exit 1); exit 1; }; }
fi
audio_apis="-D__LINUX_ALSASEQ__"
# Look for Jack flag
# Check whether --with-jack or --without-jack was given.
@@ -4315,76 +4385,8 @@ echo "$as_me: error: JACK support requires the jack library!" >&2;}
{ (exit 1); exit 1; }; }
fi
echo "$as_me:$LINENO: checking for snd_pcm_open in -lasound" >&5
echo $ECHO_N "checking for snd_pcm_open in -lasound... $ECHO_C" >&6
if test "${ac_cv_lib_asound_snd_pcm_open+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lasound $LIBS"
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char snd_pcm_open ();
int
main ()
{
snd_pcm_open ();
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_asound_snd_pcm_open=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_cv_lib_asound_snd_pcm_open=no
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_asound_snd_pcm_open" >&5
echo "${ECHO_T}$ac_cv_lib_asound_snd_pcm_open" >&6
if test $ac_cv_lib_asound_snd_pcm_open = yes; then
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBASOUND 1
_ACEOF
LIBS="-lasound $LIBS"
else
{ { echo "$as_me:$LINENO: error: ALSA support requires the asound library!" >&5
echo "$as_me: error: ALSA support requires the asound library!" >&2;}
{ (exit 1); exit 1; }; }
fi
LIBS="`pkg-config --cflags --libs jack` $TEMP_LIBS -lasound"
audio_apis="-D__LINUX_JACK__"
audio_apis="-D__LINUX_JACK__ $audio_apis"
fi
# Look for Alsa flag
@@ -4397,74 +4399,6 @@ if test "${with_alsa+set}" = set; then
echo "${ECHO_T}using ALSA" >&6
fi;
if test $sound_api = -D__LINUX_ALSA__; then
echo "$as_me:$LINENO: checking for snd_pcm_open in -lasound" >&5
echo $ECHO_N "checking for snd_pcm_open in -lasound... $ECHO_C" >&6
if test "${ac_cv_lib_asound_snd_pcm_open+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lasound $LIBS"
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char snd_pcm_open ();
int
main ()
{
snd_pcm_open ();
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_asound_snd_pcm_open=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_cv_lib_asound_snd_pcm_open=no
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_asound_snd_pcm_open" >&5
echo "${ECHO_T}$ac_cv_lib_asound_snd_pcm_open" >&6
if test $ac_cv_lib_asound_snd_pcm_open = yes; then
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBASOUND 1
_ACEOF
LIBS="-lasound $LIBS"
else
{ { echo "$as_me:$LINENO: error: ALSA support requires the asound library!" >&5
echo "$as_me: error: ALSA support requires the asound library!" >&2;}
{ (exit 1); exit 1; }; }
fi
audio_apis="-D__LINUX_ALSA__ $audio_apis"
fi
@@ -4481,29 +4415,16 @@ fi;
audio_apis="-D__LINUX_OSS__ $audio_apis"
fi
# If no audio api flags specified, use OSS
# If no audio api flags specified, use ALSA
if test $sound_api = _NO_API_; then
sound_api=-D__LINUX_OSS__
echo "$as_me:$LINENO: result: using OSS" >&5
echo "${ECHO_T}using OSS" >&6
audio_apis=-D__LINUX_OSS__
echo "$as_me:$LINENO: result: using ALSA" >&5
echo "${ECHO_T}using ALSA" >&6
audio_apis="-D__LINUX_ALSA__ $audio_apis"
fi
# Check whether --enable-midiator or --disable-midiator was given.
if test "${enable_midiator+set}" = set; then
enableval="$enable_midiator"
midiator=-D__MIDIATOR__
else
midiator=
fi;
;;
*-sgi*)
audio_apis="-D__IRIX_AL__ -LANG:std -w"
audio_apis="-D__IRIX_AL__ -D__IRIX_MD__ -LANG:std -w"
echo "$as_me:$LINENO: result: using IRIX AL" >&5
echo "${ECHO_T}using IRIX AL" >&6
@@ -4798,75 +4719,6 @@ done
frameworks="-framework CoreAudio -framework CoreMIDI -framework CoreFoundation"
# Explicitly link with c++ library.
echo "$as_me:$LINENO: checking for printf in -lstdc++" >&5
echo $ECHO_N "checking for printf in -lstdc++... $ECHO_C" >&6
if test "${ac_cv_lib_stdcpp_printf+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lstdc++ $LIBS"
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char printf ();
int
main ()
{
printf ();
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_stdcpp_printf=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_cv_lib_stdcpp_printf=no
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_stdcpp_printf" >&5
echo "${ECHO_T}$ac_cv_lib_stdcpp_printf" >&6
if test $ac_cv_lib_stdcpp_printf = yes; then
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBSTDC__ 1
_ACEOF
LIBS="-lstdc++ $LIBS"
else
{ { echo "$as_me:$LINENO: error: Stk requires the C++ library!" >&5
echo "$as_me: error: Stk requires the C++ library!" >&2;}
{ (exit 1); exit 1; }; }
fi
;;
*)
@@ -5407,7 +5259,7 @@ _ASBOX
} >&5
cat >&5 <<_CSEOF
This file was extended by STK $as_me 4.1.2, which was
This file was extended by STK $as_me 4.2.0, which was
generated by GNU Autoconf 2.57. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -5462,7 +5314,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
STK config.status 4.1.2
STK config.status 4.2.0
configured by $0, generated by GNU Autoconf 2.57,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
@@ -5683,7 +5535,6 @@ s,@host_cpu@,$host_cpu,;t t
s,@host_vendor@,$host_vendor,;t t
s,@host_os@,$host_os,;t t
s,@audio_apis@,$audio_apis,;t t
s,@midiator@,$midiator,;t t
s,@frameworks@,$frameworks,;t t
s,@LIBOBJS@,$LIBOBJS,;t t
s,@LTLIBOBJS@,$LTLIBOBJS,;t t

View File

@@ -12,8 +12,8 @@
<h1>ADSR.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00016 <span class="comment">/***************************************************/</span>
00017
00018 <span class="preprocessor">#if !defined(__ADSR_H)</span>
00019 <span class="preprocessor"></span><span class="preprocessor">#define __ADSR_H</span>
00018 <span class="preprocessor">#ifndef STK_ADSR_H</span>
00019 <span class="preprocessor"></span><span class="preprocessor">#define STK_ADSR_H</span>
00020 <span class="preprocessor"></span>
00021 <span class="preprocessor">#include "Envelope.h"</span>
00022
@@ -31,44 +31,47 @@
00038
00040 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a3">keyOff</a>(<span class="keywordtype">void</span>);
00041
00043 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a4">setAttackRate</a>(MY_FLOAT aRate);
00043 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a4">setAttackRate</a>(StkFloat rate);
00044
00046 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a5">setDecayRate</a>(MY_FLOAT aRate);
00046 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a5">setDecayRate</a>(StkFloat rate);
00047
00049 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a6">setSustainLevel</a>(MY_FLOAT aLevel);
00049 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a6">setSustainLevel</a>(StkFloat level);
00050
00052 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a7">setReleaseRate</a>(MY_FLOAT aRate);
00052 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a7">setReleaseRate</a>(StkFloat rate);
00053
00055 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a8">setAttackTime</a>(MY_FLOAT aTime);
00055 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a8">setAttackTime</a>(StkFloat time);
00056
00058 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a9">setDecayTime</a>(MY_FLOAT aTime);
00058 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a9">setDecayTime</a>(StkFloat time);
00059
00061 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a10">setReleaseTime</a>(MY_FLOAT aTime);
00061 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a10">setReleaseTime</a>(StkFloat time);
00062
00064 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a11">setAllTimes</a>(MY_FLOAT aTime, MY_FLOAT dTime, MY_FLOAT sLevel, MY_FLOAT rTime);
00064 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a11">setAllTimes</a>(StkFloat aTime, StkFloat dTime, StkFloat sLevel, StkFloat rTime);
00065
00067 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a12">setTarget</a>(MY_FLOAT aTarget);
00067 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a12">setTarget</a>(StkFloat target);
00068
00070 <span class="keywordtype">int</span> <a class="code" href="classADSR.html#a13">getState</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00071
00073 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a14">setValue</a>(MY_FLOAT aValue);
00073 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a14">setValue</a>(StkFloat value);
00074
00076 MY_FLOAT <a class="code" href="classADSR.html#a15">tick</a>(<span class="keywordtype">void</span>);
00076 StkFloat <a class="code" href="classADSR.html#a15">tick</a>(<span class="keywordtype">void</span>);
00077
00079 MY_FLOAT *<a class="code" href="classADSR.html#a15">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00079 StkFloat *<a class="code" href="classADSR.html#a15">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00080
00081 <span class="keyword">protected</span>:
00082 MY_FLOAT attackRate;
00083 MY_FLOAT decayRate;
00084 MY_FLOAT sustainLevel;
00085 MY_FLOAT releaseRate;
00086 };
00087
00088 <span class="preprocessor">#endif</span>
00082
00088 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classADSR.html#a15">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00089
00090 <span class="keyword">protected</span>:
00091 StkFloat attackRate_;
00092 StkFloat decayRate_;
00093 StkFloat sustainLevel_;
00094 StkFloat releaseRate_;
00095 };
00096
00097 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -0,0 +1,62 @@
<HTML>
<HEAD>
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"> &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="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>Asymp.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00024 <span class="comment">/***************************************************/</span>
00025
00026 <span class="preprocessor">#ifndef STK_ASYMP_H</span>
00027 <span class="preprocessor"></span><span class="preprocessor">#define STK_ASYMP_H</span>
00028 <span class="preprocessor"></span>
00029 <span class="preprocessor">#include "Envelope.h"</span>
00030
00031 <span class="keyword">const</span> StkFloat TARGET_THRESHOLD = 0.000001;
00032
<a name="l00033"></a><a class="code" href="classAsymp.html">00033</a> <span class="keyword">class </span><a class="code" href="classAsymp.html">Asymp</a> : <span class="keyword">public</span> <a class="code" href="classEnvelope.html">Envelope</a>
00034 {
00035 <span class="keyword">public</span>:
00036
00038 <a class="code" href="classAsymp.html#a0">Asymp</a>(<span class="keywordtype">void</span>);
00039
00041 <a class="code" href="classAsymp.html#a1">~Asymp</a>(<span class="keywordtype">void</span>);
00042
00044 <span class="keywordtype">void</span> <a class="code" href="classAsymp.html#a2">keyOn</a>(<span class="keywordtype">void</span>);
00045
00047 <span class="keywordtype">void</span> <a class="code" href="classAsymp.html#a3">keyOff</a>(<span class="keywordtype">void</span>);
00048
00050
00056 <span class="keywordtype">void</span> <a class="code" href="classAsymp.html#a4">setTau</a>(StkFloat tau);
00057
00059 <span class="keywordtype">void</span> <a class="code" href="classAsymp.html#a5">setTime</a>(StkFloat time);
00060
00062 <span class="keywordtype">void</span> <a class="code" href="classAsymp.html#a6">setTarget</a>(StkFloat target);
00063
00065 StkFloat <a class="code" href="classAsymp.html#a7">tick</a>(<span class="keywordtype">void</span>);
00066
00068 StkFloat *<a class="code" href="classAsymp.html#a7">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00069
00071
00077 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classAsymp.html#a7">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00078
00079 <span class="keyword">protected</span>:
00080 StkFloat factor_;
00081 StkFloat constant_;
00082 };
00083
00084 <span class="preprocessor">#endif</span>
</pre></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-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>
</HTML>

View File

@@ -12,14 +12,14 @@
<h1>BandedWG.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00030 <span class="comment">/***************************************************/</span>
00031
00032 <span class="preprocessor">#if !defined(__BANDEDWG_H)</span>
00033 <span class="preprocessor"></span><span class="preprocessor">#define __BANDEDWG_H</span>
00032 <span class="preprocessor">#ifndef STK_BANDEDWG_H</span>
00033 <span class="preprocessor"></span><span class="preprocessor">#define STK_BANDEDWG_H</span>
00034 <span class="preprocessor"></span>
00035 <span class="preprocessor">#define MAX_BANDED_MODES 20</span>
00036 <span class="preprocessor"></span>
00035 <span class="keyword">const</span> <span class="keywordtype">int</span> MAX_BANDED_MODES = 20;
00036
00037 <span class="preprocessor">#include "Instrmnt.h"</span>
00038 <span class="preprocessor">#include "DelayL.h"</span>
00039 <span class="preprocessor">#include "BowTabl.h"</span>
00039 <span class="preprocessor">#include "BowTable.h"</span>
00040 <span class="preprocessor">#include "ADSR.h"</span>
00041 <span class="preprocessor">#include "BiQuad.h"</span>
00042
@@ -32,58 +32,63 @@
00051
00053 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a2">clear</a>();
00054
00056 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a3">setStrikePosition</a>(MY_FLOAT position);
00056 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a3">setStrikePosition</a>(StkFloat position);
00057
00059 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a4">setPreset</a>(<span class="keywordtype">int</span> preset);
00060
00062 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a5">setFrequency</a>(MY_FLOAT frequency);
00062 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a5">setFrequency</a>(StkFloat frequency);
00063
00065 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a6">startBowing</a>(MY_FLOAT amplitude, MY_FLOAT rate);
00065 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a6">startBowing</a>(StkFloat amplitude, StkFloat rate);
00066
00068 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a7">stopBowing</a>(MY_FLOAT rate);
00068 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a7">stopBowing</a>(StkFloat rate);
00069
00071 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a8">pluck</a>(MY_FLOAT amp);
00071 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a8">pluck</a>(StkFloat amp);
00072
00074 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a9">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00074 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a9">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00075
00077 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a10">noteOff</a>(MY_FLOAT amplitude);
00077 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a10">noteOff</a>(StkFloat amplitude);
00078
00080 MY_FLOAT <a class="code" href="classBandedWG.html#a11">tick</a>();
00080 StkFloat <a class="code" href="classBandedWG.html#a11">tick</a>();
00081
00083 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a12">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00083 StkFloat *<a class="code" href="classBandedWG.html#a11">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00084
00085 <span class="keyword">protected</span>:
00086
00087 <span class="keywordtype">bool</span> doPluck;
00088 <span class="keywordtype">bool</span> trackVelocity;
00089 <span class="keywordtype">int</span> nModes;
00090 <span class="keywordtype">int</span> presetModes;
00091 <a class="code" href="classBowTabl.html">BowTabl</a> *bowTabl;
00092 <a class="code" href="classADSR.html">ADSR</a> *adsr;
00093 <a class="code" href="classBiQuad.html">BiQuad</a> *bandpass;
00094 <a class="code" href="classDelayL.html">DelayL</a> *delay;
00095 MY_FLOAT maxVelocity;
00096 MY_FLOAT modes[MAX_BANDED_MODES];
00097 MY_FLOAT freakency;
00098 MY_FLOAT baseGain;
00099 MY_FLOAT gains[MAX_BANDED_MODES];
00100 MY_FLOAT basegains[MAX_BANDED_MODES];
00101 MY_FLOAT excitation[MAX_BANDED_MODES];
00102 MY_FLOAT integrationConstant;
00103 MY_FLOAT velocityInput;
00104 MY_FLOAT bowVelocity;
00105 MY_FLOAT bowTarget;
00106 MY_FLOAT bowPosition;
00107 MY_FLOAT strikeAmp;
00108 <span class="keywordtype">int</span> strikePosition;
00109
00110 };
00111
00112 <span class="preprocessor">#endif</span>
00092 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classBandedWG.html#a11">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00093
00095 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a14">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00096
00097 <span class="keyword">protected</span>:
00098
00099 <span class="keywordtype">bool</span> doPluck_;
00100 <span class="keywordtype">bool</span> trackVelocity_;
00101 <span class="keywordtype">int</span> nModes_;
00102 <span class="keywordtype">int</span> presetModes_;
00103 <a class="code" href="classBowTable.html">BowTable</a> bowTable_;
00104 <a class="code" href="classADSR.html">ADSR</a> adsr_;
00105 <a class="code" href="classBiQuad.html">BiQuad</a> bandpass_[MAX_BANDED_MODES];
00106 <a class="code" href="classDelayL.html">DelayL</a> delay_[MAX_BANDED_MODES];
00107 StkFloat maxVelocity_;
00108 StkFloat modes_[MAX_BANDED_MODES];
00109 StkFloat frequency_;
00110 StkFloat baseGain_;
00111 StkFloat gains_[MAX_BANDED_MODES];
00112 StkFloat basegains_[MAX_BANDED_MODES];
00113 StkFloat excitation_[MAX_BANDED_MODES];
00114 StkFloat integrationConstant_;
00115 StkFloat velocityInput_;
00116 StkFloat bowVelocity_;
00117 StkFloat bowTarget_;
00118 StkFloat bowPosition_;
00119 StkFloat strikeAmp_;
00120 <span class="keywordtype">int</span> strikePosition_;
00121
00122 };
00123
00124 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,28 +12,34 @@
<h1>BeeThree.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00033 <span class="comment">/***************************************************/</span>
00034
00035 <span class="preprocessor">#if !defined(__BEETHREE_H)</span>
00036 <span class="preprocessor"></span><span class="preprocessor">#define __BEETHREE_H</span>
00035 <span class="preprocessor">#ifndef STK_BEETHREE_H</span>
00036 <span class="preprocessor"></span><span class="preprocessor">#define STK_BEETHREE_H</span>
00037 <span class="preprocessor"></span>
00038 <span class="preprocessor">#include "FM.h"</span>
00039
<a name="l00040"></a><a class="code" href="classBeeThree.html">00040</a> <span class="keyword">class </span><a class="code" href="classBeeThree.html">BeeThree</a> : <span class="keyword">public</span> <a class="code" href="classFM.html">FM</a>
00041 {
00042 <span class="keyword">public</span>:
00044 <a class="code" href="classBeeThree.html#a0">BeeThree</a>();
00045
00047 <a class="code" href="classBeeThree.html#a1">~BeeThree</a>();
00044
00047 <a class="code" href="classBeeThree.html#a0">BeeThree</a>();
00048
00050 <span class="keywordtype">void</span> <a class="code" href="classBeeThree.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00050 <a class="code" href="classBeeThree.html#a1">~BeeThree</a>();
00051
00053 MY_FLOAT <a class="code" href="classBeeThree.html#a3">tick</a>();
00054 };
00055
00056 <span class="preprocessor">#endif</span>
00053 <span class="keywordtype">void</span> <a class="code" href="classBeeThree.html#a2">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00054
00056 StkFloat <a class="code" href="classBeeThree.html#a3">tick</a>();
00057
00059 StkFloat *<a class="code" href="classBeeThree.html#a3">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00060
00062
00068 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classBeeThree.html#a3">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00069 };
00070
00071 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>BiQuad.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00013 <span class="comment">/***************************************************/</span>
00014
00015 <span class="preprocessor">#if !defined(__BIQUAD_H)</span>
00016 <span class="preprocessor"></span><span class="preprocessor">#define __BIQUAD_H</span>
00015 <span class="preprocessor">#ifndef STK_BIQUAD_H</span>
00016 <span class="preprocessor"></span><span class="preprocessor">#define STK_BIQUAD_H</span>
00017 <span class="preprocessor"></span>
00018 <span class="preprocessor">#include "Filter.h"</span>
00019
@@ -27,42 +27,45 @@
00029
00031 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a2">clear</a>(<span class="keywordtype">void</span>);
00032
00034 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a3">setB0</a>(MY_FLOAT b0);
00034 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a3">setB0</a>(StkFloat b0);
00035
00037 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a4">setB1</a>(MY_FLOAT b1);
00037 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a4">setB1</a>(StkFloat b1);
00038
00040 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a5">setB2</a>(MY_FLOAT b2);
00040 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a5">setB2</a>(StkFloat b2);
00041
00043 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a6">setA1</a>(MY_FLOAT a1);
00043 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a6">setA1</a>(StkFloat a1);
00044
00046 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a7">setA2</a>(MY_FLOAT a2);
00046 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a7">setA2</a>(StkFloat a2);
00047
00049
00060 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a8">setResonance</a>(MY_FLOAT frequency, MY_FLOAT radius, <span class="keywordtype">bool</span> normalize = FALSE);
00060 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a8">setResonance</a>(StkFloat frequency, StkFloat radius, <span class="keywordtype">bool</span> normalize = <span class="keyword">false</span>);
00061
00063
00069 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a9">setNotch</a>(MY_FLOAT frequency, MY_FLOAT radius);
00069 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a9">setNotch</a>(StkFloat frequency, StkFloat radius);
00070
00072
00078 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a10">setEqualGainZeroes</a>();
00079
00081
00085 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a11">setGain</a>(MY_FLOAT theGain);
00085 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a11">setGain</a>(StkFloat gain);
00086
00088 MY_FLOAT <a class="code" href="classBiQuad.html#a12">getGain</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00088 StkFloat <a class="code" href="classBiQuad.html#a12">getGain</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00089
00091 MY_FLOAT <a class="code" href="classBiQuad.html#a13">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00091 StkFloat <a class="code" href="classBiQuad.html#a13">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00092
00094 MY_FLOAT <a class="code" href="classBiQuad.html#a14">tick</a>(MY_FLOAT sample);
00094 <span class="keyword">virtual</span> StkFloat <a class="code" href="classBiQuad.html#a14">tick</a>(StkFloat sample);
00095
00097 MY_FLOAT *<a class="code" href="classBiQuad.html#a14">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00098 };
00099
00100 <span class="preprocessor">#endif</span>
00097 <span class="keyword">virtual</span> StkFloat *<a class="code" href="classBiQuad.html#a14">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00098
00100
00106 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classBiQuad.html#a14">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00107 };
00108
00109 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,11 +12,11 @@
<h1>BlowBotl.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00017 <span class="comment">/***************************************************/</span>
00018
00019 <span class="preprocessor">#if !defined(__BOTTLE_H)</span>
00020 <span class="preprocessor"></span><span class="preprocessor">#define __BOTTLE_H</span>
00019 <span class="preprocessor">#ifndef STK_BLOWBOTL_H</span>
00020 <span class="preprocessor"></span><span class="preprocessor">#define STK_BLOWBOTL_H</span>
00021 <span class="preprocessor"></span>
00022 <span class="preprocessor">#include "Instrmnt.h"</span>
00023 <span class="preprocessor">#include "JetTabl.h"</span>
00023 <span class="preprocessor">#include "JetTable.h"</span>
00024 <span class="preprocessor">#include "BiQuad.h"</span>
00025 <span class="preprocessor">#include "PoleZero.h"</span>
00026 <span class="preprocessor">#include "Noise.h"</span>
@@ -26,45 +26,51 @@
<a name="l00030"></a><a class="code" href="classBlowBotl.html">00030</a> <span class="keyword">class </span><a class="code" href="classBlowBotl.html">BlowBotl</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
00031 {
00032 <span class="keyword">public</span>:
00034 <a class="code" href="classBlowBotl.html#a0">BlowBotl</a>();
00035
00037 <a class="code" href="classBlowBotl.html#a1">~BlowBotl</a>();
00034
00037 <a class="code" href="classBlowBotl.html#a0">BlowBotl</a>();
00038
00040 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a2">clear</a>();
00040 <a class="code" href="classBlowBotl.html#a1">~BlowBotl</a>();
00041
00043 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a3">setFrequency</a>(MY_FLOAT frequency);
00043 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a2">clear</a>();
00044
00046 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a4">startBlowing</a>(MY_FLOAT amplitude, MY_FLOAT rate);
00046 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a3">setFrequency</a>(StkFloat frequency);
00047
00049 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a5">stopBlowing</a>(MY_FLOAT rate);
00049 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a4">startBlowing</a>(StkFloat amplitude, StkFloat rate);
00050
00052 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a6">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00052 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a5">stopBlowing</a>(StkFloat rate);
00053
00055 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a7">noteOff</a>(MY_FLOAT amplitude);
00055 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a6">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00056
00058 MY_FLOAT <a class="code" href="classBlowBotl.html#a8">tick</a>();
00058 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a7">noteOff</a>(StkFloat amplitude);
00059
00061 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a9">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00061 StkFloat <a class="code" href="classBlowBotl.html#a8">tick</a>();
00062
00063 <span class="keyword">protected</span>:
00064 <a class="code" href="classJetTabl.html">JetTabl</a> *jetTable;
00065 <a class="code" href="classBiQuad.html">BiQuad</a> *resonator;
00066 <a class="code" href="classPoleZero.html">PoleZero</a> *dcBlock;
00067 <a class="code" href="classNoise.html">Noise</a> *noise;
00068 <a class="code" href="classADSR.html">ADSR</a> *adsr;
00069 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
00070 MY_FLOAT maxPressure;
00071 MY_FLOAT noiseGain;
00072 MY_FLOAT vibratoGain;
00073 MY_FLOAT outputGain;
00064 StkFloat *<a class="code" href="classBlowBotl.html#a8">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00065
00067
00073 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classBlowBotl.html#a8">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00074
00075 };
00076
00077 <span class="preprocessor">#endif</span>
00076 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a11">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00077
00078 <span class="keyword">protected</span>:
00079 <a class="code" href="classJetTable.html">JetTable</a> jetTable_;
00080 <a class="code" href="classBiQuad.html">BiQuad</a> resonator_;
00081 <a class="code" href="classPoleZero.html">PoleZero</a> dcBlock_;
00082 <a class="code" href="classNoise.html">Noise</a> noise_;
00083 <a class="code" href="classADSR.html">ADSR</a> adsr_;
00084 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato_;
00085 StkFloat maxPressure_;
00086 StkFloat noiseGain_;
00087 StkFloat vibratoGain_;
00088 StkFloat outputGain_;
00089
00090 };
00091
00092 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,12 +12,12 @@
<h1>BlowHole.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00034 <span class="comment">/***************************************************/</span>
00035
00036 <span class="preprocessor">#if !defined(__BLOWHOLE_H)</span>
00037 <span class="preprocessor"></span><span class="preprocessor">#define __BLOWHOLE_H</span>
00036 <span class="preprocessor">#ifndef STK_BLOWHOLE_H</span>
00037 <span class="preprocessor"></span><span class="preprocessor">#define STK_BLOWHOLE_H</span>
00038 <span class="preprocessor"></span>
00039 <span class="preprocessor">#include "Instrmnt.h"</span>
00040 <span class="preprocessor">#include "DelayL.h"</span>
00041 <span class="preprocessor">#include "ReedTabl.h"</span>
00041 <span class="preprocessor">#include "ReedTable.h"</span>
00042 <span class="preprocessor">#include "OneZero.h"</span>
00043 <span class="preprocessor">#include "PoleZero.h"</span>
00044 <span class="preprocessor">#include "Envelope.h"</span>
@@ -27,56 +27,60 @@
<a name="l00048"></a><a class="code" href="classBlowHole.html">00048</a> <span class="keyword">class </span><a class="code" href="classBlowHole.html">BlowHole</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
00049 {
00050 <span class="keyword">public</span>:
00052 <a class="code" href="classBlowHole.html#a0">BlowHole</a>(MY_FLOAT lowestFrequency);
00053
00055 <a class="code" href="classBlowHole.html#a1">~BlowHole</a>();
00052
00055 <a class="code" href="classBlowHole.html#a0">BlowHole</a>(StkFloat lowestFrequency);
00056
00058 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a2">clear</a>();
00058 <a class="code" href="classBlowHole.html#a1">~BlowHole</a>();
00059
00061 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a3">setFrequency</a>(MY_FLOAT frequency);
00061 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a2">clear</a>();
00062
00064 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a4">setTonehole</a>(MY_FLOAT newValue);
00064 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a3">setFrequency</a>(StkFloat frequency);
00065
00067 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a5">setVent</a>(MY_FLOAT newValue);
00067 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a4">setTonehole</a>(StkFloat newValue);
00068
00070 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a6">startBlowing</a>(MY_FLOAT amplitude, MY_FLOAT rate);
00070 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a5">setVent</a>(StkFloat newValue);
00071
00073 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a7">stopBlowing</a>(MY_FLOAT rate);
00073 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a6">startBlowing</a>(StkFloat amplitude, StkFloat rate);
00074
00076 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a8">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00076 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a7">stopBlowing</a>(StkFloat rate);
00077
00079 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a9">noteOff</a>(MY_FLOAT amplitude);
00079 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a8">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00080
00082 MY_FLOAT <a class="code" href="classBlowHole.html#a10">tick</a>();
00082 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a9">noteOff</a>(StkFloat amplitude);
00083
00085 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a11">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00085 StkFloat <a class="code" href="classBlowHole.html#a10">tick</a>();
00086
00087 <span class="keyword">protected</span>:
00088 <a class="code" href="classDelayL.html">DelayL</a> *delays[3];
00089 <a class="code" href="classReedTabl.html">ReedTabl</a> *reedTable;
00090 <a class="code" href="classOneZero.html">OneZero</a> *filter;
00091 <a class="code" href="classPoleZero.html">PoleZero</a> *tonehole;
00092 <a class="code" href="classPoleZero.html">PoleZero</a> *vent;
00093 <a class="code" href="classEnvelope.html">Envelope</a> *envelope;
00094 <a class="code" href="classNoise.html">Noise</a> *noise;
00095 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
00096 <span class="keywordtype">long</span> length;
00097 MY_FLOAT scatter;
00098 MY_FLOAT th_coeff;
00099 MY_FLOAT r_th;
00100 MY_FLOAT rh_coeff;
00101 MY_FLOAT rh_gain;
00102 MY_FLOAT outputGain;
00103 MY_FLOAT noiseGain;
00104 MY_FLOAT vibratoGain;
00105
00106 };
00107
00108 <span class="preprocessor">#endif</span>
00088 StkFloat *<a class="code" href="classBlowHole.html#a10">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00089
00091
00097 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classBlowHole.html#a10">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00098
00100 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a13">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00101
00102 <span class="keyword">protected</span>:
00103 <a class="code" href="classDelayL.html">DelayL</a> delays_[3];
00104 <a class="code" href="classReedTable.html">ReedTable</a> reedTable_;
00105 <a class="code" href="classOneZero.html">OneZero</a> filter_;
00106 <a class="code" href="classPoleZero.html">PoleZero</a> tonehole_;
00107 <a class="code" href="classPoleZero.html">PoleZero</a> vent_;
00108 <a class="code" href="classEnvelope.html">Envelope</a> envelope_;
00109 <a class="code" href="classNoise.html">Noise</a> noise_;
00110 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato_;
00111 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> length_;
00112 StkFloat scatter_;
00113 StkFloat thCoeff_;
00114 StkFloat rhGain_;
00115 StkFloat outputGain_;
00116 StkFloat noiseGain_;
00117 StkFloat vibratoGain_;
00118
00119 };
00120
00121 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -1,56 +0,0 @@
<HTML>
<HEAD>
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"> &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="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>BowTabl.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00010 <span class="comment">/***************************************************/</span>
00011
00012 <span class="preprocessor">#if !defined(__BOWTABL_H)</span>
00013 <span class="preprocessor"></span><span class="preprocessor">#define __BOWTABL_H</span>
00014 <span class="preprocessor"></span>
00015 <span class="preprocessor">#include "Stk.h"</span>
00016
<a name="l00017"></a><a class="code" href="classBowTabl.html">00017</a> <span class="keyword">class </span><a class="code" href="classBowTabl.html">BowTabl</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00018 {
00019 <span class="keyword">public</span>:
00021 <a class="code" href="classBowTabl.html#a0">BowTabl</a>();
00022
00024 <a class="code" href="classBowTabl.html#a1">~BowTabl</a>();
00025
00027
00033 <span class="keywordtype">void</span> <a class="code" href="classBowTabl.html#a2">setOffset</a>(MY_FLOAT aValue);
00034
00036
00040 <span class="keywordtype">void</span> <a class="code" href="classBowTabl.html#a3">setSlope</a>(MY_FLOAT aValue);
00041
00043 MY_FLOAT <a class="code" href="classBowTabl.html#a4">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00044
00046
00050 MY_FLOAT <a class="code" href="classBowTabl.html#a5">tick</a>(<span class="keyword">const</span> MY_FLOAT input);
00051
00053 MY_FLOAT *<a class="code" href="classBowTabl.html#a5">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00054
00055 <span class="keyword">protected</span>:
00056 MY_FLOAT offSet;
00057 MY_FLOAT slope;
00058 MY_FLOAT lastOutput;
00059
00060 };
00061
00062 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>
</HTML>

View File

@@ -0,0 +1,56 @@
<HTML>
<HEAD>
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"> &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="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>BowTable.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00010 <span class="comment">/***************************************************/</span>
00011
00012 <span class="preprocessor">#ifndef STK_BOWTABL_H</span>
00013 <span class="preprocessor"></span><span class="preprocessor">#define STK_BOWTABL_H</span>
00014 <span class="preprocessor"></span>
00015 <span class="preprocessor">#include "Function.h"</span>
00016
<a name="l00017"></a><a class="code" href="classBowTable.html">00017</a> <span class="keyword">class </span><a class="code" href="classBowTable.html">BowTable</a> : <span class="keyword">public</span> <a class="code" href="classFunction.html">Function</a>
00018 {
00019 <span class="keyword">public</span>:
00021 <a class="code" href="classBowTable.html#a0">BowTable</a>();
00022
00024 <a class="code" href="classBowTable.html#a1">~BowTable</a>();
00025
00027
00033 <span class="keywordtype">void</span> <a class="code" href="classBowTable.html#a2">setOffset</a>(StkFloat offset);
00034
00036
00040 <span class="keywordtype">void</span> <a class="code" href="classBowTable.html#a3">setSlope</a>(StkFloat slope);
00041
00043
00047 StkFloat <a class="code" href="classBowTable.html#a4">tick</a>( StkFloat input);
00048
00050 StkFloat *<a class="code" href="classBowTable.html#a4">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00051
00053
00059 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classBowTable.html#a4">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00060
00061 <span class="keyword">protected</span>:
00062 StkFloat offset_;
00063 StkFloat slope_;
00064
00065 };
00066
00067 <span class="preprocessor">#endif</span>
</pre></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-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>
</HTML>

View File

@@ -12,12 +12,12 @@
<h1>Bowed.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00022 <span class="comment">/***************************************************/</span>
00023
00024 <span class="preprocessor">#if !defined(__BOWED_H)</span>
00025 <span class="preprocessor"></span><span class="preprocessor">#define __BOWED_H</span>
00024 <span class="preprocessor">#ifndef STK_BOWED_H</span>
00025 <span class="preprocessor"></span><span class="preprocessor">#define STK_BOWED_H</span>
00026 <span class="preprocessor"></span>
00027 <span class="preprocessor">#include "Instrmnt.h"</span>
00028 <span class="preprocessor">#include "DelayL.h"</span>
00029 <span class="preprocessor">#include "BowTabl.h"</span>
00029 <span class="preprocessor">#include "BowTable.h"</span>
00030 <span class="preprocessor">#include "OnePole.h"</span>
00031 <span class="preprocessor">#include "BiQuad.h"</span>
00032 <span class="preprocessor">#include "WaveLoop.h"</span>
@@ -26,48 +26,53 @@
<a name="l00035"></a><a class="code" href="classBowed.html">00035</a> <span class="keyword">class </span><a class="code" href="classBowed.html">Bowed</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
00036 {
00037 <span class="keyword">public</span>:
00039 <a class="code" href="classBowed.html#a0">Bowed</a>(MY_FLOAT lowestFrequency);
00039 <a class="code" href="classBowed.html#a0">Bowed</a>(StkFloat lowestFrequency);
00040
00042 <a class="code" href="classBowed.html#a1">~Bowed</a>();
00043
00045 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a2">clear</a>();
00046
00048 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a3">setFrequency</a>(MY_FLOAT frequency);
00048 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a3">setFrequency</a>(StkFloat frequency);
00049
00051 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a4">setVibrato</a>(MY_FLOAT gain);
00051 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a4">setVibrato</a>(StkFloat gain);
00052
00054 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a5">startBowing</a>(MY_FLOAT amplitude, MY_FLOAT rate);
00054 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a5">startBowing</a>(StkFloat amplitude, StkFloat rate);
00055
00057 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a6">stopBowing</a>(MY_FLOAT rate);
00057 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a6">stopBowing</a>(StkFloat rate);
00058
00060 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a7">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00060 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a7">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00061
00063 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a8">noteOff</a>(MY_FLOAT amplitude);
00063 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a8">noteOff</a>(StkFloat amplitude);
00064
00066 MY_FLOAT <a class="code" href="classBowed.html#a9">tick</a>();
00066 StkFloat <a class="code" href="classBowed.html#a9">tick</a>();
00067
00069 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a10">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00069 StkFloat *<a class="code" href="classBowed.html#a9">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00070
00071 <span class="keyword">protected</span>:
00072 <a class="code" href="classDelayL.html">DelayL</a> *neckDelay;
00073 <a class="code" href="classDelayL.html">DelayL</a> *bridgeDelay;
00074 <a class="code" href="classBowTabl.html">BowTabl</a> *bowTable;
00075 <a class="code" href="classOnePole.html">OnePole</a> *stringFilter;
00076 <a class="code" href="classBiQuad.html">BiQuad</a> *bodyFilter;
00077 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
00078 <a class="code" href="classADSR.html">ADSR</a> *adsr;
00079 MY_FLOAT maxVelocity;
00080 MY_FLOAT baseDelay;
00081 MY_FLOAT vibratoGain;
00082 MY_FLOAT betaRatio;
00083
00084 };
00085
00086 <span class="preprocessor">#endif</span>
00072
00078 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classBowed.html#a9">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00079
00081 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a12">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00082
00083 <span class="keyword">protected</span>:
00084 <a class="code" href="classDelayL.html">DelayL</a> neckDelay_;
00085 <a class="code" href="classDelayL.html">DelayL</a> bridgeDelay_;
00086 <a class="code" href="classBowTable.html">BowTable</a> bowTable_;
00087 <a class="code" href="classOnePole.html">OnePole</a> stringFilter_;
00088 <a class="code" href="classBiQuad.html">BiQuad</a> bodyFilter_;
00089 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato_;
00090 <a class="code" href="classADSR.html">ADSR</a> adsr_;
00091 StkFloat maxVelocity_;
00092 StkFloat baseDelay_;
00093 StkFloat vibratoGain_;
00094 StkFloat betaRatio_;
00095
00096 };
00097
00098 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>Brass.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00021 <span class="comment">/***************************************************/</span>
00022
00023 <span class="preprocessor">#if !defined(__BRASS_H)</span>
00024 <span class="preprocessor"></span><span class="preprocessor">#define __BRASS_H</span>
00023 <span class="preprocessor">#ifndef STK_BRASS_H</span>
00024 <span class="preprocessor"></span><span class="preprocessor">#define STK_BRASS_H</span>
00025 <span class="preprocessor"></span>
00026 <span class="preprocessor">#include "Instrmnt.h"</span>
00027 <span class="preprocessor">#include "DelayA.h"</span>
@@ -25,47 +25,53 @@
<a name="l00033"></a><a class="code" href="classBrass.html">00033</a> <span class="keyword">class </span><a class="code" href="classBrass.html">Brass</a>: <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
00034 {
00035 <span class="keyword">public</span>:
00037 <a class="code" href="classBrass.html#a0">Brass</a>(MY_FLOAT lowestFrequency);
00038
00040 <a class="code" href="classBrass.html#a1">~Brass</a>();
00037
00040 <a class="code" href="classBrass.html#a0">Brass</a>(StkFloat lowestFrequency);
00041
00043 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a2">clear</a>();
00043 <a class="code" href="classBrass.html#a1">~Brass</a>();
00044
00046 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a3">setFrequency</a>(MY_FLOAT frequency);
00046 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a2">clear</a>();
00047
00049 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a4">setLip</a>(MY_FLOAT frequency);
00049 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a3">setFrequency</a>(StkFloat frequency);
00050
00052 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a5">startBlowing</a>(MY_FLOAT amplitude,MY_FLOAT rate);
00052 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a4">setLip</a>(StkFloat frequency);
00053
00055 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a6">stopBlowing</a>(MY_FLOAT rate);
00055 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a5">startBlowing</a>(StkFloat amplitude, StkFloat rate);
00056
00058 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a7">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00058 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a6">stopBlowing</a>(StkFloat rate);
00059
00061 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a8">noteOff</a>(MY_FLOAT amplitude);
00061 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a7">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00062
00064 MY_FLOAT <a class="code" href="classBrass.html#a9">tick</a>();
00064 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a8">noteOff</a>(StkFloat amplitude);
00065
00067 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a10">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00067 StkFloat <a class="code" href="classBrass.html#a9">tick</a>();
00068
00069 <span class="keyword">protected</span>:
00070 <a class="code" href="classDelayA.html">DelayA</a> *delayLine;
00071 <a class="code" href="classBiQuad.html">BiQuad</a> *lipFilter;
00072 <a class="code" href="classPoleZero.html">PoleZero</a> *dcBlock;
00073 <a class="code" href="classADSR.html">ADSR</a> *adsr;
00074 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
00075 <span class="keywordtype">long</span> length;
00076 MY_FLOAT lipTarget;
00077 MY_FLOAT slideTarget;
00078 MY_FLOAT vibratoGain;
00079 MY_FLOAT maxPressure;
00070 StkFloat *<a class="code" href="classBrass.html#a9">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00071
00073
00079 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classBrass.html#a9">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00080
00081 };
00082
00083 <span class="preprocessor">#endif</span>
00082 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a12">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00083
00084 <span class="keyword">protected</span>:
00085 <a class="code" href="classDelayA.html">DelayA</a> delayLine_;
00086 <a class="code" href="classBiQuad.html">BiQuad</a> lipFilter_;
00087 <a class="code" href="classPoleZero.html">PoleZero</a> dcBlock_;
00088 <a class="code" href="classADSR.html">ADSR</a> adsr_;
00089 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato_;
00090 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> length_;
00091 StkFloat lipTarget_;
00092 StkFloat slideTarget_;
00093 StkFloat vibratoGain_;
00094 StkFloat maxPressure_;
00095
00096 };
00097
00098 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,54 +12,48 @@
<h1>Chorus.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00009 <span class="comment">/***************************************************/</span>
00010
00011 <span class="preprocessor">#if !defined(__CHORUS_H)</span>
00012 <span class="preprocessor"></span><span class="preprocessor">#define __CHORUS_H</span>
00011 <span class="preprocessor">#ifndef STK_CHORUS_H</span>
00012 <span class="preprocessor"></span><span class="preprocessor">#define STK_CHORUS_H</span>
00013 <span class="preprocessor"></span>
00014 <span class="preprocessor">#include "Stk.h"</span>
00014 <span class="preprocessor">#include "Effect.h"</span>
00015 <span class="preprocessor">#include "DelayL.h"</span>
00016 <span class="preprocessor">#include "WaveLoop.h"</span>
00017
<a name="l00018"></a><a class="code" href="classChorus.html">00018</a> <span class="keyword">class </span><a class="code" href="classChorus.html">Chorus</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
<a name="l00018"></a><a class="code" href="classChorus.html">00018</a> <span class="keyword">class </span><a class="code" href="classChorus.html">Chorus</a> : <span class="keyword">public</span> <a class="code" href="classEffect.html">Effect</a>
00019 {
00020 <span class="keyword">public</span>:
00022 <a class="code" href="classChorus.html#a0">Chorus</a>(MY_FLOAT baseDelay);
00023
00025 <a class="code" href="classChorus.html#a1">~Chorus</a>();
00022
00025 <a class="code" href="classChorus.html#a0">Chorus</a>( StkFloat baseDelay = 6000 );
00026
00028 <span class="keywordtype">void</span> <a class="code" href="classChorus.html#a2">clear</a>();
00028 <a class="code" href="classChorus.html#a1">~Chorus</a>();
00029
00031 <span class="keywordtype">void</span> <a class="code" href="classChorus.html#a3">setModDepth</a>(MY_FLOAT depth);
00031 <span class="keywordtype">void</span> <a class="code" href="classChorus.html#a2">clear</a>();
00032
00034 <span class="keywordtype">void</span> <a class="code" href="classChorus.html#a4">setModFrequency</a>(MY_FLOAT frequency);
00034 <span class="keywordtype">void</span> <a class="code" href="classChorus.html#a3">setModDepth</a>(StkFloat depth);
00035
00037 <span class="keywordtype">void</span> <a class="code" href="classChorus.html#a5">setEffectMix</a>(MY_FLOAT mix);
00037 <span class="keywordtype">void</span> <a class="code" href="classChorus.html#a4">setModFrequency</a>(StkFloat frequency);
00038
00040 MY_FLOAT <a class="code" href="classChorus.html#a6">lastOut</a>() <span class="keyword">const</span>;
00040 StkFloat <a class="code" href="classChorus.html#a5">tick</a>(StkFloat input);
00041
00043 MY_FLOAT <a class="code" href="classChorus.html#a7">lastOutLeft</a>() <span class="keyword">const</span>;
00043 StkFloat *<a class="code" href="classChorus.html#a5">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00044
00046 MY_FLOAT <a class="code" href="classChorus.html#a8">lastOutRight</a>() <span class="keyword">const</span>;
00047
00049 MY_FLOAT <a class="code" href="classChorus.html#a9">tick</a>(MY_FLOAT input);
00050
00052 MY_FLOAT *<a class="code" href="classChorus.html#a9">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00046
00052 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classChorus.html#a5">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00053
00054 <span class="keyword">protected</span>:
00055 <a class="code" href="classDelayL.html">DelayL</a> *delayLine[2];
00056 <a class="code" href="classWaveLoop.html">WaveLoop</a> *mods[2];
00057 MY_FLOAT baseLength;
00058 MY_FLOAT modDepth;
00059 MY_FLOAT lastOutput[2];
00060 MY_FLOAT effectMix;
00055 <a class="code" href="classDelayL.html">DelayL</a> delayLine_[2];
00056 <a class="code" href="classWaveLoop.html">WaveLoop</a> *mods_[2];
00057 StkFloat baseLength_;
00058 StkFloat modDepth_;
00059
00060 };
00061
00062 };
00063
00064 <span class="preprocessor">#endif</span>
00065 <span class="preprocessor"></span>
00062 <span class="preprocessor">#endif</span>
00063 <span class="preprocessor"></span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,12 +12,12 @@
<h1>Clarinet.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00023 <span class="comment">/***************************************************/</span>
00024
00025 <span class="preprocessor">#if !defined(__CLARINET_H)</span>
00026 <span class="preprocessor"></span><span class="preprocessor">#define __CLARINET_H</span>
00025 <span class="preprocessor">#ifndef STK_CLARINET_H</span>
00026 <span class="preprocessor"></span><span class="preprocessor">#define STK_CLARINET_H</span>
00027 <span class="preprocessor"></span>
00028 <span class="preprocessor">#include "Instrmnt.h"</span>
00029 <span class="preprocessor">#include "DelayL.h"</span>
00030 <span class="preprocessor">#include "ReedTabl.h"</span>
00030 <span class="preprocessor">#include "ReedTable.h"</span>
00031 <span class="preprocessor">#include "OneZero.h"</span>
00032 <span class="preprocessor">#include "Envelope.h"</span>
00033 <span class="preprocessor">#include "Noise.h"</span>
@@ -26,45 +26,51 @@
<a name="l00036"></a><a class="code" href="classClarinet.html">00036</a> <span class="keyword">class </span><a class="code" href="classClarinet.html">Clarinet</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
00037 {
00038 <span class="keyword">public</span>:
00040 <a class="code" href="classClarinet.html#a0">Clarinet</a>(MY_FLOAT lowestFrequency);
00041
00043 <a class="code" href="classClarinet.html#a1">~Clarinet</a>();
00040
00043 <a class="code" href="classClarinet.html#a0">Clarinet</a>(StkFloat lowestFrequency);
00044
00046 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a2">clear</a>();
00046 <a class="code" href="classClarinet.html#a1">~Clarinet</a>();
00047
00049 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a3">setFrequency</a>(MY_FLOAT frequency);
00049 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a2">clear</a>();
00050
00052 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a4">startBlowing</a>(MY_FLOAT amplitude, MY_FLOAT rate);
00052 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a3">setFrequency</a>(StkFloat frequency);
00053
00055 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a5">stopBlowing</a>(MY_FLOAT rate);
00055 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a4">startBlowing</a>(StkFloat amplitude, StkFloat rate);
00056
00058 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a6">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00058 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a5">stopBlowing</a>(StkFloat rate);
00059
00061 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a7">noteOff</a>(MY_FLOAT amplitude);
00061 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a6">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00062
00064 MY_FLOAT <a class="code" href="classClarinet.html#a8">tick</a>();
00064 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a7">noteOff</a>(StkFloat amplitude);
00065
00067 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a9">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00067 StkFloat <a class="code" href="classClarinet.html#a8">tick</a>();
00068
00069 <span class="keyword">protected</span>:
00070 <a class="code" href="classDelayL.html">DelayL</a> *delayLine;
00071 <a class="code" href="classReedTabl.html">ReedTabl</a> *reedTable;
00072 <a class="code" href="classOneZero.html">OneZero</a> *filter;
00073 <a class="code" href="classEnvelope.html">Envelope</a> *envelope;
00074 <a class="code" href="classNoise.html">Noise</a> *noise;
00075 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
00076 <span class="keywordtype">long</span> length;
00077 MY_FLOAT outputGain;
00078 MY_FLOAT noiseGain;
00079 MY_FLOAT vibratoGain;
00070 StkFloat *<a class="code" href="classClarinet.html#a8">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00071
00073
00079 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classClarinet.html#a8">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00080
00081 };
00082
00083 <span class="preprocessor">#endif</span>
00082 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a11">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00083
00084 <span class="keyword">protected</span>:
00085 <a class="code" href="classDelayL.html">DelayL</a> delayLine_;
00086 <a class="code" href="classReedTable.html">ReedTable</a> reedTable_;
00087 <a class="code" href="classOneZero.html">OneZero</a> filter_;
00088 <a class="code" href="classEnvelope.html">Envelope</a> envelope_;
00089 <a class="code" href="classNoise.html">Noise</a> noise_;
00090 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato_;
00091 <span class="keywordtype">long</span> length_;
00092 StkFloat outputGain_;
00093 StkFloat noiseGain_;
00094 StkFloat vibratoGain_;
00095
00096 };
00097
00098 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>DelayA.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00023 <span class="comment">/***************************************************/</span>
00024
00025 <span class="preprocessor">#if !defined(__DelayA_h)</span>
00026 <span class="preprocessor"></span><span class="preprocessor">#define __DelayA_h</span>
00025 <span class="preprocessor">#ifndef STK_DELAYA_H</span>
00026 <span class="preprocessor"></span><span class="preprocessor">#define STK_DELAYA_H</span>
00027 <span class="preprocessor"></span>
00028 <span class="preprocessor">#include "Delay.h"</span>
00029
@@ -23,36 +23,41 @@
00033
00035 <a class="code" href="classDelayA.html#a0">DelayA</a>();
00036
00038
00039 <a class="code" href="classDelayA.html#a0">DelayA</a>(MY_FLOAT theDelay, <span class="keywordtype">long</span> maxDelay);
00040
00042 <a class="code" href="classDelayA.html#a2">~DelayA</a>();
00043
00045 <span class="keywordtype">void</span> <a class="code" href="classDelayA.html#a3">clear</a>();
00046
00048
00051 <span class="keywordtype">void</span> <a class="code" href="classDelayA.html#a4">setDelay</a>(MY_FLOAT theDelay);
00038
00043 <a class="code" href="classDelayA.html#a0">DelayA</a>(StkFloat delay, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> maxDelay);
00044
00046 <a class="code" href="classDelayA.html#a2">~DelayA</a>();
00047
00049 <span class="keywordtype">void</span> <a class="code" href="classDelayA.html#a3">clear</a>();
00050
00052
00054 MY_FLOAT <a class="code" href="classDelayA.html#a5">getDelay</a>(<span class="keywordtype">void</span>);
00055
00057
00060 MY_FLOAT <a class="code" href="classDelayA.html#a6">nextOut</a>(<span class="keywordtype">void</span>);
00055 <span class="keywordtype">void</span> <a class="code" href="classDelayA.html#a4">setDelay</a>(StkFloat delay);
00056
00058 StkFloat <a class="code" href="classDelayA.html#a5">getDelay</a>(<span class="keywordtype">void</span>);
00059
00061
00063 MY_FLOAT <a class="code" href="classDelayA.html#a7">tick</a>(MY_FLOAT sample);
00064
00065 <span class="keyword">protected</span>:
00066 MY_FLOAT alpha;
00067 MY_FLOAT coeff;
00068 MY_FLOAT apInput;
00069 MY_FLOAT nextOutput;
00070 <span class="keywordtype">bool</span> doNextOut;
00071 };
00072
00073 <span class="preprocessor">#endif</span>
00064 StkFloat <a class="code" href="classDelayA.html#a6">nextOut</a>(<span class="keywordtype">void</span>);
00065
00067 StkFloat <a class="code" href="classDelayA.html#a7">tick</a>(StkFloat sample);
00068
00070 <span class="keyword">virtual</span> StkFloat *<a class="code" href="classDelayA.html#a7">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00071
00073
00079 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classDelayA.html#a7">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00080
00081 <span class="keyword">protected</span>:
00082 StkFloat alpha_;
00083 StkFloat coeff_;
00084 StkFloat apInput_;
00085 StkFloat nextOutput_;
00086 <span class="keywordtype">bool</span> doNextOut_;
00087 };
00088
00089 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>DelayL.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00023 <span class="comment">/***************************************************/</span>
00024
00025 <span class="preprocessor">#if !defined(__DELAYL_H)</span>
00026 <span class="preprocessor"></span><span class="preprocessor">#define __DELAYL_H</span>
00025 <span class="preprocessor">#ifndef STK_DELAYL_H</span>
00026 <span class="preprocessor"></span><span class="preprocessor">#define STK_DELAYL_H</span>
00027 <span class="preprocessor"></span>
00028 <span class="preprocessor">#include "Delay.h"</span>
00029
@@ -23,33 +23,38 @@
00033
00035 <a class="code" href="classDelayL.html#a0">DelayL</a>();
00036
00038
00039 <a class="code" href="classDelayL.html#a0">DelayL</a>(MY_FLOAT theDelay, <span class="keywordtype">long</span> maxDelay);
00040
00042 <a class="code" href="classDelayL.html#a2">~DelayL</a>();
00043
00045
00048 <span class="keywordtype">void</span> <a class="code" href="classDelayL.html#a3">setDelay</a>(MY_FLOAT theDelay);
00038
00043 <a class="code" href="classDelayL.html#a0">DelayL</a>(StkFloat delay, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> maxDelay);
00044
00046 <a class="code" href="classDelayL.html#a2">~DelayL</a>();
00047
00049
00051 MY_FLOAT <a class="code" href="classDelayL.html#a4">getDelay</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00052
00054
00057 MY_FLOAT <a class="code" href="classDelayL.html#a5">nextOut</a>(<span class="keywordtype">void</span>);
00052 <span class="keywordtype">void</span> <a class="code" href="classDelayL.html#a3">setDelay</a>(StkFloat delay);
00053
00055 StkFloat <a class="code" href="classDelayL.html#a4">getDelay</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00056
00058
00060 MY_FLOAT <a class="code" href="classDelayL.html#a6">tick</a>(MY_FLOAT sample);
00061
00062 <span class="keyword">protected</span>:
00063 MY_FLOAT alpha;
00064 MY_FLOAT omAlpha;
00065 MY_FLOAT nextOutput;
00066 <span class="keywordtype">bool</span> doNextOut;
00067 };
00061 StkFloat <a class="code" href="classDelayL.html#a5">nextOut</a>(<span class="keywordtype">void</span>);
00062
00064 StkFloat <a class="code" href="classDelayL.html#a6">tick</a>(StkFloat sample);
00065
00067 <span class="keyword">virtual</span> StkFloat *<a class="code" href="classDelayL.html#a6">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00068
00069 <span class="preprocessor">#endif</span>
00070
00076 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classDelayL.html#a6">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00077
00078 <span class="keyword">protected</span>:
00079 StkFloat alpha_;
00080 StkFloat omAlpha_;
00081 StkFloat nextOutput_;
00082 <span class="keywordtype">bool</span> doNextOut_;
00083 };
00084
00085 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>Delay.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00019 <span class="comment">/***************************************************/</span>
00020
00021 <span class="preprocessor">#if !defined(__DELAY_H)</span>
00022 <span class="preprocessor"></span><span class="preprocessor">#define __DELAY_H</span>
00021 <span class="preprocessor">#ifndef STK_DELAY_H</span>
00022 <span class="preprocessor"></span><span class="preprocessor">#define STK_DELAY_H</span>
00023 <span class="preprocessor"></span>
00024 <span class="preprocessor">#include "Filter.h"</span>
00025
@@ -23,44 +23,50 @@
00029
00031 <a class="code" href="classDelay.html#a0">Delay</a>();
00032
00034 <a class="code" href="classDelay.html#a0">Delay</a>(<span class="keywordtype">long</span> theDelay, <span class="keywordtype">long</span> maxDelay);
00035
00037 <span class="keyword">virtual</span> <a class="code" href="classDelay.html#a2">~Delay</a>();
00038
00040 <span class="keywordtype">void</span> <a class="code" href="classDelay.html#a3">clear</a>();
00041
00034
00039 <a class="code" href="classDelay.html#a0">Delay</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> delay, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> maxDelay);
00040
00042 <span class="keyword">virtual</span> <a class="code" href="classDelay.html#a2">~Delay</a>();
00043
00046 <span class="keywordtype">void</span> <a class="code" href="classDelay.html#a4">setDelay</a>(<span class="keywordtype">long</span> theDelay);
00047
00049 <span class="keywordtype">long</span> <a class="code" href="classDelay.html#a5">getDelay</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00050
00052 MY_FLOAT <a class="code" href="classDelay.html#a6">energy</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00053
00055
00060 MY_FLOAT <a class="code" href="classDelay.html#a7">contentsAt</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> tapDelay) <span class="keyword">const</span>;
00061
00063 MY_FLOAT <a class="code" href="classDelay.html#a8">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00064
00066
00069 <span class="keyword">virtual</span> MY_FLOAT <a class="code" href="classDelay.html#a9">nextOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00045 <span class="keywordtype">void</span> <a class="code" href="classDelay.html#a3">clear</a>();
00046
00048
00055 <span class="keywordtype">void</span> <a class="code" href="classDelay.html#a4">setMaximumDelay</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> delay);
00056
00058
00061 <span class="keywordtype">void</span> <a class="code" href="classDelay.html#a5">setDelay</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> delay);
00062
00064 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classDelay.html#a6">getDelay</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00065
00067 StkFloat <a class="code" href="classDelay.html#a7">energy</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00068
00070
00072 <span class="keyword">virtual</span> MY_FLOAT <a class="code" href="classDelay.html#a10">tick</a>(MY_FLOAT sample);
00073
00075 <span class="keyword">virtual</span> MY_FLOAT *<a class="code" href="classDelay.html#a10">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00075 StkFloat <a class="code" href="classDelay.html#a8">contentsAt</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> tapDelay);
00076
00077 <span class="keyword">protected</span>:
00078 <span class="keywordtype">long</span> inPoint;
00079 <span class="keywordtype">long</span> outPoint;
00080 <span class="keywordtype">long</span> length;
00081 MY_FLOAT delay;
00082 };
00083
00084 <span class="preprocessor">#endif</span>
00085 <span class="preprocessor"></span>
00078 StkFloat <a class="code" href="classDelay.html#a9">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00079
00081
00084 <span class="keyword">virtual</span> StkFloat <a class="code" href="classDelay.html#a10">nextOut</a>(<span class="keywordtype">void</span>);
00085
00087 <span class="keyword">virtual</span> StkFloat <a class="code" href="classDelay.html#a11">tick</a>(StkFloat sample);
00088
00090 <span class="keyword">virtual</span> StkFloat *<a class="code" href="classDelay.html#a11">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00091
00093
00099 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classDelay.html#a11">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00100
00101 <span class="keyword">protected</span>:
00102 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> inPoint_;
00103 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> outPoint_;
00104 StkFloat delay_;
00105 };
00106
00107 <span class="preprocessor">#endif</span>
00108 <span class="preprocessor"></span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,43 +12,48 @@
<h1>Drummer.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00016 <span class="comment">/***************************************************/</span>
00017
00018 <span class="preprocessor">#if !defined(__DRUMMER_H)</span>
00019 <span class="preprocessor"></span><span class="preprocessor">#define __DRUMMER_H</span>
00018 <span class="preprocessor">#ifndef STK_DRUMMER_H</span>
00019 <span class="preprocessor"></span><span class="preprocessor">#define STK_DRUMMER_H</span>
00020 <span class="preprocessor"></span>
00021 <span class="preprocessor">#include "Instrmnt.h"</span>
00022 <span class="preprocessor">#include "WvIn.h"</span>
00023 <span class="preprocessor">#include "OnePole.h"</span>
00024
00025 <span class="preprocessor">#define DRUM_NUMWAVES 11</span>
00026 <span class="preprocessor"></span><span class="preprocessor">#define DRUM_POLYPHONY 4</span>
00027 <span class="preprocessor"></span>
00025 <span class="keyword">const</span> <span class="keywordtype">int</span> DRUM_NUMWAVES = 11;
00026 <span class="keyword">const</span> <span class="keywordtype">int</span> DRUM_POLYPHONY = 4;
00027
<a name="l00028"></a><a class="code" href="classDrummer.html">00028</a> <span class="keyword">class </span><a class="code" href="classDrummer.html">Drummer</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
00029 {
00030 <span class="keyword">public</span>:
00032 <a class="code" href="classDrummer.html#a0">Drummer</a>();
00033
00035 <a class="code" href="classDrummer.html#a1">~Drummer</a>();
00032
00035 <a class="code" href="classDrummer.html#a0">Drummer</a>();
00036
00038
00043 <span class="keywordtype">void</span> <a class="code" href="classDrummer.html#a2">noteOn</a>(MY_FLOAT instrument, MY_FLOAT amplitude);
00044
00046 <span class="keywordtype">void</span> <a class="code" href="classDrummer.html#a3">noteOff</a>(MY_FLOAT amplitude);
00047
00049 MY_FLOAT <a class="code" href="classDrummer.html#a4">tick</a>();
00050
00051 <span class="keyword">protected</span>:
00052 <a class="code" href="classWvIn.html">WvIn</a> *waves[DRUM_POLYPHONY];
00053 <a class="code" href="classOnePole.html">OnePole</a> *filters[DRUM_POLYPHONY];
00054 <span class="keywordtype">int</span> sounding[DRUM_POLYPHONY];
00055 <span class="keywordtype">int</span> nSounding;
00056
00057 };
00058
00059 <span class="preprocessor">#endif</span>
00038 <a class="code" href="classDrummer.html#a1">~Drummer</a>();
00039
00041
00047 <span class="keywordtype">void</span> <a class="code" href="classDrummer.html#a2">noteOn</a>(StkFloat instrument, StkFloat amplitude);
00048
00050 <span class="keywordtype">void</span> <a class="code" href="classDrummer.html#a3">noteOff</a>(StkFloat amplitude);
00051
00053 StkFloat <a class="code" href="classDrummer.html#a4">tick</a>();
00054
00056 StkFloat *<a class="code" href="classDrummer.html#a4">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00057
00059
00065 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classDrummer.html#a4">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00066
00067 <span class="keyword">protected</span>:
00068 <a class="code" href="classWvIn.html">WvIn</a> *waves_[DRUM_POLYPHONY];
00069 <a class="code" href="classOnePole.html">OnePole</a> *filters_[DRUM_POLYPHONY];
00070 <span class="keywordtype">int</span> sounding_[DRUM_POLYPHONY];
00071 <span class="keywordtype">int</span> nSounding_;
00072 };
00073
00074 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,45 +12,45 @@
<h1>Echo.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00009 <span class="comment">/***************************************************/</span>
00010
00011 <span class="preprocessor">#if !defined(__ECHO_H)</span>
00012 <span class="preprocessor"></span><span class="preprocessor">#define __ECHO_H</span>
00011 <span class="preprocessor">#ifndef STK_ECHO_H</span>
00012 <span class="preprocessor"></span><span class="preprocessor">#define STK_ECHO_H</span>
00013 <span class="preprocessor"></span>
00014 <span class="preprocessor">#include "Stk.h"</span>
00014 <span class="preprocessor">#include "Effect.h"</span>
00015 <span class="preprocessor">#include "Delay.h"</span>
00016
<a name="l00017"></a><a class="code" href="classEcho.html">00017</a> <span class="keyword">class </span><a class="code" href="classEcho.html">Echo</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
<a name="l00017"></a><a class="code" href="classEcho.html">00017</a> <span class="keyword">class </span><a class="code" href="classEcho.html">Echo</a> : <span class="keyword">public</span> <a class="code" href="classEffect.html">Effect</a>
00018 {
00019 <span class="keyword">public</span>:
00021 <a class="code" href="classEcho.html#a0">Echo</a>(MY_FLOAT longestDelay);
00022
00024 <a class="code" href="classEcho.html#a1">~Echo</a>();
00021
00024 <a class="code" href="classEcho.html#a0">Echo</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> maximumDelay = (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>) <a class="code" href="classStk.html#e0">Stk::sampleRate</a>() );
00025
00027 <span class="keywordtype">void</span> <a class="code" href="classEcho.html#a2">clear</a>();
00027 <a class="code" href="classEcho.html#a1">~Echo</a>();
00028
00030 <span class="keywordtype">void</span> <a class="code" href="classEcho.html#a3">setDelay</a>(MY_FLOAT delay);
00030 <span class="keywordtype">void</span> <a class="code" href="classEcho.html#a2">clear</a>();
00031
00033 <span class="keywordtype">void</span> <a class="code" href="classEcho.html#a4">setEffectMix</a>(MY_FLOAT mix);
00033 <span class="keywordtype">void</span> <a class="code" href="classEcho.html#a3">setMaximumDelay</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> delay );
00034
00036 MY_FLOAT <a class="code" href="classEcho.html#a5">lastOut</a>() <span class="keyword">const</span>;
00036 <span class="keywordtype">void</span> <a class="code" href="classEcho.html#a4">setDelay</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> delay );
00037
00039 MY_FLOAT <a class="code" href="classEcho.html#a6">tick</a>(MY_FLOAT input);
00039 StkFloat <a class="code" href="classEcho.html#a5">tick</a>(StkFloat input);
00040
00042 MY_FLOAT *<a class="code" href="classEcho.html#a6">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00042 StkFloat *<a class="code" href="classEcho.html#a5">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00043
00044 <span class="keyword">protected</span>:
00045 <a class="code" href="classDelay.html">Delay</a> *delayLine;
00046 <span class="keywordtype">long</span> length;
00047 MY_FLOAT lastOutput;
00048 MY_FLOAT effectMix;
00049
00050 };
00051
00052 <span class="preprocessor">#endif</span>
00053 <span class="preprocessor"></span>
00045
00051 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classEcho.html#a5">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00052
00053 <span class="keyword">protected</span>:
00054 <a class="code" href="classDelay.html">Delay</a> delayLine_;
00055 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> length_;
00056
00057 };
00058
00059 <span class="preprocessor">#endif</span>
00060 <span class="preprocessor"></span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -9,51 +9,54 @@
<a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="information.html">Information</a> &nbsp; <a class="qindex" href="classes.html">Classes</a> &nbsp; <a class="qindex" href="download.html">Download</a> &nbsp; <a class="qindex" href="usage.html">Usage</a> &nbsp; <a class="qindex" href="maillist.html">Mail List</a> &nbsp; <a class="qindex" href="system.html">Requirements</a> &nbsp; <a class="qindex" href="links.html">Links</a> &nbsp; <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>Reverb.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
<h1>Effect.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00010 <span class="comment">/***************************************************/</span>
00011
00012 <span class="preprocessor">#include "Stk.h"</span>
00013
00014 <span class="preprocessor">#if !defined(__REVERB_H)</span>
00015 <span class="preprocessor"></span><span class="preprocessor">#define __REVERB_H</span>
00014 <span class="preprocessor">#ifndef STK_EFFECT_H</span>
00015 <span class="preprocessor"></span><span class="preprocessor">#define STK_EFFECT_H</span>
00016 <span class="preprocessor"></span>
<a name="l00017"></a><a class="code" href="classReverb.html">00017</a> <span class="keyword">class </span><a class="code" href="classReverb.html">Reverb</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
<a name="l00017"></a><a class="code" href="classEffect.html">00017</a> <span class="keyword">class </span><a class="code" href="classEffect.html">Effect</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00018 {
00019 <span class="keyword">public</span>:
00021 <a class="code" href="classReverb.html#a0">Reverb</a>();
00021 <a class="code" href="classEffect.html#a0">Effect</a>();
00022
00024 <span class="keyword">virtual</span> <a class="code" href="classReverb.html#a1">~Reverb</a>();
00024 <span class="keyword">virtual</span> <a class="code" href="classEffect.html#a1">~Effect</a>();
00025
00027 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classReverb.html#a2">clear</a>() = 0;
00027 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classEffect.html#a2">clear</a>() = 0;
00028
00030 <span class="keywordtype">void</span> <a class="code" href="classReverb.html#a3">setEffectMix</a>(MY_FLOAT mix);
00030 <span class="keywordtype">void</span> <a class="code" href="classEffect.html#a3">setEffectMix</a>(StkFloat mix);
00031
00033 MY_FLOAT <a class="code" href="classReverb.html#a4">lastOut</a>() <span class="keyword">const</span>;
00033 StkFloat <a class="code" href="classEffect.html#a4">lastOut</a>() <span class="keyword">const</span>;
00034
00036 MY_FLOAT <a class="code" href="classReverb.html#a5">lastOutLeft</a>() <span class="keyword">const</span>;
00036 StkFloat <a class="code" href="classEffect.html#a5">lastOutLeft</a>() <span class="keyword">const</span>;
00037
00039 MY_FLOAT <a class="code" href="classReverb.html#a6">lastOutRight</a>() <span class="keyword">const</span>;
00039 StkFloat <a class="code" href="classEffect.html#a6">lastOutRight</a>() <span class="keyword">const</span>;
00040
00042 <span class="keyword">virtual</span> MY_FLOAT <a class="code" href="classReverb.html#a7">tick</a>(MY_FLOAT input) = 0;
00042 <span class="keyword">virtual</span> StkFloat <a class="code" href="classEffect.html#a7">tick</a>( StkFloat input ) = 0;
00043
00045 <span class="keyword">virtual</span> MY_FLOAT *<a class="code" href="classReverb.html#a7">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00045 <span class="keyword">virtual</span> StkFloat *<a class="code" href="classEffect.html#a7">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00046
00047 <span class="keyword">protected</span>:
00048
00049 <span class="comment">// Returns true if argument value is prime.</span>
00050 <span class="keywordtype">bool</span> isPrime(<span class="keywordtype">int</span> number);
00051
00052 MY_FLOAT lastOutput[2];
00053 MY_FLOAT effectMix;
00054
00055 };
00056
00057 <span class="preprocessor">#endif // defined(__REVERB_H)</span>
00058 <span class="preprocessor"></span>
00054 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classEffect.html#a7">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00055
00056 <span class="keyword">protected</span>:
00057
00058 <span class="comment">// Returns true if argument value is prime.</span>
00059 <span class="keywordtype">bool</span> isPrime( <span class="keywordtype">int</span> number );
00060
00061 StkFloat lastOutput_[2];
00062 StkFloat effectMix_;
00063
00064 };
00065
00066 <span class="preprocessor">#endif</span>
00067 <span class="preprocessor"></span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,12 +12,12 @@
<h1>Envelope.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00014 <span class="comment">/***************************************************/</span>
00015
00016 <span class="preprocessor">#if !defined(__ENVELOPE_H)</span>
00017 <span class="preprocessor"></span><span class="preprocessor">#define __ENVELOPE_H</span>
00016 <span class="preprocessor">#ifndef STK_ENVELOPE_H</span>
00017 <span class="preprocessor"></span><span class="preprocessor">#define STK_ENVELOPE_H</span>
00018 <span class="preprocessor"></span>
00019 <span class="preprocessor">#include "Stk.h"</span>
00019 <span class="preprocessor">#include "Generator.h"</span>
00020
<a name="l00021"></a><a class="code" href="classEnvelope.html">00021</a> <span class="keyword">class </span><a class="code" href="classEnvelope.html">Envelope</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
<a name="l00021"></a><a class="code" href="classEnvelope.html">00021</a> <span class="keyword">class </span><a class="code" href="classEnvelope.html">Envelope</a> : <span class="keyword">public</span> <a class="code" href="classGenerator.html">Generator</a>
00022 {
00023 <span class="keyword">public</span>:
00024
@@ -29,34 +29,35 @@
00033
00035 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classEnvelope.html#a3">keyOff</a>(<span class="keywordtype">void</span>);
00036
00038 <span class="keywordtype">void</span> <a class="code" href="classEnvelope.html#a4">setRate</a>(MY_FLOAT aRate);
00038 <span class="keywordtype">void</span> <a class="code" href="classEnvelope.html#a4">setRate</a>(StkFloat rate);
00039
00041 <span class="keywordtype">void</span> <a class="code" href="classEnvelope.html#a5">setTime</a>(MY_FLOAT aTime);
00041 <span class="keywordtype">void</span> <a class="code" href="classEnvelope.html#a5">setTime</a>(StkFloat time);
00042
00044 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classEnvelope.html#a6">setTarget</a>(MY_FLOAT aTarget);
00044 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classEnvelope.html#a6">setTarget</a>(StkFloat target);
00045
00047 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classEnvelope.html#a7">setValue</a>(MY_FLOAT aValue);
00047 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classEnvelope.html#a7">setValue</a>(StkFloat value);
00048
00050 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classEnvelope.html#a8">getState</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00051
00053 <span class="keyword">virtual</span> MY_FLOAT <a class="code" href="classEnvelope.html#a9">tick</a>(<span class="keywordtype">void</span>);
00053 <span class="keyword">virtual</span> StkFloat <a class="code" href="classEnvelope.html#a9">tick</a>(<span class="keywordtype">void</span>);
00054
00056 <span class="keyword">virtual</span> MY_FLOAT *<a class="code" href="classEnvelope.html#a9">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00056 <span class="keyword">virtual</span> StkFloat *<a class="code" href="classEnvelope.html#a9">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00057
00059 MY_FLOAT <a class="code" href="classEnvelope.html#a11">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00060
00061 <span class="keyword">protected</span>:
00062 MY_FLOAT value;
00063 MY_FLOAT target;
00064 MY_FLOAT rate;
00065 <span class="keywordtype">int</span> state;
00066 };
00067
00068 <span class="preprocessor">#endif</span>
00059
00065 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classEnvelope.html#a9">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00066
00067 <span class="keyword">protected</span>:
00068 StkFloat value_;
00069 StkFloat target_;
00070 StkFloat rate_;
00071 <span class="keywordtype">int</span> state_;
00072 };
00073
00074 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,37 +12,43 @@
<h1>FMVoices.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00031 <span class="comment">/***************************************************/</span>
00032
00033 <span class="preprocessor">#if !defined(__FMVOICES_H)</span>
00034 <span class="preprocessor"></span><span class="preprocessor">#define __FMVOICES_H</span>
00033 <span class="preprocessor">#ifndef STK_FMVOICES_H</span>
00034 <span class="preprocessor"></span><span class="preprocessor">#define STK_FMVOICES_H</span>
00035 <span class="preprocessor"></span>
00036 <span class="preprocessor">#include "FM.h"</span>
00037
<a name="l00038"></a><a class="code" href="classFMVoices.html">00038</a> <span class="keyword">class </span><a class="code" href="classFMVoices.html">FMVoices</a> : <span class="keyword">public</span> <a class="code" href="classFM.html">FM</a>
00039 {
00040 <span class="keyword">public</span>:
00042 <a class="code" href="classFMVoices.html#a0">FMVoices</a>();
00043
00045 <a class="code" href="classFMVoices.html#a1">~FMVoices</a>();
00042
00045 <a class="code" href="classFMVoices.html#a0">FMVoices</a>();
00046
00048 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFMVoices.html#a2">setFrequency</a>(MY_FLOAT frequency);
00048 <a class="code" href="classFMVoices.html#a1">~FMVoices</a>();
00049
00051 <span class="keywordtype">void</span> <a class="code" href="classFMVoices.html#a3">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00051 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFMVoices.html#a2">setFrequency</a>(StkFloat frequency);
00052
00054 MY_FLOAT <a class="code" href="classFMVoices.html#a4">tick</a>();
00054 <span class="keywordtype">void</span> <a class="code" href="classFMVoices.html#a3">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00055
00057 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFMVoices.html#a5">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00057 StkFloat <a class="code" href="classFMVoices.html#a4">tick</a>();
00058
00059 <span class="keyword">protected</span>:
00060 <span class="keywordtype">int</span> currentVowel;
00061 MY_FLOAT tilt[3];
00062 MY_FLOAT mods[3];
00063 };
00064
00065 <span class="preprocessor">#endif</span>
00060 StkFloat *<a class="code" href="classFMVoices.html#a4">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00061
00063
00069 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classFMVoices.html#a4">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00070
00072 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFMVoices.html#a7">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00073
00074 <span class="keyword">protected</span>:
00075 <span class="keywordtype">int</span> currentVowel_;
00076 StkFloat tilt_[3];
00077 StkFloat mods_[3];
00078 };
00079
00080 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>FM.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00024 <span class="comment">/***************************************************/</span>
00025
00026 <span class="preprocessor">#if !defined(__FM_H)</span>
00027 <span class="preprocessor"></span><span class="preprocessor">#define __FM_H</span>
00026 <span class="preprocessor">#ifndef STK_FM_H</span>
00027 <span class="preprocessor"></span><span class="preprocessor">#define STK_FM_H</span>
00028 <span class="preprocessor"></span>
00029 <span class="preprocessor">#include "Instrmnt.h"</span>
00030 <span class="preprocessor">#include "ADSR.h"</span>
@@ -23,61 +23,67 @@
<a name="l00034"></a><a class="code" href="classFM.html">00034</a> <span class="keyword">class </span><a class="code" href="classFM.html">FM</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
00035 {
00036 <span class="keyword">public</span>:
00038 <a class="code" href="classFM.html#a0">FM</a>( <span class="keywordtype">int</span> operators = 4 );
00039
00041 <span class="keyword">virtual</span> <a class="code" href="classFM.html#a1">~FM</a>();
00038
00041 <a class="code" href="classFM.html#a0">FM</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> operators = 4 );
00042
00044 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a2">clear</a>();
00044 <span class="keyword">virtual</span> <a class="code" href="classFM.html#a1">~FM</a>();
00045
00047 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a3">loadWaves</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> **filenames);
00047 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a2">clear</a>();
00048
00050 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFM.html#a4">setFrequency</a>(MY_FLOAT frequency);
00050 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a3">loadWaves</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> **filenames);
00051
00053 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a5">setRatio</a>(<span class="keywordtype">int</span> waveIndex, MY_FLOAT ratio);
00053 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFM.html#a4">setFrequency</a>(StkFloat frequency);
00054
00056 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a6">setGain</a>(<span class="keywordtype">int</span> waveIndex, MY_FLOAT gain);
00056 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a5">setRatio</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> waveIndex, StkFloat ratio);
00057
00059 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a7">setModulationSpeed</a>(MY_FLOAT mSpeed);
00059 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a6">setGain</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> waveIndex, StkFloat gain);
00060
00062 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a8">setModulationDepth</a>(MY_FLOAT mDepth);
00062 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a7">setModulationSpeed</a>(StkFloat mSpeed);
00063
00065 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a9">setControl1</a>(MY_FLOAT cVal);
00065 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a8">setModulationDepth</a>(StkFloat mDepth);
00066
00068 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a10">setControl2</a>(MY_FLOAT cVal);
00068 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a9">setControl1</a>(StkFloat cVal);
00069
00071 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a11">keyOn</a>();
00071 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a10">setControl2</a>(StkFloat cVal);
00072
00074 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a12">keyOff</a>();
00074 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a11">keyOn</a>();
00075
00077 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a13">noteOff</a>(MY_FLOAT amplitude);
00077 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a12">keyOff</a>();
00078
00080 <span class="keyword">virtual</span> MY_FLOAT <a class="code" href="classFM.html#a14">tick</a>() = 0;
00080 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a13">noteOff</a>(StkFloat amplitude);
00081
00083 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFM.html#a15">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00083 <span class="keyword">virtual</span> StkFloat <a class="code" href="classFM.html#a14">tick</a>() = 0;
00084
00085 <span class="keyword">protected</span>:
00086 <a class="code" href="classADSR.html">ADSR</a> **adsr;
00087 <a class="code" href="classWaveLoop.html">WaveLoop</a> **waves;
00088 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
00089 <a class="code" href="classTwoZero.html">TwoZero</a> *twozero;
00090 <span class="keywordtype">int</span> nOperators;
00091 MY_FLOAT baseFrequency;
00092 MY_FLOAT *ratios;
00093 MY_FLOAT *gains;
00094 MY_FLOAT modDepth;
00095 MY_FLOAT control1;
00096 MY_FLOAT control2;
00097 MY_FLOAT __FM_gains[100];
00098 MY_FLOAT __FM_susLevels[16];
00099 MY_FLOAT __FM_attTimes[32];
00100
00101 };
00102
00103 <span class="preprocessor">#endif</span>
00086 <span class="keyword">virtual</span> StkFloat *<a class="code" href="classFM.html#a14">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize) = 0;
00087
00089
00095 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classFM.html#a14">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 ) = 0;
00096
00098 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFM.html#a17">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00099
00100 <span class="keyword">protected</span>:
00101 std::vector&lt;ADSR *&gt; adsr_;
00102 std::vector&lt;WaveLoop *&gt; waves_;
00103 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato_;
00104 <a class="code" href="classTwoZero.html">TwoZero</a> twozero_;
00105 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nOperators_;
00106 StkFloat baseFrequency_;
00107 std::vector&lt;StkFloat&gt; ratios_;
00108 std::vector&lt;StkFloat&gt; gains_;
00109 StkFloat modDepth_;
00110 StkFloat control1_;
00111 StkFloat control2_;
00112 StkFloat fmGains_[100];
00113 StkFloat fmSusLevels_[16];
00114 StkFloat fmAttTimes_[32];
00115
00116 };
00117
00118 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,59 +12,62 @@
<h1>Filter.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00028 <span class="comment">/***************************************************/</span>
00029
00030 <span class="preprocessor">#if !defined(__FILTER_H)</span>
00031 <span class="preprocessor"></span><span class="preprocessor">#define __FILTER_H</span>
00030 <span class="preprocessor">#ifndef STK_FILTER_H</span>
00031 <span class="preprocessor"></span><span class="preprocessor">#define STK_FILTER_H</span>
00032 <span class="preprocessor"></span>
00033 <span class="preprocessor">#include "Stk.h"</span>
00034
<a name="l00035"></a><a class="code" href="classFilter.html">00035</a> <span class="keyword">class </span><a class="code" href="classFilter.html">Filter</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00036 {
00037 <span class="keyword">public</span>:
00039 <a class="code" href="classFilter.html#a0">Filter</a>(<span class="keywordtype">void</span>);
00040
00034 <span class="preprocessor">#include &lt;vector&gt;</span>
00035 <span class="preprocessor">#include &lt;valarray&gt;</span>
00036
<a name="l00037"></a><a class="code" href="classFilter.html">00037</a> <span class="keyword">class </span><a class="code" href="classFilter.html">Filter</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00038 {
00039 <span class="keyword">public</span>:
00041 <a class="code" href="classFilter.html#a0">Filter</a>(<span class="keywordtype">void</span>);
00042
00046 <a class="code" href="classFilter.html#a0">Filter</a>(<span class="keywordtype">int</span> nb, MY_FLOAT *bCoefficients, <span class="keywordtype">int</span> na, MY_FLOAT *aCoefficients);
00047
00049 <span class="keyword">virtual</span> <a class="code" href="classFilter.html#a2">~Filter</a>(<span class="keywordtype">void</span>);
00050
00052 <span class="keywordtype">void</span> <a class="code" href="classFilter.html#a3">clear</a>(<span class="keywordtype">void</span>);
00053
00044
00048 <a class="code" href="classFilter.html#a0">Filter</a>( std::vector&lt;StkFloat&gt; &amp;bCoefficients, std::vector&lt;StkFloat&gt; &amp;aCoefficients );
00049
00051 <span class="keyword">virtual</span> <a class="code" href="classFilter.html#a2">~Filter</a>(<span class="keywordtype">void</span>);
00052
00054 <span class="keywordtype">void</span> <a class="code" href="classFilter.html#a3">clear</a>(<span class="keywordtype">void</span>);
00055
00060 <span class="keywordtype">void</span> <a class="code" href="classFilter.html#a4">setCoefficients</a>(<span class="keywordtype">int</span> nb, MY_FLOAT *bCoefficients, <span class="keywordtype">int</span> na, MY_FLOAT *aCoefficients);
00061
00063
00069 <span class="keywordtype">void</span> <a class="code" href="classFilter.html#a5">setNumerator</a>(<span class="keywordtype">int</span> nb, MY_FLOAT *bCoefficients);
00070
00072
00080 <span class="keywordtype">void</span> <a class="code" href="classFilter.html#a6">setDenominator</a>(<span class="keywordtype">int</span> na, MY_FLOAT *aCoefficients);
00081
00083
00087 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFilter.html#a7">setGain</a>(MY_FLOAT theGain);
00088
00090 <span class="keyword">virtual</span> MY_FLOAT <a class="code" href="classFilter.html#a8">getGain</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00091
00093 <span class="keyword">virtual</span> MY_FLOAT <a class="code" href="classFilter.html#a9">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00094
00096 <span class="keyword">virtual</span> MY_FLOAT <a class="code" href="classFilter.html#a10">tick</a>(MY_FLOAT sample);
00097
00099 <span class="keyword">virtual</span> MY_FLOAT *<a class="code" href="classFilter.html#a10">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00100
00101 <span class="keyword">protected</span>:
00102 MY_FLOAT gain;
00103 <span class="keywordtype">int</span> nB;
00104 <span class="keywordtype">int</span> nA;
00105 MY_FLOAT *b;
00106 MY_FLOAT *a;
00107 MY_FLOAT *outputs;
00108 MY_FLOAT *inputs;
00109
00110 };
00111
00112 <span class="preprocessor">#endif</span>
00057
00063 <span class="keywordtype">void</span> <a class="code" href="classFilter.html#a4">setCoefficients</a>( std::vector&lt;StkFloat&gt; &amp;bCoefficients, std::vector&lt;StkFloat&gt; &amp;aCoefficients );
00064
00066
00073 <span class="keywordtype">void</span> <a class="code" href="classFilter.html#a5">setNumerator</a>( std::vector&lt;StkFloat&gt; &amp;bCoefficients );
00074
00076
00084 <span class="keywordtype">void</span> <a class="code" href="classFilter.html#a6">setDenominator</a>( std::vector&lt;StkFloat&gt; &amp;aCoefficients );
00085
00087
00091 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFilter.html#a7">setGain</a>(StkFloat gain);
00092
00094 <span class="keyword">virtual</span> StkFloat <a class="code" href="classFilter.html#a8">getGain</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00095
00097 <span class="keyword">virtual</span> StkFloat <a class="code" href="classFilter.html#a9">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00098
00100 <span class="keyword">virtual</span> StkFloat <a class="code" href="classFilter.html#a10">tick</a>(StkFloat sample);
00101
00103 <span class="keyword">virtual</span> StkFloat *<a class="code" href="classFilter.html#a10">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00104
00106
00112 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classFilter.html#a10">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00113
00114 <span class="keyword">protected</span>:
00115 StkFloat gain_;
00116 std::vector&lt;StkFloat&gt; b_;
00117 std::vector&lt;StkFloat&gt; a_;
00118 std::vector&lt;StkFloat&gt; outputs_;
00119 std::vector&lt;StkFloat&gt; inputs_;
00120
00121 };
00122
00123 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,11 +12,11 @@
<h1>Flute.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00023 <span class="comment">/***************************************************/</span>
00024
00025 <span class="preprocessor">#if !defined(__FLUTE_H)</span>
00026 <span class="preprocessor"></span><span class="preprocessor">#define __FLUTE_H</span>
00025 <span class="preprocessor">#ifndef STK_FLUTE_H</span>
00026 <span class="preprocessor"></span><span class="preprocessor">#define STK_FLUTE_H</span>
00027 <span class="preprocessor"></span>
00028 <span class="preprocessor">#include "Instrmnt.h"</span>
00029 <span class="preprocessor">#include "JetTabl.h"</span>
00029 <span class="preprocessor">#include "JetTable.h"</span>
00030 <span class="preprocessor">#include "DelayL.h"</span>
00031 <span class="preprocessor">#include "OnePole.h"</span>
00032 <span class="preprocessor">#include "PoleZero.h"</span>
@@ -27,58 +27,64 @@
<a name="l00037"></a><a class="code" href="classFlute.html">00037</a> <span class="keyword">class </span><a class="code" href="classFlute.html">Flute</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
00038 {
00039 <span class="keyword">public</span>:
00041 <a class="code" href="classFlute.html#a0">Flute</a>(MY_FLOAT lowestFrequency);
00042
00044 <a class="code" href="classFlute.html#a1">~Flute</a>();
00041
00044 <a class="code" href="classFlute.html#a0">Flute</a>(StkFloat lowestFrequency);
00045
00047 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a2">clear</a>();
00047 <a class="code" href="classFlute.html#a1">~Flute</a>();
00048
00050 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a3">setFrequency</a>(MY_FLOAT frequency);
00050 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a2">clear</a>();
00051
00053 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a4">setJetReflection</a>(MY_FLOAT coefficient);
00053 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a3">setFrequency</a>(StkFloat frequency);
00054
00056 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a5">setEndReflection</a>(MY_FLOAT coefficient);
00056 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a4">setJetReflection</a>(StkFloat coefficient);
00057
00059 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a6">setJetDelay</a>(MY_FLOAT aRatio);
00059 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a5">setEndReflection</a>(StkFloat coefficient);
00060
00062 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a7">startBlowing</a>(MY_FLOAT amplitude, MY_FLOAT rate);
00062 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a6">setJetDelay</a>(StkFloat aRatio);
00063
00065 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a8">stopBlowing</a>(MY_FLOAT rate);
00065 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a7">startBlowing</a>(StkFloat amplitude, StkFloat rate);
00066
00068 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a9">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00068 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a8">stopBlowing</a>(StkFloat rate);
00069
00071 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a10">noteOff</a>(MY_FLOAT amplitude);
00071 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a9">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00072
00074 MY_FLOAT <a class="code" href="classFlute.html#a11">tick</a>();
00074 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a10">noteOff</a>(StkFloat amplitude);
00075
00077 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a12">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00077 StkFloat <a class="code" href="classFlute.html#a11">tick</a>();
00078
00079 <span class="keyword">protected</span>:
00080 <a class="code" href="classDelayL.html">DelayL</a> *jetDelay;
00081 <a class="code" href="classDelayL.html">DelayL</a> *boreDelay;
00082 <a class="code" href="classJetTabl.html">JetTabl</a> *jetTable;
00083 <a class="code" href="classOnePole.html">OnePole</a> *filter;
00084 <a class="code" href="classPoleZero.html">PoleZero</a> *dcBlock;
00085 <a class="code" href="classNoise.html">Noise</a> *noise;
00086 <a class="code" href="classADSR.html">ADSR</a> *adsr;
00087 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
00088 <span class="keywordtype">long</span> length;
00089 MY_FLOAT lastFrequency;
00090 MY_FLOAT maxPressure;
00091 MY_FLOAT jetReflection;
00092 MY_FLOAT endReflection;
00093 MY_FLOAT noiseGain;
00094 MY_FLOAT vibratoGain;
00095 MY_FLOAT outputGain;
00096 MY_FLOAT jetRatio;
00097
00098 };
00099
00100 <span class="preprocessor">#endif</span>
00080 StkFloat *<a class="code" href="classFlute.html#a11">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00081
00083
00089 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classFlute.html#a11">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00090
00092 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a14">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00093
00094 <span class="keyword">protected</span>:
00095 <a class="code" href="classDelayL.html">DelayL</a> jetDelay_;
00096 <a class="code" href="classDelayL.html">DelayL</a> boreDelay_;
00097 <a class="code" href="classJetTable.html">JetTable</a> jetTable_;
00098 <a class="code" href="classOnePole.html">OnePole</a> filter_;
00099 <a class="code" href="classPoleZero.html">PoleZero</a> dcBlock_;
00100 <a class="code" href="classNoise.html">Noise</a> noise_;
00101 <a class="code" href="classADSR.html">ADSR</a> adsr_;
00102 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato_;
00103 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> length_;
00104 StkFloat lastFrequency_;
00105 StkFloat maxPressure_;
00106 StkFloat jetReflection_;
00107 StkFloat endReflection_;
00108 StkFloat noiseGain_;
00109 StkFloat vibratoGain_;
00110 StkFloat outputGain_;
00111 StkFloat jetRatio_;
00112
00113 };
00114
00115 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>FormSwep.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00013 <span class="comment">/***************************************************/</span>
00014
00015 <span class="preprocessor">#if !defined(__FORMSWEP_H)</span>
00016 <span class="preprocessor"></span><span class="preprocessor">#define __FORMSWEP_H</span>
00015 <span class="preprocessor">#ifndef STK_FORMSWEP_H</span>
00016 <span class="preprocessor"></span><span class="preprocessor">#define STK_FORMSWEP_H</span>
00017 <span class="preprocessor"></span>
00018 <span class="preprocessor">#include "BiQuad.h"</span>
00019
@@ -26,45 +26,48 @@
00028 <a class="code" href="classFormSwep.html#a1">~FormSwep</a>();
00029
00031
00042 <span class="keywordtype">void</span> <a class="code" href="classFormSwep.html#a2">setResonance</a>(MY_FLOAT aFrequency, MY_FLOAT aRadius);
00042 <span class="keywordtype">void</span> <a class="code" href="classFormSwep.html#a2">setResonance</a>(StkFloat frequency, StkFloat radius);
00043
00045 <span class="keywordtype">void</span> <a class="code" href="classFormSwep.html#a3">setStates</a>(MY_FLOAT aFrequency, MY_FLOAT aRadius, MY_FLOAT aGain = 1.0);
00045 <span class="keywordtype">void</span> <a class="code" href="classFormSwep.html#a3">setStates</a>(StkFloat frequency, StkFloat radius, StkFloat gain = 1.0);
00046
00048 <span class="keywordtype">void</span> <a class="code" href="classFormSwep.html#a4">setTargets</a>(MY_FLOAT aFrequency, MY_FLOAT aRadius, MY_FLOAT aGain = 1.0);
00048 <span class="keywordtype">void</span> <a class="code" href="classFormSwep.html#a4">setTargets</a>(StkFloat frequency, StkFloat radius, StkFloat gain = 1.0);
00049
00051
00059 <span class="keywordtype">void</span> <a class="code" href="classFormSwep.html#a5">setSweepRate</a>(MY_FLOAT aRate);
00059 <span class="keywordtype">void</span> <a class="code" href="classFormSwep.html#a5">setSweepRate</a>(StkFloat rate);
00060
00062
00067 <span class="keywordtype">void</span> <a class="code" href="classFormSwep.html#a6">setSweepTime</a>(MY_FLOAT aTime);
00067 <span class="keywordtype">void</span> <a class="code" href="classFormSwep.html#a6">setSweepTime</a>(StkFloat time);
00068
00070 MY_FLOAT <a class="code" href="classFormSwep.html#a7">tick</a>(MY_FLOAT sample);
00070 StkFloat <a class="code" href="classFormSwep.html#a7">tick</a>(StkFloat sample);
00071
00073 MY_FLOAT *<a class="code" href="classFormSwep.html#a7">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00073 StkFloat *<a class="code" href="classFormSwep.html#a7">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00074
00075 <span class="keyword">protected</span>:
00076 <span class="keywordtype">bool</span> dirty;
00077 MY_FLOAT frequency;
00078 MY_FLOAT radius;
00079 MY_FLOAT startFrequency;
00080 MY_FLOAT startRadius;
00081 MY_FLOAT startGain;
00082 MY_FLOAT targetFrequency;
00083 MY_FLOAT targetRadius;
00084 MY_FLOAT targetGain;
00085 MY_FLOAT deltaFrequency;
00086 MY_FLOAT deltaRadius;
00087 MY_FLOAT deltaGain;
00088 MY_FLOAT sweepState;
00089 MY_FLOAT sweepRate;
00090
00091 };
00092
00093 <span class="preprocessor">#endif</span>
00076
00082 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classFormSwep.html#a7">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00083
00084 <span class="keyword">protected</span>:
00085 <span class="keywordtype">bool</span> dirty_;
00086 StkFloat frequency_;
00087 StkFloat radius_;
00088 StkFloat startFrequency_;
00089 StkFloat startRadius_;
00090 StkFloat startGain_;
00091 StkFloat targetFrequency_;
00092 StkFloat targetRadius_;
00093 StkFloat targetGain_;
00094 StkFloat deltaFrequency_;
00095 StkFloat deltaRadius_;
00096 StkFloat deltaGain_;
00097 StkFloat sweepState_;
00098 StkFloat sweepRate_;
00099
00100 };
00101
00102 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -0,0 +1,52 @@
<HTML>
<HEAD>
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"> &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="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>Function.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00011 <span class="comment">/***************************************************/</span>
00012
00013 <span class="preprocessor">#include "Stk.h"</span>
00014
00015 <span class="preprocessor">#ifndef STK_FUNCTION_H</span>
00016 <span class="preprocessor"></span><span class="preprocessor">#define STK_FUNCTION_H</span>
00017 <span class="preprocessor"></span>
<a name="l00018"></a><a class="code" href="classFunction.html">00018</a> <span class="keyword">class </span><a class="code" href="classFunction.html">Function</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00019 {
00020 <span class="keyword">public</span>:
00022 <a class="code" href="classFunction.html#a0">Function</a>();
00023
00025 <span class="keyword">virtual</span> <a class="code" href="classFunction.html#a1">~Function</a>();
00026
<a name="l00028"></a><a class="code" href="classFunction.html#a2">00028</a> <span class="keyword">virtual</span> StkFloat <a class="code" href="classFunction.html#a2">lastOut</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> lastOutput_; };
00029
00031 <span class="keyword">virtual</span> StkFloat <a class="code" href="classFunction.html#a3">tick</a>( StkFloat input ) = 0;
00032
00034 <span class="keyword">virtual</span> StkFloat *<a class="code" href="classFunction.html#a3">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00035
00037
00043 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classFunction.html#a3">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00044
00045 <span class="keyword">protected</span>:
00046
00047 StkFloat lastOutput_;
00048
00049 };
00050
00051 <span class="preprocessor">#endif</span>
00052 <span class="preprocessor"></span>
</pre></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-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>
</HTML>

View File

@@ -0,0 +1,52 @@
<HTML>
<HEAD>
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"> &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="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>Generator.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00010 <span class="comment">/***************************************************/</span>
00011
00012 <span class="preprocessor">#ifndef STK_GENERATOR_H</span>
00013 <span class="preprocessor"></span><span class="preprocessor">#define STK_GENERATOR_H</span>
00014 <span class="preprocessor"></span>
00015 <span class="preprocessor">#include "Stk.h"</span>
00016
<a name="l00017"></a><a class="code" href="classGenerator.html">00017</a> <span class="keyword">class </span><a class="code" href="classGenerator.html">Generator</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00018 {
00019 <span class="keyword">public</span>:
00021 <a class="code" href="classGenerator.html#a0">Generator</a>();
00022
00024 <span class="keyword">virtual</span> <a class="code" href="classGenerator.html#a1">~Generator</a>();
00025
<a name="l00027"></a><a class="code" href="classGenerator.html#a2">00027</a> <span class="keyword">virtual</span> StkFloat <a class="code" href="classGenerator.html#a2">lastOut</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> lastOutput_; };
00028
00030 <span class="keyword">virtual</span> StkFloat <a class="code" href="classGenerator.html#a3">tick</a>( <span class="keywordtype">void</span> ) = 0;
00031
00033 <span class="keyword">virtual</span> StkFloat *<a class="code" href="classGenerator.html#a3">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00034
00036
00042 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classGenerator.html#a3">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00043
00044 <span class="keyword">protected</span>:
00045
00046 StkFloat lastOutput_;
00047
00048 };
00049
00050 <span class="preprocessor">#endif</span>
00051 <span class="preprocessor"></span>
</pre></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-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>
</HTML>

View File

@@ -12,28 +12,34 @@
<h1>HevyMetl.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00029 <span class="comment">/***************************************************/</span>
00030
00031 <span class="preprocessor">#if !defined(__HEVYMETL_H)</span>
00032 <span class="preprocessor"></span><span class="preprocessor">#define __HEVYMETL_H</span>
00031 <span class="preprocessor">#ifndef STK_HEVYMETL_H</span>
00032 <span class="preprocessor"></span><span class="preprocessor">#define STK_HEVYMETL_H</span>
00033 <span class="preprocessor"></span>
00034 <span class="preprocessor">#include "FM.h"</span>
00035
<a name="l00036"></a><a class="code" href="classHevyMetl.html">00036</a> <span class="keyword">class </span><a class="code" href="classHevyMetl.html">HevyMetl</a> : <span class="keyword">public</span> <a class="code" href="classFM.html">FM</a>
00037 {
00038 <span class="keyword">public</span>:
00040 <a class="code" href="classHevyMetl.html#a0">HevyMetl</a>();
00041
00043 <a class="code" href="classHevyMetl.html#a1">~HevyMetl</a>();
00040
00043 <a class="code" href="classHevyMetl.html#a0">HevyMetl</a>();
00044
00046 <span class="keywordtype">void</span> <a class="code" href="classHevyMetl.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00046 <a class="code" href="classHevyMetl.html#a1">~HevyMetl</a>();
00047
00049 MY_FLOAT <a class="code" href="classHevyMetl.html#a3">tick</a>();
00050 };
00051
00052 <span class="preprocessor">#endif</span>
00049 <span class="keywordtype">void</span> <a class="code" href="classHevyMetl.html#a2">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00050
00052 StkFloat <a class="code" href="classHevyMetl.html#a3">tick</a>();
00053
00055 StkFloat *<a class="code" href="classHevyMetl.html#a3">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00056
00058
00064 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classHevyMetl.html#a3">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00065 };
00066
00067 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,47 +12,49 @@
<h1>Instrmnt.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00010 <span class="comment">/***************************************************/</span>
00011
00012 <span class="preprocessor">#if !defined(__INSTRMNT_H)</span>
00013 <span class="preprocessor"></span><span class="preprocessor">#define __INSTRMNT_H</span>
00012 <span class="preprocessor">#ifndef STK_INSTRMNT_H</span>
00013 <span class="preprocessor"></span><span class="preprocessor">#define STK_INSTRMNT_H</span>
00014 <span class="preprocessor"></span>
00015 <span class="preprocessor">#include "Stk.h"</span>
00016 <span class="preprocessor">#include &lt;iostream&gt;</span>
00017
<a name="l00018"></a><a class="code" href="classInstrmnt.html">00018</a> <span class="keyword">class </span><a class="code" href="classInstrmnt.html">Instrmnt</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00019 {
00020 <span class="keyword">public</span>:
00022 <a class="code" href="classInstrmnt.html#a0">Instrmnt</a>();
00023
00025 <span class="keyword">virtual</span> <a class="code" href="classInstrmnt.html#a1">~Instrmnt</a>();
00026
00028 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude) = 0;
00029
00031 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude) = 0;
00032
00034 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(MY_FLOAT frequency);
00035
00037 MY_FLOAT <a class="code" href="classInstrmnt.html#a5">lastOut</a>() <span class="keyword">const</span>;
00038
00040 MY_FLOAT <a class="code" href="classInstrmnt.html#a6">lastOutLeft</a>() <span class="keyword">const</span>;
00041
00043 MY_FLOAT <a class="code" href="classInstrmnt.html#a7">lastOutRight</a>() <span class="keyword">const</span>;
00044
00046 <span class="keyword">virtual</span> MY_FLOAT <a class="code" href="classInstrmnt.html#a8">tick</a>() = 0;
00047
00049 <span class="keyword">virtual</span> MY_FLOAT *<a class="code" href="classInstrmnt.html#a8">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00050
00052 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInstrmnt.html#a10">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00053
00054 <span class="keyword">protected</span>:
00055 MY_FLOAT lastOutput;
00056
00057 };
00016
<a name="l00017"></a><a class="code" href="classInstrmnt.html">00017</a> <span class="keyword">class </span><a class="code" href="classInstrmnt.html">Instrmnt</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00018 {
00019 <span class="keyword">public</span>:
00021 <a class="code" href="classInstrmnt.html#a0">Instrmnt</a>();
00022
00024 <span class="keyword">virtual</span> <a class="code" href="classInstrmnt.html#a1">~Instrmnt</a>();
00025
00027 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(StkFloat frequency, StkFloat amplitude) = 0;
00028
00030 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(StkFloat amplitude) = 0;
00031
00033 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(StkFloat frequency);
00034
00036 StkFloat <a class="code" href="classInstrmnt.html#a5">lastOut</a>() <span class="keyword">const</span>;
00037
00039 StkFloat <a class="code" href="classInstrmnt.html#a6">lastOutLeft</a>() <span class="keyword">const</span>;
00040
00042 StkFloat <a class="code" href="classInstrmnt.html#a7">lastOutRight</a>() <span class="keyword">const</span>;
00043
00045 <span class="keyword">virtual</span> StkFloat <a class="code" href="classInstrmnt.html#a8">tick</a>() = 0;
00046
00048 <span class="keyword">virtual</span> StkFloat *<a class="code" href="classInstrmnt.html#a8">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00049
00051
00057 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classInstrmnt.html#a8">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00058
00059 <span class="preprocessor">#endif</span>
00060 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInstrmnt.html#a11">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00061
00062 <span class="keyword">protected</span>:
00063 StkFloat lastOutput_;
00064
00065 };
00066
00067 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,39 +12,46 @@
<h1>JCRev.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00015 <span class="comment">/***************************************************/</span>
00016
00017 <span class="preprocessor">#if !defined(__JCREV_H)</span>
00018 <span class="preprocessor"></span><span class="preprocessor">#define __JCREV_H</span>
00017 <span class="preprocessor">#ifndef STK_JCREV_H</span>
00018 <span class="preprocessor"></span><span class="preprocessor">#define STK_JCREV_H</span>
00019 <span class="preprocessor"></span>
00020 <span class="preprocessor">#include "Reverb.h"</span>
00020 <span class="preprocessor">#include "Effect.h"</span>
00021 <span class="preprocessor">#include "Delay.h"</span>
00022
<a name="l00023"></a><a class="code" href="classJCRev.html">00023</a> <span class="keyword">class </span><a class="code" href="classJCRev.html">JCRev</a> : <span class="keyword">public</span> <a class="code" href="classReverb.html">Reverb</a>
<a name="l00023"></a><a class="code" href="classJCRev.html">00023</a> <span class="keyword">class </span><a class="code" href="classJCRev.html">JCRev</a> : <span class="keyword">public</span> <a class="code" href="classEffect.html">Effect</a>
00024 {
00025 <span class="keyword">public</span>:
00027 <a class="code" href="classJCRev.html#a0">JCRev</a>(MY_FLOAT T60);
00027 <a class="code" href="classJCRev.html#a0">JCRev</a>( StkFloat T60 = 1.0 );
00028
00030 <a class="code" href="classJCRev.html#a1">~JCRev</a>();
00031
00033 <span class="keywordtype">void</span> <a class="code" href="classJCRev.html#a2">clear</a>();
00034
00036 MY_FLOAT <a class="code" href="classJCRev.html#a3">tick</a>(MY_FLOAT input);
00036 <span class="keywordtype">void</span> <a class="code" href="classJCRev.html#a3">setT60</a>( StkFloat T60 );
00037
00038 <span class="keyword">protected</span>:
00039 <a class="code" href="classDelay.html">Delay</a> *allpassDelays[3];
00040 <a class="code" href="classDelay.html">Delay</a> *combDelays[4];
00041 <a class="code" href="classDelay.html">Delay</a> *outLeftDelay;
00042 <a class="code" href="classDelay.html">Delay</a> *outRightDelay;
00043 MY_FLOAT allpassCoefficient;
00044 MY_FLOAT combCoefficient[4];
00039 StkFloat <a class="code" href="classJCRev.html#a4">tick</a>(StkFloat input);
00040
00042 StkFloat *<a class="code" href="classJCRev.html#a4">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00043
00045
00046 };
00047
00048 <span class="preprocessor">#endif</span>
00049 <span class="preprocessor"></span>
00051 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classJCRev.html#a4">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00052
00053 <span class="keyword">protected</span>:
00054 <a class="code" href="classDelay.html">Delay</a> allpassDelays_[3];
00055 <a class="code" href="classDelay.html">Delay</a> combDelays_[4];
00056 <a class="code" href="classDelay.html">Delay</a> outLeftDelay_;
00057 <a class="code" href="classDelay.html">Delay</a> outRightDelay_;
00058 StkFloat allpassCoefficient_;
00059 StkFloat combCoefficient_[4];
00060
00061 };
00062
00063 <span class="preprocessor">#endif</span>
00064 <span class="preprocessor"></span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -1,47 +0,0 @@
<HTML>
<HEAD>
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"> &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="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>JetTabl.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00014 <span class="comment">/***************************************************/</span>
00015
00016 <span class="preprocessor">#if !defined(__JETTABL_H)</span>
00017 <span class="preprocessor"></span><span class="preprocessor">#define __JETTABL_H</span>
00018 <span class="preprocessor"></span>
00019 <span class="preprocessor">#include "Stk.h"</span>
00020
<a name="l00021"></a><a class="code" href="classJetTabl.html">00021</a> <span class="keyword">class </span><a class="code" href="classJetTabl.html">JetTabl</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00022 {
00023 <span class="keyword">public</span>:
00025 <a class="code" href="classJetTabl.html#a0">JetTabl</a>();
00026
00028 <a class="code" href="classJetTabl.html#a1">~JetTabl</a>();
00029
00031 MY_FLOAT <a class="code" href="classJetTabl.html#a2">lastOut</a>() <span class="keyword">const</span>;
00032
00034 MY_FLOAT <a class="code" href="classJetTabl.html#a3">tick</a>(MY_FLOAT input);
00035
00037 MY_FLOAT *<a class="code" href="classJetTabl.html#a3">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00038
00039 <span class="keyword">protected</span>:
00040 MY_FLOAT lastOutput;
00041
00042 };
00043
00044 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>
</HTML>

View File

@@ -0,0 +1,47 @@
<HTML>
<HEAD>
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"> &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="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>JetTable.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00014 <span class="comment">/***************************************************/</span>
00015
00016 <span class="preprocessor">#ifndef STK_JETTABL_H</span>
00017 <span class="preprocessor"></span><span class="preprocessor">#define STK_JETTABL_H</span>
00018 <span class="preprocessor"></span>
00019 <span class="preprocessor">#include "Function.h"</span>
00020
<a name="l00021"></a><a class="code" href="classJetTable.html">00021</a> <span class="keyword">class </span><a class="code" href="classJetTable.html">JetTable</a> : <span class="keyword">public</span> <a class="code" href="classFunction.html">Function</a>
00022 {
00023 <span class="keyword">public</span>:
00025 <a class="code" href="classJetTable.html#a0">JetTable</a>();
00026
00028 <a class="code" href="classJetTable.html#a1">~JetTable</a>();
00029
00031 StkFloat <a class="code" href="classJetTable.html#a2">tick</a>(StkFloat input);
00032
00034 StkFloat *<a class="code" href="classJetTable.html#a2">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00035
00037
00043 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classJetTable.html#a2">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00044
00045 <span class="keyword">protected</span>:
00046
00047 };
00048
00049 <span class="preprocessor">#endif</span>
</pre></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-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>
</HTML>

View File

@@ -12,8 +12,8 @@
<h1>Mandolin.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00028 <span class="comment">/***************************************************/</span>
00029
00030 <span class="preprocessor">#if !defined(__MANDOLIN_H)</span>
00031 <span class="preprocessor"></span><span class="preprocessor">#define __MANDOLIN_H</span>
00030 <span class="preprocessor">#ifndef STK_MANDOLIN_H</span>
00031 <span class="preprocessor"></span><span class="preprocessor">#define STK_MANDOLIN_H</span>
00032 <span class="preprocessor"></span>
00033 <span class="preprocessor">#include "PluckTwo.h"</span>
00034 <span class="preprocessor">#include "WvIn.h"</span>
@@ -21,35 +21,39 @@
<a name="l00036"></a><a class="code" href="classMandolin.html">00036</a> <span class="keyword">class </span><a class="code" href="classMandolin.html">Mandolin</a> : <span class="keyword">public</span> <a class="code" href="classPluckTwo.html">PluckTwo</a>
00037 {
00038 <span class="keyword">public</span>:
00040 <a class="code" href="classMandolin.html#a0">Mandolin</a>(MY_FLOAT lowestFrequency);
00040 <a class="code" href="classMandolin.html#a0">Mandolin</a>(StkFloat lowestFrequency);
00041
00043 <span class="keyword">virtual</span> <a class="code" href="classMandolin.html#a1">~Mandolin</a>();
00043 <a class="code" href="classMandolin.html#a1">~Mandolin</a>();
00044
00046 <span class="keywordtype">void</span> <a class="code" href="classMandolin.html#a2">pluck</a>(MY_FLOAT amplitude);
00046 <span class="keywordtype">void</span> <a class="code" href="classMandolin.html#a2">pluck</a>(StkFloat amplitude);
00047
00049 <span class="keywordtype">void</span> <a class="code" href="classMandolin.html#a2">pluck</a>(MY_FLOAT amplitude,MY_FLOAT position);
00049 <span class="keywordtype">void</span> <a class="code" href="classMandolin.html#a2">pluck</a>(StkFloat amplitude,StkFloat position);
00050
00052 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMandolin.html#a4">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00052 <span class="keywordtype">void</span> <a class="code" href="classMandolin.html#a4">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00053
00055 <span class="keywordtype">void</span> <a class="code" href="classMandolin.html#a5">setBodySize</a>(MY_FLOAT size);
00055 <span class="keywordtype">void</span> <a class="code" href="classMandolin.html#a5">setBodySize</a>(StkFloat size);
00056
00058 <span class="keyword">virtual</span> MY_FLOAT <a class="code" href="classMandolin.html#a6">tick</a>();
00058 StkFloat <a class="code" href="classMandolin.html#a6">tick</a>();
00059
00061 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMandolin.html#a7">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00061 StkFloat *<a class="code" href="classMandolin.html#a6">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00062
00063 <span class="keyword">protected</span>:
00064 <a class="code" href="classWvIn.html">WvIn</a> *soundfile[12];
00065 MY_FLOAT directBody;
00066 <span class="keywordtype">int</span> mic;
00067 <span class="keywordtype">long</span> dampTime;
00068 <span class="keywordtype">bool</span> waveDone;
00069 };
00070
00071 <span class="preprocessor">#endif</span>
00064
00070 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classMandolin.html#a6">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00071
00073 <span class="keywordtype">void</span> <a class="code" href="classMandolin.html#a9">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00074
00075 <span class="keyword">protected</span>:
00076 <a class="code" href="classWvIn.html">WvIn</a> *soundfile_[12];
00077 <span class="keywordtype">int</span> mic_;
00078 <span class="keywordtype">long</span> dampTime_;
00079 <span class="keywordtype">bool</span> waveDone_;
00080 };
00081
00082 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,15 +12,15 @@
<h1>Mesh2D.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00025 <span class="comment">/***************************************************/</span>
00026
00027 <span class="preprocessor">#if !defined(__MESH2D_H)</span>
00028 <span class="preprocessor"></span><span class="preprocessor">#define __MESH2D_H</span>
00027 <span class="preprocessor">#ifndef STK_MESH2D_H</span>
00028 <span class="preprocessor"></span><span class="preprocessor">#define STK_MESH2D_H</span>
00029 <span class="preprocessor"></span>
00030 <span class="preprocessor">#include "Instrmnt.h"</span>
00031 <span class="preprocessor">#include "OnePole.h"</span>
00032
00033 <span class="preprocessor">#define NXMAX ((short)(12))</span>
00034 <span class="preprocessor"></span><span class="preprocessor">#define NYMAX ((short)(12))</span>
00035 <span class="preprocessor"></span>
00033 <span class="keyword">const</span> <span class="keywordtype">short</span> NXMAX = 12;
00034 <span class="keyword">const</span> <span class="keywordtype">short</span> NYMAX = 12;
00035
<a name="l00036"></a><a class="code" href="classMesh2D.html">00036</a> <span class="keyword">class </span><a class="code" href="classMesh2D.html">Mesh2D</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
00037 {
00038 <span class="keyword">public</span>:
@@ -34,54 +34,57 @@
00050
00052 <span class="keywordtype">void</span> <a class="code" href="classMesh2D.html#a4">setNY</a>(<span class="keywordtype">short</span> lenY);
00053
00055 <span class="keywordtype">void</span> <a class="code" href="classMesh2D.html#a5">setInputPosition</a>(MY_FLOAT xFactor, MY_FLOAT yFactor);
00055 <span class="keywordtype">void</span> <a class="code" href="classMesh2D.html#a5">setInputPosition</a>(StkFloat xFactor, StkFloat yFactor);
00056
00058 <span class="keywordtype">void</span> <a class="code" href="classMesh2D.html#a6">setDecay</a>(MY_FLOAT decayFactor);
00058 <span class="keywordtype">void</span> <a class="code" href="classMesh2D.html#a6">setDecay</a>(StkFloat decayFactor);
00059
00061 <span class="keywordtype">void</span> <a class="code" href="classMesh2D.html#a7">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00061 <span class="keywordtype">void</span> <a class="code" href="classMesh2D.html#a7">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00062
00064 <span class="keywordtype">void</span> <a class="code" href="classMesh2D.html#a8">noteOff</a>(MY_FLOAT amplitude);
00064 <span class="keywordtype">void</span> <a class="code" href="classMesh2D.html#a8">noteOff</a>(StkFloat amplitude);
00065
00067 MY_FLOAT <a class="code" href="classMesh2D.html#a9">energy</a>();
00067 StkFloat <a class="code" href="classMesh2D.html#a9">energy</a>();
00068
00070 MY_FLOAT <a class="code" href="classMesh2D.html#a10">tick</a>();
00070 StkFloat <a class="code" href="classMesh2D.html#a10">tick</a>();
00071
00073 MY_FLOAT <a class="code" href="classMesh2D.html#a10">tick</a>(MY_FLOAT input);
00073 StkFloat <a class="code" href="classMesh2D.html#a10">tick</a>(StkFloat input);
00074
00076 <span class="keywordtype">void</span> <a class="code" href="classMesh2D.html#a12">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00076 StkFloat *<a class="code" href="classMesh2D.html#a10">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00077
00078 <span class="keyword">protected</span>:
00079
00080 MY_FLOAT tick0();
00081 MY_FLOAT tick1();
00082 <span class="keywordtype">void</span> clearMesh();
00083
00084 <span class="keywordtype">short</span> NX, NY;
00085 <span class="keywordtype">short</span> xInput, yInput;
00086 <a class="code" href="classOnePole.html">OnePole</a> *filterX[NXMAX];
00087 <a class="code" href="classOnePole.html">OnePole</a> *filterY[NYMAX];
00088 MY_FLOAT v[NXMAX-1][NYMAX-1]; <span class="comment">// junction velocities</span>
00089 MY_FLOAT vxp[NXMAX][NYMAX]; <span class="comment">// positive-x velocity wave</span>
00090 MY_FLOAT vxm[NXMAX][NYMAX]; <span class="comment">// negative-x velocity wave</span>
00091 MY_FLOAT vyp[NXMAX][NYMAX]; <span class="comment">// positive-y velocity wave</span>
00092 MY_FLOAT vym[NXMAX][NYMAX]; <span class="comment">// negative-y velocity wave</span>
00093
00094 <span class="comment">// Alternate buffers</span>
00095 MY_FLOAT vxp1[NXMAX][NYMAX]; <span class="comment">// positive-x velocity wave</span>
00096 MY_FLOAT vxm1[NXMAX][NYMAX]; <span class="comment">// negative-x velocity wave</span>
00097 MY_FLOAT vyp1[NXMAX][NYMAX]; <span class="comment">// positive-y velocity wave</span>
00098 MY_FLOAT vym1[NXMAX][NYMAX]; <span class="comment">// negative-y velocity wave</span>
00099
00100 <span class="keywordtype">int</span> counter; <span class="comment">// time in samples</span>
00101
00102
00103 };
00104
00105 <span class="preprocessor">#endif</span>
00085 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classMesh2D.html#a10">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00086
00088 <span class="keywordtype">void</span> <a class="code" href="classMesh2D.html#a14">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00089
00090 <span class="keyword">protected</span>:
00091
00092 StkFloat tick0();
00093 StkFloat tick1();
00094 <span class="keywordtype">void</span> clearMesh();
00095
00096 <span class="keywordtype">short</span> NX_, NY_;
00097 <span class="keywordtype">short</span> xInput_, yInput_;
00098 <a class="code" href="classOnePole.html">OnePole</a> filterX_[NXMAX];
00099 <a class="code" href="classOnePole.html">OnePole</a> filterY_[NYMAX];
00100 StkFloat v_[NXMAX-1][NYMAX-1]; <span class="comment">// junction velocities</span>
00101 StkFloat vxp_[NXMAX][NYMAX]; <span class="comment">// positive-x velocity wave</span>
00102 StkFloat vxm_[NXMAX][NYMAX]; <span class="comment">// negative-x velocity wave</span>
00103 StkFloat vyp_[NXMAX][NYMAX]; <span class="comment">// positive-y velocity wave</span>
00104 StkFloat vym_[NXMAX][NYMAX]; <span class="comment">// negative-y velocity wave</span>
00105
00106 <span class="comment">// Alternate buffers</span>
00107 StkFloat vxp1_[NXMAX][NYMAX]; <span class="comment">// positive-x velocity wave</span>
00108 StkFloat vxm1_[NXMAX][NYMAX]; <span class="comment">// negative-x velocity wave</span>
00109 StkFloat vyp1_[NXMAX][NYMAX]; <span class="comment">// positive-y velocity wave</span>
00110 StkFloat vym1_[NXMAX][NYMAX]; <span class="comment">// negative-y velocity wave</span>
00111
00112 <span class="keywordtype">int</span> counter_; <span class="comment">// time in samples</span>
00113 };
00114
00115 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -10,103 +10,96 @@
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>Messager.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00034 <span class="comment">/***************************************************/</span>
00035
00036 <span class="preprocessor">#if !defined(__MESSAGER_H)</span>
00037 <span class="preprocessor"></span><span class="preprocessor">#define __MESSSAGER_H</span>
00038 <span class="preprocessor"></span>
00039 <span class="preprocessor">#include "Stk.h"</span>
00040 <span class="preprocessor">#include "SKINI.h"</span>
00033 <span class="comment">/***************************************************/</span>
00034
00035 <span class="preprocessor">#ifndef STK_MESSAGER_H</span>
00036 <span class="preprocessor"></span><span class="preprocessor">#define STK_MESSAGER_H</span>
00037 <span class="preprocessor"></span>
00038 <span class="preprocessor">#include "Stk.h"</span>
00039 <span class="preprocessor">#include "Skini.h"</span>
00040 <span class="preprocessor">#include &lt;queue&gt;</span>
00041
00042 <span class="preprocessor">#define MESSAGE_LENGTH 128</span>
00043 <span class="preprocessor"></span><span class="preprocessor">#define MAX_MESSAGES 25</span>
00044 <span class="preprocessor"></span><span class="preprocessor">#define STK_MIDI 0x0001</span>
00045 <span class="preprocessor"></span><span class="preprocessor">#define STK_PIPE 0x0002</span>
00046 <span class="preprocessor"></span><span class="preprocessor">#define STK_SOCKET 0x0004</span>
00047 <span class="preprocessor"></span>
00048 <span class="preprocessor">#if defined(__STK_REALTIME__)</span>
00049 <span class="preprocessor"></span>
00050 <span class="preprocessor">#include "Thread.h"</span>
00051 <span class="preprocessor">#include "Socket.h"</span>
00052 <span class="preprocessor">#include "RtMidi.h"</span>
00053
00054 <span class="keyword">extern</span> <span class="stringliteral">"C"</span> THREAD_RETURN THREAD_TYPE stdinHandler(<span class="keywordtype">void</span> * ptr);
00055
00056 <span class="preprocessor">#if (defined(__OS_IRIX__) || defined(__OS_LINUX__) || defined(__OS_MACOSX__))</span>
00057 <span class="preprocessor"></span><span class="preprocessor"> #include &lt;sys/types.h&gt;</span>
00058 <span class="preprocessor"> #include &lt;sys/time.h&gt;</span>
00059 <span class="preprocessor">#endif</span>
00060 <span class="preprocessor"></span>
00061 <span class="preprocessor">#endif // __STK_REALTIME__</span>
00062 <span class="preprocessor"></span>
<a name="l00063"></a><a class="code" href="classMessager.html">00063</a> <span class="keyword">class </span><a class="code" href="classMessager.html">Messager</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00064 {
00065 <span class="keyword">public</span>:
00067
00075 <a class="code" href="classMessager.html#a0">Messager</a>(<span class="keywordtype">int</span> inputMask = 0, <span class="keywordtype">int</span> port = 2001);
00076
00078 <a class="code" href="classMessager.html#a1">~Messager</a>();
00079
00042 <span class="keyword">const</span> <span class="keywordtype">int</span> DEFAULT_QUEUE_LIMIT = 200;
00043
00044 <span class="preprocessor">#if defined(__STK_REALTIME__)</span>
00045 <span class="preprocessor"></span>
00046 <span class="preprocessor">#include "Mutex.h"</span>
00047 <span class="preprocessor">#include "Thread.h"</span>
00048 <span class="preprocessor">#include "Socket.h"</span>
00049 <span class="preprocessor">#include "RtMidi.h"</span>
00050
00051 <span class="keyword">extern</span> <span class="stringliteral">"C"</span> THREAD_RETURN THREAD_TYPE stdinHandler(<span class="keywordtype">void</span> * ptr);
00052
00053 <span class="keyword">extern</span> <span class="stringliteral">"C"</span> THREAD_RETURN THREAD_TYPE socketHandler(<span class="keywordtype">void</span> * ptr);
00054
00055 <span class="preprocessor">#endif // __STK_REALTIME__</span>
00056 <span class="preprocessor"></span>
<a name="l00057"></a><a class="code" href="classMessager.html">00057</a> <span class="keyword">class </span><a class="code" href="classMessager.html">Messager</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00058 {
00059 <span class="keyword">public</span>:
00060
00061 <span class="comment">// This structure is used to share data among the various realtime</span>
00062 <span class="comment">// messager threads. It must be public.</span>
00063 <span class="keyword">struct </span>MessagerData {
00064 <a class="code" href="classSkini.html">Skini</a> skini;
00065 std::queue&lt;Skini::Message&gt; queue;
00066 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueLimit;
00067 <span class="keywordtype">int</span> sources;
00068
00069 <span class="preprocessor">#if defined(__STK_REALTIME__)</span>
00070 <span class="preprocessor"></span> <a class="code" href="classMutex.html">Mutex</a> mutex;
00071 <a class="code" href="classRtMidiIn.html">RtMidiIn</a> *midi;
00072 <a class="code" href="classSocket.html">Socket</a> *socket;
00073 std::vector&lt;int&gt; fd;
00074 fd_set mask;
00075 <span class="preprocessor">#endif</span>
00076 <span class="preprocessor"></span>
00077 <span class="comment">// Default constructor.</span>
00078 MessagerData()
00079 :queueLimit(0), sources(0) {}
00080 };
00081
00087 <span class="keywordtype">long</span> <a class="code" href="classMessager.html#a2">nextMessage</a>(<span class="keywordtype">void</span>);
00088
00090 <span class="keywordtype">void</span> <a class="code" href="classMessager.html#a3">setRtDelta</a>(<span class="keywordtype">long</span> nSamples);
00091
00093 <span class="keywordtype">long</span> <a class="code" href="classMessager.html#a4">getDelta</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00094
00096 <span class="keywordtype">long</span> <a class="code" href="classMessager.html#a5">getType</a>() <span class="keyword">const</span>;
00097
00099 MY_FLOAT <a class="code" href="classMessager.html#a6">getByteTwo</a>() <span class="keyword">const</span>;
00100
00102 MY_FLOAT <a class="code" href="classMessager.html#a7">getByteThree</a>() <span class="keyword">const</span>;
00103
00105 <span class="keywordtype">long</span> <a class="code" href="classMessager.html#a8">getChannel</a>() <span class="keyword">const</span>;
00106
00107 <span class="keyword">protected</span>:
00108
00109 <a class="code" href="classSKINI.html">SKINI</a> *skini;
00110 <span class="keywordtype">long</span> type;
00111 <span class="keywordtype">long</span> channel;
00112 MY_FLOAT byte2;
00113 MY_FLOAT byte3;
00114 <span class="keywordtype">int</span> sources;
00115 <span class="keywordtype">long</span> delta;
00116 <span class="keywordtype">long</span> rtDelta;
00117 <span class="keywordtype">char</span> message[MAX_MESSAGES][MESSAGE_LENGTH];
00118 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> messageIndex;
00119 <span class="keywordtype">int</span> nMessages;
00120
00121 <span class="preprocessor">#if defined(__STK_REALTIME__)</span>
00122 <span class="preprocessor"></span>
00123 <span class="comment">// Check MIDI source for new messages.</span>
00124 <span class="keywordtype">bool</span> midiMessage(<span class="keywordtype">void</span>);
00083 <a class="code" href="classMessager.html#a0">Messager</a>();
00084
00086 <a class="code" href="classMessager.html#a1">~Messager</a>();
00087
00089
00095 <span class="keywordtype">void</span> <a class="code" href="classMessager.html#a2">popMessage</a>( <a class="code" href="structSkini_1_1Message.html">Skini::Message</a>&amp; message );
00096
00098 <span class="keywordtype">void</span> <a class="code" href="classMessager.html#a3">pushMessage</a>( <a class="code" href="structSkini_1_1Message.html">Skini::Message</a>&amp; message );
00099
00101
00109 <span class="keywordtype">bool</span> <a class="code" href="classMessager.html#a4">setScoreFile</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* filename );
00110
00111 <span class="preprocessor">#if defined(__STK_REALTIME__)</span>
00112 <span class="preprocessor"></span>
00113
00122 <span class="keywordtype">bool</span> startStdInput();
00123
00125
00126 <span class="comment">// Check socket sources for new messages.</span>
00127 <span class="keywordtype">bool</span> socketMessage(<span class="keywordtype">void</span>);
00128
00129 <span class="comment">// Receive and parse socket data.</span>
00130 <span class="keywordtype">bool</span> readSocket(<span class="keywordtype">int</span> fd);
00131
00132 <a class="code" href="classRtMidi.html">RtMidi</a> *midi;
00133 <a class="code" href="classThread.html">Thread</a> *thread;
00134 <a class="code" href="classSocket.html">Socket</a> *soket;
00135
00136 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nSockets;
00137 fd_set mask;
00138 <span class="keywordtype">int</span> maxfd;
00139 <span class="keywordtype">int</span> pipefd;
00140 <span class="keywordtype">int</span> fd[16];
00141 <span class="keywordtype">char</span> error[256];
00142
00143 <span class="preprocessor">#endif // __STK_REALTIME__</span>
00144 <span class="preprocessor"></span>
00145 };
00146
00147 <span class="preprocessor">#endif // defined(__MESSAGER_H)</span>
00136 <span class="keywordtype">bool</span> startSocketInput( <span class="keywordtype">int</span> port=2001 );
00137
00139
00151 <span class="keywordtype">bool</span> startMidiInput( <span class="keywordtype">int</span> port=0 );
00152
00153 <span class="preprocessor">#endif</span>
00154 <span class="preprocessor"></span>
00155 <span class="keyword">protected</span>:
00156
00157 MessagerData data_;
00158
00159 <span class="preprocessor">#if defined(__STK_REALTIME__)</span>
00160 <span class="preprocessor"></span> <a class="code" href="classThread.html">Thread</a> stdinThread_;
00161 <a class="code" href="classThread.html">Thread</a> socketThread_;
00162 <span class="preprocessor">#endif</span>
00163 <span class="preprocessor"></span>
00164 };
00165
00166 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -0,0 +1,92 @@
<HTML>
<HEAD>
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"> &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="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>MidiFileIn.h</h1><div class="fragment"><pre>00001 <span class="comment">/**********************************************************************/</span>
00016 <span class="comment">/**********************************************************************/</span>
00017
00018 <span class="preprocessor">#ifndef STK_MIDIFILEIN_H</span>
00019 <span class="preprocessor"></span><span class="preprocessor">#define STK_MIDIFILEIN_H</span>
00020 <span class="preprocessor"></span>
00021 <span class="preprocessor">#include "Stk.h"</span>
00022 <span class="preprocessor">#include &lt;string&gt;</span>
00023 <span class="preprocessor">#include &lt;vector&gt;</span>
00024 <span class="preprocessor">#include &lt;fstream&gt;</span>
00025 <span class="preprocessor">#include &lt;sstream&gt;</span>
00026
<a name="l00027"></a><a class="code" href="classMidiFileIn.html">00027</a> <span class="keyword">class </span><a class="code" href="classMidiFileIn.html">MidiFileIn</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00028 {
00029 <span class="keyword">public</span>:
00031
00035 <a class="code" href="classMidiFileIn.html#a0">MidiFileIn</a>( std::string fileName );
00036
00038 <a class="code" href="classMidiFileIn.html#a1">~MidiFileIn</a>();
00039
00041 <span class="keywordtype">int</span> <a class="code" href="classMidiFileIn.html#a2">getFileFormat</a>() <span class="keyword">const</span>;
00042
00044 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classMidiFileIn.html#a3">getNumberOfTracks</a>() <span class="keyword">const</span>;
00045
00047
00052 <span class="keywordtype">int</span> <a class="code" href="classMidiFileIn.html#a4">getDivision</a>() <span class="keyword">const</span>;
00053
00055
00059 <span class="keywordtype">void</span> <a class="code" href="classMidiFileIn.html#a5">rewindTrack</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> track = 0 );
00060
00062
00069 <span class="keywordtype">double</span> <a class="code" href="classMidiFileIn.html#a6">getTickSeconds</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> track = 0 );
00070
00072
00084 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classMidiFileIn.html#a7">getNextEvent</a>( std::vector&lt;unsigned char&gt; *event, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> track = 0 );
00085
00087
00097 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classMidiFileIn.html#a8">getNextMidiEvent</a>( std::vector&lt;unsigned char&gt; *midiEvent, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> track = 0 );
00098
00099 <span class="keyword">protected</span>:
00100
00101 <span class="comment">// This protected class function is used for reading variable-length</span>
00102 <span class="comment">// MIDI file values. It is assumed that this function is called with</span>
00103 <span class="comment">// the file read pointer positioned at the start of a</span>
00104 <span class="comment">// variable-length value. The function returns true if the value is</span>
00105 <span class="comment">// successfully parsed. Otherwise, it returns false.</span>
00106 <span class="keywordtype">bool</span> readVariableLength( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *value );
00107
00108 std::ifstream file_;
00109 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nTracks_;
00110 <span class="keywordtype">int</span> format_;
00111 <span class="keywordtype">int</span> division_;
00112 <span class="keywordtype">bool</span> usingTimeCode_;
00113 std::vector&lt;double&gt; tickSeconds_;
00114 std::vector&lt;long&gt; trackPointers_;
00115 std::vector&lt;long&gt; trackOffsets_;
00116 std::vector&lt;long&gt; trackLengths_;
00117 std::vector&lt;char&gt; trackStatus_;
00118
00119 <span class="comment">// This structure and the following variables are used to save and</span>
00120 <span class="comment">// keep track of a format 1 tempo map (and the initial tickSeconds</span>
00121 <span class="comment">// parameter for formats 0 and 2).</span>
00122 <span class="keyword">struct </span>TempoChange {
00123 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> count;
00124 <span class="keywordtype">double</span> tickSeconds;
00125 };
00126 std::vector&lt;TempoChange&gt; tempoEvents_;
00127 std::vector&lt;unsigned long&gt; trackCounters_;
00128 std::vector&lt;unsigned int&gt; trackTempoIndex_;
00129 };
00130
00131 <span class="preprocessor">#endif</span>
</pre></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-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>
</HTML>

View File

@@ -10,36 +10,36 @@
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>ModalBar.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00028 <span class="comment">/***************************************************/</span>
00029
00030 <span class="preprocessor">#if !defined(__MODALBAR_H)</span>
00031 <span class="preprocessor"></span><span class="preprocessor">#define __MODALBAR_H</span>
00032 <span class="preprocessor"></span>
00033 <span class="preprocessor">#include "Modal.h"</span>
00034
<a name="l00035"></a><a class="code" href="classModalBar.html">00035</a> <span class="keyword">class </span><a class="code" href="classModalBar.html">ModalBar</a> : <span class="keyword">public</span> <a class="code" href="classModal.html">Modal</a>
00036 {
00037 <span class="keyword">public</span>:
00039 <a class="code" href="classModalBar.html#a0">ModalBar</a>();
00040
00042 <a class="code" href="classModalBar.html#a1">~ModalBar</a>();
00043
00045 <span class="keywordtype">void</span> <a class="code" href="classModalBar.html#a2">setStickHardness</a>(MY_FLOAT hardness);
00046
00048 <span class="keywordtype">void</span> <a class="code" href="classModalBar.html#a3">setStrikePosition</a>(MY_FLOAT position);
00049
00051 <span class="keywordtype">void</span> <a class="code" href="classModalBar.html#a4">setPreset</a>(<span class="keywordtype">int</span> preset);
00052
00054 <span class="keywordtype">void</span> <a class="code" href="classModalBar.html#a5">setModulationDepth</a>(MY_FLOAT mDepth);
00055
00057 <span class="keywordtype">void</span> <a class="code" href="classModalBar.html#a6">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00058 };
00059
00060 <span class="preprocessor">#endif</span>
00029 <span class="comment">/***************************************************/</span>
00030
00031 <span class="preprocessor">#ifndef STK_MODALBAR_H</span>
00032 <span class="preprocessor"></span><span class="preprocessor">#define STK_MODALBAR_H</span>
00033 <span class="preprocessor"></span>
00034 <span class="preprocessor">#include "Modal.h"</span>
00035
<a name="l00036"></a><a class="code" href="classModalBar.html">00036</a> <span class="keyword">class </span><a class="code" href="classModalBar.html">ModalBar</a> : <span class="keyword">public</span> <a class="code" href="classModal.html">Modal</a>
00037 {
00038 <span class="keyword">public</span>:
00040 <a class="code" href="classModalBar.html#a0">ModalBar</a>();
00041
00043 <a class="code" href="classModalBar.html#a1">~ModalBar</a>();
00044
00046 <span class="keywordtype">void</span> <a class="code" href="classModalBar.html#a2">setStickHardness</a>(StkFloat hardness);
00047
00049 <span class="keywordtype">void</span> <a class="code" href="classModalBar.html#a3">setStrikePosition</a>(StkFloat position);
00050
00052 <span class="keywordtype">void</span> <a class="code" href="classModalBar.html#a4">setPreset</a>(<span class="keywordtype">int</span> preset);
00053
00055 <span class="keywordtype">void</span> <a class="code" href="classModalBar.html#a5">setModulationDepth</a>(StkFloat mDepth);
00056
00058 <span class="keywordtype">void</span> <a class="code" href="classModalBar.html#a6">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00059 };
00060
00061 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>Modal.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00012 <span class="comment">/***************************************************/</span>
00013
00014 <span class="preprocessor">#if !defined(__MODAL_H)</span>
00015 <span class="preprocessor"></span><span class="preprocessor">#define __MODAL_H</span>
00014 <span class="preprocessor">#ifndef STK_MODAL_H</span>
00015 <span class="preprocessor"></span><span class="preprocessor">#define STK_MODAL_H</span>
00016 <span class="preprocessor"></span>
00017 <span class="preprocessor">#include "Instrmnt.h"</span>
00018 <span class="preprocessor">#include "Envelope.h"</span>
@@ -24,57 +24,64 @@
<a name="l00023"></a><a class="code" href="classModal.html">00023</a> <span class="keyword">class </span><a class="code" href="classModal.html">Modal</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
00024 {
00025 <span class="keyword">public</span>:
00027 <a class="code" href="classModal.html#a0">Modal</a>( <span class="keywordtype">int</span> modes = 4 );
00028
00030 <span class="keyword">virtual</span> <a class="code" href="classModal.html#a1">~Modal</a>();
00027
00030 <a class="code" href="classModal.html#a0">Modal</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> modes = 4 );
00031
00033 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a2">clear</a>();
00033 <span class="keyword">virtual</span> <a class="code" href="classModal.html#a1">~Modal</a>();
00034
00036 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModal.html#a3">setFrequency</a>(MY_FLOAT frequency);
00036 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a2">clear</a>();
00037
00039 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a4">setRatioAndRadius</a>(<span class="keywordtype">int</span> modeIndex, MY_FLOAT ratio, MY_FLOAT radius);
00039 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModal.html#a3">setFrequency</a>(StkFloat frequency);
00040
00042 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a5">setMasterGain</a>(MY_FLOAT aGain);
00042 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a4">setRatioAndRadius</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> modeIndex, StkFloat ratio, StkFloat radius);
00043
00045 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a6">setDirectGain</a>(MY_FLOAT aGain);
00045 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a5">setMasterGain</a>(StkFloat aGain);
00046
00048 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a7">setModeGain</a>(<span class="keywordtype">int</span> modeIndex, MY_FLOAT gain);
00048 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a6">setDirectGain</a>(StkFloat aGain);
00049
00051 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModal.html#a8">strike</a>(MY_FLOAT amplitude);
00051 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a7">setModeGain</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> modeIndex, StkFloat gain);
00052
00054 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a9">damp</a>(MY_FLOAT amplitude);
00054 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModal.html#a8">strike</a>(StkFloat amplitude);
00055
00057 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a10">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00057 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a9">damp</a>(StkFloat amplitude);
00058
00060 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a11">noteOff</a>(MY_FLOAT amplitude);
00060 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a10">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00061
00063 <span class="keyword">virtual</span> MY_FLOAT <a class="code" href="classModal.html#a12">tick</a>();
00063 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a11">noteOff</a>(StkFloat amplitude);
00064
00066 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModal.html#a13">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value) = 0;
00066 <span class="keyword">virtual</span> StkFloat <a class="code" href="classModal.html#a12">tick</a>();
00067
00068 <span class="keyword">protected</span>:
00069 <a class="code" href="classEnvelope.html">Envelope</a> *envelope;
00070 <a class="code" href="classWvIn.html">WvIn</a> *wave;
00071 <a class="code" href="classBiQuad.html">BiQuad</a> **filters;
00072 <a class="code" href="classOnePole.html">OnePole</a> *onepole;
00073 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
00074 <span class="keywordtype">int</span> nModes;
00075 MY_FLOAT vibratoGain;
00076 MY_FLOAT masterGain;
00077 MY_FLOAT directGain;
00078 MY_FLOAT stickHardness;
00079 MY_FLOAT strikePosition;
00080 MY_FLOAT baseFrequency;
00081 MY_FLOAT *ratios;
00082 MY_FLOAT *radii;
00083
00084 };
00085
00086 <span class="preprocessor">#endif</span>
00069 <span class="keyword">virtual</span> StkFloat *<a class="code" href="classModal.html#a12">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00070
00072
00078 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classModal.html#a12">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00079
00081 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModal.html#a15">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value) = 0;
00082
00083 <span class="keyword">protected</span>:
00084 <a class="code" href="classEnvelope.html">Envelope</a> envelope_;
00085 <a class="code" href="classWvIn.html">WvIn</a> *wave_;
00086 <a class="code" href="classBiQuad.html">BiQuad</a> **filters_;
00087 <a class="code" href="classOnePole.html">OnePole</a> onepole_;
00088 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato_;
00089
00090 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nModes_;
00091 std::vector&lt;StkFloat&gt; ratios_;
00092 std::vector&lt;StkFloat&gt; radii_;
00093
00094 StkFloat vibratoGain_;
00095 StkFloat masterGain_;
00096 StkFloat directGain_;
00097 StkFloat stickHardness_;
00098 StkFloat strikePosition_;
00099 StkFloat baseFrequency_;
00100 };
00101
00102 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,50 +12,51 @@
<h1>Modulate.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00011 <span class="comment">/***************************************************/</span>
00012
00013 <span class="preprocessor">#if !defined(__MODULATE_H)</span>
00014 <span class="preprocessor"></span><span class="preprocessor">#define __MODULATE_H</span>
00013 <span class="preprocessor">#ifndef STK_MODULATE_H</span>
00014 <span class="preprocessor"></span><span class="preprocessor">#define STK_MODULATE_H</span>
00015 <span class="preprocessor"></span>
00016 <span class="preprocessor">#include "Stk.h"</span>
00016 <span class="preprocessor">#include "Generator.h"</span>
00017 <span class="preprocessor">#include "WaveLoop.h"</span>
00018 <span class="preprocessor">#include "SubNoise.h"</span>
00019 <span class="preprocessor">#include "OnePole.h"</span>
00020
<a name="l00021"></a><a class="code" href="classModulate.html">00021</a> <span class="keyword">class </span><a class="code" href="classModulate.html">Modulate</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
<a name="l00021"></a><a class="code" href="classModulate.html">00021</a> <span class="keyword">class </span><a class="code" href="classModulate.html">Modulate</a> : <span class="keyword">public</span> <a class="code" href="classGenerator.html">Generator</a>
00022 {
00023 <span class="keyword">public</span>:
00025 <a class="code" href="classModulate.html#a0">Modulate</a>();
00026
00028 <a class="code" href="classModulate.html#a1">~Modulate</a>();
00025
00028 <a class="code" href="classModulate.html#a0">Modulate</a>();
00029
00031 <span class="keywordtype">void</span> <a class="code" href="classModulate.html#a2">reset</a>();
00031 <a class="code" href="classModulate.html#a1">~Modulate</a>();
00032
00034 <span class="keywordtype">void</span> <a class="code" href="classModulate.html#a3">setVibratoRate</a>(MY_FLOAT aRate);
00034 <span class="keywordtype">void</span> <a class="code" href="classModulate.html#a2">reset</a>();
00035
00037 <span class="keywordtype">void</span> <a class="code" href="classModulate.html#a4">setVibratoGain</a>(MY_FLOAT aGain);
00037 <span class="keywordtype">void</span> <a class="code" href="classModulate.html#a3">setVibratoRate</a>(StkFloat rate);
00038
00040 <span class="keywordtype">void</span> <a class="code" href="classModulate.html#a5">setRandomGain</a>(MY_FLOAT aGain);
00040 <span class="keywordtype">void</span> <a class="code" href="classModulate.html#a4">setVibratoGain</a>(StkFloat gain);
00041
00043 MY_FLOAT <a class="code" href="classModulate.html#a6">tick</a>();
00043 <span class="keywordtype">void</span> <a class="code" href="classModulate.html#a5">setRandomGain</a>(StkFloat gain);
00044
00046 <span class="keyword">virtual</span> MY_FLOAT *<a class="code" href="classModulate.html#a6">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00046 StkFloat <a class="code" href="classModulate.html#a6">tick</a>();
00047
00049 MY_FLOAT <a class="code" href="classModulate.html#a8">lastOut</a>() <span class="keyword">const</span>;
00049 StkFloat *<a class="code" href="classModulate.html#a6">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00050
00051 <span class="keyword">protected</span>:
00052 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
00053 <a class="code" href="classSubNoise.html">SubNoise</a> *noise;
00054 <a class="code" href="classOnePole.html">OnePole</a> *filter;
00055 MY_FLOAT vibratoGain;
00056 MY_FLOAT randomGain;
00057 MY_FLOAT lastOutput;
00058
00059 };
00060
00061 <span class="preprocessor">#endif</span>
00052
00058 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classModulate.html#a6">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00059
00060 <span class="keyword">protected</span>:
00061 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato_;
00062 <a class="code" href="classSubNoise.html">SubNoise</a> noise_;
00063 <a class="code" href="classOnePole.html">OnePole</a> filter_;
00064 StkFloat vibratoGain_;
00065 StkFloat randomGain_;
00066
00067 };
00068
00069 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>Moog.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00019 <span class="comment">/***************************************************/</span>
00020
00021 <span class="preprocessor">#if !defined(__MOOG_H)</span>
00022 <span class="preprocessor"></span><span class="preprocessor">#define __MOOG_H</span>
00021 <span class="preprocessor">#ifndef STK_MOOG_H</span>
00022 <span class="preprocessor"></span><span class="preprocessor">#define STK_MOOG_H</span>
00023 <span class="preprocessor"></span>
00024 <span class="preprocessor">#include "Sampler.h"</span>
00025 <span class="preprocessor">#include "FormSwep.h"</span>
@@ -21,35 +21,41 @@
<a name="l00027"></a><a class="code" href="classMoog.html">00027</a> <span class="keyword">class </span><a class="code" href="classMoog.html">Moog</a> : <span class="keyword">public</span> <a class="code" href="classSampler.html">Sampler</a>
00028 {
00029 <span class="keyword">public</span>:
00031 <a class="code" href="classMoog.html#a0">Moog</a>();
00032
00034 <a class="code" href="classMoog.html#a1">~Moog</a>();
00031
00034 <a class="code" href="classMoog.html#a0">Moog</a>();
00035
00037 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMoog.html#a2">setFrequency</a>(MY_FLOAT frequency);
00037 <a class="code" href="classMoog.html#a1">~Moog</a>();
00038
00040 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMoog.html#a3">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00040 <span class="keywordtype">void</span> <a class="code" href="classMoog.html#a2">setFrequency</a>(StkFloat frequency);
00041
00043 <span class="keywordtype">void</span> <a class="code" href="classMoog.html#a4">setModulationSpeed</a>(MY_FLOAT mSpeed);
00043 <span class="keywordtype">void</span> <a class="code" href="classMoog.html#a3">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00044
00046 <span class="keywordtype">void</span> <a class="code" href="classMoog.html#a5">setModulationDepth</a>(MY_FLOAT mDepth);
00046 <span class="keywordtype">void</span> <a class="code" href="classMoog.html#a4">setModulationSpeed</a>(StkFloat mSpeed);
00047
00049 <span class="keyword">virtual</span> MY_FLOAT <a class="code" href="classMoog.html#a6">tick</a>();
00049 <span class="keywordtype">void</span> <a class="code" href="classMoog.html#a5">setModulationDepth</a>(StkFloat mDepth);
00050
00052 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classMoog.html#a7">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00052 StkFloat <a class="code" href="classMoog.html#a6">tick</a>();
00053
00054 <span class="keyword">protected</span>:
00055 <a class="code" href="classFormSwep.html">FormSwep</a> *filters[2];
00056 MY_FLOAT modDepth;
00057 MY_FLOAT filterQ;
00058 MY_FLOAT filterRate;
00059
00060 };
00061
00062 <span class="preprocessor">#endif</span>
00055 StkFloat *<a class="code" href="classMoog.html#a6">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00056
00058
00064 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classMoog.html#a6">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00065
00067 <span class="keywordtype">void</span> <a class="code" href="classMoog.html#a9">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00068
00069 <span class="keyword">protected</span>:
00070 <a class="code" href="classFormSwep.html">FormSwep</a> filters_[2];
00071 StkFloat modDepth_;
00072 StkFloat filterQ_;
00073 StkFloat filterRate_;
00074
00075 };
00076
00077 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -0,0 +1,68 @@
<HTML>
<HEAD>
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"> &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="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>Mutex.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00012 <span class="comment">/***************************************************/</span>
00013
00014 <span class="preprocessor">#ifndef STK_MUTEX_H</span>
00015 <span class="preprocessor"></span><span class="preprocessor">#define STK_MUTEX_H</span>
00016 <span class="preprocessor"></span>
00017 <span class="preprocessor">#include "Stk.h"</span>
00018
00019 <span class="preprocessor">#if (defined(__OS_IRIX__) || defined(__OS_LINUX__) || defined(__OS_MACOSX__))</span>
00020 <span class="preprocessor"></span>
00021 <span class="preprocessor"> #include &lt;pthread.h&gt;</span>
00022 <span class="keyword">typedef</span> pthread_mutex_t MUTEX;
00023 <span class="keyword">typedef</span> pthread_cond_t CONDITION;
00024
00025 <span class="preprocessor">#elif defined(__OS_WINDOWS__)</span>
00026 <span class="preprocessor"></span>
00027 <span class="preprocessor"> #include &lt;windows.h&gt;</span>
00028 <span class="preprocessor"> #include &lt;process.h&gt;</span>
00029 <span class="keyword">typedef</span> CRITICAL_SECTION MUTEX;
00030 <span class="keyword">typedef</span> HANDLE CONDITION;
00031
00032 <span class="preprocessor">#endif</span>
00033 <span class="preprocessor"></span>
<a name="l00034"></a><a class="code" href="classMutex.html">00034</a> <span class="keyword">class </span><a class="code" href="classMutex.html">Mutex</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00035 {
00036 <span class="keyword">public</span>:
00038 <a class="code" href="classMutex.html#a0">Mutex</a>();
00039
00041 <a class="code" href="classMutex.html#a1">~Mutex</a>();
00042
00044 <span class="keywordtype">void</span> <a class="code" href="classMutex.html#a2">lock</a>(<span class="keywordtype">void</span>);
00045
00047 <span class="keywordtype">void</span> <a class="code" href="classMutex.html#a3">unlock</a>(<span class="keywordtype">void</span>);
00048
00050
00054 <span class="keywordtype">void</span> <a class="code" href="classMutex.html#a4">wait</a>(<span class="keywordtype">void</span>);
00055
00057
00061 <span class="keywordtype">void</span> <a class="code" href="classMutex.html#a5">signal</a>(<span class="keywordtype">void</span>);
00062
00063 <span class="keyword">protected</span>:
00064
00065 MUTEX mutex_;
00066 CONDITION condition_;
00067
00068 };
00069
00070 <span class="preprocessor">#endif</span>
</pre></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-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>
</HTML>

View File

@@ -12,38 +12,45 @@
<h1>NRev.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00017 <span class="comment">/***************************************************/</span>
00018
00019 <span class="preprocessor">#if !defined(__NREV_H)</span>
00020 <span class="preprocessor"></span><span class="preprocessor">#define __NREV_H</span>
00019 <span class="preprocessor">#ifndef STK_NREV_H</span>
00020 <span class="preprocessor"></span><span class="preprocessor">#define STK_NREV_H</span>
00021 <span class="preprocessor"></span>
00022 <span class="preprocessor">#include "Reverb.h"</span>
00022 <span class="preprocessor">#include "Effect.h"</span>
00023 <span class="preprocessor">#include "Delay.h"</span>
00024
<a name="l00025"></a><a class="code" href="classNRev.html">00025</a> <span class="keyword">class </span><a class="code" href="classNRev.html">NRev</a> : <span class="keyword">public</span> <a class="code" href="classReverb.html">Reverb</a>
<a name="l00025"></a><a class="code" href="classNRev.html">00025</a> <span class="keyword">class </span><a class="code" href="classNRev.html">NRev</a> : <span class="keyword">public</span> <a class="code" href="classEffect.html">Effect</a>
00026 {
00027 <span class="keyword">public</span>:
00029 <a class="code" href="classNRev.html#a0">NRev</a>(MY_FLOAT T60);
00029 <a class="code" href="classNRev.html#a0">NRev</a>( StkFloat T60 = 1.0 );
00030
00032 <a class="code" href="classNRev.html#a1">~NRev</a>();
00033
00035 <span class="keywordtype">void</span> <a class="code" href="classNRev.html#a2">clear</a>();
00036
00038 MY_FLOAT <a class="code" href="classNRev.html#a3">tick</a>(MY_FLOAT input);
00038 <span class="keywordtype">void</span> <a class="code" href="classNRev.html#a3">setT60</a>( StkFloat T60 );
00039
00040 <span class="keyword">protected</span>:
00041 <a class="code" href="classDelay.html">Delay</a> *allpassDelays[8];
00042 <a class="code" href="classDelay.html">Delay</a> *combDelays[6];
00043 MY_FLOAT allpassCoefficient;
00044 MY_FLOAT combCoefficient[6];
00045 MY_FLOAT lowpassState;
00046
00047 };
00048
00049 <span class="preprocessor">#endif</span>
00050 <span class="preprocessor"></span>
00041 StkFloat <a class="code" href="classNRev.html#a4">tick</a>(StkFloat input);
00042
00044 StkFloat *<a class="code" href="classNRev.html#a4">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00045
00047
00053 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classNRev.html#a4">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00054
00055 <span class="keyword">protected</span>:
00056 <a class="code" href="classDelay.html">Delay</a> allpassDelays_[8];
00057 <a class="code" href="classDelay.html">Delay</a> combDelays_[6];
00058 StkFloat allpassCoefficient_;
00059 StkFloat combCoefficient_[6];
00060 StkFloat lowpassState_;
00061
00062 };
00063
00064 <span class="preprocessor">#endif</span>
00065 <span class="preprocessor"></span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,12 +12,12 @@
<h1>Noise.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00011 <span class="comment">/***************************************************/</span>
00012
00013 <span class="preprocessor">#if !defined(__NOISE_H)</span>
00014 <span class="preprocessor"></span><span class="preprocessor">#define __NOISE_H</span>
00013 <span class="preprocessor">#ifndef STK_NOISE_H</span>
00014 <span class="preprocessor"></span><span class="preprocessor">#define STK_NOISE_H</span>
00015 <span class="preprocessor"></span>
00016 <span class="preprocessor">#include "Stk.h"</span>
00016 <span class="preprocessor">#include "Generator.h"</span>
00017
<a name="l00018"></a><a class="code" href="classNoise.html">00018</a> <span class="keyword">class </span><a class="code" href="classNoise.html">Noise</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
<a name="l00018"></a><a class="code" href="classNoise.html">00018</a> <span class="keyword">class </span><a class="code" href="classNoise.html">Noise</a> : <span class="keyword">public</span> <a class="code" href="classGenerator.html">Generator</a>
00019 {
00020 <span class="keyword">public</span>:
00021
@@ -31,23 +31,22 @@
00036
00040 <span class="keywordtype">void</span> <a class="code" href="classNoise.html#a3">setSeed</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> seed = 0 );
00041
00043 <span class="keyword">virtual</span> MY_FLOAT <a class="code" href="classNoise.html#a4">tick</a>();
00043 <span class="keyword">virtual</span> StkFloat <a class="code" href="classNoise.html#a4">tick</a>();
00044
00046 <span class="keyword">virtual</span> MY_FLOAT *<a class="code" href="classNoise.html#a4">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00046 <span class="keyword">virtual</span> StkFloat *<a class="code" href="classNoise.html#a4">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00047
00049 MY_FLOAT <a class="code" href="classNoise.html#a6">lastOut</a>() <span class="keyword">const</span>;
00050
00051 <span class="keyword">protected</span>:
00052
00053 MY_FLOAT lastOutput;
00054
00055 };
00049
00055 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classNoise.html#a4">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00056
00057 <span class="preprocessor">#endif</span>
00057 <span class="keyword">protected</span>:
00058
00059 };
00060
00061 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>OnePole.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00013 <span class="comment">/***************************************************/</span>
00014
00015 <span class="preprocessor">#if !defined(__ONEPOLE_H)</span>
00016 <span class="preprocessor"></span><span class="preprocessor">#define __ONEPOLE_H</span>
00015 <span class="preprocessor">#ifndef STK_ONEPOLE_H</span>
00016 <span class="preprocessor"></span><span class="preprocessor">#define STK_ONEPOLE_H</span>
00017 <span class="preprocessor"></span>
00018 <span class="preprocessor">#include "Filter.h"</span>
00019
@@ -23,36 +23,40 @@
00023
00025 <a class="code" href="classOnePole.html#a0">OnePole</a>();
00026
00028 <a class="code" href="classOnePole.html#a0">OnePole</a>(MY_FLOAT thePole);
00028 <a class="code" href="classOnePole.html#a0">OnePole</a>(StkFloat thePole);
00029
00031 <a class="code" href="classOnePole.html#a2">~OnePole</a>();
00032
00034 <span class="keywordtype">void</span> <a class="code" href="classOnePole.html#a3">clear</a>(<span class="keywordtype">void</span>);
00035
00037 <span class="keywordtype">void</span> <a class="code" href="classOnePole.html#a4">setB0</a>(MY_FLOAT b0);
00037 <span class="keywordtype">void</span> <a class="code" href="classOnePole.html#a4">setB0</a>(StkFloat b0);
00038
00040 <span class="keywordtype">void</span> <a class="code" href="classOnePole.html#a5">setA1</a>(MY_FLOAT a1);
00040 <span class="keywordtype">void</span> <a class="code" href="classOnePole.html#a5">setA1</a>(StkFloat a1);
00041
00043
00050 <span class="keywordtype">void</span> <a class="code" href="classOnePole.html#a6">setPole</a>(MY_FLOAT thePole);
00050 <span class="keywordtype">void</span> <a class="code" href="classOnePole.html#a6">setPole</a>(StkFloat thePole);
00051
00053
00057 <span class="keywordtype">void</span> <a class="code" href="classOnePole.html#a7">setGain</a>(MY_FLOAT theGain);
00057 <span class="keywordtype">void</span> <a class="code" href="classOnePole.html#a7">setGain</a>(StkFloat gain);
00058
00060 MY_FLOAT <a class="code" href="classOnePole.html#a8">getGain</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00060 StkFloat <a class="code" href="classOnePole.html#a8">getGain</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00061
00063 MY_FLOAT <a class="code" href="classOnePole.html#a9">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00063 StkFloat <a class="code" href="classOnePole.html#a9">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00064
00066 MY_FLOAT <a class="code" href="classOnePole.html#a10">tick</a>(MY_FLOAT sample);
00066 StkFloat <a class="code" href="classOnePole.html#a10">tick</a>(StkFloat sample);
00067
00069 MY_FLOAT *<a class="code" href="classOnePole.html#a10">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00070 };
00071
00072 <span class="preprocessor">#endif</span>
00069 StkFloat *<a class="code" href="classOnePole.html#a10">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00070
00072
00078 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classOnePole.html#a10">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00079
00080 };
00081
00082 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>OneZero.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00013 <span class="comment">/***************************************************/</span>
00014
00015 <span class="preprocessor">#if !defined(__ONEZERO_H)</span>
00016 <span class="preprocessor"></span><span class="preprocessor">#define __ONEZERO_H</span>
00015 <span class="preprocessor">#ifndef STK_ONEZERO_H</span>
00016 <span class="preprocessor"></span><span class="preprocessor">#define STK_ONEZERO_H</span>
00017 <span class="preprocessor"></span>
00018 <span class="preprocessor">#include "Filter.h"</span>
00019
@@ -23,36 +23,40 @@
00023
00025 <a class="code" href="classOneZero.html#a0">OneZero</a>();
00026
00028 <a class="code" href="classOneZero.html#a0">OneZero</a>(MY_FLOAT theZero);
00028 <a class="code" href="classOneZero.html#a0">OneZero</a>(StkFloat theZero);
00029
00031 <a class="code" href="classOneZero.html#a2">~OneZero</a>();
00032
00034 <span class="keywordtype">void</span> <a class="code" href="classOneZero.html#a3">clear</a>(<span class="keywordtype">void</span>);
00035
00037 <span class="keywordtype">void</span> <a class="code" href="classOneZero.html#a4">setB0</a>(MY_FLOAT b0);
00037 <span class="keywordtype">void</span> <a class="code" href="classOneZero.html#a4">setB0</a>(StkFloat b0);
00038
00040 <span class="keywordtype">void</span> <a class="code" href="classOneZero.html#a5">setB1</a>(MY_FLOAT b1);
00040 <span class="keywordtype">void</span> <a class="code" href="classOneZero.html#a5">setB1</a>(StkFloat b1);
00041
00043
00050 <span class="keywordtype">void</span> <a class="code" href="classOneZero.html#a6">setZero</a>(MY_FLOAT theZero);
00050 <span class="keywordtype">void</span> <a class="code" href="classOneZero.html#a6">setZero</a>(StkFloat theZero);
00051
00053
00057 <span class="keywordtype">void</span> <a class="code" href="classOneZero.html#a7">setGain</a>(MY_FLOAT theGain);
00057 <span class="keywordtype">void</span> <a class="code" href="classOneZero.html#a7">setGain</a>(StkFloat gain);
00058
00060 MY_FLOAT <a class="code" href="classOneZero.html#a8">getGain</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00060 StkFloat <a class="code" href="classOneZero.html#a8">getGain</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00061
00063 MY_FLOAT <a class="code" href="classOneZero.html#a9">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00063 StkFloat <a class="code" href="classOneZero.html#a9">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00064
00066 MY_FLOAT <a class="code" href="classOneZero.html#a10">tick</a>(MY_FLOAT sample);
00066 StkFloat <a class="code" href="classOneZero.html#a10">tick</a>(StkFloat sample);
00067
00069 MY_FLOAT *<a class="code" href="classOneZero.html#a10">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00070 };
00071
00072 <span class="preprocessor">#endif</span>
00069 StkFloat *<a class="code" href="classOneZero.html#a10">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00070
00072
00078 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classOneZero.html#a10">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00079
00080 };
00081
00082 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,37 +12,44 @@
<h1>PRCRev.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00015 <span class="comment">/***************************************************/</span>
00016
00017 <span class="preprocessor">#if !defined(__PRCREV_H)</span>
00018 <span class="preprocessor"></span><span class="preprocessor">#define __PRCREV_H</span>
00017 <span class="preprocessor">#ifndef STK_PRCREV_H</span>
00018 <span class="preprocessor"></span><span class="preprocessor">#define STK_PRCREV_H</span>
00019 <span class="preprocessor"></span>
00020 <span class="preprocessor">#include "Reverb.h"</span>
00020 <span class="preprocessor">#include "Effect.h"</span>
00021 <span class="preprocessor">#include "Delay.h"</span>
00022
<a name="l00023"></a><a class="code" href="classPRCRev.html">00023</a> <span class="keyword">class </span><a class="code" href="classPRCRev.html">PRCRev</a> : <span class="keyword">public</span> <a class="code" href="classReverb.html">Reverb</a>
<a name="l00023"></a><a class="code" href="classPRCRev.html">00023</a> <span class="keyword">class </span><a class="code" href="classPRCRev.html">PRCRev</a> : <span class="keyword">public</span> <a class="code" href="classEffect.html">Effect</a>
00024 {
00025 <span class="keyword">public</span>:
00027 <a class="code" href="classPRCRev.html#a0">PRCRev</a>(MY_FLOAT T60);
00027 <a class="code" href="classPRCRev.html#a0">PRCRev</a>( StkFloat T60 = 1.0 );
00028
00030 <a class="code" href="classPRCRev.html#a1">~PRCRev</a>();
00031
00033 <span class="keywordtype">void</span> <a class="code" href="classPRCRev.html#a2">clear</a>();
00034
00036 MY_FLOAT <a class="code" href="classPRCRev.html#a3">tick</a>(MY_FLOAT input);
00036 <span class="keywordtype">void</span> <a class="code" href="classPRCRev.html#a3">setT60</a>( StkFloat T60 );
00037
00038 <span class="keyword">protected</span>:
00039 <a class="code" href="classDelay.html">Delay</a> *allpassDelays[2];
00040 <a class="code" href="classDelay.html">Delay</a> *combDelays[2];
00041 MY_FLOAT allpassCoefficient;
00042 MY_FLOAT combCoefficient[2];
00039 StkFloat <a class="code" href="classPRCRev.html#a4">tick</a>(StkFloat input);
00040
00042 StkFloat *<a class="code" href="classPRCRev.html#a4">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00043
00044 };
00045
00046 <span class="preprocessor">#endif</span>
00047 <span class="preprocessor"></span>
00051 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classPRCRev.html#a4">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00052
00053 <span class="keyword">protected</span>:
00054 <a class="code" href="classDelay.html">Delay</a> allpassDelays_[2];
00055 <a class="code" href="classDelay.html">Delay</a> combDelays_[2];
00056 StkFloat allpassCoefficient_;
00057 StkFloat combCoefficient_[2];
00058
00059 };
00060
00061 <span class="preprocessor">#endif</span>
00062 <span class="preprocessor"></span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,30 +12,36 @@
<h1>PercFlut.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00027 <span class="comment">/***************************************************/</span>
00028
00029 <span class="preprocessor">#if !defined(__PERCFLUT_H)</span>
00030 <span class="preprocessor"></span><span class="preprocessor">#define __PERCFLUT_H</span>
00029 <span class="preprocessor">#ifndef STK_PERCFLUT_H</span>
00030 <span class="preprocessor"></span><span class="preprocessor">#define STK_PERCFLUT_H</span>
00031 <span class="preprocessor"></span>
00032 <span class="preprocessor">#include "FM.h"</span>
00033
<a name="l00034"></a><a class="code" href="classPercFlut.html">00034</a> <span class="keyword">class </span><a class="code" href="classPercFlut.html">PercFlut</a> : <span class="keyword">public</span> <a class="code" href="classFM.html">FM</a>
00035 {
00036 <span class="keyword">public</span>:
00038 <a class="code" href="classPercFlut.html#a0">PercFlut</a>();
00039
00041 <a class="code" href="classPercFlut.html#a1">~PercFlut</a>();
00038
00041 <a class="code" href="classPercFlut.html#a0">PercFlut</a>();
00042
00044 <span class="keywordtype">void</span> <a class="code" href="classPercFlut.html#a2">setFrequency</a>(MY_FLOAT frequency);
00044 <a class="code" href="classPercFlut.html#a1">~PercFlut</a>();
00045
00047 <span class="keywordtype">void</span> <a class="code" href="classPercFlut.html#a3">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00047 <span class="keywordtype">void</span> <a class="code" href="classPercFlut.html#a2">setFrequency</a>(StkFloat frequency);
00048
00050 MY_FLOAT <a class="code" href="classPercFlut.html#a4">tick</a>();
00051 };
00052
00053 <span class="preprocessor">#endif</span>
00050 <span class="keywordtype">void</span> <a class="code" href="classPercFlut.html#a3">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00051
00053 StkFloat <a class="code" href="classPercFlut.html#a4">tick</a>();
00054
00056 StkFloat *<a class="code" href="classPercFlut.html#a4">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00057
00059
00065 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classPercFlut.html#a4">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00066 };
00067
00068 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,12 +12,12 @@
<h1>Phonemes.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00011 <span class="comment">/***************************************************/</span>
00012
00013 <span class="preprocessor">#if !defined(__PHONEMES_H)</span>
00014 <span class="preprocessor"></span><span class="preprocessor">#define __PHONEMES_H</span>
00013 <span class="preprocessor">#ifndef STK_PHONEMES_H</span>
00014 <span class="preprocessor"></span><span class="preprocessor">#define STK_PHONEMES_H</span>
00015 <span class="preprocessor"></span>
00016 <span class="preprocessor">#include "Stk.h"</span>
00017
<a name="l00018"></a><a class="code" href="classPhonemes.html">00018</a> <span class="keyword">class </span><a class="code" href="classPhonemes.html">Phonemes</a>
<a name="l00018"></a><a class="code" href="classPhonemes.html">00018</a> <span class="keyword">class </span><a class="code" href="classPhonemes.html">Phonemes</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00019 {
00020 <span class="keyword">public</span>:
00021
@@ -26,29 +26,28 @@
00024
00026 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classPhonemes.html#e0">name</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index );
00027
00029 <span class="keyword">static</span> MY_FLOAT <a class="code" href="classPhonemes.html#e1">voiceGain</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index );
00029 <span class="keyword">static</span> StkFloat <a class="code" href="classPhonemes.html#e1">voiceGain</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index );
00030
00032 <span class="keyword">static</span> MY_FLOAT <a class="code" href="classPhonemes.html#e2">noiseGain</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index );
00032 <span class="keyword">static</span> StkFloat <a class="code" href="classPhonemes.html#e2">noiseGain</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index );
00033
00035 <span class="keyword">static</span> MY_FLOAT <a class="code" href="classPhonemes.html#e3">formantFrequency</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> partial );
00035 <span class="keyword">static</span> StkFloat <a class="code" href="classPhonemes.html#e3">formantFrequency</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> partial );
00036
00038 <span class="keyword">static</span> MY_FLOAT <a class="code" href="classPhonemes.html#e4">formantRadius</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> partial );
00038 <span class="keyword">static</span> StkFloat <a class="code" href="classPhonemes.html#e4">formantRadius</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> partial );
00039
00041 <span class="keyword">static</span> MY_FLOAT <a class="code" href="classPhonemes.html#e5">formantGain</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> partial );
00041 <span class="keyword">static</span> StkFloat <a class="code" href="classPhonemes.html#e5">formantGain</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> partial );
00042
00043 <span class="keyword">private</span>:
00044
00045 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> phonemeNames[][4];
00046 <span class="keyword">static</span> <span class="keyword">const</span> MY_FLOAT phonemeGains[][2];
00047 <span class="keyword">static</span> <span class="keyword">const</span> MY_FLOAT phonemeParameters[][4][3];
00048
00049 };
00050
00051 <span class="preprocessor">#endif</span>
00046 <span class="keyword">static</span> <span class="keyword">const</span> StkFloat phonemeGains[][2];
00047 <span class="keyword">static</span> <span class="keyword">const</span> StkFloat phonemeParameters[][4][3];
00048 };
00049
00050 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,13 +12,13 @@
<h1>PitShift.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00010 <span class="comment">/***************************************************/</span>
00011
00012 <span class="preprocessor">#if !defined(__PITSHIFT_H)</span>
00013 <span class="preprocessor"></span><span class="preprocessor">#define __PITSHIFT_H</span>
00012 <span class="preprocessor">#ifndef STK_PITSHIFT_H</span>
00013 <span class="preprocessor"></span><span class="preprocessor">#define STK_PITSHIFT_H</span>
00014 <span class="preprocessor"></span>
00015 <span class="preprocessor">#include "Stk.h"</span>
00015 <span class="preprocessor">#include "Effect.h"</span>
00016 <span class="preprocessor">#include "DelayL.h"</span>
00017
<a name="l00018"></a><a class="code" href="classPitShift.html">00018</a> <span class="keyword">class </span><a class="code" href="classPitShift.html">PitShift</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
<a name="l00018"></a><a class="code" href="classPitShift.html">00018</a> <span class="keyword">class </span><a class="code" href="classPitShift.html">PitShift</a> : <span class="keyword">public</span> <a class="code" href="classEffect.html">Effect</a>
00019 {
00020 <span class="keyword">public</span>:
00022 <a class="code" href="classPitShift.html#a0">PitShift</a>();
@@ -27,32 +27,31 @@
00026
00028 <span class="keywordtype">void</span> <a class="code" href="classPitShift.html#a2">clear</a>();
00029
00031 <span class="keywordtype">void</span> <a class="code" href="classPitShift.html#a3">setShift</a>(MY_FLOAT shift);
00031 <span class="keywordtype">void</span> <a class="code" href="classPitShift.html#a3">setShift</a>(StkFloat shift);
00032
00034 <span class="keywordtype">void</span> <a class="code" href="classPitShift.html#a4">setEffectMix</a>(MY_FLOAT mix);
00034 StkFloat <a class="code" href="classPitShift.html#a4">tick</a>(StkFloat input);
00035
00037 MY_FLOAT <a class="code" href="classPitShift.html#a5">lastOut</a>() <span class="keyword">const</span>;
00037 StkFloat *<a class="code" href="classPitShift.html#a4">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00038
00040 MY_FLOAT <a class="code" href="classPitShift.html#a6">tick</a>(MY_FLOAT input);
00041
00043 MY_FLOAT *<a class="code" href="classPitShift.html#a6">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00044
00045 <span class="keyword">protected</span>:
00046 <a class="code" href="classDelayL.html">DelayL</a> *delayLine[2];
00047 MY_FLOAT lastOutput;
00048 MY_FLOAT delay[2];
00049 MY_FLOAT env[2];
00050 MY_FLOAT effectMix;
00051 MY_FLOAT rate;
00052
00053 };
00054
00055 <span class="preprocessor">#endif</span>
00056 <span class="preprocessor"></span>
00040
00046 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classPitShift.html#a4">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00047
00048 <span class="keyword">protected</span>:
00049 <a class="code" href="classDelayL.html">DelayL</a> delayLine_[2];
00050 StkFloat delay_[2];
00051 StkFloat env_[2];
00052 StkFloat rate_;
00053 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> delayLength;
00054 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> halfLength;
00055
00056 };
00057
00058 <span class="preprocessor">#endif</span>
00059 <span class="preprocessor"></span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>PluckTwo.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00019 <span class="comment">/***************************************************/</span>
00020
00021 <span class="preprocessor">#if !defined(__PLUCKTWO_H)</span>
00022 <span class="preprocessor"></span><span class="preprocessor">#define __PLUCKTWO_H</span>
00021 <span class="preprocessor">#ifndef STK_PLUCKTWO_H</span>
00022 <span class="preprocessor"></span><span class="preprocessor">#define STK_PLUCKTWO_H</span>
00023 <span class="preprocessor"></span>
00024 <span class="preprocessor">#include "Instrmnt.h"</span>
00025 <span class="preprocessor">#include "DelayL.h"</span>
@@ -23,49 +23,55 @@
<a name="l00029"></a><a class="code" href="classPluckTwo.html">00029</a> <span class="keyword">class </span><a class="code" href="classPluckTwo.html">PluckTwo</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
00030 {
00031 <span class="keyword">public</span>:
00033 <a class="code" href="classPluckTwo.html#a0">PluckTwo</a>(MY_FLOAT lowestFrequency);
00033 <a class="code" href="classPluckTwo.html#a0">PluckTwo</a>(StkFloat lowestFrequency);
00034
00036 <span class="keyword">virtual</span> <a class="code" href="classPluckTwo.html#a1">~PluckTwo</a>();
00037
00039 <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a2">clear</a>();
00040
00042 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a3">setFrequency</a>(MY_FLOAT frequency);
00042 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a3">setFrequency</a>(StkFloat frequency);
00043
00045 <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a4">setDetune</a>(MY_FLOAT detune);
00045 <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a4">setDetune</a>(StkFloat detune);
00046
00048 <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a5">setFreqAndDetune</a>(MY_FLOAT frequency, MY_FLOAT detune);
00048 <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a5">setFreqAndDetune</a>(StkFloat frequency, StkFloat detune);
00049
00051 <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a6">setPluckPosition</a>(MY_FLOAT position);
00051 <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a6">setPluckPosition</a>(StkFloat position);
00052
00054
00059 <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a7">setBaseLoopGain</a>(MY_FLOAT aGain);
00059 <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a7">setBaseLoopGain</a>(StkFloat aGain);
00060
00062 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a8">noteOff</a>(MY_FLOAT amplitude);
00062 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a8">noteOff</a>(StkFloat amplitude);
00063
00065 <span class="keyword">virtual</span> MY_FLOAT <a class="code" href="classPluckTwo.html#a9">tick</a>() = 0;
00065 <span class="keyword">virtual</span> StkFloat <a class="code" href="classPluckTwo.html#a9">tick</a>() = 0;
00066
00067 <span class="keyword">protected</span>:
00068 <a class="code" href="classDelayA.html">DelayA</a> *delayLine;
00069 <a class="code" href="classDelayA.html">DelayA</a> *delayLine2;
00070 <a class="code" href="classDelayL.html">DelayL</a> *combDelay;
00071 <a class="code" href="classOneZero.html">OneZero</a> *filter;
00072 <a class="code" href="classOneZero.html">OneZero</a> *filter2;
00073 <span class="keywordtype">long</span> length;
00074 MY_FLOAT loopGain;
00075 MY_FLOAT baseLoopGain;
00076 MY_FLOAT lastFrequency;
00077 MY_FLOAT lastLength;
00078 MY_FLOAT detuning;
00079 MY_FLOAT pluckAmplitude;
00080 MY_FLOAT pluckPosition;
00081
00082 };
00083
00084 <span class="preprocessor">#endif</span>
00068 <span class="keyword">virtual</span> StkFloat *<a class="code" href="classPluckTwo.html#a9">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize) = 0;
00069
00071
00077 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classPluckTwo.html#a9">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 ) = 0;
00078
00079 <span class="keyword">protected</span>:
00080 <a class="code" href="classDelayA.html">DelayA</a> delayLine_;
00081 <a class="code" href="classDelayA.html">DelayA</a> delayLine2_;
00082 <a class="code" href="classDelayL.html">DelayL</a> combDelay_;
00083 <a class="code" href="classOneZero.html">OneZero</a> filter_;
00084 <a class="code" href="classOneZero.html">OneZero</a> filter2_;
00085
00086 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> length_;
00087 StkFloat loopGain_;
00088 StkFloat baseLoopGain_;
00089 StkFloat lastFrequency_;
00090 StkFloat lastLength_;
00091 StkFloat detuning_;
00092 StkFloat pluckAmplitude_;
00093 StkFloat pluckPosition_;
00094
00095 };
00096
00097 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>Plucked.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00018 <span class="comment">/***************************************************/</span>
00019
00020 <span class="preprocessor">#if !defined(__PLUCKED_H)</span>
00021 <span class="preprocessor"></span><span class="preprocessor">#define __PLUCKED_H</span>
00020 <span class="preprocessor">#ifndef STK_PLUCKED_H</span>
00021 <span class="preprocessor"></span><span class="preprocessor">#define STK_PLUCKED_H</span>
00022 <span class="preprocessor"></span>
00023 <span class="preprocessor">#include "Instrmnt.h"</span>
00024 <span class="preprocessor">#include "DelayA.h"</span>
@@ -24,38 +24,43 @@
<a name="l00029"></a><a class="code" href="classPlucked.html">00029</a> <span class="keyword">class </span><a class="code" href="classPlucked.html">Plucked</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
00030 {
00031 <span class="keyword">public</span>:
00033 <a class="code" href="classPlucked.html#a0">Plucked</a>(MY_FLOAT lowestFrequency);
00033 <a class="code" href="classPlucked.html#a0">Plucked</a>(StkFloat lowestFrequency);
00034
00036 <a class="code" href="classPlucked.html#a1">~Plucked</a>();
00037
00039 <span class="keywordtype">void</span> <a class="code" href="classPlucked.html#a2">clear</a>();
00040
00042 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPlucked.html#a3">setFrequency</a>(MY_FLOAT frequency);
00042 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPlucked.html#a3">setFrequency</a>(StkFloat frequency);
00043
00045 <span class="keywordtype">void</span> <a class="code" href="classPlucked.html#a4">pluck</a>(MY_FLOAT amplitude);
00045 <span class="keywordtype">void</span> <a class="code" href="classPlucked.html#a4">pluck</a>(StkFloat amplitude);
00046
00048 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPlucked.html#a5">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00048 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPlucked.html#a5">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00049
00051 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPlucked.html#a6">noteOff</a>(MY_FLOAT amplitude);
00051 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPlucked.html#a6">noteOff</a>(StkFloat amplitude);
00052
00054 <span class="keyword">virtual</span> MY_FLOAT <a class="code" href="classPlucked.html#a7">tick</a>();
00054 <span class="keyword">virtual</span> StkFloat <a class="code" href="classPlucked.html#a7">tick</a>();
00055
00056 <span class="keyword">protected</span>:
00057 <a class="code" href="classDelayA.html">DelayA</a> *delayLine;
00058 <a class="code" href="classOneZero.html">OneZero</a> *loopFilter;
00059 <a class="code" href="classOnePole.html">OnePole</a> *pickFilter;
00060 <a class="code" href="classNoise.html">Noise</a> *noise;
00061 <span class="keywordtype">long</span> length;
00062 MY_FLOAT loopGain;
00063
00064 };
00065
00066 <span class="preprocessor">#endif</span>
00067 <span class="preprocessor"></span>
00057 <span class="keyword">virtual</span> StkFloat *<a class="code" href="classPlucked.html#a7">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00058
00060
00066 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classPlucked.html#a7">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00067
00068 <span class="keyword">protected</span>:
00069 <a class="code" href="classDelayA.html">DelayA</a> delayLine_;
00070 <a class="code" href="classOneZero.html">OneZero</a> loopFilter_;
00071 <a class="code" href="classOnePole.html">OnePole</a> pickFilter_;
00072 <a class="code" href="classNoise.html">Noise</a> noise_;
00073 StkFloat loopGain_;
00074 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> length_;
00075
00076 };
00077
00078 <span class="preprocessor">#endif</span>
00079 <span class="preprocessor"></span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>PoleZero.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00013 <span class="comment">/***************************************************/</span>
00014
00015 <span class="preprocessor">#if !defined(__POLEZERO_H)</span>
00016 <span class="preprocessor"></span><span class="preprocessor">#define __POLEZERO_H</span>
00015 <span class="preprocessor">#ifndef STK_POLEZERO_H</span>
00016 <span class="preprocessor"></span><span class="preprocessor">#define STK_POLEZERO_H</span>
00017 <span class="preprocessor"></span>
00018 <span class="preprocessor">#include "Filter.h"</span>
00019
@@ -27,35 +27,39 @@
00029
00031 <span class="keywordtype">void</span> <a class="code" href="classPoleZero.html#a2">clear</a>(<span class="keywordtype">void</span>);
00032
00034 <span class="keywordtype">void</span> <a class="code" href="classPoleZero.html#a3">setB0</a>(MY_FLOAT b0);
00034 <span class="keywordtype">void</span> <a class="code" href="classPoleZero.html#a3">setB0</a>(StkFloat b0);
00035
00037 <span class="keywordtype">void</span> <a class="code" href="classPoleZero.html#a4">setB1</a>(MY_FLOAT b1);
00037 <span class="keywordtype">void</span> <a class="code" href="classPoleZero.html#a4">setB1</a>(StkFloat b1);
00038
00040 <span class="keywordtype">void</span> <a class="code" href="classPoleZero.html#a5">setA1</a>(MY_FLOAT a1);
00040 <span class="keywordtype">void</span> <a class="code" href="classPoleZero.html#a5">setA1</a>(StkFloat a1);
00041
00043
00048 <span class="keywordtype">void</span> <a class="code" href="classPoleZero.html#a6">setAllpass</a>(MY_FLOAT coefficient);
00048 <span class="keywordtype">void</span> <a class="code" href="classPoleZero.html#a6">setAllpass</a>(StkFloat coefficient);
00049
00051
00057 <span class="keywordtype">void</span> <a class="code" href="classPoleZero.html#a7">setBlockZero</a>(MY_FLOAT thePole = 0.99);
00057 <span class="keywordtype">void</span> <a class="code" href="classPoleZero.html#a7">setBlockZero</a>(StkFloat thePole = 0.99);
00058
00060
00064 <span class="keywordtype">void</span> <a class="code" href="classPoleZero.html#a8">setGain</a>(MY_FLOAT theGain);
00064 <span class="keywordtype">void</span> <a class="code" href="classPoleZero.html#a8">setGain</a>(StkFloat gain);
00065
00067 MY_FLOAT <a class="code" href="classPoleZero.html#a9">getGain</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00067 StkFloat <a class="code" href="classPoleZero.html#a9">getGain</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00068
00070 MY_FLOAT <a class="code" href="classPoleZero.html#a10">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00070 StkFloat <a class="code" href="classPoleZero.html#a10">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00071
00073 MY_FLOAT <a class="code" href="classPoleZero.html#a11">tick</a>(MY_FLOAT sample);
00073 StkFloat <a class="code" href="classPoleZero.html#a11">tick</a>(StkFloat sample);
00074
00076 MY_FLOAT *<a class="code" href="classPoleZero.html#a11">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00077 };
00078
00079 <span class="preprocessor">#endif</span>
00076 StkFloat *<a class="code" href="classPoleZero.html#a11">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00077
00079
00085 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classPoleZero.html#a11">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00086
00087 };
00088
00089 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -1,56 +0,0 @@
<HTML>
<HEAD>
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"> &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="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>ReedTabl.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00018 <span class="comment">/***************************************************/</span>
00019
00020 <span class="preprocessor">#if !defined(__REEDTABL_H)</span>
00021 <span class="preprocessor"></span><span class="preprocessor">#define __REEDTABL_H</span>
00022 <span class="preprocessor"></span>
00023 <span class="preprocessor">#include "Stk.h"</span>
00024
<a name="l00025"></a><a class="code" href="classReedTabl.html">00025</a> <span class="keyword">class </span><a class="code" href="classReedTabl.html">ReedTabl</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00026 {
00027 <span class="keyword">public</span>:
00029 <a class="code" href="classReedTabl.html#a0">ReedTabl</a>();
00030
00032 <a class="code" href="classReedTabl.html#a1">~ReedTabl</a>();
00033
00035
00040 <span class="keywordtype">void</span> <a class="code" href="classReedTabl.html#a2">setOffset</a>(MY_FLOAT aValue);
00041
00043
00048 <span class="keywordtype">void</span> <a class="code" href="classReedTabl.html#a3">setSlope</a>(MY_FLOAT aValue);
00049
00051 MY_FLOAT <a class="code" href="classReedTabl.html#a4">lastOut</a>() <span class="keyword">const</span>;
00052
00054
00058 MY_FLOAT <a class="code" href="classReedTabl.html#a5">tick</a>(MY_FLOAT input);
00059
00061 MY_FLOAT *<a class="code" href="classReedTabl.html#a5">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00062
00063 <span class="keyword">protected</span>:
00064 MY_FLOAT offSet;
00065 MY_FLOAT slope;
00066 MY_FLOAT lastOutput;
00067
00068 };
00069
00070 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>
</HTML>

View File

@@ -0,0 +1,56 @@
<HTML>
<HEAD>
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"> &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="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>ReedTable.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00018 <span class="comment">/***************************************************/</span>
00019
00020 <span class="preprocessor">#ifndef STK_REEDTABLE_H</span>
00021 <span class="preprocessor"></span><span class="preprocessor">#define STK_REEDTABLE_H</span>
00022 <span class="preprocessor"></span>
00023 <span class="preprocessor">#include "Function.h"</span>
00024
<a name="l00025"></a><a class="code" href="classReedTable.html">00025</a> <span class="keyword">class </span><a class="code" href="classReedTable.html">ReedTable</a> : <span class="keyword">public</span> <a class="code" href="classFunction.html">Function</a>
00026 {
00027 <span class="keyword">public</span>:
00029 <a class="code" href="classReedTable.html#a0">ReedTable</a>();
00030
00032 <a class="code" href="classReedTable.html#a1">~ReedTable</a>();
00033
00035
00040 <span class="keywordtype">void</span> <a class="code" href="classReedTable.html#a2">setOffset</a>(StkFloat offset);
00041
00043
00048 <span class="keywordtype">void</span> <a class="code" href="classReedTable.html#a3">setSlope</a>(StkFloat slope);
00049
00051
00055 StkFloat <a class="code" href="classReedTable.html#a4">tick</a>(StkFloat input);
00056
00058 StkFloat *<a class="code" href="classReedTable.html#a4">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00059
00061
00067 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classReedTable.html#a4">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00068
00069 <span class="keyword">protected</span>:
00070 StkFloat offset_;
00071 StkFloat slope_;
00072
00073 };
00074
00075 <span class="preprocessor">#endif</span>
</pre></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-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>
</HTML>

View File

@@ -12,8 +12,8 @@
<h1>Resonate.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00018 <span class="comment">/***************************************************/</span>
00019
00020 <span class="preprocessor">#if !defined(__RESONATE_H)</span>
00021 <span class="preprocessor"></span><span class="preprocessor">#define __RESONATE_H</span>
00020 <span class="preprocessor">#ifndef STK_RESONATE_H</span>
00021 <span class="preprocessor"></span><span class="preprocessor">#define STK_RESONATE_H</span>
00022 <span class="preprocessor"></span>
00023 <span class="preprocessor">#include "Instrmnt.h"</span>
00024 <span class="preprocessor">#include "ADSR.h"</span>
@@ -29,9 +29,9 @@
00036
00038 <span class="keywordtype">void</span> <a class="code" href="classResonate.html#a2">clear</a>();
00039
00041 <span class="keywordtype">void</span> <a class="code" href="classResonate.html#a3">setResonance</a>(MY_FLOAT frequency, MY_FLOAT radius);
00041 <span class="keywordtype">void</span> <a class="code" href="classResonate.html#a3">setResonance</a>(StkFloat frequency, StkFloat radius);
00042
00044 <span class="keywordtype">void</span> <a class="code" href="classResonate.html#a4">setNotch</a>(MY_FLOAT frequency, MY_FLOAT radius);
00044 <span class="keywordtype">void</span> <a class="code" href="classResonate.html#a4">setNotch</a>(StkFloat frequency, StkFloat radius);
00045
00047 <span class="keywordtype">void</span> <a class="code" href="classResonate.html#a5">setEqualGainZeroes</a>();
00048
@@ -39,30 +39,35 @@
00051
00053 <span class="keywordtype">void</span> <a class="code" href="classResonate.html#a7">keyOff</a>();
00054
00056 <span class="keywordtype">void</span> <a class="code" href="classResonate.html#a8">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00056 <span class="keywordtype">void</span> <a class="code" href="classResonate.html#a8">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00057
00059 <span class="keywordtype">void</span> <a class="code" href="classResonate.html#a9">noteOff</a>(MY_FLOAT amplitude);
00059 <span class="keywordtype">void</span> <a class="code" href="classResonate.html#a9">noteOff</a>(StkFloat amplitude);
00060
00062 MY_FLOAT <a class="code" href="classResonate.html#a10">tick</a>();
00062 StkFloat <a class="code" href="classResonate.html#a10">tick</a>();
00063
00065 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classResonate.html#a11">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00065 StkFloat *<a class="code" href="classResonate.html#a10">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00066
00067 <span class="keyword">protected</span>:
00068 <a class="code" href="classADSR.html">ADSR</a> *adsr;
00069 <a class="code" href="classBiQuad.html">BiQuad</a> *filter;
00070 <a class="code" href="classNoise.html">Noise</a> *noise;
00071 MY_FLOAT poleFrequency;
00072 MY_FLOAT poleRadius;
00073 MY_FLOAT zeroFrequency;
00074 MY_FLOAT zeroRadius;
00068
00074 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classResonate.html#a10">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00075
00076 };
00077
00078 <span class="preprocessor">#endif</span>
00077 <span class="keywordtype">void</span> <a class="code" href="classResonate.html#a13">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00078
00079 <span class="keyword">protected</span>:
00080 <a class="code" href="classADSR.html">ADSR</a> adsr_;
00081 <a class="code" href="classBiQuad.html">BiQuad</a> filter_;
00082 <a class="code" href="classNoise.html">Noise</a> noise_;
00083 StkFloat poleFrequency_;
00084 StkFloat poleRadius_;
00085 StkFloat zeroFrequency_;
00086 StkFloat zeroRadius_;
00087
00088 };
00089
00090 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,30 +12,36 @@
<h1>Rhodey.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00031 <span class="comment">/***************************************************/</span>
00032
00033 <span class="preprocessor">#if !defined(__RHODEY_H)</span>
00034 <span class="preprocessor"></span><span class="preprocessor">#define __RHODEY_H</span>
00033 <span class="preprocessor">#ifndef STK_RHODEY_H</span>
00034 <span class="preprocessor"></span><span class="preprocessor">#define STK_RHODEY_H</span>
00035 <span class="preprocessor"></span>
00036 <span class="preprocessor">#include "FM.h"</span>
00037
<a name="l00038"></a><a class="code" href="classRhodey.html">00038</a> <span class="keyword">class </span><a class="code" href="classRhodey.html">Rhodey</a> : <span class="keyword">public</span> <a class="code" href="classFM.html">FM</a>
00039 {
00040 <span class="keyword">public</span>:
00042 <a class="code" href="classRhodey.html#a0">Rhodey</a>();
00043
00045 <a class="code" href="classRhodey.html#a1">~Rhodey</a>();
00042
00045 <a class="code" href="classRhodey.html#a0">Rhodey</a>();
00046
00048 <span class="keywordtype">void</span> <a class="code" href="classRhodey.html#a2">setFrequency</a>(MY_FLOAT frequency);
00048 <a class="code" href="classRhodey.html#a1">~Rhodey</a>();
00049
00051 <span class="keywordtype">void</span> <a class="code" href="classRhodey.html#a3">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00051 <span class="keywordtype">void</span> <a class="code" href="classRhodey.html#a2">setFrequency</a>(StkFloat frequency);
00052
00054 MY_FLOAT <a class="code" href="classRhodey.html#a4">tick</a>();
00055 };
00056
00057 <span class="preprocessor">#endif</span>
00054 <span class="keywordtype">void</span> <a class="code" href="classRhodey.html#a3">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00055
00057 StkFloat <a class="code" href="classRhodey.html#a4">tick</a>();
00058
00060 StkFloat *<a class="code" href="classRhodey.html#a4">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00061
00063
00069 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classRhodey.html#a4">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00070 };
00071
00072 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,7 +12,7 @@
<h1>RtAudio.h</h1><div class="fragment"><pre>00001 <span class="comment">/************************************************************************/</span>
00038 <span class="comment">/************************************************************************/</span>
00039
00040 <span class="comment">// RtAudio: Version 3.0.1, 22 March 2004</span>
00040 <span class="comment">// RtAudio: Version 3.0.2, pre-release for STK 4.2.0</span>
00041
00042 <span class="preprocessor">#ifndef __RTAUDIO_H</span>
00043 <span class="preprocessor"></span><span class="preprocessor">#define __RTAUDIO_H</span>
@@ -99,440 +99,466 @@
00127 {
00128 <span class="keyword">public</span>:
00129
00130 RtApi();
00131 <span class="keyword">virtual</span> ~RtApi();
00132 <span class="keywordtype">void</span> openStream( <span class="keywordtype">int</span> outputDevice, <span class="keywordtype">int</span> outputChannels,
00133 <span class="keywordtype">int</span> inputDevice, <span class="keywordtype">int</span> inputChannels,
00134 RtAudioFormat format, <span class="keywordtype">int</span> sampleRate,
00135 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00136 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData ) = 0;
00137 <span class="keyword">virtual</span> <span class="keywordtype">void</span> cancelStreamCallback() = 0;
00138 <span class="keywordtype">int</span> getDeviceCount(<span class="keywordtype">void</span>);
00139 <a class="code" href="structRtAudioDeviceInfo.html">RtAudioDeviceInfo</a> getDeviceInfo( <span class="keywordtype">int</span> device );
00140 <span class="keywordtype">char</span> * <span class="keyword">const</span> getStreamBuffer();
00141 <span class="keyword">virtual</span> <span class="keywordtype">void</span> tickStream() = 0;
00142 <span class="keyword">virtual</span> <span class="keywordtype">void</span> closeStream();
00143 <span class="keyword">virtual</span> <span class="keywordtype">void</span> startStream() = 0;
00144 <span class="keyword">virtual</span> <span class="keywordtype">void</span> stopStream() = 0;
00145 <span class="keyword">virtual</span> <span class="keywordtype">void</span> abortStream() = 0;
00146
00147 <span class="keyword">protected</span>:
00148
00149 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> MAX_SAMPLE_RATES;
00150 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> SAMPLE_RATES[];
00151
00152 <span class="keyword">enum</span> { FAILURE, SUCCESS };
00153
00154 <span class="keyword">enum</span> StreamMode {
00155 OUTPUT,
00156 INPUT,
00157 DUPLEX,
00158 UNINITIALIZED = -75
00159 };
00160
00161 <span class="keyword">enum</span> StreamState {
00162 STREAM_STOPPED,
00163 STREAM_RUNNING
00164 };
00165
00166 <span class="comment">// A protected structure for audio streams.</span>
00167 <span class="keyword">struct </span>RtApiStream {
00168 <span class="keywordtype">int</span> device[2]; <span class="comment">// Playback and record, respectively.</span>
00169 <span class="keywordtype">void</span> *apiHandle; <span class="comment">// void pointer for API specific stream handle information</span>
00170 StreamMode mode; <span class="comment">// OUTPUT, INPUT, or DUPLEX.</span>
00171 StreamState state; <span class="comment">// STOPPED or RUNNING</span>
00172 <span class="keywordtype">char</span> *userBuffer;
00173 <span class="keywordtype">char</span> *deviceBuffer;
00174 <span class="keywordtype">bool</span> doConvertBuffer[2]; <span class="comment">// Playback and record, respectively.</span>
00175 <span class="keywordtype">bool</span> deInterleave[2]; <span class="comment">// Playback and record, respectively.</span>
00176 <span class="keywordtype">bool</span> doByteSwap[2]; <span class="comment">// Playback and record, respectively.</span>
00177 <span class="keywordtype">int</span> sampleRate;
00178 <span class="keywordtype">int</span> bufferSize;
00179 <span class="keywordtype">int</span> nBuffers;
00180 <span class="keywordtype">int</span> nUserChannels[2]; <span class="comment">// Playback and record, respectively.</span>
00181 <span class="keywordtype">int</span> nDeviceChannels[2]; <span class="comment">// Playback and record channels, respectively.</span>
00182 RtAudioFormat userFormat;
00183 RtAudioFormat deviceFormat[2]; <span class="comment">// Playback and record, respectively.</span>
00184 StreamMutex mutex;
00185 CallbackInfo callbackInfo;
00186
00187 RtApiStream()
00188 :apiHandle(0), userBuffer(0), deviceBuffer(0) {}
00189 <span class="comment">// mode(UNINITIALIZED), state(STREAM_STOPPED),</span>
00190 };
00191
00192 <span class="comment">// A protected device structure for audio devices.</span>
00193 <span class="keyword">struct </span>RtApiDevice {
00194 std::string name;
00195 <span class="keywordtype">bool</span> probed;
00196 <span class="keywordtype">void</span> *apiDeviceId; <span class="comment">// void pointer for API specific device information</span>
00197 <span class="keywordtype">int</span> maxOutputChannels;
00198 <span class="keywordtype">int</span> maxInputChannels;
00199 <span class="keywordtype">int</span> maxDuplexChannels;
00200 <span class="keywordtype">int</span> minOutputChannels;
00201 <span class="keywordtype">int</span> minInputChannels;
00202 <span class="keywordtype">int</span> minDuplexChannels;
00203 <span class="keywordtype">bool</span> hasDuplexSupport;
00204 <span class="keywordtype">bool</span> isDefault;
00205 std::vector&lt;int&gt; sampleRates;
00206 RtAudioFormat nativeFormats;
00208 <span class="comment">// Default constructor.</span>
00209 RtApiDevice()
00210 :probed(false), apiDeviceId(0), maxOutputChannels(0), maxInputChannels(0),
00211 maxDuplexChannels(0), minOutputChannels(0), minInputChannels(0),
00212 minDuplexChannels(0), isDefault(false), nativeFormats(0) {}
00213 };
00214
00215 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> Int16;
00216 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> Int32;
00217 <span class="keyword">typedef</span> <span class="keywordtype">float</span> Float32;
00218 <span class="keyword">typedef</span> <span class="keywordtype">double</span> Float64;
00219
00220 <span class="keywordtype">char</span> message_[256];
00221 <span class="keywordtype">int</span> nDevices_;
00222 std::vector&lt;RtApiDevice&gt; devices_;
00223 RtApiStream stream_;
00224
00229 <span class="keyword">virtual</span> <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>) = 0;
00230
00239 <span class="keyword">virtual</span> <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
00240
00249 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels,
00250 <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
00251 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00252
00257 <span class="keyword">virtual</span> <span class="keywordtype">int</span> getDefaultInputDevice(<span class="keywordtype">void</span>);
00258
00263 <span class="keyword">virtual</span> <span class="keywordtype">int</span> getDefaultOutputDevice(<span class="keywordtype">void</span>);
00264
00266 <span class="keywordtype">void</span> clearDeviceInfo( RtApiDevice *info );
00267
00269 <span class="keywordtype">void</span> clearStreamInfo();
00270
00272 <span class="keywordtype">void</span> error( RtError::Type type );
00273
00278 <span class="keywordtype">void</span> verifyStream();
00279
00284 <span class="keywordtype">void</span> convertStreamBuffer( StreamMode mode );
00285
00287 <span class="keywordtype">void</span> byteSwapBuffer( <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> samples, RtAudioFormat format );
00288
00290 <span class="keywordtype">int</span> formatBytes( RtAudioFormat format );
00291 };
00292
00130 <span class="keyword">enum</span> StreamState {
00131 STREAM_STOPPED,
00132 STREAM_RUNNING
00133 };
00134
00135 RtApi();
00136 <span class="keyword">virtual</span> ~RtApi();
00137 <span class="keywordtype">void</span> openStream( <span class="keywordtype">int</span> outputDevice, <span class="keywordtype">int</span> outputChannels,
00138 <span class="keywordtype">int</span> inputDevice, <span class="keywordtype">int</span> inputChannels,
00139 RtAudioFormat format, <span class="keywordtype">int</span> sampleRate,
00140 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00141 <span class="keywordtype">void</span> openStream( <span class="keywordtype">int</span> outputDevice, <span class="keywordtype">int</span> outputChannels,
00142 <span class="keywordtype">int</span> inputDevice, <span class="keywordtype">int</span> inputChannels,
00143 RtAudioFormat format, <span class="keywordtype">int</span> sampleRate,
00144 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> *numberOfBuffers );
00145 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData ) = 0;
00146 <span class="keyword">virtual</span> <span class="keywordtype">void</span> cancelStreamCallback() = 0;
00147 <span class="keywordtype">int</span> getDeviceCount(<span class="keywordtype">void</span>);
00148 <a class="code" href="structRtAudioDeviceInfo.html">RtAudioDeviceInfo</a> getDeviceInfo( <span class="keywordtype">int</span> device );
00149 <span class="keywordtype">char</span> * <span class="keyword">const</span> getStreamBuffer();
00150 RtApi::StreamState getStreamState() <span class="keyword">const</span>;
00151 <span class="keyword">virtual</span> <span class="keywordtype">void</span> tickStream() = 0;
00152 <span class="keyword">virtual</span> <span class="keywordtype">void</span> closeStream();
00153 <span class="keyword">virtual</span> <span class="keywordtype">void</span> startStream() = 0;
00154 <span class="keyword">virtual</span> <span class="keywordtype">void</span> stopStream() = 0;
00155 <span class="keyword">virtual</span> <span class="keywordtype">void</span> abortStream() = 0;
00156
00157 <span class="keyword">protected</span>:
00158
00159 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> MAX_SAMPLE_RATES;
00160 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> SAMPLE_RATES[];
00161
00162 <span class="keyword">enum</span> { FAILURE, SUCCESS };
00163
00164 <span class="keyword">enum</span> StreamMode {
00165 OUTPUT,
00166 INPUT,
00167 DUPLEX,
00168 UNINITIALIZED = -75
00169 };
00170
00171 <span class="comment">// A protected structure used for buffer conversion.</span>
00172 <span class="keyword">struct </span>ConvertInfo {
00173 <span class="keywordtype">int</span> channels;
00174 <span class="keywordtype">int</span> inJump, outJump;
00175 RtAudioFormat inFormat, outFormat;
00176 std::vector&lt;int&gt; inOffset;
00177 std::vector&lt;int&gt; outOffset;
00178 };
00179
00180 <span class="comment">// A protected structure for audio streams.</span>
00181 <span class="keyword">struct </span>RtApiStream {
00182 <span class="keywordtype">int</span> device[2]; <span class="comment">// Playback and record, respectively.</span>
00183 <span class="keywordtype">void</span> *apiHandle; <span class="comment">// void pointer for API specific stream handle information</span>
00184 StreamMode mode; <span class="comment">// OUTPUT, INPUT, or DUPLEX.</span>
00185 StreamState state; <span class="comment">// STOPPED or RUNNING</span>
00186 <span class="keywordtype">char</span> *userBuffer;
00187 <span class="keywordtype">char</span> *deviceBuffer;
00188 <span class="keywordtype">bool</span> doConvertBuffer[2]; <span class="comment">// Playback and record, respectively.</span>
00189 <span class="keywordtype">bool</span> deInterleave[2]; <span class="comment">// Playback and record, respectively.</span>
00190 <span class="keywordtype">bool</span> doByteSwap[2]; <span class="comment">// Playback and record, respectively.</span>
00191 <span class="keywordtype">int</span> sampleRate;
00192 <span class="keywordtype">int</span> bufferSize;
00193 <span class="keywordtype">int</span> nBuffers;
00194 <span class="keywordtype">int</span> nUserChannels[2]; <span class="comment">// Playback and record, respectively.</span>
00195 <span class="keywordtype">int</span> nDeviceChannels[2]; <span class="comment">// Playback and record channels, respectively.</span>
00196 RtAudioFormat userFormat;
00197 RtAudioFormat deviceFormat[2]; <span class="comment">// Playback and record, respectively.</span>
00198 StreamMutex mutex;
00199 CallbackInfo callbackInfo;
00200 ConvertInfo convertInfo[2];
00201
00202 RtApiStream()
00203 :apiHandle(0), userBuffer(0), deviceBuffer(0) {}
00204 };
00205
00206 <span class="comment">// A protected device structure for audio devices.</span>
00207 <span class="keyword">struct </span>RtApiDevice {
00208 std::string name;
00209 <span class="keywordtype">bool</span> probed;
00210 <span class="keywordtype">void</span> *apiDeviceId; <span class="comment">// void pointer for API specific device information</span>
00211 <span class="keywordtype">int</span> maxOutputChannels;
00212 <span class="keywordtype">int</span> maxInputChannels;
00213 <span class="keywordtype">int</span> maxDuplexChannels;
00214 <span class="keywordtype">int</span> minOutputChannels;
00215 <span class="keywordtype">int</span> minInputChannels;
00216 <span class="keywordtype">int</span> minDuplexChannels;
00217 <span class="keywordtype">bool</span> hasDuplexSupport;
00218 <span class="keywordtype">bool</span> isDefault;
00219 std::vector&lt;int&gt; sampleRates;
00220 RtAudioFormat nativeFormats;
00222 <span class="comment">// Default constructor.</span>
00223 RtApiDevice()
00224 :probed(false), apiDeviceId(0), maxOutputChannels(0), maxInputChannels(0),
00225 maxDuplexChannels(0), minOutputChannels(0), minInputChannels(0),
00226 minDuplexChannels(0), isDefault(false), nativeFormats(0) {}
00227 };
00228
00229 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> Int16;
00230 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> Int32;
00231 <span class="keyword">typedef</span> <span class="keywordtype">float</span> Float32;
00232 <span class="keyword">typedef</span> <span class="keywordtype">double</span> Float64;
00233
00234 <span class="keywordtype">char</span> message_[1024];
00235 <span class="keywordtype">int</span> nDevices_;
00236 std::vector&lt;RtApiDevice&gt; devices_;
00237 RtApiStream stream_;
00238
00243 <span class="keyword">virtual</span> <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>) = 0;
00244
00253 <span class="keyword">virtual</span> <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
00254
00263 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels,
00264 <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
00265 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00266
00271 <span class="keyword">virtual</span> <span class="keywordtype">int</span> getDefaultInputDevice(<span class="keywordtype">void</span>);
00272
00277 <span class="keyword">virtual</span> <span class="keywordtype">int</span> getDefaultOutputDevice(<span class="keywordtype">void</span>);
00278
00280 <span class="keywordtype">void</span> clearDeviceInfo( RtApiDevice *info );
00281
00283 <span class="keywordtype">void</span> clearStreamInfo();
00284
00286 <span class="keywordtype">void</span> error( RtError::Type type );
00287
00292 <span class="keywordtype">void</span> verifyStream();
00293
00294 <span class="comment">// **************************************************************** //</span>
00295 <span class="comment">//</span>
00296 <span class="comment">// RtAudio class declaration.</span>
00297 <span class="comment">//</span>
00298 <span class="comment">// RtAudio is a "controller" used to select an available audio i/o</span>
00299 <span class="comment">// interface. It presents a common API for the user to call but all</span>
00300 <span class="comment">// functionality is implemented by the class RtAudioApi and its</span>
00301 <span class="comment">// subclasses. RtAudio creates an instance of an RtAudioApi subclass</span>
00302 <span class="comment">// based on the user's API choice. If no choice is made, RtAudio</span>
00303 <span class="comment">// attempts to make a "logical" API selection.</span>
00304 <span class="comment">//</span>
00305 <span class="comment">// **************************************************************** //</span>
00298 <span class="keywordtype">void</span> convertBuffer( <span class="keywordtype">char</span> *outBuffer, <span class="keywordtype">char</span> *inBuffer, ConvertInfo &amp;info );
00299
00301 <span class="keywordtype">void</span> byteSwapBuffer( <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> samples, RtAudioFormat format );
00302
00304 <span class="keywordtype">int</span> formatBytes( RtAudioFormat format );
00305 };
00306
<a name="l00307"></a><a class="code" href="classRtAudio.html">00307</a> <span class="keyword">class </span><a class="code" href="classRtAudio.html">RtAudio</a>
00308 {
00309 <span class="keyword">public</span>:
00310
<a name="l00312"></a><a class="code" href="classRtAudio.html#w8">00312</a> <span class="keyword">enum</span> <a class="code" href="classRtAudio.html#w8">RtAudioApi</a> {
00313 <a class="code" href="classRtAudio.html#w8w0">UNSPECIFIED</a>,
00314 <a class="code" href="classRtAudio.html#w8w1">LINUX_ALSA</a>,
00315 <a class="code" href="classRtAudio.html#w8w2">LINUX_OSS</a>,
00316 <a class="code" href="classRtAudio.html#w8w3">LINUX_JACK</a>,
00317 <a class="code" href="classRtAudio.html#w8w4">MACOSX_CORE</a>,
00318 <a class="code" href="classRtAudio.html#w8w5">IRIX_AL</a>,
00319 <a class="code" href="classRtAudio.html#w8w6">WINDOWS_ASIO</a>,
00320 <a class="code" href="classRtAudio.html#w8w7">WINDOWS_DS</a>
00321 };
00322
00307
00308 <span class="comment">// **************************************************************** //</span>
00309 <span class="comment">//</span>
00310 <span class="comment">// RtAudio class declaration.</span>
00311 <span class="comment">//</span>
00312 <span class="comment">// RtAudio is a "controller" used to select an available audio i/o</span>
00313 <span class="comment">// interface. It presents a common API for the user to call but all</span>
00314 <span class="comment">// functionality is implemented by the class RtAudioApi and its</span>
00315 <span class="comment">// subclasses. RtAudio creates an instance of an RtAudioApi subclass</span>
00316 <span class="comment">// based on the user's API choice. If no choice is made, RtAudio</span>
00317 <span class="comment">// attempts to make a "logical" API selection.</span>
00318 <span class="comment">//</span>
00319 <span class="comment">// **************************************************************** //</span>
00320
<a name="l00321"></a><a class="code" href="classRtAudio.html">00321</a> <span class="keyword">class </span><a class="code" href="classRtAudio.html">RtAudio</a>
00322 {
00323 <span class="keyword">public</span>:
00324
00334 <a class="code" href="classRtAudio.html#a0">RtAudio</a>( RtAudioApi api=UNSPECIFIED );
00335
00337
00348 <a class="code" href="classRtAudio.html#a0">RtAudio</a>( <span class="keywordtype">int</span> outputDevice, <span class="keywordtype">int</span> outputChannels,
00349 <span class="keywordtype">int</span> inputDevice, <span class="keywordtype">int</span> inputChannels,
00350 RtAudioFormat format, <span class="keywordtype">int</span> sampleRate,
00351 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers, RtAudioApi api=UNSPECIFIED );
00352
00354
00358 <a class="code" href="classRtAudio.html#a2">~RtAudio</a>();
00359
00361
00387 <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a3">openStream</a>( <span class="keywordtype">int</span> outputDevice, <span class="keywordtype">int</span> outputChannels,
00388 <span class="keywordtype">int</span> inputDevice, <span class="keywordtype">int</span> inputChannels,
00389 RtAudioFormat format, <span class="keywordtype">int</span> sampleRate,
00390 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00391
00393
<a name="l00412"></a><a class="code" href="classRtAudio.html#a4">00412</a> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a4">setStreamCallback</a>(RtAudioCallback callback, <span class="keywordtype">void</span> *userData) { rtapi_-&gt;setStreamCallback( callback, userData ); };
00413
00415
<a name="l00422"></a><a class="code" href="classRtAudio.html#a5">00422</a> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a5">cancelStreamCallback</a>() { rtapi_-&gt;cancelStreamCallback(); };
00423
<a name="l00425"></a><a class="code" href="classRtAudio.html#a6">00425</a> <span class="keywordtype">int</span> <a class="code" href="classRtAudio.html#a6">getDeviceCount</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> rtapi_-&gt;getDeviceCount(); };
00426
00428
<a name="l00436"></a><a class="code" href="classRtAudio.html#a7">00436</a> <a class="code" href="structRtAudioDeviceInfo.html">RtAudioDeviceInfo</a> <a class="code" href="classRtAudio.html#a7">getDeviceInfo</a>(<span class="keywordtype">int</span> device) { <span class="keywordflow">return</span> rtapi_-&gt;getDeviceInfo( device ); };
00437
00439
<a name="l00444"></a><a class="code" href="classRtAudio.html#a8">00444</a> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="classRtAudio.html#a8">getStreamBuffer</a>() { <span class="keywordflow">return</span> rtapi_-&gt;getStreamBuffer(); };
00445
00447
<a name="l00452"></a><a class="code" href="classRtAudio.html#a9">00452</a> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a9">tickStream</a>() { rtapi_-&gt;tickStream(); };
00453
<a name="l00326"></a><a class="code" href="classRtAudio.html#w8">00326</a> <span class="keyword">enum</span> <a class="code" href="classRtAudio.html#w8">RtAudioApi</a> {
00327 <a class="code" href="classRtAudio.html#w8w0">UNSPECIFIED</a>,
00328 <a class="code" href="classRtAudio.html#w8w1">LINUX_ALSA</a>,
00329 <a class="code" href="classRtAudio.html#w8w2">LINUX_OSS</a>,
00330 <a class="code" href="classRtAudio.html#w8w3">LINUX_JACK</a>,
00331 <a class="code" href="classRtAudio.html#w8w4">MACOSX_CORE</a>,
00332 <a class="code" href="classRtAudio.html#w8w5">IRIX_AL</a>,
00333 <a class="code" href="classRtAudio.html#w8w6">WINDOWS_ASIO</a>,
00334 <a class="code" href="classRtAudio.html#w8w7">WINDOWS_DS</a>
00335 };
00336
00338
00348 <a class="code" href="classRtAudio.html#a0">RtAudio</a>( RtAudioApi api=UNSPECIFIED );
00349
00351
00362 <a class="code" href="classRtAudio.html#a0">RtAudio</a>( <span class="keywordtype">int</span> outputDevice, <span class="keywordtype">int</span> outputChannels,
00363 <span class="keywordtype">int</span> inputDevice, <span class="keywordtype">int</span> inputChannels,
00364 RtAudioFormat format, <span class="keywordtype">int</span> sampleRate,
00365 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers, RtAudioApi api=UNSPECIFIED );
00366
00368
00376 <a class="code" href="classRtAudio.html#a0">RtAudio</a>( <span class="keywordtype">int</span> outputDevice, <span class="keywordtype">int</span> outputChannels,
00377 <span class="keywordtype">int</span> inputDevice, <span class="keywordtype">int</span> inputChannels,
00378 RtAudioFormat format, <span class="keywordtype">int</span> sampleRate,
00379 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> *numberOfBuffers, RtAudioApi api=UNSPECIFIED );
00380
00382
00386 <a class="code" href="classRtAudio.html#a3">~RtAudio</a>();
00387
00389
00415 <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a4">openStream</a>( <span class="keywordtype">int</span> outputDevice, <span class="keywordtype">int</span> outputChannels,
00416 <span class="keywordtype">int</span> inputDevice, <span class="keywordtype">int</span> inputChannels,
00417 RtAudioFormat format, <span class="keywordtype">int</span> sampleRate,
00418 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00419
00421
00429 <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a4">openStream</a>( <span class="keywordtype">int</span> outputDevice, <span class="keywordtype">int</span> outputChannels,
00430 <span class="keywordtype">int</span> inputDevice, <span class="keywordtype">int</span> inputChannels,
00431 RtAudioFormat format, <span class="keywordtype">int</span> sampleRate,
00432 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> *numberOfBuffers );
00433
00435
<a name="l00454"></a><a class="code" href="classRtAudio.html#a6">00454</a> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a6">setStreamCallback</a>(RtAudioCallback callback, <span class="keywordtype">void</span> *userData) { rtapi_-&gt;setStreamCallback( callback, userData ); };
00455
<a name="l00459"></a><a class="code" href="classRtAudio.html#a10">00459</a> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a10">closeStream</a>() { rtapi_-&gt;closeStream(); };
00460
00462
<a name="l00466"></a><a class="code" href="classRtAudio.html#a11">00466</a> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a11">startStream</a>() { rtapi_-&gt;startStream(); };
00467
00469
<a name="l00473"></a><a class="code" href="classRtAudio.html#a12">00473</a> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a12">stopStream</a>() { rtapi_-&gt;stopStream(); };
00474
00476
<a name="l00480"></a><a class="code" href="classRtAudio.html#a13">00480</a> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a13">abortStream</a>() { rtapi_-&gt;abortStream(); };
00457
<a name="l00464"></a><a class="code" href="classRtAudio.html#a7">00464</a> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a7">cancelStreamCallback</a>() { rtapi_-&gt;cancelStreamCallback(); };
00465
<a name="l00467"></a><a class="code" href="classRtAudio.html#a8">00467</a> <span class="keywordtype">int</span> <a class="code" href="classRtAudio.html#a8">getDeviceCount</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> rtapi_-&gt;getDeviceCount(); };
00468
00470
<a name="l00478"></a><a class="code" href="classRtAudio.html#a9">00478</a> <a class="code" href="structRtAudioDeviceInfo.html">RtAudioDeviceInfo</a> <a class="code" href="classRtAudio.html#a9">getDeviceInfo</a>(<span class="keywordtype">int</span> device) { <span class="keywordflow">return</span> rtapi_-&gt;getDeviceInfo( device ); };
00479
00481
00482
00483 <span class="keyword">protected</span>:
00484
00485 <span class="keywordtype">void</span> initialize( RtAudioApi api );
00486
00487 RtApi *rtapi_;
00488 };
<a name="l00486"></a><a class="code" href="classRtAudio.html#a10">00486</a> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="classRtAudio.html#a10">getStreamBuffer</a>() { <span class="keywordflow">return</span> rtapi_-&gt;getStreamBuffer(); };
00487
00489
00490
00491 <span class="comment">// RtApi Subclass prototypes.</span>
00492
00493 <span class="preprocessor">#if defined(__LINUX_ALSA__)</span>
00494 <span class="preprocessor"></span>
00495 <span class="keyword">class </span>RtApiAlsa: <span class="keyword">public</span> RtApi
00496 {
00497 <span class="keyword">public</span>:
00498
00499 RtApiAlsa();
00500 ~RtApiAlsa();
00501 <span class="keywordtype">void</span> tickStream();
00502 <span class="keywordtype">void</span> closeStream();
00503 <span class="keywordtype">void</span> startStream();
00504 <span class="keywordtype">void</span> stopStream();
00505 <span class="keywordtype">void</span> abortStream();
00506 <span class="keywordtype">int</span> streamWillBlock();
00507 <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
00508 <span class="keywordtype">void</span> cancelStreamCallback();
<a name="l00494"></a><a class="code" href="classRtAudio.html#a11">00494</a> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a11">tickStream</a>() { rtapi_-&gt;tickStream(); };
00495
00497
<a name="l00501"></a><a class="code" href="classRtAudio.html#a12">00501</a> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a12">closeStream</a>() { rtapi_-&gt;closeStream(); };
00502
00504
<a name="l00508"></a><a class="code" href="classRtAudio.html#a13">00508</a> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a13">startStream</a>() { rtapi_-&gt;startStream(); };
00509
00510 <span class="keyword">private</span>:
00511
00512 <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
00513 <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
00514 <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels,
00515 <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
00516 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00517 };
<a name="l00515"></a><a class="code" href="classRtAudio.html#a14">00515</a> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a14">stopStream</a>() { rtapi_-&gt;stopStream(); };
00516
00518
00519 <span class="preprocessor">#endif</span>
00520 <span class="preprocessor"></span>
00521 <span class="preprocessor">#if defined(__LINUX_JACK__)</span>
00522 <span class="preprocessor"></span>
00523 <span class="keyword">class </span>RtApiJack: <span class="keyword">public</span> RtApi
00524 {
00525 <span class="keyword">public</span>:
<a name="l00522"></a><a class="code" href="classRtAudio.html#a15">00522</a> <span class="keywordtype">void</span> <a class="code" href="classRtAudio.html#a15">abortStream</a>() { rtapi_-&gt;abortStream(); };
00523
00524
00525 <span class="keyword">protected</span>:
00526
00527 RtApiJack();
00528 ~RtApiJack();
00529 <span class="keywordtype">void</span> tickStream();
00530 <span class="keywordtype">void</span> closeStream();
00531 <span class="keywordtype">void</span> startStream();
00532 <span class="keywordtype">void</span> stopStream();
00533 <span class="keywordtype">void</span> abortStream();
00534 <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
00535 <span class="keywordtype">void</span> cancelStreamCallback();
00536 <span class="comment">// This function is intended for internal use only. It must be</span>
00537 <span class="comment">// public because it is called by the internal callback handler,</span>
00538 <span class="comment">// which is not a member of RtAudio. External use of this function</span>
00539 <span class="comment">// will most likely produce highly undesireable results!</span>
00540 <span class="keywordtype">void</span> callbackEvent( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> nframes );
00541
00542 <span class="keyword">private</span>:
00543
00544 <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
00545 <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
00546 <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels,
00547 <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
00548 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00549 };
00550
00551 <span class="preprocessor">#endif</span>
00552 <span class="preprocessor"></span>
00553 <span class="preprocessor">#if defined(__LINUX_OSS__)</span>
00554 <span class="preprocessor"></span>
00555 <span class="keyword">class </span>RtApiOss: <span class="keyword">public</span> RtApi
00556 {
00557 <span class="keyword">public</span>:
00558
00559 RtApiOss();
00560 ~RtApiOss();
00561 <span class="keywordtype">void</span> tickStream();
00562 <span class="keywordtype">void</span> closeStream();
00563 <span class="keywordtype">void</span> startStream();
00564 <span class="keywordtype">void</span> stopStream();
00565 <span class="keywordtype">void</span> abortStream();
00566 <span class="keywordtype">int</span> streamWillBlock();
00567 <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
00568 <span class="keywordtype">void</span> cancelStreamCallback();
00569
00570 <span class="keyword">private</span>:
00571
00572 <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
00573 <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
00574 <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels,
00575 <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
00576 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00577 };
00578
00579 <span class="preprocessor">#endif</span>
00580 <span class="preprocessor"></span>
00581 <span class="preprocessor">#if defined(__MACOSX_CORE__)</span>
00582 <span class="preprocessor"></span>
00583 <span class="preprocessor">#include &lt;CoreAudio/AudioHardware.h&gt;</span>
00584
00585 <span class="keyword">class </span>RtApiCore: <span class="keyword">public</span> RtApi
00586 {
00587 <span class="keyword">public</span>:
00588
00589 RtApiCore();
00590 ~RtApiCore();
00591 <span class="keywordtype">int</span> getDefaultOutputDevice(<span class="keywordtype">void</span>);
00592 <span class="keywordtype">int</span> getDefaultInputDevice(<span class="keywordtype">void</span>);
00593 <span class="keywordtype">void</span> tickStream();
00594 <span class="keywordtype">void</span> closeStream();
00595 <span class="keywordtype">void</span> startStream();
00596 <span class="keywordtype">void</span> stopStream();
00597 <span class="keywordtype">void</span> abortStream();
00598 <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
00599 <span class="keywordtype">void</span> cancelStreamCallback();
00527 <span class="keywordtype">void</span> initialize( RtAudioApi api );
00528
00529 RtApi *rtapi_;
00530 };
00531
00532
00533 <span class="comment">// RtApi Subclass prototypes.</span>
00534
00535 <span class="preprocessor">#if defined(__LINUX_ALSA__)</span>
00536 <span class="preprocessor"></span>
00537 <span class="keyword">class </span>RtApiAlsa: <span class="keyword">public</span> RtApi
00538 {
00539 <span class="keyword">public</span>:
00540
00541 RtApiAlsa();
00542 ~RtApiAlsa();
00543 <span class="keywordtype">void</span> tickStream();
00544 <span class="keywordtype">void</span> closeStream();
00545 <span class="keywordtype">void</span> startStream();
00546 <span class="keywordtype">void</span> stopStream();
00547 <span class="keywordtype">void</span> abortStream();
00548 <span class="keywordtype">int</span> streamWillBlock();
00549 <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
00550 <span class="keywordtype">void</span> cancelStreamCallback();
00551
00552 <span class="keyword">private</span>:
00553
00554 <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
00555 <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
00556 <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels,
00557 <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
00558 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00559 };
00560
00561 <span class="preprocessor">#endif</span>
00562 <span class="preprocessor"></span>
00563 <span class="preprocessor">#if defined(__LINUX_JACK__)</span>
00564 <span class="preprocessor"></span>
00565 <span class="keyword">class </span>RtApiJack: <span class="keyword">public</span> RtApi
00566 {
00567 <span class="keyword">public</span>:
00568
00569 RtApiJack();
00570 ~RtApiJack();
00571 <span class="keywordtype">void</span> tickStream();
00572 <span class="keywordtype">void</span> closeStream();
00573 <span class="keywordtype">void</span> startStream();
00574 <span class="keywordtype">void</span> stopStream();
00575 <span class="keywordtype">void</span> abortStream();
00576 <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
00577 <span class="keywordtype">void</span> cancelStreamCallback();
00578 <span class="comment">// This function is intended for internal use only. It must be</span>
00579 <span class="comment">// public because it is called by the internal callback handler,</span>
00580 <span class="comment">// which is not a member of RtAudio. External use of this function</span>
00581 <span class="comment">// will most likely produce highly undesireable results!</span>
00582 <span class="keywordtype">void</span> callbackEvent( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> nframes );
00583
00584 <span class="keyword">private</span>:
00585
00586 <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
00587 <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
00588 <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels,
00589 <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
00590 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00591 };
00592
00593 <span class="preprocessor">#endif</span>
00594 <span class="preprocessor"></span>
00595 <span class="preprocessor">#if defined(__LINUX_OSS__)</span>
00596 <span class="preprocessor"></span>
00597 <span class="keyword">class </span>RtApiOss: <span class="keyword">public</span> RtApi
00598 {
00599 <span class="keyword">public</span>:
00600
00601 <span class="comment">// This function is intended for internal use only. It must be</span>
00602 <span class="comment">// public because it is called by the internal callback handler,</span>
00603 <span class="comment">// which is not a member of RtAudio. External use of this function</span>
00604 <span class="comment">// will most likely produce highly undesireable results!</span>
00605 <span class="keywordtype">void</span> callbackEvent( AudioDeviceID deviceId, <span class="keywordtype">void</span> *inData, <span class="keywordtype">void</span> *outData );
00606
00607 <span class="keyword">private</span>:
00608
00609 <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
00610 <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
00611 <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels,
00612 <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
00613 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00614 };
00615
00616 <span class="preprocessor">#endif</span>
00617 <span class="preprocessor"></span>
00618 <span class="preprocessor">#if defined(__WINDOWS_DS__)</span>
00619 <span class="preprocessor"></span>
00620 <span class="keyword">class </span>RtApiDs: <span class="keyword">public</span> RtApi
00621 {
00622 <span class="keyword">public</span>:
00623
00624 RtApiDs();
00625 ~RtApiDs();
00626 <span class="keywordtype">int</span> getDefaultOutputDevice(<span class="keywordtype">void</span>);
00627 <span class="keywordtype">int</span> getDefaultInputDevice(<span class="keywordtype">void</span>);
00628 <span class="keywordtype">void</span> tickStream();
00629 <span class="keywordtype">void</span> closeStream();
00630 <span class="keywordtype">void</span> startStream();
00631 <span class="keywordtype">void</span> stopStream();
00632 <span class="keywordtype">void</span> abortStream();
00633 <span class="keywordtype">int</span> streamWillBlock();
00634 <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
00635 <span class="keywordtype">void</span> cancelStreamCallback();
00636
00637 <span class="keyword">private</span>:
00638
00639 <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
00640 <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
00641 <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels,
00642 <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
00643 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00644 };
00645
00646 <span class="preprocessor">#endif</span>
00647 <span class="preprocessor"></span>
00648 <span class="preprocessor">#if defined(__WINDOWS_ASIO__)</span>
00649 <span class="preprocessor"></span>
00650 <span class="keyword">class </span>RtApiAsio: <span class="keyword">public</span> RtApi
00651 {
00652 <span class="keyword">public</span>:
00653
00654 RtApiAsio();
00655 ~RtApiAsio();
00656 <span class="keywordtype">void</span> tickStream();
00657 <span class="keywordtype">void</span> closeStream();
00658 <span class="keywordtype">void</span> startStream();
00659 <span class="keywordtype">void</span> stopStream();
00660 <span class="keywordtype">void</span> abortStream();
00661 <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
00662 <span class="keywordtype">void</span> cancelStreamCallback();
00663
00664 <span class="comment">// This function is intended for internal use only. It must be</span>
00665 <span class="comment">// public because it is called by the internal callback handler,</span>
00666 <span class="comment">// which is not a member of RtAudio. External use of this function</span>
00667 <span class="comment">// will most likely produce highly undesireable results!</span>
00668 <span class="keywordtype">void</span> callbackEvent( <span class="keywordtype">long</span> bufferIndex );
00669
00670 <span class="keyword">private</span>:
00671
00672 <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
00673 <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
00674 <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels,
00675 <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
00676 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00677 };
00601 RtApiOss();
00602 ~RtApiOss();
00603 <span class="keywordtype">void</span> tickStream();
00604 <span class="keywordtype">void</span> closeStream();
00605 <span class="keywordtype">void</span> startStream();
00606 <span class="keywordtype">void</span> stopStream();
00607 <span class="keywordtype">void</span> abortStream();
00608 <span class="keywordtype">int</span> streamWillBlock();
00609 <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
00610 <span class="keywordtype">void</span> cancelStreamCallback();
00611
00612 <span class="keyword">private</span>:
00613
00614 <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
00615 <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
00616 <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels,
00617 <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
00618 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00619 };
00620
00621 <span class="preprocessor">#endif</span>
00622 <span class="preprocessor"></span>
00623 <span class="preprocessor">#if defined(__MACOSX_CORE__)</span>
00624 <span class="preprocessor"></span>
00625 <span class="preprocessor">#include &lt;CoreAudio/AudioHardware.h&gt;</span>
00626
00627 <span class="keyword">class </span>RtApiCore: <span class="keyword">public</span> RtApi
00628 {
00629 <span class="keyword">public</span>:
00630
00631 RtApiCore();
00632 ~RtApiCore();
00633 <span class="keywordtype">int</span> getDefaultOutputDevice(<span class="keywordtype">void</span>);
00634 <span class="keywordtype">int</span> getDefaultInputDevice(<span class="keywordtype">void</span>);
00635 <span class="keywordtype">void</span> tickStream();
00636 <span class="keywordtype">void</span> closeStream();
00637 <span class="keywordtype">void</span> startStream();
00638 <span class="keywordtype">void</span> stopStream();
00639 <span class="keywordtype">void</span> abortStream();
00640 <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
00641 <span class="keywordtype">void</span> cancelStreamCallback();
00642
00643 <span class="comment">// This function is intended for internal use only. It must be</span>
00644 <span class="comment">// public because it is called by the internal callback handler,</span>
00645 <span class="comment">// which is not a member of RtAudio. External use of this function</span>
00646 <span class="comment">// will most likely produce highly undesireable results!</span>
00647 <span class="keywordtype">void</span> callbackEvent( AudioDeviceID deviceId, <span class="keywordtype">void</span> *inData, <span class="keywordtype">void</span> *outData );
00648
00649 <span class="keyword">private</span>:
00650
00651 <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
00652 <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
00653 <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels,
00654 <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
00655 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00656 };
00657
00658 <span class="preprocessor">#endif</span>
00659 <span class="preprocessor"></span>
00660 <span class="preprocessor">#if defined(__WINDOWS_DS__)</span>
00661 <span class="preprocessor"></span>
00662 <span class="keyword">class </span>RtApiDs: <span class="keyword">public</span> RtApi
00663 {
00664 <span class="keyword">public</span>:
00665
00666 RtApiDs();
00667 ~RtApiDs();
00668 <span class="keywordtype">int</span> getDefaultOutputDevice(<span class="keywordtype">void</span>);
00669 <span class="keywordtype">int</span> getDefaultInputDevice(<span class="keywordtype">void</span>);
00670 <span class="keywordtype">void</span> tickStream();
00671 <span class="keywordtype">void</span> closeStream();
00672 <span class="keywordtype">void</span> startStream();
00673 <span class="keywordtype">void</span> stopStream();
00674 <span class="keywordtype">void</span> abortStream();
00675 <span class="keywordtype">int</span> streamWillBlock();
00676 <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
00677 <span class="keywordtype">void</span> cancelStreamCallback();
00678
00679 <span class="preprocessor">#endif</span>
00680 <span class="preprocessor"></span>
00681 <span class="preprocessor">#if defined(__IRIX_AL__)</span>
00682 <span class="preprocessor"></span>
00683 <span class="keyword">class </span>RtApiAl: <span class="keyword">public</span> RtApi
00684 {
00685 <span class="keyword">public</span>:
00686
00687 RtApiAl();
00688 ~RtApiAl();
00689 <span class="keywordtype">int</span> getDefaultOutputDevice(<span class="keywordtype">void</span>);
00690 <span class="keywordtype">int</span> getDefaultInputDevice(<span class="keywordtype">void</span>);
00691 <span class="keywordtype">void</span> tickStream();
00692 <span class="keywordtype">void</span> closeStream();
00693 <span class="keywordtype">void</span> startStream();
00694 <span class="keywordtype">void</span> stopStream();
00695 <span class="keywordtype">void</span> abortStream();
00696 <span class="keywordtype">int</span> streamWillBlock();
00697 <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
00698 <span class="keywordtype">void</span> cancelStreamCallback();
00699
00700 <span class="keyword">private</span>:
00701
00702 <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
00703 <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
00704 <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels,
00705 <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
00706 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00707 };
00708
00709 <span class="preprocessor">#endif</span>
00710 <span class="preprocessor"></span>
00711 <span class="comment">// Define the following flag to have extra information spewed to stderr.</span>
00712 <span class="comment">//#define __RTAUDIO_DEBUG__</span>
00679 <span class="keyword">private</span>:
00680
00681 <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
00682 <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
00683 <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels,
00684 <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
00685 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00686 };
00687
00688 <span class="preprocessor">#endif</span>
00689 <span class="preprocessor"></span>
00690 <span class="preprocessor">#if defined(__WINDOWS_ASIO__)</span>
00691 <span class="preprocessor"></span>
00692 <span class="keyword">class </span>RtApiAsio: <span class="keyword">public</span> RtApi
00693 {
00694 <span class="keyword">public</span>:
00695
00696 RtApiAsio();
00697 ~RtApiAsio();
00698 <span class="keywordtype">void</span> tickStream();
00699 <span class="keywordtype">void</span> closeStream();
00700 <span class="keywordtype">void</span> startStream();
00701 <span class="keywordtype">void</span> stopStream();
00702 <span class="keywordtype">void</span> abortStream();
00703 <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
00704 <span class="keywordtype">void</span> cancelStreamCallback();
00705
00706 <span class="comment">// This function is intended for internal use only. It must be</span>
00707 <span class="comment">// public because it is called by the internal callback handler,</span>
00708 <span class="comment">// which is not a member of RtAudio. External use of this function</span>
00709 <span class="comment">// will most likely produce highly undesireable results!</span>
00710 <span class="keywordtype">void</span> callbackEvent( <span class="keywordtype">long</span> bufferIndex );
00711
00712 <span class="keyword">private</span>:
00713
00714 <span class="preprocessor">#endif</span>
00714 <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
00715 <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
00716 <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels,
00717 <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
00718 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00719 };
00720
00721 <span class="preprocessor">#endif</span>
00722 <span class="preprocessor"></span>
00723 <span class="preprocessor">#if defined(__IRIX_AL__)</span>
00724 <span class="preprocessor"></span>
00725 <span class="keyword">class </span>RtApiAl: <span class="keyword">public</span> RtApi
00726 {
00727 <span class="keyword">public</span>:
00728
00729 RtApiAl();
00730 ~RtApiAl();
00731 <span class="keywordtype">int</span> getDefaultOutputDevice(<span class="keywordtype">void</span>);
00732 <span class="keywordtype">int</span> getDefaultInputDevice(<span class="keywordtype">void</span>);
00733 <span class="keywordtype">void</span> tickStream();
00734 <span class="keywordtype">void</span> closeStream();
00735 <span class="keywordtype">void</span> startStream();
00736 <span class="keywordtype">void</span> stopStream();
00737 <span class="keywordtype">void</span> abortStream();
00738 <span class="keywordtype">int</span> streamWillBlock();
00739 <span class="keywordtype">void</span> setStreamCallback( RtAudioCallback callback, <span class="keywordtype">void</span> *userData );
00740 <span class="keywordtype">void</span> cancelStreamCallback();
00741
00742 <span class="keyword">private</span>:
00743
00744 <span class="keywordtype">void</span> initialize(<span class="keywordtype">void</span>);
00745 <span class="keywordtype">void</span> probeDeviceInfo( RtApiDevice *info );
00746 <span class="keywordtype">bool</span> probeDeviceOpen( <span class="keywordtype">int</span> device, StreamMode mode, <span class="keywordtype">int</span> channels,
00747 <span class="keywordtype">int</span> sampleRate, RtAudioFormat format,
00748 <span class="keywordtype">int</span> *bufferSize, <span class="keywordtype">int</span> numberOfBuffers );
00749 };
00750
00751 <span class="preprocessor">#endif</span>
00752 <span class="preprocessor"></span>
00753 <span class="comment">// Define the following flag to have extra information spewed to stderr.</span>
00754 <span class="comment">//#define __RTAUDIO_DEBUG__</span>
00755
00756 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -10,58 +10,64 @@
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>RtDuplex.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00022 <span class="comment">/***************************************************/</span>
00023
00024 <span class="preprocessor">#if !defined(__RTDUPLEX_H)</span>
00025 <span class="preprocessor"></span><span class="preprocessor">#define __RTDUPLEX_H</span>
00026 <span class="preprocessor"></span>
00027 <span class="preprocessor">#include "Stk.h"</span>
00028 <span class="preprocessor">#include "RtAudio.h"</span>
00029
<a name="l00030"></a><a class="code" href="classRtDuplex.html">00030</a> <span class="keyword">class </span><a class="code" href="classRtDuplex.html">RtDuplex</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00031 {
00032 <span class="keyword">public</span>:
00034
00045 <a class="code" href="classRtDuplex.html#a0">RtDuplex</a>(<span class="keywordtype">int</span> nChannels = 1, MY_FLOAT <a class="code" href="classStk.html#e0">sampleRate</a> = <a class="code" href="classStk.html#e0">Stk::sampleRate</a>(), <span class="keywordtype">int</span> device = 0, <span class="keywordtype">int</span> bufferFrames = RT_BUFFER_SIZE, <span class="keywordtype">int</span> nBuffers = 2);
00046
00048 <a class="code" href="classRtDuplex.html#a1">~RtDuplex</a>();
00049
00051
00054 <span class="keywordtype">void</span> <a class="code" href="classRtDuplex.html#a2">start</a>(<span class="keywordtype">void</span>);
00055
00057
00060 <span class="keywordtype">void</span> <a class="code" href="classRtDuplex.html#a3">stop</a>(<span class="keywordtype">void</span>);
00061
00063 MY_FLOAT <a class="code" href="classRtDuplex.html#a4">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00029 <span class="comment">/***************************************************/</span>
00030
00031 <span class="preprocessor">#ifndef STK_RTDUPLEX_H</span>
00032 <span class="preprocessor"></span><span class="preprocessor">#define STK_RTDUPLEX_H</span>
00033 <span class="preprocessor"></span>
00034 <span class="preprocessor">#include "Stk.h"</span>
00035 <span class="preprocessor">#include "RtAudio.h"</span>
00036
<a name="l00037"></a><a class="code" href="classRtDuplex.html">00037</a> <span class="keyword">class </span><a class="code" href="classRtDuplex.html">RtDuplex</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00038 {
00039 <span class="keyword">public</span>:
00041
00052 <a class="code" href="classRtDuplex.html#a0">RtDuplex</a>(<span class="keywordtype">int</span> nChannels = 1, StkFloat <a class="code" href="classStk.html#e0">sampleRate</a> = <a class="code" href="classStk.html#e0">Stk::sampleRate</a>(), <span class="keywordtype">int</span> device = 0, <span class="keywordtype">int</span> bufferFrames = RT_BUFFER_SIZE, <span class="keywordtype">int</span> nBuffers = 2);
00053
00055 <a class="code" href="classRtDuplex.html#a1">~RtDuplex</a>();
00056
00058
00061 <span class="keywordtype">void</span> <a class="code" href="classRtDuplex.html#a2">start</a>(<span class="keywordtype">void</span>);
00062
00064
00066
00069 MY_FLOAT <a class="code" href="classRtDuplex.html#a5">tick</a>(<span class="keyword">const</span> MY_FLOAT sample);
00070
00072
00075 MY_FLOAT *<a class="code" href="classRtDuplex.html#a5">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00076
00078 <span class="keyword">const</span> MY_FLOAT *<a class="code" href="classRtDuplex.html#a7">lastFrame</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00067 <span class="keywordtype">void</span> <a class="code" href="classRtDuplex.html#a3">stop</a>(<span class="keywordtype">void</span>);
00068
00070 StkFloat <a class="code" href="classRtDuplex.html#a4">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00071
00073
00076 StkFloat <a class="code" href="classRtDuplex.html#a5">tick</a>(<span class="keyword">const</span> StkFloat sample);
00077
00079
00081
00084 MY_FLOAT *<a class="code" href="classRtDuplex.html#a8">tickFrame</a>(MY_FLOAT *frameVector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> frames = 1);
00082 StkFloat *<a class="code" href="classRtDuplex.html#a5">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00083
00085
00086 <span class="keyword">protected</span>:
00087
00088 <a class="code" href="classRtAudio.html">RtAudio</a> *audio_;
00089 MY_FLOAT *data_;
00090 MY_FLOAT *lastOutput_;
00091 <span class="keywordtype">int</span> bufferSize_;
00092 <span class="keywordtype">bool</span> stopped_;
00093 <span class="keywordtype">long</span> counter_;
00094 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channels_;
00095
00096 };
00097
00098 <span class="preprocessor">#endif</span>
00092 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classRtDuplex.html#a5">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00093
00095 <span class="keyword">const</span> StkFloat *<a class="code" href="classRtDuplex.html#a8">lastFrame</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00096
00098
00101 StkFloat *<a class="code" href="classRtDuplex.html#a9">tickFrame</a>(StkFloat *frameVector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> frames = 1);
00102
00104
00110 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classRtDuplex.html#a9">tickFrame</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames );
00111
00112 <span class="keyword">protected</span>:
00113
00114 <a class="code" href="classRtAudio.html">RtAudio</a> *audio_;
00115 StkFloat *data_;
00116 StkFloat *lastOutput_;
00117 <span class="keywordtype">int</span> bufferSize_;
00118 <span class="keywordtype">bool</span> stopped_;
00119 <span class="keywordtype">long</span> counter_;
00120 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channels_;
00121
00122 };
00123
00124 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -40,7 +40,7 @@
00038 <a class="code" href="classRtError.html#w11">Type</a> type_;
00039
00040 <span class="keyword">public</span>:
<a name="l00042"></a><a class="code" href="classRtError.html#a0">00042</a> <a class="code" href="classRtError.html#a0">RtError</a>(<span class="keyword">const</span> std::string&amp; message, Type type = RtError::UNSPECIFIED) : message_(message), type_(type){}
<a name="l00042"></a><a class="code" href="classRtError.html#a0">00042</a> <a class="code" href="classRtError.html#a0">RtError</a>(<span class="keyword">const</span> std::string&amp; message, Type type = RtError::UNSPECIFIED) : message_(message), type_(type) {}
00043
<a name="l00045"></a><a class="code" href="classRtError.html#a1">00045</a> <span class="keyword">virtual</span> <a class="code" href="classRtError.html#a1">~RtError</a>(<span class="keywordtype">void</span>) {};
00046
@@ -57,7 +57,7 @@
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -9,51 +9,157 @@
<a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="information.html">Information</a> &nbsp; <a class="qindex" href="classes.html">Classes</a> &nbsp; <a class="qindex" href="download.html">Download</a> &nbsp; <a class="qindex" href="usage.html">Usage</a> &nbsp; <a class="qindex" href="maillist.html">Mail List</a> &nbsp; <a class="qindex" href="system.html">Requirements</a> &nbsp; <a class="qindex" href="links.html">Links</a> &nbsp; <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>RtMidi.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00030 <span class="comment">/***************************************************/</span>
00031
00032 <span class="preprocessor">#if !defined(__RTMIDI_H)</span>
00033 <span class="preprocessor"></span><span class="preprocessor">#define __RTMIDI_H</span>
00034 <span class="preprocessor"></span>
00035 <span class="preprocessor">#include "Stk.h"</span>
00036
<a name="l00037"></a><a class="code" href="classRtMidi.html">00037</a> <span class="keyword">class </span><a class="code" href="classRtMidi.html">RtMidi</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00038 {
00039 <span class="keyword">public</span>:
00041 <a class="code" href="classRtMidi.html#a0">RtMidi</a>(<span class="keywordtype">int</span> device = 0);
00042
00044 <a class="code" href="classRtMidi.html#a1">~RtMidi</a>();
<h1>RtMidi.h</h1><div class="fragment"><pre>00001 <span class="comment">/**********************************************************************/</span>
00036 <span class="comment">/**********************************************************************/</span>
00037
00038 <span class="comment">// RtMidi: Version 1.0.2, 21 September 2004</span>
00039
00040 <span class="preprocessor">#ifndef RTMIDI_H</span>
00041 <span class="preprocessor"></span><span class="preprocessor">#define RTMIDI_H</span>
00042 <span class="preprocessor"></span>
00043 <span class="preprocessor">#include "RtError.h"</span>
00044 <span class="preprocessor">#include &lt;string&gt;</span>
00045
00047 <span class="keywordtype">void</span> <a class="code" href="classRtMidi.html#a2">printMessage</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00048
00050
00053 <span class="keywordtype">int</span> <a class="code" href="classRtMidi.html#a3">nextMessage</a>(<span class="keywordtype">void</span>);
00054
00056 <span class="keywordtype">int</span> <a class="code" href="classRtMidi.html#a4">getType</a>() <span class="keyword">const</span>;
00057
00059 <span class="keywordtype">int</span> <a class="code" href="classRtMidi.html#a5">getChannel</a>() <span class="keyword">const</span>;
<a name="l00046"></a><a class="code" href="classRtMidi.html">00046</a> <span class="keyword">class </span><a class="code" href="classRtMidi.html">RtMidi</a>
00047 {
00048 <span class="keyword">protected</span>:
00049
00050 <a class="code" href="classRtMidi.html">RtMidi</a>();
00051
00052 <span class="keyword">virtual</span> ~<a class="code" href="classRtMidi.html">RtMidi</a>() {};
00053
00054 <span class="comment">// A basic error reporting function for internal use in the RtMidi</span>
00055 <span class="comment">// subclasses. The behavior of this function can be modified to</span>
00056 <span class="comment">// suit specific needs.</span>
00057 <span class="keywordtype">void</span> error( <a class="code" href="classRtError.html#w11">RtError::Type</a> type );
00058
00059 <span class="keyword">virtual</span> <span class="keywordtype">void</span> openPort( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ) = 0;
00060
00062 MY_FLOAT <a class="code" href="classRtMidi.html#a6">getByteTwo</a>() <span class="keyword">const</span>;
00063
00065 MY_FLOAT <a class="code" href="classRtMidi.html#a7">getByteThree</a>() <span class="keyword">const</span>;
00066
00068 MY_FLOAT <a class="code" href="classRtMidi.html#a8">getDeltaTime</a>() <span class="keyword">const</span>;
00069
00070 <span class="keyword">protected</span>:
00071 <span class="keywordtype">int</span> messageType;
00072 <span class="keywordtype">int</span> channel;
00073 <span class="keywordtype">float</span> byteTwo;
00074 <span class="keywordtype">float</span> byteThree;
00075 MY_FLOAT deltaTime;
00076 <span class="keywordtype">int</span> readIndex;
00077
00078 };
00079
00080 <span class="preprocessor">#endif</span>
00061 <span class="keywordtype">void</span> *apiData_;
00062 <span class="keywordtype">bool</span> connected_;
00063 std::string errorString_;
00064 };
00065
00066 <span class="comment">/**********************************************************************/</span>
00082 <span class="comment">/**********************************************************************/</span>
00083
00084 <span class="preprocessor">#include &lt;vector&gt;</span>
00085 <span class="preprocessor">#include &lt;queue&gt;</span>
00086
<a name="l00087"></a><a class="code" href="classRtMidiIn.html">00087</a> <span class="keyword">class </span><a class="code" href="classRtMidiIn.html">RtMidiIn</a> : <span class="keyword">public</span> <a class="code" href="classRtMidi.html">RtMidi</a>
00088 {
00089 <span class="keyword">public</span>:
00090
<a name="l00092"></a><a class="code" href="classRtMidiIn.html#w0">00092</a> <span class="keyword">typedef</span> void (*<a class="code" href="classRtMidiIn.html#w0">RtMidiCallback</a>)( <span class="keywordtype">double</span> timeStamp, std::vector&lt;unsigned char&gt; *message, <span class="keywordtype">void</span> *userData);
00093
00095
00098 <a class="code" href="classRtMidiIn.html#a0">RtMidiIn</a>();
00099
00101 <a class="code" href="classRtMidiIn.html#a1">~RtMidiIn</a>();
00102
00104
00108 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a2">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 );
00109
00111
00117 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a3">openVirtualPort</a>();
00118
00120
00126 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a4">setCallback</a>( <a class="code" href="classRtMidiIn.html#w0">RtMidiCallback</a> callback, <span class="keywordtype">void</span> *userData = 0 );
00127
00129
00133 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a5">cancelCallback</a>();
00134
00136 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a6">closePort</a>( <span class="keywordtype">void</span> );
00137
00139 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidiIn.html#a7">getPortCount</a>();
00140
00142
00145 std::string <a class="code" href="classRtMidiIn.html#a8">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 );
00146
00148
00152 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a9">setQueueSizeLimit</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueSize );
00153
00155
00162 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a10">ignoreTypes</a>( <span class="keywordtype">bool</span> midiSysex = <span class="keyword">true</span>, <span class="keywordtype">bool</span> midiTime = <span class="keyword">true</span>, <span class="keywordtype">bool</span> midiSense = <span class="keyword">true</span> );
00163
00165
00172 <span class="keywordtype">double</span> <a class="code" href="classRtMidiIn.html#a11">getMessage</a>( std::vector&lt;unsigned char&gt; *message );
00173
00174 <span class="comment">// A MIDI structure used internally by the class to store incoming</span>
00175 <span class="comment">// messages. Each message represents one and only one MIDI message.</span>
00176 <span class="keyword">struct </span>MidiMessage {
00177 std::vector&lt;unsigned char&gt; bytes;
00178 <span class="keywordtype">double</span> timeStamp;
00179
00180 <span class="comment">// Default constructor.</span>
00181 MidiMessage()
00182 :bytes(3), timeStamp(0.0) {}
00183 };
00184
00185 <span class="comment">// The RtMidiInData structure is used to pass private class data to</span>
00186 <span class="comment">// the MIDI input handling function or thread.</span>
00187 <span class="keyword">struct </span>RtMidiInData {
00188 std::queue&lt;MidiMessage&gt; queue;
00189 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueLimit;
00190 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ignoreFlags;
00191 <span class="keywordtype">bool</span> doInput;
00192 <span class="keywordtype">bool</span> firstMessage;
00193 <span class="keywordtype">void</span> *apiData;
00194 <span class="keywordtype">bool</span> usingCallback;
00195 <span class="keywordtype">void</span> *userCallback;
00196 <span class="keywordtype">void</span> *userData;
00197
00198 <span class="comment">// Default constructor.</span>
00199 RtMidiInData()
00200 : queueLimit(1024), ignoreFlags(7), doInput(false), firstMessage(true),
00201 apiData(0), usingCallback(false), userCallback(0), userData(0) {}
00202 };
00203
00204 <span class="keyword">private</span>:
00205
00206 <span class="keywordtype">void</span> initialize( <span class="keywordtype">void</span> );
00207 RtMidiInData inputData_;
00208
00209 };
00210
00211 <span class="comment">/**********************************************************************/</span>
00223 <span class="comment">/**********************************************************************/</span>
00224
<a name="l00225"></a><a class="code" href="classRtMidiOut.html">00225</a> <span class="keyword">class </span><a class="code" href="classRtMidiOut.html">RtMidiOut</a> : <span class="keyword">public</span> <a class="code" href="classRtMidi.html">RtMidi</a>
00226 {
00227 <span class="keyword">public</span>:
00228
00230
00233 <a class="code" href="classRtMidiOut.html#a0">RtMidiOut</a>();
00234
00236 <a class="code" href="classRtMidiOut.html#a1">~RtMidiOut</a>();
00237
00239
00245 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a2">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 );
00246
00248 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a3">closePort</a>();
00249
00251
00259 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a4">openVirtualPort</a>();
00260
00262 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidiOut.html#a5">getPortCount</a>();
00263
00265
00268 std::string <a class="code" href="classRtMidiOut.html#a6">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber );
00269
00271
00275 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a7">sendMessage</a>( std::vector&lt;unsigned char&gt; *message );
00276
00277 <span class="keyword">private</span>:
00278
00279 <span class="keywordtype">void</span> initialize( <span class="keywordtype">void</span> );
00280 };
00281
00282 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -10,58 +10,63 @@
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>RtWvIn.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00020 <span class="comment">/***************************************************/</span>
00021
00022 <span class="preprocessor">#if !defined(__RTWVIN_H)</span>
00023 <span class="preprocessor"></span><span class="preprocessor">#define __RTWVIN_H</span>
00024 <span class="preprocessor"></span>
00025 <span class="preprocessor">#include "Stk.h"</span>
00026 <span class="preprocessor">#include "WvIn.h"</span>
00027 <span class="preprocessor">#include "RtAudio.h"</span>
00028
<a name="l00029"></a><a class="code" href="classRtWvIn.html">00029</a> <span class="keyword">class </span><a class="code" href="classRtWvIn.html">RtWvIn</a> : <span class="keyword">protected</span> <a class="code" href="classWvIn.html">WvIn</a>
00030 {
00031 <span class="keyword">public</span>:
00033
00044 <a class="code" href="classRtWvIn.html#a0">RtWvIn</a>(<span class="keywordtype">int</span> nChannels = 1, MY_FLOAT <a class="code" href="classStk.html#e0">sampleRate</a> = <a class="code" href="classStk.html#e0">Stk::sampleRate</a>(), <span class="keywordtype">int</span> device = 0, <span class="keywordtype">int</span> bufferFrames = RT_BUFFER_SIZE, <span class="keywordtype">int</span> nBuffers = 2);
00045
00047 <a class="code" href="classRtWvIn.html#a1">~RtWvIn</a>();
00024 <span class="comment">/***************************************************/</span>
00025
00026 <span class="preprocessor">#ifndef STK_RTWVIN_H</span>
00027 <span class="preprocessor"></span><span class="preprocessor">#define STK_RTWVIN_H</span>
00028 <span class="preprocessor"></span>
00029 <span class="preprocessor">#include "WvIn.h"</span>
00030 <span class="preprocessor">#include "RtAudio.h"</span>
00031
<a name="l00032"></a><a class="code" href="classRtWvIn.html">00032</a> <span class="keyword">class </span><a class="code" href="classRtWvIn.html">RtWvIn</a> : <span class="keyword">protected</span> <a class="code" href="classWvIn.html">WvIn</a>
00033 {
00034 <span class="keyword">public</span>:
00036
00047 <a class="code" href="classRtWvIn.html#a0">RtWvIn</a>(<span class="keywordtype">int</span> nChannels = 1, StkFloat <a class="code" href="classStk.html#e0">sampleRate</a> = <a class="code" href="classStk.html#e0">Stk::sampleRate</a>(), <span class="keywordtype">int</span> device = 0, <span class="keywordtype">int</span> bufferFrames = RT_BUFFER_SIZE, <span class="keywordtype">int</span> nBuffers = 2);
00048
00050
00053 <span class="keywordtype">void</span> <a class="code" href="classRtWvIn.html#a2">start</a>(<span class="keywordtype">void</span>);
00054
00056
00059 <span class="keywordtype">void</span> <a class="code" href="classRtWvIn.html#a3">stop</a>(<span class="keywordtype">void</span>);
00060
00062 MY_FLOAT <a class="code" href="classRtWvIn.html#a4">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00050 <a class="code" href="classRtWvIn.html#a1">~RtWvIn</a>();
00051
00053
00056 <span class="keywordtype">void</span> <a class="code" href="classRtWvIn.html#a2">start</a>(<span class="keywordtype">void</span>);
00057
00059
00062 <span class="keywordtype">void</span> <a class="code" href="classRtWvIn.html#a3">stop</a>(<span class="keywordtype">void</span>);
00063
00065
00068 MY_FLOAT <a class="code" href="classRtWvIn.html#a5">tick</a>(<span class="keywordtype">void</span>);
00069
00071
00074 MY_FLOAT *<a class="code" href="classRtWvIn.html#a5">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00075
00077 <span class="keyword">const</span> MY_FLOAT *<a class="code" href="classRtWvIn.html#a7">lastFrame</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00065 StkFloat <a class="code" href="classRtWvIn.html#a4">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00066
00068
00071 StkFloat <a class="code" href="classRtWvIn.html#a5">tick</a>(<span class="keywordtype">void</span>);
00072
00074
00077 StkFloat *<a class="code" href="classRtWvIn.html#a5">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00078
00080
00083 <span class="keyword">const</span> MY_FLOAT *<a class="code" href="classRtWvIn.html#a8">tickFrame</a>(<span class="keywordtype">void</span>);
00084
00086
00089 MY_FLOAT *<a class="code" href="classRtWvIn.html#a8">tickFrame</a>(MY_FLOAT *frameVector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> frames);
00086 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classRtWvIn.html#a5">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00087
00089 <span class="keyword">const</span> StkFloat *<a class="code" href="classRtWvIn.html#a8">lastFrame</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00090
00091 <span class="keyword">protected</span>:
00092
00093 <a class="code" href="classRtAudio.html">RtAudio</a> *audio_;
00094 <span class="keywordtype">bool</span> stopped_;
00095 <span class="keywordtype">long</span> counter_;
00095 <span class="keyword">const</span> StkFloat *<a class="code" href="classRtWvIn.html#a9">tickFrame</a>(<span class="keywordtype">void</span>);
00096
00097 };
00098
00099 <span class="preprocessor">#endif</span>
00101 StkFloat *<a class="code" href="classRtWvIn.html#a9">tickFrame</a>(StkFloat *frameVector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> frames);
00102
00104
00109 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classRtWvIn.html#a9">tickFrame</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames );
00110
00111 <span class="keyword">protected</span>:
00112
00113 <a class="code" href="classRtAudio.html">RtAudio</a> *audio_;
00114 <span class="keywordtype">bool</span> stopped_;
00115 <span class="keywordtype">long</span> counter_;
00116
00117 };
00118
00119 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -10,56 +10,62 @@
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>RtWvOut.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00019 <span class="comment">/***************************************************/</span>
00020
00021 <span class="preprocessor">#if !defined(__RTWVOUT_H)</span>
00022 <span class="preprocessor"></span><span class="preprocessor">#define __RTWVOUT_H</span>
00023 <span class="preprocessor"></span>
00024 <span class="preprocessor">#include "WvOut.h"</span>
00025 <span class="preprocessor">#include "RtAudio.h"</span>
00026 <span class="preprocessor">#include "Thread.h"</span>
00027
<a name="l00028"></a><a class="code" href="classRtWvOut.html">00028</a> <span class="keyword">class </span><a class="code" href="classRtWvOut.html">RtWvOut</a> : <span class="keyword">protected</span> <a class="code" href="classWvOut.html">WvOut</a>
00029 {
00030 <span class="keyword">public</span>:
00031
00033
00044 <a class="code" href="classRtWvOut.html#a0">RtWvOut</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1, MY_FLOAT <a class="code" href="classStk.html#e0">sampleRate</a> = <a class="code" href="classStk.html#e0">Stk::sampleRate</a>(), <span class="keywordtype">int</span> device = 0, <span class="keywordtype">int</span> bufferFrames = RT_BUFFER_SIZE, <span class="keywordtype">int</span> nBuffers = 4 );
00045
00047 <a class="code" href="classRtWvOut.html#a1">~RtWvOut</a>();
00023 <span class="comment">/***************************************************/</span>
00024
00025 <span class="preprocessor">#ifndef STK_RTWVOUT_H</span>
00026 <span class="preprocessor"></span><span class="preprocessor">#define STK_RTWVOUT_H</span>
00027 <span class="preprocessor"></span>
00028 <span class="preprocessor">#include "WvOut.h"</span>
00029 <span class="preprocessor">#include "RtAudio.h"</span>
00030
<a name="l00031"></a><a class="code" href="classRtWvOut.html">00031</a> <span class="keyword">class </span><a class="code" href="classRtWvOut.html">RtWvOut</a> : <span class="keyword">protected</span> <a class="code" href="classWvOut.html">WvOut</a>
00032 {
00033 <span class="keyword">public</span>:
00034
00036
00047 <a class="code" href="classRtWvOut.html#a0">RtWvOut</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1, StkFloat <a class="code" href="classStk.html#e0">sampleRate</a> = <a class="code" href="classStk.html#e0">Stk::sampleRate</a>(), <span class="keywordtype">int</span> device = 0, <span class="keywordtype">int</span> bufferFrames = RT_BUFFER_SIZE, <span class="keywordtype">int</span> nBuffers = 4 );
00048
00050
00053 <span class="keywordtype">void</span> <a class="code" href="classRtWvOut.html#a2">start</a>(<span class="keywordtype">void</span>);
00054
00056
00059 <span class="keywordtype">void</span> <a class="code" href="classRtWvOut.html#a3">stop</a>(<span class="keywordtype">void</span>);
00060
00062 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classRtWvOut.html#a4">getFrames</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
00050 <a class="code" href="classRtWvOut.html#a1">~RtWvOut</a>();
00051
00053
00056 <span class="keywordtype">void</span> <a class="code" href="classRtWvOut.html#a2">start</a>(<span class="keywordtype">void</span>);
00057
00059
00062 <span class="keywordtype">void</span> <a class="code" href="classRtWvOut.html#a3">stop</a>(<span class="keywordtype">void</span>);
00063
00065 MY_FLOAT <a class="code" href="classRtWvOut.html#a5">getTime</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
00065 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classRtWvOut.html#a4">getFrames</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
00066
00068
00071 <span class="keywordtype">void</span> <a class="code" href="classRtWvOut.html#a6">tick</a>(<span class="keyword">const</span> MY_FLOAT sample);
00072
00074
00077 <span class="keywordtype">void</span> <a class="code" href="classRtWvOut.html#a6">tick</a>(<span class="keyword">const</span> MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00078
00080
00083 <span class="keywordtype">void</span> <a class="code" href="classRtWvOut.html#a8">tickFrame</a>(<span class="keyword">const</span> MY_FLOAT *frameVector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> frames = 1);
00084
00085 <span class="keyword">protected</span>:
00086
00087 <a class="code" href="classRtAudio.html">RtAudio</a> *audio_;
00088 <span class="keywordtype">bool</span> stopped_;
00089 <span class="keywordtype">int</span> bufferSize_;
00068 StkFloat <a class="code" href="classRtWvOut.html#a5">getTime</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
00069
00071
00074 <span class="keywordtype">void</span> <a class="code" href="classRtWvOut.html#a6">tick</a>( <span class="keyword">const</span> StkFloat sample );
00075
00077
00080 <span class="keywordtype">void</span> <a class="code" href="classRtWvOut.html#a6">tick</a>( <span class="keyword">const</span> StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00081
00083
00089 <span class="keywordtype">void</span> <a class="code" href="classRtWvOut.html#a6">tick</a>( <span class="keyword">const</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00090
00091 };
00092
00093 <span class="preprocessor">#endif // defined(__RTWVOUT_H)</span>
00095 <span class="keywordtype">void</span> <a class="code" href="classRtWvOut.html#a9">tickFrame</a>( <span class="keyword">const</span> StkFloat *frameVector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> frames = 1 );
00096
00098
00103 <span class="keywordtype">void</span> <a class="code" href="classRtWvOut.html#a9">tickFrame</a>( <span class="keyword">const</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames );
00104
00105 <span class="keyword">protected</span>:
00106
00107 <a class="code" href="classRtAudio.html">RtAudio</a> *audio_;
00108 StkFloat *dataPtr_;
00109 <span class="keywordtype">bool</span> stopped_;
00110 <span class="keywordtype">int</span> bufferSize_;
00111
00112 };
00113
00114 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -1,103 +0,0 @@
<HTML>
<HEAD>
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"> &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="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>SKINI.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00026 <span class="comment">/***************************************************/</span>
00027
00028 <span class="preprocessor">#if !defined(__SKINI_H)</span>
00029 <span class="preprocessor"></span><span class="preprocessor">#define __SKINI_H</span>
00030 <span class="preprocessor"></span>
00031 <span class="preprocessor">#include "Stk.h"</span>
00032 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
00033
<a name="l00034"></a><a class="code" href="classSKINI.html">00034</a> <span class="keyword">class </span><a class="code" href="classSKINI.html">SKINI</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00035 {
00036 <span class="keyword">public</span>:
00038 <a class="code" href="classSKINI.html#a0">SKINI</a>();
00039
00041 <a class="code" href="classSKINI.html#a0">SKINI</a>(<span class="keywordtype">char</span> *fileName);
00042
00044 <a class="code" href="classSKINI.html#a2">~SKINI</a>();
00045
00047
00050 <span class="keywordtype">long</span> <a class="code" href="classSKINI.html#a3">parseThis</a>(<span class="keywordtype">char</span>* aString);
00051
00053
00056 <span class="keywordtype">long</span> <a class="code" href="classSKINI.html#a4">nextMessage</a>();
00057
00059 <span class="keywordtype">long</span> <a class="code" href="classSKINI.html#a5">getType</a>() <span class="keyword">const</span>;
00060
00062 <span class="keywordtype">long</span> <a class="code" href="classSKINI.html#a6">getChannel</a>() <span class="keyword">const</span>;
00063
00065 MY_FLOAT <a class="code" href="classSKINI.html#a7">getDelta</a>() <span class="keyword">const</span>;
00066
00068 MY_FLOAT <a class="code" href="classSKINI.html#a8">getByteTwo</a>() <span class="keyword">const</span>;
00069
00071 MY_FLOAT <a class="code" href="classSKINI.html#a9">getByteThree</a>() <span class="keyword">const</span>;
00072
00074 <span class="keywordtype">long</span> <a class="code" href="classSKINI.html#a10">getByteTwoInt</a>() <span class="keyword">const</span>;
00075
00077 <span class="keywordtype">long</span> <a class="code" href="classSKINI.html#a11">getByteThreeInt</a>() <span class="keyword">const</span>;
00078
00080 <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSKINI.html#a12">getRemainderString</a>();
00081
00083 <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSKINI.html#a13">getMessageTypeString</a>();
00084
00086 <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSKINI.html#a14">whatsThisType</a>(<span class="keywordtype">long</span> type);
00087
00089 <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSKINI.html#a15">whatsThisController</a>(<span class="keywordtype">long</span> number);
00090
00091 <span class="keyword">protected</span>:
00092
00093 FILE *myFile;
00094 <span class="keywordtype">long</span> messageType;
00095 <span class="keywordtype">char</span> msgTypeString[64];
00096 <span class="keywordtype">long</span> channel;
00097 MY_FLOAT deltaTime;
00098 MY_FLOAT byteTwo;
00099 MY_FLOAT byteThree;
00100 <span class="keywordtype">long</span> byteTwoInt;
00101 <span class="keywordtype">long</span> byteThreeInt;
00102 <span class="keywordtype">char</span> remainderString[1024];
00103 <span class="keywordtype">char</span> whatString[1024];
00104 };
00105
00106 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">double</span> Midi2Pitch[129] = {
00107 8.18,8.66,9.18,9.72,10.30,10.91,11.56,12.25,
00108 12.98,13.75,14.57,15.43,16.35,17.32,18.35,19.45,
00109 20.60,21.83,23.12,24.50,25.96,27.50,29.14,30.87,
00110 32.70,34.65,36.71,38.89,41.20,43.65,46.25,49.00,
00111 51.91,55.00,58.27,61.74,65.41,69.30,73.42,77.78,
00112 82.41,87.31,92.50,98.00,103.83,110.00,116.54,123.47,
00113 130.81,138.59,146.83,155.56,164.81,174.61,185.00,196.00,
00114 207.65,220.00,233.08,246.94,261.63,277.18,293.66,311.13,
00115 329.63,349.23,369.99,392.00,415.30,440.00,466.16,493.88,
00116 523.25,554.37,587.33,622.25,659.26,698.46,739.99,783.99,
00117 830.61,880.00,932.33,987.77,1046.50,1108.73,1174.66,1244.51,
00118 1318.51,1396.91,1479.98,1567.98,1661.22,1760.00,1864.66,1975.53,
00119 2093.00,2217.46,2349.32,2489.02,2637.02,2793.83,2959.96,3135.96,
00120 3322.44,3520.00,3729.31,3951.07,4186.01,4434.92,4698.64,4978.03,
00121 5274.04,5587.65,5919.91,6271.93,6644.88,7040.00,7458.62,7902.13,
00122 8372.02,8869.84,9397.27,9956.06,10548.08,11175.30,11839.82,12543.85,
00123 13289.75};
00124
00125 <span class="preprocessor">#endif</span>
00126 <span class="preprocessor"></span>
00127
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>
</HTML>

View File

@@ -0,0 +1,147 @@
<HTML>
<HEAD>
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"> &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="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>SKINI.msg</h1><div class="fragment"><pre>00001 <span class="comment">/*********************************************************/</span>
00002 <span class="comment">/*</span>
00003 <span class="comment"> Definition of SKINI Message Types and Special Symbols</span>
00004 <span class="comment"> Synthesis toolKit Instrument Network Interface</span>
00005 <span class="comment"></span>
00006 <span class="comment"> These symbols should have the form:</span>
00007 <span class="comment"></span>
00008 <span class="comment"> \c __SK_&lt;name&gt;_</span>
00009 <span class="comment"></span>
00010 <span class="comment"> where &lt;name&gt; is the string used in the SKINI stream.</span>
00011 <span class="comment"></span>
00012 <span class="comment"> by Perry R. Cook, 1995 - 2004.</span>
00013 <span class="comment">*/</span>
00014 <span class="comment">/*********************************************************/</span>
00015
00016 <span class="preprocessor">#define NOPE -32767</span>
00017 <span class="preprocessor"></span><span class="preprocessor">#define YEP 1</span>
00018 <span class="preprocessor"></span><span class="preprocessor">#define SK_DBL -32766</span>
00019 <span class="preprocessor"></span><span class="preprocessor">#define SK_INT -32765</span>
00020 <span class="preprocessor"></span><span class="preprocessor">#define SK_STR -32764</span>
00021 <span class="preprocessor"></span><span class="preprocessor">#define __SK_Exit_ 999</span>
00022 <span class="preprocessor"></span>
00023 <span class="comment">/***** MIDI COMPATIBLE MESSAGES *****/</span>
00024 <span class="comment">/*** (Status bytes for channel=0) ***/</span>
00025
00026 <span class="preprocessor">#define __SK_NoteOff_ 128</span>
00027 <span class="preprocessor"></span><span class="preprocessor">#define __SK_NoteOn_ 144</span>
00028 <span class="preprocessor"></span><span class="preprocessor">#define __SK_PolyPressure_ 160</span>
00029 <span class="preprocessor"></span><span class="preprocessor">#define __SK_ControlChange_ 176</span>
00030 <span class="preprocessor"></span><span class="preprocessor">#define __SK_ProgramChange_ 192</span>
00031 <span class="preprocessor"></span><span class="preprocessor">#define __SK_AfterTouch_ 208</span>
00032 <span class="preprocessor"></span><span class="preprocessor">#define __SK_ChannelPressure_ __SK_AfterTouch_</span>
00033 <span class="preprocessor"></span><span class="preprocessor">#define __SK_PitchWheel_ 224</span>
00034 <span class="preprocessor"></span><span class="preprocessor">#define __SK_PitchBend_ __SK_PitchWheel_</span>
00035 <span class="preprocessor"></span><span class="preprocessor">#define __SK_PitchChange_ 49</span>
00036 <span class="preprocessor"></span>
00037 <span class="preprocessor">#define __SK_Clock_ 248</span>
00038 <span class="preprocessor"></span><span class="preprocessor">#define __SK_SongStart_ 250</span>
00039 <span class="preprocessor"></span><span class="preprocessor">#define __SK_Continue_ 251</span>
00040 <span class="preprocessor"></span><span class="preprocessor">#define __SK_SongStop_ 252</span>
00041 <span class="preprocessor"></span><span class="preprocessor">#define __SK_ActiveSensing_ 254</span>
00042 <span class="preprocessor"></span><span class="preprocessor">#define __SK_SystemReset_ 255</span>
00043 <span class="preprocessor"></span>
00044 <span class="preprocessor">#define __SK_Volume_ 7</span>
00045 <span class="preprocessor"></span><span class="preprocessor">#define __SK_ModWheel_ 1</span>
00046 <span class="preprocessor"></span><span class="preprocessor">#define __SK_Modulation_ __SK_ModWheel_</span>
00047 <span class="preprocessor"></span><span class="preprocessor">#define __SK_Breath_ 2</span>
00048 <span class="preprocessor"></span><span class="preprocessor">#define __SK_FootControl_ 4</span>
00049 <span class="preprocessor"></span><span class="preprocessor">#define __SK_Portamento_ 65</span>
00050 <span class="preprocessor"></span><span class="preprocessor">#define __SK_Balance_ 8</span>
00051 <span class="preprocessor"></span><span class="preprocessor">#define __SK_Pan_ 10</span>
00052 <span class="preprocessor"></span><span class="preprocessor">#define __SK_Sustain_ 64</span>
00053 <span class="preprocessor"></span><span class="preprocessor">#define __SK_Damper_ __SK_Sustain_</span>
00054 <span class="preprocessor"></span><span class="preprocessor">#define __SK_Expression_ 11 </span>
00055 <span class="preprocessor"></span>
00056 <span class="preprocessor">#define __SK_AfterTouch_Cont_ 128</span>
00057 <span class="preprocessor"></span><span class="preprocessor">#define __SK_ModFrequency_ __SK_Expression_</span>
00058 <span class="preprocessor"></span>
00059 <span class="preprocessor">#define __SK_ProphesyRibbon_ 16</span>
00060 <span class="preprocessor"></span><span class="preprocessor">#define __SK_ProphesyWheelUp_ 2</span>
00061 <span class="preprocessor"></span><span class="preprocessor">#define __SK_ProphesyWheelDown_ 3</span>
00062 <span class="preprocessor"></span><span class="preprocessor">#define __SK_ProphesyPedal_ 18</span>
00063 <span class="preprocessor"></span><span class="preprocessor">#define __SK_ProphesyKnob1_ 21</span>
00064 <span class="preprocessor"></span><span class="preprocessor">#define __SK_ProphesyKnob2_ 22</span>
00065 <span class="preprocessor"></span>
00066 <span class="comment">/*** Instrument Family Specific ***/</span>
00067
00068 <span class="preprocessor">#define __SK_NoiseLevel_ __SK_FootControl_</span>
00069 <span class="preprocessor"></span>
00070 <span class="preprocessor">#define __SK_PickPosition_ __SK_FootControl_</span>
00071 <span class="preprocessor"></span><span class="preprocessor">#define __SK_StringDamping_ __SK_Expression_</span>
00072 <span class="preprocessor"></span><span class="preprocessor">#define __SK_StringDetune_ __SK_ModWheel_</span>
00073 <span class="preprocessor"></span><span class="preprocessor">#define __SK_BodySize_ __SK_Breath_</span>
00074 <span class="preprocessor"></span><span class="preprocessor">#define __SK_BowPressure_ __SK_Breath_</span>
00075 <span class="preprocessor"></span><span class="preprocessor">#define __SK_BowPosition_ __SK_PickPosition_</span>
00076 <span class="preprocessor"></span><span class="preprocessor">#define __SK_BowBeta_ __SK_BowPosition_</span>
00077 <span class="preprocessor"></span>
00078 <span class="preprocessor">#define __SK_ReedStiffness_ __SK_Breath_</span>
00079 <span class="preprocessor"></span><span class="preprocessor">#define __SK_ReedRestPos_ __SK_FootControl_</span>
00080 <span class="preprocessor"></span>
00081 <span class="preprocessor">#define __SK_FluteEmbouchure_ __SK_Breath_</span>
00082 <span class="preprocessor"></span><span class="preprocessor">#define __SK_JetDelay_ __SK_FluteEmbouchure_</span>
00083 <span class="preprocessor"></span>
00084 <span class="preprocessor">#define __SK_LipTension_ __SK_Breath_</span>
00085 <span class="preprocessor"></span><span class="preprocessor">#define __SK_SlideLength_ __SK_FootControl_</span>
00086 <span class="preprocessor"></span>
00087 <span class="preprocessor">#define __SK_StrikePosition_ __SK_PickPosition_</span>
00088 <span class="preprocessor"></span><span class="preprocessor">#define __SK_StickHardness_ __SK_Breath_</span>
00089 <span class="preprocessor"></span>
00090 <span class="preprocessor">#define __SK_TrillDepth_ 1051</span>
00091 <span class="preprocessor"></span><span class="preprocessor">#define __SK_TrillSpeed_ 1052</span>
00092 <span class="preprocessor"></span><span class="preprocessor">#define __SK_StrumSpeed_ __SK_TrillSpeed_</span>
00093 <span class="preprocessor"></span><span class="preprocessor">#define __SK_RollSpeed_ __SK_TrillSpeed_</span>
00094 <span class="preprocessor"></span>
00095 <span class="preprocessor">#define __SK_FilterQ_ __SK_Breath_</span>
00096 <span class="preprocessor"></span><span class="preprocessor">#define __SK_FilterFreq_ 1062</span>
00097 <span class="preprocessor"></span><span class="preprocessor">#define __SK_FilterSweepRate_ __SK_FootControl_</span>
00098 <span class="preprocessor"></span>
00099 <span class="preprocessor">#define __SK_ShakerInst_ 1071 </span>
00100 <span class="preprocessor"></span><span class="preprocessor">#define __SK_ShakerEnergy_ __SK_Breath_</span>
00101 <span class="preprocessor"></span><span class="preprocessor">#define __SK_ShakerDamping_ __SK_ModFrequency_</span>
00102 <span class="preprocessor"></span><span class="preprocessor">#define __SK_ShakerNumObjects_ __SK_FootControl_</span>
00103 <span class="preprocessor"></span>
00104 <span class="preprocessor">#define __SK_Strumming_ 1090</span>
00105 <span class="preprocessor"></span><span class="preprocessor">#define __SK_NotStrumming_ 1091</span>
00106 <span class="preprocessor"></span><span class="preprocessor">#define __SK_Trilling_ 1092</span>
00107 <span class="preprocessor"></span><span class="preprocessor">#define __SK_NotTrilling_ 1093</span>
00108 <span class="preprocessor"></span><span class="preprocessor">#define __SK_Rolling_ __SK_Strumming_</span>
00109 <span class="preprocessor"></span><span class="preprocessor">#define __SK_NotRolling_ __SK_NotStrumming_</span>
00110 <span class="preprocessor"></span>
00111 <span class="preprocessor">#define __SK_PlayerSkill_ 2001</span>
00112 <span class="preprocessor"></span><span class="preprocessor">#define __SK_Chord_ 2002</span>
00113 <span class="preprocessor"></span><span class="preprocessor">#define __SK_ChordOff_ 2003</span>
00114 <span class="preprocessor"></span>
00115 <span class="preprocessor">#define __SK_SINGER_FilePath_ 3000</span>
00116 <span class="preprocessor"></span><span class="preprocessor">#define __SK_SINGER_Frequency_ 3001</span>
00117 <span class="preprocessor"></span><span class="preprocessor">#define __SK_SINGER_NoteName_ 3002</span>
00118 <span class="preprocessor"></span><span class="preprocessor">#define __SK_SINGER_Shape_ 3003</span>
00119 <span class="preprocessor"></span><span class="preprocessor">#define __SK_SINGER_Glot_ 3004</span>
00120 <span class="preprocessor"></span><span class="preprocessor">#define __SK_SINGER_VoicedUnVoiced_ 3005</span>
00121 <span class="preprocessor"></span><span class="preprocessor">#define __SK_SINGER_Synthesize_ 3006</span>
00122 <span class="preprocessor"></span><span class="preprocessor">#define __SK_SINGER_Silence_ 3007</span>
00123 <span class="preprocessor"></span><span class="preprocessor">#define __SK_SINGER_VibratoAmt_ __SK_ModWheel_</span>
00124 <span class="preprocessor"></span><span class="preprocessor">#define __SK_SINGER_RndVibAmt_ 3008</span>
00125 <span class="preprocessor"></span><span class="preprocessor">#define __SK_SINGER_VibFreq_ __SK_Expression_</span>
00126 <span class="preprocessor"></span>
00127
</pre></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-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>
</HTML>

View File

@@ -12,8 +12,8 @@
<h1>Sampler.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00010 <span class="comment">/***************************************************/</span>
00011
00012 <span class="preprocessor">#if !defined(__SAMPLER_H)</span>
00013 <span class="preprocessor"></span><span class="preprocessor">#define __SAMPLER_H</span>
00012 <span class="preprocessor">#ifndef STK_SAMPLER_H</span>
00013 <span class="preprocessor"></span><span class="preprocessor">#define STK_SAMPLER_H</span>
00014 <span class="preprocessor"></span>
00015 <span class="preprocessor">#include "Instrmnt.h"</span>
00016 <span class="preprocessor">#include "ADSR.h"</span>
@@ -30,37 +30,41 @@
00029
00031 <span class="keywordtype">void</span> <a class="code" href="classSampler.html#a2">clear</a>();
00032
00034 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSampler.html#a3">setFrequency</a>(MY_FLOAT frequency) = 0;
00034 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSampler.html#a3">setFrequency</a>(StkFloat frequency) = 0;
00035
00037 <span class="keywordtype">void</span> <a class="code" href="classSampler.html#a4">keyOn</a>();
00038
00040 <span class="keywordtype">void</span> <a class="code" href="classSampler.html#a5">keyOff</a>();
00041
00043 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSampler.html#a6">noteOff</a>(MY_FLOAT amplitude);
00043 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSampler.html#a6">noteOff</a>(StkFloat amplitude);
00044
00046 <span class="keyword">virtual</span> MY_FLOAT <a class="code" href="classSampler.html#a7">tick</a>();
00046 <span class="keyword">virtual</span> StkFloat <a class="code" href="classSampler.html#a7">tick</a>() = 0;
00047
00049 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSampler.html#a8">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value) = 0;
00049 <span class="keyword">virtual</span> StkFloat *<a class="code" href="classSampler.html#a7">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize) = 0;
00050
00051 <span class="keyword">protected</span>:
00052 <a class="code" href="classADSR.html">ADSR</a> *adsr;
00053 <a class="code" href="classWvIn.html">WvIn</a> *attacks[5];
00054 <a class="code" href="classWaveLoop.html">WaveLoop</a> *loops[5];
00055 <a class="code" href="classOnePole.html">OnePole</a> *filter;
00056 MY_FLOAT baseFrequency;
00057 MY_FLOAT attackRatios[5];
00058 MY_FLOAT loopRatios[5];
00059 MY_FLOAT attackGain;
00060 MY_FLOAT loopGain;
00061 <span class="keywordtype">int</span> whichOne;
00052
00058 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classSampler.html#a7">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 ) = 0;
00059
00061 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSampler.html#a10">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value) = 0;
00062
00063 };
00064
00065 <span class="preprocessor">#endif</span>
00063 <span class="keyword">protected</span>:
00064 <a class="code" href="classADSR.html">ADSR</a> adsr_;
00065 std::vector&lt;WvIn *&gt; attacks_;
00066 std::vector&lt;WaveLoop *&gt; loops_;
00067 <a class="code" href="classOnePole.html">OnePole</a> filter_;
00068 StkFloat baseFrequency_;
00069 std::vector&lt;StkFloat&gt; attackRatios_;
00070 std::vector&lt;StkFloat&gt; loopRatios_;
00071 StkFloat attackGain_;
00072 StkFloat loopGain_;
00073
00074 };
00075
00076 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,12 +12,12 @@
<h1>Saxofony.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00036 <span class="comment">/***************************************************/</span>
00037
00038 <span class="preprocessor">#if !defined(__SAXOFONY_H)</span>
00039 <span class="preprocessor"></span><span class="preprocessor">#define __SAXOFONY_H</span>
00038 <span class="preprocessor">#ifndef STK_SAXOFONY_H</span>
00039 <span class="preprocessor"></span><span class="preprocessor">#define STK_SAXOFONY_H</span>
00040 <span class="preprocessor"></span>
00041 <span class="preprocessor">#include "Instrmnt.h"</span>
00042 <span class="preprocessor">#include "DelayL.h"</span>
00043 <span class="preprocessor">#include "ReedTabl.h"</span>
00043 <span class="preprocessor">#include "ReedTable.h"</span>
00044 <span class="preprocessor">#include "OneZero.h"</span>
00045 <span class="preprocessor">#include "Envelope.h"</span>
00046 <span class="preprocessor">#include "Noise.h"</span>
@@ -26,48 +26,54 @@
<a name="l00049"></a><a class="code" href="classSaxofony.html">00049</a> <span class="keyword">class </span><a class="code" href="classSaxofony.html">Saxofony</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
00050 {
00051 <span class="keyword">public</span>:
00053 <a class="code" href="classSaxofony.html#a0">Saxofony</a>(MY_FLOAT lowestFrequency);
00054
00056 <a class="code" href="classSaxofony.html#a1">~Saxofony</a>();
00053
00056 <a class="code" href="classSaxofony.html#a0">Saxofony</a>(StkFloat lowestFrequency);
00057
00059 <span class="keywordtype">void</span> <a class="code" href="classSaxofony.html#a2">clear</a>();
00059 <a class="code" href="classSaxofony.html#a1">~Saxofony</a>();
00060
00062 <span class="keywordtype">void</span> <a class="code" href="classSaxofony.html#a3">setFrequency</a>(MY_FLOAT frequency);
00062 <span class="keywordtype">void</span> <a class="code" href="classSaxofony.html#a2">clear</a>();
00063
00065 <span class="keywordtype">void</span> <a class="code" href="classSaxofony.html#a4">setBlowPosition</a>(MY_FLOAT aPosition);
00065 <span class="keywordtype">void</span> <a class="code" href="classSaxofony.html#a3">setFrequency</a>(StkFloat frequency);
00066
00068 <span class="keywordtype">void</span> <a class="code" href="classSaxofony.html#a5">startBlowing</a>(MY_FLOAT amplitude, MY_FLOAT rate);
00068 <span class="keywordtype">void</span> <a class="code" href="classSaxofony.html#a4">setBlowPosition</a>(StkFloat aPosition);
00069
00071 <span class="keywordtype">void</span> <a class="code" href="classSaxofony.html#a6">stopBlowing</a>(MY_FLOAT rate);
00071 <span class="keywordtype">void</span> <a class="code" href="classSaxofony.html#a5">startBlowing</a>(StkFloat amplitude, StkFloat rate);
00072
00074 <span class="keywordtype">void</span> <a class="code" href="classSaxofony.html#a7">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00074 <span class="keywordtype">void</span> <a class="code" href="classSaxofony.html#a6">stopBlowing</a>(StkFloat rate);
00075
00077 <span class="keywordtype">void</span> <a class="code" href="classSaxofony.html#a8">noteOff</a>(MY_FLOAT amplitude);
00077 <span class="keywordtype">void</span> <a class="code" href="classSaxofony.html#a7">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00078
00080 MY_FLOAT <a class="code" href="classSaxofony.html#a9">tick</a>();
00080 <span class="keywordtype">void</span> <a class="code" href="classSaxofony.html#a8">noteOff</a>(StkFloat amplitude);
00081
00083 <span class="keywordtype">void</span> <a class="code" href="classSaxofony.html#a10">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00083 StkFloat <a class="code" href="classSaxofony.html#a9">tick</a>();
00084
00085 <span class="keyword">protected</span>:
00086 <a class="code" href="classDelayL.html">DelayL</a> *delays[2];
00087 <a class="code" href="classReedTabl.html">ReedTabl</a> *reedTable;
00088 <a class="code" href="classOneZero.html">OneZero</a> *filter;
00089 <a class="code" href="classEnvelope.html">Envelope</a> *envelope;
00090 <a class="code" href="classNoise.html">Noise</a> *noise;
00091 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
00092 <span class="keywordtype">long</span> length;
00093 MY_FLOAT outputGain;
00094 MY_FLOAT noiseGain;
00095 MY_FLOAT vibratoGain;
00096 MY_FLOAT position;
00097
00098 };
00086 StkFloat *<a class="code" href="classSaxofony.html#a9">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00087
00089
00095 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classSaxofony.html#a9">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00096
00098 <span class="keywordtype">void</span> <a class="code" href="classSaxofony.html#a12">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00099
00100 <span class="preprocessor">#endif</span>
00100 <span class="keyword">protected</span>:
00101 <a class="code" href="classDelayL.html">DelayL</a> delays_[2];
00102 <a class="code" href="classReedTable.html">ReedTable</a> reedTable_;
00103 <a class="code" href="classOneZero.html">OneZero</a> filter_;
00104 <a class="code" href="classEnvelope.html">Envelope</a> envelope_;
00105 <a class="code" href="classNoise.html">Noise</a> noise_;
00106 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato_;
00107 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> length_;
00108 StkFloat outputGain_;
00109 StkFloat noiseGain_;
00110 StkFloat vibratoGain_;
00111 StkFloat position_;
00112
00113 };
00114
00115 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,14 +12,14 @@
<h1>Shakers.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00053 <span class="comment">/***************************************************/</span>
00054
00055 <span class="preprocessor">#if !defined(__SHAKERS_H)</span>
00056 <span class="preprocessor"></span><span class="preprocessor">#define __SHAKERS_H</span>
00055 <span class="preprocessor">#ifndef STK_SHAKERS_H</span>
00056 <span class="preprocessor"></span><span class="preprocessor">#define STK_SHAKERS_H</span>
00057 <span class="preprocessor"></span>
00058 <span class="preprocessor">#include "Instrmnt.h"</span>
00059
00060 <span class="preprocessor">#define MAX_FREQS 8</span>
00061 <span class="preprocessor"></span><span class="preprocessor">#define NUM_INSTR 24</span>
00062 <span class="preprocessor"></span>
00060 <span class="keyword">const</span> <span class="keywordtype">int</span> MAX_FREQS = 8;
00061 <span class="keyword">const</span> <span class="keywordtype">int</span> NUM_INSTR = 24;
00062
<a name="l00063"></a><a class="code" href="classShakers.html">00063</a> <span class="keyword">class </span><a class="code" href="classShakers.html">Shakers</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
00064 {
00065 <span class="keyword">public</span>:
@@ -28,59 +28,63 @@
00070 <a class="code" href="classShakers.html#a1">~Shakers</a>();
00071
00073
00077 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classShakers.html#a2">noteOn</a>(MY_FLOAT instrument, MY_FLOAT amplitude);
00077 <span class="keywordtype">void</span> <a class="code" href="classShakers.html#a2">noteOn</a>(StkFloat instrument, StkFloat amplitude);
00078
00080 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classShakers.html#a3">noteOff</a>(MY_FLOAT amplitude);
00080 <span class="keywordtype">void</span> <a class="code" href="classShakers.html#a3">noteOff</a>(StkFloat amplitude);
00081
00083 MY_FLOAT <a class="code" href="classShakers.html#a4">tick</a>();
00083 StkFloat <a class="code" href="classShakers.html#a4">tick</a>();
00084
00086 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classShakers.html#a5">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00086 StkFloat *<a class="code" href="classShakers.html#a4">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00087
00088 <span class="keyword">protected</span>:
00089
00090 <span class="keywordtype">int</span> setupName(<span class="keywordtype">char</span>* instr);
00091 <span class="keywordtype">int</span> setupNum(<span class="keywordtype">int</span> inst);
00092 <span class="keywordtype">int</span> setFreqAndReson(<span class="keywordtype">int</span> which, MY_FLOAT freq, MY_FLOAT reson);
00093 <span class="keywordtype">void</span> setDecays(MY_FLOAT sndDecay, MY_FLOAT sysDecay);
00094 <span class="keywordtype">void</span> setFinalZs(MY_FLOAT z0, MY_FLOAT z1, MY_FLOAT z2);
00095 MY_FLOAT wuter_tick();
00096 MY_FLOAT tbamb_tick();
00097 MY_FLOAT ratchet_tick();
00098
00099 <span class="keywordtype">int</span> instType;
00100 <span class="keywordtype">int</span> ratchetPos, lastRatchetPos;
00101 MY_FLOAT shakeEnergy;
00102 MY_FLOAT inputs[MAX_FREQS];
00103 MY_FLOAT outputs[MAX_FREQS][2];
00104 MY_FLOAT coeffs[MAX_FREQS][2];
00105 MY_FLOAT sndLevel;
00106 MY_FLOAT baseGain;
00107 MY_FLOAT gains[MAX_FREQS];
00108 <span class="keywordtype">int</span> nFreqs;
00109 MY_FLOAT t_center_freqs[MAX_FREQS];
00110 MY_FLOAT center_freqs[MAX_FREQS];
00111 MY_FLOAT resons[MAX_FREQS];
00112 MY_FLOAT freq_rand[MAX_FREQS];
00113 <span class="keywordtype">int</span> freqalloc[MAX_FREQS];
00114 MY_FLOAT soundDecay;
00115 MY_FLOAT systemDecay;
00116 MY_FLOAT nObjects;
00117 MY_FLOAT collLikely;
00118 MY_FLOAT totalEnergy;
00119 MY_FLOAT ratchet,ratchetDelta;
00120 MY_FLOAT finalZ[3];
00121 MY_FLOAT finalZCoeffs[3];
00122 MY_FLOAT defObjs[NUM_INSTR];
00123 MY_FLOAT defDecays[NUM_INSTR];
00124 MY_FLOAT decayScale[NUM_INSTR];
00125
00126 };
00127
00128 <span class="preprocessor">#endif</span>
00095 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classShakers.html#a4">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00096
00098 <span class="keywordtype">void</span> <a class="code" href="classShakers.html#a7">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00099
00100 <span class="keyword">protected</span>:
00101
00102 <span class="keywordtype">int</span> setupName(<span class="keywordtype">char</span>* instr);
00103 <span class="keywordtype">int</span> setupNum(<span class="keywordtype">int</span> inst);
00104 <span class="keywordtype">int</span> setFreqAndReson(<span class="keywordtype">int</span> which, StkFloat freq, StkFloat reson);
00105 <span class="keywordtype">void</span> setDecays(StkFloat sndDecay, StkFloat sysDecay);
00106 <span class="keywordtype">void</span> setFinalZs(StkFloat z0, StkFloat z1, StkFloat z2);
00107 StkFloat wuter_tick();
00108 StkFloat tbamb_tick();
00109 StkFloat ratchet_tick();
00110
00111 <span class="keywordtype">int</span> instType_;
00112 <span class="keywordtype">int</span> ratchetPos_, lastRatchetPos_;
00113 StkFloat shakeEnergy_;
00114 StkFloat inputs_[MAX_FREQS];
00115 StkFloat outputs_[MAX_FREQS][2];
00116 StkFloat coeffs_[MAX_FREQS][2];
00117 StkFloat sndLevel_;
00118 StkFloat baseGain_;
00119 StkFloat gains_[MAX_FREQS];
00120 <span class="keywordtype">int</span> nFreqs_;
00121 StkFloat t_center_freqs_[MAX_FREQS];
00122 StkFloat center_freqs_[MAX_FREQS];
00123 StkFloat resons_[MAX_FREQS];
00124 StkFloat freq_rand_[MAX_FREQS];
00125 <span class="keywordtype">int</span> freqalloc_[MAX_FREQS];
00126 StkFloat soundDecay_;
00127 StkFloat systemDecay_;
00128 StkFloat nObjects_;
00129 StkFloat totalEnergy_;
00130 StkFloat ratchet_, ratchetDelta_;
00131 StkFloat finalZ_[3];
00132 StkFloat finalZCoeffs_[3];
00133 StkFloat defObjs_[NUM_INSTR];
00134 StkFloat defDecays_[NUM_INSTR];
00135 StkFloat decayScale_[NUM_INSTR];
00136
00137 };
00138
00139 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>Simple.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00018 <span class="comment">/***************************************************/</span>
00019
00020 <span class="preprocessor">#if !defined(__SIMPLE_H)</span>
00021 <span class="preprocessor"></span><span class="preprocessor">#define __SIMPLE_H</span>
00020 <span class="preprocessor">#ifndef STK_SIMPLE_H</span>
00021 <span class="preprocessor"></span><span class="preprocessor">#define STK_SIMPLE_H</span>
00022 <span class="preprocessor"></span>
00023 <span class="preprocessor">#include "Instrmnt.h"</span>
00024 <span class="preprocessor">#include "ADSR.h"</span>
@@ -25,42 +25,48 @@
<a name="l00030"></a><a class="code" href="classSimple.html">00030</a> <span class="keyword">class </span><a class="code" href="classSimple.html">Simple</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
00031 {
00032 <span class="keyword">public</span>:
00034 <a class="code" href="classSimple.html#a0">Simple</a>();
00035
00037 <span class="keyword">virtual</span> <a class="code" href="classSimple.html#a1">~Simple</a>();
00034
00037 <a class="code" href="classSimple.html#a0">Simple</a>();
00038
00040 <span class="keywordtype">void</span> <a class="code" href="classSimple.html#a2">clear</a>();
00040 <a class="code" href="classSimple.html#a1">~Simple</a>();
00041
00043 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSimple.html#a3">setFrequency</a>(MY_FLOAT frequency);
00043 <span class="keywordtype">void</span> <a class="code" href="classSimple.html#a2">clear</a>();
00044
00046 <span class="keywordtype">void</span> <a class="code" href="classSimple.html#a4">keyOn</a>();
00046 <span class="keywordtype">void</span> <a class="code" href="classSimple.html#a3">setFrequency</a>(StkFloat frequency);
00047
00049 <span class="keywordtype">void</span> <a class="code" href="classSimple.html#a5">keyOff</a>();
00049 <span class="keywordtype">void</span> <a class="code" href="classSimple.html#a4">keyOn</a>();
00050
00052 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSimple.html#a6">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00052 <span class="keywordtype">void</span> <a class="code" href="classSimple.html#a5">keyOff</a>();
00053
00055 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSimple.html#a7">noteOff</a>(MY_FLOAT amplitude);
00055 <span class="keywordtype">void</span> <a class="code" href="classSimple.html#a6">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00056
00058 <span class="keyword">virtual</span> MY_FLOAT <a class="code" href="classSimple.html#a8">tick</a>();
00058 <span class="keywordtype">void</span> <a class="code" href="classSimple.html#a7">noteOff</a>(StkFloat amplitude);
00059
00061 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSimple.html#a9">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00061 StkFloat <a class="code" href="classSimple.html#a8">tick</a>();
00062
00063 <span class="keyword">protected</span>:
00064 <a class="code" href="classADSR.html">ADSR</a> *adsr;
00065 <a class="code" href="classWaveLoop.html">WaveLoop</a> *loop;
00066 <a class="code" href="classOnePole.html">OnePole</a> *filter;
00067 <a class="code" href="classBiQuad.html">BiQuad</a> *biquad;
00068 <a class="code" href="classNoise.html">Noise</a> *noise;
00069 MY_FLOAT baseFrequency;
00070 MY_FLOAT loopGain;
00071
00072 };
00073
00074 <span class="preprocessor">#endif</span>
00064 StkFloat *<a class="code" href="classSimple.html#a8">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00065
00067
00073 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classSimple.html#a8">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00074
00076 <span class="keywordtype">void</span> <a class="code" href="classSimple.html#a11">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00077
00078 <span class="keyword">protected</span>:
00079 <a class="code" href="classADSR.html">ADSR</a> adsr_;
00080 <a class="code" href="classWaveLoop.html">WaveLoop</a> *loop_;
00081 <a class="code" href="classOnePole.html">OnePole</a> filter_;
00082 <a class="code" href="classBiQuad.html">BiQuad</a> biquad_;
00083 <a class="code" href="classNoise.html">Noise</a> noise_;
00084 StkFloat baseFrequency_;
00085 StkFloat loopGain_;
00086
00087 };
00088
00089 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,18 +12,18 @@
<h1>SingWave.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00014 <span class="comment">/***************************************************/</span>
00015
00016 <span class="preprocessor">#if !defined(__SINGWAVE_H)</span>
00017 <span class="preprocessor"></span><span class="preprocessor">#define __SINGWAVE_H</span>
00016 <span class="preprocessor">#ifndef STK_SINGWAVE_H</span>
00017 <span class="preprocessor"></span><span class="preprocessor">#define STK_SINGWAVE_H</span>
00018 <span class="preprocessor"></span>
00019 <span class="preprocessor">#include "WaveLoop.h"</span>
00020 <span class="preprocessor">#include "Modulate.h"</span>
00021 <span class="preprocessor">#include "Envelope.h"</span>
00022
<a name="l00023"></a><a class="code" href="classSingWave.html">00023</a> <span class="keyword">class </span><a class="code" href="classSingWave.html">SingWave</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
<a name="l00023"></a><a class="code" href="classSingWave.html">00023</a> <span class="keyword">class </span><a class="code" href="classSingWave.html">SingWave</a> : <span class="keyword">public</span> <a class="code" href="classGenerator.html">Generator</a>
00024 {
00025 <span class="keyword">public</span>:
00027
00031 <a class="code" href="classSingWave.html#a0">SingWave</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fileName, <span class="keywordtype">bool</span> raw=FALSE);
00031 <a class="code" href="classSingWave.html#a0">SingWave</a>( std::string fileName, <span class="keywordtype">bool</span> raw=<span class="keyword">false</span>);
00032
00034 <a class="code" href="classSingWave.html#a1">~SingWave</a>();
00035
@@ -31,47 +31,49 @@
00038
00040 <span class="keywordtype">void</span> <a class="code" href="classSingWave.html#a3">normalize</a>();
00041
00043 <span class="keywordtype">void</span> <a class="code" href="classSingWave.html#a3">normalize</a>(MY_FLOAT peak);
00043 <span class="keywordtype">void</span> <a class="code" href="classSingWave.html#a3">normalize</a>(StkFloat peak);
00044
00046 <span class="keywordtype">void</span> <a class="code" href="classSingWave.html#a5">setFrequency</a>(MY_FLOAT frequency);
00046 <span class="keywordtype">void</span> <a class="code" href="classSingWave.html#a5">setFrequency</a>(StkFloat frequency);
00047
00049 <span class="keywordtype">void</span> <a class="code" href="classSingWave.html#a6">setVibratoRate</a>(MY_FLOAT aRate);
00049 <span class="keywordtype">void</span> <a class="code" href="classSingWave.html#a6">setVibratoRate</a>(StkFloat rate);
00050
00052 <span class="keywordtype">void</span> <a class="code" href="classSingWave.html#a7">setVibratoGain</a>(MY_FLOAT gain);
00052 <span class="keywordtype">void</span> <a class="code" href="classSingWave.html#a7">setVibratoGain</a>(StkFloat gain);
00053
00055 <span class="keywordtype">void</span> <a class="code" href="classSingWave.html#a8">setRandomGain</a>(MY_FLOAT gain);
00055 <span class="keywordtype">void</span> <a class="code" href="classSingWave.html#a8">setRandomGain</a>(StkFloat gain);
00056
00058 <span class="keywordtype">void</span> <a class="code" href="classSingWave.html#a9">setSweepRate</a>(MY_FLOAT aRate);
00058 <span class="keywordtype">void</span> <a class="code" href="classSingWave.html#a9">setSweepRate</a>(StkFloat rate);
00059
00061 <span class="keywordtype">void</span> <a class="code" href="classSingWave.html#a10">setGainRate</a>(MY_FLOAT aRate);
00061 <span class="keywordtype">void</span> <a class="code" href="classSingWave.html#a10">setGainRate</a>(StkFloat rate);
00062
00064 <span class="keywordtype">void</span> <a class="code" href="classSingWave.html#a11">setGainTarget</a>(MY_FLOAT target);
00064 <span class="keywordtype">void</span> <a class="code" href="classSingWave.html#a11">setGainTarget</a>(StkFloat target);
00065
00067 <span class="keywordtype">void</span> <a class="code" href="classSingWave.html#a12">noteOn</a>();
00068
00070 <span class="keywordtype">void</span> <a class="code" href="classSingWave.html#a13">noteOff</a>();
00071
00073 MY_FLOAT <a class="code" href="classSingWave.html#a14">lastOut</a>();
00073 StkFloat <a class="code" href="classSingWave.html#a14">tick</a>();
00074
00076 MY_FLOAT <a class="code" href="classSingWave.html#a15">tick</a>();
00076 StkFloat *<a class="code" href="classSingWave.html#a14">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00077
00078 <span class="keyword">protected</span>:
00079
00080 <a class="code" href="classWaveLoop.html">WaveLoop</a> *wave;
00081 <a class="code" href="classModulate.html">Modulate</a> *modulator;
00082 <a class="code" href="classEnvelope.html">Envelope</a> *envelope;
00083 <a class="code" href="classEnvelope.html">Envelope</a> *pitchEnvelope;
00084 MY_FLOAT rate;
00085 MY_FLOAT sweepRate;
00086 MY_FLOAT lastOutput;
00087
00088 };
00089
00090 <span class="preprocessor">#endif</span>
00085 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classSingWave.html#a14">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00086
00087 <span class="keyword">protected</span>:
00088
00089 <a class="code" href="classWaveLoop.html">WaveLoop</a> *wave_;
00090 <a class="code" href="classModulate.html">Modulate</a> *modulator_;
00091 <a class="code" href="classEnvelope.html">Envelope</a> envelope_;
00092 <a class="code" href="classEnvelope.html">Envelope</a> pitchEnvelope_;
00093 StkFloat rate_;
00094 StkFloat sweepRate_;
00095
00096 };
00097
00098 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>Sitar.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00018 <span class="comment">/***************************************************/</span>
00019
00020 <span class="preprocessor">#if !defined(__SITAR_H)</span>
00021 <span class="preprocessor"></span><span class="preprocessor">#define __SITAR_H</span>
00020 <span class="preprocessor">#ifndef STK_SITAR_H</span>
00021 <span class="preprocessor"></span><span class="preprocessor">#define STK_SITAR_H</span>
00022 <span class="preprocessor"></span>
00023 <span class="preprocessor">#include "Instrmnt.h"</span>
00024 <span class="preprocessor">#include "DelayA.h"</span>
@@ -24,41 +24,46 @@
<a name="l00029"></a><a class="code" href="classSitar.html">00029</a> <span class="keyword">class </span><a class="code" href="classSitar.html">Sitar</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
00030 {
00031 <span class="keyword">public</span>:
00033 <a class="code" href="classSitar.html#a0">Sitar</a>(MY_FLOAT lowestFrequency);
00033 <a class="code" href="classSitar.html#a0">Sitar</a>( StkFloat lowestFrequency = 20 );
00034
00036 <a class="code" href="classSitar.html#a1">~Sitar</a>();
00037
00039 <span class="keywordtype">void</span> <a class="code" href="classSitar.html#a2">clear</a>();
00040
00042 <span class="keywordtype">void</span> <a class="code" href="classSitar.html#a3">setFrequency</a>(MY_FLOAT frequency);
00042 <span class="keywordtype">void</span> <a class="code" href="classSitar.html#a3">setFrequency</a>(StkFloat frequency);
00043
00045 <span class="keywordtype">void</span> <a class="code" href="classSitar.html#a4">pluck</a>(MY_FLOAT amplitude);
00045 <span class="keywordtype">void</span> <a class="code" href="classSitar.html#a4">pluck</a>(StkFloat amplitude);
00046
00048 <span class="keywordtype">void</span> <a class="code" href="classSitar.html#a5">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00048 <span class="keywordtype">void</span> <a class="code" href="classSitar.html#a5">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00049
00051 <span class="keywordtype">void</span> <a class="code" href="classSitar.html#a6">noteOff</a>(MY_FLOAT amplitude);
00051 <span class="keywordtype">void</span> <a class="code" href="classSitar.html#a6">noteOff</a>(StkFloat amplitude);
00052
00054 MY_FLOAT <a class="code" href="classSitar.html#a7">tick</a>();
00054 StkFloat <a class="code" href="classSitar.html#a7">tick</a>();
00055
00056 <span class="keyword">protected</span>:
00057 <a class="code" href="classDelayA.html">DelayA</a> *delayLine;
00058 <a class="code" href="classOneZero.html">OneZero</a> *loopFilter;
00059 <a class="code" href="classNoise.html">Noise</a> *noise;
00060 <a class="code" href="classADSR.html">ADSR</a> *envelope;
00061 <span class="keywordtype">long</span> length;
00062 MY_FLOAT loopGain;
00063 MY_FLOAT amGain;
00064 MY_FLOAT delay;
00065 MY_FLOAT targetDelay;
00066
00067 };
00068
00069 <span class="preprocessor">#endif</span>
00070 <span class="preprocessor"></span>
00057 StkFloat *<a class="code" href="classSitar.html#a7">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00058
00060
00066 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classSitar.html#a7">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00067
00068 <span class="keyword">protected</span>:
00069 <a class="code" href="classDelayA.html">DelayA</a> delayLine_;
00070 <a class="code" href="classOneZero.html">OneZero</a> loopFilter_;
00071 <a class="code" href="classNoise.html">Noise</a> noise_;
00072 <a class="code" href="classADSR.html">ADSR</a> envelope_;
00073
00074 StkFloat loopGain_;
00075 StkFloat amGain_;
00076 StkFloat delay_;
00077 StkFloat targetDelay_;
00078
00079 };
00080
00081 <span class="preprocessor">#endif</span>
00082 <span class="preprocessor"></span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -0,0 +1,93 @@
<HTML>
<HEAD>
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"> &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="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>Skini.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00026 <span class="comment">/***************************************************/</span>
00027
00028 <span class="preprocessor">#ifndef STK_SKINI_H</span>
00029 <span class="preprocessor"></span><span class="preprocessor">#define STK_SKINI_H</span>
00030 <span class="preprocessor"></span>
00031 <span class="preprocessor">#include "Stk.h"</span>
00032 <span class="preprocessor">#include &lt;vector&gt;</span>
00033 <span class="preprocessor">#include &lt;string&gt;</span>
00034 <span class="preprocessor">#include &lt;fstream&gt;</span>
00035
<a name="l00036"></a><a class="code" href="classSkini.html">00036</a> <span class="keyword">class </span><a class="code" href="classSkini.html">Skini</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00037 {
00038 <span class="keyword">public</span>:
00039
<a name="l00041"></a><a class="code" href="structSkini_1_1Message.html">00041</a> <span class="keyword">struct </span><a class="code" href="structSkini_1_1Message.html">Message</a> {
<a name="l00042"></a><a class="code" href="structSkini_1_1Message.html#o0">00042</a> <span class="keywordtype">long</span> <a class="code" href="structSkini_1_1Message.html#o0">type</a>;
<a name="l00043"></a><a class="code" href="structSkini_1_1Message.html#o1">00043</a> <span class="keywordtype">long</span> <a class="code" href="structSkini_1_1Message.html#o1">channel</a>;
<a name="l00044"></a><a class="code" href="structSkini_1_1Message.html#o2">00044</a> StkFloat <a class="code" href="structSkini_1_1Message.html#o2">time</a>;
<a name="l00045"></a><a class="code" href="structSkini_1_1Message.html#o3">00045</a> std::vector&lt;StkFloat&gt; <a class="code" href="structSkini_1_1Message.html#o3">floatValues</a>;
<a name="l00046"></a><a class="code" href="structSkini_1_1Message.html#o4">00046</a> std::vector&lt;long&gt; <a class="code" href="structSkini_1_1Message.html#o4">intValues</a>;
<a name="l00047"></a><a class="code" href="structSkini_1_1Message.html#o5">00047</a> std::string <a class="code" href="structSkini_1_1Message.html#o5">remainder</a>;
00049 <span class="comment">// Default constructor.</span>
00050 <a class="code" href="structSkini_1_1Message.html">Message</a>()
00051 :<a class="code" href="structSkini_1_1Message.html#o0">type</a>(0), <a class="code" href="structSkini_1_1Message.html#o1">channel</a>(0), <a class="code" href="structSkini_1_1Message.html#o2">time</a>(0.0), <a class="code" href="structSkini_1_1Message.html#o3">floatValues</a>(2), <a class="code" href="structSkini_1_1Message.html#o4">intValues</a>(2) {}
00052 };
00053
00055 <a class="code" href="classSkini.html#a0">Skini</a>();
00056
00058 <a class="code" href="classSkini.html#a1">~Skini</a>();
00059
00061
00065 <span class="keywordtype">bool</span> <a class="code" href="classSkini.html#a2">setFile</a>( std::string fileName );
00066
00068
00074 <span class="keywordtype">long</span> <a class="code" href="classSkini.html#a3">nextMessage</a>( <a class="code" href="structSkini_1_1Message.html">Skini::Message</a>&amp; message );
00075
00077
00081 <span class="keywordtype">long</span> <a class="code" href="classSkini.html#a4">parseString</a>( std::string&amp; line, <a class="code" href="structSkini_1_1Message.html">Skini::Message</a>&amp; message );
00082
00084 <span class="keyword">static</span> std::string <a class="code" href="classSkini.html#e0">whatsThisType</a>(<span class="keywordtype">long</span> type);
00085
00087 <span class="keyword">static</span> std::string <a class="code" href="classSkini.html#e1">whatsThisController</a>(<span class="keywordtype">long</span> number);
00088
00089 <span class="keyword">protected</span>:
00090
00091 <span class="keywordtype">void</span> tokenize( <span class="keyword">const</span> std::string&amp; str, std::vector&lt;std::string&gt;&amp; tokens, <span class="keyword">const</span> std::string&amp; delimiters );
00092
00093 std::ifstream file_;
00094 };
00095
00096 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">double</span> Midi2Pitch[129] = {
00097 8.18,8.66,9.18,9.72,10.30,10.91,11.56,12.25,
00098 12.98,13.75,14.57,15.43,16.35,17.32,18.35,19.45,
00099 20.60,21.83,23.12,24.50,25.96,27.50,29.14,30.87,
00100 32.70,34.65,36.71,38.89,41.20,43.65,46.25,49.00,
00101 51.91,55.00,58.27,61.74,65.41,69.30,73.42,77.78,
00102 82.41,87.31,92.50,98.00,103.83,110.00,116.54,123.47,
00103 130.81,138.59,146.83,155.56,164.81,174.61,185.00,196.00,
00104 207.65,220.00,233.08,246.94,261.63,277.18,293.66,311.13,
00105 329.63,349.23,369.99,392.00,415.30,440.00,466.16,493.88,
00106 523.25,554.37,587.33,622.25,659.26,698.46,739.99,783.99,
00107 830.61,880.00,932.33,987.77,1046.50,1108.73,1174.66,1244.51,
00108 1318.51,1396.91,1479.98,1567.98,1661.22,1760.00,1864.66,1975.53,
00109 2093.00,2217.46,2349.32,2489.02,2637.02,2793.83,2959.96,3135.96,
00110 3322.44,3520.00,3729.31,3951.07,4186.01,4434.92,4698.64,4978.03,
00111 5274.04,5587.65,5919.91,6271.93,6644.88,7040.00,7458.62,7902.13,
00112 8372.02,8869.84,9397.27,9956.06,10548.08,11175.30,11839.82,12543.85,
00113 13289.75};
00114
00115 <span class="preprocessor">#endif</span>
00116 <span class="preprocessor"></span>
00117
</pre></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-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>
</HTML>

View File

@@ -12,8 +12,8 @@
<h1>Socket.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00019 <span class="comment">/***************************************************/</span>
00020
00021 <span class="preprocessor">#if !defined(__SOCKET_H)</span>
00022 <span class="preprocessor"></span><span class="preprocessor">#define __SOCKET_H</span>
00021 <span class="preprocessor">#ifndef STK_SOCKET_H</span>
00022 <span class="preprocessor"></span><span class="preprocessor">#define STK_SOCKET_H</span>
00023 <span class="preprocessor"></span>
00024 <span class="preprocessor">#include "Stk.h"</span>
00025
@@ -33,7 +33,7 @@
00054
00056 <span class="keywordtype">void</span> <a class="code" href="classSocket.html#a4">close</a>( <span class="keywordtype">void</span> );
00057
00059 <span class="keywordtype">int</span> <a class="code" href="classSocket.html#a5">socket</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
00059 <span class="keywordtype">int</span> <a class="code" href="classSocket.html#a5">id</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
00060
00062 <span class="keywordtype">int</span> <a class="code" href="classSocket.html#a6">port</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
00063
@@ -56,18 +56,17 @@
00093
00094 <span class="keyword">protected</span>:
00095
00096 <span class="keywordtype">char</span> msg[256];
00097 <span class="keywordtype">int</span> soket;
00098 <span class="keywordtype">int</span> poort;
00099 <span class="keywordtype">bool</span> server;
00100
00101 };
00102
00103 <span class="preprocessor">#endif // defined(__SOCKET_H)</span>
00096 <span class="keywordtype">int</span> soket_;
00097 <span class="keywordtype">int</span> port_;
00098 <span class="keywordtype">bool</span> server_;
00099
00100 };
00101
00102 <span class="preprocessor">#endif // defined(STK_SOCKET_H)</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,55 +12,56 @@
<h1>Sphere.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00010 <span class="comment">/***************************************************/</span>
00011
00012 <span class="preprocessor">#if !defined(__SPHERE_H)</span>
00013 <span class="preprocessor"></span><span class="preprocessor">#define __SPHERE_H</span>
00012 <span class="preprocessor">#ifndef STK_SPHERE_H</span>
00013 <span class="preprocessor"></span><span class="preprocessor">#define STK_SPHERE_H</span>
00014 <span class="preprocessor"></span>
00015 <span class="preprocessor">#include "Vector3D.h"</span>
00016
<a name="l00017"></a><a class="code" href="classSphere.html">00017</a> <span class="keyword">class </span><a class="code" href="classSphere.html">Sphere</a>
00018 {
00019 <span class="keyword">public</span>:
00021 <a class="code" href="classSphere.html#a0">Sphere</a>(<span class="keywordtype">double</span> initRadius);
00022
00024 <a class="code" href="classSphere.html#a1">~Sphere</a>();
00025
00027 <span class="keywordtype">void</span> <a class="code" href="classSphere.html#a2">setPosition</a>(<span class="keywordtype">double</span> anX, <span class="keywordtype">double</span> aY, <span class="keywordtype">double</span> aZ);
00028
00030 <span class="keywordtype">void</span> <a class="code" href="classSphere.html#a3">setVelocity</a>(<span class="keywordtype">double</span> anX, <span class="keywordtype">double</span> aY, <span class="keywordtype">double</span> aZ);
00031
00033 <span class="keywordtype">void</span> <a class="code" href="classSphere.html#a4">setRadius</a>(<span class="keywordtype">double</span> aRadius);
00034
00036 <span class="keywordtype">void</span> <a class="code" href="classSphere.html#a5">setMass</a>(<span class="keywordtype">double</span> aMass);
00037
00039 <a class="code" href="classVector3D.html">Vector3D</a>* <a class="code" href="classSphere.html#a6">getPosition</a>();
00040
00042 <a class="code" href="classVector3D.html">Vector3D</a>* <a class="code" href="classSphere.html#a7">getRelativePosition</a>(<a class="code" href="classVector3D.html">Vector3D</a> *aPosition);
00043
00045 <span class="keywordtype">double</span> <a class="code" href="classSphere.html#a8">getVelocity</a>(<a class="code" href="classVector3D.html">Vector3D</a>* aVelocity);
00046
00048 <span class="keywordtype">double</span> <a class="code" href="classSphere.html#a9">isInside</a>(<a class="code" href="classVector3D.html">Vector3D</a> *aPosition);
00049
00051 <span class="keywordtype">double</span> <a class="code" href="classSphere.html#a10">getRadius</a>();
00052
00054 <span class="keywordtype">double</span> <a class="code" href="classSphere.html#a11">getMass</a>();
00055
00057 <span class="keywordtype">void</span> <a class="code" href="classSphere.html#a12">addVelocity</a>(<span class="keywordtype">double</span> anX, <span class="keywordtype">double</span> aY, <span class="keywordtype">double</span> aZ);
00058
00060 <span class="keywordtype">void</span> <a class="code" href="classSphere.html#a13">tick</a>(<span class="keywordtype">double</span> timeIncrement);
00061
00062 <span class="keyword">private</span>:
00063 <a class="code" href="classVector3D.html">Vector3D</a> *myPosition;
00064 <a class="code" href="classVector3D.html">Vector3D</a> *myVelocity;
00065 <a class="code" href="classVector3D.html">Vector3D</a> workingVector;
00066 <span class="keywordtype">double</span> myRadius;
00067 <span class="keywordtype">double</span> myMass;
00068 };
00069
00070 <span class="preprocessor">#endif</span>
00015 <span class="preprocessor">#include "Stk.h"</span>
00016 <span class="preprocessor">#include "Vector3D.h"</span>
00017
<a name="l00018"></a><a class="code" href="classSphere.html">00018</a> <span class="keyword">class </span><a class="code" href="classSphere.html">Sphere</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00019 {
00020 <span class="keyword">public</span>:
00022 <a class="code" href="classSphere.html#a0">Sphere</a>(StkFloat radius = 1.0 );
00023
00025 <a class="code" href="classSphere.html#a1">~Sphere</a>();
00026
00028 <span class="keywordtype">void</span> <a class="code" href="classSphere.html#a2">setPosition</a>(StkFloat x, StkFloat y, StkFloat z);
00029
00031 <span class="keywordtype">void</span> <a class="code" href="classSphere.html#a3">setVelocity</a>(StkFloat x, StkFloat y, StkFloat z);
00032
00034 <span class="keywordtype">void</span> <a class="code" href="classSphere.html#a4">setRadius</a>(StkFloat radius);
00035
00037 <span class="keywordtype">void</span> <a class="code" href="classSphere.html#a5">setMass</a>(StkFloat mass);
00038
00040 <a class="code" href="classVector3D.html">Vector3D</a>* <a class="code" href="classSphere.html#a6">getPosition</a>();
00041
00043 <a class="code" href="classVector3D.html">Vector3D</a>* <a class="code" href="classSphere.html#a7">getRelativePosition</a>(<a class="code" href="classVector3D.html">Vector3D</a> *position);
00044
00046 StkFloat <a class="code" href="classSphere.html#a8">getVelocity</a>(<a class="code" href="classVector3D.html">Vector3D</a>* velocity);
00047
00049 StkFloat <a class="code" href="classSphere.html#a9">isInside</a>(<a class="code" href="classVector3D.html">Vector3D</a> *position);
00050
00052 StkFloat <a class="code" href="classSphere.html#a10">getRadius</a>();
00053
00055 StkFloat <a class="code" href="classSphere.html#a11">getMass</a>();
00056
00058 <span class="keywordtype">void</span> <a class="code" href="classSphere.html#a12">addVelocity</a>(StkFloat x, StkFloat y, StkFloat z);
00059
00061 <span class="keywordtype">void</span> <a class="code" href="classSphere.html#a13">tick</a>(StkFloat timeIncrement);
00062
00063 <span class="keyword">private</span>:
00064 <a class="code" href="classVector3D.html">Vector3D</a> position_;
00065 <a class="code" href="classVector3D.html">Vector3D</a> velocity_;
00066 <a class="code" href="classVector3D.html">Vector3D</a> workingVector_;
00067 StkFloat radius_;
00068 StkFloat mass_;
00069 };
00070
00071 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>StifKarp.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00022 <span class="comment">/***************************************************/</span>
00023
00024 <span class="preprocessor">#if !defined(__StifKarp_h)</span>
00025 <span class="preprocessor"></span><span class="preprocessor">#define __StifKarp_h</span>
00024 <span class="preprocessor">#ifndef STK_STIFKARP_H</span>
00025 <span class="preprocessor"></span><span class="preprocessor">#define STK_STIFKARP_H</span>
00026 <span class="preprocessor"></span>
00027 <span class="preprocessor">#include "Instrmnt.h"</span>
00028 <span class="preprocessor">#include "DelayL.h"</span>
@@ -25,53 +25,59 @@
<a name="l00034"></a><a class="code" href="classStifKarp.html">00034</a> <span class="keyword">class </span><a class="code" href="classStifKarp.html">StifKarp</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
00035 {
00036 <span class="keyword">public</span>:
00038 <a class="code" href="classStifKarp.html#a0">StifKarp</a>(MY_FLOAT lowestFrequency);
00038 <a class="code" href="classStifKarp.html#a0">StifKarp</a>(StkFloat lowestFrequency);
00039
00041 <a class="code" href="classStifKarp.html#a1">~StifKarp</a>();
00042
00044 <span class="keywordtype">void</span> <a class="code" href="classStifKarp.html#a2">clear</a>();
00045
00047 <span class="keywordtype">void</span> <a class="code" href="classStifKarp.html#a3">setFrequency</a>(MY_FLOAT frequency);
00047 <span class="keywordtype">void</span> <a class="code" href="classStifKarp.html#a3">setFrequency</a>(StkFloat frequency);
00048
00050 <span class="keywordtype">void</span> <a class="code" href="classStifKarp.html#a4">setStretch</a>(MY_FLOAT stretch);
00050 <span class="keywordtype">void</span> <a class="code" href="classStifKarp.html#a4">setStretch</a>(StkFloat stretch);
00051
00053 <span class="keywordtype">void</span> <a class="code" href="classStifKarp.html#a5">setPickupPosition</a>(MY_FLOAT position);
00053 <span class="keywordtype">void</span> <a class="code" href="classStifKarp.html#a5">setPickupPosition</a>(StkFloat position);
00054
00056
00061 <span class="keywordtype">void</span> <a class="code" href="classStifKarp.html#a6">setBaseLoopGain</a>(MY_FLOAT aGain);
00061 <span class="keywordtype">void</span> <a class="code" href="classStifKarp.html#a6">setBaseLoopGain</a>(StkFloat aGain);
00062
00064 <span class="keywordtype">void</span> <a class="code" href="classStifKarp.html#a7">pluck</a>(MY_FLOAT amplitude);
00064 <span class="keywordtype">void</span> <a class="code" href="classStifKarp.html#a7">pluck</a>(StkFloat amplitude);
00065
00067 <span class="keywordtype">void</span> <a class="code" href="classStifKarp.html#a8">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00067 <span class="keywordtype">void</span> <a class="code" href="classStifKarp.html#a8">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00068
00070 <span class="keywordtype">void</span> <a class="code" href="classStifKarp.html#a9">noteOff</a>(MY_FLOAT amplitude);
00070 <span class="keywordtype">void</span> <a class="code" href="classStifKarp.html#a9">noteOff</a>(StkFloat amplitude);
00071
00073 MY_FLOAT <a class="code" href="classStifKarp.html#a10">tick</a>();
00073 StkFloat <a class="code" href="classStifKarp.html#a10">tick</a>();
00074
00076 <span class="keywordtype">void</span> <a class="code" href="classStifKarp.html#a11">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00076 StkFloat *<a class="code" href="classStifKarp.html#a10">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00077
00078 <span class="keyword">protected</span>:
00079 <a class="code" href="classDelayA.html">DelayA</a> *delayLine;
00080 <a class="code" href="classDelayL.html">DelayL</a> *combDelay;
00081 <a class="code" href="classOneZero.html">OneZero</a> *filter;
00082 <a class="code" href="classNoise.html">Noise</a> *noise;
00083 <a class="code" href="classBiQuad.html">BiQuad</a> *biQuad[4];
00084 <span class="keywordtype">long</span> length;
00085 MY_FLOAT loopGain;
00086 MY_FLOAT baseLoopGain;
00087 MY_FLOAT lastFrequency;
00088 MY_FLOAT lastLength;
00089 MY_FLOAT stretching;
00090 MY_FLOAT pluckAmplitude;
00091 MY_FLOAT pickupPosition;
00092
00093 };
00094
00095 <span class="preprocessor">#endif</span>
00079
00085 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classStifKarp.html#a10">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00086
00088 <span class="keywordtype">void</span> <a class="code" href="classStifKarp.html#a13">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00089
00090 <span class="keyword">protected</span>:
00091 <a class="code" href="classDelayA.html">DelayA</a> delayLine_;
00092 <a class="code" href="classDelayL.html">DelayL</a> combDelay_;
00093 <a class="code" href="classOneZero.html">OneZero</a> filter_;
00094 <a class="code" href="classNoise.html">Noise</a> noise_;
00095 <a class="code" href="classBiQuad.html">BiQuad</a> biquad_[4];
00096
00097 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> length_;
00098 StkFloat loopGain_;
00099 StkFloat baseLoopGain_;
00100 StkFloat lastFrequency_;
00101 StkFloat lastLength_;
00102 StkFloat stretching_;
00103 StkFloat pluckAmplitude_;
00104 StkFloat pickupPosition_;
00105
00106 };
00107
00108 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,163 +12,214 @@
<h1>Stk.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00013 <span class="comment">/***************************************************/</span>
00014
00015 <span class="preprocessor">#if !defined(__STK_H)</span>
00016 <span class="preprocessor"></span><span class="preprocessor">#define __STK_H</span>
00015 <span class="preprocessor">#ifndef STK_STK_H</span>
00016 <span class="preprocessor"></span><span class="preprocessor">#define STK_STK_H</span>
00017 <span class="preprocessor"></span>
00018 <span class="preprocessor">#include &lt;string&gt;</span>
00019
00020 <span class="comment">// Most data in STK is passed and calculated with the</span>
00021 <span class="comment">// following user-definable floating-point type. You</span>
00022 <span class="comment">// can change this to "float" if you prefer or perhaps</span>
00023 <span class="comment">// a "long double" in the future.</span>
00024 <span class="keyword">typedef</span> <span class="keywordtype">double</span> MY_FLOAT;
00025
00026 <span class="comment">// The "MY_FLOAT" type will be deprecated in STK</span>
00027 <span class="comment">// versions higher than 4.1.2 and replaced with the variable</span>
00028 <span class="comment">// "StkFloat".</span>
00029 <span class="comment">//typedef double StkFloat;</span>
00030 <span class="comment">//#if defined(__WINDOWS_DS__) || defined(__WINDOWS_ASIO__)</span>
00031 <span class="comment">// #pragma deprecated(MY_FLOAT)</span>
00032 <span class="comment">//#else</span>
00033 <span class="comment">// typedef StkFloat MY_FLOAT __attribute__ ((deprecated));</span>
00034 <span class="comment">//#endif</span>
00035
00037
<a name="l00042"></a><a class="code" href="classStkError.html">00042</a> <span class="keyword">class </span><a class="code" href="classStkError.html">StkError</a>
00043 {
00044 <span class="keyword">public</span>:
00045 <span class="keyword">enum</span> TYPE {
00046 WARNING,
00047 DEBUG_WARNING,
00048 FUNCTION_ARGUMENT,
00049 FILE_NOT_FOUND,
00050 FILE_UNKNOWN_FORMAT,
00051 FILE_ERROR,
00052 PROCESS_THREAD,
00053 PROCESS_SOCKET,
00054 PROCESS_SOCKET_IPADDR,
00055 AUDIO_SYSTEM,
00056 MIDI_SYSTEM,
00057 UNSPECIFIED
00058 };
00059
00060 <span class="keyword">protected</span>:
00061 <span class="keywordtype">char</span> message[256];
00062 TYPE type;
00063
00064 <span class="keyword">public</span>:
00066 <a class="code" href="classStkError.html#a0">StkError</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *p, TYPE tipe = StkError::UNSPECIFIED);
00067
00069 <span class="keyword">virtual</span> <a class="code" href="classStkError.html#a1">~StkError</a>(<span class="keywordtype">void</span>);
00019 <span class="preprocessor">#include &lt;iostream&gt;</span>
00020 <span class="preprocessor">#include &lt;sstream&gt;</span>
00021 <span class="preprocessor">#include &lt;valarray&gt;</span>
00022
00023 <span class="comment">// Most data in STK is passed and calculated with the</span>
00024 <span class="comment">// following user-definable floating-point type. You</span>
00025 <span class="comment">// can change this to "float" if you prefer or perhaps</span>
00026 <span class="comment">// a "long double" in the future.</span>
00027 <span class="keyword">typedef</span> <span class="keywordtype">double</span> StkFloat;
00028
00029 <span class="comment">// The "MY_FLOAT" type was deprecated in STK</span>
00030 <span class="comment">// versions higher than 4.1.3 and replaced with the variable</span>
00031 <span class="comment">// "StkFloat". </span>
00032 <span class="preprocessor">#if defined(__WINDOWS_DS__) || defined(__WINDOWS_ASIO__)</span>
00033 <span class="preprocessor"></span> <span class="keyword">typedef</span> StkFloat MY_FLOAT;
00034 <span class="preprocessor"> #pragma deprecated(MY_FLOAT)</span>
00035 <span class="preprocessor"></span><span class="preprocessor">#elif defined(__GXX__) </span>
00036 <span class="preprocessor"></span> <span class="keyword">typedef</span> StkFloat MY_FLOAT __attribute__ ((deprecated));
00037 <span class="preprocessor">#else</span>
00038 <span class="preprocessor"></span> <span class="keyword">typedef</span> StkFloat MY_FLOAT; <span class="comment">// temporary</span>
00039 <span class="preprocessor">#endif</span>
00040 <span class="preprocessor"></span>
00041
00043
<a name="l00048"></a><a class="code" href="classStkError.html">00048</a> <span class="keyword">class </span><a class="code" href="classStkError.html">StkError</a>
00049 {
00050 <span class="keyword">public</span>:
00051 <span class="keyword">enum</span> Type {
00052 STATUS,
00053 WARNING,
00054 DEBUG_WARNING,
00055 FUNCTION_ARGUMENT,
00056 FILE_NOT_FOUND,
00057 FILE_UNKNOWN_FORMAT,
00058 FILE_ERROR,
00059 PROCESS_THREAD,
00060 PROCESS_SOCKET,
00061 PROCESS_SOCKET_IPADDR,
00062 AUDIO_SYSTEM,
00063 MIDI_SYSTEM,
00064 UNSPECIFIED
00065 };
00066
00067 <span class="keyword">protected</span>:
00068 std::string message_;
00069 Type type_;
00070
00072 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classStkError.html#a2">printMessage</a>(<span class="keywordtype">void</span>);
00073
<a name="l00075"></a><a class="code" href="classStkError.html#a3">00075</a> <span class="keyword">virtual</span> <span class="keyword">const</span> TYPE&amp; <a class="code" href="classStkError.html#a3">getType</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> type; }
00076
<a name="l00078"></a><a class="code" href="classStkError.html#a4">00078</a> <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classStkError.html#a4">getMessage</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> message; }
00079 };
00071 <span class="keyword">public</span>:
<a name="l00073"></a><a class="code" href="classStkError.html#a0">00073</a> <a class="code" href="classStkError.html#a0">StkError</a>(<span class="keyword">const</span> std::string&amp; message, Type type = StkError::UNSPECIFIED) : message_(message), type_(type) {}
00074
<a name="l00076"></a><a class="code" href="classStkError.html#a1">00076</a> <span class="keyword">virtual</span> <a class="code" href="classStkError.html#a1">~StkError</a>(<span class="keywordtype">void</span>) {};
00077
<a name="l00079"></a><a class="code" href="classStkError.html#a2">00079</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classStkError.html#a2">printMessage</a>(<span class="keywordtype">void</span>) { std::cerr &lt;&lt; <span class="charliteral">'\n'</span> &lt;&lt; message_ &lt;&lt; <span class="stringliteral">"\n\n"</span>; }
00080
00081
<a name="l00082"></a><a class="code" href="classStk.html">00082</a> <span class="keyword">class </span><a class="code" href="classStk.html">Stk</a>
00083 {
00084 <span class="keyword">public</span>:
00085
00086 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> STK_FORMAT;
<a name="l00087"></a><a class="code" href="classStk.html#s0">00087</a> <span class="keyword">static</span> <span class="keyword">const</span> STK_FORMAT <a class="code" href="classStk.html#s0">STK_SINT8</a>;
<a name="l00088"></a><a class="code" href="classStk.html#s1">00088</a> <span class="keyword">static</span> <span class="keyword">const</span> STK_FORMAT <a class="code" href="classStk.html#s1">STK_SINT16</a>;
<a name="l00089"></a><a class="code" href="classStk.html#s2">00089</a> <span class="keyword">static</span> <span class="keyword">const</span> STK_FORMAT <a class="code" href="classStk.html#s2">STK_SINT32</a>;
<a name="l00090"></a><a class="code" href="classStk.html#s3">00090</a> <span class="keyword">static</span> <span class="keyword">const</span> STK_FORMAT <a class="code" href="classStk.html#s3">MY_FLOAT32</a>;
<a name="l00091"></a><a class="code" href="classStk.html#s4">00091</a> <span class="keyword">static</span> <span class="keyword">const</span> STK_FORMAT <a class="code" href="classStk.html#s4">MY_FLOAT64</a>;
00093
00094 <span class="keyword">static</span> MY_FLOAT <a class="code" href="classStk.html#e0">sampleRate</a>(<span class="keywordtype">void</span>);
<a name="l00082"></a><a class="code" href="classStkError.html#a3">00082</a> <span class="keyword">virtual</span> <span class="keyword">const</span> Type&amp; <a class="code" href="classStkError.html#a3">getType</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> type_; }
00083
<a name="l00085"></a><a class="code" href="classStkError.html#a4">00085</a> <span class="keyword">virtual</span> <span class="keyword">const</span> std::string&amp; <a class="code" href="classStkError.html#a4">getMessage</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> message_; }
00086
<a name="l00088"></a><a class="code" href="classStkError.html#a5">00088</a> <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classStkError.html#a5">getMessageCString</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> message_.c_str(); }
00089 };
00090
00091
<a name="l00092"></a><a class="code" href="classStk.html">00092</a> <span class="keyword">class </span><a class="code" href="classStk.html">Stk</a>
00093 {
00094 <span class="keyword">public</span>:
00095
00097
00105 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classStk.html#e1">setSampleRate</a>(MY_FLOAT newRate);
00096 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> StkFormat;
<a name="l00097"></a><a class="code" href="classStk.html#s0">00097</a> <span class="keyword">static</span> <span class="keyword">const</span> StkFormat <a class="code" href="classStk.html#s0">STK_SINT8</a>;
<a name="l00098"></a><a class="code" href="classStk.html#s1">00098</a> <span class="keyword">static</span> <span class="keyword">const</span> StkFormat <a class="code" href="classStk.html#s1">STK_SINT16</a>;
<a name="l00099"></a><a class="code" href="classStk.html#s2">00099</a> <span class="keyword">static</span> <span class="keyword">const</span> StkFormat <a class="code" href="classStk.html#s2">STK_SINT24</a>;
<a name="l00100"></a><a class="code" href="classStk.html#s3">00100</a> <span class="keyword">static</span> <span class="keyword">const</span> StkFormat <a class="code" href="classStk.html#s3">STK_SINT32</a>;
<a name="l00101"></a><a class="code" href="classStk.html#s4">00101</a> <span class="keyword">static</span> <span class="keyword">const</span> StkFormat <a class="code" href="classStk.html#s4">STK_FLOAT32</a>;
<a name="l00102"></a><a class="code" href="classStk.html#s5">00102</a> <span class="keyword">static</span> <span class="keyword">const</span> StkFormat <a class="code" href="classStk.html#s5">STK_FLOAT64</a>;
00104
<a name="l00105"></a><a class="code" href="classStk.html#e0">00105</a> <span class="keyword">static</span> StkFloat <a class="code" href="classStk.html#e0">sampleRate</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> srate_; }
00106
00108 <span class="keyword">static</span> std::string <a class="code" href="classStk.html#e2">rawwavePath</a>(<span class="keywordtype">void</span>);
00109
00111 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classStk.html#e3">setRawwavePath</a>(std::string newPath);
00112
00114 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classStk.html#e4">swap16</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *ptr);
00115
00117 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classStk.html#e5">swap32</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *ptr);
00118
00120 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classStk.html#e6">swap64</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *ptr);
00121
00123 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classStk.html#e7">sleep</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> milliseconds);
00124
00125 <span class="keyword">private</span>:
00126 <span class="keyword">static</span> MY_FLOAT srate;
00127 <span class="keyword">static</span> std::string rawwavepath;
00128
00129 <span class="keyword">protected</span>:
00130
00132 <a class="code" href="classStk.html#b0">Stk</a>(<span class="keywordtype">void</span>);
00133
00135 <span class="keyword">virtual</span> <a class="code" href="classStk.html#b1">~Stk</a>(<span class="keywordtype">void</span>);
00136
00138 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classStk.html#f0">handleError</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> *message, StkError::TYPE type );
00139
00140 };
00108
<a name="l00116"></a><a class="code" href="classStk.html#e1">00116</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classStk.html#e1">setSampleRate</a>(StkFloat rate) { <span class="keywordflow">if</span> (rate &gt; 0.0) srate_ = rate; }
00117
<a name="l00119"></a><a class="code" href="classStk.html#e2">00119</a> <span class="keyword">static</span> std::string <a class="code" href="classStk.html#e2">rawwavePath</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> rawwavepath_; }
00120
00122 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classStk.html#e3">setRawwavePath</a>(std::string path);
00123
00125 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classStk.html#e4">swap16</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *ptr);
00126
00128 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classStk.html#e5">swap32</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *ptr);
00129
00131 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classStk.html#e6">swap64</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *ptr);
00132
00134 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classStk.html#e7">sleep</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> milliseconds);
00135
00137 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classStk.html#e8">handleError</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> *message, StkError::Type type );
00138
00140 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classStk.html#e8">handleError</a>( std::string message, StkError::Type type );
00141
00142 <span class="comment">// Here are a few other useful typedefs.</span>
00143 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> SINT16;
00144 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> SINT32;
00145 <span class="keyword">typedef</span> <span class="keywordtype">float</span> FLOAT32;
00146 <span class="keyword">typedef</span> <span class="keywordtype">double</span> FLOAT64;
00142 <span class="keyword">private</span>:
00143 <span class="keyword">static</span> StkFloat srate_;
00144 <span class="keyword">static</span> std::string rawwavepath_;
00145
00146 <span class="keyword">protected</span>:
00147
00148 <span class="comment">// Boolean values</span>
00149 <span class="preprocessor">#define FALSE 0</span>
00150 <span class="preprocessor"></span><span class="preprocessor">#define TRUE 1</span>
00151 <span class="preprocessor"></span>
00152 <span class="comment">// The default sampling rate.</span>
00153 <span class="preprocessor">#define SRATE (MY_FLOAT) 44100.0</span>
00154 <span class="preprocessor"></span>
00155 <span class="comment">// The default real-time audio input and output buffer size. If</span>
00156 <span class="comment">// clicks are occuring in the input and/or output sound stream, a</span>
00157 <span class="comment">// larger buffer size may help. Larger buffer sizes, however, produce</span>
00158 <span class="comment">// more latency.</span>
00159 <span class="preprocessor">#define RT_BUFFER_SIZE 512</span>
00160 <span class="preprocessor"></span>
00161 <span class="comment">// The default rawwave path value is set with the preprocessor</span>
00162 <span class="comment">// definition RAWWAVE_PATH. This can be specified as an argument to</span>
00163 <span class="comment">// the configure script, in an integrated development environment, or</span>
00164 <span class="comment">// below. The global STK rawwave path variable can be dynamically set</span>
00165 <span class="comment">// with the Stk::setRawwavePath() function. This value is</span>
00166 <span class="comment">// concatenated to the beginning of all references to rawwave files in</span>
00167 <span class="comment">// the various STK core classes (ex. Clarinet.cpp). If you wish to</span>
00168 <span class="comment">// move the rawwaves directory to a different location in your file</span>
00169 <span class="comment">// system, you will need to set this path definition appropriately.</span>
00170 <span class="preprocessor">#if !defined(RAWWAVE_PATH)</span>
00171 <span class="preprocessor"></span><span class="preprocessor"> #define RAWWAVE_PATH "../../rawwaves/"</span>
00172 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00173 <span class="preprocessor"></span>
00174 <span class="preprocessor">#define PI (MY_FLOAT) 3.14159265359</span>
00175 <span class="preprocessor"></span><span class="preprocessor">#define TWO_PI (MY_FLOAT) (MY_FLOAT) (2 * PI)</span>
00176 <span class="preprocessor"></span>
00177 <span class="preprocessor">#define ONE_OVER_128 (MY_FLOAT) 0.0078125</span>
00178 <span class="preprocessor"></span>
00179 <span class="preprocessor">#if defined(__WINDOWS_DS__) || defined(__WINDOWS_ASIO__)</span>
00180 <span class="preprocessor"></span><span class="preprocessor"> #define __OS_WINDOWS__</span>
00181 <span class="preprocessor"></span><span class="preprocessor"> #define __STK_REALTIME__</span>
00182 <span class="preprocessor"></span><span class="preprocessor">#elif defined(__LINUX_OSS__) || defined(__LINUX_ALSA__) || defined(__LINUX_JACK__)</span>
00183 <span class="preprocessor"></span><span class="preprocessor"> #define __OS_LINUX__</span>
00184 <span class="preprocessor"></span><span class="preprocessor"> #define __STK_REALTIME__</span>
00185 <span class="preprocessor"></span><span class="preprocessor">#elif defined(__IRIX_AL__)</span>
00186 <span class="preprocessor"></span><span class="preprocessor"> #define __OS_IRIX__</span>
00187 <span class="preprocessor"></span><span class="preprocessor"> #define __STK_REALTIME__</span>
00188 <span class="preprocessor"></span><span class="preprocessor">#elif defined(__MACOSX_CORE__)</span>
00189 <span class="preprocessor"></span><span class="preprocessor"> #define __OS_MACOSX__</span>
00190 <span class="preprocessor"></span><span class="preprocessor"> #define __STK_REALTIME__</span>
00191 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00192 <span class="preprocessor"></span>
00193 <span class="comment">//#define _STK_DEBUG_</span>
00194
00195 <span class="preprocessor">#endif</span>
00148 std::ostringstream errorString_;
00149
00151 <a class="code" href="classStk.html#b0">Stk</a>(<span class="keywordtype">void</span>);
00152
00154 <span class="keyword">virtual</span> <a class="code" href="classStk.html#b1">~Stk</a>(<span class="keywordtype">void</span>);
00155
00157 <span class="keywordtype">void</span> <a class="code" href="classStk.html#e8">handleError</a>( StkError::Type type );
00158 };
00159
00160
00161 <span class="comment">/***************************************************/</span>
00175 <span class="comment">/***************************************************/</span>
00176
<a name="l00177"></a><a class="code" href="classStkFrames.html">00177</a> <span class="keyword">class </span><a class="code" href="classStkFrames.html">StkFrames</a>
00178 {
00179 <span class="keyword">public</span>:
00180
00182 <a class="code" href="classStkFrames.html#a0">StkFrames</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nFrames = 0, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1, <span class="keywordtype">bool</span> <a class="code" href="classStkFrames.html#a8">interleaved</a> = <span class="keyword">true</span> );
00183
00185 <a class="code" href="classStkFrames.html#a0">StkFrames</a>( <span class="keyword">const</span> StkFloat&amp; value, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nFrames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels, <span class="keywordtype">bool</span> <a class="code" href="classStkFrames.html#a8">interleaved</a> = <span class="keyword">true</span> );
00186
00188
<a name="l00194"></a><a class="code" href="classStkFrames.html#a2">00194</a> StkFloat&amp; <a class="code" href="classStkFrames.html#a2">operator[]</a>( size_t n ) { <span class="keywordflow">return</span> data_[n]; };
00195
00197
<a name="l00201"></a><a class="code" href="classStkFrames.html#a3">00201</a> StkFloat <a class="code" href="classStkFrames.html#a2">operator[]</a>( size_t n )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data_[n]; };
00202
<a name="l00204"></a><a class="code" href="classStkFrames.html#a4">00204</a> size_t <a class="code" href="classStkFrames.html#a4">size</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> size_; };
00205
00207
00211 <span class="keywordtype">void</span> <a class="code" href="classStkFrames.html#a5">resize</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nFrames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1, StkFloat value = 0.0 );
00212
<a name="l00214"></a><a class="code" href="classStkFrames.html#a6">00214</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classStkFrames.html#a6">channels</a>( <span class="keywordtype">void</span> )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> nChannels_; };
00215
<a name="l00217"></a><a class="code" href="classStkFrames.html#a7">00217</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classStkFrames.html#a7">frames</a>( <span class="keywordtype">void</span> )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> nFrames_; };
00218
<a name="l00220"></a><a class="code" href="classStkFrames.html#a8">00220</a> <span class="keywordtype">bool</span> <a class="code" href="classStkFrames.html#a8">interleaved</a>( <span class="keywordtype">void</span> )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> interleaved_; };
00221
<a name="l00223"></a><a class="code" href="classStkFrames.html#a9">00223</a> <span class="keywordtype">void</span> <a class="code" href="classStkFrames.html#a9">setInterleaved</a>( <span class="keywordtype">bool</span> isInterleaved ) { interleaved_ = isInterleaved; };
00224
00225 <span class="keyword">private</span>:
00226 std::valarray&lt;StkFloat&gt; data_;
00227 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nFrames_;
00228 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels_;
00229 size_t size_;
00230 <span class="keywordtype">bool</span> interleaved_;
00231
00232 };
00233
00234
00235 <span class="comment">// Here are a few other useful typedefs.</span>
00236 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> SINT16;
00237 <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> SINT32;
00238 <span class="keyword">typedef</span> <span class="keywordtype">float</span> FLOAT32;
00239 <span class="keyword">typedef</span> <span class="keywordtype">double</span> FLOAT64;
00240
00241 <span class="comment">// The default sampling rate.</span>
00242 <span class="keyword">const</span> StkFloat SRATE = 44100.0;
00243
00244 <span class="comment">// The default real-time audio input and output buffer size. If</span>
00245 <span class="comment">// clicks are occuring in the input and/or output sound stream, a</span>
00246 <span class="comment">// larger buffer size may help. Larger buffer sizes, however, produce</span>
00247 <span class="comment">// more latency.</span>
00248 <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> RT_BUFFER_SIZE = 512;
00249
00250 <span class="comment">// The default rawwave path value is set with the preprocessor</span>
00251 <span class="comment">// definition RAWWAVE_PATH. This can be specified as an argument to</span>
00252 <span class="comment">// the configure script, in an integrated development environment, or</span>
00253 <span class="comment">// below. The global STK rawwave path variable can be dynamically set</span>
00254 <span class="comment">// with the Stk::setRawwavePath() function. This value is</span>
00255 <span class="comment">// concatenated to the beginning of all references to rawwave files in</span>
00256 <span class="comment">// the various STK core classes (ex. Clarinet.cpp). If you wish to</span>
00257 <span class="comment">// move the rawwaves directory to a different location in your file</span>
00258 <span class="comment">// system, you will need to set this path definition appropriately.</span>
00259 <span class="preprocessor">#if !defined(RAWWAVE_PATH)</span>
00260 <span class="preprocessor"></span><span class="preprocessor"> #define RAWWAVE_PATH "../../rawwaves/"</span>
00261 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00262 <span class="preprocessor"></span>
00263 <span class="keyword">const</span> StkFloat PI = 3.14159265359;
00264 <span class="keyword">const</span> StkFloat TWO_PI = 2 * PI;
00265 <span class="keyword">const</span> StkFloat ONE_OVER_128 = 0.0078125;
00266
00267 <span class="preprocessor">#if defined(__WINDOWS_DS__) || defined(__WINDOWS_ASIO__)</span>
00268 <span class="preprocessor"></span><span class="preprocessor"> #define __OS_WINDOWS__</span>
00269 <span class="preprocessor"></span><span class="preprocessor"> #define __STK_REALTIME__</span>
00270 <span class="preprocessor"></span><span class="preprocessor">#elif defined(__LINUX_OSS__) || defined(__LINUX_ALSA__) || defined(__LINUX_JACK__)</span>
00271 <span class="preprocessor"></span><span class="preprocessor"> #define __OS_LINUX__</span>
00272 <span class="preprocessor"></span><span class="preprocessor"> #define __STK_REALTIME__</span>
00273 <span class="preprocessor"></span><span class="preprocessor">#elif defined(__IRIX_AL__)</span>
00274 <span class="preprocessor"></span><span class="preprocessor"> #define __OS_IRIX__</span>
00275 <span class="preprocessor"></span><span class="preprocessor"> #define __STK_REALTIME__</span>
00276 <span class="preprocessor"></span><span class="preprocessor">#elif defined(__MACOSX_CORE__)</span>
00277 <span class="preprocessor"></span><span class="preprocessor"> #define __OS_MACOSX__</span>
00278 <span class="preprocessor"></span><span class="preprocessor"> #define __STK_REALTIME__</span>
00279 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00280 <span class="preprocessor"></span>
00281 <span class="comment">//#define _STK_DEBUG_</span>
00282
00283 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>SubNoise.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00011 <span class="comment">/***************************************************/</span>
00012
00013 <span class="preprocessor">#if !defined(__SUBNOISE_H)</span>
00014 <span class="preprocessor"></span><span class="preprocessor">#define __SUBNOISE_H</span>
00013 <span class="preprocessor">#ifndef STK_SUBNOISE_H</span>
00014 <span class="preprocessor"></span><span class="preprocessor">#define STK_SUBNOISE_H</span>
00015 <span class="preprocessor"></span>
00016 <span class="preprocessor">#include "Noise.h"</span>
00017
@@ -29,19 +29,24 @@
00030
00032 <span class="keywordtype">void</span> <a class="code" href="classSubNoise.html#a3">setRate</a>(<span class="keywordtype">int</span> subRate);
00033
00035 MY_FLOAT <a class="code" href="classSubNoise.html#a4">tick</a>();
00035 StkFloat <a class="code" href="classSubNoise.html#a4">tick</a>();
00036
00037 <span class="keyword">protected</span>:
00038 <span class="keywordtype">int</span> counter;
00039 <span class="keywordtype">int</span> rate;
00040
00041 };
00042
00043 <span class="preprocessor">#endif</span>
00038 StkFloat *<a class="code" href="classSubNoise.html#a4">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00039
00041
00047 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classSubNoise.html#a4">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00048
00049 <span class="keyword">protected</span>:
00050 <span class="keywordtype">int</span> counter_;
00051 <span class="keywordtype">int</span> rate_;
00052
00053 };
00054
00055 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,39 +12,40 @@
<h1>Table.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00015 <span class="comment">/***************************************************/</span>
00016
00017 <span class="preprocessor">#if !defined(__TABLE_H)</span>
00018 <span class="preprocessor"></span><span class="preprocessor">#define __TABLE_H</span>
00017 <span class="preprocessor">#ifndef STK_TABLE_H</span>
00018 <span class="preprocessor"></span><span class="preprocessor">#define STK_TABLE_H</span>
00019 <span class="preprocessor"></span>
00020 <span class="preprocessor">#include "Stk.h"</span>
00020 <span class="preprocessor">#include "Function.h"</span>
00021
<a name="l00022"></a><a class="code" href="classTable.html">00022</a> <span class="keyword">class </span><a class="code" href="classTable.html">Table</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
<a name="l00022"></a><a class="code" href="classTable.html">00022</a> <span class="keyword">class </span><a class="code" href="classTable.html">Table</a> : <span class="keyword">public</span> <a class="code" href="classFunction.html">Function</a>
00023 {
00024 <span class="keyword">public</span>:
00026 <a class="code" href="classTable.html#a0">Table</a>(<span class="keywordtype">char</span> *fileName);
00027
00029 <a class="code" href="classTable.html#a1">~Table</a>();
00030
00032 <span class="keywordtype">long</span> <a class="code" href="classTable.html#a2">getLength</a>() <span class="keyword">const</span>;
00033
00035 MY_FLOAT <a class="code" href="classTable.html#a3">lastOut</a>() <span class="keyword">const</span>;
00036
00038
00042 MY_FLOAT <a class="code" href="classTable.html#a4">tick</a>(MY_FLOAT index);
00043
00045 MY_FLOAT *<a class="code" href="classTable.html#a4">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00046
00047 <span class="keyword">protected</span>:
00048 <span class="keywordtype">long</span> length;
00049 MY_FLOAT *data;
00050 MY_FLOAT lastOutput;
00051
00052 };
00053
00054 <span class="preprocessor">#endif // defined(__TABLE_H)</span>
00026
00030 <a class="code" href="classTable.html#a0">Table</a>( std::string fileName );
00031
00033 <a class="code" href="classTable.html#a1">~Table</a>();
00034
00036 <span class="keywordtype">long</span> <a class="code" href="classTable.html#a2">getLength</a>() <span class="keyword">const</span>;
00037
00039
00043 StkFloat <a class="code" href="classTable.html#a3">tick</a>(StkFloat index);
00044
00046 StkFloat *<a class="code" href="classTable.html#a3">tick</a>( StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00047
00049
00055 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classTable.html#a3">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00056
00057 <span class="keyword">protected</span>:
00058 <span class="keywordtype">long</span> length_;
00059 std::valarray&lt;StkFloat&gt; data_;
00060
00061 };
00062
00063 <span class="preprocessor">#endif // defined(__TABLE_H)</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,78 +12,85 @@
<h1>TcpWvIn.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00027 <span class="comment">/***************************************************/</span>
00028
00029 <span class="preprocessor">#if !defined(__TCPWVIN_H)</span>
00030 <span class="preprocessor"></span><span class="preprocessor">#define __TCPWVIN_H</span>
00029 <span class="preprocessor">#ifndef STK_TCPWVIN_H</span>
00030 <span class="preprocessor"></span><span class="preprocessor">#define STK_TCPWVIN_H</span>
00031 <span class="preprocessor"></span>
00032 <span class="preprocessor">#include "WvIn.h"</span>
00033 <span class="preprocessor">#include "Socket.h"</span>
00034 <span class="preprocessor">#include "Thread.h"</span>
00035
00036 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00037 <span class="keywordtype">bool</span> finished;
00038 <span class="keywordtype">void</span> *object;
00039 } thread_info;
00040
<a name="l00041"></a><a class="code" href="classTcpWvIn.html">00041</a> <span class="keyword">class </span><a class="code" href="classTcpWvIn.html">TcpWvIn</a> : <span class="keyword">protected</span> <a class="code" href="classWvIn.html">WvIn</a>
00042 {
00043 <span class="keyword">public</span>:
00045
00048 <a class="code" href="classTcpWvIn.html#a0">TcpWvIn</a>( <span class="keywordtype">int</span> port = 2006 );
00049
00051 <a class="code" href="classTcpWvIn.html#a1">~TcpWvIn</a>();
00052
00054
00057 <span class="keywordtype">void</span> <a class="code" href="classTcpWvIn.html#a2">listen</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1, Stk::STK_FORMAT format = <a class="code" href="classStk.html#s1">STK_SINT16</a>);
00058
00060
00064 <span class="keywordtype">bool</span> <a class="code" href="classTcpWvIn.html#a3">isConnected</a>(<span class="keywordtype">void</span>);
00065
00067 MY_FLOAT <a class="code" href="classTcpWvIn.html#a4">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00068
00070 MY_FLOAT <a class="code" href="classTcpWvIn.html#a5">tick</a>(<span class="keywordtype">void</span>);
00071
00073 MY_FLOAT *<a class="code" href="classTcpWvIn.html#a5">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00074
00076 <span class="keyword">const</span> MY_FLOAT *<a class="code" href="classTcpWvIn.html#a7">lastFrame</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00035 <span class="preprocessor">#include "Mutex.h"</span>
00036
00037 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00038 <span class="keywordtype">bool</span> finished;
00039 <span class="keywordtype">void</span> *object;
00040 } thread_info;
00041
<a name="l00042"></a><a class="code" href="classTcpWvIn.html">00042</a> <span class="keyword">class </span><a class="code" href="classTcpWvIn.html">TcpWvIn</a> : <span class="keyword">protected</span> <a class="code" href="classWvIn.html">WvIn</a>
00043 {
00044 <span class="keyword">public</span>:
00046
00049 <a class="code" href="classTcpWvIn.html#a0">TcpWvIn</a>( <span class="keywordtype">int</span> port = 2006 );
00050
00052 <a class="code" href="classTcpWvIn.html#a1">~TcpWvIn</a>();
00053
00055
00058 <span class="keywordtype">void</span> <a class="code" href="classTcpWvIn.html#a2">listen</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1, Stk::StkFormat format = <a class="code" href="classStk.html#s1">STK_SINT16</a>);
00059
00061
00065 <span class="keywordtype">bool</span> <a class="code" href="classTcpWvIn.html#a3">isConnected</a>(<span class="keywordtype">void</span>);
00066
00068 StkFloat <a class="code" href="classTcpWvIn.html#a4">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00069
00071 StkFloat <a class="code" href="classTcpWvIn.html#a5">tick</a>(<span class="keywordtype">void</span>);
00072
00074 StkFloat *<a class="code" href="classTcpWvIn.html#a5">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00075
00077
00079 <span class="keyword">const</span> MY_FLOAT *<a class="code" href="classTcpWvIn.html#a8">tickFrame</a>(<span class="keywordtype">void</span>);
00080
00082 MY_FLOAT *<a class="code" href="classTcpWvIn.html#a8">tickFrame</a>(MY_FLOAT *frameVector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> frames);
00083
00084 <span class="comment">// Called by the thread routine to receive data via the socket connection</span>
00085 <span class="comment">// and fill the socket buffer. This is not intended for general use but</span>
00086 <span class="comment">// had to be made public for access from the thread.</span>
00087 <span class="keywordtype">void</span> receive(<span class="keywordtype">void</span>);
00088
00089 <span class="keyword">protected</span>:
00083 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classTcpWvIn.html#a5">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00084
00086 <span class="keyword">const</span> StkFloat *<a class="code" href="classTcpWvIn.html#a8">lastFrame</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00087
00089 <span class="keyword">const</span> StkFloat *<a class="code" href="classTcpWvIn.html#a9">tickFrame</a>(<span class="keywordtype">void</span>);
00090
00091 <span class="comment">// Initialize class variables.</span>
00092 <span class="keywordtype">void</span> init( <span class="keywordtype">int</span> port );
00092 StkFloat *<a class="code" href="classTcpWvIn.html#a9">tickFrame</a>(StkFloat *frameVector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> frames);
00093
00094 <span class="comment">// Read buffered socket data into the data buffer ... will block if none available.</span>
00095 <span class="keywordtype">int</span> readData( <span class="keywordtype">void</span> );
00096
00097 <a class="code" href="classSocket.html">Socket</a> *soket;
00098 <a class="code" href="classThread.html">Thread</a> *thread;
00099 Mutex mutex;
00100 <span class="keywordtype">char</span> *buffer;
00101 <span class="keywordtype">long</span> bufferBytes;
00102 <span class="keywordtype">long</span> bytesFilled;
00103 <span class="keywordtype">long</span> writePoint;
00104 <span class="keywordtype">long</span> readPoint;
00105 <span class="keywordtype">long</span> counter;
00106 <span class="keywordtype">int</span> dataSize;
00107 <span class="keywordtype">bool</span> connected;
00108 <span class="keywordtype">int</span> fd;
00109 thread_info threadInfo;
00110
00111 };
00112
00113 <span class="preprocessor">#endif</span>
00095
00100 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classTcpWvIn.html#a9">tickFrame</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames );
00101
00102 <span class="comment">// Called by the thread routine to receive data via the socket connection</span>
00103 <span class="comment">// and fill the socket buffer. This is not intended for general use but</span>
00104 <span class="comment">// had to be made public for access from the thread.</span>
00105 <span class="keywordtype">void</span> receive(<span class="keywordtype">void</span>);
00106
00107 <span class="keyword">protected</span>:
00108
00109 <span class="comment">// Initialize class variables.</span>
00110 <span class="keywordtype">void</span> init( <span class="keywordtype">int</span> port );
00111
00112 <span class="comment">// Read buffered socket data into the data buffer ... will block if none available.</span>
00113 <span class="keywordtype">int</span> readData( <span class="keywordtype">void</span> );
00114
00115 <a class="code" href="classSocket.html">Socket</a> *soket_;
00116 <a class="code" href="classThread.html">Thread</a> *thread_;
00117 <a class="code" href="classMutex.html">Mutex</a> mutex_;
00118 <span class="keywordtype">char</span> *buffer_;
00119 <span class="keywordtype">long</span> bufferBytes_;
00120 <span class="keywordtype">long</span> bytesFilled_;
00121 <span class="keywordtype">long</span> writePoint_;
00122 <span class="keywordtype">long</span> readPoint_;
00123 <span class="keywordtype">long</span> counter_;
00124 <span class="keywordtype">int</span> dataSize_;
00125 <span class="keywordtype">bool</span> connected_;
00126 <span class="keywordtype">int</span> fd_;
00127 thread_info threadInfo_;
00128
00129 };
00130
00131 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>TcpWvOut.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00026 <span class="comment">/***************************************************/</span>
00027
00028 <span class="preprocessor">#if !defined(__TCPWVOUT_H)</span>
00029 <span class="preprocessor"></span><span class="preprocessor">#define __TCPWVOUT_H</span>
00028 <span class="preprocessor">#ifndef STK_TCPWVOUT_H</span>
00029 <span class="preprocessor"></span><span class="preprocessor">#define STK_TCPWVOUT_H</span>
00030 <span class="preprocessor"></span>
00031 <span class="preprocessor">#include "WvOut.h"</span>
00032 <span class="preprocessor">#include "Socket.h"</span>
@@ -24,44 +24,49 @@
00038 <a class="code" href="classTcpWvOut.html#a0">TcpWvOut</a>();
00039
00041
00044 <a class="code" href="classTcpWvOut.html#a0">TcpWvOut</a>(<span class="keywordtype">int</span> port, <span class="keyword">const</span> <span class="keywordtype">char</span> *hostname = <span class="stringliteral">"localhost"</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1, Stk::STK_FORMAT format = <a class="code" href="classStk.html#s1">STK_SINT16</a>);
00044 <a class="code" href="classTcpWvOut.html#a0">TcpWvOut</a>(<span class="keywordtype">int</span> port, <span class="keyword">const</span> <span class="keywordtype">char</span> *hostname = <span class="stringliteral">"localhost"</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1, Stk::StkFormat format = <a class="code" href="classStk.html#s1">STK_SINT16</a>);
00045
00047 <a class="code" href="classTcpWvOut.html#a2">~TcpWvOut</a>();
00048
00050
00053 <span class="keywordtype">void</span> <a class="code" href="classTcpWvOut.html#a3">connect</a>(<span class="keywordtype">int</span> port, <span class="keyword">const</span> <span class="keywordtype">char</span> *hostname = <span class="stringliteral">"localhost"</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1, Stk::STK_FORMAT format = <a class="code" href="classStk.html#s1">STK_SINT16</a>);
00053 <span class="keywordtype">void</span> <a class="code" href="classTcpWvOut.html#a3">connect</a>(<span class="keywordtype">int</span> port, <span class="keyword">const</span> <span class="keywordtype">char</span> *hostname = <span class="stringliteral">"localhost"</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1, Stk::StkFormat format = <a class="code" href="classStk.html#s1">STK_SINT16</a>);
00054
00056 <span class="keywordtype">void</span> <a class="code" href="classTcpWvOut.html#a4">disconnect</a>(<span class="keywordtype">void</span>);
00057
00059 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classTcpWvOut.html#a5">getFrames</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
00060
00062 MY_FLOAT <a class="code" href="classTcpWvOut.html#a6">getTime</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
00062 StkFloat <a class="code" href="classTcpWvOut.html#a6">getTime</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
00063
00065
00068 <span class="keywordtype">void</span> <a class="code" href="classTcpWvOut.html#a7">tick</a>(MY_FLOAT sample);
00068 <span class="keywordtype">void</span> <a class="code" href="classTcpWvOut.html#a7">tick</a>( <span class="keyword">const</span> StkFloat sample );
00069
00071
00074 <span class="keywordtype">void</span> <a class="code" href="classTcpWvOut.html#a7">tick</a>(<span class="keyword">const</span> MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00074 <span class="keywordtype">void</span> <a class="code" href="classTcpWvOut.html#a7">tick</a>( <span class="keyword">const</span> StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00075
00077
00080 <span class="keywordtype">void</span> <a class="code" href="classTcpWvOut.html#a9">tickFrame</a>(<span class="keyword">const</span> MY_FLOAT *frameVector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> frames = 1);
00081
00082 <span class="keyword">protected</span>:
00083
00084 <span class="comment">// Write a buffer of length \e frames via the socket connection.</span>
00085 <span class="keywordtype">void</span> writeData( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> frames );
00083 <span class="keywordtype">void</span> <a class="code" href="classTcpWvOut.html#a7">tick</a>( <span class="keyword">const</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00084
00086
00087 <span class="keywordtype">char</span> msg[256];
00088 <span class="keywordtype">char</span> *buffer;
00089 <a class="code" href="classSocket.html">Socket</a> *soket;
00090 <span class="keywordtype">int</span> dataSize;
00091 };
00089 <span class="keywordtype">void</span> <a class="code" href="classTcpWvOut.html#a10">tickFrame</a>( <span class="keyword">const</span> StkFloat *frameVector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> frames = 1 );
00090
00092
00093 <span class="preprocessor">#endif // defined(__TCPWVOUT_H)</span>
00097 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTcpWvOut.html#a10">tickFrame</a>( <span class="keyword">const</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames );
00098
00099 <span class="keyword">protected</span>:
00100
00101 <span class="comment">// Write a buffer of length \e frames via the socket connection.</span>
00102 <span class="keywordtype">void</span> writeData( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> frames );
00103
00104 <span class="keywordtype">char</span> *buffer_;
00105 <a class="code" href="classSocket.html">Socket</a> *soket_;
00106 <span class="keywordtype">int</span> dataSize_;
00107 };
00108
00109 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -10,77 +10,62 @@
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>Thread.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00012 <span class="comment">/***************************************************/</span>
00013
00014 <span class="preprocessor">#if !defined(__THREAD_H)</span>
00015 <span class="preprocessor"></span><span class="preprocessor">#define __THREAD_H</span>
00016 <span class="preprocessor"></span>
00017 <span class="preprocessor">#include "Stk.h"</span>
00018
00019 <span class="preprocessor">#if (defined(__OS_IRIX__) || defined(__OS_LINUX__) || defined(__OS_MACOSX__))</span>
00020 <span class="preprocessor"></span>
00021 <span class="preprocessor"> #include &lt;pthread.h&gt;</span>
00022 <span class="preprocessor"> #define THREAD_TYPE</span>
00023 <span class="preprocessor"></span> <span class="keyword">typedef</span> pthread_t THREAD_HANDLE;
00024 <span class="keyword">typedef</span> <span class="keywordtype">void</span> * THREAD_RETURN;
00025 <span class="keyword">typedef</span> <span class="keywordtype">void</span> * (*THREAD_FUNCTION)(<span class="keywordtype">void</span> *);
00026 <span class="keyword">typedef</span> pthread_mutex_t MUTEX;
00021 <span class="comment">/***************************************************/</span>
00022
00023 <span class="preprocessor">#ifndef STK_THREAD_H</span>
00024 <span class="preprocessor"></span><span class="preprocessor">#define STK_THREAD_H</span>
00025 <span class="preprocessor"></span>
00026 <span class="preprocessor">#include "Stk.h"</span>
00027
00028 <span class="preprocessor">#elif defined(__OS_WINDOWS__)</span>
00028 <span class="preprocessor">#if (defined(__OS_IRIX__) || defined(__OS_LINUX__) || defined(__OS_MACOSX__))</span>
00029 <span class="preprocessor"></span>
00030 <span class="preprocessor"> #include &lt;windows.h&gt;</span>
00031 <span class="preprocessor"> #include &lt;process.h&gt;</span>
00032 <span class="preprocessor"> #define THREAD_TYPE __stdcall</span>
00033 <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> THREAD_HANDLE;
00034 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> THREAD_RETURN;
00035 <span class="keyword">typedef</span> unsigned (__stdcall *THREAD_FUNCTION)(<span class="keywordtype">void</span> *);
00036 <span class="keyword">typedef</span> CRITICAL_SECTION MUTEX;
00037
00038 <span class="preprocessor">#endif</span>
00039 <span class="preprocessor"></span>
<a name="l00040"></a><a class="code" href="classThread.html">00040</a> <span class="keyword">class </span><a class="code" href="classThread.html">Thread</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00041 {
00042 <span class="keyword">public</span>:
00044 <a class="code" href="classThread.html#a0">Thread</a>();
00045
00047 <a class="code" href="classThread.html#a1">~Thread</a>();
00048
00050
00054 <span class="keywordtype">bool</span> <a class="code" href="classThread.html#a2">start</a>( THREAD_FUNCTION routine, <span class="keywordtype">void</span> * ptr = NULL );
00030 <span class="preprocessor"> #include &lt;pthread.h&gt;</span>
00031 <span class="preprocessor"> #define THREAD_TYPE</span>
00032 <span class="preprocessor"></span> <span class="keyword">typedef</span> pthread_t THREAD_HANDLE;
00033 <span class="keyword">typedef</span> <span class="keywordtype">void</span> * THREAD_RETURN;
00034 <span class="keyword">typedef</span> <span class="keywordtype">void</span> * (*THREAD_FUNCTION)(<span class="keywordtype">void</span> *);
00035
00036 <span class="preprocessor">#elif defined(__OS_WINDOWS__)</span>
00037 <span class="preprocessor"></span>
00038 <span class="preprocessor"> #include &lt;windows.h&gt;</span>
00039 <span class="preprocessor"> #include &lt;process.h&gt;</span>
00040 <span class="preprocessor"> #define THREAD_TYPE __stdcall</span>
00041 <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> THREAD_HANDLE;
00042 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> THREAD_RETURN;
00043 <span class="keyword">typedef</span> unsigned (__stdcall *THREAD_FUNCTION)(<span class="keywordtype">void</span> *);
00044
00045 <span class="preprocessor">#endif</span>
00046 <span class="preprocessor"></span>
<a name="l00047"></a><a class="code" href="classThread.html">00047</a> <span class="keyword">class </span><a class="code" href="classThread.html">Thread</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00048 {
00049 <span class="keyword">public</span>:
00051 <a class="code" href="classThread.html#a0">Thread</a>();
00052
00054 <a class="code" href="classThread.html#a1">~Thread</a>();
00055
00057
00063 <span class="keywordtype">bool</span> <a class="code" href="classThread.html#a3">wait</a>( <span class="keywordtype">long</span> milliseconds = -1 );
00064
00066 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classThread.html#e0">test</a>(<span class="keywordtype">void</span>);
00067
00068 <span class="keyword">protected</span>:
00069
00070 THREAD_HANDLE thread;
00071
00072 };
00062 <span class="keywordtype">bool</span> <a class="code" href="classThread.html#a2">start</a>( THREAD_FUNCTION routine, <span class="keywordtype">void</span> * ptr = NULL );
00063
00065
00072 <span class="keywordtype">bool</span> <a class="code" href="classThread.html#a3">cancel</a>(<span class="keywordtype">void</span>);
00073
00074 <span class="keyword">class </span>Mutex : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00075 {
00076 <span class="keyword">public</span>:
00078 Mutex();
00075
00078 <span class="keywordtype">bool</span> <a class="code" href="classThread.html#a4">wait</a>(<span class="keywordtype">void</span>);
00079
00081 ~Mutex();
00082
00084 <span class="keywordtype">void</span> lock(<span class="keywordtype">void</span>);
00085
00087 <span class="keywordtype">void</span> unlock(<span class="keywordtype">void</span>);
00088
00089 <span class="keyword">protected</span>:
00090
00091 MUTEX mutex;
00092
00093 };
00094
00095 <span class="preprocessor">#endif // defined(__THREAD_H)</span>
00081
00086 <span class="keywordtype">void</span> <a class="code" href="classThread.html#a5">testCancel</a>(<span class="keywordtype">void</span>);
00087
00088 <span class="keyword">protected</span>:
00089
00090 THREAD_HANDLE thread_;
00091
00092 };
00093
00094 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,28 +12,34 @@
<h1>TubeBell.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00031 <span class="comment">/***************************************************/</span>
00032
00033 <span class="preprocessor">#if !defined(__TUBEBELL_H)</span>
00034 <span class="preprocessor"></span><span class="preprocessor">#define __TUBEBELL_H</span>
00033 <span class="preprocessor">#ifndef STK_TUBEBELL_H</span>
00034 <span class="preprocessor"></span><span class="preprocessor">#define STK_TUBEBELL_H</span>
00035 <span class="preprocessor"></span>
00036 <span class="preprocessor">#include "FM.h"</span>
00037
<a name="l00038"></a><a class="code" href="classTubeBell.html">00038</a> <span class="keyword">class </span><a class="code" href="classTubeBell.html">TubeBell</a> : <span class="keyword">public</span> <a class="code" href="classFM.html">FM</a>
00039 {
00040 <span class="keyword">public</span>:
00042 <a class="code" href="classTubeBell.html#a0">TubeBell</a>();
00043
00045 <a class="code" href="classTubeBell.html#a1">~TubeBell</a>();
00042
00045 <a class="code" href="classTubeBell.html#a0">TubeBell</a>();
00046
00048 <span class="keywordtype">void</span> <a class="code" href="classTubeBell.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00048 <a class="code" href="classTubeBell.html#a1">~TubeBell</a>();
00049
00051 MY_FLOAT <a class="code" href="classTubeBell.html#a3">tick</a>();
00052 };
00053
00054 <span class="preprocessor">#endif</span>
00051 <span class="keywordtype">void</span> <a class="code" href="classTubeBell.html#a2">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00052
00054 StkFloat <a class="code" href="classTubeBell.html#a3">tick</a>();
00055
00057 StkFloat *<a class="code" href="classTubeBell.html#a3">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00058
00060
00066 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classTubeBell.html#a3">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00067 };
00068
00069 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>TwoPole.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00013 <span class="comment">/***************************************************/</span>
00014
00015 <span class="preprocessor">#if !defined(__TWOPOLE_H)</span>
00016 <span class="preprocessor"></span><span class="preprocessor">#define __TWOPOLE_H</span>
00015 <span class="preprocessor">#ifndef STK_TWOPOLE_H</span>
00016 <span class="preprocessor"></span><span class="preprocessor">#define STK_TWOPOLE_H</span>
00017 <span class="preprocessor"></span>
00018 <span class="preprocessor">#include "Filter.h"</span>
00019
@@ -27,32 +27,35 @@
00029
00031 <span class="keywordtype">void</span> <a class="code" href="classTwoPole.html#a2">clear</a>(<span class="keywordtype">void</span>);
00032
00034 <span class="keywordtype">void</span> <a class="code" href="classTwoPole.html#a3">setB0</a>(MY_FLOAT b0);
00034 <span class="keywordtype">void</span> <a class="code" href="classTwoPole.html#a3">setB0</a>(StkFloat b0);
00035
00037 <span class="keywordtype">void</span> <a class="code" href="classTwoPole.html#a4">setA1</a>(MY_FLOAT a1);
00037 <span class="keywordtype">void</span> <a class="code" href="classTwoPole.html#a4">setA1</a>(StkFloat a1);
00038
00040 <span class="keywordtype">void</span> <a class="code" href="classTwoPole.html#a5">setA2</a>(MY_FLOAT a2);
00040 <span class="keywordtype">void</span> <a class="code" href="classTwoPole.html#a5">setA2</a>(StkFloat a2);
00041
00043
00056 <span class="keywordtype">void</span> <a class="code" href="classTwoPole.html#a6">setResonance</a>(MY_FLOAT frequency, MY_FLOAT radius, <span class="keywordtype">bool</span> normalize = FALSE);
00056 <span class="keywordtype">void</span> <a class="code" href="classTwoPole.html#a6">setResonance</a>(StkFloat frequency, StkFloat radius, <span class="keywordtype">bool</span> normalize = <span class="keyword">false</span>);
00057
00059
00063 <span class="keywordtype">void</span> <a class="code" href="classTwoPole.html#a7">setGain</a>(MY_FLOAT theGain);
00063 <span class="keywordtype">void</span> <a class="code" href="classTwoPole.html#a7">setGain</a>(StkFloat gain);
00064
00066 MY_FLOAT <a class="code" href="classTwoPole.html#a8">getGain</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00066 StkFloat <a class="code" href="classTwoPole.html#a8">getGain</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00067
00069 MY_FLOAT <a class="code" href="classTwoPole.html#a9">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00069 StkFloat <a class="code" href="classTwoPole.html#a9">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00070
00072 MY_FLOAT <a class="code" href="classTwoPole.html#a10">tick</a>(MY_FLOAT sample);
00072 StkFloat <a class="code" href="classTwoPole.html#a10">tick</a>(StkFloat sample);
00073
00075 MY_FLOAT *<a class="code" href="classTwoPole.html#a10">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00076 };
00077
00078 <span class="preprocessor">#endif</span>
00075 StkFloat *<a class="code" href="classTwoPole.html#a10">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00076
00078
00084 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classTwoPole.html#a10">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00085 };
00086
00087 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>TwoZero.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00013 <span class="comment">/***************************************************/</span>
00014
00015 <span class="preprocessor">#if !defined(__TWOZERO_H)</span>
00016 <span class="preprocessor"></span><span class="preprocessor">#define __TWOZERO_H</span>
00015 <span class="preprocessor">#ifndef STK_TWOZERO_H</span>
00016 <span class="preprocessor"></span><span class="preprocessor">#define STK_TWOZERO_H</span>
00017 <span class="preprocessor"></span>
00018 <span class="preprocessor">#include "Filter.h"</span>
00019
@@ -26,32 +26,35 @@
00028
00030 <span class="keywordtype">void</span> <a class="code" href="classTwoZero.html#a2">clear</a>(<span class="keywordtype">void</span>);
00031
00033 <span class="keywordtype">void</span> <a class="code" href="classTwoZero.html#a3">setB0</a>(MY_FLOAT b0);
00033 <span class="keywordtype">void</span> <a class="code" href="classTwoZero.html#a3">setB0</a>(StkFloat b0);
00034
00036 <span class="keywordtype">void</span> <a class="code" href="classTwoZero.html#a4">setB1</a>(MY_FLOAT b1);
00036 <span class="keywordtype">void</span> <a class="code" href="classTwoZero.html#a4">setB1</a>(StkFloat b1);
00037
00039 <span class="keywordtype">void</span> <a class="code" href="classTwoZero.html#a5">setB2</a>(MY_FLOAT b2);
00039 <span class="keywordtype">void</span> <a class="code" href="classTwoZero.html#a5">setB2</a>(StkFloat b2);
00040
00042
00052 <span class="keywordtype">void</span> <a class="code" href="classTwoZero.html#a6">setNotch</a>(MY_FLOAT frequency, MY_FLOAT radius);
00052 <span class="keywordtype">void</span> <a class="code" href="classTwoZero.html#a6">setNotch</a>(StkFloat frequency, StkFloat radius);
00053
00055
00059 <span class="keywordtype">void</span> <a class="code" href="classTwoZero.html#a7">setGain</a>(MY_FLOAT theGain);
00059 <span class="keywordtype">void</span> <a class="code" href="classTwoZero.html#a7">setGain</a>(StkFloat gain);
00060
00062 MY_FLOAT <a class="code" href="classTwoZero.html#a8">getGain</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00062 StkFloat <a class="code" href="classTwoZero.html#a8">getGain</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00063
00065 MY_FLOAT <a class="code" href="classTwoZero.html#a9">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00065 StkFloat <a class="code" href="classTwoZero.html#a9">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00066
00068 MY_FLOAT <a class="code" href="classTwoZero.html#a10">tick</a>(MY_FLOAT sample);
00068 StkFloat <a class="code" href="classTwoZero.html#a10">tick</a>(StkFloat sample);
00069
00071 MY_FLOAT *<a class="code" href="classTwoZero.html#a10">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00072 };
00073
00074 <span class="preprocessor">#endif</span>
00071 StkFloat *<a class="code" href="classTwoZero.html#a10">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00072
00074
00080 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classTwoZero.html#a10">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00081 };
00082
00083 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,43 +12,46 @@
<h1>Vector3D.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00009 <span class="comment">/***************************************************/</span>
00010
00011 <span class="preprocessor">#if !defined(__VECTOR3D_H)</span>
00012 <span class="preprocessor"></span><span class="preprocessor">#define __VECTOR3D_H</span>
00011 <span class="preprocessor">#ifndef STK_VECTOR3D_H</span>
00012 <span class="preprocessor"></span><span class="preprocessor">#define STK_VECTOR3D_H</span>
00013 <span class="preprocessor"></span>
<a name="l00014"></a><a class="code" href="classVector3D.html">00014</a> <span class="keyword">class </span><a class="code" href="classVector3D.html">Vector3D</a> {
00014 <span class="preprocessor">#include "Stk.h"</span>
00015
00016 <span class="keyword">public</span>:
00018 <a class="code" href="classVector3D.html#a0">Vector3D</a>(<span class="keywordtype">double</span> initX=0.0, <span class="keywordtype">double</span> initY=0.0, <span class="keywordtype">double</span> initZ=0.0);
00019
00021 <a class="code" href="classVector3D.html#a1">~Vector3D</a>();
<a name="l00016"></a><a class="code" href="classVector3D.html">00016</a> <span class="keyword">class </span><a class="code" href="classVector3D.html">Vector3D</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00017 {
00018
00019 <span class="keyword">public</span>:
00021 <a class="code" href="classVector3D.html#a0">Vector3D</a>(StkFloat initX=0.0, StkFloat initY=0.0, StkFloat initZ=0.0);
00022
00024 <span class="keywordtype">double</span> <a class="code" href="classVector3D.html#a2">getX</a>();
00024 <a class="code" href="classVector3D.html#a1">~Vector3D</a>();
00025
00027 <span class="keywordtype">double</span> <a class="code" href="classVector3D.html#a3">getY</a>();
00027 StkFloat <a class="code" href="classVector3D.html#a2">getX</a>();
00028
00030 <span class="keywordtype">double</span> <a class="code" href="classVector3D.html#a4">getZ</a>();
00030 StkFloat <a class="code" href="classVector3D.html#a3">getY</a>();
00031
00033 <span class="keywordtype">double</span> <a class="code" href="classVector3D.html#a5">getLength</a>();
00033 StkFloat <a class="code" href="classVector3D.html#a4">getZ</a>();
00034
00036 <span class="keywordtype">void</span> <a class="code" href="classVector3D.html#a6">setXYZ</a>(<span class="keywordtype">double</span> anX, <span class="keywordtype">double</span> aY, <span class="keywordtype">double</span> aZ);
00036 StkFloat <a class="code" href="classVector3D.html#a5">getLength</a>();
00037
00039 <span class="keywordtype">void</span> <a class="code" href="classVector3D.html#a7">setX</a>(<span class="keywordtype">double</span> aval);
00039 <span class="keywordtype">void</span> <a class="code" href="classVector3D.html#a6">setXYZ</a>(StkFloat x, StkFloat y, StkFloat z);
00040
00042 <span class="keywordtype">void</span> <a class="code" href="classVector3D.html#a8">setY</a>(<span class="keywordtype">double</span> aval);
00042 <span class="keywordtype">void</span> <a class="code" href="classVector3D.html#a7">setX</a>(StkFloat x);
00043
00045 <span class="keywordtype">void</span> <a class="code" href="classVector3D.html#a9">setZ</a>(<span class="keywordtype">double</span> aval);
00045 <span class="keywordtype">void</span> <a class="code" href="classVector3D.html#a8">setY</a>(StkFloat y);
00046
00047 <span class="keyword">protected</span>:
00048 <span class="keywordtype">double</span> myX;
00049 <span class="keywordtype">double</span> myY;
00050 <span class="keywordtype">double</span> myZ;
00051 };
00052
00053 <span class="preprocessor">#endif</span>
00048 <span class="keywordtype">void</span> <a class="code" href="classVector3D.html#a9">setZ</a>(StkFloat z);
00049
00050 <span class="keyword">protected</span>:
00051 StkFloat myX_;
00052 StkFloat myY_;
00053 StkFloat myZ_;
00054 };
00055
00056 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>VoicForm.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00026 <span class="comment">/***************************************************/</span>
00027
00028 <span class="preprocessor">#if !defined(__VOICFORM_H)</span>
00029 <span class="preprocessor"></span><span class="preprocessor">#define __VOICFORM_H</span>
00028 <span class="preprocessor">#ifndef STK_VOICFORM_H</span>
00029 <span class="preprocessor"></span><span class="preprocessor">#define STK_VOICFORM_H</span>
00030 <span class="preprocessor"></span>
00031 <span class="preprocessor">#include "Instrmnt.h"</span>
00032 <span class="preprocessor">#include "Envelope.h"</span>
@@ -26,51 +26,57 @@
<a name="l00039"></a><a class="code" href="classVoicForm.html">00039</a> <span class="keyword">class </span><a class="code" href="classVoicForm.html">VoicForm</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
00040 {
00041 <span class="keyword">public</span>:
00043 <a class="code" href="classVoicForm.html#a0">VoicForm</a>();
00044
00046 <a class="code" href="classVoicForm.html#a1">~VoicForm</a>();
00043
00046 <a class="code" href="classVoicForm.html#a0">VoicForm</a>();
00047
00049 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a2">clear</a>();
00049 <a class="code" href="classVoicForm.html#a1">~VoicForm</a>();
00050
00052 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a3">setFrequency</a>(MY_FLOAT frequency);
00052 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a2">clear</a>();
00053
00055 <span class="keywordtype">bool</span> <a class="code" href="classVoicForm.html#a4">setPhoneme</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* phoneme);
00055 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a3">setFrequency</a>(StkFloat frequency);
00056
00058 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a5">setVoiced</a>(MY_FLOAT vGain);
00058 <span class="keywordtype">bool</span> <a class="code" href="classVoicForm.html#a4">setPhoneme</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* phoneme);
00059
00061 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a6">setUnVoiced</a>(MY_FLOAT nGain);
00061 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a5">setVoiced</a>(StkFloat vGain);
00062
00064 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a7">setFilterSweepRate</a>(<span class="keywordtype">int</span> whichOne, MY_FLOAT rate);
00064 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a6">setUnVoiced</a>(StkFloat nGain);
00065
00067 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a8">setPitchSweepRate</a>(MY_FLOAT rate);
00067 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a7">setFilterSweepRate</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> whichOne, StkFloat rate);
00068
00070 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a9">speak</a>();
00070 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a8">setPitchSweepRate</a>(StkFloat rate);
00071
00073 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a10">quiet</a>();
00073 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a9">speak</a>();
00074
00076 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a11">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00076 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a10">quiet</a>();
00077
00079 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a12">noteOff</a>(MY_FLOAT amplitude);
00079 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a11">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00080
00082 MY_FLOAT <a class="code" href="classVoicForm.html#a13">tick</a>();
00082 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a12">noteOff</a>(StkFloat amplitude);
00083
00085 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a14">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00085 StkFloat <a class="code" href="classVoicForm.html#a13">tick</a>();
00086
00087 <span class="keyword">protected</span>:
00088 <a class="code" href="classSingWave.html">SingWave</a> *voiced;
00089 <a class="code" href="classNoise.html">Noise</a> *noise;
00090 <a class="code" href="classEnvelope.html">Envelope</a> *noiseEnv;
00091 <a class="code" href="classFormSwep.html">FormSwep</a> *filters[4];
00092 <a class="code" href="classOnePole.html">OnePole</a> *onepole;
00093 <a class="code" href="classOneZero.html">OneZero</a> *onezero;
00094
00095 };
00096
00097 <span class="preprocessor">#endif</span>
00088 StkFloat *<a class="code" href="classVoicForm.html#a13">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00089
00091
00097 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classVoicForm.html#a13">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00098
00100 <span class="keywordtype">void</span> <a class="code" href="classVoicForm.html#a16">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00101
00102 <span class="keyword">protected</span>:
00103 <a class="code" href="classSingWave.html">SingWave</a> *voiced_;
00104 <a class="code" href="classNoise.html">Noise</a> noise_;
00105 <a class="code" href="classEnvelope.html">Envelope</a> noiseEnv_;
00106 <a class="code" href="classFormSwep.html">FormSwep</a> filters_[4];
00107 <a class="code" href="classOnePole.html">OnePole</a> onepole_;
00108 <a class="code" href="classOneZero.html">OneZero</a> onezero_;
00109
00110 };
00111
00112 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,16 +12,16 @@
<h1>Voicer.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00030 <span class="comment">/***************************************************/</span>
00031
00032 <span class="preprocessor">#if !defined(__VOICER_H)</span>
00033 <span class="preprocessor"></span><span class="preprocessor">#define __VOICER_H</span>
00032 <span class="preprocessor">#ifndef STK_VOICER_H</span>
00033 <span class="preprocessor"></span><span class="preprocessor">#define STK_VOICER_H</span>
00034 <span class="preprocessor"></span>
00035 <span class="preprocessor">#include "Stk.h"</span>
00036 <span class="preprocessor">#include "Instrmnt.h"</span>
00035 <span class="preprocessor">#include "Instrmnt.h"</span>
00036 <span class="preprocessor">#include &lt;vector&gt;</span>
00037
<a name="l00038"></a><a class="code" href="classVoicer.html">00038</a> <span class="keyword">class </span><a class="code" href="classVoicer.html">Voicer</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00039 {
00040 <span class="keyword">public</span>:
00042 <a class="code" href="classVoicer.html#a0">Voicer</a>( <span class="keywordtype">int</span> maxInstruments, MY_FLOAT decayTime=0.2 );
00042 <a class="code" href="classVoicer.html#a0">Voicer</a>( StkFloat decayTime=0.2 );
00043
00045 <a class="code" href="classVoicer.html#a1">~Voicer</a>();
00046
@@ -32,66 +32,72 @@
00060 <span class="keywordtype">void</span> <a class="code" href="classVoicer.html#a3">removeInstrument</a>( <a class="code" href="classInstrmnt.html">Instrmnt</a> *instrument );
00061
00063
00071 <span class="keywordtype">long</span> <a class="code" href="classVoicer.html#a4">noteOn</a>( MY_FLOAT noteNumber, MY_FLOAT amplitude, <span class="keywordtype">int</span> channel=0 );
00071 <span class="keywordtype">long</span> <a class="code" href="classVoicer.html#a4">noteOn</a>( StkFloat noteNumber, StkFloat amplitude, <span class="keywordtype">int</span> channel=0 );
00072
00074
00077 <span class="keywordtype">void</span> <a class="code" href="classVoicer.html#a5">noteOff</a>( MY_FLOAT noteNumber, MY_FLOAT amplitude, <span class="keywordtype">int</span> channel=0 );
00077 <span class="keywordtype">void</span> <a class="code" href="classVoicer.html#a5">noteOff</a>( StkFloat noteNumber, StkFloat amplitude, <span class="keywordtype">int</span> channel=0 );
00078
00080
00083 <span class="keywordtype">void</span> <a class="code" href="classVoicer.html#a5">noteOff</a>( <span class="keywordtype">long</span> tag, MY_FLOAT amplitude );
00083 <span class="keywordtype">void</span> <a class="code" href="classVoicer.html#a5">noteOff</a>( <span class="keywordtype">long</span> tag, StkFloat amplitude );
00084
00086
00089 <span class="keywordtype">void</span> <a class="code" href="classVoicer.html#a7">setFrequency</a>( MY_FLOAT noteNumber, <span class="keywordtype">int</span> channel=0 );
00089 <span class="keywordtype">void</span> <a class="code" href="classVoicer.html#a7">setFrequency</a>( StkFloat noteNumber, <span class="keywordtype">int</span> channel=0 );
00090
00092
00095 <span class="keywordtype">void</span> <a class="code" href="classVoicer.html#a7">setFrequency</a>( <span class="keywordtype">long</span> tag, MY_FLOAT noteNumber );
00095 <span class="keywordtype">void</span> <a class="code" href="classVoicer.html#a7">setFrequency</a>( <span class="keywordtype">long</span> tag, StkFloat noteNumber );
00096
00098 <span class="keywordtype">void</span> <a class="code" href="classVoicer.html#a9">pitchBend</a>( MY_FLOAT value, <span class="keywordtype">int</span> channel=0 );
00098 <span class="keywordtype">void</span> <a class="code" href="classVoicer.html#a9">pitchBend</a>( StkFloat value, <span class="keywordtype">int</span> channel=0 );
00099
00101 <span class="keywordtype">void</span> <a class="code" href="classVoicer.html#a9">pitchBend</a>( <span class="keywordtype">long</span> tag, MY_FLOAT value );
00101 <span class="keywordtype">void</span> <a class="code" href="classVoicer.html#a9">pitchBend</a>( <span class="keywordtype">long</span> tag, StkFloat value );
00102
00104 <span class="keywordtype">void</span> <a class="code" href="classVoicer.html#a11">controlChange</a>( <span class="keywordtype">int</span> number, MY_FLOAT value, <span class="keywordtype">int</span> channel=0 );
00104 <span class="keywordtype">void</span> <a class="code" href="classVoicer.html#a11">controlChange</a>( <span class="keywordtype">int</span> number, StkFloat value, <span class="keywordtype">int</span> channel=0 );
00105
00107 <span class="keywordtype">void</span> <a class="code" href="classVoicer.html#a11">controlChange</a>( <span class="keywordtype">long</span> tag, <span class="keywordtype">int</span> number, MY_FLOAT value );
00107 <span class="keywordtype">void</span> <a class="code" href="classVoicer.html#a11">controlChange</a>( <span class="keywordtype">long</span> tag, <span class="keywordtype">int</span> number, StkFloat value );
00108
00110 <span class="keywordtype">void</span> <a class="code" href="classVoicer.html#a13">silence</a>( <span class="keywordtype">void</span> );
00111
00113 MY_FLOAT <a class="code" href="classVoicer.html#a14">tick</a>();
00113 StkFloat <a class="code" href="classVoicer.html#a14">tick</a>();
00114
00116 MY_FLOAT *<a class="code" href="classVoicer.html#a14">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00116 StkFloat *<a class="code" href="classVoicer.html#a14">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00117
00119 MY_FLOAT <a class="code" href="classVoicer.html#a16">lastOut</a>() <span class="keyword">const</span>;
00120
00122 MY_FLOAT <a class="code" href="classVoicer.html#a17">lastOutLeft</a>() <span class="keyword">const</span>;
00123
00125 MY_FLOAT <a class="code" href="classVoicer.html#a18">lastOutRight</a>() <span class="keyword">const</span>;
00119
00125 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classVoicer.html#a14">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00126
00127 <span class="keyword">protected</span>:
00128
00129 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00130 <a class="code" href="classInstrmnt.html">Instrmnt</a> *instrument;
00131 <span class="keywordtype">long</span> tag;
00132 MY_FLOAT noteNumber;
00133 MY_FLOAT frequency;
00134 <span class="keywordtype">int</span> sounding;
00135 <span class="keywordtype">int</span> channel;
00136 } Voice;
00128 StkFloat <a class="code" href="classVoicer.html#a17">lastOut</a>() <span class="keyword">const</span>;
00129
00131 StkFloat <a class="code" href="classVoicer.html#a18">lastOutLeft</a>() <span class="keyword">const</span>;
00132
00134 StkFloat <a class="code" href="classVoicer.html#a19">lastOutRight</a>() <span class="keyword">const</span>;
00135
00136 <span class="keyword">protected</span>:
00137
00138 <span class="keywordtype">int</span> nVoices;
00139 <span class="keywordtype">int</span> maxVoices;
00140 Voice *voices;
00141 <span class="keywordtype">long</span> tags;
00142 <span class="keywordtype">int</span> muteTime;
00143 MY_FLOAT lastOutput;
00144 MY_FLOAT lastOutputLeft;
00145 MY_FLOAT lastOutputRight;
00146 };
00147
00148 <span class="preprocessor">#endif</span>
00138 <span class="keyword">struct </span>Voice {
00139 <a class="code" href="classInstrmnt.html">Instrmnt</a> *instrument;
00140 <span class="keywordtype">long</span> tag;
00141 StkFloat noteNumber;
00142 StkFloat frequency;
00143 <span class="keywordtype">int</span> sounding;
00144 <span class="keywordtype">int</span> channel;
00145
00146 <span class="comment">// Default constructor.</span>
00147 Voice()
00148 :instrument(0), tag(0), noteNumber(-1.0), frequency(0.0),
00149 sounding(0), channel(0) {}
00150 };
00151
00152 std::vector&lt;Voice&gt; voices_;
00153 <span class="keywordtype">long</span> tags_;
00154 <span class="keywordtype">int</span> muteTime_;
00155 StkFloat lastOutput_;
00156 StkFloat lastOutputLeft_;
00157 StkFloat lastOutputRight_;
00158 };
00159
00160 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,46 +12,51 @@
<h1>WaveLoop.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00019 <span class="comment">/***************************************************/</span>
00020
00021 <span class="preprocessor">#if !defined(__WAVELOOP_H)</span>
00022 <span class="preprocessor"></span><span class="preprocessor">#define __WAVELOOP_H</span>
00021 <span class="preprocessor">#ifndef STK_WAVELOOP_H</span>
00022 <span class="preprocessor"></span><span class="preprocessor">#define STK_WAVELOOP_H</span>
00023 <span class="preprocessor"></span>
00024 <span class="preprocessor">#include "WvIn.h"</span>
00025 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
00026
<a name="l00027"></a><a class="code" href="classWaveLoop.html">00027</a> <span class="keyword">class </span><a class="code" href="classWaveLoop.html">WaveLoop</a> : <span class="keyword">public</span> <a class="code" href="classWvIn.html">WvIn</a>
00028 {
00029 <span class="keyword">public</span>:
00031 <a class="code" href="classWaveLoop.html#a0">WaveLoop</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName, <span class="keywordtype">bool</span> raw = FALSE );
00032
00034 <span class="keyword">virtual</span> <a class="code" href="classWaveLoop.html#a1">~WaveLoop</a>();
00035
00037
00043 <span class="keywordtype">void</span> <a class="code" href="classWaveLoop.html#a2">setFrequency</a>(MY_FLOAT aFrequency);
00044
00046 <span class="keywordtype">void</span> <a class="code" href="classWaveLoop.html#a3">addTime</a>(MY_FLOAT aTime);
00047
00049
00054 <span class="keywordtype">void</span> <a class="code" href="classWaveLoop.html#a4">addPhase</a>(MY_FLOAT anAngle);
00055
00057
00062 <span class="keywordtype">void</span> <a class="code" href="classWaveLoop.html#a5">addPhaseOffset</a>(MY_FLOAT anAngle);
00063
00065 <span class="keyword">const</span> MY_FLOAT *<a class="code" href="classWaveLoop.html#a6">tickFrame</a>(<span class="keywordtype">void</span>);
00066
00067 <span class="keyword">protected</span>:
00068
00069 <span class="comment">// Read file data.</span>
00070 <span class="keywordtype">void</span> readData(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> index);
00025
<a name="l00026"></a><a class="code" href="classWaveLoop.html">00026</a> <span class="keyword">class </span><a class="code" href="classWaveLoop.html">WaveLoop</a> : <span class="keyword">public</span> <a class="code" href="classWvIn.html">WvIn</a>
00027 {
00028 <span class="keyword">public</span>:
00030 <a class="code" href="classWaveLoop.html#a0">WaveLoop</a>( std::string fileName, <span class="keywordtype">bool</span> raw = <span class="keyword">false</span> );
00031
00033 <span class="keyword">virtual</span> <a class="code" href="classWaveLoop.html#a1">~WaveLoop</a>();
00034
00036
00042 <span class="keywordtype">void</span> <a class="code" href="classWaveLoop.html#a2">setFrequency</a>(StkFloat frequency);
00043
00045 <span class="keywordtype">void</span> <a class="code" href="classWaveLoop.html#a3">addTime</a>(StkFloat time);
00046
00048
00053 <span class="keywordtype">void</span> <a class="code" href="classWaveLoop.html#a4">addPhase</a>(StkFloat angle);
00054
00056
00061 <span class="keywordtype">void</span> <a class="code" href="classWaveLoop.html#a5">addPhaseOffset</a>(StkFloat angle);
00062
00064 <span class="keyword">const</span> StkFloat *<a class="code" href="classWaveLoop.html#a6">tickFrame</a>(<span class="keywordtype">void</span>);
00065
00067
00070 StkFloat *<a class="code" href="classWaveLoop.html#a6">tickFrame</a>(StkFloat *frameVector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> frames);
00071
00072 MY_FLOAT phaseOffset;
00073
00074 };
00075
00076 <span class="preprocessor">#endif // defined(__WAVELOOP_H)</span>
00079 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classWaveLoop.html#a6">tickFrame</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames );
00080
00081 <span class="keyword">protected</span>:
00082
00083 <span class="comment">// Read file data.</span>
00084 <span class="keywordtype">void</span> readData(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> index);
00085
00086 StkFloat phaseOffset_;
00087
00088 };
00089
00090 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,8 +12,8 @@
<h1>Whistle.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00017 <span class="comment">/***************************************************/</span>
00018
00019 <span class="preprocessor">#if !defined(__WHISTLE_H)</span>
00020 <span class="preprocessor"></span><span class="preprocessor">#define __WHISTLE_H</span>
00019 <span class="preprocessor">#ifndef STK_WHISTLE_H</span>
00020 <span class="preprocessor"></span><span class="preprocessor">#define STK_WHISTLE_H</span>
00021 <span class="preprocessor"></span>
00022 <span class="preprocessor">#include "Instrmnt.h"</span>
00023 <span class="preprocessor">#include "Sphere.h"</span>
@@ -26,53 +26,59 @@
<a name="l00030"></a><a class="code" href="classWhistle.html">00030</a> <span class="keyword">class </span><a class="code" href="classWhistle.html">Whistle</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
00031 {
00032 <span class="keyword">public</span>:
00034 <a class="code" href="classWhistle.html#a0">Whistle</a>();
00035
00037 <a class="code" href="classWhistle.html#a1">~Whistle</a>();
00034
00037 <a class="code" href="classWhistle.html#a0">Whistle</a>();
00038
00040 <span class="keywordtype">void</span> <a class="code" href="classWhistle.html#a2">clear</a>();
00040 <a class="code" href="classWhistle.html#a1">~Whistle</a>();
00041
00043 <span class="keywordtype">void</span> <a class="code" href="classWhistle.html#a3">setFrequency</a>(MY_FLOAT frequency);
00043 <span class="keywordtype">void</span> <a class="code" href="classWhistle.html#a2">clear</a>();
00044
00046 <span class="keywordtype">void</span> <a class="code" href="classWhistle.html#a4">startBlowing</a>(MY_FLOAT amplitude, MY_FLOAT rate);
00046 <span class="keywordtype">void</span> <a class="code" href="classWhistle.html#a3">setFrequency</a>(StkFloat frequency);
00047
00049 <span class="keywordtype">void</span> <a class="code" href="classWhistle.html#a5">stopBlowing</a>(MY_FLOAT rate);
00049 <span class="keywordtype">void</span> <a class="code" href="classWhistle.html#a4">startBlowing</a>(StkFloat amplitude, StkFloat rate);
00050
00052 <span class="keywordtype">void</span> <a class="code" href="classWhistle.html#a6">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00052 <span class="keywordtype">void</span> <a class="code" href="classWhistle.html#a5">stopBlowing</a>(StkFloat rate);
00053
00055 <span class="keywordtype">void</span> <a class="code" href="classWhistle.html#a7">noteOff</a>(MY_FLOAT amplitude);
00055 <span class="keywordtype">void</span> <a class="code" href="classWhistle.html#a6">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00056
00058 MY_FLOAT <a class="code" href="classWhistle.html#a8">tick</a>();
00058 <span class="keywordtype">void</span> <a class="code" href="classWhistle.html#a7">noteOff</a>(StkFloat amplitude);
00059
00061 <span class="keywordtype">void</span> <a class="code" href="classWhistle.html#a9">controlChange</a>(<span class="keywordtype">int</span> number, MY_FLOAT value);
00061 StkFloat <a class="code" href="classWhistle.html#a8">tick</a>();
00062
00063 <span class="keyword">protected</span>:
00064 <a class="code" href="classVector3D.html">Vector3D</a> *tempVectorP;
00065 <a class="code" href="classVector3D.html">Vector3D</a> *tempVector;
00066 <a class="code" href="classOnePole.html">OnePole</a> onepole;
00067 <a class="code" href="classNoise.html">Noise</a> noise;
00068 <a class="code" href="classEnvelope.html">Envelope</a> envelope;
00069 <a class="code" href="classSphere.html">Sphere</a> *can; <span class="comment">// Declare a Spherical "can".</span>
00070 <a class="code" href="classSphere.html">Sphere</a> *pea, *bumper; <span class="comment">// One spherical "pea", and a spherical "bumper".</span>
00071
00072 <a class="code" href="classWaveLoop.html">WaveLoop</a> *sine;
00073
00074 MY_FLOAT baseFrequency;
00075 MY_FLOAT maxPressure;
00076 MY_FLOAT noiseGain;
00077 MY_FLOAT fippleFreqMod;
00078 MY_FLOAT fippleGainMod;
00079 MY_FLOAT blowFreqMod;
00080 MY_FLOAT tickSize;
00081 MY_FLOAT canLoss;
00082 <span class="keywordtype">int</span> subSample, subSampCount;
00083 };
00084
00085 <span class="preprocessor">#endif</span>
00064 StkFloat *<a class="code" href="classWhistle.html#a8">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00065
00067
00073 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classWhistle.html#a8">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00074
00076 <span class="keywordtype">void</span> <a class="code" href="classWhistle.html#a11">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
00077
00078 <span class="keyword">protected</span>:
00079
00080 <a class="code" href="classVector3D.html">Vector3D</a> *tempVectorP_;
00081 <a class="code" href="classVector3D.html">Vector3D</a> tempVector_;
00082 <a class="code" href="classOnePole.html">OnePole</a> onepole_;
00083 <a class="code" href="classNoise.html">Noise</a> noise_;
00084 <a class="code" href="classEnvelope.html">Envelope</a> envelope_;
00085 <a class="code" href="classSphere.html">Sphere</a> can_; <span class="comment">// Declare a Spherical "can".</span>
00086 <a class="code" href="classSphere.html">Sphere</a> pea_, bumper_; <span class="comment">// One spherical "pea", and a spherical "bumper".</span>
00087
00088 <a class="code" href="classWaveLoop.html">WaveLoop</a> *sine_;
00089
00090 StkFloat baseFrequency_;
00091 StkFloat noiseGain_;
00092 StkFloat fippleFreqMod_;
00093 StkFloat fippleGainMod_;
00094 StkFloat blowFreqMod_;
00095 StkFloat tickSize_;
00096 StkFloat canLoss_;
00097 <span class="keywordtype">int</span> subSample_, subSampCount_;
00098 };
00099
00100 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,30 +12,36 @@
<h1>Wurley.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00031 <span class="comment">/***************************************************/</span>
00032
00033 <span class="preprocessor">#if !defined(__WURLEY_H)</span>
00034 <span class="preprocessor"></span><span class="preprocessor">#define __WURLEY_H</span>
00033 <span class="preprocessor">#ifndef STK_WURLEY_H</span>
00034 <span class="preprocessor"></span><span class="preprocessor">#define STK_WURLEY_H</span>
00035 <span class="preprocessor"></span>
00036 <span class="preprocessor">#include "FM.h"</span>
00037
<a name="l00038"></a><a class="code" href="classWurley.html">00038</a> <span class="keyword">class </span><a class="code" href="classWurley.html">Wurley</a> : <span class="keyword">public</span> <a class="code" href="classFM.html">FM</a>
00039 {
00040 <span class="keyword">public</span>:
00042 <a class="code" href="classWurley.html#a0">Wurley</a>();
00043
00045 <a class="code" href="classWurley.html#a1">~Wurley</a>();
00042
00045 <a class="code" href="classWurley.html#a0">Wurley</a>();
00046
00048 <span class="keywordtype">void</span> <a class="code" href="classWurley.html#a2">setFrequency</a>(MY_FLOAT frequency);
00048 <a class="code" href="classWurley.html#a1">~Wurley</a>();
00049
00051 <span class="keywordtype">void</span> <a class="code" href="classWurley.html#a3">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
00051 <span class="keywordtype">void</span> <a class="code" href="classWurley.html#a2">setFrequency</a>(StkFloat frequency);
00052
00054 MY_FLOAT <a class="code" href="classWurley.html#a4">tick</a>();
00055 };
00056
00057 <span class="preprocessor">#endif</span>
00054 <span class="keywordtype">void</span> <a class="code" href="classWurley.html#a3">noteOn</a>(StkFloat frequency, StkFloat amplitude);
00055
00057 StkFloat <a class="code" href="classWurley.html#a4">tick</a>();
00058
00060 StkFloat *<a class="code" href="classWurley.html#a4">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00061
00063
00069 <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classWurley.html#a4">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00070 };
00071
00072 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -10,125 +10,129 @@
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>WvIn.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00037 <span class="comment">/***************************************************/</span>
00038
00039 <span class="preprocessor">#if !defined(__WVIN_H)</span>
00040 <span class="preprocessor"></span><span class="preprocessor">#define __WVIN_H</span>
00041 <span class="preprocessor"></span>
00042 <span class="comment">// Files larger than CHUNK_THRESHOLD will be copied into memory</span>
00043 <span class="comment">// in CHUNK_SIZE increments, rather than completely loaded into</span>
00044 <span class="comment">// a buffer at once.</span>
00045
00046 <span class="preprocessor">#define CHUNK_THRESHOLD 5000000 // 5 Mb</span>
00047 <span class="preprocessor"></span><span class="preprocessor">#define CHUNK_SIZE 1024 // sample frames</span>
00048 <span class="preprocessor"></span>
00049 <span class="preprocessor">#include "Stk.h"</span>
00050 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
00043 <span class="comment">/***************************************************/</span>
00044
00045 <span class="preprocessor">#ifndef STK_WVIN_H</span>
00046 <span class="preprocessor"></span><span class="preprocessor">#define STK_WVIN_H</span>
00047 <span class="preprocessor"></span>
00048 <span class="comment">// Files larger than CHUNK_THRESHOLD will be copied into memory</span>
00049 <span class="comment">// in CHUNK_SIZE increments, rather than completely loaded into</span>
00050 <span class="comment">// a buffer at once.</span>
00051
<a name="l00052"></a><a class="code" href="classWvIn.html">00052</a> <span class="keyword">class </span><a class="code" href="classWvIn.html">WvIn</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00053 {
00054 <span class="keyword">public</span>:
00056 <a class="code" href="classWvIn.html#a0">WvIn</a>();
00057
00059
00063 <a class="code" href="classWvIn.html#a0">WvIn</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName, <span class="keywordtype">bool</span> raw = FALSE, <span class="keywordtype">bool</span> doNormalize = TRUE );
00052 <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> CHUNK_THRESHOLD = 5000000; <span class="comment">// 5 Mb</span>
00053 <span class="keyword">const</span> <span class="keywordtype">long</span> CHUNK_SIZE = 1024; <span class="comment">// sample frames</span>
00054
00055 <span class="preprocessor">#include "Stk.h"</span>
00056
<a name="l00057"></a><a class="code" href="classWvIn.html">00057</a> <span class="keyword">class </span><a class="code" href="classWvIn.html">WvIn</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00058 {
00059 <span class="keyword">public</span>:
00061 <a class="code" href="classWvIn.html#a0">WvIn</a>();
00062
00064
00066 <span class="keyword">virtual</span> <a class="code" href="classWvIn.html#a2">~WvIn</a>();
00067
00068 <a class="code" href="classWvIn.html#a0">WvIn</a>( std::string fileName, <span class="keywordtype">bool</span> raw = <span class="keyword">false</span>, <span class="keywordtype">bool</span> doNormalize = <span class="keyword">true</span> );
00069
00073 <span class="keywordtype">void</span> <a class="code" href="classWvIn.html#a3">openFile</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName, <span class="keywordtype">bool</span> raw = FALSE, <span class="keywordtype">bool</span> doNormalize = TRUE );
00071 <span class="keyword">virtual</span> <a class="code" href="classWvIn.html#a2">~WvIn</a>();
00072
00074
00076 <span class="keywordtype">void</span> <a class="code" href="classWvIn.html#a4">closeFile</a>(<span class="keywordtype">void</span>);
00077
00079 <span class="keywordtype">void</span> <a class="code" href="classWvIn.html#a5">reset</a>(<span class="keywordtype">void</span>);
00080
00078 <span class="keywordtype">void</span> <a class="code" href="classWvIn.html#a3">openFile</a>( std::string fileName, <span class="keywordtype">bool</span> raw = <span class="keyword">false</span>, <span class="keywordtype">bool</span> doNormalize = <span class="keyword">true</span> );
00079
00081 <span class="keywordtype">void</span> <a class="code" href="classWvIn.html#a4">closeFile</a>(<span class="keywordtype">void</span>);
00082
00088 <span class="keywordtype">void</span> <a class="code" href="classWvIn.html#a6">normalize</a>(<span class="keywordtype">void</span>);
00089
00091
00097 <span class="keywordtype">void</span> <a class="code" href="classWvIn.html#a6">normalize</a>(MY_FLOAT peak);
00098
00100 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classWvIn.html#a8">getSize</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00101
00103 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classWvIn.html#a9">getChannels</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00104
00084 <span class="keywordtype">void</span> <a class="code" href="classWvIn.html#a5">reset</a>(<span class="keywordtype">void</span>);
00085
00087
00093 <span class="keywordtype">void</span> <a class="code" href="classWvIn.html#a6">normalize</a>(<span class="keywordtype">void</span>);
00094
00096
00102 <span class="keywordtype">void</span> <a class="code" href="classWvIn.html#a6">normalize</a>(StkFloat peak);
00103
00105 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classWvIn.html#a8">getSize</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00106
00111 MY_FLOAT <a class="code" href="classWvIn.html#a10">getFileRate</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00112
00114 <span class="keywordtype">bool</span> <a class="code" href="classWvIn.html#a11">isFinished</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00115
00108 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classWvIn.html#a9">getChannels</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00109
00111
00116 StkFloat <a class="code" href="classWvIn.html#a10">getFileRate</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00117
00120 <span class="keywordtype">void</span> <a class="code" href="classWvIn.html#a12">setRate</a>(MY_FLOAT aRate);
00121
00123 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWvIn.html#a13">addTime</a>(MY_FLOAT aTime);
00124
00119 <span class="keywordtype">bool</span> <a class="code" href="classWvIn.html#a11">isFinished</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00120
00122
00125 <span class="keywordtype">void</span> <a class="code" href="classWvIn.html#a12">setRate</a>(StkFloat aRate);
00126
00132 <span class="keywordtype">void</span> <a class="code" href="classWvIn.html#a14">setInterpolate</a>(<span class="keywordtype">bool</span> doInterpolate);
00133
00135 <span class="keyword">virtual</span> MY_FLOAT <a class="code" href="classWvIn.html#a15">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00136
00128 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWvIn.html#a13">addTime</a>(StkFloat aTime);
00129
00131
00137 <span class="keywordtype">void</span> <a class="code" href="classWvIn.html#a14">setInterpolate</a>(<span class="keywordtype">bool</span> doInterpolate);
00138
00141 <span class="keyword">virtual</span> MY_FLOAT <a class="code" href="classWvIn.html#a16">tick</a>(<span class="keywordtype">void</span>);
00142
00144
00147 <span class="keyword">virtual</span> MY_FLOAT *<a class="code" href="classWvIn.html#a16">tick</a>(MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00148
00150 <span class="keyword">virtual</span> <span class="keyword">const</span> MY_FLOAT *<a class="code" href="classWvIn.html#a18">lastFrame</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00151
00140 <span class="keyword">virtual</span> StkFloat <a class="code" href="classWvIn.html#a15">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00141
00143
00146 <span class="keyword">virtual</span> StkFloat <a class="code" href="classWvIn.html#a16">tick</a>(<span class="keywordtype">void</span>);
00147
00149
00152 <span class="keyword">virtual</span> StkFloat *<a class="code" href="classWvIn.html#a16">tick</a>(StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00153
00156 <span class="keyword">virtual</span> <span class="keyword">const</span> MY_FLOAT *<a class="code" href="classWvIn.html#a19">tickFrame</a>(<span class="keywordtype">void</span>);
00157
00159
00162 <span class="keyword">virtual</span> MY_FLOAT *<a class="code" href="classWvIn.html#a19">tickFrame</a>(MY_FLOAT *frameVector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> frames);
00155
00162 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classWvIn.html#a16">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00163
00164 <span class="keyword">protected</span>:
00165
00166 <span class="comment">// Initialize class variables.</span>
00167 <span class="keywordtype">void</span> init( <span class="keywordtype">void</span> );
00165 <span class="keyword">virtual</span> <span class="keyword">const</span> StkFloat *<a class="code" href="classWvIn.html#a19">lastFrame</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00166
00168
00169 <span class="comment">// Read file data.</span>
00170 <span class="keyword">virtual</span> <span class="keywordtype">void</span> readData(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> index);
00171
00172 <span class="comment">// Get STK RAW file information.</span>
00173 <span class="keywordtype">bool</span> getRawInfo( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00171 <span class="keyword">virtual</span> <span class="keyword">const</span> StkFloat *<a class="code" href="classWvIn.html#a20">tickFrame</a>(<span class="keywordtype">void</span>);
00172
00174
00175 <span class="comment">// Get WAV file header information.</span>
00176 <span class="keywordtype">bool</span> getWavInfo( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00177
00178 <span class="comment">// Get SND (AU) file header information.</span>
00179 <span class="keywordtype">bool</span> getSndInfo( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00177 <span class="keyword">virtual</span> StkFloat *<a class="code" href="classWvIn.html#a20">tickFrame</a>(StkFloat *frameVector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> frames);
00178
00180
00181 <span class="comment">// Get AIFF file header information.</span>
00182 <span class="keywordtype">bool</span> getAifInfo( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00183
00184 <span class="comment">// Get MAT-file header information.</span>
00185 <span class="keywordtype">bool</span> getMatInfo( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00186
00187 <span class="keywordtype">char</span> msg[256];
00188 FILE *fd;
00189 MY_FLOAT *data;
00190 MY_FLOAT *lastOutput;
00191 <span class="keywordtype">bool</span> chunking;
00192 <span class="keywordtype">bool</span> finished;
00193 <span class="keywordtype">bool</span> interpolate;
00194 <span class="keywordtype">bool</span> byteswap;
00195 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> fileSize;
00196 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> bufferSize;
00197 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> dataOffset;
00198 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channels;
00199 <span class="keywordtype">long</span> chunkPointer;
00200 STK_FORMAT dataType;
00201 MY_FLOAT fileRate;
00202 MY_FLOAT gain;
00203 MY_FLOAT time;
00204 MY_FLOAT rate;
00205 };
00206
00207 <span class="preprocessor">#endif // defined(__WVIN_H)</span>
00186 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; <a class="code" href="classWvIn.html#a20">tickFrame</a>( <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames );
00187
00188 <span class="keyword">protected</span>:
00189
00190 <span class="comment">// Initialize class variables.</span>
00191 <span class="keywordtype">void</span> init( <span class="keywordtype">void</span> );
00192
00193 <span class="comment">// Read file data.</span>
00194 <span class="keyword">virtual</span> <span class="keywordtype">void</span> readData(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> index);
00195
00196 <span class="comment">// Get STK RAW file information.</span>
00197 <span class="keywordtype">bool</span> getRawInfo( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00198
00199 <span class="comment">// Get WAV file header information.</span>
00200 <span class="keywordtype">bool</span> getWavInfo( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00201
00202 <span class="comment">// Get SND (AU) file header information.</span>
00203 <span class="keywordtype">bool</span> getSndInfo( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00204
00205 <span class="comment">// Get AIFF file header information.</span>
00206 <span class="keywordtype">bool</span> getAifInfo( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00207
00208 <span class="comment">// Get MAT-file header information.</span>
00209 <span class="keywordtype">bool</span> getMatInfo( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00210
00211 FILE *fd_;
00212 StkFloat *data_;
00213 StkFloat *lastOutputs_;
00214 <span class="keywordtype">bool</span> chunking_;
00215 <span class="keywordtype">bool</span> finished_;
00216 <span class="keywordtype">bool</span> interpolate_;
00217 <span class="keywordtype">bool</span> byteswap_;
00218 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> fileSize_;
00219 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> bufferSize_;
00220 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> dataOffset_;
00221 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channels_;
00222 <span class="keywordtype">long</span> chunkPointer_;
00223 StkFormat dataType_;
00224 StkFloat fileRate_;
00225 StkFloat gain_;
00226 StkFloat time_;
00227 StkFloat rate_;
00228 };
00229
00230 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,104 +12,116 @@
<h1>WvOut.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00034 <span class="comment">/***************************************************/</span>
00035
00036 <span class="preprocessor">#if !defined(__WVOUT_H)</span>
00037 <span class="preprocessor"></span><span class="preprocessor">#define __WVOUT_H</span>
00036 <span class="preprocessor">#ifndef STK_WVOUT_H</span>
00037 <span class="preprocessor"></span><span class="preprocessor">#define STK_WVOUT_H</span>
00038 <span class="preprocessor"></span>
00039 <span class="preprocessor">#include "Stk.h"</span>
00040 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
00041
00042 <span class="preprocessor">#define BUFFER_SIZE 1024 // sample frames</span>
00043 <span class="preprocessor"></span>
<a name="l00044"></a><a class="code" href="classWvOut.html">00044</a> <span class="keyword">class </span><a class="code" href="classWvOut.html">WvOut</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00045 {
00046 <span class="keyword">public</span>:
00047
00048 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> FILE_TYPE;
00049
<a name="l00050"></a><a class="code" href="classWvOut.html#s0">00050</a> <span class="keyword">static</span> <span class="keyword">const</span> FILE_TYPE <a class="code" href="classWvOut.html#s0">WVOUT_RAW</a>;
<a name="l00051"></a><a class="code" href="classWvOut.html#s1">00051</a> <span class="keyword">static</span> <span class="keyword">const</span> FILE_TYPE <a class="code" href="classWvOut.html#s1">WVOUT_WAV</a>;
<a name="l00052"></a><a class="code" href="classWvOut.html#s2">00052</a> <span class="keyword">static</span> <span class="keyword">const</span> FILE_TYPE <a class="code" href="classWvOut.html#s2">WVOUT_SND</a>;
<a name="l00053"></a><a class="code" href="classWvOut.html#s3">00053</a> <span class="keyword">static</span> <span class="keyword">const</span> FILE_TYPE <a class="code" href="classWvOut.html#s3">WVOUT_AIF</a>;
<a name="l00054"></a><a class="code" href="classWvOut.html#s4">00054</a> <span class="keyword">static</span> <span class="keyword">const</span> FILE_TYPE <a class="code" href="classWvOut.html#s4">WVOUT_MAT</a>;
00056
00057 <a class="code" href="classWvOut.html#a0">WvOut</a>();
00058
00060
00063 <a class="code" href="classWvOut.html#a0">WvOut</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1, FILE_TYPE type = WVOUT_WAV, Stk::STK_FORMAT format = STK_SINT16 );
00064
00066 <span class="keyword">virtual</span> <a class="code" href="classWvOut.html#a2">~WvOut</a>();
00067
00069
00072 <span class="keywordtype">void</span> <a class="code" href="classWvOut.html#a3">openFile</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1,
00073 WvOut::FILE_TYPE type = WVOUT_WAV, Stk::STK_FORMAT format = STK_SINT16 );
00074
00076 <span class="keywordtype">void</span> <a class="code" href="classWvOut.html#a4">closeFile</a>( <span class="keywordtype">void</span> );
00077
00079 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classWvOut.html#a5">getFrames</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
00080
00082 MY_FLOAT <a class="code" href="classWvOut.html#a6">getTime</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
00083
00040
00041 <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> BUFFER_SIZE = 1024; <span class="comment">// sample frames</span>
00042
<a name="l00043"></a><a class="code" href="classWvOut.html">00043</a> <span class="keyword">class </span><a class="code" href="classWvOut.html">WvOut</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00044 {
00045 <span class="keyword">public</span>:
00046
00047 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> FILE_TYPE;
00048
<a name="l00049"></a><a class="code" href="classWvOut.html#s0">00049</a> <span class="keyword">static</span> <span class="keyword">const</span> FILE_TYPE <a class="code" href="classWvOut.html#s0">WVOUT_RAW</a>;
<a name="l00050"></a><a class="code" href="classWvOut.html#s1">00050</a> <span class="keyword">static</span> <span class="keyword">const</span> FILE_TYPE <a class="code" href="classWvOut.html#s1">WVOUT_WAV</a>;
<a name="l00051"></a><a class="code" href="classWvOut.html#s2">00051</a> <span class="keyword">static</span> <span class="keyword">const</span> FILE_TYPE <a class="code" href="classWvOut.html#s2">WVOUT_SND</a>;
<a name="l00052"></a><a class="code" href="classWvOut.html#s3">00052</a> <span class="keyword">static</span> <span class="keyword">const</span> FILE_TYPE <a class="code" href="classWvOut.html#s3">WVOUT_AIF</a>;
<a name="l00053"></a><a class="code" href="classWvOut.html#s4">00053</a> <span class="keyword">static</span> <span class="keyword">const</span> FILE_TYPE <a class="code" href="classWvOut.html#s4">WVOUT_MAT</a>;
00055
00056 <a class="code" href="classWvOut.html#a0">WvOut</a>();
00057
00059
00062 <a class="code" href="classWvOut.html#a0">WvOut</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1, FILE_TYPE type = WVOUT_WAV, Stk::StkFormat format = STK_SINT16 );
00063
00065 <span class="keyword">virtual</span> <a class="code" href="classWvOut.html#a2">~WvOut</a>();
00066
00068
00071 <span class="keywordtype">void</span> <a class="code" href="classWvOut.html#a3">openFile</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1,
00072 WvOut::FILE_TYPE type = WVOUT_WAV, Stk::StkFormat format = STK_SINT16 );
00073
00075 <span class="keywordtype">void</span> <a class="code" href="classWvOut.html#a4">closeFile</a>( <span class="keywordtype">void</span> );
00076
00078 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classWvOut.html#a5">getFrames</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
00079
00081 StkFloat <a class="code" href="classWvOut.html#a6">getTime</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
00082
<a name="l00084"></a><a class="code" href="classWvOut.html#a7">00084</a> <span class="keywordtype">bool</span> <a class="code" href="classWvOut.html#a7">getClipStatus</a>( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> clipping_; };
00085
00088 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWvOut.html#a7">tick</a>(<span class="keyword">const</span> MY_FLOAT sample);
00089
00091
00094 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWvOut.html#a7">tick</a>(<span class="keyword">const</span> MY_FLOAT *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize);
00095
00097
00100 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWvOut.html#a9">tickFrame</a>(<span class="keyword">const</span> MY_FLOAT *frameVector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> frames = 1);
00101
00102 <span class="keyword">protected</span>:
00103
00104 <span class="comment">// Initialize class variables.</span>
00105 <span class="keywordtype">void</span> init( <span class="keywordtype">void</span> );
00106
00107 <span class="comment">// Write data to output file;</span>
00108 <span class="keyword">virtual</span> <span class="keywordtype">void</span> writeData( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> frames );
<a name="l00087"></a><a class="code" href="classWvOut.html#a8">00087</a> <span class="keywordtype">void</span> <a class="code" href="classWvOut.html#a8">resetClipStatus</a>( <span class="keywordtype">void</span> ) { clipping_ = <span class="keyword">false</span>; };
00088
00090
00093 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWvOut.html#a9">tick</a>(<span class="keyword">const</span> StkFloat sample);
00094
00096
00099 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWvOut.html#a9">tick</a>( <span class="keyword">const</span> StkFloat *vector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vectorSize );
00100
00102
00108 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWvOut.html#a9">tick</a>( <span class="keyword">const</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 1 );
00109
00110 <span class="comment">// Write STK RAW file header.</span>
00111 <span class="keywordtype">bool</span> setRawFile( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00112
00113 <span class="comment">// Write WAV file header.</span>
00114 <span class="keywordtype">bool</span> setWavFile( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00111
00114 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWvOut.html#a12">tickFrame</a>( <span class="keyword">const</span> StkFloat *frameVector, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> frames = 1);
00115
00116 <span class="comment">// Close WAV file, updating the header.</span>
00117 <span class="keywordtype">void</span> closeWavFile( <span class="keywordtype">void</span> );
00118
00119 <span class="comment">// Write SND (AU) file header.</span>
00120 <span class="keywordtype">bool</span> setSndFile( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00121
00122 <span class="comment">// Close SND file, updating the header.</span>
00123 <span class="keywordtype">void</span> closeSndFile( <span class="keywordtype">void</span> );
00124
00125 <span class="comment">// Write AIFF file header.</span>
00126 <span class="keywordtype">bool</span> setAifFile( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00127
00128 <span class="comment">// Close AIFF file, updating the header.</span>
00129 <span class="keywordtype">void</span> closeAifFile( <span class="keywordtype">void</span> );
00130
00131 <span class="comment">// Write MAT-file header.</span>
00132 <span class="keywordtype">bool</span> setMatFile( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00133
00134 <span class="comment">// Close MAT-file, updating the header.</span>
00135 <span class="keywordtype">void</span> closeMatFile( <span class="keywordtype">void</span> );
00136
00137 <span class="keywordtype">char</span> msg[256];
00138 FILE *fd;
00139 MY_FLOAT *data;
00140 FILE_TYPE fileType;
00141 STK_FORMAT dataType;
00142 <span class="keywordtype">bool</span> byteswap;
00143 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channels;
00144 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> counter;
00145 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> totalCount;
00117
00122 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWvOut.html#a12">tickFrame</a>( <span class="keyword">const</span> <a class="code" href="classStkFrames.html">StkFrames</a>&amp; frames );
00123
00124 <span class="keyword">protected</span>:
00125
00126 <span class="comment">// Initialize class variables.</span>
00127 <span class="keywordtype">void</span> init( <span class="keywordtype">void</span> );
00128
00129 <span class="comment">// Write data to output file;</span>
00130 <span class="keyword">virtual</span> <span class="keywordtype">void</span> writeData( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> frames );
00131
00132 <span class="comment">// Check for sample clipping and clamp.</span>
00133 <span class="keywordtype">void</span> clipTest( StkFloat&amp; sample );
00134
00135 <span class="comment">// Write STK RAW file header.</span>
00136 <span class="keywordtype">bool</span> setRawFile( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00137
00138 <span class="comment">// Write WAV file header.</span>
00139 <span class="keywordtype">bool</span> setWavFile( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00140
00141 <span class="comment">// Close WAV file, updating the header.</span>
00142 <span class="keywordtype">void</span> closeWavFile( <span class="keywordtype">void</span> );
00143
00144 <span class="comment">// Write SND (AU) file header.</span>
00145 <span class="keywordtype">bool</span> setSndFile( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00146
00147 };
00148
00149 <span class="preprocessor">#endif // defined(__WVOUT_H)</span>
00147 <span class="comment">// Close SND file, updating the header.</span>
00148 <span class="keywordtype">void</span> closeSndFile( <span class="keywordtype">void</span> );
00149
00150 <span class="comment">// Write AIFF file header.</span>
00151 <span class="keywordtype">bool</span> setAifFile( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00152
00153 <span class="comment">// Close AIFF file, updating the header.</span>
00154 <span class="keywordtype">void</span> closeAifFile( <span class="keywordtype">void</span> );
00155
00156 <span class="comment">// Write MAT-file header.</span>
00157 <span class="keywordtype">bool</span> setMatFile( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
00158
00159 <span class="comment">// Close MAT-file, updating the header.</span>
00160 <span class="keywordtype">void</span> closeMatFile( <span class="keywordtype">void</span> );
00161
00162 FILE *fd_;
00163 std::valarray&lt;StkFloat&gt; data_;
00164 FILE_TYPE fileType_;
00165 StkFormat dataType_;
00166 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channels_;
00167 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> counter_;
00168 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> totalCount_;
00169 <span class="keywordtype">bool</span> byteswap_;
00170 <span class="keywordtype">bool</span> clipping_;
00171
00172 };
00173
00174 <span class="preprocessor">#endif</span>
</pre></div><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -11,13 +11,14 @@
<!-- Generated by Doxygen 1.3.4 -->
<h1>STK Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="classADSR.html">ADSR</a></td><td class="indexvalue">STK ADSR envelope class </td></tr>
<tr><td class="indexkey"><a class="el" href="classAsymp.html">Asymp</a></td><td class="indexvalue">STK asymptotic curve envelope class </td></tr>
<tr><td class="indexkey"><a class="el" href="classBandedWG.html">BandedWG</a></td><td class="indexvalue">Banded waveguide modeling class </td></tr>
<tr><td class="indexkey"><a class="el" href="classBeeThree.html">BeeThree</a></td><td class="indexvalue">STK Hammond-oid organ <a class="el" href="classFM.html">FM</a> synthesis instrument </td></tr>
<tr><td class="indexkey"><a class="el" href="classBiQuad.html">BiQuad</a></td><td class="indexvalue">STK biquad (two-pole, two-zero) filter class </td></tr>
<tr><td class="indexkey"><a class="el" href="classBlowBotl.html">BlowBotl</a></td><td class="indexvalue">STK blown bottle instrument class </td></tr>
<tr><td class="indexkey"><a class="el" href="classBlowHole.html">BlowHole</a></td><td class="indexvalue">STK clarinet physical model with one register hole and one tonehole </td></tr>
<tr><td class="indexkey"><a class="el" href="classBowed.html">Bowed</a></td><td class="indexvalue">STK bowed string instrument class </td></tr>
<tr><td class="indexkey"><a class="el" href="classBowTabl.html">BowTabl</a></td><td class="indexvalue">STK bowed string table class </td></tr>
<tr><td class="indexkey"><a class="el" href="classBowTable.html">BowTable</a></td><td class="indexvalue">STK bowed string table class </td></tr>
<tr><td class="indexkey"><a class="el" href="classBrass.html">Brass</a></td><td class="indexvalue">STK simple brass instrument class </td></tr>
<tr><td class="indexkey"><a class="el" href="classChorus.html">Chorus</a></td><td class="indexvalue">STK chorus effect class </td></tr>
<tr><td class="indexkey"><a class="el" href="classClarinet.html">Clarinet</a></td><td class="indexvalue">STK clarinet physical model class </td></tr>
@@ -26,23 +27,28 @@
<tr><td class="indexkey"><a class="el" href="classDelayL.html">DelayL</a></td><td class="indexvalue">STK linear interpolating delay line class </td></tr>
<tr><td class="indexkey"><a class="el" href="classDrummer.html">Drummer</a></td><td class="indexvalue">STK drum sample player class </td></tr>
<tr><td class="indexkey"><a class="el" href="classEcho.html">Echo</a></td><td class="indexvalue">STK echo effect class </td></tr>
<tr><td class="indexkey"><a class="el" href="classEffect.html">Effect</a></td><td class="indexvalue">STK abstract effects parent class </td></tr>
<tr><td class="indexkey"><a class="el" href="classEnvelope.html">Envelope</a></td><td class="indexvalue">STK envelope base class </td></tr>
<tr><td class="indexkey"><a class="el" href="classFilter.html">Filter</a></td><td class="indexvalue">STK filter class </td></tr>
<tr><td class="indexkey"><a class="el" href="classFlute.html">Flute</a></td><td class="indexvalue">STK flute physical model class </td></tr>
<tr><td class="indexkey"><a class="el" href="classFM.html">FM</a></td><td class="indexvalue">STK abstract FM synthesis base class </td></tr>
<tr><td class="indexkey"><a class="el" href="classFMVoices.html">FMVoices</a></td><td class="indexvalue">STK singing <a class="el" href="classFM.html">FM</a> synthesis instrument </td></tr>
<tr><td class="indexkey"><a class="el" href="classFormSwep.html">FormSwep</a></td><td class="indexvalue">STK sweepable formant filter class </td></tr>
<tr><td class="indexkey"><a class="el" href="classFunction.html">Function</a></td><td class="indexvalue">STK abstract function parent class </td></tr>
<tr><td class="indexkey"><a class="el" href="classGenerator.html">Generator</a></td><td class="indexvalue">STK abstract unit generator parent class </td></tr>
<tr><td class="indexkey"><a class="el" href="classHevyMetl.html">HevyMetl</a></td><td class="indexvalue">STK heavy metal <a class="el" href="classFM.html">FM</a> synthesis instrument </td></tr>
<tr><td class="indexkey"><a class="el" href="classInstrmnt.html">Instrmnt</a></td><td class="indexvalue">STK instrument abstract base class </td></tr>
<tr><td class="indexkey"><a class="el" href="classJCRev.html">JCRev</a></td><td class="indexvalue">John Chowning's reverberator class </td></tr>
<tr><td class="indexkey"><a class="el" href="classJetTabl.html">JetTabl</a></td><td class="indexvalue">STK jet table class </td></tr>
<tr><td class="indexkey"><a class="el" href="classJetTable.html">JetTable</a></td><td class="indexvalue">STK jet table class </td></tr>
<tr><td class="indexkey"><a class="el" href="classMandolin.html">Mandolin</a></td><td class="indexvalue">STK mandolin instrument model class </td></tr>
<tr><td class="indexkey"><a class="el" href="classMesh2D.html">Mesh2D</a></td><td class="indexvalue">Two-dimensional rectilinear waveguide mesh class </td></tr>
<tr><td class="indexkey"><a class="el" href="classMessager.html">Messager</a></td><td class="indexvalue">STK input control message parser </td></tr>
<tr><td class="indexkey"><a class="el" href="classMidiFileIn.html">MidiFileIn</a></td><td class="indexvalue">A standard MIDI file reading/parsing class </td></tr>
<tr><td class="indexkey"><a class="el" href="classModal.html">Modal</a></td><td class="indexvalue">STK resonance model instrument </td></tr>
<tr><td class="indexkey"><a class="el" href="classModalBar.html">ModalBar</a></td><td class="indexvalue">STK resonant bar instrument class </td></tr>
<tr><td class="indexkey"><a class="el" href="classModulate.html">Modulate</a></td><td class="indexvalue">STK periodic/random modulator </td></tr>
<tr><td class="indexkey"><a class="el" href="classMoog.html">Moog</a></td><td class="indexvalue">STK moog-like swept filter sampling synthesis class </td></tr>
<tr><td class="indexkey"><a class="el" href="classMutex.html">Mutex</a></td><td class="indexvalue">STK mutex class </td></tr>
<tr><td class="indexkey"><a class="el" href="classNoise.html">Noise</a></td><td class="indexvalue">STK noise generator </td></tr>
<tr><td class="indexkey"><a class="el" href="classNRev.html">NRev</a></td><td class="indexvalue">CCRMA's NRev reverberator class </td></tr>
<tr><td class="indexkey"><a class="el" href="classOnePole.html">OnePole</a></td><td class="indexvalue">STK one-pole filter class </td></tr>
@@ -54,29 +60,32 @@
<tr><td class="indexkey"><a class="el" href="classPluckTwo.html">PluckTwo</a></td><td class="indexvalue">STK enhanced plucked string model class </td></tr>
<tr><td class="indexkey"><a class="el" href="classPoleZero.html">PoleZero</a></td><td class="indexvalue">STK one-pole, one-zero filter class </td></tr>
<tr><td class="indexkey"><a class="el" href="classPRCRev.html">PRCRev</a></td><td class="indexvalue">Perry's simple reverberator class </td></tr>
<tr><td class="indexkey"><a class="el" href="classReedTabl.html">ReedTabl</a></td><td class="indexvalue">STK reed table class </td></tr>
<tr><td class="indexkey"><a class="el" href="classReedTable.html">ReedTable</a></td><td class="indexvalue">STK reed table class </td></tr>
<tr><td class="indexkey"><a class="el" href="classResonate.html">Resonate</a></td><td class="indexvalue">STK noise driven formant filter </td></tr>
<tr><td class="indexkey"><a class="el" href="classReverb.html">Reverb</a></td><td class="indexvalue">STK abstract reverberator parent class </td></tr>
<tr><td class="indexkey"><a class="el" href="classRhodey.html">Rhodey</a></td><td class="indexvalue">STK Fender Rhodes electric piano <a class="el" href="classFM.html">FM</a> synthesis instrument </td></tr>
<tr><td class="indexkey"><a class="el" href="classRtAudio.html">RtAudio</a></td><td class="indexvalue">Realtime audio i/o C++ classes </td></tr>
<tr><td class="indexkey"><a class="el" href="structRtAudioDeviceInfo.html">RtAudioDeviceInfo</a></td><td class="indexvalue">The public device information structure for returning queried values </td></tr>
<tr><td class="indexkey"><a class="el" href="classRtDuplex.html">RtDuplex</a></td><td class="indexvalue">STK realtime audio input/output class </td></tr>
<tr><td class="indexkey"><a class="el" href="classRtDuplex.html">RtDuplex</a></td><td class="indexvalue">STK realtime audio (blocking) input/output class </td></tr>
<tr><td class="indexkey"><a class="el" href="classRtError.html">RtError</a></td><td class="indexvalue">Exception handling class for <a class="el" href="classRtAudio.html">RtAudio</a> &amp; <a class="el" href="classRtMidi.html">RtMidi</a> </td></tr>
<tr><td class="indexkey"><a class="el" href="classRtMidi.html">RtMidi</a></td><td class="indexvalue">STK realtime MIDI class </td></tr>
<tr><td class="indexkey"><a class="el" href="classRtWvIn.html">RtWvIn</a></td><td class="indexvalue">STK realtime audio input class </td></tr>
<tr><td class="indexkey"><a class="el" href="classRtWvOut.html">RtWvOut</a></td><td class="indexvalue">STK realtime audio output class </td></tr>
<tr><td class="indexkey"><a class="el" href="classRtMidi.html">RtMidi</a></td><td class="indexvalue">An abstract base class for realtime MIDI input/output </td></tr>
<tr><td class="indexkey"><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td class="indexvalue">A realtime MIDI input class </td></tr>
<tr><td class="indexkey"><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td class="indexvalue">A realtime MIDI output class </td></tr>
<tr><td class="indexkey"><a class="el" href="classRtWvIn.html">RtWvIn</a></td><td class="indexvalue">STK realtime audio (blocking) input class </td></tr>
<tr><td class="indexkey"><a class="el" href="classRtWvOut.html">RtWvOut</a></td><td class="indexvalue">STK realtime audio (blocking) output class </td></tr>
<tr><td class="indexkey"><a class="el" href="classSampler.html">Sampler</a></td><td class="indexvalue">STK sampling synthesis abstract base class </td></tr>
<tr><td class="indexkey"><a class="el" href="classSaxofony.html">Saxofony</a></td><td class="indexvalue">STK faux conical bore reed instrument class </td></tr>
<tr><td class="indexkey"><a class="el" href="classShakers.html">Shakers</a></td><td class="indexvalue">PhISEM and PhOLIES class </td></tr>
<tr><td class="indexkey"><a class="el" href="classSimple.html">Simple</a></td><td class="indexvalue">STK wavetable/noise instrument </td></tr>
<tr><td class="indexkey"><a class="el" href="classSingWave.html">SingWave</a></td><td class="indexvalue">STK "singing" looped soundfile class </td></tr>
<tr><td class="indexkey"><a class="el" href="classSitar.html">Sitar</a></td><td class="indexvalue">STK sitar string model class </td></tr>
<tr><td class="indexkey"><a class="el" href="classSKINI.html">SKINI</a></td><td class="indexvalue">STK SKINI parsing class </td></tr>
<tr><td class="indexkey"><a class="el" href="classSkini.html">Skini</a></td><td class="indexvalue">STK SKINI parsing class </td></tr>
<tr><td class="indexkey"><a class="el" href="structSkini_1_1Message.html">Skini::Message</a></td><td class="indexvalue">A message structure to store and pass parsed SKINI messages </td></tr>
<tr><td class="indexkey"><a class="el" href="classSocket.html">Socket</a></td><td class="indexvalue">STK TCP socket client/server class </td></tr>
<tr><td class="indexkey"><a class="el" href="classSphere.html">Sphere</a></td><td class="indexvalue">STK sphere class </td></tr>
<tr><td class="indexkey"><a class="el" href="classStifKarp.html">StifKarp</a></td><td class="indexvalue">STK plucked stiff string instrument </td></tr>
<tr><td class="indexkey"><a class="el" href="classStk.html">Stk</a></td><td class="indexvalue">STK base class </td></tr>
<tr><td class="indexkey"><a class="el" href="classStkError.html">StkError</a></td><td class="indexvalue">STK error handling class </td></tr>
<tr><td class="indexkey"><a class="el" href="classStkFrames.html">StkFrames</a></td><td class="indexvalue">An STK class to handle vectorized audio data </td></tr>
<tr><td class="indexkey"><a class="el" href="classSubNoise.html">SubNoise</a></td><td class="indexvalue">STK sub-sampled noise generator </td></tr>
<tr><td class="indexkey"><a class="el" href="classTable.html">Table</a></td><td class="indexvalue">STK table lookup class </td></tr>
<tr><td class="indexkey"><a class="el" href="classTcpWvIn.html">TcpWvIn</a></td><td class="indexvalue">STK internet streaming input class </td></tr>
@@ -97,7 +106,7 @@
<HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -12,46 +12,52 @@
<h1>ADSR Member List</h1>This is the complete list of members for <a class="el" href="classADSR.html">ADSR</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classADSR.html#a0">ADSR</a>(void)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classEnvelope.html#a0">Envelope</a>(void)</td><td><a class="el" href="classEnvelope.html">Envelope</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classGenerator.html#a0">Generator</a>()</td><td><a class="el" href="classGenerator.html">Generator</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a13">getState</a>(void) const </td><td><a class="el" href="classADSR.html">ADSR</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#f0">handleError</a>(const char *message, StkError::TYPE type)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [protected, static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e8">handleError</a>(const char *message, StkError::Type type)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e9">handleError</a>(std::string message, StkError::Type type)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#b2">handleError</a>(StkError::Type type)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a3">keyOff</a>(void)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a2">keyOn</a>(void)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classEnvelope.html#a11">lastOut</a>(void) const </td><td><a class="el" href="classEnvelope.html">Envelope</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s3">MY_FLOAT32</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s4">MY_FLOAT64</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e2">rawwavePath</a>(void)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e0">sampleRate</a>(void)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a11">setAllTimes</a>(MY_FLOAT aTime, MY_FLOAT dTime, MY_FLOAT sLevel, MY_FLOAT rTime)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a4">setAttackRate</a>(MY_FLOAT aRate)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a8">setAttackTime</a>(MY_FLOAT aTime)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a5">setDecayRate</a>(MY_FLOAT aRate)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a9">setDecayTime</a>(MY_FLOAT aTime)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classEnvelope.html#a4">setRate</a>(MY_FLOAT aRate)</td><td><a class="el" href="classEnvelope.html">Envelope</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e3">setRawwavePath</a>(std::string newPath)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a7">setReleaseRate</a>(MY_FLOAT aRate)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a10">setReleaseTime</a>(MY_FLOAT aTime)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e1">setSampleRate</a>(MY_FLOAT newRate)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a6">setSustainLevel</a>(MY_FLOAT aLevel)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a12">setTarget</a>(MY_FLOAT aTarget)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classEnvelope.html#a5">setTime</a>(MY_FLOAT aTime)</td><td><a class="el" href="classEnvelope.html">Envelope</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a14">setValue</a>(MY_FLOAT aValue)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classGenerator.html#a2">lastOut</a>() const </td><td><a class="el" href="classGenerator.html">Generator</a></td><td><code> [inline, virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e2">rawwavePath</a>(void)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [inline, static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e0">sampleRate</a>(void)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [inline, static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a11">setAllTimes</a>(StkFloat aTime, StkFloat dTime, StkFloat sLevel, StkFloat rTime)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a4">setAttackRate</a>(StkFloat rate)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a8">setAttackTime</a>(StkFloat time)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a5">setDecayRate</a>(StkFloat rate)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a9">setDecayTime</a>(StkFloat time)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classEnvelope.html#a4">setRate</a>(StkFloat rate)</td><td><a class="el" href="classEnvelope.html">Envelope</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e3">setRawwavePath</a>(std::string path)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a7">setReleaseRate</a>(StkFloat rate)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a10">setReleaseTime</a>(StkFloat time)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e1">setSampleRate</a>(StkFloat rate)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [inline, static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a6">setSustainLevel</a>(StkFloat level)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a12">setTarget</a>(StkFloat target)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classEnvelope.html#a5">setTime</a>(StkFloat time)</td><td><a class="el" href="classEnvelope.html">Envelope</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a14">setValue</a>(StkFloat value)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e7">sleep</a>(unsigned long milliseconds)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#b0">Stk</a>(void)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s4">STK_FLOAT32</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s5">STK_FLOAT64</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s1">STK_SINT16</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s2">STK_SINT32</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s2">STK_SINT24</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s3">STK_SINT32</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s0">STK_SINT8</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e4">swap16</a>(unsigned char *ptr)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e5">swap32</a>(unsigned char *ptr)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e6">swap64</a>(unsigned char *ptr)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a15">tick</a>(void)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a16">tick</a>(MY_FLOAT *vector, unsigned int vectorSize)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a16">tick</a>(StkFloat *vector, unsigned int vectorSize)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a17">tick</a>(StkFrames &amp;frames, unsigned int channel=1)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classADSR.html#a1">~ADSR</a>(void)</td><td><a class="el" href="classADSR.html">ADSR</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classEnvelope.html#a1">~Envelope</a>(void)</td><td><a class="el" href="classEnvelope.html">Envelope</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classGenerator.html#a1">~Generator</a>()</td><td><a class="el" href="classGenerator.html">Generator</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#b1">~Stk</a>(void)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [protected, virtual]</code></td></tr>
</table><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

View File

@@ -9,18 +9,24 @@
<a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="information.html">Information</a> &nbsp; <a class="qindex" href="classes.html">Classes</a> &nbsp; <a class="qindex" href="download.html">Download</a> &nbsp; <a class="qindex" href="usage.html">Usage</a> &nbsp; <a class="qindex" href="maillist.html">Mail List</a> &nbsp; <a class="qindex" href="system.html">Requirements</a> &nbsp; <a class="qindex" href="links.html">Links</a> &nbsp; <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>ADSR Class Reference</h1>STK ADSR envelope class.
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="ADSR_8h-source.html">ADSR.h</a>&gt;</code>
<h1>ADSR Class Reference</h1><code>#include &lt;<a class="el" href="ADSR_8h-source.html">ADSR.h</a>&gt;</code>
<p>
<p>Inheritance diagram for ADSR:
<p><center><img src="classADSR.png" usemap="#ADSR_map" border="0" alt=""></center>
<map name="ADSR_map">
<area href="classEnvelope.html" alt="Envelope" shape="rect" coords="0,56,65,80">
<area href="classStk.html" alt="Stk" shape="rect" coords="0,0,65,24">
<area href="classEnvelope.html" alt="Envelope" shape="rect" coords="0,112,69,136">
<area href="classGenerator.html" alt="Generator" shape="rect" coords="0,56,69,80">
<area href="classStk.html" alt="Stk" shape="rect" coords="0,0,69,24">
</map>
<a href="classADSR-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
<a href="classADSR-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
STK ADSR envelope class.
<p>
This <a class="el" href="classEnvelope.html">Envelope</a> subclass implements a traditional ADSR (Attack, Decay, Sustain, Release) envelope. It responds to simple keyOn and keyOff messages, keeping track of its state. The <em>state</em> = ADSR::DONE after the envelope value reaches 0.0 in the ADSR::RELEASE state.<p>
by Perry R. Cook and Gary P. Scavone, 1995 - 2004.
<p>
<p>
Definition at line <a class="el" href="ADSR_8h-source.html#l00023">23</a> of file <a class="el" href="ADSR_8h-source.html">ADSR.h</a>.<table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom></td></tr>
@@ -44,39 +50,39 @@ void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classA
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set target = 0, state = <em>ADSR::RELEASE</em>. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a4" doxytag="ADSR::setAttackRate" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a4">setAttackRate</a> (MY_FLOAT aRate)</td></tr>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a4">setAttackRate</a> (StkFloat rate)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the attack rate. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a5" doxytag="ADSR::setDecayRate" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a5">setDecayRate</a> (MY_FLOAT aRate)</td></tr>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a5">setDecayRate</a> (StkFloat rate)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the decay rate. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a6" doxytag="ADSR::setSustainLevel" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a6">setSustainLevel</a> (MY_FLOAT aLevel)</td></tr>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a6">setSustainLevel</a> (StkFloat level)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the sustain level. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a7" doxytag="ADSR::setReleaseRate" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a7">setReleaseRate</a> (MY_FLOAT aRate)</td></tr>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a7">setReleaseRate</a> (StkFloat rate)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the release rate. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a8" doxytag="ADSR::setAttackTime" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a8">setAttackTime</a> (MY_FLOAT aTime)</td></tr>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a8">setAttackTime</a> (StkFloat time)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the attack rate based on a time duration. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a9" doxytag="ADSR::setDecayTime" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a9">setDecayTime</a> (MY_FLOAT aTime)</td></tr>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a9">setDecayTime</a> (StkFloat time)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the decay rate based on a time duration. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a10" doxytag="ADSR::setReleaseTime" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a10">setReleaseTime</a> (MY_FLOAT aTime)</td></tr>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a10">setReleaseTime</a> (StkFloat time)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the release rate based on a time duration. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a11" doxytag="ADSR::setAllTimes" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a11">setAllTimes</a> (MY_FLOAT aTime, MY_FLOAT dTime, MY_FLOAT sLevel, MY_FLOAT rTime)</td></tr>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a11">setAllTimes</a> (StkFloat aTime, StkFloat dTime, StkFloat sLevel, StkFloat rTime)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set sustain level and attack, decay, and release state rates based on time durations. <br><br></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set sustain level and attach, decay, and release time durations. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a12" doxytag="ADSR::setTarget" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a12">setTarget</a> (MY_FLOAT aTarget)</td></tr>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a12">setTarget</a> (StkFloat target)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the target value. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a13" doxytag="ADSR::getState" ></a>
@@ -84,32 +90,70 @@ int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classAD
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the current envelope <em>state</em> (ATTACK, DECAY, SUSTAIN, RELEASE, DONE). <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a14" doxytag="ADSR::setValue" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a14">setValue</a> (MY_FLOAT aValue)</td></tr>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a14">setValue</a> (StkFloat value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set to state = ADSR::SUSTAIN with current and target values of <em>aValue</em>. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a15" doxytag="ADSR::tick" ></a>
MY_FLOAT&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a15">tick</a> (void)</td></tr>
StkFloat&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a15">tick</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return one envelope output value. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a16" doxytag="ADSR::tick" ></a>
MY_FLOAT *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a16">tick</a> (MY_FLOAT *vector, unsigned int vectorSize)</td></tr>
StkFloat *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a16">tick</a> (StkFloat *vector, unsigned int vectorSize)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return <em>vectorSize</em> envelope outputs in <em>vector</em>. <br><br></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute <em>vectorSize</em> outputs and return them in <em>vector</em>. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classStkFrames.html">StkFrames</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classADSR.html#a17">tick</a> (<a class="el" href="classStkFrames.html">StkFrames</a> &amp;frames, unsigned int channel=1)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fill a channel of the <a class="el" href="classStkFrames.html">StkFrames</a> object with computed outputs. </em> <a href="#a17"></a><em><br><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
STK ADSR envelope class.
<p>
This <a class="el" href="classEnvelope.html">Envelope</a> subclass implements a traditional ADSR (Attack, Decay, Sustain, Release) envelope. It responds to simple keyOn and keyOff messages, keeping track of its state. The <em>state</em> = ADSR::DONE after the envelope value reaches 0.0 in the ADSR::RELEASE state.<p>
by Perry R. Cook and Gary P. Scavone, 1995 - 2002.
<p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="a17" doxytag="ADSR::tick" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="el" href="classStkFrames.html">StkFrames</a>&amp; ADSR::tick </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="classStkFrames.html">StkFrames</a> &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>frames</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>unsigned int&nbsp;</td>
<td class="mdname" nowrap> <em>channel</em> = 1</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Definition at line <a class="el" href="ADSR_8h-source.html#l00023">23</a> of file <a class="el" href="ADSR_8h-source.html">ADSR.h</a>.<hr>The documentation for this class was generated from the following file:<ul>
Fill a channel of the <a class="el" href="classStkFrames.html">StkFrames</a> object with computed outputs.
<p>
The <code>channel</code> argument should be one or greater (the first channel is specified by 1). An <a class="el" href="classStkError.html">StkError</a> will be thrown if the <code>channel</code> argument is zero or it is greater than the number of channels in the <a class="el" href="classStkFrames.html">StkFrames</a> object.
<p>
Reimplemented from <a class="el" href="classEnvelope.html#a11">Envelope</a>. </td>
</tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="ADSR_8h-source.html">ADSR.h</a></ul>
<HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 366 B

After

Width:  |  Height:  |  Size: 472 B

View File

@@ -0,0 +1,58 @@
<HTML>
<HEAD>
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"> &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="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>Asymp Member List</h1>This is the complete list of members for <a class="el" href="classAsymp.html">Asymp</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classAsymp.html#a0">Asymp</a>(void)</td><td><a class="el" href="classAsymp.html">Asymp</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classEnvelope.html#a0">Envelope</a>(void)</td><td><a class="el" href="classEnvelope.html">Envelope</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classGenerator.html#a0">Generator</a>()</td><td><a class="el" href="classGenerator.html">Generator</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classEnvelope.html#a8">getState</a>(void) const </td><td><a class="el" href="classEnvelope.html">Envelope</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e8">handleError</a>(const char *message, StkError::Type type)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e9">handleError</a>(std::string message, StkError::Type type)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#b2">handleError</a>(StkError::Type type)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classAsymp.html#a3">keyOff</a>(void)</td><td><a class="el" href="classAsymp.html">Asymp</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classAsymp.html#a2">keyOn</a>(void)</td><td><a class="el" href="classAsymp.html">Asymp</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classGenerator.html#a2">lastOut</a>() const </td><td><a class="el" href="classGenerator.html">Generator</a></td><td><code> [inline, virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e2">rawwavePath</a>(void)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [inline, static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e0">sampleRate</a>(void)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [inline, static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classEnvelope.html#a4">setRate</a>(StkFloat rate)</td><td><a class="el" href="classEnvelope.html">Envelope</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e3">setRawwavePath</a>(std::string path)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e1">setSampleRate</a>(StkFloat rate)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [inline, static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classAsymp.html#a6">setTarget</a>(StkFloat target)</td><td><a class="el" href="classAsymp.html">Asymp</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classAsymp.html#a4">setTau</a>(StkFloat tau)</td><td><a class="el" href="classAsymp.html">Asymp</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classAsymp.html#a5">setTime</a>(StkFloat time)</td><td><a class="el" href="classAsymp.html">Asymp</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classEnvelope.html#a7">setValue</a>(StkFloat value)</td><td><a class="el" href="classEnvelope.html">Envelope</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e7">sleep</a>(unsigned long milliseconds)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#b0">Stk</a>(void)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s4">STK_FLOAT32</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s5">STK_FLOAT64</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s1">STK_SINT16</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s2">STK_SINT24</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s3">STK_SINT32</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s0">STK_SINT8</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e4">swap16</a>(unsigned char *ptr)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e5">swap32</a>(unsigned char *ptr)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e6">swap64</a>(unsigned char *ptr)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classAsymp.html#a7">tick</a>(void)</td><td><a class="el" href="classAsymp.html">Asymp</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classAsymp.html#a8">tick</a>(StkFloat *vector, unsigned int vectorSize)</td><td><a class="el" href="classAsymp.html">Asymp</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classAsymp.html#a9">tick</a>(StkFrames &amp;frames, unsigned int channel=1)</td><td><a class="el" href="classAsymp.html">Asymp</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classAsymp.html#a1">~Asymp</a>(void)</td><td><a class="el" href="classAsymp.html">Asymp</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classEnvelope.html#a1">~Envelope</a>(void)</td><td><a class="el" href="classEnvelope.html">Envelope</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classGenerator.html#a1">~Generator</a>()</td><td><a class="el" href="classGenerator.html">Generator</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#b1">~Stk</a>(void)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [protected, virtual]</code></td></tr>
</table><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-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>
</HTML>

157
doc/html/classAsymp.html Normal file
View File

@@ -0,0 +1,157 @@
<HTML>
<HEAD>
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<img src="princeton.gif"> &nbsp; <img src="ccrma.gif"> &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="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>Asymp Class Reference</h1><code>#include &lt;<a class="el" href="Asymp_8h-source.html">Asymp.h</a>&gt;</code>
<p>
<p>Inheritance diagram for Asymp:
<p><center><img src="classAsymp.png" usemap="#Asymp_map" border="0" alt=""></center>
<map name="Asymp_map">
<area href="classEnvelope.html" alt="Envelope" shape="rect" coords="0,112,69,136">
<area href="classGenerator.html" alt="Generator" shape="rect" coords="0,56,69,80">
<area href="classStk.html" alt="Stk" shape="rect" coords="0,0,69,24">
</map>
<a href="classAsymp-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
STK asymptotic curve envelope class.
<p>
This class implements a simple envelope generator which asymptotically approaches a target value. The algorithm used is of the form:<p>
x[n] = a x[n-1] + (1-a) target,<p>
where a = exp(-T/tau), T is the sample period, and tau is a time constant. The user can set the time constant (default value = 0.3) and target value. Theoretically, this recursion never reaches its target, though the calculations in this class are stopped when the current value gets within a small threshold value of the target (at which time the current value is set to the target). It responds to <em>keyOn</em> and <em>keyOff</em> messages by ramping to 1.0 on keyOn and to 0.0 on keyOff.<p>
by Perry R. Cook and Gary P. Scavone, 1995 - 2004.
<p>
<p>
Definition at line <a class="el" href="Asymp_8h-source.html#l00033">33</a> of file <a class="el" href="Asymp_8h-source.html">Asymp.h</a>.<table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a0" doxytag="Asymp::Asymp" ></a>
&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classAsymp.html#a0">Asymp</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a1" doxytag="Asymp::~Asymp" ></a>
&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classAsymp.html#a1">~Asymp</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class destructor. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a2" doxytag="Asymp::keyOn" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classAsymp.html#a2">keyOn</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set target = 1. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a3" doxytag="Asymp::keyOff" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classAsymp.html#a3">keyOff</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set target = 0. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classAsymp.html#a4">setTau</a> (StkFloat tau)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the asymptotic rate via the time factor <em>tau</em> (must be &gt; 0). </em> <a href="#a4"></a><em><br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a5" doxytag="Asymp::setTime" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classAsymp.html#a5">setTime</a> (StkFloat time)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the asymptotic rate based on a time duration (must be &gt; 0). <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a6" doxytag="Asymp::setTarget" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classAsymp.html#a6">setTarget</a> (StkFloat target)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the target value. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a7" doxytag="Asymp::tick" ></a>
StkFloat&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classAsymp.html#a7">tick</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return one envelope output value. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a8" doxytag="Asymp::tick" ></a>
StkFloat *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classAsymp.html#a8">tick</a> (StkFloat *vector, unsigned int vectorSize)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute <em>vectorSize</em> outputs and return them in <em>vector</em>. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classStkFrames.html">StkFrames</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classAsymp.html#a9">tick</a> (<a class="el" href="classStkFrames.html">StkFrames</a> &amp;frames, unsigned int channel=1)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fill a channel of the <a class="el" href="classStkFrames.html">StkFrames</a> object with computed outputs. </em> <a href="#a9"></a><em><br><br></td></tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="a4" doxytag="Asymp::setTau" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void Asymp::setTau </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">StkFloat&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>tau</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Set the asymptotic rate via the time factor <em>tau</em> (must be &gt; 0).
<p>
The rate is computed as described above. The value of <em>tau</em> must be greater than zero. Values of <em>tau</em> close to zero produce fast approach rates, while values greater than 1.0 produce rather slow rates. </td>
</tr>
</table>
<a class="anchor" name="a9" doxytag="Asymp::tick" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="el" href="classStkFrames.html">StkFrames</a>&amp; Asymp::tick </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="classStkFrames.html">StkFrames</a> &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>frames</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>unsigned int&nbsp;</td>
<td class="mdname" nowrap> <em>channel</em> = 1</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Fill a channel of the <a class="el" href="classStkFrames.html">StkFrames</a> object with computed outputs.
<p>
The <code>channel</code> argument should be one or greater (the first channel is specified by 1). An <a class="el" href="classStkError.html">StkError</a> will be thrown if the <code>channel</code> argument is zero or it is greater than the number of channels in the <a class="el" href="classStkFrames.html">StkFrames</a> object.
<p>
Reimplemented from <a class="el" href="classEnvelope.html#a11">Envelope</a>. </td>
</tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="Asymp_8h-source.html">Asymp.h</a></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>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>
</BODY>
</HTML>

BIN
doc/html/classAsymp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 481 B

View File

@@ -12,43 +12,47 @@
<h1>BandedWG Member List</h1>This is the complete list of members for <a class="el" href="classBandedWG.html">BandedWG</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a0">BandedWG</a>()</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a2">clear</a>()</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a12">controlChange</a>(int number, MY_FLOAT value)</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#f0">handleError</a>(const char *message, StkError::TYPE type)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [protected, static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a14">controlChange</a>(int number, StkFloat value)</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e8">handleError</a>(const char *message, StkError::Type type)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e9">handleError</a>(std::string message, StkError::Type type)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#b2">handleError</a>(StkError::Type type)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInstrmnt.html#a0">Instrmnt</a>()</td><td><a class="el" href="classInstrmnt.html">Instrmnt</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classInstrmnt.html#a5">lastOut</a>() const </td><td><a class="el" href="classInstrmnt.html">Instrmnt</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classInstrmnt.html#a6">lastOutLeft</a>() const </td><td><a class="el" href="classInstrmnt.html">Instrmnt</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classInstrmnt.html#a7">lastOutRight</a>() const </td><td><a class="el" href="classInstrmnt.html">Instrmnt</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s3">MY_FLOAT32</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s4">MY_FLOAT64</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a10">noteOff</a>(MY_FLOAT amplitude)</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a9">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude)</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a8">pluck</a>(MY_FLOAT amp)</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e2">rawwavePath</a>(void)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e0">sampleRate</a>(void)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a5">setFrequency</a>(MY_FLOAT frequency)</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a10">noteOff</a>(StkFloat amplitude)</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a9">noteOn</a>(StkFloat frequency, StkFloat amplitude)</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a8">pluck</a>(StkFloat amp)</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e2">rawwavePath</a>(void)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [inline, static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e0">sampleRate</a>(void)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [inline, static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a5">setFrequency</a>(StkFloat frequency)</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a4">setPreset</a>(int preset)</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e3">setRawwavePath</a>(std::string newPath)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e1">setSampleRate</a>(MY_FLOAT newRate)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a3">setStrikePosition</a>(MY_FLOAT position)</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e3">setRawwavePath</a>(std::string path)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e1">setSampleRate</a>(StkFloat rate)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [inline, static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a3">setStrikePosition</a>(StkFloat position)</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e7">sleep</a>(unsigned long milliseconds)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a6">startBowing</a>(MY_FLOAT amplitude, MY_FLOAT rate)</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a6">startBowing</a>(StkFloat amplitude, StkFloat rate)</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#b0">Stk</a>(void)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s4">STK_FLOAT32</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s5">STK_FLOAT64</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s1">STK_SINT16</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s2">STK_SINT32</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s2">STK_SINT24</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s3">STK_SINT32</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#s0">STK_SINT8</a></td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a7">stopBowing</a>(MY_FLOAT rate)</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a7">stopBowing</a>(StkFloat rate)</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e4">swap16</a>(unsigned char *ptr)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e5">swap32</a>(unsigned char *ptr)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#e6">swap64</a>(unsigned char *ptr)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a11">tick</a>()</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInstrmnt.html#a9">Instrmnt::tick</a>(MY_FLOAT *vector, unsigned int vectorSize)</td><td><a class="el" href="classInstrmnt.html">Instrmnt</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a12">tick</a>(StkFloat *vector, unsigned int vectorSize)</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a13">tick</a>(StkFrames &amp;frames, unsigned int channel=1)</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classBandedWG.html#a1">~BandedWG</a>()</td><td><a class="el" href="classBandedWG.html">BandedWG</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classInstrmnt.html#a1">~Instrmnt</a>()</td><td><a class="el" href="classInstrmnt.html">Instrmnt</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classStk.html#b1">~Stk</a>(void)</td><td><a class="el" href="classStk.html">Stk</a></td><td><code> [protected, virtual]</code></td></tr>
</table><HR>
<table>
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>

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