From 2cbce2d8bd78479672a02dda6743076d22dcf0e4 Mon Sep 17 00:00:00 2001 From: Gary Scavone Date: Tue, 24 Mar 2009 23:02:14 -0400 Subject: [PATCH] Version 4.2.1 --- INSTALL | 6 +- README | 4 +- configure.ac | 6 +- doc/README-Linux.txt | 2 +- doc/README-MacOSX.txt | 4 +- doc/README-NeXT.txt | 2 +- doc/README-SGI.txt | 2 +- doc/README-Win.txt | 2 +- doc/ReleaseNotes.txt | 34 +- doc/doxygen/Doxyfile | 43 +- doc/doxygen/compile.txt | 52 +- doc/doxygen/control.txt | 2 +- doc/doxygen/crealtime.txt | 4 +- doc/doxygen/download.txt | 37 +- doc/doxygen/filtering.txt | 8 +- doc/doxygen/footer.html | 2 +- doc/doxygen/fundamentals.txt | 16 +- doc/doxygen/hello.txt | 68 +- doc/doxygen/index.txt | 19 +- doc/doxygen/information.txt | 39 +- doc/doxygen/instruments.txt | 10 +- doc/doxygen/multichannel.txt | 19 +- doc/doxygen/realtime.txt | 29 +- doc/doxygen/skini.txt | 50 +- doc/{Hierarchy.txt => hierarchy.txt} | 92 +- include/ADSR.h | 22 +- include/Asymp.h | 20 +- include/BandedWG.h | 17 +- include/BeeThree.h | 17 +- include/BiQuad.h | 19 +- include/Blit.h | 84 ++ include/BlitSaw.h | 73 ++ include/BlitSquare.h | 89 ++ include/BlowBotl.h | 26 +- include/BlowHole.h | 26 +- include/BowTable.h | 22 +- include/Bowed.h | 26 +- include/Brass.h | 26 +- include/Chorus.h | 22 +- include/Clarinet.h | 24 +- include/Delay.h | 22 +- include/DelayA.h | 47 +- include/DelayL.h | 18 +- include/Drummer.h | 27 +- include/Echo.h | 18 +- include/Effect.h | 22 +- include/Envelope.h | 26 +- include/FM.h | 25 +- include/FMVoices.h | 20 +- include/FileRead.h | 124 +++ include/FileWrite.h | 112 +++ include/FileWvIn.h | 143 +++ include/FileWvOut.h | 87 ++ include/Filter.h | 35 +- include/Flute.h | 26 +- include/FormSwep.h | 22 +- include/Function.h | 22 +- include/Generator.h | 30 +- include/Granulate.h | 145 +++ include/HevyMetl.h | 17 +- include/InetWvIn.h | 103 ++ include/InetWvOut.h | 77 ++ include/Instrmnt.h | 27 +- include/JCRev.h | 20 +- include/JetTable.h | 19 +- include/Mandolin.h | 32 +- include/Mesh2D.h | 19 +- include/Messager.h | 6 +- include/Modal.h | 27 +- include/ModalBar.h | 2 +- include/Modulate.h | 24 +- include/Moog.h | 20 +- include/Mutex.h | 2 +- include/NRev.h | 18 +- include/Noise.h | 19 +- include/OnePole.h | 15 +- include/OneZero.h | 13 +- include/PRCRev.h | 18 +- include/PercFlut.h | 17 +- include/Phonemes.h | 2 +- include/PitShift.h | 18 +- include/PluckTwo.h | 44 +- include/Plucked.h | 20 +- include/PoleZero.h | 21 +- include/ReedTable.h | 22 +- include/Resonate.h | 22 +- include/Rhodey.h | 17 +- include/RtAudio.h | 60 +- include/RtDuplex.h | 2 +- include/RtMidi.h | 24 +- include/RtWvIn.h | 97 +- include/RtWvOut.h | 89 +- include/Sampler.h | 25 +- include/Saxofony.h | 24 +- include/Shakers.h | 16 +- include/Simple.h | 22 +- include/SineWave.h | 80 ++ include/SingWave.h | 23 +- include/Sitar.h | 18 +- include/Skini.h | 2 +- include/Socket.h | 101 +- include/StifKarp.h | 48 +- include/Stk.h | 123 ++- include/SubNoise.h | 26 +- include/Table.h | 63 -- include/TcpClient.h | 61 ++ include/TcpServer.h | 61 ++ include/TcpWvIn.h | 131 --- include/TcpWvOut.h | 109 -- include/Thread.h | 2 +- include/TubeBell.h | 17 +- include/TwoPole.h | 13 +- include/TwoZero.h | 13 +- include/UdpSocket.h | 72 ++ include/VoicForm.h | 20 +- include/Voicer.h | 2 +- include/WaveLoop.h | 88 +- include/Whistle.h | 23 +- include/Wurley.h | 17 +- include/WvIn.h | 229 +---- include/WvOut.h | 146 +-- projects/demo/Makefile.in | 8 +- projects/demo/Md2Skini.cpp | 63 +- projects/demo/demo.cpp | 18 +- projects/demo/demo.dsp | 48 + projects/demo/tcl/Demo.tcl | 2 +- projects/demo/tcl/Modal.tcl | 2 +- projects/demo/utilities.cpp | 47 +- projects/demo/utilities.h | 2 +- projects/effects/Makefile.in | 6 +- projects/effects/README-effects.txt | 21 +- projects/effects/{Effects => StkEffects} | 0 .../effects/{Effects.bat => StkEffects.bat} | 0 projects/effects/effects.dsp | 32 + projects/examples/Makefile.in | 53 +- projects/examples/bethree.dsp | 24 + projects/examples/controlbee.dsp | 20 + projects/examples/crtblit.cpp | 81 ++ projects/examples/crtsine.cpp | 23 +- projects/examples/crtsine.dsp | 24 +- projects/examples/examples.dsw | 72 +- projects/examples/foursine.cpp | 46 +- projects/examples/foursine.dsp | 32 + projects/examples/grains.cpp | 105 ++ projects/examples/{tcpOut.dsp => grains.dsp} | 114 ++- projects/examples/inetIn.cpp | 81 ++ projects/examples/{tcpIn.dsp => inetIn.dsp} | 78 +- projects/examples/inetOut.cpp | 78 ++ projects/examples/inetOut.dsp | 162 +++ projects/examples/libMakefile.in | 15 +- projects/examples/play.cpp | 8 +- projects/examples/play.dsp | 8 + projects/examples/playsmf.cpp | 1 - projects/examples/playsmf.dsp | 126 +++ projects/examples/record.cpp | 14 +- projects/examples/record.dsp | 8 + projects/examples/rtsine.cpp | 14 +- projects/examples/rtsine.dsp | 24 + projects/examples/sine.cpp | 57 +- projects/examples/sine.dsp | 24 + projects/examples/sineosc.cpp | 26 +- projects/examples/sineosc.dsp | 24 + projects/examples/tcpIn.cpp | 89 -- projects/examples/tcpOut.cpp | 86 -- projects/examples/threebees.dsp | 16 + projects/ragamatic/Drone.cpp | 26 +- projects/ragamatic/Drone.h | 18 +- projects/ragamatic/Makefile.in | 4 +- projects/ragamatic/Tabla.cpp | 184 ++-- projects/ragamatic/Tabla.h | 39 +- projects/ragamatic/VoicDrum.cpp | 180 ++-- projects/ragamatic/VoicDrum.h | 39 +- projects/ragamatic/ragamat.cpp | 8 +- projects/ragamatic/ragamat.dsp | 24 + rawwaves/sine.c | 22 + rawwaves/sinewave.raw | Bin 512 -> 2048 bytes src/ADSR.cpp | 14 +- src/Asymp.cpp | 13 +- src/BandedWG.cpp | 15 +- src/BeeThree.cpp | 14 +- src/BiQuad.cpp | 12 +- src/Blit.cpp | 105 ++ src/BlitSaw.cpp | 125 +++ src/BlitSquare.cpp | 122 +++ src/BlowBotl.cpp | 23 +- src/BlowHole.cpp | 21 +- src/BowTable.cpp | 13 +- src/Bowed.cpp | 23 +- src/Brass.cpp | 25 +- src/Chorus.cpp | 31 +- src/Clarinet.cpp | 23 +- src/Delay.cpp | 10 +- src/DelayA.cpp | 46 +- src/DelayL.cpp | 15 +- src/Drummer.cpp | 139 ++- src/Echo.cpp | 14 +- src/Effect.cpp | 25 +- src/Envelope.cpp | 36 +- src/FM.cpp | 10 +- src/FMVoices.cpp | 16 +- src/FileRead.cpp | 721 ++++++++++++++ src/FileWrite.cpp | 701 +++++++++++++ src/FileWvIn.cpp | 211 ++++ src/FileWvOut.cpp | 152 +++ src/Filter.cpp | 39 +- src/Flute.cpp | 30 +- src/FormSwep.cpp | 17 +- src/Function.cpp | 25 +- src/Generator.cpp | 27 +- src/Granulate.cpp | 275 ++++++ src/HevyMetl.cpp | 19 +- src/InetWvIn.cpp | 275 ++++++ src/InetWvOut.cpp | 230 +++++ src/Instrmnt.cpp | 21 +- src/JCRev.cpp | 14 +- src/JetTable.cpp | 14 +- src/Makefile.in | 10 +- src/Mandolin.cpp | 38 +- src/Mesh2D.cpp | 14 +- src/Messager.cpp | 11 +- src/MidiFileIn.cpp | 11 +- src/Modal.cpp | 23 +- src/ModalBar.cpp | 16 +- src/Modulate.cpp | 23 +- src/Moog.cpp | 16 +- src/Mutex.cpp | 2 +- src/NRev.cpp | 15 +- src/Noise.cpp | 14 +- src/OnePole.cpp | 11 +- src/OneZero.cpp | 11 +- src/PRCRev.cpp | 14 +- src/PercFlut.cpp | 16 +- src/Phonemes.cpp | 2 +- src/PitShift.cpp | 17 +- src/PluckTwo.cpp | 2 +- src/Plucked.cpp | 14 +- src/PoleZero.cpp | 11 +- src/ReedTable.cpp | 13 +- src/Resonate.cpp | 14 +- src/Rhodey.cpp | 20 +- src/RtAudio.cpp | 698 ++++++++++--- src/RtDuplex.cpp | 2 +- src/RtMidi.cpp | 146 ++- src/RtWvIn.cpp | 116 +-- src/RtWvOut.cpp | 221 ++--- src/Sampler.cpp | 2 +- src/Saxofony.cpp | 23 +- src/Shakers.cpp | 14 +- src/Simple.cpp | 14 +- src/SineWave.cpp | 103 ++ src/SingWave.cpp | 36 +- src/Sitar.cpp | 14 +- src/Skini.cpp | 7 +- src/Socket.cpp | 198 +--- src/StifKarp.cpp | 16 +- src/Stk.cpp | 187 +++- src/SubNoise.cpp | 42 +- src/Table.cpp | 100 -- src/TcpClient.cpp | 100 ++ src/TcpServer.cpp | 95 ++ src/TcpWvIn.cpp | 336 ------- src/TcpWvOut.cpp | 280 ------ src/Thread.cpp | 2 +- src/TubeBell.cpp | 18 +- src/TwoPole.cpp | 11 +- src/TwoZero.cpp | 11 +- src/UdpSocket.cpp | 104 ++ src/Vector3D.cpp | 2 +- src/VoicForm.cpp | 44 +- src/Voicer.cpp | 4 +- src/WaveLoop.cpp | 209 ++-- src/Whistle.cpp | 43 +- src/Wurley.cpp | 17 +- src/WvIn.cpp | 927 +----------------- src/WvOut.cpp | 844 +--------------- 275 files changed, 8949 insertions(+), 6906 deletions(-) rename doc/{Hierarchy.txt => hierarchy.txt} (63%) create mode 100644 include/Blit.h create mode 100644 include/BlitSaw.h create mode 100644 include/BlitSquare.h create mode 100644 include/FileRead.h create mode 100644 include/FileWrite.h create mode 100644 include/FileWvIn.h create mode 100644 include/FileWvOut.h create mode 100644 include/Granulate.h create mode 100644 include/InetWvIn.h create mode 100644 include/InetWvOut.h create mode 100644 include/SineWave.h delete mode 100644 include/Table.h create mode 100644 include/TcpClient.h create mode 100644 include/TcpServer.h delete mode 100644 include/TcpWvIn.h delete mode 100644 include/TcpWvOut.h create mode 100644 include/UdpSocket.h rename projects/effects/{Effects => StkEffects} (100%) rename projects/effects/{Effects.bat => StkEffects.bat} (100%) create mode 100644 projects/examples/crtblit.cpp create mode 100644 projects/examples/grains.cpp rename projects/examples/{tcpOut.dsp => grains.dsp} (58%) mode change 100644 => 100755 create mode 100644 projects/examples/inetIn.cpp rename projects/examples/{tcpIn.dsp => inetIn.dsp} (64%) mode change 100644 => 100755 create mode 100644 projects/examples/inetOut.cpp create mode 100755 projects/examples/inetOut.dsp create mode 100644 projects/examples/playsmf.dsp delete mode 100644 projects/examples/tcpIn.cpp delete mode 100644 projects/examples/tcpOut.cpp create mode 100644 rawwaves/sine.c create mode 100644 src/Blit.cpp create mode 100644 src/BlitSaw.cpp create mode 100644 src/BlitSquare.cpp create mode 100644 src/FileRead.cpp create mode 100644 src/FileWrite.cpp create mode 100644 src/FileWvIn.cpp create mode 100644 src/FileWvOut.cpp create mode 100644 src/Granulate.cpp create mode 100644 src/InetWvIn.cpp create mode 100644 src/InetWvOut.cpp create mode 100644 src/SineWave.cpp delete mode 100644 src/Table.cpp create mode 100644 src/TcpClient.cpp create mode 100644 src/TcpServer.cpp delete mode 100644 src/TcpWvIn.cpp delete mode 100644 src/TcpWvOut.cpp create mode 100644 src/UdpSocket.cpp diff --git a/INSTALL b/INSTALL index 09e49aa..00d0ea1 100644 --- a/INSTALL +++ b/INSTALL @@ -1,6 +1,6 @@ The Synthesis ToolKit in C++ (STK) -By Perry R. Cook and Gary P. Scavone, 1995-2004. +By Perry R. Cook and Gary P. Scavone, 1995-2005. The Synthesis ToolKit in C++ can be used in a variety of ways, depending on your particular needs. Some people just choose the classes they need for a particular project and copy those to their project directory. Others like to compile and link to a library of object files. STK was not designed with one particular style of use in mind. @@ -24,8 +24,8 @@ Several options can be passed to configure, including: It is now possible to specify more than one Linux audio API. Note however that the ALSA library is required in order to compile the RtMidi class, even if the "--with-oss" option is provided (only the OSS audio API will be used, not the OSS MIDI API). Typing "./configure --help" will display all the available options. In addition, it is possible to specify the RAWWAVES and INCLUDE paths to configure as (ex. to set to /home/gary/rawwaves and /home/gary/include): - ./configure RAWWAVE_PATH="/home/gary/rawwaves/" - ./configure INCLUDE_PATH="/home/gary/include/" + ./configure RAWWAVE_PATH='$(HOME)/rawwaves/' + ./configure INCLUDE_PATH='$(HOME)/include/' The ending "/" is required for the RAWWAVES path. The default behavior will set a relative path that works for the project files included with the distribution (assuming they are not moved). You can also change the RAWWAVE_PATH dynamically via the static Stk::setRawwavePath() function. diff --git a/README b/README index 75f3a64..8a9fe9c 100644 --- a/README +++ b/README @@ -1,6 +1,6 @@ The Synthesis ToolKit in C++ (STK) -By Perry R. Cook and Gary P. Scavone, 1995-2004. +By Perry R. Cook and Gary P. Scavone, 1995-2005. This distribution of the Synthesis ToolKit in C++ (STK) contains the following: @@ -35,7 +35,7 @@ WHAT'S NEW (AND NOT SO NEW): Despite being available in one form or another since 1996, we still consider STK to be alpha software. We attempt to maintain backward compatability but changes are sometimes made in an effort to improve the overall design or performance of the software. Please read the Release Notes to see what has changed since the last release. -A new StkFrames class has been created to facilitate the handling and passing of multichannel, vectorized audio data. All STK classes have been updated to include tick() functions which accept StkFrames arguments. +A new StkFrames class has been created to facilitate the handling and passing of multichannel, vectorized audio data. All STK classes have been updated to include tick() functions that accept StkFrames arguments. The control message handling scheme has been simplified greatly through the use of the Messager class. It is now possible to have access to simultaneous piped, socketed, and/or MIDI input control messages. In most cases, this should eliminate the use of the Md2Skini program. diff --git a/configure.ac b/configure.ac index 99f1f7b..f3c9e4e 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ # Process this file with autoconf to produce a configure script. -AC_INIT(STK, 4.2.0, gary@music.mcgill.ca, stk) +AC_INIT(STK, 4.2.1, gary@music.mcgill.ca, stk) AC_CONFIG_SRCDIR(src/Stk.cpp) -AC_CONFIG_FILES(src/Makefile projects/demo/Makefile projects/effects/Makefile projects/ragamatic/Makefile projects/examples/Makefile) +AC_CONFIG_FILES(src/Makefile projects/demo/Makefile projects/effects/Makefile projects/ragamatic/Makefile projects/examples/Makefile projects/examples/libMakefile) # Checks for programs. AC_PROG_CC @@ -53,7 +53,7 @@ AC_ARG_ENABLE(debug, # Check compiler and use -Wall if gnu. if test $GXX = "yes" ; then - AC_SUBST( warn, ["-Wall -g -Woverloaded-virtual -D__GXX__"] ) + AC_SUBST( warn, ["-Wall -g -D__GXX__"] ) fi if test $realtime = yes; then diff --git a/doc/README-Linux.txt b/doc/README-Linux.txt index 8f64655..99fddaf 100644 --- a/doc/README-Linux.txt +++ b/doc/README-Linux.txt @@ -1,6 +1,6 @@ The Synthesis ToolKit in C++ (STK) -By Perry R. Cook and Gary P. Scavone, 1995-2004. +By Perry R. Cook and Gary P. Scavone, 1995-2005. Please read the file README and INSTALL for more general STK information. diff --git a/doc/README-MacOSX.txt b/doc/README-MacOSX.txt index 70431e3..1830b6d 100644 --- a/doc/README-MacOSX.txt +++ b/doc/README-MacOSX.txt @@ -1,12 +1,12 @@ The Synthesis ToolKit in C++ (STK) -By Perry R. Cook and Gary P. Scavone, 1995-2004. +By Perry R. Cook and Gary P. Scavone, 1995-2005. Please read the file README and INSTALL for more general STK information. Realtime support for Macintosh OS X uses the CoreAudio HAL API and is specified during compilation using the __MACOSX_CORE__ preprocessor definition. -It is necessary to install the OS X developer kit in order to compile STK. STK was successfully tested on OS X versions 10.2 and 10.3. +It is necessary to install the OS X developer kit in order to compile STK. STK was successfully tested on OS X versions 10.4. The internal Macintosh audio hardware typically supports a sample rate of 44100 Hz only. The default STK sample rate is now 44100 Hz and all current example programs use this rate. However, it is possible to manually override this value in some programs from the command-line. The default sample rate is set in Stk.h. In addition, the RT_BUFFER_SIZE, specified in Stk.h, could be increased (to a higher power of two) for more robust performance. diff --git a/doc/README-NeXT.txt b/doc/README-NeXT.txt index 78f8d24..e9d59b1 100644 --- a/doc/README-NeXT.txt +++ b/doc/README-NeXT.txt @@ -1,6 +1,6 @@ The Synthesis ToolKit in C++ (STK) -By Perry R. Cook and Gary P. Scavone, 1995-2004. +By Perry R. Cook and Gary P. Scavone, 1995-2005. Please read the file README and INSTALL for more general STK information. diff --git a/doc/README-SGI.txt b/doc/README-SGI.txt index 003a932..febe80f 100644 --- a/doc/README-SGI.txt +++ b/doc/README-SGI.txt @@ -1,6 +1,6 @@ The Synthesis ToolKit in C++ (STK) -By Perry R. Cook and Gary P. Scavone, 1995-2004. +By Perry R. Cook and Gary P. Scavone, 1995-2005. Please read the file README and INSTALL for more general STK information. diff --git a/doc/README-Win.txt b/doc/README-Win.txt index db38b3c..5d78d14 100644 --- a/doc/README-Win.txt +++ b/doc/README-Win.txt @@ -1,6 +1,6 @@ The Synthesis ToolKit in C++ (STK) -By Perry R. Cook and Gary P. Scavone, 1995-2004. +By Perry R. Cook and Gary P. Scavone, 1995-2005. Please read the file README for more general STK information. diff --git a/doc/ReleaseNotes.txt b/doc/ReleaseNotes.txt index 41590de..ed4439d 100644 --- a/doc/ReleaseNotes.txt +++ b/doc/ReleaseNotes.txt @@ -1,6 +1,38 @@ The Synthesis ToolKit in C++ (STK) -By Perry R. Cook and Gary P. Scavone, 1995-2004. +By Perry R. Cook and Gary P. Scavone, 1995-2005. + +Future To Do: +- OSC server/client classes +- move various error checks, especially in tick() functions, into __DEBUG__ blocks? +- add WAVEFORMATEXTENSIBLE support to RtAudio +- add WAVEFORMATEXTENSIBLE support to WvIn/WvOut? +- better documentation + +v4.2.1: (14 October 2005) +- greatly expanded StkFrames functionality (including interpolation and indexing by channel/frame) +- new Granulate granular synthesis class +- new Blit, BlitSaw, and BlitSquare bandlimited waveform classes (thanks to Robin Davies!) +- removed Table class ... all functionality (including interpolation) now in StkFrames and FileRead classes +- revised Socket class (now abstract) and added TcpServer, TcpClient, and UdpSocket subclasses +- added Stk::showWarnings() and Stk::printErrors() functions to dis/enable warning and error printouts +- extracted file I/O functionality to new FileRead and FileWrite classes +- revised WvIn / WvOut class structure (WvIn / WvOut now abstract and file I/O functionality in new FileWvIn / FileWvOut subclasses) +- new SineWave class which calculates its own static table of variable length (no rawwave dependency) +- new sinewave.raw file of length 1024 samples (used to be 256) +- TcpWvIn and TcpWvOut renamed InetWvIn and InetWvOut, with added support for UDP sockets +- fixed bug in WvOut tickFrame( const StkFrames &frames ) function +- fixed bug in demo.cpp when writing output soundfiles without realtime output +- added "binary" open flag to MidiFileIn class for Windows +- fixed oversized MAT-file header in WvOut.cpp +- fixed case statement bug in MidiFileIn.cpp for sysex +- added missing getDelay() function to DelayA.cpp +- fixed modDepth omission in Chorus.cpp +- fixed DC blocker initialization bug in Flute.cpp +- changed Filter class behavior so no default clearing of state when changing coefficients +- bug fixes to RtAudio, especially for Windows DirectSound and ASIO (thanks to Robin Davies) +- bug fixes to RtMidi, especially for Linux (thanks to Pedro Pedro Lopez-Cabanillas) + v4.2.0: (4 October 2004) - simultaneous multiple audio APIs supported at compile time diff --git a/doc/doxygen/Doxyfile b/doc/doxygen/Doxyfile index f4b1c07..795a16e 100644 --- a/doc/doxygen/Doxyfile +++ b/doc/doxygen/Doxyfile @@ -1,11 +1,12 @@ -# Doxyfile 1.3.6 +# Doxyfile 1.4.4 #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- PROJECT_NAME = STK -PROJECT_NUMBER = 4.2.0 +PROJECT_NUMBER = 4.2.1 OUTPUT_DIRECTORY = . +CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English USE_WINDOWS_ENCODING = NO BRIEF_MEMBER_DESC = YES @@ -15,12 +16,14 @@ ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO FULL_PATH_NAMES = NO STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = SHORT_NAMES = NO JAVADOC_AUTOBRIEF = NO MULTILINE_CPP_IS_BRIEF = NO DETAILS_AT_TOP = YES -INHERIT_DOCS = YES +INHERIT_DOCS = NO DISTRIBUTE_GROUP_DOC = NO +SEPARATE_MEMBER_PAGES = NO TAB_SIZE = 9 ALIASES = OPTIMIZE_OUTPUT_FOR_C = NO @@ -31,12 +34,13 @@ SUBGROUPING = YES #--------------------------------------------------------------------------- EXTRACT_ALL = NO EXTRACT_PRIVATE = NO -EXTRACT_STATIC = YES -EXTRACT_LOCAL_CLASSES = YES +EXTRACT_STATIC = NO +EXTRACT_LOCAL_CLASSES = NO +EXTRACT_LOCAL_METHODS = NO HIDE_UNDOC_MEMBERS = YES HIDE_UNDOC_CLASSES = YES -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO +HIDE_FRIEND_COMPOUNDS = YES +HIDE_IN_BODY_DOCS = YES INTERNAL_DOCS = NO CASE_SENSE_NAMES = YES HIDE_SCOPE_NAMES = NO @@ -52,6 +56,8 @@ GENERATE_DEPRECATEDLIST= YES ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = YES +SHOW_DIRECTORIES = YES +FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- @@ -59,6 +65,7 @@ QUIET = NO WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO WARN_FORMAT = "$file:$line: $text" WARN_LOGFILE = #--------------------------------------------------------------------------- @@ -69,7 +76,7 @@ INPUT = . \ FILE_PATTERNS = *.txt \ *.msg \ *.h -RECURSIVE = YES +RECURSIVE = NO EXCLUDE = ../../src/asio EXCLUDE_SYMLINKS = NO EXCLUDE_PATTERNS = @@ -78,20 +85,22 @@ EXAMPLE_PATTERNS = EXAMPLE_RECURSIVE = NO IMAGE_PATH = INPUT_FILTER = +FILTER_PATTERNS = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- -SOURCE_BROWSER = YES -INLINE_SOURCES = YES +SOURCE_BROWSER = NO +INLINE_SOURCES = NO STRIP_CODE_COMMENTS = YES -REFERENCED_BY_RELATION = YES -REFERENCES_RELATION = YES +REFERENCED_BY_RELATION = NO +REFERENCES_RELATION = NO +USE_HTAGS = NO VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = NO +ALPHABETICAL_INDEX = YES COLS_IN_ALPHA_INDEX = 5 IGNORE_PREFIX = #--------------------------------------------------------------------------- @@ -167,7 +176,7 @@ PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = YES +ENABLE_PREPROCESSING = NO MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES @@ -192,18 +201,22 @@ HIDE_UNDOC_RELATIONS = YES HAVE_DOT = NO CLASS_GRAPH = YES COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES UML_LOOK = NO TEMPLATE_RELATIONS = NO INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES CALL_GRAPH = NO GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES DOT_IMAGE_FORMAT = png -DOT_PATH = +DOT_PATH = /sw/bin DOTFILE_DIRS = MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_HEIGHT = 1024 MAX_DOT_GRAPH_DEPTH = 0 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- diff --git a/doc/doxygen/compile.txt b/doc/doxygen/compile.txt index 8eccfa1..ff153aa 100644 --- a/doc/doxygen/compile.txt +++ b/doc/doxygen/compile.txt @@ -5,9 +5,21 @@ The Synthesis ToolKit can be used in a variety of ways, depending on your partic \section rtvsnonrt "Realtime" vs. "Non-Realtime" -Most of the Synthesis ToolKit classes are platform independent. That means that they should compile on any reasonably current C++ compiler. The functionality needed for realtime audio and MIDI input/output, as well as realtime control message acquistion, is inherently platform and operating-system (OS) dependent. STK classes which require specific platform/OS support include RtAudio, RtWvOut, RtWvIn, RtDuplex, RtMidi, TcpWvIn, TcpWvOut, Socket, Thread, and Mutex. These classes currently can only be compiled on Linux, Irix, Macintosh OS X, and Windows systems. +Most of the Synthesis ToolKit classes are platform independent. That +means that they should compile on any reasonably current C++ compiler. +The functionality needed for realtime audio and MIDI input/output, as +well as realtime control message acquistion, is inherently platform +and operating-system (OS) dependent. STK classes which require +specific platform/OS support include RtAudio, RtWvOut, RtWvIn, +RtDuplex, RtMidi, InetWvIn, InetWvOut, Socket, UdpSocket, TcpServer, +TcpClient, Thread, and Mutex. These classes currently can only be +compiled on Linux, Irix, Macintosh OS X, and Windows systems. -Without the "realtime" classes, it is still possible to read SKINI scorefiles for control input and to read and write to/from a variety of audio file formats (WAV, SND, AIFF, MAT-file, and RAW). If compiling for a "little-endian" host processor, the __LITTLE_ENDIAN__ preprocessor definition should be provided. +Without the "realtime" classes, it is still possible to read SKINI +scorefiles for control input and to read and write to/from a variety +of audio file formats (WAV, SND, AIFF, MAT-file, and RAW). If +compiling for a "little-endian" host processor, the +__LITTLE_ENDIAN__ preprocessor definition should be provided. \section unix Unix Systems: @@ -28,6 +40,12 @@ STK compiles with realtime support on the following flavors of the Unix operatin __LINUX_ALSA__, __LINUX_ALSASEQ__, __LITTLE_ENDIAN__ asound, pthread + + Linux + Jack (audio only, use ALSA for MIDI support) + __LINUX_JACK__, __LINUX_ALSASEQ__, __LITTLE_ENDIAN__ + asound, pthread + Linux OSS (audio only, use ALSA for MIDI support) @@ -51,9 +69,18 @@ STK compiles with realtime support on the following flavors of the Unix operatin The available C++ compilers on any of these systems can vary. -One approach in using STK is to simply copy the class files needed for a particular program into a project directory. Taking the sineosc.cpp example from the previous tutorial chapter, it would be necessary to set up a directory that includes the files sineosc.cpp, the rawwave file sinewave.raw in a subdirectory called rawwaves, and the header and source files for the classes Stk, WvIn, WaveLoop, and WvOut. The program could then be compiled on a little-endian system, such as a PC running Linux, using the GNU g++ compiler as follows: +One approach in using STK is to simply copy the class files needed for +a particular program into a project directory. Taking the +sineosc.cpp example from the previous tutorial chapter, it +would be necessary to set up a directory that includes the files +sineosc.cpp, the rawwave file sinewave.raw in a +subdirectory called rawwaves, and the header and source files +for the classes Stk, FileRead, FileWrite, WvIn, FileWvIn, WaveLoop, +WvOut, and FileWvOut. The program could then be compiled on a +little-endian system, such as a PC running Linux, using the GNU g++ +compiler as follows: \code -g++ -Wall -D__LITTLE_ENDIAN__ -o sineosc Stk.cpp WvIn.cpp WaveLoop.cpp WvOut.cpp sineosc.cpp +g++ -Wall -D__LITTLE_ENDIAN__ -o sineosc Stk.cpp FileRead.cpp FileWrite.cpp WvIn.cpp FileWvIn.cpp WaveLoop.cpp WvOut.cpp FileWvOut.cpp sineosc.cpp \endcode Note that the sineosc.cpp example does not make use of realtime audio or MIDI input/output classes. For programs using any of the STK realtime classes mentioned above, it is necessary to specify an audio/MIDI API preprocessor definition and link with the appropriate libraries or frameworks. @@ -75,7 +102,7 @@ With the header files in a standard search path, it is possible to modify the src and include directories. For the example program from the previous tutorial chapter, create a VC++ console application project, add the Stk, WvIn, WaveLoop, and WvOut class files, as well as sineosc.cpp, and make sure the sinewave.raw file is in the subdirectory rawwaves. +The approach when using Visual C++ is to build a project which +includes the necessary ToolKit files from the distribution +src and include directories. For the example +program from the previous tutorial chapter, create a VC++ console +application project, add the Stk, FileRead, FileWrite, WvIn, FileWvIn, +WaveLoop, WvOut, and FileWvOut class files, as well as +sineosc.cpp, and make sure the sinewave.raw file is +in the subdirectory rawwaves. For programs using any of the STK realtime classes mentioned above, it is necessary to link with the DirectSound (dsound.lib), winmm.lib, and Wsock32.lib libraries, select the multithreaded library, and provide the __LITTLE_ENDIAN__, __WINDOWS_DS__, and __WINDOWS_MM__ preprocessor definitions. For Steinberg ASIO support, use the __WINDOWS_ASIO__ preprocessor definition (and the __WINDOWS_MM__ definition for RtMidi support), include all the files in the src/asio/ directory (i.e., asio.h,cpp, asiodrivers.h,cpp, ...), and link with the winmm.lib, and Wsock32.lib libraries. -[Next tutorial]   [Main tutorial page] +[Main tutorial page]   [Next tutorial] */ diff --git a/doc/doxygen/control.txt b/doc/doxygen/control.txt index 5b963f3..5afa72f 100644 --- a/doc/doxygen/control.txt +++ b/doc/doxygen/control.txt @@ -39,5 +39,5 @@ Only a few basic SKINI message type case statements are included in this example This example could also be easily extended to accept "realtime" control input messages via pipe, socket or MIDI connections. The Messager class provides Messager::startStdInput(), Messager::startSocketInput(), and Messager::startMidiInput() functions for this purpose. -[Next tutorial]   [Main tutorial page] +[Main tutorial page]   [Next tutorial] */ diff --git a/doc/doxygen/crealtime.txt b/doc/doxygen/crealtime.txt index af70513..02d4ec4 100644 --- a/doc/doxygen/crealtime.txt +++ b/doc/doxygen/crealtime.txt @@ -16,11 +16,11 @@ The \c main() function blocks at the std::cin.get() call until the user hits the \section callback Blocking vs. Callbacks -Prior to version 4.2.0, all STK example projects and programs used blocking audio input/output functionality (typically with the RtWvIn, RtWvOut, or RtDuplex classes). In many instances, a blocking scheme results in a clearer and more straight forward program structure. Within a graphical user interface (GUI) programming context, however, callback routines are often more natural. +Prior to version 4.2.0, all STK example projects and programs used blocking audio input/output functionality (typically with the RtWvIn, RtWvOut, or RtDuplex classes). In many instances, a blocking scheme results in a clearer and more straight-forward program structure. Within a graphical user interface (GUI) programming context, however, callback routines are often more natural. The RtAudio class provides both blocking and callback routines for all supported audio APIs. It should be noted that it is easy to embed blocking calls within a thread to create "callback-like" functionality. In fact, this is what RtAudio does for those audio APIs which are naturally based on blocking routines (Linux ALSA and OSS, SGI Irix, and Windows DirectSound). It is much more difficult to make an inherently callback-based system work like a blocking scheme. RtAudio attempts to do this with the Linux JACK, Macintosh OS-X CoreAudio, and Windows ASIO APIs, but the result is not fully robust (audio over/underruns are more likely to occur). In order to allow all STK programs to function with equal proficiency on all supported computer platforms, a decision was made to modify the example projects to use audio callback routines. The result is a more complicated code structure, which is unfortunate given that we generally strive to make STK code as clear as possible for educational purposes. This was especially an issue with the demo program because it is designed to function in both realtime and non-realtime contexts. The use of global variables has been avoided by defining data structures to hold all variables which must be accessible to the callback routine and other functions. Alternative schemes for making control updates could be designed depending on particular program needs and constraints. -[Next tutorial]   [Main tutorial page] +[Main tutorial page]   [Next tutorial] */ diff --git a/doc/doxygen/download.txt b/doc/doxygen/download.txt index 751de48..9ba6a6d 100644 --- a/doc/doxygen/download.txt +++ b/doc/doxygen/download.txt @@ -1,15 +1,42 @@ -/*! \page download Download and Release Notes +/*! \page download Download, Release Notes, and Bug Fixes + +\section down Download Version 4.2.1 (14 October 2005): -Version 4.2.0, 4 October 2004

\section notes Release Notes: +\subsection v4dot2dot1 Version 4.2.1 + + + \subsection v4dot2dot0 Version 4.2.0