mirror of
https://github.com/thestk/stk
synced 2026-02-02 23:56:16 +00:00
Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
11d1dc54f3 | ||
|
|
d6c67cc479 | ||
|
|
6ed16eb806 | ||
|
|
05230b11d5 | ||
|
|
3e103671d9 | ||
|
|
071280a311 | ||
|
|
15a2c89f89 | ||
|
|
889328c3c1 | ||
|
|
62416d7e3f | ||
|
|
9627701d04 | ||
|
|
9966f06757 | ||
|
|
56bcdc32ed | ||
|
|
2ddc79e3bd | ||
|
|
96b1a72186 | ||
|
|
2a6ada02a7 | ||
|
|
488301223a | ||
|
|
08f71c8fa9 | ||
|
|
e03aa486dd | ||
|
|
5dd605ecfd | ||
|
|
77a5cfa4aa | ||
|
|
77bdb45575 | ||
|
|
ff52b9f0b0 | ||
|
|
fe0f5d7f96 | ||
|
|
e1aa259517 | ||
|
|
95fcd14213 | ||
|
|
a5bef56e76 |
@@ -1,9 +1,9 @@
|
|||||||
% The Synthesis ToolKit in C++ (STK)
|
% The Synthesis ToolKit in C++ (STK)
|
||||||
% Perry R. Cook and Gary P. Scavone
|
% Perry R. Cook and Gary P. Scavone
|
||||||
% 1995--2016
|
% 1995--2017
|
||||||
|
|
||||||
# The Synthesis ToolKit in C++ (STK)
|
# The Synthesis ToolKit in C++ (STK)
|
||||||
By Perry R. Cook and Gary P. Scavone, 1995--2016.
|
By Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
|
|
||||||
The Synthesis ToolKit in C++ can be used in a variety of ways, depending on your particular needs. Some people simply choose the classes they need for a particular project and copy those to their project directory. Others like to compile and link to a library of object files. STK was not designed with one particular style of use in mind.
|
The Synthesis ToolKit in C++ can be used in a variety of ways, depending on your particular needs. Some people simply choose the classes they need for a particular project and copy those to their project directory. Others like to compile and link to a library of object files. STK was not designed with one particular style of use in mind.
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@ Several options can be passed to configure, including:
|
|||||||
--disable-realtime = only compile generic non-realtime classes
|
--disable-realtime = only compile generic non-realtime classes
|
||||||
--enable-debug = enable various debug output
|
--enable-debug = enable various debug output
|
||||||
--with-alsa = choose native ALSA API support (default, linux only)
|
--with-alsa = choose native ALSA API support (default, linux only)
|
||||||
--with-oss = choose native OSS API support (linux only)
|
--with-oss = choose native OSS API support (unixes only)
|
||||||
--with-jack = choose native JACK server API support (linux and macintosh OS-X)
|
--with-jack = choose native JACK server API support (linux and macintosh OS-X)
|
||||||
--with-core = choose OS-X Core Audio API (macintosh OS-X only)
|
--with-core = choose OS-X Core Audio API (macintosh OS-X only)
|
||||||
--with-asio = choose ASIO API support (windows only)
|
--with-asio = choose ASIO API support (windows only)
|
||||||
|
|||||||
2
LICENSE
2
LICENSE
@@ -1,6 +1,6 @@
|
|||||||
The Synthesis ToolKit in C++ (STK)
|
The Synthesis ToolKit in C++ (STK)
|
||||||
|
|
||||||
Copyright (c) 1995--2016 Perry R. Cook and Gary P. Scavone
|
Copyright (c) 1995--2017 Perry R. Cook and Gary P. Scavone
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
a copy of this software and associated documentation files (the
|
a copy of this software and associated documentation files (the
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# The Synthesis ToolKit in C++ (STK)
|
# The Synthesis ToolKit in C++ (STK)
|
||||||
By Perry R. Cook and Gary P. Scavone, 1995--2016.
|
By Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
|
|
||||||
This distribution of the Synthesis ToolKit in C++ (STK) contains the following:
|
This distribution of the Synthesis ToolKit in C++ (STK) contains the following:
|
||||||
|
|
||||||
|
|||||||
62
configure.ac
62
configure.ac
@@ -1,5 +1,5 @@
|
|||||||
# Process this file with autoconf to produce a configure script.
|
# Process this file with autoconf to produce a configure script.
|
||||||
AC_INIT(STK, 4.5.1, gary@music.mcgill.ca, stk)
|
AC_INIT(STK, 4.6.0, gary@music.mcgill.ca, stk)
|
||||||
AC_CONFIG_AUX_DIR(config)
|
AC_CONFIG_AUX_DIR(config)
|
||||||
AC_CONFIG_SRCDIR(src/Stk.cpp)
|
AC_CONFIG_SRCDIR(src/Stk.cpp)
|
||||||
AC_CONFIG_FILES(Makefile src/Makefile projects/demo/Makefile projects/effects/Makefile projects/ragamatic/Makefile projects/examples/Makefile projects/examples/libMakefile projects/eguitar/Makefile)
|
AC_CONFIG_FILES(Makefile src/Makefile projects/demo/Makefile projects/effects/Makefile projects/ragamatic/Makefile projects/examples/Makefile projects/examples/libMakefile projects/eguitar/Makefile)
|
||||||
@@ -126,86 +126,88 @@ esac
|
|||||||
if test $realtime = yes; then
|
if test $realtime = yes; then
|
||||||
# Checks for package options and external software
|
# Checks for package options and external software
|
||||||
AC_MSG_CHECKING(for audio API)
|
AC_MSG_CHECKING(for audio API)
|
||||||
case $host in
|
|
||||||
*-*-linux*)
|
AC_ARG_WITH(jack, [ --with-jack = choose JACK server support (mac and linux only)])
|
||||||
AC_ARG_WITH(jack, [ --with-jack = choose JACK server support (mac and linux only)], [
|
AS_IF([test "x$with_jack" == "xyes"], [
|
||||||
api="$api -D__UNIX_JACK__"
|
api="$api -D__UNIX_JACK__"
|
||||||
AC_MSG_RESULT(using JACK)
|
AC_MSG_RESULT(using JACK)
|
||||||
AC_CHECK_LIB(jack, jack_client_open, , AC_MSG_ERROR(JACK support requires the jack library!))
|
AC_CHECK_LIB(jack, jack_client_open, , AC_MSG_ERROR(JACK support requires the jack library!))])
|
||||||
AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR(Jack support also requires the asound library!))], )
|
|
||||||
|
|
||||||
|
case $host in
|
||||||
|
*-*-linux*)
|
||||||
# Look for ALSA flag
|
# Look for ALSA flag
|
||||||
AC_ARG_WITH(alsa, [ --with-alsa = choose native ALSA API support (linux only)], [
|
AC_ARG_WITH(alsa, [ --with-alsa = choose native ALSA API support (linux only)])
|
||||||
|
AS_IF([test "x$with_alsa" == "xyes"], [
|
||||||
api="$api -D__LINUX_ALSA__"
|
api="$api -D__LINUX_ALSA__"
|
||||||
AC_MSG_RESULT(using ALSA)
|
AC_MSG_RESULT(using ALSA)
|
||||||
AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR(ALSA support requires the asound library!))], )
|
AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR(ALSA support requires the asound library!))])
|
||||||
|
|
||||||
# Look for OSS flag
|
# Look for OSS flag
|
||||||
AC_ARG_WITH(oss, [ --with-oss = choose OSS API support (linux only)], [
|
AC_ARG_WITH(oss, [ --with-oss = choose OSS API support (unixes only)])
|
||||||
|
AS_IF([test "x$with_oss" == "xyes"], [
|
||||||
api="$api -D__LINUX_OSS__ -D__LINUX_ALSA__"
|
api="$api -D__LINUX_OSS__ -D__LINUX_ALSA__"
|
||||||
AC_MSG_RESULT(using OSS)
|
AC_MSG_RESULT(using OSS)
|
||||||
AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR(OSS support requires ALSA for RtMidi!))], )
|
AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR(OSS support requires ALSA for RtMidi!))])
|
||||||
|
|
||||||
# If no audio api flags specified, use ALSA
|
# If no audio api flags specified, use ALSA
|
||||||
if [test "$api" == "";] then
|
AS_IF([test "$api" == ""], [
|
||||||
AC_MSG_RESULT(using ALSA)
|
AC_MSG_RESULT(using ALSA)
|
||||||
AC_SUBST( api, [-D__LINUX_ALSA__] )
|
AC_SUBST( api, [-D__LINUX_ALSA__] )
|
||||||
AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR(ALSA support requires the asound library!))
|
AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR(ALSA support requires the asound library!))
|
||||||
fi
|
])
|
||||||
|
|
||||||
AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR(RtAudio requires the pthread library!))
|
AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR(RtAudio requires the pthread library!))
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*-apple*)
|
*-apple*)
|
||||||
AC_ARG_WITH(jack, [ --with-jack = choose JACK server support (unix only)], [
|
|
||||||
api="$api -D__UNIX_JACK__"
|
|
||||||
AC_MSG_RESULT(using JACK)
|
|
||||||
AC_CHECK_LIB(jack, jack_client_new, , AC_MSG_ERROR(JACK support requires the jack library!))], )
|
|
||||||
|
|
||||||
# Look for Core flag
|
# Look for Core flag
|
||||||
AC_ARG_WITH(core, [ --with-core = choose CoreAudio API support (mac only)], [
|
AC_ARG_WITH(core, [ --with-core = choose CoreAudio API support (mac only)])
|
||||||
|
AS_IF([test "x$with_core" == "xyes"], [
|
||||||
api="$api -D__MACOSX_CORE__"
|
api="$api -D__MACOSX_CORE__"
|
||||||
AC_MSG_RESULT(using CoreAudio)
|
AC_MSG_RESULT(using CoreAudio)
|
||||||
AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [], [AC_MSG_ERROR(CoreAudio header files not found!)] )
|
AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [], [AC_MSG_ERROR(CoreAudio header files not found!)] )
|
||||||
LIBS="$LIBS -framework CoreAudio -framework CoreFoundation -framework CoreMidi" ], )
|
LIBS="$LIBS -framework CoreAudio -framework CoreFoundation -framework CoreMIDI" ])
|
||||||
|
|
||||||
# If no audio api flags specified, use CoreAudio
|
# If no audio api flags specified, use CoreAudio
|
||||||
if [test "$api" == ""; ] then
|
AS_IF([test "$api" == ""], [
|
||||||
AC_SUBST( api, [-D__MACOSX_CORE__] )
|
AC_SUBST( api, [-D__MACOSX_CORE__] )
|
||||||
AC_MSG_RESULT(using CoreAudio)
|
AC_MSG_RESULT(using CoreAudio)
|
||||||
AC_CHECK_HEADER(CoreAudio/CoreAudio.h,
|
AC_CHECK_HEADER(CoreAudio/CoreAudio.h,
|
||||||
[],
|
[],
|
||||||
[AC_MSG_ERROR(CoreAudio header files not found!)] )
|
[AC_MSG_ERROR(CoreAudio header files not found!)] )
|
||||||
AC_SUBST( LIBS, ["-framework CoreAudio -framework CoreFoundation -framework CoreMidi"] )
|
AC_SUBST( LIBS, ["-framework CoreAudio -framework CoreFoundation -framework CoreMIDI"] )
|
||||||
fi
|
])
|
||||||
|
|
||||||
AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR(RtAudio requires the pthread library!))
|
AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR(RtAudio requires the pthread library!))
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*-mingw32*)
|
*-mingw32*)
|
||||||
AC_ARG_WITH(asio, [ --with-asio = choose ASIO API support (windoze only)], [
|
AC_ARG_WITH(asio, [ --with-asio = choose ASIO API support (windoze only)])
|
||||||
|
AS_IF([test "x$with_asio" == "xyes"], [
|
||||||
api="$api -D__WINDOWS_ASIO__"
|
api="$api -D__WINDOWS_ASIO__"
|
||||||
AC_MSG_RESULT(using ASIO)
|
AC_MSG_RESULT(using ASIO)
|
||||||
AC_SUBST( objects, ["asio.o asiodrivers.o asiolist.o iasiothiscallresolver.o"] ) ], )
|
AC_SUBST( objects, ["asio.o asiodrivers.o asiolist.o iasiothiscallresolver.o"] ) ])
|
||||||
|
|
||||||
# Look for DirectSound flag
|
# Look for DirectSound flag
|
||||||
AC_ARG_WITH(ds, [ --with-ds = choose DirectSound API support (windoze only)], [
|
AC_ARG_WITH(ds, [ --with-ds = choose DirectSound API support (windoze only)])
|
||||||
|
AS_IF([test "x$with_ds" == "xyes"], [
|
||||||
api="$api -D__WINDOWS_DS__"
|
api="$api -D__WINDOWS_DS__"
|
||||||
AC_MSG_RESULT(using DirectSound)
|
AC_MSG_RESULT(using DirectSound)
|
||||||
LIBS="-ldsound $LIBS" ], )
|
LIBS="-ldsound $LIBS" ])
|
||||||
|
|
||||||
# Look for WASAPI flag
|
# Look for WASAPI flag
|
||||||
AC_ARG_WITH(wasapi, [ --with-wasapi = choose Windows Audio Session API support (windoze only)], [
|
AC_ARG_WITH(wasapi, [ --with-wasapi = choose Windows Audio Session API support (windoze only)])
|
||||||
|
AS_IF([test "x$with_wasapi" == "xyes"], [
|
||||||
api="$api -D__WINDOWS_WASAPI__"
|
api="$api -D__WINDOWS_WASAPI__"
|
||||||
AC_MSG_RESULT(using WASAPI)
|
AC_MSG_RESULT(using WASAPI)
|
||||||
LIBS="-luuid -lksuser $LIBS" ], )
|
LIBS="-luuid -lksuser $LIBS" ])
|
||||||
|
|
||||||
# If no audio api flags specified, use DirectSound
|
# If no audio api flags specified, use DirectSound
|
||||||
if [test "$api" == "";] then
|
AS_IF([test "$api" == ""], [
|
||||||
AC_SUBST( api, [-D__WINDOWS_DS__] )
|
AC_SUBST( api, [-D__WINDOWS_DS__] )
|
||||||
AC_MSG_RESULT(using DirectSound)
|
AC_MSG_RESULT(using DirectSound)
|
||||||
LIBS="-ldsound -lwinmm $LIBS"
|
LIBS="-ldsound -lwinmm $LIBS"
|
||||||
fi
|
])
|
||||||
|
|
||||||
api="$api -D__WINDOWS_MM__"
|
api="$api -D__WINDOWS_MM__"
|
||||||
LIBS="-lole32 -lwinmm -lwsock32 $LIBS"
|
LIBS="-lole32 -lwinmm -lwsock32 $LIBS"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
The Synthesis ToolKit in C++ (STK)
|
The Synthesis ToolKit in C++ (STK)
|
||||||
|
|
||||||
By Perry R. Cook and Gary P. Scavone, 1995--2016.
|
By Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
|
|
||||||
Please read the file README and INSTALL for more general STK information.
|
Please read the file README and INSTALL for more general STK information.
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
The Synthesis ToolKit in C++ (STK)
|
The Synthesis ToolKit in C++ (STK)
|
||||||
|
|
||||||
By Perry R. Cook and Gary P. Scavone, 1995--2016.
|
By Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
|
|
||||||
Please read the file README and INSTALL for more general STK information.
|
Please read the file README and INSTALL for more general STK information.
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
The Synthesis ToolKit in C++ (STK)
|
The Synthesis ToolKit in C++ (STK)
|
||||||
|
|
||||||
By Perry R. Cook and Gary P. Scavone, 1995--2016.
|
By Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
|
|
||||||
Please read the file README and INSTALL for more general STK information.
|
Please read the file README and INSTALL for more general STK information.
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
The Synthesis ToolKit in C++ (STK)
|
The Synthesis ToolKit in C++ (STK)
|
||||||
|
|
||||||
By Perry R. Cook and Gary P. Scavone, 1995--2016.
|
By Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
|
|
||||||
Please read the file README for more general STK information.
|
Please read the file README for more general STK information.
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,16 @@
|
|||||||
The Synthesis ToolKit in C++ (STK)
|
The Synthesis ToolKit in C++ (STK)
|
||||||
|
|
||||||
By Perry R. Cook and Gary P. Scavone, 1995--2016.
|
By Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
|
|
||||||
v4.5.1 (22 February 2016)
|
v.4.6.0 (31 August 2017)
|
||||||
|
- see github site for complete details
|
||||||
|
- various build system updates
|
||||||
|
- fixes in FileWvIn / FileLoop for normalisation and scaling, as well as file opening
|
||||||
|
- bug fix for MAT-files in FileWrite
|
||||||
|
- bug fix in MidiFileIn.cpp for timing and time-code formats
|
||||||
|
- updated versions of RtAudio and RtMidi
|
||||||
|
|
||||||
|
v4.5.1 (22 February 2017)
|
||||||
- fix for FileWvIn / FileLoop classes to avoid keeping files open if not necessary
|
- fix for FileWvIn / FileLoop classes to avoid keeping files open if not necessary
|
||||||
- miscellaneous bug fixes, documented on GitHub site (github.com/thestk/stk)
|
- miscellaneous bug fixes, documented on GitHub site (github.com/thestk/stk)
|
||||||
- update to play.cpp example to play mono files as stereo
|
- update to play.cpp example to play mono files as stereo
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ PROJECT_NAME = STK
|
|||||||
# This could be handy for archiving the generated documentation or
|
# This could be handy for archiving the generated documentation or
|
||||||
# if some version control system is used.
|
# if some version control system is used.
|
||||||
|
|
||||||
PROJECT_NUMBER = 4.5.1
|
PROJECT_NUMBER = 4.6.0
|
||||||
|
|
||||||
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
|
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
|
||||||
# base path where the generated documentation will be put.
|
# base path where the generated documentation will be put.
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ STK compiles with realtime support on the following flavors of the Unix operatin
|
|||||||
<TD>Macintosh OS X</TD>
|
<TD>Macintosh OS X</TD>
|
||||||
<TD>CoreAudio</TD>
|
<TD>CoreAudio</TD>
|
||||||
<TD>__MACOSX_CORE__</TD>
|
<TD>__MACOSX_CORE__</TD>
|
||||||
<TD><TT>pthread, CoreAudio, CoreMidi, CoreFoundation</TT></TD>
|
<TD><TT>pthread, CoreAudio, CoreMIDI, CoreFoundation</TT></TD>
|
||||||
</TR>
|
</TR>
|
||||||
</TABLE>
|
</TABLE>
|
||||||
</CENTER>
|
</CENTER>
|
||||||
|
|||||||
@@ -1,10 +1,18 @@
|
|||||||
/*! \page download Download, Release Notes, and Bug Fixes
|
/*! \page download Download, Release Notes, and Bug Fixes
|
||||||
|
|
||||||
\section down Download Version 4.5.1 (22 February 2016):
|
\section down Download Version 4.6.0 (31 August 2017):
|
||||||
|
|
||||||
- <A HREF="http://ccrma.stanford.edu/software/stk/release/stk-4.5.1.tar.gz">Source distribution</A>
|
- <A HREF="http://ccrma.stanford.edu/software/stk/release/stk-4.6.0.tar.gz">Source distribution</A>
|
||||||
|
|
||||||
\section notes Release Notes:
|
\section notes Release Notes:
|
||||||
|
\subsection v4dot6dot0 Version 4.6.0
|
||||||
|
- see github site for complete details (github.com/thestk/stk)
|
||||||
|
- various build system updates
|
||||||
|
- fixes in FileWvIn / FileLoop for normalisation and scaling, as well as file opening
|
||||||
|
- bug fix for MAT-files in FileWrite
|
||||||
|
- bug fix in MidiFileIn.cpp for timing and time-code formats
|
||||||
|
- updated versions of RtAudio and RtMidi
|
||||||
|
|
||||||
\subsection v4dot5dot1 Version 4.5.1
|
\subsection v4dot5dot1 Version 4.5.1
|
||||||
- fix for FileWvIn / FileLoop classes to avoid keeping files open if not necessary
|
- fix for FileWvIn / FileLoop classes to avoid keeping files open if not necessary
|
||||||
- miscellaneous bug fixes, documented on GitHub site (github.com/thestk/stk)
|
- miscellaneous bug fixes, documented on GitHub site (github.com/thestk/stk)
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ work with any standard C++ compiler.
|
|||||||
STK WWW site: http://ccrma.stanford.edu/software/stk/
|
STK WWW site: http://ccrma.stanford.edu/software/stk/
|
||||||
|
|
||||||
The Synthesis ToolKit in C++ (STK)
|
The Synthesis ToolKit in C++ (STK)
|
||||||
Copyright (c) 1995--2016 Perry R. Cook and Gary P. Scavone
|
Copyright (c) 1995--2017 Perry R. Cook and Gary P. Scavone
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
a copy of this software and associated documentation files (the
|
a copy of this software and associated documentation files (the
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||||
<tr><td>©1995--2016 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
<tr><td>©1995--2017 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
</BODY>
|
</BODY>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
STK: A ToolKit of Audio Synthesis Classes and Instruments in C++
|
STK: A ToolKit of Audio Synthesis Classes and Instruments in C++
|
||||||
|
|
||||||
By Perry R. Cook and Gary P. Scavone, 1995--2016.
|
By Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
|
|
||||||
STK Classes - See the HTML documentation in the html directory for complete information.
|
STK Classes - See the HTML documentation in the html directory for complete information.
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace stk {
|
|||||||
be non-negative. All time settings are in seconds and must be
|
be non-negative. All time settings are in seconds and must be
|
||||||
positive.
|
positive.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ namespace stk {
|
|||||||
to \e keyOn and \e keyOff messages by ramping to
|
to \e keyOn and \e keyOff messages by ramping to
|
||||||
1.0 on keyOn and to 0.0 on keyOff.
|
1.0 on keyOn and to 0.0 on keyOff.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ namespace stk {
|
|||||||
type who should worry about this (making
|
type who should worry about this (making
|
||||||
money) worry away.
|
money) worry away.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace stk {
|
|||||||
Methods are provided for creating a resonance or notch in the
|
Methods are provided for creating a resonance or notch in the
|
||||||
frequency response while maintaining a constant filter gain.
|
frequency response while maintaining a constant filter gain.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ namespace stk {
|
|||||||
- Vibrato Gain = 1
|
- Vibrato Gain = 1
|
||||||
- Volume = 128
|
- Volume = 128
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ namespace stk {
|
|||||||
- Register State = 1
|
- Register State = 1
|
||||||
- Breath Pressure = 128
|
- Breath Pressure = 128
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ namespace stk {
|
|||||||
(1986). The output is an instantaneous
|
(1986). The output is an instantaneous
|
||||||
reflection coefficient value.
|
reflection coefficient value.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ namespace stk {
|
|||||||
- Frequency = 101
|
- Frequency = 101
|
||||||
- Volume = 128
|
- Volume = 128
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
Contributions by Esteban Maestre, 2011.
|
Contributions by Esteban Maestre, 2011.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ namespace stk {
|
|||||||
- Vibrato Gain = 1
|
- Vibrato Gain = 1
|
||||||
- Volume = 128
|
- Volume = 128
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ namespace stk {
|
|||||||
This class implements a chorus effect. It takes a monophonic
|
This class implements a chorus effect. It takes a monophonic
|
||||||
input signal and produces a stereo output signal.
|
input signal and produces a stereo output signal.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ namespace stk {
|
|||||||
- Vibrato Gain = 1
|
- Vibrato Gain = 1
|
||||||
- Breath Pressure = 128
|
- Breath Pressure = 128
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace stk {
|
|||||||
A non-interpolating delay line is typically used in fixed
|
A non-interpolating delay line is typically used in fixed
|
||||||
delay-length applications, such as for reverberation.
|
delay-length applications, such as for reverberation.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace stk {
|
|||||||
minimum delay possible in this implementation is limited to a
|
minimum delay possible in this implementation is limited to a
|
||||||
value of 0.5.
|
value of 0.5.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ namespace stk {
|
|||||||
delay setting. The use of higher order Lagrange interpolators can
|
delay setting. The use of higher order Lagrange interpolators can
|
||||||
typically improve (minimize) this attenuation characteristic.
|
typically improve (minimize) this attenuation characteristic.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ namespace stk {
|
|||||||
of simultaneous voices) via a #define in the
|
of simultaneous voices) via a #define in the
|
||||||
Drummer.h.
|
Drummer.h.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ namespace stk {
|
|||||||
|
|
||||||
This class implements an echo effect.
|
This class implements an echo effect.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ namespace stk {
|
|||||||
subclasses. It is general enough to support both monophonic and
|
subclasses. It is general enough to support both monophonic and
|
||||||
polyphonic input/output classes.
|
polyphonic input/output classes.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ namespace stk {
|
|||||||
specified \e rate. It also responds to simple \e keyOn and \e
|
specified \e rate. It also responds to simple \e keyOn and \e
|
||||||
keyOff messages, ramping to 1.0 on keyOn and to 0.0 on keyOff.
|
keyOff messages, ramping to 1.0 on keyOn and to 0.0 on keyOff.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ namespace stk {
|
|||||||
type who should worry about this (making
|
type who should worry about this (making
|
||||||
money) worry away.
|
money) worry away.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ namespace stk {
|
|||||||
type who should worry about this (making
|
type who should worry about this (making
|
||||||
money) worry away.
|
money) worry away.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace stk {
|
|||||||
the overloaded one that takes an StkFrames object for
|
the overloaded one that takes an StkFrames object for
|
||||||
multi-channel and/or multi-frame data.
|
multi-channel and/or multi-frame data.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
@@ -31,7 +31,8 @@ class FileLoop : protected FileWvIn
|
|||||||
|
|
||||||
//! Class constructor that opens a specified file.
|
//! Class constructor that opens a specified file.
|
||||||
FileLoop( std::string fileName, bool raw = false, bool doNormalize = true,
|
FileLoop( std::string fileName, bool raw = false, bool doNormalize = true,
|
||||||
unsigned long chunkThreshold = 1000000, unsigned long chunkSize = 1024 );
|
unsigned long chunkThreshold = 1000000, unsigned long chunkSize = 1024,
|
||||||
|
bool doInt2FloatScaling = true );
|
||||||
|
|
||||||
//! Class destructor.
|
//! Class destructor.
|
||||||
~FileLoop( void );
|
~FileLoop( void );
|
||||||
@@ -40,13 +41,14 @@ class FileLoop : protected FileWvIn
|
|||||||
/*!
|
/*!
|
||||||
Data from a previously opened file will be overwritten by this
|
Data from a previously opened file will be overwritten by this
|
||||||
function. An StkError will be thrown if the file is not found,
|
function. An StkError will be thrown if the file is not found,
|
||||||
its format is unknown, or a read error occurs. If the file data
|
its format is unknown, or a read error occurs. If the file length
|
||||||
is to be loaded incrementally from disk and normalization is
|
is less than the chunkThreshold limit and \e doNormalize is true,
|
||||||
specified, a scaling will be applied with respect to fixed-point
|
the file data will be normalized with respect to the maximum absolute
|
||||||
limits. If the data format is floating-point, no scaling is
|
value of the data. If the \e doInt2FloatScaling flag is true and the
|
||||||
performed.
|
input data is fixed-point, a scaling will be applied with respect to
|
||||||
|
the fixed-point limits.
|
||||||
*/
|
*/
|
||||||
void openFile( std::string fileName, bool raw = false, bool doNormalize = true );
|
void openFile( std::string fileName, bool raw = false, bool doNormalize = true, bool doInt2FloatScaling = true );
|
||||||
|
|
||||||
//! Close a file if one is open.
|
//! Close a file if one is open.
|
||||||
void closeFile( void ) { FileWvIn::closeFile(); };
|
void closeFile( void ) { FileWvIn::closeFile(); };
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ namespace stk {
|
|||||||
such variable is found, the sample rate is
|
such variable is found, the sample rate is
|
||||||
assumed to be 44100 Hz.
|
assumed to be 44100 Hz.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace stk {
|
|||||||
type, the data type will automatically be modified. Compressed
|
type, the data type will automatically be modified. Compressed
|
||||||
data types are not supported.
|
data types are not supported.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -29,13 +29,23 @@ namespace stk {
|
|||||||
chunkThreshold (in sample frames) will be read incrementally in
|
chunkThreshold (in sample frames) will be read incrementally in
|
||||||
chunks of \e chunkSize each (also in sample frames).
|
chunks of \e chunkSize each (also in sample frames).
|
||||||
|
|
||||||
|
For file data read completely into local memory, the \e doNormalize
|
||||||
|
flag can be used to normalize all values with respect to the maximum
|
||||||
|
absolute value of the data.
|
||||||
|
|
||||||
|
If the file data format is fixed point, the flag \e doInt2FloatScaling
|
||||||
|
can be used to control whether the values are scaled with respect to
|
||||||
|
the corresponding fixed-point maximum. For example, if reading 16-bit
|
||||||
|
signed integers, the input values will be scaled by 1 / 32768.0. This
|
||||||
|
scaling will not happen for floating-point file data formats.
|
||||||
|
|
||||||
When the file end is reached, subsequent calls to the tick()
|
When the file end is reached, subsequent calls to the tick()
|
||||||
functions return zeros and isFinished() returns \e true.
|
functions return zeros and isFinished() returns \e true.
|
||||||
|
|
||||||
See the FileRead class for a description of the supported audio
|
See the FileRead class for a description of the supported audio
|
||||||
file formats.
|
file formats.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
@@ -51,7 +61,8 @@ public:
|
|||||||
unknown, or a read error occurs.
|
unknown, or a read error occurs.
|
||||||
*/
|
*/
|
||||||
FileWvIn( std::string fileName, bool raw = false, bool doNormalize = true,
|
FileWvIn( std::string fileName, bool raw = false, bool doNormalize = true,
|
||||||
unsigned long chunkThreshold = 1000000, unsigned long chunkSize = 1024 );
|
unsigned long chunkThreshold = 1000000, unsigned long chunkSize = 1024,
|
||||||
|
bool doInt2FloatScaling = true );
|
||||||
|
|
||||||
//! Class destructor.
|
//! Class destructor.
|
||||||
~FileWvIn( void );
|
~FileWvIn( void );
|
||||||
@@ -60,13 +71,14 @@ public:
|
|||||||
/*!
|
/*!
|
||||||
Data from a previously opened file will be overwritten by this
|
Data from a previously opened file will be overwritten by this
|
||||||
function. An StkError will be thrown if the file is not found,
|
function. An StkError will be thrown if the file is not found,
|
||||||
its format is unknown, or a read error occurs. If the file data
|
its format is unknown, or a read error occurs. If the file length
|
||||||
is to be loaded incrementally from disk and normalization is
|
is less than the chunkThreshold limit and \e doNormalize is true,
|
||||||
specified, a scaling will be applied with respect to fixed-point
|
the file data will be normalized with respect to the maximum absolute
|
||||||
limits. If the data format is floating-point, no scaling is
|
value of the data. If the \e doInt2FloatScaling flag is true and the
|
||||||
performed.
|
input data is fixed-point, a scaling will be applied with respect to
|
||||||
|
the fixed-point limits.
|
||||||
*/
|
*/
|
||||||
virtual void openFile( std::string fileName, bool raw = false, bool doNormalize = true );
|
virtual void openFile( std::string fileName, bool raw = false, bool doNormalize = true, bool doInt2FloatScaling = true );
|
||||||
|
|
||||||
//! Close a file if one is open.
|
//! Close a file if one is open.
|
||||||
virtual void closeFile( void );
|
virtual void closeFile( void );
|
||||||
@@ -167,7 +179,7 @@ protected:
|
|||||||
FileRead file_;
|
FileRead file_;
|
||||||
bool finished_;
|
bool finished_;
|
||||||
bool interpolate_;
|
bool interpolate_;
|
||||||
bool normalizing_;
|
bool int2floatscaling_;
|
||||||
bool chunking_;
|
bool chunking_;
|
||||||
StkFloat time_;
|
StkFloat time_;
|
||||||
StkFloat rate_;
|
StkFloat rate_;
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ namespace stk {
|
|||||||
Currently, FileWvOut is non-interpolating and the output rate is
|
Currently, FileWvOut is non-interpolating and the output rate is
|
||||||
always Stk::sampleRate().
|
always Stk::sampleRate().
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ namespace stk {
|
|||||||
filter subclasses. It is general enough to support both
|
filter subclasses. It is general enough to support both
|
||||||
monophonic and polyphonic input/output classes.
|
monophonic and polyphonic input/output classes.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ namespace stk {
|
|||||||
This structure results in one extra multiply per computed sample,
|
This structure results in one extra multiply per computed sample,
|
||||||
but allows easy control of the overall filter gain.
|
but allows easy control of the overall filter gain.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ namespace stk {
|
|||||||
- Vibrato Gain = 1
|
- Vibrato Gain = 1
|
||||||
- Breath Pressure = 128
|
- Breath Pressure = 128
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace stk {
|
|||||||
over time from one frequency setting to another. It provides
|
over time from one frequency setting to another. It provides
|
||||||
methods for controlling the sweep rate and target frequency.
|
methods for controlling the sweep rate and target frequency.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace stk {
|
|||||||
implement tables or other types of input to output function
|
implement tables or other types of input to output function
|
||||||
mappings.
|
mappings.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace stk {
|
|||||||
generator sample-source subclasses. It is general enough to
|
generator sample-source subclasses. It is general enough to
|
||||||
support both monophonic and polyphonic output classes.
|
support both monophonic and polyphonic output classes.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ namespace stk {
|
|||||||
type who should worry about this (making
|
type who should worry about this (making
|
||||||
money) worry away.
|
money) worry away.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace stk {
|
|||||||
This structure results in one extra multiply per computed sample,
|
This structure results in one extra multiply per computed sample,
|
||||||
but allows easy control of the overall filter gain.
|
but allows easy control of the overall filter gain.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ namespace stk {
|
|||||||
data type for the incoming stream is signed 16-bit integers,
|
data type for the incoming stream is signed 16-bit integers,
|
||||||
though any of the defined StkFormats are permissible.
|
though any of the defined StkFormats are permissible.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ namespace stk {
|
|||||||
data type is signed 16-bit integers but any of the defined
|
data type is signed 16-bit integers but any of the defined
|
||||||
StkFormats are permissible.
|
StkFormats are permissible.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ namespace stk {
|
|||||||
This class provides a common interface for
|
This class provides a common interface for
|
||||||
all STK instruments.
|
all STK instruments.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace stk {
|
|||||||
one-pole lowpass filters have been added inside
|
one-pole lowpass filters have been added inside
|
||||||
the feedback comb filters.
|
the feedback comb filters.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace stk {
|
|||||||
Consult Fletcher and Rossing, Karjalainen,
|
Consult Fletcher and Rossing, Karjalainen,
|
||||||
Cook, and others for more information.
|
Cook, and others for more information.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ namespace stk {
|
|||||||
- String Detuning = 1
|
- String Detuning = 1
|
||||||
- Microphone Position = 128
|
- Microphone Position = 128
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ namespace stk {
|
|||||||
This class is primarily for use in STK example programs but it is
|
This class is primarily for use in STK example programs but it is
|
||||||
generic enough to work in many other contexts.
|
generic enough to work in many other contexts.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace stk {
|
|||||||
(non-sweeping BiQuad filters), where N is set
|
(non-sweeping BiQuad filters), where N is set
|
||||||
during instantiation.
|
during instantiation.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ namespace stk {
|
|||||||
- Two Fixed = 7
|
- Two Fixed = 7
|
||||||
- Clump = 8
|
- Clump = 8
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace stk {
|
|||||||
modulations to give a nice, natural human
|
modulations to give a nice, natural human
|
||||||
modulation function.
|
modulation function.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ namespace stk {
|
|||||||
- Vibrato Gain = 1
|
- Vibrato Gain = 1
|
||||||
- Gain = 128
|
- Gain = 128
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ namespace stk {
|
|||||||
systems, the pthread library is used. Under
|
systems, the pthread library is used. Under
|
||||||
Windows, critical sections are used.
|
Windows, critical sections are used.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace stk {
|
|||||||
another allpass in series, followed by two allpass filters in
|
another allpass in series, followed by two allpass filters in
|
||||||
parallel with corresponding right and left outputs.
|
parallel with corresponding right and left outputs.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ namespace stk {
|
|||||||
C rand() function. The quality of the rand()
|
C rand() function. The quality of the rand()
|
||||||
function varies from one OS to another.
|
function varies from one OS to another.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace stk {
|
|||||||
provided for setting the pole position along the real axis of the
|
provided for setting the pole position along the real axis of the
|
||||||
z-plane while maintaining a constant peak filter gain.
|
z-plane while maintaining a constant peak filter gain.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace stk {
|
|||||||
provided for setting the zero position along the real axis of the
|
provided for setting the zero position along the real axis of the
|
||||||
z-plane while maintaining a constant filter gain.
|
z-plane while maintaining a constant filter gain.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace stk {
|
|||||||
allpass and comb delay filters. This class implements two series
|
allpass and comb delay filters. This class implements two series
|
||||||
allpass units and two parallel comb filters.
|
allpass units and two parallel comb filters.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ namespace stk {
|
|||||||
type who should worry about this (making
|
type who should worry about this (making
|
||||||
money) worry away.
|
money) worry away.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace stk {
|
|||||||
set of 32 static phoneme formant parameters
|
set of 32 static phoneme formant parameters
|
||||||
and provide access to those values.
|
and provide access to those values.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace stk {
|
|||||||
This class implements a simple pitch shifter
|
This class implements a simple pitch shifter
|
||||||
using delay lines.
|
using delay lines.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace stk {
|
|||||||
Stanford, bearing the names of Karplus and/or
|
Stanford, bearing the names of Karplus and/or
|
||||||
Strong.
|
Strong.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ namespace stk {
|
|||||||
coefficient. Another method is provided to create a DC blocking
|
coefficient. Another method is provided to create a DC blocking
|
||||||
filter.
|
filter.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ namespace stk {
|
|||||||
Smith (1986), Hirschman, Cook, Scavone, and
|
Smith (1986), Hirschman, Cook, Scavone, and
|
||||||
others for more information.
|
others for more information.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ namespace stk {
|
|||||||
- Zero Radii = 1
|
- Zero Radii = 1
|
||||||
- Envelope Gain = 128
|
- Envelope Gain = 128
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ namespace stk {
|
|||||||
type who should worry about this (making
|
type who should worry about this (making
|
||||||
money) worry away.
|
money) worry away.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
RtAudio WWW site: http://www.music.mcgill.ca/~gary/rtaudio/
|
RtAudio WWW site: http://www.music.mcgill.ca/~gary/rtaudio/
|
||||||
|
|
||||||
RtAudio: realtime audio i/o C++ classes
|
RtAudio: realtime audio i/o C++ classes
|
||||||
Copyright (c) 2001-2016 Gary P. Scavone
|
Copyright (c) 2001-2017 Gary P. Scavone
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person
|
Permission is hereby granted, free of charge, to any person
|
||||||
obtaining a copy of this software and associated documentation files
|
obtaining a copy of this software and associated documentation files
|
||||||
@@ -45,11 +45,11 @@
|
|||||||
#ifndef __RTAUDIO_H
|
#ifndef __RTAUDIO_H
|
||||||
#define __RTAUDIO_H
|
#define __RTAUDIO_H
|
||||||
|
|
||||||
#define RTAUDIO_VERSION "4.1.2"
|
#define RTAUDIO_VERSION "5.0.0"
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <exception>
|
#include <stdexcept>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
/*! \typedef typedef unsigned long RtAudioFormat;
|
/*! \typedef typedef unsigned long RtAudioFormat;
|
||||||
@@ -86,6 +86,7 @@ static const RtAudioFormat RTAUDIO_FLOAT64 = 0x20; // Normalized between plus/mi
|
|||||||
- \e RTAUDIO_MINIMIZE_LATENCY: Attempt to set stream parameters for lowest possible latency.
|
- \e RTAUDIO_MINIMIZE_LATENCY: Attempt to set stream parameters for lowest possible latency.
|
||||||
- \e RTAUDIO_HOG_DEVICE: Attempt grab device for exclusive use.
|
- \e RTAUDIO_HOG_DEVICE: Attempt grab device for exclusive use.
|
||||||
- \e RTAUDIO_ALSA_USE_DEFAULT: Use the "default" PCM device (ALSA only).
|
- \e RTAUDIO_ALSA_USE_DEFAULT: Use the "default" PCM device (ALSA only).
|
||||||
|
- \e RTAUDIO_JACK_DONT_CONNECT: Do not automatically connect ports (JACK only).
|
||||||
|
|
||||||
By default, RtAudio streams pass and receive audio data from the
|
By default, RtAudio streams pass and receive audio data from the
|
||||||
client in an interleaved format. By passing the
|
client in an interleaved format. By passing the
|
||||||
@@ -117,6 +118,9 @@ static const RtAudioFormat RTAUDIO_FLOAT64 = 0x20; // Normalized between plus/mi
|
|||||||
If the RTAUDIO_ALSA_USE_DEFAULT flag is set, RtAudio will attempt to
|
If the RTAUDIO_ALSA_USE_DEFAULT flag is set, RtAudio will attempt to
|
||||||
open the "default" PCM device when using the ALSA API. Note that this
|
open the "default" PCM device when using the ALSA API. Note that this
|
||||||
will override any specified input or output device id.
|
will override any specified input or output device id.
|
||||||
|
|
||||||
|
If the RTAUDIO_JACK_DONT_CONNECT flag is set, RtAudio will not attempt
|
||||||
|
to automatically connect the ports of the client to the audio device.
|
||||||
*/
|
*/
|
||||||
typedef unsigned int RtAudioStreamFlags;
|
typedef unsigned int RtAudioStreamFlags;
|
||||||
static const RtAudioStreamFlags RTAUDIO_NONINTERLEAVED = 0x1; // Use non-interleaved buffers (default = interleaved).
|
static const RtAudioStreamFlags RTAUDIO_NONINTERLEAVED = 0x1; // Use non-interleaved buffers (default = interleaved).
|
||||||
@@ -124,6 +128,7 @@ static const RtAudioStreamFlags RTAUDIO_MINIMIZE_LATENCY = 0x2; // Attempt to s
|
|||||||
static const RtAudioStreamFlags RTAUDIO_HOG_DEVICE = 0x4; // Attempt grab device and prevent use by others.
|
static const RtAudioStreamFlags RTAUDIO_HOG_DEVICE = 0x4; // Attempt grab device and prevent use by others.
|
||||||
static const RtAudioStreamFlags RTAUDIO_SCHEDULE_REALTIME = 0x8; // Try to select realtime scheduling for callback thread.
|
static const RtAudioStreamFlags RTAUDIO_SCHEDULE_REALTIME = 0x8; // Try to select realtime scheduling for callback thread.
|
||||||
static const RtAudioStreamFlags RTAUDIO_ALSA_USE_DEFAULT = 0x10; // Use the "default" PCM device (ALSA only).
|
static const RtAudioStreamFlags RTAUDIO_ALSA_USE_DEFAULT = 0x10; // Use the "default" PCM device (ALSA only).
|
||||||
|
static const RtAudioStreamFlags RTAUDIO_JACK_DONT_CONNECT = 0x20; // Do not automatically connect ports (JACK only).
|
||||||
|
|
||||||
/*! \typedef typedef unsigned long RtAudioStreamStatus;
|
/*! \typedef typedef unsigned long RtAudioStreamStatus;
|
||||||
\brief RtAudio stream status (over- or underflow) flags.
|
\brief RtAudio stream status (over- or underflow) flags.
|
||||||
@@ -195,7 +200,7 @@ typedef int (*RtAudioCallback)( void *outputBuffer, void *inputBuffer,
|
|||||||
*/
|
*/
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
class RtAudioError : public std::exception
|
class RtAudioError : public std::runtime_error
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
//! Defined RtAudioError types.
|
//! Defined RtAudioError types.
|
||||||
@@ -214,25 +219,22 @@ class RtAudioError : public std::exception
|
|||||||
};
|
};
|
||||||
|
|
||||||
//! The constructor.
|
//! The constructor.
|
||||||
RtAudioError( const std::string& message, Type type = RtAudioError::UNSPECIFIED ) throw() : message_(message), type_(type) {}
|
RtAudioError( const std::string& message,
|
||||||
|
Type type = RtAudioError::UNSPECIFIED )
|
||||||
//! The destructor.
|
: std::runtime_error(message), type_(type) {}
|
||||||
virtual ~RtAudioError( void ) throw() {}
|
|
||||||
|
|
||||||
//! Prints thrown error message to stderr.
|
//! Prints thrown error message to stderr.
|
||||||
virtual void printMessage( void ) const throw() { std::cerr << '\n' << message_ << "\n\n"; }
|
virtual void printMessage( void ) const
|
||||||
|
{ std::cerr << '\n' << what() << "\n\n"; }
|
||||||
|
|
||||||
//! Returns the thrown error message type.
|
//! Returns the thrown error message type.
|
||||||
virtual const Type& getType(void) const throw() { return type_; }
|
virtual const Type& getType(void) const { return type_; }
|
||||||
|
|
||||||
//! Returns the thrown error message string.
|
//! Returns the thrown error message string.
|
||||||
virtual const std::string& getMessage(void) const throw() { return message_; }
|
virtual const std::string getMessage(void) const
|
||||||
|
{ return std::string(what()); }
|
||||||
//! Returns the thrown error message as a c-style string.
|
|
||||||
virtual const char* what( void ) const throw() { return message_.c_str(); }
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::string message_;
|
|
||||||
Type type_;
|
Type type_;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -375,7 +377,7 @@ class RtAudio
|
|||||||
};
|
};
|
||||||
|
|
||||||
//! A static function to determine the current RtAudio version.
|
//! A static function to determine the current RtAudio version.
|
||||||
static std::string getVersion( void ) throw();
|
static std::string getVersion( void );
|
||||||
|
|
||||||
//! A static function to determine the available compiled audio APIs.
|
//! A static function to determine the available compiled audio APIs.
|
||||||
/*!
|
/*!
|
||||||
@@ -383,7 +385,7 @@ class RtAudio
|
|||||||
the enumerated list values. Note that there can be more than one
|
the enumerated list values. Note that there can be more than one
|
||||||
API compiled for certain operating systems.
|
API compiled for certain operating systems.
|
||||||
*/
|
*/
|
||||||
static void getCompiledApi( std::vector<RtAudio::Api> &apis ) throw();
|
static void getCompiledApi( std::vector<RtAudio::Api> &apis );
|
||||||
|
|
||||||
//! The class constructor.
|
//! The class constructor.
|
||||||
/*!
|
/*!
|
||||||
@@ -401,10 +403,10 @@ class RtAudio
|
|||||||
If a stream is running or open, it will be stopped and closed
|
If a stream is running or open, it will be stopped and closed
|
||||||
automatically.
|
automatically.
|
||||||
*/
|
*/
|
||||||
~RtAudio() throw();
|
~RtAudio();
|
||||||
|
|
||||||
//! Returns the audio API specifier for the current instance of RtAudio.
|
//! Returns the audio API specifier for the current instance of RtAudio.
|
||||||
RtAudio::Api getCurrentApi( void ) throw();
|
RtAudio::Api getCurrentApi( void );
|
||||||
|
|
||||||
//! A public function that queries for the number of audio devices available.
|
//! A public function that queries for the number of audio devices available.
|
||||||
/*!
|
/*!
|
||||||
@@ -412,7 +414,7 @@ class RtAudio
|
|||||||
is called, thus supporting devices connected \e after instantiation. If
|
is called, thus supporting devices connected \e after instantiation. If
|
||||||
a system error occurs during processing, a warning will be issued.
|
a system error occurs during processing, a warning will be issued.
|
||||||
*/
|
*/
|
||||||
unsigned int getDeviceCount( void ) throw();
|
unsigned int getDeviceCount( void );
|
||||||
|
|
||||||
//! Return an RtAudio::DeviceInfo structure for a specified device number.
|
//! Return an RtAudio::DeviceInfo structure for a specified device number.
|
||||||
/*!
|
/*!
|
||||||
@@ -435,7 +437,7 @@ class RtAudio
|
|||||||
client's responsibility to verify that a device is available
|
client's responsibility to verify that a device is available
|
||||||
before attempting to open a stream.
|
before attempting to open a stream.
|
||||||
*/
|
*/
|
||||||
unsigned int getDefaultOutputDevice( void ) throw();
|
unsigned int getDefaultOutputDevice( void );
|
||||||
|
|
||||||
//! A function that returns the index of the default input device.
|
//! A function that returns the index of the default input device.
|
||||||
/*!
|
/*!
|
||||||
@@ -445,7 +447,7 @@ class RtAudio
|
|||||||
client's responsibility to verify that a device is available
|
client's responsibility to verify that a device is available
|
||||||
before attempting to open a stream.
|
before attempting to open a stream.
|
||||||
*/
|
*/
|
||||||
unsigned int getDefaultInputDevice( void ) throw();
|
unsigned int getDefaultInputDevice( void );
|
||||||
|
|
||||||
//! A public function for opening a stream with the specified parameters.
|
//! A public function for opening a stream with the specified parameters.
|
||||||
/*!
|
/*!
|
||||||
@@ -498,7 +500,7 @@ class RtAudio
|
|||||||
If a stream is not open, this function issues a warning and
|
If a stream is not open, this function issues a warning and
|
||||||
returns (no exception is thrown).
|
returns (no exception is thrown).
|
||||||
*/
|
*/
|
||||||
void closeStream( void ) throw();
|
void closeStream( void );
|
||||||
|
|
||||||
//! A function that starts a stream.
|
//! A function that starts a stream.
|
||||||
/*!
|
/*!
|
||||||
@@ -528,10 +530,10 @@ class RtAudio
|
|||||||
void abortStream( void );
|
void abortStream( void );
|
||||||
|
|
||||||
//! Returns true if a stream is open and false if not.
|
//! Returns true if a stream is open and false if not.
|
||||||
bool isStreamOpen( void ) const throw();
|
bool isStreamOpen( void ) const;
|
||||||
|
|
||||||
//! Returns true if the stream is running and false if it is stopped or not open.
|
//! Returns true if the stream is running and false if it is stopped or not open.
|
||||||
bool isStreamRunning( void ) const throw();
|
bool isStreamRunning( void ) const;
|
||||||
|
|
||||||
//! Returns the number of elapsed seconds since the stream was started.
|
//! Returns the number of elapsed seconds since the stream was started.
|
||||||
/*!
|
/*!
|
||||||
@@ -565,7 +567,7 @@ class RtAudio
|
|||||||
unsigned int getStreamSampleRate( void );
|
unsigned int getStreamSampleRate( void );
|
||||||
|
|
||||||
//! Specify whether warning messages should be printed to stderr.
|
//! Specify whether warning messages should be printed to stderr.
|
||||||
void showWarnings( bool value = true ) throw();
|
void showWarnings( bool value = true );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
@@ -616,7 +618,7 @@ struct CallbackInfo {
|
|||||||
|
|
||||||
// Default constructor.
|
// Default constructor.
|
||||||
CallbackInfo()
|
CallbackInfo()
|
||||||
:object(0), callback(0), userData(0), errorCallback(0), apiInfo(0), isRunning(false), doRealtime(false) {}
|
:object(0), callback(0), userData(0), errorCallback(0), apiInfo(0), isRunning(false), doRealtime(false), priority(0) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
// **************************************************************** //
|
// **************************************************************** //
|
||||||
@@ -824,22 +826,22 @@ protected:
|
|||||||
//
|
//
|
||||||
// **************************************************************** //
|
// **************************************************************** //
|
||||||
|
|
||||||
inline RtAudio::Api RtAudio :: getCurrentApi( void ) throw() { return rtapi_->getCurrentApi(); }
|
inline RtAudio::Api RtAudio :: getCurrentApi( void ) { return rtapi_->getCurrentApi(); }
|
||||||
inline unsigned int RtAudio :: getDeviceCount( void ) throw() { return rtapi_->getDeviceCount(); }
|
inline unsigned int RtAudio :: getDeviceCount( void ) { return rtapi_->getDeviceCount(); }
|
||||||
inline RtAudio::DeviceInfo RtAudio :: getDeviceInfo( unsigned int device ) { return rtapi_->getDeviceInfo( device ); }
|
inline RtAudio::DeviceInfo RtAudio :: getDeviceInfo( unsigned int device ) { return rtapi_->getDeviceInfo( device ); }
|
||||||
inline unsigned int RtAudio :: getDefaultInputDevice( void ) throw() { return rtapi_->getDefaultInputDevice(); }
|
inline unsigned int RtAudio :: getDefaultInputDevice( void ) { return rtapi_->getDefaultInputDevice(); }
|
||||||
inline unsigned int RtAudio :: getDefaultOutputDevice( void ) throw() { return rtapi_->getDefaultOutputDevice(); }
|
inline unsigned int RtAudio :: getDefaultOutputDevice( void ) { return rtapi_->getDefaultOutputDevice(); }
|
||||||
inline void RtAudio :: closeStream( void ) throw() { return rtapi_->closeStream(); }
|
inline void RtAudio :: closeStream( void ) { return rtapi_->closeStream(); }
|
||||||
inline void RtAudio :: startStream( void ) { return rtapi_->startStream(); }
|
inline void RtAudio :: startStream( void ) { return rtapi_->startStream(); }
|
||||||
inline void RtAudio :: stopStream( void ) { return rtapi_->stopStream(); }
|
inline void RtAudio :: stopStream( void ) { return rtapi_->stopStream(); }
|
||||||
inline void RtAudio :: abortStream( void ) { return rtapi_->abortStream(); }
|
inline void RtAudio :: abortStream( void ) { return rtapi_->abortStream(); }
|
||||||
inline bool RtAudio :: isStreamOpen( void ) const throw() { return rtapi_->isStreamOpen(); }
|
inline bool RtAudio :: isStreamOpen( void ) const { return rtapi_->isStreamOpen(); }
|
||||||
inline bool RtAudio :: isStreamRunning( void ) const throw() { return rtapi_->isStreamRunning(); }
|
inline bool RtAudio :: isStreamRunning( void ) const { return rtapi_->isStreamRunning(); }
|
||||||
inline long RtAudio :: getStreamLatency( void ) { return rtapi_->getStreamLatency(); }
|
inline long RtAudio :: getStreamLatency( void ) { return rtapi_->getStreamLatency(); }
|
||||||
inline unsigned int RtAudio :: getStreamSampleRate( void ) { return rtapi_->getStreamSampleRate(); }
|
inline unsigned int RtAudio :: getStreamSampleRate( void ) { return rtapi_->getStreamSampleRate(); }
|
||||||
inline double RtAudio :: getStreamTime( void ) { return rtapi_->getStreamTime(); }
|
inline double RtAudio :: getStreamTime( void ) { return rtapi_->getStreamTime(); }
|
||||||
inline void RtAudio :: setStreamTime( double time ) { return rtapi_->setStreamTime( time ); }
|
inline void RtAudio :: setStreamTime( double time ) { return rtapi_->setStreamTime( time ); }
|
||||||
inline void RtAudio :: showWarnings( bool value ) throw() { rtapi_->showWarnings( value ); }
|
inline void RtAudio :: showWarnings( bool value ) { rtapi_->showWarnings( value ); }
|
||||||
|
|
||||||
// RtApi Subclass prototypes.
|
// RtApi Subclass prototypes.
|
||||||
|
|
||||||
@@ -912,6 +914,8 @@ public:
|
|||||||
unsigned int firstChannel, unsigned int sampleRate,
|
unsigned int firstChannel, unsigned int sampleRate,
|
||||||
RtAudioFormat format, unsigned int *bufferSize,
|
RtAudioFormat format, unsigned int *bufferSize,
|
||||||
RtAudio::StreamOptions *options );
|
RtAudio::StreamOptions *options );
|
||||||
|
|
||||||
|
bool shouldAutoconnect_;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
157
include/RtMidi.h
157
include/RtMidi.h
@@ -8,7 +8,7 @@
|
|||||||
RtMidi WWW site: http://music.mcgill.ca/~gary/rtmidi/
|
RtMidi WWW site: http://music.mcgill.ca/~gary/rtmidi/
|
||||||
|
|
||||||
RtMidi: realtime MIDI i/o C++ classes
|
RtMidi: realtime MIDI i/o C++ classes
|
||||||
Copyright (c) 2003-2016 Gary P. Scavone
|
Copyright (c) 2003-2017 Gary P. Scavone
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person
|
Permission is hereby granted, free of charge, to any person
|
||||||
obtaining a copy of this software and associated documentation files
|
obtaining a copy of this software and associated documentation files
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
#ifndef RTMIDI_H
|
#ifndef RTMIDI_H
|
||||||
#define RTMIDI_H
|
#define RTMIDI_H
|
||||||
|
|
||||||
#define RTMIDI_VERSION "2.1.1"
|
#define RTMIDI_VERSION "3.0.0"
|
||||||
|
|
||||||
#include <exception>
|
#include <exception>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
@@ -139,10 +139,10 @@ class RtMidi
|
|||||||
static void getCompiledApi( std::vector<RtMidi::Api> &apis ) throw();
|
static void getCompiledApi( std::vector<RtMidi::Api> &apis ) throw();
|
||||||
|
|
||||||
//! Pure virtual openPort() function.
|
//! Pure virtual openPort() function.
|
||||||
virtual void openPort( unsigned int portNumber = 0, const std::string portName = std::string( "RtMidi" ) ) = 0;
|
virtual void openPort( unsigned int portNumber = 0, const std::string &portName = std::string( "RtMidi" ) ) = 0;
|
||||||
|
|
||||||
//! Pure virtual openVirtualPort() function.
|
//! Pure virtual openVirtualPort() function.
|
||||||
virtual void openVirtualPort( const std::string portName = std::string( "RtMidi" ) ) = 0;
|
virtual void openVirtualPort( const std::string &portName = std::string( "RtMidi" ) ) = 0;
|
||||||
|
|
||||||
//! Pure virtual getPortCount() function.
|
//! Pure virtual getPortCount() function.
|
||||||
virtual unsigned int getPortCount() = 0;
|
virtual unsigned int getPortCount() = 0;
|
||||||
@@ -154,6 +154,10 @@ class RtMidi
|
|||||||
virtual void closePort( void ) = 0;
|
virtual void closePort( void ) = 0;
|
||||||
|
|
||||||
//! Returns true if a port is open and false if not.
|
//! Returns true if a port is open and false if not.
|
||||||
|
/*!
|
||||||
|
Note that this only applies to connections made with the openPort()
|
||||||
|
function, not to virtual ports.
|
||||||
|
*/
|
||||||
virtual bool isPortOpen( void ) const = 0;
|
virtual bool isPortOpen( void ) const = 0;
|
||||||
|
|
||||||
//! Set an error callback function to be invoked when an error has occured.
|
//! Set an error callback function to be invoked when an error has occured.
|
||||||
@@ -185,7 +189,7 @@ class RtMidi
|
|||||||
possible to open a virtual input port to which other MIDI software
|
possible to open a virtual input port to which other MIDI software
|
||||||
clients can connect.
|
clients can connect.
|
||||||
|
|
||||||
by Gary P. Scavone, 2003-2014.
|
by Gary P. Scavone, 2003-2017.
|
||||||
*/
|
*/
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
|
|
||||||
@@ -229,7 +233,7 @@ class RtMidiIn : public RtMidi
|
|||||||
\param queueSizeLimit An optional size of the MIDI input queue can be specified.
|
\param queueSizeLimit An optional size of the MIDI input queue can be specified.
|
||||||
*/
|
*/
|
||||||
RtMidiIn( RtMidi::Api api=UNSPECIFIED,
|
RtMidiIn( RtMidi::Api api=UNSPECIFIED,
|
||||||
const std::string clientName = std::string( "RtMidi Input Client"),
|
const std::string& clientName = "RtMidi Input Client",
|
||||||
unsigned int queueSizeLimit = 100 );
|
unsigned int queueSizeLimit = 100 );
|
||||||
|
|
||||||
//! If a MIDI connection is still open, it will be closed by the destructor.
|
//! If a MIDI connection is still open, it will be closed by the destructor.
|
||||||
@@ -244,7 +248,7 @@ class RtMidiIn : public RtMidi
|
|||||||
Otherwise, the default or first port found is opened.
|
Otherwise, the default or first port found is opened.
|
||||||
\param portName An optional name for the application port that is used to connect to portId can be specified.
|
\param portName An optional name for the application port that is used to connect to portId can be specified.
|
||||||
*/
|
*/
|
||||||
void openPort( unsigned int portNumber = 0, const std::string portName = std::string( "RtMidi Input" ) );
|
void openPort( unsigned int portNumber = 0, const std::string &portName = std::string( "RtMidi Input" ) );
|
||||||
|
|
||||||
//! Create a virtual input port, with optional name, to allow software connections (OS X, JACK and ALSA only).
|
//! Create a virtual input port, with optional name, to allow software connections (OS X, JACK and ALSA only).
|
||||||
/*!
|
/*!
|
||||||
@@ -256,7 +260,7 @@ class RtMidiIn : public RtMidi
|
|||||||
\param portName An optional name for the application port that is
|
\param portName An optional name for the application port that is
|
||||||
used to connect to portId can be specified.
|
used to connect to portId can be specified.
|
||||||
*/
|
*/
|
||||||
void openVirtualPort( const std::string portName = std::string( "RtMidi Input" ) );
|
void openVirtualPort( const std::string &portName = std::string( "RtMidi Input" ) );
|
||||||
|
|
||||||
//! Set a callback function to be invoked for incoming MIDI messages.
|
//! Set a callback function to be invoked for incoming MIDI messages.
|
||||||
/*!
|
/*!
|
||||||
@@ -282,6 +286,10 @@ class RtMidiIn : public RtMidi
|
|||||||
void closePort( void );
|
void closePort( void );
|
||||||
|
|
||||||
//! Returns true if a port is open and false if not.
|
//! Returns true if a port is open and false if not.
|
||||||
|
/*!
|
||||||
|
Note that this only applies to connections made with the openPort()
|
||||||
|
function, not to virtual ports.
|
||||||
|
*/
|
||||||
virtual bool isPortOpen() const;
|
virtual bool isPortOpen() const;
|
||||||
|
|
||||||
//! Return the number of available MIDI input ports.
|
//! Return the number of available MIDI input ports.
|
||||||
@@ -293,7 +301,8 @@ class RtMidiIn : public RtMidi
|
|||||||
//! Return a string identifier for the specified MIDI input port number.
|
//! Return a string identifier for the specified MIDI input port number.
|
||||||
/*!
|
/*!
|
||||||
\return The name of the port with the given Id is returned.
|
\return The name of the port with the given Id is returned.
|
||||||
\retval An empty string is returned if an invalid port specifier is provided.
|
\retval An empty string is returned if an invalid port specifier
|
||||||
|
is provided. User code should assume a UTF-8 encoding.
|
||||||
*/
|
*/
|
||||||
std::string getPortName( unsigned int portNumber = 0 );
|
std::string getPortName( unsigned int portNumber = 0 );
|
||||||
|
|
||||||
@@ -325,7 +334,7 @@ class RtMidiIn : public RtMidi
|
|||||||
virtual void setErrorCallback( RtMidiErrorCallback errorCallback = NULL, void *userData = 0 );
|
virtual void setErrorCallback( RtMidiErrorCallback errorCallback = NULL, void *userData = 0 );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void openMidiApi( RtMidi::Api api, const std::string clientName, unsigned int queueSizeLimit );
|
void openMidiApi( RtMidi::Api api, const std::string &clientName, unsigned int queueSizeLimit );
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -341,7 +350,7 @@ class RtMidiIn : public RtMidi
|
|||||||
OS-X, Linux ALSA and JACK MIDI APIs, it is also possible to open a
|
OS-X, Linux ALSA and JACK MIDI APIs, it is also possible to open a
|
||||||
virtual port to which other MIDI software clients can connect.
|
virtual port to which other MIDI software clients can connect.
|
||||||
|
|
||||||
by Gary P. Scavone, 2003-2014.
|
by Gary P. Scavone, 2003-2017.
|
||||||
*/
|
*/
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
|
|
||||||
@@ -358,7 +367,7 @@ class RtMidiOut : public RtMidi
|
|||||||
JACK (OS-X).
|
JACK (OS-X).
|
||||||
*/
|
*/
|
||||||
RtMidiOut( RtMidi::Api api=UNSPECIFIED,
|
RtMidiOut( RtMidi::Api api=UNSPECIFIED,
|
||||||
const std::string clientName = std::string( "RtMidi Output Client") );
|
const std::string& clientName = "RtMidi Output Client" );
|
||||||
|
|
||||||
//! The destructor closes any open MIDI connections.
|
//! The destructor closes any open MIDI connections.
|
||||||
~RtMidiOut( void ) throw();
|
~RtMidiOut( void ) throw();
|
||||||
@@ -373,12 +382,16 @@ class RtMidiOut : public RtMidi
|
|||||||
exception is thrown if an error occurs while attempting to make
|
exception is thrown if an error occurs while attempting to make
|
||||||
the port connection.
|
the port connection.
|
||||||
*/
|
*/
|
||||||
void openPort( unsigned int portNumber = 0, const std::string portName = std::string( "RtMidi Output" ) );
|
void openPort( unsigned int portNumber = 0, const std::string &portName = std::string( "RtMidi Output" ) );
|
||||||
|
|
||||||
//! Close an open MIDI connection (if one exists).
|
//! Close an open MIDI connection (if one exists).
|
||||||
void closePort( void );
|
void closePort( void );
|
||||||
|
|
||||||
//! Returns true if a port is open and false if not.
|
//! Returns true if a port is open and false if not.
|
||||||
|
/*!
|
||||||
|
Note that this only applies to connections made with the openPort()
|
||||||
|
function, not to virtual ports.
|
||||||
|
*/
|
||||||
virtual bool isPortOpen() const;
|
virtual bool isPortOpen() const;
|
||||||
|
|
||||||
//! Create a virtual output port, with optional name, to allow software connections (OS X, JACK and ALSA only).
|
//! Create a virtual output port, with optional name, to allow software connections (OS X, JACK and ALSA only).
|
||||||
@@ -390,14 +403,16 @@ class RtMidiOut : public RtMidi
|
|||||||
An exception is thrown if an error occurs while attempting to
|
An exception is thrown if an error occurs while attempting to
|
||||||
create the virtual port.
|
create the virtual port.
|
||||||
*/
|
*/
|
||||||
void openVirtualPort( const std::string portName = std::string( "RtMidi Output" ) );
|
void openVirtualPort( const std::string &portName = std::string( "RtMidi Output" ) );
|
||||||
|
|
||||||
//! Return the number of available MIDI output ports.
|
//! Return the number of available MIDI output ports.
|
||||||
unsigned int getPortCount( void );
|
unsigned int getPortCount( void );
|
||||||
|
|
||||||
//! Return a string identifier for the specified MIDI port type and number.
|
//! Return a string identifier for the specified MIDI port type and number.
|
||||||
/*!
|
/*!
|
||||||
An empty string is returned if an invalid port specifier is provided.
|
\return The name of the port with the given Id is returned.
|
||||||
|
\retval An empty string is returned if an invalid port specifier
|
||||||
|
is provided. User code should assume a UTF-8 encoding.
|
||||||
*/
|
*/
|
||||||
std::string getPortName( unsigned int portNumber = 0 );
|
std::string getPortName( unsigned int portNumber = 0 );
|
||||||
|
|
||||||
@@ -406,7 +421,17 @@ class RtMidiOut : public RtMidi
|
|||||||
An exception is thrown if an error occurs during output or an
|
An exception is thrown if an error occurs during output or an
|
||||||
output connection was not previously established.
|
output connection was not previously established.
|
||||||
*/
|
*/
|
||||||
void sendMessage( std::vector<unsigned char> *message );
|
void sendMessage( const std::vector<unsigned char> *message );
|
||||||
|
|
||||||
|
//! Immediately send a single message out an open MIDI output port.
|
||||||
|
/*!
|
||||||
|
An exception is thrown if an error occurs during output or an
|
||||||
|
output connection was not previously established.
|
||||||
|
|
||||||
|
\param message A pointer to the MIDI message as raw bytes
|
||||||
|
\param size Length of the MIDI message in bytes
|
||||||
|
*/
|
||||||
|
void sendMessage( const unsigned char *message, size_t size );
|
||||||
|
|
||||||
//! Set an error callback function to be invoked when an error has occured.
|
//! Set an error callback function to be invoked when an error has occured.
|
||||||
/*!
|
/*!
|
||||||
@@ -416,7 +441,7 @@ class RtMidiOut : public RtMidi
|
|||||||
virtual void setErrorCallback( RtMidiErrorCallback errorCallback = NULL, void *userData = 0 );
|
virtual void setErrorCallback( RtMidiErrorCallback errorCallback = NULL, void *userData = 0 );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void openMidiApi( RtMidi::Api api, const std::string clientName );
|
void openMidiApi( RtMidi::Api api, const std::string &clientName );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -440,8 +465,8 @@ class MidiApi
|
|||||||
MidiApi();
|
MidiApi();
|
||||||
virtual ~MidiApi();
|
virtual ~MidiApi();
|
||||||
virtual RtMidi::Api getCurrentApi( void ) = 0;
|
virtual RtMidi::Api getCurrentApi( void ) = 0;
|
||||||
virtual void openPort( unsigned int portNumber, const std::string portName ) = 0;
|
virtual void openPort( unsigned int portNumber, const std::string &portName ) = 0;
|
||||||
virtual void openVirtualPort( const std::string portName ) = 0;
|
virtual void openVirtualPort( const std::string &portName ) = 0;
|
||||||
virtual void closePort( void ) = 0;
|
virtual void closePort( void ) = 0;
|
||||||
|
|
||||||
virtual unsigned int getPortCount( void ) = 0;
|
virtual unsigned int getPortCount( void ) = 0;
|
||||||
@@ -479,6 +504,8 @@ class MidiInApi : public MidiApi
|
|||||||
// messages. Each message represents one and only one MIDI message.
|
// messages. Each message represents one and only one MIDI message.
|
||||||
struct MidiMessage {
|
struct MidiMessage {
|
||||||
std::vector<unsigned char> bytes;
|
std::vector<unsigned char> bytes;
|
||||||
|
|
||||||
|
//! Time in seconds elapsed since the previous message
|
||||||
double timeStamp;
|
double timeStamp;
|
||||||
|
|
||||||
// Default constructor.
|
// Default constructor.
|
||||||
@@ -489,13 +516,16 @@ class MidiInApi : public MidiApi
|
|||||||
struct MidiQueue {
|
struct MidiQueue {
|
||||||
unsigned int front;
|
unsigned int front;
|
||||||
unsigned int back;
|
unsigned int back;
|
||||||
unsigned int size;
|
|
||||||
unsigned int ringSize;
|
unsigned int ringSize;
|
||||||
MidiMessage *ring;
|
MidiMessage *ring;
|
||||||
|
|
||||||
// Default constructor.
|
// Default constructor.
|
||||||
MidiQueue()
|
MidiQueue()
|
||||||
:front(0), back(0), size(0), ringSize(0) {}
|
:front(0), back(0), ringSize(0), ring(0) {}
|
||||||
|
bool push(const MidiMessage&);
|
||||||
|
bool pop(std::vector<unsigned char>*, double*);
|
||||||
|
unsigned int size(unsigned int *back=0,
|
||||||
|
unsigned int *front=0);
|
||||||
};
|
};
|
||||||
|
|
||||||
// The RtMidiInData structure is used to pass private class data to
|
// The RtMidiInData structure is used to pass private class data to
|
||||||
@@ -529,7 +559,7 @@ class MidiOutApi : public MidiApi
|
|||||||
|
|
||||||
MidiOutApi( void );
|
MidiOutApi( void );
|
||||||
virtual ~MidiOutApi( void );
|
virtual ~MidiOutApi( void );
|
||||||
virtual void sendMessage( std::vector<unsigned char> *message ) = 0;
|
virtual void sendMessage( const unsigned char *message, size_t size ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
// **************************************************************** //
|
// **************************************************************** //
|
||||||
@@ -539,8 +569,8 @@ class MidiOutApi : public MidiApi
|
|||||||
// **************************************************************** //
|
// **************************************************************** //
|
||||||
|
|
||||||
inline RtMidi::Api RtMidiIn :: getCurrentApi( void ) throw() { return rtapi_->getCurrentApi(); }
|
inline RtMidi::Api RtMidiIn :: getCurrentApi( void ) throw() { return rtapi_->getCurrentApi(); }
|
||||||
inline void RtMidiIn :: openPort( unsigned int portNumber, const std::string portName ) { rtapi_->openPort( portNumber, portName ); }
|
inline void RtMidiIn :: openPort( unsigned int portNumber, const std::string &portName ) { rtapi_->openPort( portNumber, portName ); }
|
||||||
inline void RtMidiIn :: openVirtualPort( const std::string portName ) { rtapi_->openVirtualPort( portName ); }
|
inline void RtMidiIn :: openVirtualPort( const std::string &portName ) { rtapi_->openVirtualPort( portName ); }
|
||||||
inline void RtMidiIn :: closePort( void ) { rtapi_->closePort(); }
|
inline void RtMidiIn :: closePort( void ) { rtapi_->closePort(); }
|
||||||
inline bool RtMidiIn :: isPortOpen() const { return rtapi_->isPortOpen(); }
|
inline bool RtMidiIn :: isPortOpen() const { return rtapi_->isPortOpen(); }
|
||||||
inline void RtMidiIn :: setCallback( RtMidiCallback callback, void *userData ) { ((MidiInApi *)rtapi_)->setCallback( callback, userData ); }
|
inline void RtMidiIn :: setCallback( RtMidiCallback callback, void *userData ) { ((MidiInApi *)rtapi_)->setCallback( callback, userData ); }
|
||||||
@@ -552,13 +582,14 @@ inline double RtMidiIn :: getMessage( std::vector<unsigned char> *message ) { re
|
|||||||
inline void RtMidiIn :: setErrorCallback( RtMidiErrorCallback errorCallback, void *userData ) { rtapi_->setErrorCallback(errorCallback, userData); }
|
inline void RtMidiIn :: setErrorCallback( RtMidiErrorCallback errorCallback, void *userData ) { rtapi_->setErrorCallback(errorCallback, userData); }
|
||||||
|
|
||||||
inline RtMidi::Api RtMidiOut :: getCurrentApi( void ) throw() { return rtapi_->getCurrentApi(); }
|
inline RtMidi::Api RtMidiOut :: getCurrentApi( void ) throw() { return rtapi_->getCurrentApi(); }
|
||||||
inline void RtMidiOut :: openPort( unsigned int portNumber, const std::string portName ) { rtapi_->openPort( portNumber, portName ); }
|
inline void RtMidiOut :: openPort( unsigned int portNumber, const std::string &portName ) { rtapi_->openPort( portNumber, portName ); }
|
||||||
inline void RtMidiOut :: openVirtualPort( const std::string portName ) { rtapi_->openVirtualPort( portName ); }
|
inline void RtMidiOut :: openVirtualPort( const std::string &portName ) { rtapi_->openVirtualPort( portName ); }
|
||||||
inline void RtMidiOut :: closePort( void ) { rtapi_->closePort(); }
|
inline void RtMidiOut :: closePort( void ) { rtapi_->closePort(); }
|
||||||
inline bool RtMidiOut :: isPortOpen() const { return rtapi_->isPortOpen(); }
|
inline bool RtMidiOut :: isPortOpen() const { return rtapi_->isPortOpen(); }
|
||||||
inline unsigned int RtMidiOut :: getPortCount( void ) { return rtapi_->getPortCount(); }
|
inline unsigned int RtMidiOut :: getPortCount( void ) { return rtapi_->getPortCount(); }
|
||||||
inline std::string RtMidiOut :: getPortName( unsigned int portNumber ) { return rtapi_->getPortName( portNumber ); }
|
inline std::string RtMidiOut :: getPortName( unsigned int portNumber ) { return rtapi_->getPortName( portNumber ); }
|
||||||
inline void RtMidiOut :: sendMessage( std::vector<unsigned char> *message ) { ((MidiOutApi *)rtapi_)->sendMessage( message ); }
|
inline void RtMidiOut :: sendMessage( const std::vector<unsigned char> *message ) { ((MidiOutApi *)rtapi_)->sendMessage( &message->at(0), message->size() ); }
|
||||||
|
inline void RtMidiOut :: sendMessage( const unsigned char *message, size_t size ) { ((MidiOutApi *)rtapi_)->sendMessage( message, size ); }
|
||||||
inline void RtMidiOut :: setErrorCallback( RtMidiErrorCallback errorCallback, void *userData ) { rtapi_->setErrorCallback(errorCallback, userData); }
|
inline void RtMidiOut :: setErrorCallback( RtMidiErrorCallback errorCallback, void *userData ) { rtapi_->setErrorCallback(errorCallback, userData); }
|
||||||
|
|
||||||
// **************************************************************** //
|
// **************************************************************** //
|
||||||
@@ -576,11 +607,11 @@ inline void RtMidiOut :: setErrorCallback( RtMidiErrorCallback errorCallback, vo
|
|||||||
class MidiInCore: public MidiInApi
|
class MidiInCore: public MidiInApi
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MidiInCore( const std::string clientName, unsigned int queueSizeLimit );
|
MidiInCore( const std::string &clientName, unsigned int queueSizeLimit );
|
||||||
~MidiInCore( void );
|
~MidiInCore( void );
|
||||||
RtMidi::Api getCurrentApi( void ) { return RtMidi::MACOSX_CORE; };
|
RtMidi::Api getCurrentApi( void ) { return RtMidi::MACOSX_CORE; };
|
||||||
void openPort( unsigned int portNumber, const std::string portName );
|
void openPort( unsigned int portNumber, const std::string &portName );
|
||||||
void openVirtualPort( const std::string portName );
|
void openVirtualPort( const std::string &portName );
|
||||||
void closePort( void );
|
void closePort( void );
|
||||||
unsigned int getPortCount( void );
|
unsigned int getPortCount( void );
|
||||||
std::string getPortName( unsigned int portNumber );
|
std::string getPortName( unsigned int portNumber );
|
||||||
@@ -592,15 +623,15 @@ class MidiInCore: public MidiInApi
|
|||||||
class MidiOutCore: public MidiOutApi
|
class MidiOutCore: public MidiOutApi
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MidiOutCore( const std::string clientName );
|
MidiOutCore( const std::string &clientName );
|
||||||
~MidiOutCore( void );
|
~MidiOutCore( void );
|
||||||
RtMidi::Api getCurrentApi( void ) { return RtMidi::MACOSX_CORE; };
|
RtMidi::Api getCurrentApi( void ) { return RtMidi::MACOSX_CORE; };
|
||||||
void openPort( unsigned int portNumber, const std::string portName );
|
void openPort( unsigned int portNumber, const std::string &portName );
|
||||||
void openVirtualPort( const std::string portName );
|
void openVirtualPort( const std::string &portName );
|
||||||
void closePort( void );
|
void closePort( void );
|
||||||
unsigned int getPortCount( void );
|
unsigned int getPortCount( void );
|
||||||
std::string getPortName( unsigned int portNumber );
|
std::string getPortName( unsigned int portNumber );
|
||||||
void sendMessage( std::vector<unsigned char> *message );
|
void sendMessage( const unsigned char *message, size_t size );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void initialize( const std::string& clientName );
|
void initialize( const std::string& clientName );
|
||||||
@@ -613,11 +644,11 @@ class MidiOutCore: public MidiOutApi
|
|||||||
class MidiInJack: public MidiInApi
|
class MidiInJack: public MidiInApi
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MidiInJack( const std::string clientName, unsigned int queueSizeLimit );
|
MidiInJack( const std::string &clientName, unsigned int queueSizeLimit );
|
||||||
~MidiInJack( void );
|
~MidiInJack( void );
|
||||||
RtMidi::Api getCurrentApi( void ) { return RtMidi::UNIX_JACK; };
|
RtMidi::Api getCurrentApi( void ) { return RtMidi::UNIX_JACK; };
|
||||||
void openPort( unsigned int portNumber, const std::string portName );
|
void openPort( unsigned int portNumber, const std::string &portName );
|
||||||
void openVirtualPort( const std::string portName );
|
void openVirtualPort( const std::string &portName );
|
||||||
void closePort( void );
|
void closePort( void );
|
||||||
unsigned int getPortCount( void );
|
unsigned int getPortCount( void );
|
||||||
std::string getPortName( unsigned int portNumber );
|
std::string getPortName( unsigned int portNumber );
|
||||||
@@ -632,15 +663,15 @@ class MidiInJack: public MidiInApi
|
|||||||
class MidiOutJack: public MidiOutApi
|
class MidiOutJack: public MidiOutApi
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MidiOutJack( const std::string clientName );
|
MidiOutJack( const std::string &clientName );
|
||||||
~MidiOutJack( void );
|
~MidiOutJack( void );
|
||||||
RtMidi::Api getCurrentApi( void ) { return RtMidi::UNIX_JACK; };
|
RtMidi::Api getCurrentApi( void ) { return RtMidi::UNIX_JACK; };
|
||||||
void openPort( unsigned int portNumber, const std::string portName );
|
void openPort( unsigned int portNumber, const std::string &portName );
|
||||||
void openVirtualPort( const std::string portName );
|
void openVirtualPort( const std::string &portName );
|
||||||
void closePort( void );
|
void closePort( void );
|
||||||
unsigned int getPortCount( void );
|
unsigned int getPortCount( void );
|
||||||
std::string getPortName( unsigned int portNumber );
|
std::string getPortName( unsigned int portNumber );
|
||||||
void sendMessage( std::vector<unsigned char> *message );
|
void sendMessage( const unsigned char *message, size_t size );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::string clientName;
|
std::string clientName;
|
||||||
@@ -656,11 +687,11 @@ class MidiOutJack: public MidiOutApi
|
|||||||
class MidiInAlsa: public MidiInApi
|
class MidiInAlsa: public MidiInApi
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MidiInAlsa( const std::string clientName, unsigned int queueSizeLimit );
|
MidiInAlsa( const std::string &clientName, unsigned int queueSizeLimit );
|
||||||
~MidiInAlsa( void );
|
~MidiInAlsa( void );
|
||||||
RtMidi::Api getCurrentApi( void ) { return RtMidi::LINUX_ALSA; };
|
RtMidi::Api getCurrentApi( void ) { return RtMidi::LINUX_ALSA; };
|
||||||
void openPort( unsigned int portNumber, const std::string portName );
|
void openPort( unsigned int portNumber, const std::string &portName );
|
||||||
void openVirtualPort( const std::string portName );
|
void openVirtualPort( const std::string &portName );
|
||||||
void closePort( void );
|
void closePort( void );
|
||||||
unsigned int getPortCount( void );
|
unsigned int getPortCount( void );
|
||||||
std::string getPortName( unsigned int portNumber );
|
std::string getPortName( unsigned int portNumber );
|
||||||
@@ -672,15 +703,15 @@ class MidiInAlsa: public MidiInApi
|
|||||||
class MidiOutAlsa: public MidiOutApi
|
class MidiOutAlsa: public MidiOutApi
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MidiOutAlsa( const std::string clientName );
|
MidiOutAlsa( const std::string &clientName );
|
||||||
~MidiOutAlsa( void );
|
~MidiOutAlsa( void );
|
||||||
RtMidi::Api getCurrentApi( void ) { return RtMidi::LINUX_ALSA; };
|
RtMidi::Api getCurrentApi( void ) { return RtMidi::LINUX_ALSA; };
|
||||||
void openPort( unsigned int portNumber, const std::string portName );
|
void openPort( unsigned int portNumber, const std::string &portName );
|
||||||
void openVirtualPort( const std::string portName );
|
void openVirtualPort( const std::string &portName );
|
||||||
void closePort( void );
|
void closePort( void );
|
||||||
unsigned int getPortCount( void );
|
unsigned int getPortCount( void );
|
||||||
std::string getPortName( unsigned int portNumber );
|
std::string getPortName( unsigned int portNumber );
|
||||||
void sendMessage( std::vector<unsigned char> *message );
|
void sendMessage( const unsigned char *message, size_t size );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void initialize( const std::string& clientName );
|
void initialize( const std::string& clientName );
|
||||||
@@ -693,11 +724,11 @@ class MidiOutAlsa: public MidiOutApi
|
|||||||
class MidiInWinMM: public MidiInApi
|
class MidiInWinMM: public MidiInApi
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MidiInWinMM( const std::string clientName, unsigned int queueSizeLimit );
|
MidiInWinMM( const std::string &clientName, unsigned int queueSizeLimit );
|
||||||
~MidiInWinMM( void );
|
~MidiInWinMM( void );
|
||||||
RtMidi::Api getCurrentApi( void ) { return RtMidi::WINDOWS_MM; };
|
RtMidi::Api getCurrentApi( void ) { return RtMidi::WINDOWS_MM; };
|
||||||
void openPort( unsigned int portNumber, const std::string portName );
|
void openPort( unsigned int portNumber, const std::string &portName );
|
||||||
void openVirtualPort( const std::string portName );
|
void openVirtualPort( const std::string &portName );
|
||||||
void closePort( void );
|
void closePort( void );
|
||||||
unsigned int getPortCount( void );
|
unsigned int getPortCount( void );
|
||||||
std::string getPortName( unsigned int portNumber );
|
std::string getPortName( unsigned int portNumber );
|
||||||
@@ -709,15 +740,15 @@ class MidiInWinMM: public MidiInApi
|
|||||||
class MidiOutWinMM: public MidiOutApi
|
class MidiOutWinMM: public MidiOutApi
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MidiOutWinMM( const std::string clientName );
|
MidiOutWinMM( const std::string &clientName );
|
||||||
~MidiOutWinMM( void );
|
~MidiOutWinMM( void );
|
||||||
RtMidi::Api getCurrentApi( void ) { return RtMidi::WINDOWS_MM; };
|
RtMidi::Api getCurrentApi( void ) { return RtMidi::WINDOWS_MM; };
|
||||||
void openPort( unsigned int portNumber, const std::string portName );
|
void openPort( unsigned int portNumber, const std::string &portName );
|
||||||
void openVirtualPort( const std::string portName );
|
void openVirtualPort( const std::string &portName );
|
||||||
void closePort( void );
|
void closePort( void );
|
||||||
unsigned int getPortCount( void );
|
unsigned int getPortCount( void );
|
||||||
std::string getPortName( unsigned int portNumber );
|
std::string getPortName( unsigned int portNumber );
|
||||||
void sendMessage( std::vector<unsigned char> *message );
|
void sendMessage( const unsigned char *message, size_t size );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void initialize( const std::string& clientName );
|
void initialize( const std::string& clientName );
|
||||||
@@ -730,13 +761,13 @@ class MidiOutWinMM: public MidiOutApi
|
|||||||
class MidiInDummy: public MidiInApi
|
class MidiInDummy: public MidiInApi
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MidiInDummy( const std::string /*clientName*/, unsigned int queueSizeLimit ) : MidiInApi( queueSizeLimit ) { errorString_ = "MidiInDummy: This class provides no functionality."; error( RtMidiError::WARNING, errorString_ ); }
|
MidiInDummy( const std::string &/*clientName*/, unsigned int queueSizeLimit ) : MidiInApi( queueSizeLimit ) { errorString_ = "MidiInDummy: This class provides no functionality."; error( RtMidiError::WARNING, errorString_ ); }
|
||||||
RtMidi::Api getCurrentApi( void ) { return RtMidi::RTMIDI_DUMMY; }
|
RtMidi::Api getCurrentApi( void ) { return RtMidi::RTMIDI_DUMMY; }
|
||||||
void openPort( unsigned int /*portNumber*/, const std::string /*portName*/ ) {}
|
void openPort( unsigned int /*portNumber*/, const std::string &/*portName*/ ) {}
|
||||||
void openVirtualPort( const std::string /*portName*/ ) {}
|
void openVirtualPort( const std::string &/*portName*/ ) {}
|
||||||
void closePort( void ) {}
|
void closePort( void ) {}
|
||||||
unsigned int getPortCount( void ) { return 0; }
|
unsigned int getPortCount( void ) { return 0; }
|
||||||
std::string getPortName( unsigned int portNumber ) { return ""; }
|
std::string getPortName( unsigned int /*portNumber*/ ) { return ""; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void initialize( const std::string& /*clientName*/ ) {}
|
void initialize( const std::string& /*clientName*/ ) {}
|
||||||
@@ -745,14 +776,14 @@ class MidiInDummy: public MidiInApi
|
|||||||
class MidiOutDummy: public MidiOutApi
|
class MidiOutDummy: public MidiOutApi
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MidiOutDummy( const std::string /*clientName*/ ) { errorString_ = "MidiOutDummy: This class provides no functionality."; error( RtMidiError::WARNING, errorString_ ); }
|
MidiOutDummy( const std::string &/*clientName*/ ) { errorString_ = "MidiOutDummy: This class provides no functionality."; error( RtMidiError::WARNING, errorString_ ); }
|
||||||
RtMidi::Api getCurrentApi( void ) { return RtMidi::RTMIDI_DUMMY; }
|
RtMidi::Api getCurrentApi( void ) { return RtMidi::RTMIDI_DUMMY; }
|
||||||
void openPort( unsigned int /*portNumber*/, const std::string /*portName*/ ) {}
|
void openPort( unsigned int /*portNumber*/, const std::string &/*portName*/ ) {}
|
||||||
void openVirtualPort( const std::string /*portName*/ ) {}
|
void openVirtualPort( const std::string &/*portName*/ ) {}
|
||||||
void closePort( void ) {}
|
void closePort( void ) {}
|
||||||
unsigned int getPortCount( void ) { return 0; }
|
unsigned int getPortCount( void ) { return 0; }
|
||||||
std::string getPortName( unsigned int /*portNumber*/ ) { return ""; }
|
std::string getPortName( unsigned int /*portNumber*/ ) { return ""; }
|
||||||
void sendMessage( std::vector<unsigned char> * /*message*/ ) {}
|
void sendMessage( const unsigned char * /*message*/, size_t /*size*/ ) {}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void initialize( const std::string& /*clientName*/ ) {}
|
void initialize( const std::string& /*clientName*/ ) {}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace stk {
|
|||||||
that takes an StkFrames object for multi-channel and/or
|
that takes an StkFrames object for multi-channel and/or
|
||||||
multi-frame data.
|
multi-frame data.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ namespace stk {
|
|||||||
that takes a reference to an StkFrames object for multi-channel
|
that takes a reference to an StkFrames object for multi-channel
|
||||||
and/or multi-frame data.
|
and/or multi-frame data.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
where <name> is the string used in the SKINI stream.
|
where <name> is the string used in the SKINI stream.
|
||||||
|
|
||||||
by Perry R. Cook, 1995--2016.
|
by Perry R. Cook, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/*********************************************************/
|
/*********************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ namespace stk {
|
|||||||
This instrument provides an ADSR envelope, a one-pole filter, and
|
This instrument provides an ADSR envelope, a one-pole filter, and
|
||||||
structures for an arbitrary number of attack and looped files.
|
structures for an arbitrary number of attack and looped files.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ namespace stk {
|
|||||||
- Vibrato Gain = 1
|
- Vibrato Gain = 1
|
||||||
- Breath Pressure = 128
|
- Breath Pressure = 128
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ namespace stk {
|
|||||||
- Water Drops = 21
|
- Water Drops = 21
|
||||||
- Tuned Bamboo Chimes = 22
|
- Tuned Bamboo Chimes = 22
|
||||||
|
|
||||||
by Perry R. Cook with updates by Gary Scavone, 1995--2016.
|
by Perry R. Cook with updates by Gary Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ namespace stk {
|
|||||||
- Envelope Rate = 11
|
- Envelope Rate = 11
|
||||||
- Gain = 128
|
- Gain = 128
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace stk {
|
|||||||
|
|
||||||
The "table" length, set in SineWave.h, is 2048 samples by default.
|
The "table" length, set in SineWave.h, is 2048 samples by default.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace stk {
|
|||||||
Within STK, it is used as an excitation source for other
|
Within STK, it is used as an excitation source for other
|
||||||
instruments.
|
instruments.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ namespace stk {
|
|||||||
Stanford, bearing the names of Karplus and/or
|
Stanford, bearing the names of Karplus and/or
|
||||||
Strong.
|
Strong.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ namespace stk {
|
|||||||
|
|
||||||
\sa \ref skini
|
\sa \ref skini
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ namespace stk {
|
|||||||
number of static functions for use with external socket
|
number of static functions for use with external socket
|
||||||
descriptors.
|
descriptors.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace stk {
|
|||||||
This class implements a spherical ball with
|
This class implements a spherical ball with
|
||||||
radius, mass, position, and velocity parameters.
|
radius, mass, position, and velocity parameters.
|
||||||
|
|
||||||
by Perry R. Cook, 1995--2016.
|
by Perry R. Cook, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ namespace stk {
|
|||||||
- String Sustain = 11
|
- String Sustain = 11
|
||||||
- String Stretch = 1
|
- String Stretch = 1
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ namespace stk {
|
|||||||
STK WWW site: http://ccrma.stanford.edu/software/stk/
|
STK WWW site: http://ccrma.stanford.edu/software/stk/
|
||||||
|
|
||||||
The Synthesis ToolKit in C++ (STK)
|
The Synthesis ToolKit in C++ (STK)
|
||||||
Copyright (c) 1995--2016 Perry R. Cook and Gary P. Scavone
|
Copyright (c) 1995--2017 Perry R. Cook and Gary P. Scavone
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person
|
Permission is hereby granted, free of charge, to any person
|
||||||
obtaining a copy of this software and associated documentation files
|
obtaining a copy of this software and associated documentation files
|
||||||
@@ -268,7 +268,7 @@ protected:
|
|||||||
Possible future improvements in this class could include functions
|
Possible future improvements in this class could include functions
|
||||||
to convert to and return other data types.
|
to convert to and return other data types.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace stk {
|
|||||||
A non-interpolating delay line is typically used in fixed
|
A non-interpolating delay line is typically used in fixed
|
||||||
delay-length applications, such as for reverberation.
|
delay-length applications, such as for reverberation.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ namespace stk {
|
|||||||
less than or equal to zero indicate a closed
|
less than or equal to zero indicate a closed
|
||||||
or lost connection or the occurence of an error.
|
or lost connection or the occurence of an error.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ namespace stk {
|
|||||||
less than or equal to zero indicate a closed
|
less than or equal to zero indicate a closed
|
||||||
or lost connection or the occurence of an error.
|
or lost connection or the occurence of an error.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ namespace stk {
|
|||||||
|
|
||||||
THREAD_RETURN THREAD_TYPE thread_function(void *ptr)
|
THREAD_RETURN THREAD_TYPE thread_function(void *ptr)
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ namespace stk {
|
|||||||
type who should worry about this (making
|
type who should worry about this (making
|
||||||
money) worry away.
|
money) worry away.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace stk {
|
|||||||
use possibly subject to patents held by Stanford
|
use possibly subject to patents held by Stanford
|
||||||
University, Yamaha, and others.
|
University, Yamaha, and others.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace stk {
|
|||||||
provided for creating a resonance in the frequency response while
|
provided for creating a resonance in the frequency response while
|
||||||
maintaining a nearly constant filter gain.
|
maintaining a nearly constant filter gain.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace stk {
|
|||||||
provided for creating a "notch" in the frequency response while
|
provided for creating a "notch" in the frequency response while
|
||||||
maintaining a constant filter gain.
|
maintaining a constant filter gain.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace stk {
|
|||||||
read/write methods. Values less than or equal to zero indicate
|
read/write methods. Values less than or equal to zero indicate
|
||||||
the occurence of an error.
|
the occurence of an error.
|
||||||
|
|
||||||
by Perry R. Cook and Gary P. Scavone, 1995--2016.
|
by Perry R. Cook and Gary P. Scavone, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ namespace stk {
|
|||||||
|
|
||||||
This class implements a three-dimensional vector.
|
This class implements a three-dimensional vector.
|
||||||
|
|
||||||
by Perry R. Cook, 1995--2016.
|
by Perry R. Cook, 1995--2017.
|
||||||
*/
|
*/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user