From baca57040be58fc7a80985635983e1774608c4fd Mon Sep 17 00:00:00 2001 From: Gary Scavone Date: Sun, 29 Sep 2013 23:15:24 +0200 Subject: [PATCH] Version 4.4.2 --- INSTALL | 2 +- Makefile.in | 25 + README | 6 +- configure.ac | 2 +- doc/README-Linux.txt | 2 +- doc/README-MacOSX.txt | 11 +- doc/README-NeXT.txt | 2 +- doc/README-SGI.txt | 2 +- doc/README-Win.txt | 26 +- doc/ReleaseNotes.txt | 15 +- doc/doxygen/Doxyfile | 2 +- doc/doxygen/download.txt | 14 +- doc/doxygen/faq.txt | 2 +- doc/doxygen/footer.html | 2 +- doc/hierarchy.txt | 2 +- include/ADSR.h | 2 +- include/Asymp.h | 2 +- include/BeeThree.h | 2 +- include/BiQuad.h | 2 +- include/BlowBotl.h | 2 +- include/BlowHole.h | 2 +- include/BowTable.h | 2 +- include/Bowed.h | 2 +- include/Brass.h | 2 +- include/Chorus.h | 2 +- include/Clarinet.h | 2 +- include/Delay.h | 10 +- include/DelayA.h | 2 +- include/DelayL.h | 2 +- include/Drummer.h | 2 +- include/Echo.h | 2 +- include/Effect.h | 2 +- include/Envelope.h | 2 +- include/FM.h | 2 +- include/FMVoices.h | 2 +- include/FileLoop.h | 2 +- include/FileRead.h | 2 +- include/FileWrite.h | 2 +- include/FileWvIn.h | 2 +- include/FileWvOut.h | 2 +- include/Filter.h | 2 +- include/Fir.h | 2 +- include/Flute.h | 2 +- include/FormSwep.h | 2 +- include/Function.h | 2 +- include/Generator.h | 2 +- include/Granulate.h | 8 +- include/HevyMetl.h | 2 +- include/Iir.h | 2 +- include/InetWvIn.h | 2 +- include/InetWvOut.h | 2 +- include/Instrmnt.h | 2 +- include/JCRev.h | 2 +- include/JetTable.h | 2 +- include/LentPitShift.h | 267 ++++++++ include/Mandolin.h | 2 +- include/Messager.h | 2 +- include/MidiFileIn.h | 2 +- include/Modal.h | 2 +- include/ModalBar.h | 2 +- include/Modulate.h | 2 +- include/Moog.h | 2 +- include/Mutex.h | 2 +- include/NRev.h | 2 +- include/Noise.h | 2 +- include/OnePole.h | 2 +- include/OneZero.h | 2 +- include/PRCRev.h | 2 +- include/PercFlut.h | 2 +- include/Phonemes.h | 2 +- include/PitShift.h | 2 +- include/PluckTwo.h | 2 +- include/Plucked.h | 2 +- include/PoleZero.h | 2 +- include/ReedTable.h | 2 +- include/Resonate.h | 2 +- include/Rhodey.h | 2 +- include/RtAudio.h | 4 +- include/RtMidi.h | 4 +- include/RtWvIn.h | 2 +- include/RtWvOut.h | 2 +- include/SKINI.msg | 2 +- include/Sampler.h | 2 +- include/Saxofony.h | 2 +- include/Shakers.h | 2 +- include/Simple.h | 2 +- include/SingWave.h | 2 +- include/Sitar.h | 2 +- include/Skini.h | 2 +- include/Socket.h | 2 +- include/Sphere.h | 2 +- include/StifKarp.h | 2 +- include/Stk.h | 6 +- include/TapDelay.h | 2 +- include/TcpClient.h | 2 +- include/TcpServer.h | 2 +- include/Thread.h | 2 +- include/TubeBell.h | 2 +- include/TwoPole.h | 2 +- include/TwoZero.h | 2 +- include/UdpSocket.h | 2 +- include/Vector3D.h | 2 +- include/VoicForm.h | 2 +- include/Voicer.h | 9 +- include/Whistle.h | 2 +- include/Wurley.h | 2 +- include/WvIn.h | 2 +- include/WvOut.h | 2 +- projects/demo/Banded | 1 + projects/demo/Makefile.in | 17 +- projects/demo/demo.cpp | 2 +- projects/effects/Makefile.in | 13 +- projects/effects/README-effects.txt | 2 +- projects/effects/effects.cpp | 4 +- projects/examples/Makefile.in | 43 +- projects/examples/duplex.cpp | 4 +- projects/examples/foursine.cpp | 2 + projects/examples/grains.cpp | 1 + projects/examples/inetIn.cpp | 1 + projects/examples/inetOut.cpp | 1 + projects/examples/libMakefile.in | 36 +- projects/examples/midiprobe.cpp | 2 +- projects/examples/play.cpp | 1 + projects/examples/playsmf.cpp | 1 + projects/examples/record.cpp | 1 + projects/examples/rtsine.cpp | 2 + projects/examples/sine.cpp | 2 + projects/examples/sineosc.cpp | 2 + projects/examples/test.cpp | 56 -- projects/ragamatic/Drone.cpp | 2 +- projects/ragamatic/Drone.h | 2 +- projects/ragamatic/Makefile.in | 13 +- projects/ragamatic/Tabla.cpp | 2 +- projects/ragamatic/Tabla.h | 2 +- projects/ragamatic/VoicDrum.cpp | 2 +- projects/ragamatic/VoicDrum.h | 2 +- projects/ragamatic/ragamat.cpp | 4 +- src/ADSR.cpp | 2 +- src/Asymp.cpp | 2 +- src/BeeThree.cpp | 2 +- src/BiQuad.cpp | 2 +- src/BlitSquare.cpp | 2 +- src/BlowBotl.cpp | 2 +- src/BlowHole.cpp | 2 +- src/Bowed.cpp | 2 +- src/Brass.cpp | 2 +- src/Chorus.cpp | 2 +- src/Clarinet.cpp | 2 +- src/Delay.cpp | 11 +- src/DelayA.cpp | 2 +- src/DelayL.cpp | 2 +- src/Drummer.cpp | 2 +- src/Echo.cpp | 2 +- src/Envelope.cpp | 2 +- src/FM.cpp | 2 +- src/FMVoices.cpp | 2 +- src/FileLoop.cpp | 2 +- src/FileRead.cpp | 3 +- src/FileWrite.cpp | 5 +- src/FileWvIn.cpp | 2 +- src/FileWvOut.cpp | 2 +- src/Fir.cpp | 2 +- src/Flute.cpp | 2 +- src/FormSwep.cpp | 2 +- src/Granulate.cpp | 2 +- src/HevyMetl.cpp | 2 +- src/Iir.cpp | 2 +- src/InetWvIn.cpp | 2 +- src/InetWvOut.cpp | 2 +- src/JCRev.cpp | 2 +- src/LentPitShift.cpp | 52 ++ src/Makefile.in | 30 +- src/Mandolin.cpp | 2 +- src/Messager.cpp | 12 +- src/MidiFileIn.cpp | 4 +- src/Modal.cpp | 3 +- src/ModalBar.cpp | 2 +- src/Modulate.cpp | 2 +- src/Moog.cpp | 2 +- src/Mutex.cpp | 2 +- src/NRev.cpp | 2 +- src/Noise.cpp | 2 +- src/OnePole.cpp | 2 +- src/OneZero.cpp | 2 +- src/PRCRev.cpp | 2 +- src/PercFlut.cpp | 2 +- src/Phonemes.cpp | 2 +- src/PitShift.cpp | 2 +- src/PluckTwo.cpp | 2 +- src/Plucked.cpp | 2 +- src/PoleZero.cpp | 2 +- src/Resonate.cpp | 2 +- src/Rhodey.cpp | 2 +- src/RtAudio.cpp | 967 ++++++++++++++-------------- src/RtMidi.cpp | 115 ++-- src/RtWvIn.cpp | 4 +- src/RtWvOut.cpp | 4 +- src/Sampler.cpp | 2 +- src/Saxofony.cpp | 2 +- src/Shakers.cpp | 5 +- src/Simple.cpp | 2 +- src/SineWave.cpp | 2 +- src/SingWave.cpp | 2 +- src/Sitar.cpp | 2 +- src/Skini.cpp | 3 +- src/Socket.cpp | 2 +- src/Sphere.cpp | 2 +- src/StifKarp.cpp | 2 +- src/Stk.cpp | 2 +- src/TapDelay.cpp | 2 +- src/TcpClient.cpp | 4 +- src/TcpServer.cpp | 2 +- src/Thread.cpp | 2 +- src/TubeBell.cpp | 2 +- src/TwoPole.cpp | 2 +- src/TwoZero.cpp | 2 +- src/UdpSocket.cpp | 4 +- src/VoicForm.cpp | 4 +- src/Voicer.cpp | 14 +- src/Whistle.cpp | 2 +- src/Wurley.cpp | 2 +- 221 files changed, 1281 insertions(+), 913 deletions(-) create mode 100644 Makefile.in create mode 100644 include/LentPitShift.h create mode 100755 projects/demo/Banded delete mode 100644 projects/examples/test.cpp create mode 100644 src/LentPitShift.cpp diff --git a/INSTALL b/INSTALL index e273e92..184c283 100644 --- a/INSTALL +++ b/INSTALL @@ -1,6 +1,6 @@ The Synthesis ToolKit in C++ (STK) -By Perry R. Cook and Gary P. Scavone, 1995-2009. +By Perry R. Cook and Gary P. Scavone, 1995-2010. The Synthesis ToolKit in C++ can be used in a variety of ways, depending on your particular needs. Some people just choose the classes they need for a particular project and copy those to their project directory. Others like to compile and link to a library of object files. STK was not designed with one particular style of use in mind. diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000..0ed4442 --- /dev/null +++ b/Makefile.in @@ -0,0 +1,25 @@ +### Do not edit -- Generated by 'configure --with-whatever' from Makefile.in + +all : + cd src && $(MAKE) + cd projects/demo && $(MAKE) libdemo + cd projects/effects && $(MAKE) libeffects + cd projects/ragamatic && $(MAKE) libragamat + cd projects/examples && $(MAKE) -f libMakefile + +clean : + -rm -f *~ + cd src && $(MAKE) clean + cd projects/demo && $(MAKE) clean + cd projects/effects && $(MAKE) clean + cd projects/ragamatic && $(MAKE) clean + cd projects/examples && $(MAKE) clean + +distclean: clean + -rm -rf config.log config.status autom4te.cache Makefile + cd src && $(MAKE) distclean + cd projects/demo && $(MAKE) distclean + cd projects/effects && $(MAKE) distclean + cd projects/ragamatic && $(MAKE) distclean + cd projects/examples && $(MAKE) distclean + diff --git a/README b/README index 74e27f8..6584e92 100644 --- a/README +++ b/README @@ -1,6 +1,6 @@ The Synthesis ToolKit in C++ (STK) -By Perry R. Cook and Gary P. Scavone, 1995-2009. +By Perry R. Cook and Gary P. Scavone, 1995-2010. This distribution of the Synthesis ToolKit in C++ (STK) contains the following: @@ -27,7 +27,7 @@ portable (it's mostly platform-independent C and C++ code), and it's completely user-extensible (all source included, no unusual libraries, and no hidden drivers). We like to think that this increases the chances that our programs will still work in another 5-10 years. In -fact, the ToolKit has been working continuously for nearly 10 years +fact, the ToolKit has been working continuously for nearly 15 years now. STK currently runs with "realtime" support (audio and MIDI) on Linux, Macintosh OS X, and Windows computer platforms. Generic, non-realtime support has been tested under NeXTStep, Sun, and other @@ -146,7 +146,7 @@ LICENSE: STK WWW site: http://ccrma.stanford.edu/software/stk/ The Synthesis ToolKit in C++ (STK) -Copyright (c) 1995-2009 Perry R. Cook and Gary P. Scavone +Copyright (c) 1995-2010 Perry R. Cook and Gary P. Scavone Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/configure.ac b/configure.ac index de85421..fa9887f 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ AC_INIT(STK, 4.4, gary@music.mcgill.ca, stk) AC_CONFIG_AUX_DIR(config) AC_CONFIG_SRCDIR(src/Stk.cpp) -AC_CONFIG_FILES(src/Makefile projects/demo/Makefile projects/effects/Makefile projects/ragamatic/Makefile projects/examples/Makefile projects/examples/libMakefile) +AC_CONFIG_FILES(Makefile src/Makefile projects/demo/Makefile projects/effects/Makefile projects/ragamatic/Makefile projects/examples/Makefile projects/examples/libMakefile) # Fill GXX with something before test. AC_SUBST( GXX, ["no"] ) diff --git a/doc/README-Linux.txt b/doc/README-Linux.txt index 0819a33..e5f2976 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-2009. +By Perry R. Cook and Gary P. Scavone, 1995-2010. 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 c78ecb0..c2f4be3 100644 --- a/doc/README-MacOSX.txt +++ b/doc/README-MacOSX.txt @@ -1,21 +1,16 @@ The Synthesis ToolKit in C++ (STK) -By Perry R. Cook and Gary P. Scavone, 1995-2009. +By Perry R. Cook and Gary P. Scavone, 1995-2010. Please read the file README and INSTALL for more general STK information. The default realtime support for Macintosh OS X uses the CoreAudio HAL API and is specified during compilation using the __MACOSX_CORE__ preprocessor definition. There is also support for the JACK audio server using the __UNIX_JACK__ preprocessor definition. -It is necessary to install the OS X developer kit in order to compile STK. STK was successfully tested on OS X versions 10.5. - -The internal Macintosh audio hardware typically supports a sample rate of 44100 Hz only. The default STK sample rate is now 44100 Hz and all current example programs use this rate. However, it is possible to manually override this value in some programs from the command-line. The default sample rate is set in Stk.h. In addition, the RT_BUFFER_SIZE, specified in Stk.h, could be increased (to a higher power of two) for more robust performance. - -There is a potential conflict between the STK Delay class and a Delay() function declared in OSUtils.h (which is included via ). In general, this conflict can be avoided via the use of a namespace (an explicit Delay::Delay declaration), though this made the Windows Visual C++ compiler barf. If you use STK classes within a project that includes the OSUtils.h file, you will likely need to make changes in STK classes that use the Delay class. - +It is necessary to install the OS X developer kit in order to compile STK. STK was successfully tested on OS X versions 10.6. Tcl/Tk on OS X: -The tcl/tk interpreter does not ship by default with OS X, but must be downloaded from the internet. The latest Tcl/Tk Aqua distribution (http://www.apple.com/downloads/macosx/unix_open_source/tcltk.html) has been successfully tested on 10.2 and 10.3 systems. The default installation will place a link to the wish interpretor at /usr/bin/wish. +I think that tcl/tk interpreter is now included in the XCode package, since I haven't had to download it for several years now. It appears that socket support in Tcl/Tk on OS X uses the Nagle algorithm, which produces poor response between changes made in the tcl/tk script and the resulting audio updates. Note that this is only a problem when using a socket connection from a Tcl/Tk script. diff --git a/doc/README-NeXT.txt b/doc/README-NeXT.txt index e9f2c7f..2f8d114 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-2009. +By Perry R. Cook and Gary P. Scavone, 1995-2010. 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 2031c64..9e74c29 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-2009. +By Perry R. Cook and Gary P. Scavone, 1995-2010. 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 442835c..c65832a 100644 --- a/doc/README-Win.txt +++ b/doc/README-Win.txt @@ -1,15 +1,15 @@ The Synthesis ToolKit in C++ (STK) -By Perry R. Cook and Gary P. Scavone, 1995-2009. +By Perry R. Cook and Gary P. Scavone, 1995-2010. Please read the file README for more general STK information. DirectX and WindowsNT Issues: ----------------------------- -STK is currently distributed with Visual C++ .NET project and workspace files. It no longer compiles with Visual C++ 6.0. I gave up attempting to fix all the problems created by such a bad compiler. This version of STK has been tested using Visual C++ .NET. As well, the configure script now supprots MinGW. +STK is currently distributed with Visual C++ .NET project and workspace files. It no longer compiles with Visual C++ 6.0. I gave up attempting to fix all the problems created by such a bad compiler. This version of STK has been tested using Visual C++ .NET. As well, the configure script now supports MinGW. -IMPORTANT VC++ NOTE: When compiling "release" versions of STK programs, link to the release multithreaded library. When compiling "debug" versions, link to the debug multithreaded library. Compiler errors will result otherwise. Also, the Microsoft folk are up to their old habits of trying to change standards. The .NET compiler will complain about cerr for some reason. +IMPORTANT VC++ NOTE: When compiling "release" versions of STK programs, link to the release multithreaded library. When compiling "debug" versions, link to the debug multithreaded library. Compiler errors will result otherwise. Both the DirectSound and Steinberg ASIO audio APIs are supported for realtime audio input/output. The Visual C++ project files included with this distribution are configured to use the DirectSound API. In order to use the ASIO API, it is necessary to change the preprocessor definition from __WINDOWS_DS__ to __WINDOWS_ASIO__, as well as include all the files in the /src/include/ directory (i.e. asio.h, asio.cpp, ...). If you have a good quality soundcard and a native ASIO driver (not emulated), you are likely to get much better input/output response using that. @@ -45,21 +45,6 @@ WINDOWS XP/2000: There is a big advantage in using Windows XP/2000 over 95/98 with STK in that piping works, just as under unix. Also, the scheduler in 2000/XP seems to be much better, so socketed messages don't get clumped together like they do in Windows 95/98. Simply fire up a script file (ex. StkDemo.bat) by either double-clicking on it or typing it within a shell. -WINDOWS 95/98: - -PLAY SKINI SCOREFILES IN REALTIME: - - demo Clarinet -or -if scores/streetsf.ski - -USE TCL/TK GUIs FOR REALTIME CONTROL: - -1. Open a DOS console window and start syntmono (eg. demo Clarinet -or -is). - -2. Double click on a Tcl/Tk file in the tcl/ subdirectory of the demo directory (eg. Demo.tcl) from the Windows Explorer to start the GUI. Select the "communications" menu item and "Socket" and make the connection. - -3. Start moving the sliders to control the instrument. - - USE REALTIME MIDI INPUT FOR CONTROL: 1. Open a DOS console window and start syntmono with MIDI input (eg. demo Clarinet -or -im). @@ -67,8 +52,3 @@ USE REALTIME MIDI INPUT FOR CONTROL: This assumes you already have MIDI setup correctly for your computer. -WINDOWS NT ONLY: - -Realtime piping seems to work under WindowsNT in much the same way as on Unix platforms. Thus, it is possible to pipe realtime control data to syntmono under WindowsNT as well. Note, however, that the DirectSoundCapture API does not exist for WindowsNT, so it is necessary to use an ASIO audio driver and the STK ASIO support. - - diff --git a/doc/ReleaseNotes.txt b/doc/ReleaseNotes.txt index f8ce588..63e714f 100644 --- a/doc/ReleaseNotes.txt +++ b/doc/ReleaseNotes.txt @@ -1,14 +1,23 @@ The Synthesis ToolKit in C++ (STK) -By Perry R. Cook and Gary P. Scavone, 1995-2009. +By Perry R. Cook and Gary P. Scavone, 1995-2010. -v4.4.1: (3 June 2009) +v4.4.2: (4 February 2010) +- added various header file includes for newer compilers +- new LentPitShift class (thanks to Francois Germain) +- added "addTo" function to Delay class +- updates to RtAudio and RtMidi +- bug fixes in Voicer class (thanks Richard Dobson!) +- bug fixes in Granulate class +- added Makefile.in to compile library and all projects, as well as clean and distclean all + +v4.4.1: (3 June 2010) - added multi-channel/frame tick() virtual function to WvIn and WvOut abstract base classes (required update to RtWvOut class) - updated configure script to select g++ compiler by default - in demo.cpp: removed voicer grouping for messages, fixing polyphony when messages are on the same MIDI/SKINI channel - updates to RtAudio and RtMidi -v4.4: (30 April 2009) +v4.4: (30 April 2010) - all classes embedded in the "stk" namespace (except RtAudio, RtMidi, and RtError) - class WaveLoop renamed FileLoop - significant efficiency improvements via code restructuring and inlining diff --git a/doc/doxygen/Doxyfile b/doc/doxygen/Doxyfile index 47fbc0a..8a94e93 100644 --- a/doc/doxygen/Doxyfile +++ b/doc/doxygen/Doxyfile @@ -31,7 +31,7 @@ PROJECT_NAME = STK # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 4.4.1 +PROJECT_NUMBER = 4.4.2 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. diff --git a/doc/doxygen/download.txt b/doc/doxygen/download.txt index 55a67dd..38eceee 100644 --- a/doc/doxygen/download.txt +++ b/doc/doxygen/download.txt @@ -1,14 +1,24 @@ /*! \page download Download, Release Notes, and Bug Fixes -\section down Download Version 4.4.1 (3 June 2009): +\section down Download Version 4.4.2 (4 February 2010): \section notes Release Notes: +\subsection v4dot4dot2 Version 4.4.2 + + + \subsection v4dot4dot1 Version 4.4.1