mirror of
https://github.com/thestk/stk
synced 2026-01-12 04:21:52 +00:00
Compare commits
17 Commits
cocoapods-
...
4.3.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c92cf7468d | ||
|
|
e54b0cefab | ||
|
|
1a8403e203 | ||
|
|
554a74374b | ||
|
|
21b93795e7 | ||
|
|
11cf5faa0a | ||
|
|
de344668dd | ||
|
|
fe20fe92a2 | ||
|
|
e11bff2fe8 | ||
|
|
503ed3cc9f | ||
|
|
5d63b50e85 | ||
|
|
d12ef806ac | ||
|
|
ffce5357c6 | ||
|
|
b39c0bb101 | ||
|
|
f25eb5c3d7 | ||
|
|
71e5c027fb | ||
|
|
43dcd5775a |
199
.gitignore
vendored
199
.gitignore
vendored
@@ -1,199 +0,0 @@
|
||||
#####
|
||||
# OS X temporary files that should never be committed
|
||||
#
|
||||
# c.f. http://www.westwind.com/reference/os-x/invisibles.html
|
||||
|
||||
.DS_Store
|
||||
|
||||
# c.f. http://www.westwind.com/reference/os-x/invisibles.html
|
||||
|
||||
.Trashes
|
||||
|
||||
# c.f. http://www.westwind.com/reference/os-x/invisibles.html
|
||||
|
||||
*.swp
|
||||
|
||||
# *.lock - this is used and abused by many editors for many different things.
|
||||
# For the main ones I use (e.g. Eclipse), it should be excluded
|
||||
# from source-control, but YMMV
|
||||
|
||||
*.lock
|
||||
|
||||
#
|
||||
# profile - REMOVED temporarily (on double-checking, this seems incorrect; I can't find it in OS X docs?)
|
||||
#profile
|
||||
|
||||
|
||||
####
|
||||
# Xcode temporary files that should never be committed
|
||||
#
|
||||
# NB: NIB/XIB files still exist even on Storyboard projects, so we want this...
|
||||
|
||||
*~.nib
|
||||
|
||||
|
||||
####
|
||||
# Xcode build files -
|
||||
#
|
||||
# NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "DerivedData"
|
||||
|
||||
DerivedData/
|
||||
|
||||
# NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "build"
|
||||
|
||||
build/
|
||||
|
||||
|
||||
#####
|
||||
# Xcode private settings (window sizes, bookmarks, breakpoints, custom executables, smart groups)
|
||||
#
|
||||
# This is complicated:
|
||||
#
|
||||
# SOMETIMES you need to put this file in version control.
|
||||
# Apple designed it poorly - if you use "custom executables", they are
|
||||
# saved in this file.
|
||||
# 99% of projects do NOT use those, so they do NOT want to version control this file.
|
||||
# ..but if you're in the 1%, comment out the line "*.pbxuser"
|
||||
|
||||
# .pbxuser: http://lists.apple.com/archives/xcode-users/2004/Jan/msg00193.html
|
||||
|
||||
*.pbxuser
|
||||
|
||||
# .mode1v3: http://lists.apple.com/archives/xcode-users/2007/Oct/msg00465.html
|
||||
|
||||
*.mode1v3
|
||||
|
||||
# .mode2v3: http://lists.apple.com/archives/xcode-users/2007/Oct/msg00465.html
|
||||
|
||||
*.mode2v3
|
||||
|
||||
# .perspectivev3: http://stackoverflow.com/questions/5223297/xcode-projects-what-is-a-perspectivev3-file
|
||||
|
||||
*.perspectivev3
|
||||
|
||||
# NB: also, whitelist the default ones, some projects need to use these
|
||||
!default.pbxuser
|
||||
!default.mode1v3
|
||||
!default.mode2v3
|
||||
!default.perspectivev3
|
||||
|
||||
|
||||
####
|
||||
# Xcode 4 - semi-personal settings
|
||||
#
|
||||
#
|
||||
# OPTION 1: ---------------------------------
|
||||
# throw away ALL personal settings (including custom schemes!
|
||||
# - unless they are "shared")
|
||||
#
|
||||
# NB: this is exclusive with OPTION 2 below
|
||||
xcuserdata
|
||||
|
||||
# OPTION 2: ---------------------------------
|
||||
# get rid of ALL personal settings, but KEEP SOME OF THEM
|
||||
# - NB: you must manually uncomment the bits you want to keep
|
||||
#
|
||||
# NB: this *requires* git v1.8.2 or above; you may need to upgrade to latest OS X,
|
||||
# or manually install git over the top of the OS X version
|
||||
# NB: this is exclusive with OPTION 1 above
|
||||
#
|
||||
#xcuserdata/**/*
|
||||
|
||||
# (requires option 2 above): Personal Schemes
|
||||
#
|
||||
#!xcuserdata/**/xcschemes/*
|
||||
|
||||
####
|
||||
# Xcode 4 workspaces - more detailed
|
||||
#
|
||||
# Workspaces are important! They are a core feature of Xcode - don't exclude them :)
|
||||
#
|
||||
# Workspace layout is quite spammy. For reference:
|
||||
#
|
||||
# /(root)/
|
||||
# /(project-name).xcodeproj/
|
||||
# project.pbxproj
|
||||
# /project.xcworkspace/
|
||||
# contents.xcworkspacedata
|
||||
# /xcuserdata/
|
||||
# /(your name)/xcuserdatad/
|
||||
# UserInterfaceState.xcuserstate
|
||||
# /xcsshareddata/
|
||||
# /xcschemes/
|
||||
# (shared scheme name).xcscheme
|
||||
# /xcuserdata/
|
||||
# /(your name)/xcuserdatad/
|
||||
# (private scheme).xcscheme
|
||||
# xcschememanagement.plist
|
||||
#
|
||||
#
|
||||
|
||||
####
|
||||
# Xcode 4 - Deprecated classes
|
||||
#
|
||||
# Allegedly, if you manually "deprecate" your classes, they get moved here.
|
||||
#
|
||||
# We're using source-control, so this is a "feature" that we do not want!
|
||||
|
||||
*.moved-aside
|
||||
|
||||
####
|
||||
# Files generated by automake
|
||||
|
||||
Makefile
|
||||
autom4te.cache
|
||||
config.log
|
||||
config.status
|
||||
configure
|
||||
projects/demo/Makefile
|
||||
projects/demo/stk-demo
|
||||
projects/demo/Release
|
||||
projects/demo/Debug
|
||||
projects/effects/Makefile
|
||||
projects/effects/effects
|
||||
projects/effects/Release
|
||||
projects/effects/Debug
|
||||
projects/eguitar/Makefile
|
||||
projects/eguitar/eguitar
|
||||
projects/eguitar/Release
|
||||
projects/eguitar/Debug
|
||||
projects/examples/Makefile
|
||||
projects/examples/audioprobe
|
||||
projects/examples/bethree
|
||||
projects/examples/controlbee
|
||||
projects/examples/crtsine
|
||||
projects/examples/duplex
|
||||
projects/examples/foursine
|
||||
projects/examples/grains
|
||||
projects/examples/inetIn
|
||||
projects/examples/inetOut
|
||||
projects/examples/libMakefile
|
||||
projects/examples/midiprobe
|
||||
projects/examples/play
|
||||
projects/examples/playsmf
|
||||
projects/examples/record
|
||||
projects/examples/rtsine
|
||||
projects/examples/sine
|
||||
projects/examples/sineosc
|
||||
projects/examples/threebees
|
||||
projects/examples/Release
|
||||
projects/examples/Debug
|
||||
projects/ragamatic/Makefile
|
||||
projects/ragamatic/ragamat
|
||||
projects/ragamatic/Release
|
||||
projects/ragamatic/Debug
|
||||
src/libstk.a
|
||||
src/Release
|
||||
src/Debug
|
||||
src/Makefile
|
||||
|
||||
####
|
||||
# Files generated by Visual Studio
|
||||
|
||||
projects/*/.vs/
|
||||
projects/*/*.exe
|
||||
projects/*/*.ilk
|
||||
projects/*/*.pdb
|
||||
projects/*/*.vcxproj.user
|
||||
projects/*/Release/
|
||||
projects/*/Debug/
|
||||
44
INSTALL
Normal file
44
INSTALL
Normal file
@@ -0,0 +1,44 @@
|
||||
The Synthesis ToolKit in C++ (STK)
|
||||
|
||||
By Perry R. Cook and Gary P. Scavone, 1995-2007.
|
||||
|
||||
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.
|
||||
|
||||
To configure and compile (on Unix systems and MinGW):
|
||||
|
||||
1. Unpack the STK distribution (tar -xzf stk-4.x.x.tar.gz).
|
||||
2. From within the directory containing this file, run configure:
|
||||
|
||||
./configure
|
||||
|
||||
3. From within each project directory, type "make".
|
||||
4. To compile a library of objects, type "make" from within the src directory.
|
||||
|
||||
Several options can be passed to configure, including:
|
||||
|
||||
--disable-realtime = only compile generic non-realtime classes
|
||||
--enable-debug = enable various debug output
|
||||
--with-alsa = choose native ALSA API support (default, linux only)
|
||||
--with-oss = choose native OSS API support (linux only)
|
||||
--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-asio = choose ASIO API support (windows only)
|
||||
--with-ds = choose DirectSound API support (windows only)
|
||||
|
||||
It is now possible to specify more than one audio API where supported. 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)/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.
|
||||
|
||||
If you wish to use a different compiler than that selected by configure, specify that compiler in the command line (ex. to use CC):
|
||||
|
||||
./configure CXX=CC
|
||||
|
||||
In addition, a linux RPM is available from the Planet CCRMA WWW site (http://ccrma.stanford.edu/planetccrma/software/).
|
||||
|
||||
|
||||
For Windows Users:
|
||||
|
||||
MinGW support is provided in the configure script. In addition, Visual C++ project files are included for each of the example STK projects.
|
||||
54
INSTALL.md
54
INSTALL.md
@@ -1,54 +0,0 @@
|
||||
# The Synthesis ToolKit in C++ (STK)
|
||||
By Perry R. Cook and Gary P. Scavone, 1995-2019.
|
||||
|
||||
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.
|
||||
|
||||
## Unix systems and MinGW
|
||||
|
||||
1. If you downloaded the software from the git repository, first run autoconf,
|
||||
|
||||
autoconf
|
||||
|
||||
otherwise, if you downloaded the software from the STK source distribution, unpack the tar file,
|
||||
|
||||
tar -xzf stk-4.x.x.tar.gz
|
||||
|
||||
2. From within the directory containing this file, run configure:
|
||||
|
||||
./configure
|
||||
|
||||
3. From within each project directory, type `make`.
|
||||
|
||||
4. To compile a library of objects, type `make` from within the `src` directory.
|
||||
|
||||
Several options can be passed to configure, including:
|
||||
|
||||
--disable-realtime = only compile generic non-realtime classes
|
||||
--enable-debug = enable various debug output
|
||||
--with-alsa = choose native ALSA API support (default, 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-core = choose OS-X CoreAudio API (macintosh OS-X only)
|
||||
--with-asio = choose ASIO API support (windows only)
|
||||
--with-ds = choose DirectSound API support (windows only)
|
||||
--with-wasapi = choose Windows Audio Session API support (windows only)
|
||||
|
||||
It is now possible to specify more than one audio and MIDI API where supported. Note, however, that the ALSA library is required in order to compile the RtMidi class in Linux 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 (e.g. to set to /home/me/rawwaves and /home/me/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.
|
||||
|
||||
If you wish to use a different compiler than that selected by configure, specify that compiler in the command line (e.g. to use CC):
|
||||
|
||||
./configure CXX=CC
|
||||
|
||||
|
||||
## Windows
|
||||
|
||||
MinGW support is provided in the configure script. In addition, Visual Studio 2017 project files are included for each of the example STK projects.
|
||||
|
||||
##iOS
|
||||
|
||||
You can integrate the STK in iOS projects either by using its iOS static library or CocoaPods. See the [iOS README file](iOS/README-iOS.md) for instructions.
|
||||
27
LICENSE
27
LICENSE
@@ -1,27 +0,0 @@
|
||||
The Synthesis ToolKit in C++ (STK)
|
||||
|
||||
Copyright (c) 1995-2019 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
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
Any person wishing to distribute modifications to the Software is
|
||||
asked to send the modifications to the original developer so that they
|
||||
can be incorporated into the canonical version. This is, however, not
|
||||
a binding provision of this license.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
||||
ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
41
Makefile.in
41
Makefile.in
@@ -1,41 +0,0 @@
|
||||
### Do not edit -- Generated by 'configure --with-whatever' from Makefile.in
|
||||
|
||||
RM = /bin/rm
|
||||
|
||||
REALTIME = @realtime@
|
||||
|
||||
all :
|
||||
cd src && $(MAKE)
|
||||
cd projects/demo && $(MAKE) libdemo
|
||||
ifeq ($(REALTIME),yes)
|
||||
cd projects/effects && $(MAKE) libeffects
|
||||
cd projects/ragamatic && $(MAKE) libragamat
|
||||
cd projects/eguitar && $(MAKE) libeguitar
|
||||
endif
|
||||
cd projects/examples && $(MAKE) -f libMakefile
|
||||
|
||||
clean :
|
||||
$(RM) -f *~
|
||||
cd src && $(MAKE) clean
|
||||
cd projects/demo && $(MAKE) clean
|
||||
ifeq ($(REALTIME),yes)
|
||||
cd projects/effects && $(MAKE) clean
|
||||
cd projects/ragamatic && $(MAKE) clean
|
||||
cd projects/eguitar && $(MAKE) clean
|
||||
endif
|
||||
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
|
||||
ifeq ($(REALTIME),yes)
|
||||
cd projects/effects && $(MAKE) distclean
|
||||
cd projects/ragamatic && $(MAKE) distclean
|
||||
cd projects/eguitar && $(MAKE) distclean
|
||||
endif
|
||||
cd projects/examples && $(MAKE) distclean
|
||||
|
||||
install:
|
||||
$(MAKE) -C src install
|
||||
|
||||
@@ -1,29 +1,21 @@
|
||||
# The Synthesis ToolKit in C++ (STK)
|
||||
By Perry R. Cook and Gary P. Scavone, 1995--2019.
|
||||
The Synthesis ToolKit in C++ (STK)
|
||||
|
||||
By Perry R. Cook and Gary P. Scavone, 1995-2007.
|
||||
|
||||
This distribution of the Synthesis ToolKit in C++ (STK) contains the following:
|
||||
|
||||
* [`include`](include/): STK class header files
|
||||
* [`src`](src/): STK class source files
|
||||
* [`rawwaves`](rawwaves): STK audio files (1-channel, 16-bit, big-endian)
|
||||
* [`doc`](doc): STK documentation
|
||||
* [`projects`](projects): example STK projects and programs
|
||||
include: STK class header files
|
||||
src: STK class source files
|
||||
rawwaves: STK audio files (1-channel, 16-bit, big-endian)
|
||||
doc: STK documentation
|
||||
projects: example STK projects and programs
|
||||
|
||||
Please read the [Legal and Ethical notes](#legal-and-ethical) near the bottom of this document and the [License](LICENSE).
|
||||
Please read the Legal and Ethical notes near the bottom of this document.
|
||||
|
||||
For compiling and installing STK, see the [INSTALL.md](INSTALL.md) file in this directory.
|
||||
For compiling and installing STK, see the INSTALL file in this directory.
|
||||
|
||||
## Contents
|
||||
|
||||
* [Overview](#overview)
|
||||
* [System Requirements](#system-requirements)
|
||||
* [What's New (and not so new)](#whats-new-and-not-so-new)
|
||||
* [Disclaimer](#disclaimer)
|
||||
* [Legal and Ethical](#legal-and-ethical)
|
||||
* [Further Reading](#further-reading)
|
||||
* [Perry's Notes From the Original Distribution](#perrys-notes-from-the-original-distribution)
|
||||
|
||||
# OVERVIEW
|
||||
OVERVIEW:
|
||||
|
||||
The Synthesis ToolKit in C++ (STK) is a set of open source audio
|
||||
signal processing and algorithmic synthesis classes written in the C++
|
||||
@@ -31,18 +23,20 @@ programming language. STK was designed to facilitate rapid
|
||||
development of music synthesis and audio processing software, with an
|
||||
emphasis on cross-platform functionality, realtime control, ease of
|
||||
use, and educational example code. The Synthesis ToolKit is extremely
|
||||
portable (most classes are platform-independent C++ code), and it's
|
||||
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. 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 platforms and
|
||||
should work with any standard C++ compiler.
|
||||
chances that our programs will still work in another 5-10 years. In
|
||||
fact, the ToolKit has been working continuously for nearly 10 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
|
||||
platforms and should work with any standard C++ compiler.
|
||||
|
||||
The only classes of the Synthesis ToolKit that are platform-dependent
|
||||
concern sockets, threads, mutexes, and real-time audio and MIDI input
|
||||
and output. The interface for MIDI input and the simple Tcl/Tk
|
||||
The Synthesis ToolKit is free for non-commercial use. The only parts
|
||||
of the Synthesis ToolKit that are platform-dependent concern real-time
|
||||
audio and MIDI input and output, and that is taken care of with a few
|
||||
special classes. The interface for MIDI input and the simple Tcl/Tk
|
||||
graphical user interfaces (GUIs) provided is the same, so it's easy to
|
||||
experiment in real time using either the GUIs or MIDI. The Synthesis
|
||||
ToolKit can generate simultaneous SND (AU), WAV, AIFF, and MAT-file
|
||||
@@ -63,7 +57,7 @@ against one of the fundamental design goals of the ToolKit - platform
|
||||
independence.
|
||||
|
||||
For those instances where a simple GUI with sliders and buttons is
|
||||
helpful, we use Tcl/Tk (https://www.tcl.tk/) which is freely
|
||||
helpful, we use Tcl/Tk (http://dev.scriptics.com) which is freely
|
||||
distributed for all the supported ToolKit platforms. A number of
|
||||
Tcl/Tk GUI scripts are distributed with the ToolKit release. For
|
||||
control, the Synthesis Toolkit uses raw MIDI (on supported platforms),
|
||||
@@ -71,24 +65,23 @@ and SKINI (Synthesis ToolKit Instrument Network Interface, a MIDI-like
|
||||
text message synthesis control format).
|
||||
|
||||
|
||||
# SYSTEM REQUIREMENTS
|
||||
SYSTEM REQUIREMENTS:
|
||||
|
||||
See the individual README's (e.g. README-linux) in the /doc directory
|
||||
See the individual README's (eg. README-linux) in the /doc directory
|
||||
for platform specific information and system requirements. In
|
||||
general, you will use the configure script to create Makefiles on unix
|
||||
platforms (and MinGW) or the VS2017 workspace files to compile the
|
||||
platforms (and MinGW) or the VC++ workspace files to compile the
|
||||
example programs. To use the Tcl/Tk GUIs, you will need Tcl/Tk
|
||||
version 8.0 or higher.
|
||||
|
||||
|
||||
# WHAT'S NEW (AND NOT SO NEW)
|
||||
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" in the /doc directory to see what has changed since
|
||||
the last release.
|
||||
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
|
||||
@@ -102,12 +95,12 @@ messages. In most cases, this should eliminate the use of the
|
||||
Md2Skini program.
|
||||
|
||||
Realtime audio input capabilities were added to STK with release 3.0,
|
||||
though the behavior of such is very hardware dependent. Under Linux
|
||||
and Macintosh OS-X, audio input and output are possible with very low
|
||||
latency. Using the Windows DirectSound API, minimum dependable output
|
||||
sound latency seems to be around 20 milliseconds or so, while input
|
||||
sound latency is generally higher. Performance with the ASIO audio
|
||||
API on Windows provides much better performance.
|
||||
though the behavior of such is very hardware dependent. Under Linux,
|
||||
Macintosh OS-X, and Irix, audio input and output are possible with
|
||||
very low latency. Using the Windoze DirectSound API, minimum
|
||||
dependable output sound latency seems to be around 20 milliseconds or
|
||||
so, while input sound latency is on the order of a hundred
|
||||
milliseconds or more!
|
||||
|
||||
As mentioned above, it is possible to record the audio ouput of an STK
|
||||
program to .snd, .wav, .raw, .aif, and .mat (Matlab MAT-file) output
|
||||
@@ -118,10 +111,10 @@ generic C++ compiler.
|
||||
|
||||
For those who wish to make a library from the core STK classes, the
|
||||
configure script generates a Makefile in the src directory that will
|
||||
accomplish that.
|
||||
accomplish that (Linux, SGI, and Macintosh OS X only).
|
||||
|
||||
|
||||
# DISCLAIMER
|
||||
DISCLAIMER:
|
||||
|
||||
You probably already guessed this, but just to be sure, we don't
|
||||
guarantee anything works. :-) It's free ... what do you expect? If
|
||||
@@ -130,14 +123,14 @@ can also make suggestions, but again, no guarantees. Send email to
|
||||
the mail list.
|
||||
|
||||
|
||||
# LEGAL AND ETHICAL
|
||||
LEGAL AND ETHICAL:
|
||||
|
||||
This software was designed and created to be made publicly available
|
||||
for free, primarily for academic purposes, so if you use it, pass it
|
||||
on with this documentation, and for free.
|
||||
|
||||
If you make a million dollars with it, it would be nice if you would
|
||||
share. If you make compositions with it, put us in the program notes.
|
||||
share. If you make compositions with it, put us in the program notes.
|
||||
|
||||
Some of the concepts are covered by various patents, some known to us
|
||||
and likely others which are unknown. Many of the ones known to us are
|
||||
@@ -148,8 +141,39 @@ public domain. To avoid subtle legal issues, we'll not state what's
|
||||
freely useable here, but we'll try to note within the various classes
|
||||
where certain things are likely to be protected by patents.
|
||||
|
||||
LICENSE:
|
||||
|
||||
# FURTHER READING
|
||||
STK WWW site: http://ccrma.stanford.edu/software/stk/
|
||||
|
||||
The Synthesis ToolKit in C++ (STK)
|
||||
Copyright (c) 1995-2007 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
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
Any person wishing to distribute modifications to the Software is
|
||||
asked to send the modifications to the original developer so that they
|
||||
can be incorporated into the canonical version. This is, however, not
|
||||
a binding provision of this license.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
||||
ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
FURTHER READING:
|
||||
|
||||
For complete documentation on this ToolKit, the classes, etc., see the
|
||||
doc directory of the distribution or surf to
|
||||
@@ -157,7 +181,7 @@ http://ccrma.stanford.edu/software/stk/. Also check the platform
|
||||
specific README's for specific system requirements.
|
||||
|
||||
|
||||
# PERRY'S NOTES FROM THE ORIGINAL DISTRIBUTION
|
||||
PERRY'S NOTES FROM THE ORIGINAL DISTRIBUTION:
|
||||
|
||||
This whole world was created with no particular hardware in mind.
|
||||
These examples are intended to be tutorial in nature, as a platform
|
||||
@@ -180,11 +204,11 @@ The answers lie below.
|
||||
|
||||
3) The classic difficulties most people have in trying to implement physical models are:
|
||||
|
||||
A) They have trouble understanding the papers, and/or in turning the theory into practice.
|
||||
A) They have trouble understanding the papers, and/or in turning the theory into practice.
|
||||
|
||||
B) The Physical Model instruments are a pain to get to oscillate, and coming up with stable and meaningful parameter values is required to get the models to work at all.
|
||||
B) The Physical Model instruments are a pain to get to oscillate, and coming up with stable and meaningful parameter values is required to get the models to work at all.
|
||||
|
||||
This set of C++ unit generators and instruments might help to diminish the scores of emails I get asking what to do with those block diagrams I put in my papers.
|
||||
This set of C++ unit generators and instruments might help to diminish the scores of emails I get asking what to do with those block diagrams I put in my papers.
|
||||
|
||||
4) I wanted to try some new stuff with modal synthesis, and implement some classic FM patches as well.
|
||||
|
||||
@@ -192,3 +216,6 @@ This set of C++ unit generators and instruments might help to diminish the score
|
||||
|
||||
6) More rationalizations to follow . . .
|
||||
|
||||
|
||||
|
||||
|
||||
55
STK.podspec
55
STK.podspec
@@ -1,55 +0,0 @@
|
||||
# To lint the spec:
|
||||
# pod spec lint --skip-import-validation --allow-warnings
|
||||
# To publish:
|
||||
# pod trunk push STK.podspec --skip-import-validation --allow-warnings
|
||||
|
||||
Pod::Spec.new do |spec|
|
||||
spec.name = 'STK'
|
||||
spec.version = '4.6.1'
|
||||
spec.summary = 'The Synthesis ToolKit in C++ is a set of open source audio signal processing and algorithmic synthesis classes.'
|
||||
spec.homepage = 'https://ccrma.stanford.edu/software/stk/'
|
||||
spec.source = { :git => 'https://github.com/thestk/stk.git', :tag => spec.version }
|
||||
spec.license = { :type => 'MIT' }
|
||||
spec.author = { "Ariel Elkin" => "ariel@arivibes.com" }
|
||||
spec.platform = :ios
|
||||
spec.ios.deployment_target = "10.0"
|
||||
spec.source_files = [
|
||||
"src/*.cpp",
|
||||
"include/*.h"
|
||||
]
|
||||
spec.public_header_files = [
|
||||
"include/*.h",
|
||||
"include/SKINImsg.h",
|
||||
"include/SKINItbl.h"
|
||||
]
|
||||
spec.exclude_files = [
|
||||
"include/Thread.h",
|
||||
"src/Thread.cpp",
|
||||
"include/Mutex.h",
|
||||
"src/Mutex.cpp",
|
||||
"include/UdpSocket.h",
|
||||
"src/UdpSocket.cpp",
|
||||
"include/Socket.h",
|
||||
"src/Socket.cpp",
|
||||
"include/TcpClient.h",
|
||||
"src/TcpClient.cpp",
|
||||
"include/TcpServer.h",
|
||||
"src/TcpServer.cpp",
|
||||
"include/InetWvIn.h",
|
||||
"src/InetWvIn.cpp",
|
||||
"include/InetWvOut.h",
|
||||
"src/InetWvOut.cpp",
|
||||
"include/RtAudio.h",
|
||||
"src/RtAudio.cpp",
|
||||
"include/RtMidi.h",
|
||||
"src/RtMidi.cpp",
|
||||
"include/RtWvIn.h",
|
||||
"src/RtWvIn.cpp",
|
||||
"include/RtWvOut.h",
|
||||
"src/RtWvOut.cpp",
|
||||
"include/RtError.h"
|
||||
]
|
||||
spec.preserve_paths = "README.MD"
|
||||
spec.resource_bundles = { "rawwaves": "rawwaves/*.raw" }
|
||||
spec.libraries = 'c++'
|
||||
end
|
||||
189
bin/treesed
189
bin/treesed
@@ -1,189 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
# treesed
|
||||
# Written January 1996 by Rick Jansen (rick@sara.nl)
|
||||
# URL: http://www.sara.nl/rick
|
||||
|
||||
# usage: treesed pattern1 pattern2 -tree
|
||||
# treesed pattern1 pattern2 -files file1 file2 ...
|
||||
|
||||
# example: treesed href HREF -files *.html
|
||||
|
||||
# Treesed searches for pattern1 and replaces pattern1 by pattern2
|
||||
# if pattern2 supplied. If only pattern1 given treesed just searches.
|
||||
# Treesed will search in all files and subdirectories of the current
|
||||
# directory
|
||||
|
||||
|
||||
|
||||
#--------------------------------------------------------
|
||||
# Parameters
|
||||
|
||||
$DoEdit=0;
|
||||
$search_pattern = $ARGV[0];
|
||||
$search_pattern =~ s/(\W)/\\$1/g; # escape regexp chars
|
||||
shift;
|
||||
|
||||
while ($#ARGV >= 0) {
|
||||
|
||||
if ($ARGV[0] eq '-files') {
|
||||
@temp_ls = @ARGV[1 .. $#ARGV];
|
||||
# Get list of files, skip dirs
|
||||
foreach $file (@ARGV[1 .. $#ARGV]) {
|
||||
if (-f $file) {
|
||||
push(@ls, $file);
|
||||
}
|
||||
}
|
||||
last;
|
||||
}
|
||||
elsif ($ARGV[0] eq '-tree') {
|
||||
&Get_LS;
|
||||
last;
|
||||
}
|
||||
|
||||
if (! -f $ARGV[0]) {
|
||||
if (defined($replacement_pattern)) {
|
||||
print "usage: treesed pattern1 <pattern2> -tree/-files <files>\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$replacement_pattern = $ARGV[0];
|
||||
#$replacement_pattern =~ s/(\W)/\\$1/g; # escape regexp chars
|
||||
$DoEdit=1;
|
||||
shift;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# No files?
|
||||
if ($#ls < 0) {
|
||||
print "xx No input files\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
print "search_pattern: $search_pattern\n";
|
||||
print "replacement_pattern: $replacement_pattern\n";
|
||||
if ($DoEdit) {
|
||||
print "\n** EDIT MODE!\n\n"; }
|
||||
else {
|
||||
print "\n** Search mode\n\n";
|
||||
}
|
||||
|
||||
#foreach $file (@ls) {
|
||||
# print "$file \n";
|
||||
#}
|
||||
|
||||
|
||||
#--------------------------------------------------------
|
||||
# Search list of files for pattern
|
||||
|
||||
$linepos=0;
|
||||
|
||||
$| = 1; # Force flush after every write
|
||||
foreach $file (@ls) {
|
||||
#print "$file\n";
|
||||
print '.';
|
||||
$linepos++;
|
||||
if ($linepos > 50) {
|
||||
$linepos=0;
|
||||
print "\n";
|
||||
}
|
||||
|
||||
if (!open(FILE, $file)) {
|
||||
print "\nCould not open $file\n";
|
||||
next;
|
||||
}
|
||||
|
||||
$Found = 0;
|
||||
$Count = 0;
|
||||
$lineno = 0;
|
||||
@lines = ();
|
||||
while (<FILE>) {
|
||||
$lineno++;
|
||||
if (/$search_pattern/i) {
|
||||
#print;
|
||||
$Count++;
|
||||
$Found = 1;
|
||||
push(@lines, $lineno);
|
||||
}
|
||||
}
|
||||
close(FILE);
|
||||
if ($Found) {
|
||||
print "\n$file: $Count lines on: @lines\n";
|
||||
}
|
||||
|
||||
if ($Found && $DoEdit) { &Edit($file); }
|
||||
|
||||
}
|
||||
$| = 0;
|
||||
print "\n";
|
||||
|
||||
|
||||
exit(0);
|
||||
|
||||
|
||||
#--------------------------------------------------------
|
||||
# Edit file
|
||||
|
||||
sub Edit {
|
||||
|
||||
# Replace $ARGV[0] with $ARGV[1] in $file
|
||||
|
||||
local($file) = @_;
|
||||
local($bakfile) = $file.'.'.$$;
|
||||
|
||||
# First create backup
|
||||
open(FILE, $file) || die "Could not open $file for read\n";
|
||||
open(BAKFILE, ">$bakfile") || die "Could not open $bakfile for backup\n";
|
||||
while (<FILE>) {
|
||||
print BAKFILE;
|
||||
}
|
||||
close(BAKFILE);
|
||||
close(FILE);
|
||||
|
||||
# Now replace $ARGV[0] by $ARGV[1] in the backupfile,
|
||||
# result into $file
|
||||
open(BAKFILE, $bakfile) || die "Could not open $bakfile for read\n";
|
||||
open(FILE,">$file") || die "Could not open $file for write\n";
|
||||
$Count=0;
|
||||
while (<BAKFILE>) {
|
||||
if (/$search_pattern/i) { $Count++; }
|
||||
s/$search_pattern/$replacement_pattern/gi;
|
||||
print FILE;
|
||||
}
|
||||
close(BAKFILE);
|
||||
close(FILE);
|
||||
|
||||
print
|
||||
"\nReplaced $search_pattern by $replacement_pattern on $Count lines in $file\n";
|
||||
|
||||
} #sub Edit
|
||||
|
||||
#--------------------------------------------------------
|
||||
|
||||
sub Get_LS {
|
||||
|
||||
# Get a list of full path names into array @ls
|
||||
|
||||
local(@localls)=`ls -R1`;
|
||||
local($item,$Dir);
|
||||
|
||||
#print "localls: @localls\n";
|
||||
$Dir='';
|
||||
foreach $item (@localls) {
|
||||
#print "$item\n";
|
||||
if ($item =~ /:$/) {
|
||||
$Dir=$item;
|
||||
chop($Dir);
|
||||
$Dir =~ s/:$/\//;
|
||||
}
|
||||
else {
|
||||
chop($item);
|
||||
$item = $Dir.$item;
|
||||
if ($item !~ /^\s*$/) { push(@ls, $item); }
|
||||
}
|
||||
}
|
||||
@localls=();
|
||||
|
||||
} # sub Get_LS
|
||||
|
||||
1371
config.guess
vendored
Executable file
1371
config.guess
vendored
Executable file
File diff suppressed because it is too large
Load Diff
771
config/config.sub → config.sub
vendored
771
config/config.sub → config.sub
vendored
File diff suppressed because it is too large
Load Diff
1441
config/config.guess
vendored
1441
config/config.guess
vendored
File diff suppressed because it is too large
Load Diff
241
configure.ac
241
configure.ac
@@ -1,19 +1,15 @@
|
||||
# Process this file with autoconf to produce a configure script.
|
||||
AC_INIT(STK, 4.6.1, gary@music.mcgill.ca, stk)
|
||||
AC_CONFIG_AUX_DIR(config)
|
||||
AC_INIT(STK, 4.3, gary@music.mcgill.ca, stk)
|
||||
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(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"] )
|
||||
|
||||
# Checks for programs.
|
||||
AC_PROG_CC
|
||||
AC_PROG_CXX(g++ CC c++ cxx)
|
||||
AC_PROG_RANLIB
|
||||
AC_PATH_PROG(AR, ar, no)
|
||||
if [[ $AR = "no" ]] ; then
|
||||
AC_MSG_ERROR("Could not find ar - needed to create a library");
|
||||
fi
|
||||
AC_PROG_CXX
|
||||
|
||||
# Checks for header files.
|
||||
AC_HEADER_STDC
|
||||
@@ -40,193 +36,128 @@ AC_MSG_RESULT($INCLUDE_PATH)
|
||||
|
||||
# Check for realtime support disable
|
||||
AC_MSG_CHECKING(whether to compile realtime support)
|
||||
AC_ARG_ENABLE(realtime,
|
||||
[ --disable-realtime = only compile generic non-realtime classes],
|
||||
realtime=$enableval)
|
||||
if test "$realtime" = "no"; then
|
||||
AC_SUBST( sound_api, [] )
|
||||
else
|
||||
AC_SUBST( realtime, [yes] )
|
||||
fi
|
||||
AC_ARG_ENABLE(realtime, [ --disable-realtime = only compile generic non-realtime classes], [AC_SUBST( realtime, [no] ) AC_SUBST( sound_api, [] )], [AC_SUBST( realtime, [yes] ) ] )
|
||||
AC_MSG_RESULT($realtime)
|
||||
|
||||
AC_MSG_CHECKING(whether to build the static library)
|
||||
AC_ARG_ENABLE(static,
|
||||
[ --disable-static = do not compile static library ],
|
||||
build_static=$enableval,
|
||||
build_static=yes)
|
||||
AC_SUBST(build_static)
|
||||
AC_MSG_RESULT($build_static)
|
||||
|
||||
AC_MSG_CHECKING(whether to build the shared library)
|
||||
AC_ARG_ENABLE(shared,
|
||||
[ --enable-shared = compile the shared library ],
|
||||
build_shared=$enableval,
|
||||
build_shared=no)
|
||||
AC_SUBST(build_shared)
|
||||
AC_MSG_RESULT($build_shared)
|
||||
|
||||
if test x$build_static = xno -a x$build_shared = xno ; then
|
||||
AC_MSG_ERROR([ both static and shared libraries are disabled], 1)
|
||||
fi
|
||||
|
||||
# Check for math library
|
||||
AC_CHECK_LIB(m, cos, , AC_MSG_ERROR(math library is needed!))
|
||||
|
||||
# Check for debug
|
||||
AC_MSG_CHECKING(whether to compile debug version)
|
||||
AC_ARG_ENABLE(debug,
|
||||
[ --enable-debug = enable various debug output],
|
||||
debug=$enableval)
|
||||
if test "$debug" = "yes"; then
|
||||
AC_SUBST( cppflag, ["-D_STK_DEBUG_ -D__RTAUDIO_DEBUG__ -D__RTMIDI_DEBUG__"] )
|
||||
AC_SUBST( cxxflag, ["-g"] )
|
||||
AC_SUBST( object_path, [Debug] )
|
||||
else
|
||||
AC_SUBST( debug, [no] )
|
||||
AC_SUBST( cppflag, [] )
|
||||
AC_SUBST( cxxflag, [-O3] )
|
||||
AC_SUBST( object_path, [Release] )
|
||||
fi
|
||||
AC_MSG_RESULT($debug)
|
||||
|
||||
# Checks for functions
|
||||
if test $realtime = yes; then
|
||||
AC_CHECK_FUNCS(select socket)
|
||||
AC_CHECK_FUNC(gettimeofday, [cppflag="$cppflag -DHAVE_GETTIMEOFDAY"], )
|
||||
AC_CHECK_FUNC(gettimeofday, [cflags=$cflags" -DHAVE_GETTIMEOFDAY"], )
|
||||
fi
|
||||
|
||||
# For -I and -D flags
|
||||
CPPFLAGS="$CPPFLAGS $cppflag"
|
||||
|
||||
# For debugging and optimization ... overwrite default because it has both -g and -O2
|
||||
CXXFLAGS="$cxxflag"
|
||||
# Check for debug
|
||||
AC_MSG_CHECKING(whether to compile debug version)
|
||||
AC_ARG_ENABLE(debug,
|
||||
[ --enable-debug = enable various debug output],
|
||||
[AC_SUBST( debug, ["-D_STK_DEBUG_ -D__RTAUDIO_DEBUG__"] ) AC_SUBST( cflags, ["-g -O2"] ) AC_SUBST( object_path, [Debug] ) AC_MSG_RESULT(yes)],
|
||||
[AC_SUBST( debug, [] ) AC_SUBST( cflags, [-O3] ) AC_SUBST( object_path, [Release] ) AC_MSG_RESULT(no)])
|
||||
|
||||
# Check compiler and use -Wall if gnu.
|
||||
if [test $GXX = "yes" ;] then
|
||||
AC_SUBST( cxxflag, [-Wall] )
|
||||
if test $GXX = "yes" ; then
|
||||
AC_SUBST( warn, ["-Wall -g -D__GXX__"] )
|
||||
fi
|
||||
|
||||
CXXFLAGS="$CXXFLAGS $cxxflag"
|
||||
|
||||
AC_CANONICAL_HOST
|
||||
|
||||
basesharedname="libstk-\$(RELEASE)"
|
||||
|
||||
AC_SUBST( sharedlib, ["libstk.so"] )
|
||||
AC_SUBST( sharedname, [${basesharedname}.so] )
|
||||
AC_SUBST( libflags, ["-shared -Wl,-soname,${basesharedname}.so -o $sharedname"] )
|
||||
case $host in
|
||||
*-apple*)
|
||||
AC_SUBST( sharedlib, ["libstk.dylib"] )
|
||||
AC_SUBST( sharedname, ["${basesharedname}.dylib"] )
|
||||
AC_SUBST( libflags, ["-dynamiclib -o ${basesharedname}.dylib"] )
|
||||
esac
|
||||
|
||||
if test $realtime = yes; then
|
||||
# Checks for package options and external software
|
||||
AC_CANONICAL_HOST
|
||||
AC_MSG_CHECKING(for audio API)
|
||||
|
||||
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__"
|
||||
AC_MSG_RESULT(using JACK)
|
||||
AC_CHECK_LIB(jack, jack_client_open, , AC_MSG_ERROR(JACK support requires the jack library!))])
|
||||
|
||||
case $host in
|
||||
*-*-netbsd*)
|
||||
AS_IF([test "$api" == ""], [
|
||||
AC_MSG_RESULT(using OSS)
|
||||
api="$api -D__LINUX_OSS__"
|
||||
LIBS="$LIBS -lossaudio"
|
||||
AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR(RtAudio requires the pthread library!))])
|
||||
;;
|
||||
|
||||
*-*-freebsd*)
|
||||
AS_IF([test "$api" == ""], [
|
||||
AC_MSG_RESULT(using OSS)
|
||||
api="$api -D__LINUX_OSS__"
|
||||
LIBS="$LIBS -lossaudio"
|
||||
AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR(RtAudio requires the pthread library!))])
|
||||
;;
|
||||
|
||||
*-*-linux*)
|
||||
# Look for ALSA flag
|
||||
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__"
|
||||
AC_MSG_RESULT(using ALSA)
|
||||
AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR(ALSA support requires the asound library!))])
|
||||
AC_SUBST( sound_api, [_NO_API_] )
|
||||
|
||||
# Look for ALSA library because we need it for RtMidi
|
||||
AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR(STK in Linux requires the ALSA asound library for RtMidi!))
|
||||
audio_apis="-D__LINUX_ALSASEQ__"
|
||||
|
||||
# Look for Jack flag
|
||||
AC_ARG_WITH(jack, [ --with-jack = choose JACK server support (linux only)], [AC_SUBST( sound_api, [-D__UNIX_JACK__] ) AC_MSG_RESULT(using JACK)] , )
|
||||
if [test $sound_api = -D__UNIX_JACK__;] then
|
||||
TEMP_LIBS=$LIBS
|
||||
AC_CHECK_LIB(jack, jack_client_new, , AC_MSG_ERROR(JACK support requires the jack library!))
|
||||
LIBS="`pkg-config --cflags --libs jack` $TEMP_LIBS -lasound"
|
||||
audio_apis="-D__UNIX_JACK__ $audio_apis"
|
||||
fi
|
||||
|
||||
# Look for Alsa flag
|
||||
AC_ARG_WITH(alsa, [ --with-alsa = choose native ALSA API support (linux only)], [AC_SUBST( sound_api, [-D__LINUX_ALSA__] ) AC_MSG_RESULT(using ALSA)], )
|
||||
if test $sound_api = -D__LINUX_ALSA__; then
|
||||
audio_apis="-D__LINUX_ALSA__ $audio_apis"
|
||||
fi
|
||||
|
||||
# Look for OSS flag
|
||||
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__"
|
||||
AC_MSG_RESULT(using OSS)
|
||||
AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR(OSS support requires ALSA for RtMidi!))])
|
||||
AC_ARG_WITH(oss, [ --with-oss = choose OSS API support (linux only)], [AC_SUBST( sound_api, [-D__LINUX_OSS__] ) AC_MSG_RESULT(using OSS)], )
|
||||
if test $sound_api = -D__LINUX_OSS__; then
|
||||
audio_apis="-D__LINUX_OSS__ $audio_apis"
|
||||
fi
|
||||
|
||||
# If no audio api flags specified, use ALSA
|
||||
AS_IF([test "$api" == ""], [
|
||||
if [test $sound_api = _NO_API_;] then
|
||||
AC_MSG_RESULT(using ALSA)
|
||||
AC_SUBST( api, [-D__LINUX_ALSA__] )
|
||||
AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR(ALSA support requires the asound library!))
|
||||
])
|
||||
audio_apis="-D__LINUX_ALSA__ $audio_apis"
|
||||
fi
|
||||
|
||||
AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR(RtAudio requires the pthread library!))
|
||||
AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR(realtime support requires the pthread library!))
|
||||
;;
|
||||
|
||||
*-apple*)
|
||||
AC_SUBST( sound_api, [_NO_API_] )
|
||||
|
||||
# Look for JACK flag
|
||||
AC_ARG_WITH(jack, [ --with-jack = choose JACK server support (unix only)], [AC_SUBST( sound_api, [-D__UNIX_JACK__] ) AC_MSG_RESULT(using JACK)], )
|
||||
if [test $sound_api = -D__UNIX_JACK__;] then
|
||||
AC_CHECK_LIB(jack, jack_client_new, , AC_MSG_ERROR(JACK support requires the jack library!))
|
||||
audio_apis="-D__UNIX_JACK__"
|
||||
fi
|
||||
|
||||
# Look for Core flag
|
||||
AC_ARG_WITH(core, [ --with-core = choose CoreAudio API support (mac only)])
|
||||
AS_IF([test "x$with_core" == "xyes"], [
|
||||
api="$api -D__MACOSX_CORE__"
|
||||
AC_MSG_RESULT(using CoreAudio)
|
||||
AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [], [AC_MSG_ERROR(CoreAudio header files not found!)] )
|
||||
LIBS="$LIBS -framework CoreAudio -framework CoreFoundation -framework CoreMIDI" ])
|
||||
AC_ARG_WITH(core, [ --with-core = choose CoreAudio API support (mac only)], [AC_SUBST( sound_api, [-D__MACOSX_CORE__] ) AC_MSG_RESULT(using CoreAudio)], )
|
||||
if test $sound_api = -D__MACOSX_CORE__; then
|
||||
AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [], [AC_MSG_ERROR(CoreAudio header files not found!)] )
|
||||
AC_SUBST( frameworks, ["-framework CoreAudio -framework CoreFoundation -framework CoreMidi"] )
|
||||
audio_apis="-D__MACOSX_CORE__ $audio_apis"
|
||||
fi
|
||||
|
||||
# If no audio api flags specified, use CoreAudio
|
||||
AS_IF([test "$api" == ""], [
|
||||
AC_SUBST( api, [-D__MACOSX_CORE__] )
|
||||
if [test $sound_api = _NO_API_;] then
|
||||
AC_SUBST( sound_api, [-D__MACOSX_CORE__] )
|
||||
AC_MSG_RESULT(using CoreAudio)
|
||||
AC_CHECK_HEADER(CoreAudio/CoreAudio.h,
|
||||
[],
|
||||
[AC_MSG_ERROR(CoreAudio header files not found!)] )
|
||||
AC_SUBST( LIBS, ["-framework CoreAudio -framework CoreFoundation -framework CoreMIDI"] )
|
||||
])
|
||||
[AC_SUBST( audio_apis, [-D__MACOSX_CORE__] )],
|
||||
[AC_MSG_ERROR(CoreAudio header files not found!)] )
|
||||
AC_SUBST( frameworks, ["-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(realtime support requires the pthread library!))
|
||||
;;
|
||||
|
||||
*-mingw32*)
|
||||
AC_ARG_WITH(asio, [ --with-asio = choose ASIO API support (windoze only)])
|
||||
AS_IF([test "x$with_asio" == "xyes"], [
|
||||
api="$api -D__WINDOWS_ASIO__"
|
||||
AC_MSG_RESULT(using ASIO)
|
||||
AC_SUBST( objects, ["asio.o asiodrivers.o asiolist.o iasiothiscallresolver.o"] ) ])
|
||||
AC_SUBST( sound_api, [_NO_API_] )
|
||||
AC_ARG_WITH(asio, [ --with-asio = choose ASIO API support (windoze only)], [AC_SUBST( sound_api, [-D__WINDOWS_ASIO__] ) AC_MSG_RESULT(using ASIO)], )
|
||||
if [test $sound_api = -D__WINDOWS_ASIO__;] then
|
||||
audio_apis="-D__WINDOWS_ASIO__"
|
||||
AC_SUBST( objects, ["asio.o asiodrivers.o asiolist.o iasiothiscallresolver.o"] )
|
||||
fi
|
||||
|
||||
# Look for DirectSound flag
|
||||
AC_ARG_WITH(ds, [ --with-ds = choose DirectSound API support (windoze only)])
|
||||
AS_IF([test "x$with_ds" == "xyes"], [
|
||||
api="$api -D__WINDOWS_DS__"
|
||||
AC_MSG_RESULT(using DirectSound)
|
||||
LIBS="-ldsound $LIBS" ])
|
||||
|
||||
# Look for WASAPI flag
|
||||
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__"
|
||||
AC_MSG_RESULT(using WASAPI)
|
||||
LIBS="-luuid -lksuser $LIBS" ])
|
||||
AC_ARG_WITH(ds, [ --with-ds = choose DirectSound API support (windoze only)], [AC_SUBST( sound_api, [-D__WINDOWS_DS__] ) AC_MSG_RESULT(using DirectSound)], )
|
||||
if test $sound_api = -D__WINDOWS_DS__; then
|
||||
audio_apis="-D__WINDOWS_DS__ $audio_apis"
|
||||
LIBS="-ldsound $LIBS"
|
||||
fi
|
||||
|
||||
# If no audio api flags specified, use DirectSound
|
||||
AS_IF([test "$api" == ""], [
|
||||
AC_SUBST( api, [-D__WINDOWS_DS__] )
|
||||
if [test $sound_api = _NO_API_;] then
|
||||
AC_SUBST( sound_api, [-D__WINDOWS_DS__] )
|
||||
AC_MSG_RESULT(using DirectSound)
|
||||
LIBS="-ldsound -lwinmm $LIBS"
|
||||
])
|
||||
audio_apis="-D__WINDOWS_DS__"
|
||||
LIBS="-ldsound $LIBS"
|
||||
fi
|
||||
|
||||
api="$api -D__WINDOWS_MM__"
|
||||
LIBS="-lole32 -lwinmm -lwsock32 $LIBS"
|
||||
audio_apis="-D__WINDOWS_MM__ $audio_apis"
|
||||
LIBS="-lole32 -lwinmm -lWsock32 $LIBS"
|
||||
;;
|
||||
|
||||
*)
|
||||
@@ -234,8 +165,10 @@ api="$api -D__UNIX_JACK__"
|
||||
AC_MSG_ERROR(Unknown system type for realtime support ... try --disable-realtime argument!)
|
||||
;;
|
||||
esac
|
||||
|
||||
CPPFLAGS="$CPPFLAGS $api"
|
||||
fi
|
||||
|
||||
# Checks for library functions.
|
||||
AC_PROG_GCC_TRADITIONAL
|
||||
AC_CHECK_FUNCS(strstr)
|
||||
|
||||
AC_OUTPUT
|
||||
|
||||
@@ -1,13 +1,19 @@
|
||||
The Synthesis ToolKit in C++ (STK)
|
||||
|
||||
By Perry R. Cook and Gary P. Scavone, 1995--2019.
|
||||
By Perry R. Cook and Gary P. Scavone, 1995-2007.
|
||||
|
||||
Please read the file README and INSTALL for more general STK information.
|
||||
|
||||
Realtime audio support for Linux currently includes the Advanced Linux Sound Architecture (ALSA), the JACK low-latency audio server, and/or Open Sound System (OSS version 4.0 and higher only) APIs. That said, the OSS API support has not been tested in several years and is not considered a high priority. One or more APIs are selected during compilation using the __LINUX_ALSA__, __UNIX_JACK__, and/or __LINUX_OSS__ definitions. Because the ALSA library is now integrated into the standard Linux kernel, it is the default audio/MIDI API with STK versions 4.2 and higher.
|
||||
Realtime audio support for Linux currently includes the Advanced Linux Sound Architecture (ALSA), the JACK low-latency audio server, and/or Open Sound System (OSS version 4.0 and higher only) APIs. One or more APIs are selected during compilation using the __LINUX_ALSA__, __UNIX_JACK__, and/or __LINUX_OSS__ definitions. Because the ALSA library is now integrated into the standard Linux kernel, it is the default audio/MIDI API with STK versions 4.2 and higher. The __LINUX_ALSASEQ__ definition is required to compile RtMidi with ALSA sequencer support. Native OSS MIDI support no longer exists in RtMidi. If the __LINUX_OSS__ preprocessor definition is specified, only OSS audio support will be compiled and RtMidi will still be compiled using the ALSA API. For this reason, STK now requires the asound library for realtime support. Realtime programs must also link with the pthread library. The OSS audio API can be selected by passing the "--with-oss" option to configure.
|
||||
|
||||
Realtime MIDI support Linux currently includes the Jack and ALSA sequencer support. Native OSS MIDI support no longer exists in RtMidi. If the __LINUX_OSS__ preprocessor definition is specified, only OSS audio support will be compiled and RtMidi will still be compiled using the ALSA API. For this reason, STK now requires the asound library for realtime support (unless only using the Jack API). Realtime programs must also link with the pthread library.
|
||||
STK should compile without much trouble under Linux. Since all Linux distributions typically include the GNU makefile utilities, you should be able to use the default Makefile. Typing "make" will initiate the compilation process.
|
||||
|
||||
STK should compile without much trouble under Linux. Since all Linux distributions typically include the GNU makefile utilities, you should be able to use the default Makefiles. Typing "make" in a project directory will initiate the compilation process (after initially running the configure script in the top-level directory).
|
||||
MIDIATOR SERIAL PORT MIDI SUPPORT:
|
||||
|
||||
MIDIator support has been removed from RtMidi with STK versions 4.2 and higher. If you really need it, you can contact us to get an old distribution.
|
||||
|
||||
NOTE REGARDING PTHREADS:
|
||||
|
||||
There haven't been any problems with threads since the old days of RedHat Linux 5.0. STK uses the MIT pthreads API.
|
||||
|
||||
|
||||
|
||||
@@ -1,16 +1,21 @@
|
||||
The Synthesis ToolKit in C++ (STK)
|
||||
|
||||
By Perry R. Cook and Gary P. Scavone, 1995--2019.
|
||||
By Perry R. Cook and Gary P. Scavone, 1995-2007.
|
||||
|
||||
Please read the file README and INSTALL for more general STK information.
|
||||
|
||||
The default realtime support for Macintosh OS X uses the CoreAudio HAL API and is specified during compilation using the __MACOSX_CORE__ preprocessor definition. There is also support for the JACK audio server using the __UNIX_JACK__ preprocessor definition.
|
||||
The default realtime support for Macintosh OS X uses the CoreAudio HAL API and is specified during compilation using the __MACOSX_CORE__ preprocessor definition. There is also support for the JACK low-latency 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.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.
|
||||
|
||||
There is a potential conflict between the STK Delay class and a Delay() function declared in OSUtils.h (which is included via <CoreServices/CoreServices.h>). In general, this conflict can be avoided via the use of a namespace (an explicit Delay::Delay declaration), though this made the Windows Visual C++ compiler barf. If you use STK classes within a project that includes the OSUtils.h file, you will likely need to make changes in STK classes that use the Delay class.
|
||||
|
||||
It is necessary to install the OS X developer kit (or the command line tools) in order to compile STK. STK was successfully tested on the latest version of OS X.
|
||||
|
||||
Tcl/Tk on OS X:
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
It appears that socket support in Tcl/Tk on OS X uses the Nagle algorithm, which produces poor response between changes made in the Tcl/Tk script and the resulting audio updates. Note that this is only a problem when using a socket connection from a Tcl/Tk script.
|
||||
It appears that socket support in Tcl/Tk on OS X uses the Nagle algorithm, which produces poor response between changes made in the tcl/tk script and the resulting audio updates. Note that this is only a problem when using a socket connection from a Tcl/Tk script.
|
||||
|
||||
|
||||
7
doc/README-NeXT.txt
Normal file
7
doc/README-NeXT.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
The Synthesis ToolKit in C++ (STK)
|
||||
|
||||
By Perry R. Cook and Gary P. Scavone, 1995-2007.
|
||||
|
||||
Please read the file README and INSTALL for more general STK information.
|
||||
|
||||
STK has always worked under NeXTStep without realtime audio or MIDI support. In general, STK should compile in this way using any generic C++ compiler. C++ exception handling was added to STK with release 3.2. We managed to get a version of gcc compiled for NeXTStep that can deal with C++ exceptions.
|
||||
@@ -1,7 +1,15 @@
|
||||
The Synthesis ToolKit in C++ (STK)
|
||||
|
||||
By Perry R. Cook and Gary P. Scavone, 1995--2019.
|
||||
By Perry R. Cook and Gary P. Scavone, 1995-2007.
|
||||
|
||||
Please read the file README and INSTALL for more general STK information.
|
||||
|
||||
Since STK version 4.3, realtime support for IRIX has been discontinued due to an inability to test it. If you need realtime support on an SGI, go back to version 4.2.1. Release 4.0 of STK is confirmed to compile (with various warnings) using CC version 7.30.
|
||||
The project Makefiles are created by configure. If you have trouble running "make", try invoking "gmake" (for GNU make). If that doesn't work, try to download the GNU Makefile utilities from the Internet.
|
||||
|
||||
With STK version 4.3, realtime support for IRIX has been discontinued due to the inability to test it. If you need realtime support on an SGI, go back to version 4.2.1. Release 4.0 of STK is confirmed to compile (with various warnings) using CC version 7.30.
|
||||
|
||||
The __IRIX_AL__ and __IRIX_MD__ preprocessor definitions are required for realtime audio and MIDI support.
|
||||
|
||||
NOTE REGARDING PTHREADS:
|
||||
|
||||
Since release 3.1, STK has used the pthread API under Irix. It appears that pthread functionality is standard on SGI, so this change shouldn't cause any problems. If I'm wrong, let me know!
|
||||
|
||||
@@ -1,26 +1,74 @@
|
||||
The Synthesis ToolKit in C++ (STK)
|
||||
|
||||
By Perry R. Cook and Gary P. Scavone, 1995--2019.
|
||||
By Perry R. Cook and Gary P. Scavone, 1995-2007.
|
||||
|
||||
Please read the file README.md for more general STK information.
|
||||
Please read the file README for more general STK information.
|
||||
|
||||
The configure script supports MinGW.
|
||||
DirectX and WindowsNT Issues:
|
||||
-----------------------------
|
||||
|
||||
STK has been built and tested on Windows platforms using Visual Studio. It is assumed here that you're familiar with Visual C++ and its particular idiosyncrasies. The currently supported version is VS2017. You can download the free non-commercial community edition from the Microsoft website. The folders in the projects directory contain VS2017 solution files.
|
||||
If you are creating a new stk application, it's easiest to use the supplied template:
|
||||
- Copy stk\projects\stk-template.zip to C:\Users\<user>\Documents\Visual Studio 2017\Templates\ProjectTemplates\Visual C++ Project\
|
||||
- Start VS2017.
|
||||
- Select create new project...
|
||||
- Select Visual C++.
|
||||
- Select stk-template and enter your preferred project name and location. Note that if you do not put the project at the same level as stk\projects you will have to fix all paths in the project properties to match.
|
||||
- The template is based on one of the projects in the examples directory. Add/remove files as needed and edit main.cpp to taste.
|
||||
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.
|
||||
|
||||
To use the Tcl/Tk GUIs, you will have to install Tcl/Tk and build using 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.
|
||||
|
||||
With Windows XP and later, piping works as under unix. Simply fire up the script files (e.g. StkDemo.bat) by either double-clicking on them or from within a shell.
|
||||
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.
|
||||
|
||||
The DirectSound, WASAPI and Steinberg ASIO audio APIs are supported for realtime audio input/output. The VS2017 project files included with this distribution are configured to use all supported APIs. The default (as in stk-template) is the DirectSound API (preprocessor definition __WINDOWS_DS__). In order to use the ASIO API, it is necessary to use the preprocessor definition __WINDOWS_ASIO__, as well as include most of 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.
|
||||
|
||||
When using the DirectSound API for audio input, latency can be high. If you experience realtime audio "stuttering", you should experiment with different "buffer size" and "number of buffers" values.
|
||||
When using the DirectSound API for audio input, latency is typically pretty horrendous (should we be surprised?). Also, there is a slight chance you don't have DirectSoundCapture support on your computer. If not, you should download the DirectX 6.0 (or higher) runtime libraries from Microsoft's WWW site (http://www.microsoft.com/directx/download.asp) in order to run the pre-compiled STK executables for Windoze. The last time I checked, there was no DirectSoundCapture support for WindowsNT ... you'll have to switch to Windows 2000 or XP or use an ASIO driver. I stopped supporting the WinMM audio output code with release 3.2.
|
||||
|
||||
Realtime MIDI input/output is supported by RtMidi using the winmm.lib API and requires the __WINDOWS_MM__ preprocessor definition.
|
||||
|
||||
Visual C++ workspaces have been created for the various STK projects. Everything has already been configured for you. The intermediate .obj files will be written to either the "Release" or "Debug" directories, but the executable files will be written to the main project directories (where they need to be for proper execution). If you should somehow lose or hose the VC++ workspace file for a project, then you will have to do a LOT of configuring to recreate it ... it's probably easier just to download the distribution again from our WWW sites. Anyway, for your benefit and mine, here is a list of things that need to be added to the various "Project Settings" (this was for VC 6.0 ... things have changed with the newer versions of the VC compiler):
|
||||
|
||||
1. Under General: Set "Output files:" to <blank> (this will put the executable in the main project directory.
|
||||
|
||||
2. Under C/C++ > Code Generation: Set "Use run-time library:" to Multithreaded (use "debug" versions for the debug configuration).
|
||||
|
||||
3. Under Link > General: Add winmm.lib, dsound.lib, and Wsock32.lib to the end of the Object/library modules list.
|
||||
|
||||
4. Under C/C++ > Preprocessor: Add "../../include" directory to the "extra include" field.
|
||||
|
||||
5. Under C/C++ > Preprocessor: Add "__WINDOWS_DS__", "__WINDOWS_MM__", and "__LITTLE_ENDIAN__ to the definitions field.
|
||||
|
||||
6. Add all the necessary files to the project.
|
||||
|
||||
Remember that items 1-5 above need to be done for each project and for each configuration. There might be an easy way to make global changes, but I couldn't figure it out.
|
||||
|
||||
To use the Tcl/Tk GUIs, you will have to install Tcl/Tk. I got version 8.0 and it works very well (and installed easily). The distribution is available on the WWW and is free.
|
||||
|
||||
In order for socketing to work, it is necessary to have the TCP protocol installed on your computer. This can be done from the "Network" control panel.
|
||||
|
||||
Finally, to use it all -
|
||||
|
||||
|
||||
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).
|
||||
|
||||
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.
|
||||
|
||||
|
||||
|
||||
@@ -1,89 +1,6 @@
|
||||
The Synthesis ToolKit in C++ (STK)
|
||||
|
||||
By Perry R. Cook and Gary P. Scavone, 1995--2019.
|
||||
|
||||
v.4.6.1 (18 April 2019)
|
||||
- see github site for complete details (github.com/thestk/stk)
|
||||
- various documentation updates
|
||||
- new Recorder (flute a la Verge) class (thanks to Mathias Bredholt)
|
||||
- updated Modulate class to allow noise rate control
|
||||
- new VS2017 project files
|
||||
- fix in FileLoop::getSize() to return file size (not chunk size)
|
||||
|
||||
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
|
||||
- miscellaneous bug fixes, documented on GitHub site (github.com/thestk/stk)
|
||||
- update to play.cpp example to play mono files as stereo
|
||||
- bug fix in DelayL::setDelay() function
|
||||
- miscellanous build bug fixes
|
||||
|
||||
v4.5.0: (26 April 2014)
|
||||
- updated versions of RtAudio and RtMidi, with associated renaming of RtError class to either RtAudioError or RtMidiError and addition of WASAPI support in Windows
|
||||
- added support in FileRead for little-endian AIFC file format
|
||||
- new iOS project files (thanks to Ariel Elkin)
|
||||
- bug fix in FreeVerb that could cause crackling for stereo input
|
||||
- various bug fixes and updates to minimize compiler warnings
|
||||
- ADSR fix for decay/release time calculations
|
||||
- various updates to build system
|
||||
|
||||
v4.4.4: (24 August 2012)
|
||||
- new FreeVerb class (thanks to Greg Burlet)
|
||||
- new Guitar class
|
||||
- new electric guitar project
|
||||
- cleaned / revised Shakers class
|
||||
- updated versions of RtAudio and RtMidi
|
||||
- bug fix in LentPitShift
|
||||
- bug fix in Echo constructor
|
||||
- bug fix in FileWvIn (file size when chunking)
|
||||
- bug fix in StkFrames copy constructor
|
||||
|
||||
v4.4.3: (30 August 2011)
|
||||
- changed SINT24 to be lower 3 bytes of 32-bit word
|
||||
- bug fixes to vectorized tick functions in Effects classes
|
||||
- updated versions of RtAudio and RtMidi
|
||||
- fix to ADSR bugs
|
||||
- updates to the internal argument checking and reporting scheme
|
||||
- updates to Bowed class (thanks to Esteban Maestre!)
|
||||
- fixes for 24-bit support in FileRead and FileWrite
|
||||
- added WAVE_FORMAT_EXTENSIBLE support in FileWrite
|
||||
- added sample rate variable reading and writing for MAT-files in FileRead and FileWrite
|
||||
|
||||
v4.4.2: (4 February 2011)
|
||||
- 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 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
|
||||
- some class source (.cpp) files deleted as part of inlining (Generator, Filter, Function, WvIn, WvOut, Effect, Instrmnt, BowTable, ReedTable, JetTable, Vector3D)
|
||||
- updates to RtAudio and RtMidi
|
||||
- previous "tickFrame()" functions renamed "tick" for more consistent API
|
||||
- more consistent and scalable approach to multichannel data and computations
|
||||
- multichannel support added to Granulate class
|
||||
- Filter class made abstract. New Iir and Fir classes made for non-order-specific filtering.
|
||||
- new TapDelay class
|
||||
- SubNoise class deleted (same as sub-sampled "ticking" of Noise class)
|
||||
|
||||
By Perry R. Cook and Gary P. Scavone, 1995-2007.
|
||||
|
||||
v4.3.1: (7 December 2007)
|
||||
- further headerless file support in FileRead
|
||||
@@ -97,7 +14,6 @@ v4.3.0: (13 August 2007)
|
||||
- an official MIT-like license
|
||||
- new functionality to automatically update class data when the STK sample rate changes (partly implemented)
|
||||
- updates for new RtAudio version 4.0
|
||||
- removed RtDuplex class, users should use RtAudio directly with a callback function
|
||||
- bug fix in interpolate() function in Stk.h for non-interleaved data
|
||||
- fixes / improvements to the Granulate class
|
||||
- fix in Whistle when doing animation
|
||||
@@ -163,7 +79,7 @@ v4.1.3: (22 March 2004)
|
||||
v4.1.2: (15 March 2004)
|
||||
- added Linux JACK support to RtAudio
|
||||
- added optional doNormalize argument to WvIn to allow specification of data normalization or not
|
||||
- added volume control to demo program and various Tcl scripts
|
||||
- added volume control to demo program and various tcl scripts
|
||||
- added support for dynamic rawwavePath() setting
|
||||
- WaveLoop bug fix
|
||||
- fixed bug in ADSR::setReleaseTime() method
|
||||
@@ -187,7 +103,7 @@ v4.1: (8 October 2002)
|
||||
- added Voicer, SingWave, and VoicForm classes
|
||||
- improvements/fixes to the banded waveguide instruments
|
||||
- demo program now uses Voicer, allowing polyphony
|
||||
- demo Tcl/Tk scripts changed to use SKINI PitchChange instead of PitchBend
|
||||
- demo tcl/tk scripts changed to use SKINI PitchChange instead of PitchBend
|
||||
- demo program response to PitchBend modified to octave up/down
|
||||
- several RtAudio fixes and improvements (OS X and Windows ASIO support added)
|
||||
- added nextOut() method to Delay classes
|
||||
|
||||
@@ -85,7 +85,7 @@ upon/from which to build and depart.
|
||||
the channel number is scanned as a long int. Channels could be socket
|
||||
numbers, machine IDs, serial numbers, or even unique tags for each
|
||||
event in a synthesis. Other fields might be used, as specified in the
|
||||
SKINItbl.h file. This is described in more detail later.
|
||||
SKINI.tbl file. This is described in more detail later.
|
||||
|
||||
Fields in a SKINI line are delimited by spaces, commas, or
|
||||
tabs. The SKINI parser only operates on a line at a time,
|
||||
@@ -109,9 +109,9 @@ upon/from which to build and depart.
|
||||
|
||||
All fields other than type, time, and channel are optional, and the
|
||||
types and useage of the additional fields is defined in the file
|
||||
SKINItbl.h.
|
||||
SKINI.tbl.
|
||||
|
||||
The other important file used by SKINI is SKINImsg.h, which is a
|
||||
The other important file used by SKINI is SKINI.msg, which is a
|
||||
set of #defines to make C code more readable, and to allow reasonably
|
||||
quick re-mapping of control numbers, etc.. All of these defined
|
||||
symbols are assigned integer values. For JAVA, the #defines could
|
||||
@@ -127,13 +127,13 @@ upon/from which to build and depart.
|
||||
receiving SKINI messages a line at a time, usually in real time,
|
||||
but not restricted to real time.
|
||||
|
||||
SKINImsg.h should be included by anything wanting to use the
|
||||
SKINI.msg should be included by anything wanting to use the
|
||||
Skini.cpp object. This is not mandatory, but use of the __SK_blah_
|
||||
symbols which are defined in the .msg file will help to ensure
|
||||
clarity and consistency when messages are added and changed.
|
||||
|
||||
SKINItbl.h is used only by the SKINI parser object (Skini.cpp).
|
||||
In the file SKINItbl.h, an array of structures is declared and
|
||||
SKINI.tbl is used only by the SKINI parser object (Skini.cpp).
|
||||
In the file SKINI.tbl, an array of structures is declared and
|
||||
assigned values which instruct the parser as to what the message
|
||||
types are, and what the fields mean for those message types.
|
||||
This table is compiled and linked into applications using SKINI, but
|
||||
@@ -195,7 +195,7 @@ upon/from which to build and depart.
|
||||
A -1 channel can be used as don't care, omni, or other functions
|
||||
depending on your needs and taste.
|
||||
|
||||
g) All remaining fields are specified in the SKINItbl.h file.
|
||||
g) All remaining fields are specified in the SKINI.tbl file.
|
||||
In general, there are maximum two more fields, which are either
|
||||
SK_INT (long), SK_DBL (double float), or SK_STR (string). The
|
||||
latter is the mechanism by which more arguments can be specified
|
||||
@@ -237,9 +237,9 @@ upon/from which to build and depart.
|
||||
NoteOff 0.000000 2 71 82
|
||||
NoteOff 0.000000 2 79 82
|
||||
|
||||
7) The SKINItbl.h File, How Messages are Parsed:
|
||||
7) The SKINI.tbl File, How Messages are Parsed:
|
||||
|
||||
The SKINItbl.h file contains an array of structures which
|
||||
The SKINI.tbl file contains an array of structures which
|
||||
are accessed by the parser object Skini.cpp. The struct is:
|
||||
|
||||
struct SKINISpec { char messageString[32];
|
||||
@@ -276,7 +276,7 @@ upon/from which to build and depart.
|
||||
something else stored in the SK_STR field, or
|
||||
as a new type of multi-line message.
|
||||
|
||||
Here's a couple of lines from the SKINItbl.h file
|
||||
Here's a couple of lines from the SKINI.tbl file
|
||||
|
||||
{"NoteOff" , __SK_NoteOff_, SK_DBL, SK_DBL},
|
||||
{"NoteOn" , __SK_NoteOn_, SK_DBL, SK_DBL},
|
||||
@@ -290,7 +290,7 @@ upon/from which to build and depart.
|
||||
The first three are basic MIDI messages. The first two would cause the
|
||||
parser, after recognizing a match of the string "NoteOff" or "NoteOn",
|
||||
to set the message type to 128 or 144 (__SK_NoteOff_ and __SK_NoteOn_
|
||||
are #defined in the file SKINImsg.h to be the MIDI byte value, without
|
||||
are #defined in the file SKINI.msg to be the MIDI byte value, without
|
||||
channel, of the actual MIDI messages for NoteOn and NoteOff). The parser
|
||||
would then set the time or delta time (this is always done and is
|
||||
therefore not described in the SKINI Message Struct). The next two
|
||||
|
||||
1683
doc/doxygen/Doxyfile
1683
doc/doxygen/Doxyfile
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,6 @@
|
||||
|
||||
The Synthesis ToolKit can be used in a variety of ways, depending on your particular needs. Some people choose the classes they need for a particular project and copy those to their working directory. Others create <TT>Makefiles</TT> that compile project-specific class objects from common <TT>src</TT> and <TT>include</TT> directories. And still others like to compile and link to a common library of object files. STK was not designed with one particular style of use in mind.
|
||||
|
||||
For specifics on creating Windows applications, see README-Win.txt.
|
||||
|
||||
\section rtvsnonrt "Realtime" vs. "Non-Realtime"
|
||||
|
||||
@@ -38,19 +37,19 @@ STK compiles with realtime support on the following flavors of the Unix operatin
|
||||
<TR>
|
||||
<TD>Linux</TD>
|
||||
<TD>ALSA</TD>
|
||||
<TD>__LINUX_ALSA__, __LITTLE_ENDIAN__</TD>
|
||||
<TD>__LINUX_ALSA__, __LINUX_ALSASEQ__, __LITTLE_ENDIAN__</TD>
|
||||
<TD><TT>asound, pthread</TT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>Linux</TD>
|
||||
<TD>OSS (version 4.0 only, use ALSA for MIDI support)</TD>
|
||||
<TD>__LINUX_OSS__, __LINUX_ALSA__, __LITTLE_ENDIAN__</TD>
|
||||
<TD>__LINUX_OSS__, __LINUX_ALSASEQ__, __LITTLE_ENDIAN__</TD>
|
||||
<TD><TT>asound, pthread</TT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>Linux and Macintosh OS-X</TD>
|
||||
<TD>Jack</TD>
|
||||
<TD>__UNIX_JACK__, __LITTLE_ENDIAN__</TD>
|
||||
<TD>Jack (audio only, use ALSA for MIDI support)</TD>
|
||||
<TD>__UNIX_JACK__, __LINUX_ALSASEQ__, __LITTLE_ENDIAN__</TD>
|
||||
<TD><TT>asound, pthread, jack</TT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
@@ -70,11 +69,13 @@ a particular program into a project directory. Taking the
|
||||
would be necessary to set up a directory that includes the files
|
||||
<TT>sineosc.cpp</TT>, the rawwave file <TT>sinewave.raw</TT> in a
|
||||
subdirectory called <TT>rawwaves</TT>, and the header and source files
|
||||
for the classes Stk, FileRead, FileWrite, FileWvIn, FileLoop, 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 FileRead.cpp FileWrite.cpp FileWvIn.cpp FileLoop.cpp FileWvOut.cpp sineosc.cpp \endcode
|
||||
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 FileRead.cpp FileWrite.cpp WvIn.cpp FileWvIn.cpp WaveLoop.cpp WvOut.cpp FileWvOut.cpp sineosc.cpp
|
||||
\endcode
|
||||
|
||||
Note that the <TT>sineosc.cpp</TT> 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.
|
||||
|
||||
@@ -94,7 +95,7 @@ g++ -Wall -D__LITTLE_ENDIAN__ -I/usr/include/stk -o sineosc sineosc.cpp -lstk
|
||||
With the header files in a standard search path, it is possible to modify the <TT>\#include</TT> statements in the <TT>sineosc.cpp</TT> program as follows:
|
||||
|
||||
\code
|
||||
#include "stk/FileLoop.h"
|
||||
#include "stk/WaveLoop.h"
|
||||
#include "stk/FileWvOut.h"
|
||||
\endcode
|
||||
|
||||
@@ -105,5 +106,24 @@ g++ -Wall -D__LITTLE_ENDIAN__ -o sineosc sineosc.cpp -lstk
|
||||
\endcode
|
||||
|
||||
|
||||
\section compileWin Windows:
|
||||
|
||||
STK has been tested on Windows platforms using the Visual .NET compiler
|
||||
only. It is assumed here that you're familiar with Visual C++ and its
|
||||
particular idiosyncrasies. STK won't compile in Visual C++ 6.0 any more.
|
||||
|
||||
The approach when using Visual C++ is to build a project that
|
||||
includes the necessary ToolKit files from the distribution
|
||||
<TT>src</TT> and <TT>include</TT> 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
|
||||
<TT>sineosc.cpp</TT>, and make sure the <TT>sinewave.raw</TT> file is
|
||||
in the subdirectory <TT>rawwaves</TT>.
|
||||
|
||||
For programs using any of the STK realtime classes mentioned above, it is necessary to link with the DirectSound (<TT>dsound.lib</TT>), <TT>winmm.lib</TT>, and <TT>Wsock32.lib</TT> libraries, select the multithreaded library, and provide the <TT>__LITTLE_ENDIAN__</TT>, <TT>__WINDOWS_DS__</TT>, and <TT>__WINDOWS_MM__</TT> preprocessor definitions.
|
||||
|
||||
For Steinberg ASIO support, use the <TT>__WINDOWS_ASIO__</TT> preprocessor definition (and the <TT>__WINDOWS_MM__</TT> definition for RtMidi support), include all the files in the <TT>src/asio/</TT> directory (i.e., <TT>asio.h,cpp</TT>, <TT>asiodrivers.h,cpp</TT>, ...), and link with the <TT>winmm.lib</TT>, and <TT>Wsock32.lib</TT> libraries.
|
||||
|
||||
[<A HREF="tutorial.html">Main tutorial page</A>] [<A HREF="filtering.html">Next tutorial</A>]
|
||||
*/
|
||||
|
||||
@@ -19,20 +19,9 @@ NoteOff 1.000000 2 69.0 64.0
|
||||
|
||||
MIDI messages are easily represented within the SKINI protocol.
|
||||
|
||||
The class stk::Messager can be used to acquire and parse MIDI messages
|
||||
from a MIDI device and SKINI messages from STDIN and socket
|
||||
connections. Incoming messages are acquired asynchronously and saved
|
||||
to an internal message queue of stk::Skini::Message types (MIDI
|
||||
messages are converted to the stk::Skini:Message format). The user
|
||||
then uses the stk::Messager:popMessage() function to retrieve incoming
|
||||
control messages. This function does not block, instead returning a
|
||||
message type of zero when no more messages are in the queue. Many of
|
||||
the example programs included with the ToolKit distribution use a
|
||||
stk::Messager instance to accept control input from the accompanying Tcl/Tk
|
||||
graphical user interfaces, from external MIDI devices, or from SKINI
|
||||
scorefiles.
|
||||
The class Messager can be used to acquire and parse MIDI messages from a MIDI device and SKINI messages from STDIN and socket connections. Incoming messages are acquired asynchronously and saved to an internal message queue of Skini::Message types (MIDI messages are converted to the Skini:Message format). The user then uses the Messager:popMessage() function to retrieve incoming control messages. This function does not block, instead returning a message type of zero when no more messages are in the queue. Many of the example programs included with the ToolKit distribution use a Messager instance to accept control input from the accompanying tcl/tk graphical user interfaces, from external MIDI devices, or from SKINI scorefiles.
|
||||
|
||||
In the following example, we'll modify the <TT>bethree.cpp</TT> program from the previous tutorial chapter and incorporate a stk::Messager class to allow control via SKINI messages read from a SKINI file.
|
||||
In the following example, we'll modify the <TT>bethree.cpp</TT> program from the previous tutorial chapter and incorporate a Messager class to allow control via SKINI messages read from a SKINI file.
|
||||
|
||||
\include controlbee.cpp
|
||||
|
||||
@@ -48,7 +37,7 @@ controlbee scores/bookert.ski
|
||||
|
||||
Only a few basic SKINI message type case statements are included in this example. It is easy to extend the program to support a much more elaborate set of instrument control parameters.
|
||||
|
||||
This example could also be easily extended to accept "realtime" control input messages via pipe, socket or MIDI connections. The stk::Messager class provides stk::Messager::startStdInput(), stk::Messager::startSocketInput(), and stk::Messager::startMidiInput() functions for this purpose.
|
||||
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.
|
||||
|
||||
[<A HREF="tutorial.html">Main tutorial page</A>] [<A HREF="multichannel.html">Next tutorial</A>]
|
||||
*/
|
||||
|
||||
@@ -11,8 +11,8 @@ invoked automatically by the audio system controller (RtAudio) when
|
||||
new data is needed and it is necessary to compute a full audio buffer
|
||||
of samples at that time (see \ref callback for further information).
|
||||
|
||||
The previous section described the use of the stk::RtWvOut class for
|
||||
realtime audio output. The stk::RtWvOut::tick() function writes data to a
|
||||
The previous section described the use of the RtWvOut class for
|
||||
realtime audio output. The RtWvOut::tick() function writes data to a
|
||||
large ring-buffer, from which data is periodically written to the
|
||||
computer's audio hardware via an underlying callback routine.
|
||||
|
||||
|
||||
@@ -1,282 +1,249 @@
|
||||
/*! \page download Download and Release Notes
|
||||
/*! \page download Download, Release Notes, and Bug Fixes
|
||||
|
||||
\section down Download Version 4.6.1 (18 April 2019):
|
||||
\section down Download Version 4.3.1 (7 December 2007):
|
||||
|
||||
<UL>
|
||||
<LI><A HREF="http://ccrma.stanford.edu/software/stk/release/stk-4.3.1.tar.gz">Source distribution</A></LI>
|
||||
<LI><A HREF="http://ccrma.stanford.edu/planetccrma/software/">Linux RPMs from Planet CCRMA</A></LI>
|
||||
</UL>
|
||||
|
||||
- <A HREF="http://ccrma.stanford.edu/software/stk/release/stk-4.6.1.tar.gz">Source distribution</A>
|
||||
|
||||
\section notes Release Notes:
|
||||
\subsection v4dot6dot1 Version 4.6.1
|
||||
- see github site for complete details (github.com/thestk/stk)
|
||||
- various documentation updates
|
||||
- new Recorder (flute a la Verge) class (thanks to Mathias Bredholt)
|
||||
- updated Modulate class to allow noise rate control
|
||||
- new VS2017 project files
|
||||
- fix in FileLoop::getSize() to return file size (not chunk size)
|
||||
|
||||
\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 v4dot3dot0 Version 4.3.1
|
||||
|
||||
\subsection v4dot5dot1 Version 4.5.1
|
||||
- fix for FileWvIn / FileLoop classes to avoid keeping files open if not necessary
|
||||
- miscellaneous bug fixes, documented on GitHub site (github.com/thestk/stk)
|
||||
- update to play.cpp example to play mono files as stereo
|
||||
- bug fix in DelayL::setDelay() function
|
||||
- miscellanous build bug fixes
|
||||
<ul>
|
||||
<li>Further headerless file support in FileRead.</li>
|
||||
<li>Bug fix in RtWvOut.cpp.</li>
|
||||
<li>Added configure support for MinGW.</li>
|
||||
<li>Updates to RtAudio and RtMidi for MinGW.</li>
|
||||
<li>Changes to channel assignment in demo.cpp.</li>
|
||||
</ul>
|
||||
|
||||
\subsection v4dot5dot0 Version 4.5.0
|
||||
- Updated versions of RtAudio and RtMidi, with associated renaming of RtError class to either RtAudioError or RtMidiError
|
||||
- New iOS project files (thanks to Ariel Elkin)
|
||||
- Bug fix in FreeVerb that could cause crackling for stereo input
|
||||
- Various bug fixes and updates to minimize compiler warnings
|
||||
- ADSR fix for decay/release time calculations
|
||||
- Various updates to build system
|
||||
|
||||
\subsection v4dot4dot4 Version 4.4.4
|
||||
- New FreeVerb class (thanks to Greg Burlet)
|
||||
- New Guitar class
|
||||
- New electric guitar project
|
||||
- Updated versions of RtAudio and RtMidi
|
||||
- Cleaned / revised Shakers class
|
||||
- Bug fix in LentPitShift
|
||||
- Bug fix in Echo constructor
|
||||
- Bug fix in FileWvIn (file size when chunking)
|
||||
- Bug fix in StkFrames copy constructor
|
||||
|
||||
\subsection v4dot4dot3 Version 4.4.3
|
||||
- Changed SINT24 to be lower 3 bytes of 32-bit word.
|
||||
- Bug fixes to vectorized tick functions in Effects classes.
|
||||
- Updated versions of RtAudio and RtMidi.
|
||||
- Bug fixes in ADSR and Envelope classes.
|
||||
- Updates to the internal argument checking and reporting scheme.
|
||||
- Updates to Bowed class (thanks to Esteban Maestre!).
|
||||
- Fixes for 24-bit support in FileRead and FileWrite.
|
||||
- Added WAVE_FORMAT_EXTENSIBLE support in FileWrite.
|
||||
- Added sample rate variable reading and writing for MAT-files in FileRead and FileWrite.
|
||||
|
||||
\subsection v4dot4dot2 Version 4.4.2
|
||||
- Added various header file includes for newer compilers.
|
||||
- Updates to RtAudio and RtMidi.
|
||||
- New LentPitShift class (thanks to Francois Germain).
|
||||
- Bug fixes in Voicer class (thanks Richard Dobson!).
|
||||
- Added Makefile.in to compile library and all projects, as well as clean and distclean.
|
||||
|
||||
\subsection v4dot4dot1 Version 4.4.1
|
||||
- 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.
|
||||
|
||||
\subsection v4dot4dot0 Version 4.4.0
|
||||
- All classes embedded in the "stk" namespace (except RtAudio, RtMidi, and RtError).
|
||||
- Class WaveLoop renamed FileLoop.
|
||||
- Significant efficiency improvements via code restructuring and inlining.
|
||||
- Some class source (.cpp) files deleted as part of inlining (Generator, Filter, Function, WvIn, WvOut, Effect, Instrmnt, BowTable, ReedTable, JetTable, Vector3D).
|
||||
- Updates to RtAudio and RtMidi.
|
||||
- Previous "tickFrame()" functions renamed "tick" for more consistent API.
|
||||
- More consistent and scalable approach to multichannel data and computations.
|
||||
- Multichannel support added to Granulate class.
|
||||
- Filter class made abstract. New Iir and Fir classes made for non-order-specific filtering.
|
||||
- New TapDelay class.
|
||||
- SubNoise class deleted (same as sub-sampled "ticking" of Noise class).
|
||||
|
||||
\subsection v4dot3dot1 Version 4.3.1
|
||||
- Further headerless file support in FileRead.
|
||||
- Bug fix in RtWvOut.cpp.
|
||||
- Added configure support for MinGW.
|
||||
- Updates to RtAudio and RtMidi for MinGW.
|
||||
- Changes to channel assignment in demo.cpp.
|
||||
|
||||
\subsection v4dot3dot0 Version 4.3.0
|
||||
- An official MIT-like license.
|
||||
- New functionality to automatically update class data when the STK sample rate changes (partly implemented).
|
||||
- Updates for new RtAudio version 4.0.
|
||||
- Removed RtDuplex class, users should use RtAudio directly with a callback function.
|
||||
- Bug fix in interpolate() function in Stk.h for non-interleaved data.
|
||||
- Fixes / improvements to the Granulate class.
|
||||
- Fix in Whistle when doing animation.
|
||||
- Fixes in BlitSquare for frequency, harmonics, and dc offset.
|
||||
- Updates to Makefiles for non-realtime compile.
|
||||
- Fix in demo.cpp for voice channel assignment.
|
||||
- Updated versions of RtMidi and RtAudio.
|
||||
- Updated ASIO files for MinGW compiler.
|
||||
- New FAQ in documentation.
|
||||
- MAT-file bug fix in FileRead class.
|
||||
|
||||
<ul>
|
||||
<li>An official MIT-like license.</li>
|
||||
<li>New functionality to automatically update class data when the STK sample rate changes (partly implemented).</li>
|
||||
<li>Updates for new RtAudio version 4.0.</li>
|
||||
<li>Bug fix in interpolate() function in Stk.h for non-interleaved data.</li>
|
||||
<li>Fixes / improvements to the Granulate class.</li>
|
||||
<li>Fix in Whistle when doing animation.</li>
|
||||
<li>Fixes in BlitSquare for frequency, harmonics, and dc offset.</li>
|
||||
<li>Updates to Makefiles for non-realtime compile.</li>
|
||||
<li>Fix in demo.cpp for voice channel assignment.</li>
|
||||
<li>Updated versions of RtMidi and RtAudio.</li>
|
||||
<li>Updated ASIO files for MinGW compiler.</li>
|
||||
<li>New FAQ in documentation.</li>
|
||||
<li>MAT-file bug fix in FileRead class.</li>
|
||||
</ul>
|
||||
|
||||
\subsection v4dot2dot1 Version 4.2.1
|
||||
- Greatly expanded StkFrames functionality (including interpolation and indexing by channel/frame).
|
||||
- New Blit, BlitSaw, and BlitSquare bandlimited waveform classes (thanks to Robin Davies!).
|
||||
- New Granulate granular synthesis class.
|
||||
- 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 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.
|
||||
- Fixes to RtAudio, especially for Windows DirectSound and ASIO (thanks to Robin Davies).
|
||||
|
||||
<ul>
|
||||
<li>Greatly expanded StkFrames functionality (including interpolation and indexing by channel/frame).</li>
|
||||
<li>New Blit, BlitSaw, and BlitSquare bandlimited waveform classes (thanks to Robin Davies!).</li>
|
||||
<li>New Granulate granular synthesis class.</li>
|
||||
<li>Removed Table class ... all functionality (including interpolation) now in StkFrames and FileRead classes.</li>
|
||||
<li>Revised Socket class (now abstract) and added TcpServer, TcpClient, and UdpSocket subclasses.</li>
|
||||
<li>Added Stk::showWarnings() and Stk::printErrors() functions to dis/enable warning and error printouts.</li>
|
||||
<li>Extracted file I/O functionality to FileRead and FileWrite classes.</li>
|
||||
<li>Revised WvIn / WvOut class structure (WvIn / WvOut now abstract and file I/O functionality in new FileWvIn / FileWvOut subclasses).</li>
|
||||
<li>New SineWave class which calculates its own static table of variable length (no rawwave dependency).</li>
|
||||
<li>New sinewave.raw file of length 1024 samples (used to be 256).</li>
|
||||
<li>TcpWvIn and TcpWvOut renamed InetWvIn and InetWvOut, with added support for UDP sockets.</li>
|
||||
<li>Fixed bug in WvOut tickFrame( const StkFrames &frames ) function.</li>
|
||||
<li>Fixed bug in demo.cpp when writing output soundfiles without realtime output.</li>
|
||||
<li>Added "binary" open flag to MidiFileIn class for Windows.</li>
|
||||
<li>Fixed oversized MAT-file header in WvOut.cpp</li>
|
||||
<li>Fixed case statement bug in MidiFileIn.cpp for sysex.</li>
|
||||
<li>Added missing getDelay() function to DelayA.cpp.</li>
|
||||
<li>Fixed modDepth omission in Chorus.cpp.</li>
|
||||
<li>Fixed DC blocker initialization bug in Flute.cpp.</li>
|
||||
<li>Changed Filter class behavior so no default clearing of state when changing coefficients.</li>
|
||||
<li>Fixes to RtAudio, especially for Windows DirectSound and ASIO (thanks to Robin Davies).</li>
|
||||
</ul>
|
||||
|
||||
\subsection v4dot2dot0 Version 4.2.0
|
||||
- Simultaneous multiple audio APIs supported at compile time.
|
||||
- Various changes to better conform to standard C++ programming practices.
|
||||
- Fixed hidden overloaded virtual functions.
|
||||
- New Asymp exponential envelope class.
|
||||
- <tt>MY_FLOAT</tt> type converted to <tt>StkFloat</tt> and changed throughout (use \c treesed utility to search/replace in old files).
|
||||
- Most example programs rewritten to use an audio callback paradigm (which works better in OS-X).
|
||||
- New StkFrames class for vectorized multichannel data and associated new tick() functions making use of StkFrames.
|
||||
- New RtMidi class with MIDI output capabilities (API changes).
|
||||
- New MidiFileIn class for reading MIDI files.
|
||||
- Revised Filter classes to use std::vectors for coefficients (API changes).
|
||||
- Revised Messager class (API changes).
|
||||
- New abstract parent Effect class for various effects.
|
||||
- New abstract parent Generator class for various signal sources.
|
||||
- New abstract parent Function class for tables and various non-linear functions.
|
||||
- Skini class completely rewritten (simplified) using the C++ STL (API changes).
|
||||
- WvOut classes now clip to -1.0 to +1.0 and report out of range.
|
||||
- New Mutex class.
|
||||
- Turned Nagle algorithm off by default in Socket class.
|
||||
- Error reporting standardized in all classes.
|
||||
|
||||
<ul>
|
||||
<li>Simultaneous multiple audio APIs supported at compile time.</li>
|
||||
<li>Various changes to better conform to standard C++ programming practices.</li>
|
||||
<li>Fixed hidden overloaded virtual functions.</li>
|
||||
<li>New Asymp exponential envelope class.</li>
|
||||
<li><tt>MY_FLOAT</tt> type converted to <tt>StkFloat</tt> and changed throughout (use \c treesed utility to search/replace in old files).</li>
|
||||
<li>Most example programs rewritten to use an audio callback paradigm (which works better in OS-X).</li>
|
||||
<li>New StkFrames class for vectorized multichannel data and associated new tick() functions making use of StkFrames.</li>
|
||||
<li>New RtMidi class with MIDI output capabilities (API changes).</li>
|
||||
<li>New MidiFileIn class for reading MIDI files.</li>
|
||||
<li>Revised Filter classes to use std::vectors for coefficients (API changes).</li>
|
||||
<li>Revised Messager class (API changes).</li>
|
||||
<li>New abstract parent Effect class for various effects.</li>
|
||||
<li>New abstract parent Generator class for various signal sources.</li>
|
||||
<li>New abstract parent Function class for tables and various non-linear functions.</li>
|
||||
<li>Skini class completely rewritten (simplified) using the C++ STL (API changes).</li>
|
||||
<li>WvOut classes now clip to -1.0 to +1.0 and report out of range.</li>
|
||||
<li>New Mutex class.</li>
|
||||
<li>Turned Nagle algorithm off by default in Socket class.</li>
|
||||
<li>Error reporting standardized in all classes.</li>
|
||||
</ul>
|
||||
|
||||
\subsection v4dot1dot3 Version 4.1.3
|
||||
- Bug fix in RtAudio for Windows DirectSound output only support
|
||||
|
||||
<ul>
|
||||
<li>Bug fix in RtAudio for Windows DirectSound output only support</li>
|
||||
</ul>
|
||||
|
||||
\subsection v4dot1dot2 Version 4.1.2
|
||||
- Added Linux JACK support to RtAudio.
|
||||
- Added optional doNormalize argument to WvIn to allow specification of data normalization or not.
|
||||
- Added volume control to demo program and various Tcl scripts.
|
||||
- Added support for dynamic rawwavePath() setting.
|
||||
- WaveLoop bug fix.
|
||||
- Fixed bug in ADSR::setReleaseTime() method.
|
||||
- Fixed missing initialization of apInput in non-default constructor of DelayA class.
|
||||
- Added time seeding of random number generator to Noise constructor.
|
||||
- Update to the contentsAt() method of Delay class.
|
||||
- WAV file fixes (8-bit) in WvIn and WvOut classes.
|
||||
- Configure script changes.
|
||||
- Updated \<iostream\> include statements and appended "std::" as necessary throughout for compatibility with gcc 3.
|
||||
|
||||
<UL>
|
||||
<li>Added Linux JACK support to RtAudio.</li>
|
||||
<li>Added optional doNormalize argument to WvIn to allow specification of data normalization or not.</li>
|
||||
<li>Added volume control to demo program and various tcl scripts.</li>
|
||||
<li>Added support for dynamic rawwavePath() setting.</li>
|
||||
<li>WaveLoop bug fix.</li>
|
||||
<li>Fixed bug in ADSR::setReleaseTime() method.</li>
|
||||
<li>Fixed missing initialization of apInput in non-default constructor of DelayA class.</li>
|
||||
<li>Added time seeding of random number generator to Noise constructor.</li>
|
||||
<li>Update to the contentsAt() method of Delay class.</li>
|
||||
<li>WAV file fixes (8-bit) in WvIn and WvOut classes.</li>
|
||||
<li>Configure script changes.</li>
|
||||
<li>Updated \<iostream\> include statements and appended "std::" as necessary throughout for compatibility with gcc 3.</li>
|
||||
</UL>
|
||||
|
||||
\subsection v4dot1dot1 Version 4.1.1
|
||||
- Bug fix in RtAudio for Macintosh OS X and Windows ASIO duplex operation.
|
||||
- Windows ASIO fix in Stk.h.
|
||||
- Documentation updates.
|
||||
- Expanded tutorial.
|
||||
- Fixed RtDuplex omission in src Makefile.
|
||||
<ul>
|
||||
<li>Bug fix in RtAudio for Macintosh OS X and Windows ASIO duplex operation.</li>
|
||||
<li>Windows ASIO fix in Stk.h.</li>
|
||||
<li>Documentation updates.</li>
|
||||
<li>Expanded tutorial.</li>
|
||||
<li>Fixed RtDuplex omission in src Makefile.</li>
|
||||
</ul>
|
||||
|
||||
\subsection v4dot1 Version 4.1
|
||||
- Macintosh OS X support added.
|
||||
- New Whistle class.
|
||||
- Added Voicer, SingWave, and VoicForm classes.
|
||||
- Improvements/fixes to the banded waveguide instruments.
|
||||
- Demo program now uses Voicer, allowing polyphony.
|
||||
- Demo Tcl/Tk scripts changed to use SKINI PitchChange instead of PitchBend.
|
||||
- Demo program response to PitchBend modified to octave up/down.
|
||||
- Several RtAudio fixes and improvements (OS X and Windows ASIO support added).
|
||||
- Added nextOut() method to Delay classes.
|
||||
- Documentation fixes for Reverb classes.
|
||||
- RAWWAVE_PATH changed to include the "rawwave" directory.
|
||||
- "configure" support added for unix systems.
|
||||
- Multivoice flag (-n NUMBER) added as command line option to demo program.
|
||||
- Sample rate flag added as command line option to example programs.
|
||||
- Socket port number added as command line option to example programs.
|
||||
|
||||
<UL>
|
||||
<LI>Macintosh OS X support added.</LI>
|
||||
<LI>New Whistle class.</LI>
|
||||
<LI>Added Voicer, SingWave, and VoicForm classes.</LI>
|
||||
<LI>Improvements/fixes to the banded waveguide instruments.</LI>
|
||||
<LI>Demo program now uses Voicer, allowing polyphony.</LI>
|
||||
<LI>Demo tcl/tk scripts changed to use SKINI PitchChange instead of PitchBend.</LI>
|
||||
<LI>Demo program response to PitchBend modified to octave up/down.</LI>
|
||||
<LI>Several RtAudio fixes and improvements (OS X and Windows ASIO support added).</LI>
|
||||
<LI>Added nextOut() method to Delay classes.</LI>
|
||||
<LI>Documentation fixes for Reverb classes.</LI>
|
||||
<LI>RAWWAVE_PATH changed to include the "rawwave" directory.</LI>
|
||||
<LI>"configure" support added for unix systems.</LI>
|
||||
<LI>Multivoice flag (-n NUMBER) added as command line option to demo program.</LI>
|
||||
<LI>Sample rate flag added as command line option to example programs.</LI>
|
||||
<LI>Socket port number added as command line option to example programs.</LI>
|
||||
</UL>
|
||||
|
||||
\subsection v4 Version 4.0
|
||||
- New documentation and tutorial.
|
||||
- Several new instruments, including Saxofony, BlowBotl, and StifKarp.
|
||||
- New Stk base class, replacing Object class.
|
||||
- New Filter class structure and methods.
|
||||
- Extensive modifications to WvIn and WvOut class structures and methods.
|
||||
- Looping functionality moved to WaveLoop (subclass of WvIn).
|
||||
- Automatic file type detection in WvIn ... hosed WavWvIn, AifWvIn, RawWavIn, SndWavIn, and MatWvIn subclasses.
|
||||
- New file type specifier argument in WvOut ... hosed WavWvOut, AifWvOut, RawWavOut, SndWavOut, and MatWvOut subclasses.
|
||||
- Some simplifications of Messager class (was Controller).
|
||||
- New independent RtAudio class.
|
||||
- Extensive revisions in code and a significant number of API changes.
|
||||
|
||||
<UL>
|
||||
<LI>New documentation and tutorial.</LI>
|
||||
<LI>Several new instruments, including Saxofony, BlowBotl, and StifKarp.</LI>
|
||||
<LI>New Stk base class, replacing Object class.</LI>
|
||||
<LI>New Filter class structure and methods.</LI>
|
||||
<LI>Extensive modifications to WvIn and WvOut class structures and methods.</LI>
|
||||
<LI>Looping functionality moved to WaveLoop (subclass of WvIn).</LI>
|
||||
<LI>Automatic file type detection in WvIn ... hosed WavWvIn, AifWvIn, RawWavIn, SndWavIn, and MatWvIn subclasses.</LI>
|
||||
<LI>New file type specifier argument in WvOut ... hosed WavWvOut, AifWvOut, RawWavOut, SndWavOut, and MatWvOut subclasses.</LI>
|
||||
<LI>Some simplifications of Messager class (was Controller).</LI>
|
||||
<LI>New independent RtAudio class.</LI>
|
||||
<LI>Extensive revisions in code and a significant number of API changes.</LI>
|
||||
</UL>
|
||||
|
||||
\subsection v3dot2 Version 3.2
|
||||
- New input control handling class (Controller)
|
||||
- Added AIFF file input/output support.
|
||||
- New C++ error handling capabilities.
|
||||
- New input/output internet streaming support (StrmWvIn/StrmWvOut).
|
||||
- Added native ALSA support for linux.
|
||||
- Added optional "device" argument to all "Rt" classes (audio and MIDI) and printout of devices when argument is invalid.
|
||||
- WvIn classes rewritten to support very big files (incremental load from disk).
|
||||
- Changed WvIn/WvOut classes to work with sample frame buffers.
|
||||
- Fixed looping and negative rate calculations in WvIn classes.
|
||||
- Fixed interpolation bug in RtWvIn.
|
||||
- Windoze RtAudio code rewritten (thank Dave!).
|
||||
- Simplified byte-swapping functions (in-place swapping).
|
||||
- "Stereo-ized" RagaMatic.
|
||||
- Miscellaneous renamings.
|
||||
- Probably a bunch more fixes that I've long since forgotten about.
|
||||
|
||||
<UL>
|
||||
<LI>New input control handling class (Controller)</LI>
|
||||
<LI>Added AIFF file input/output support.</LI>
|
||||
<LI>New C++ error handling capabilities.</LI>
|
||||
<LI>New input/output internet streaming support (StrmWvIn/StrmWvOut).</LI>
|
||||
<LI>Added native ALSA support for linux.</LI>
|
||||
<LI>Added optional "device" argument to all "Rt" classes (audio and MIDI) and printout of devices when argument is invalid.</LI>
|
||||
<LI>WvIn classes rewritten to support very big files (incremental load from disk).</LI>
|
||||
<LI>Changed WvIn/WvOut classes to work with sample frame buffers.</LI>
|
||||
<LI>Fixed looping and negative rate calculations in WvIn classes.</LI>
|
||||
<LI>Fixed interpolation bug in RtWvIn.</LI>
|
||||
<LI>Windoze RtAudio code rewritten (thank Dave!).</LI>
|
||||
<LI>Simplified byte-swapping functions (in-place swapping).</LI>
|
||||
<LI>"Stereo-ized" RagaMatic.</LI>
|
||||
<LI>Miscellaneous renamings.</LI>
|
||||
<LI>Probably a bunch more fixes that I've long since forgotten about.</LI>
|
||||
</UL>
|
||||
|
||||
\subsection v3dot1 Version 3.1
|
||||
- New RagaMatic project ... very cool!!!
|
||||
- Less clipping in the Shakers class.
|
||||
- Added "microphone position" to Mandolin in STKdemo.
|
||||
- Fixed MIDI system message exclusion under Irix.
|
||||
- Added a few bitmaps for the Shaker instruments.
|
||||
- Made destructors virtual for Reverb.h, WvIn.h and Simple.h.
|
||||
- Fixed bug setting delay length in DLineA when value too big.
|
||||
- Fixed bug in WinMM realtime code (RTSoundIO).
|
||||
- Added tick() method to BowTabl, JetTabl, and ReedTabl (same as lookup).
|
||||
- Switched to pthread API on SGI platforms.
|
||||
- Added some defines to Object.h for random number generation, FPU overflow checking, etc....
|
||||
- A few minor changes, some bug fixes ... can't remember all of them.
|
||||
|
||||
<UL>
|
||||
<LI>New RagaMatic project ... very cool!!!</LI>
|
||||
<LI>Less clipping in the Shakers class.</LI>
|
||||
<LI>Added "microphone position" to Mandolin in STKdemo.</LI>
|
||||
<LI>Fixed MIDI system message exclusion under Irix.</LI>
|
||||
<LI>Added a few bitmaps for the Shaker instruments.</LI>
|
||||
<LI>Made destructors virtual for Reverb.h, WvIn.h and Simple.h.</LI>
|
||||
<LI>Fixed bug setting delay length in DLineA when value too big.</LI>
|
||||
<LI>Fixed bug in WinMM realtime code (RTSoundIO).</LI>
|
||||
<LI>Added tick() method to BowTabl, JetTabl, and ReedTabl (same as lookup).</LI>
|
||||
<LI>Switched to pthread API on SGI platforms.</LI>
|
||||
<LI>Added some defines to Object.h for random number generation, FPU overflow checking, etc....</LI>
|
||||
<LI>A few minor changes, some bug fixes ... can't remember all of them.</LI>
|
||||
</UL>
|
||||
|
||||
\subsection v3 Version 3.0
|
||||
- New #define flags for OS and realtime dependencies (this will probably cause problems for old personal STK code, but it was necessary to make future ports easier).
|
||||
- Expanded and cleaned the Shakers class.
|
||||
- New BowedBar algorithm/class.
|
||||
- Fixed Linux MIDI input bug.
|
||||
- Fixed MIDI status masking problem in Windows.
|
||||
- OS type defines now in Makefile.
|
||||
- New RAWWAVE_PATH define in Object.h.
|
||||
- Syntmono project pulled out to separate directory and cleaned up.
|
||||
- Socketing capabilities under Unix, as well as Windoze.
|
||||
- Multiple simultaneous socket client connections to STK servers now possible.
|
||||
- MD2SKINI now can merge MIDI and piped messages under Irix and Linux (for TCL->MD2SKINI->syntmono control).
|
||||
- Defined INT16 and INT32 types and fixed various WvIn and WvOut classes.
|
||||
- Updated MatWvIn and MatWvOut for new MAT-file documentation from Matlab.
|
||||
- New demo Tcl/Tk GUI (TclDemo.tcl).
|
||||
- Minor fixes to FM behavior.
|
||||
- Added record/duplex capabilities to RTSoundIO (Linux, SGI, and Windoze).
|
||||
- Fixed bugs in WavWvOut and MatWvOut header specifications.
|
||||
- Added RawWvOut class.
|
||||
- New WvIn class with RawWvIn, SndWvIn, WavWvIn, MatWvIn, and RTWvIn subclasses.
|
||||
- Removed RawWave, RawShot, RawInterp, and RawLoop classes (supplanted by RawWvIn).
|
||||
- Multi-channel data support in WvIn and WvOut classes using MY_MULTI data type (pointer to StkFloat) and the methods mtick() and mlastOutput().
|
||||
- Now writing to primary buffer under Windoze when allowed by hardware.
|
||||
- Cleaned up Object.h a bit.
|
||||
- Pulled various utility and thread functions out of syntmono.cpp (to aid readability of the code).
|
||||
|
||||
<UL>
|
||||
<LI>New #define flags for OS and realtime dependencies (this will probably cause problems for old personal STK code, but it was necessary to make future ports easier).</LI>
|
||||
<LI>Expanded and cleaned the Shakers class.</LI>
|
||||
<LI>New BowedBar algorithm/class.</LI>
|
||||
<LI>Fixed Linux MIDI input bug.</LI>
|
||||
<LI>Fixed MIDI status masking problem in Windows.</LI>
|
||||
<LI>OS type defines now in Makefile.</LI>
|
||||
<LI>New RAWWAVE_PATH define in Object.h.</LI>
|
||||
<LI>Syntmono project pulled out to separate directory and cleaned up.</LI>
|
||||
<LI>Socketing capabilities under Unix, as well as Windoze.</LI>
|
||||
<LI>Multiple simultaneous socket client connections to STK servers now possible.</LI>
|
||||
<LI>MD2SKINI now can merge MIDI and piped messages under Irix and Linux (for TCL->MD2SKINI->syntmono control).</LI>
|
||||
<LI>Defined INT16 and INT32 types and fixed various WvIn and WvOut classes.</LI>
|
||||
<LI>Updated MatWvIn and MatWvOut for new MAT-file documentation from Matlab.</LI>
|
||||
<LI>New demo Tcl/Tk GUI (TclDemo.tcl).</LI>
|
||||
<LI>Minor fixes to FM behavior.</LI>
|
||||
<LI>Added record/duplex capabilities to RTSoundIO (Linux, SGI, and Windoze).</LI>
|
||||
<LI>Fixed bugs in WavWvOut and MatWvOut header specifications.</LI>
|
||||
<LI>Added RawWvOut class.</LI>
|
||||
<LI>New WvIn class with RawWvIn, SndWvIn, WavWvIn, MatWvIn, and RTWvIn subclasses.</LI>
|
||||
<LI>Removed RawWave, RawShot, RawInterp, and RawLoop classes (supplanted by RawWvIn).</LI>
|
||||
<LI>Multi-channel data support in WvIn and WvOut classes using MY_MULTI data type (pointer to StkFloat) and the methods mtick() and mlastOutput().</LI>
|
||||
<LI>Now writing to primary buffer under Windoze when allowed by hardware.</LI>
|
||||
<LI>Cleaned up Object.h a bit.</LI>
|
||||
<LI>Pulled various utility and thread functions out of syntmono.cpp (to aid readability of the code).</LI>
|
||||
</UL>
|
||||
|
||||
\subsection v2dot02 Version 2.02
|
||||
- Created RawWave abstract class, with subclasses of RawLoop (looping rawwave oscillator), RawShot (non-looping, non-interpolating rawwave player ... used to be RawWvIn), and RawInterp (looping or non-looping, interpolating rawwave player ... used to be RawWave).
|
||||
- Modified DrumSynt to correctly handle sample rates different than 22050 Hz.
|
||||
- Modified syntmono parsing vs. tick routine so that some ticking occurs between each message. When multiple messages are waiting to be processed, the time between message updates is inversely proportional to the number of messages in the buffer.
|
||||
- Fixed DirectSound playback bug in WinXX distribution. Sound was being played at 8-bit, 22 kHz in all cases. Playback is now 16-bit and dependent on SRATE.
|
||||
- Fixed bug in MD2SKINI which prevented some NoteOff statements from being output.
|
||||
- This distribution includes an example STK project, mus151, which demonstrates a means for keeping a user's personal projects separate from the main distribution. This is highly recommended, in order to simplify upgrades to future STK releases.
|
||||
|
||||
<UL>
|
||||
<LI>Created RawWave abstract class, with subclasses of RawLoop (looping rawwave oscillator), RawShot (non-looping, non-interpolating rawwave player ... used to be RawWvIn), and RawInterp (looping or non-looping, interpolating rawwave player ... used to be RawWave).</LI>
|
||||
<LI>Modified DrumSynt to correctly handle sample rates different than 22050 Hz.</LI>
|
||||
<LI>Modified syntmono parsing vs. tick routine so that some ticking occurs between each message. When multiple messages are waiting to be processed, the time between message updates is inversely proportional to the number of messages in the buffer.</LI>
|
||||
<LI>Fixed DirectSound playback bug in WinXX distribution. Sound was being played at 8-bit, 22 kHz in all cases. Playback is now 16-bit and dependent on SRATE.</LI>
|
||||
<LI>Fixed bug in MD2SKINI which prevented some NoteOff statements from being output.</LI>
|
||||
<LI>This distribution includes an example STK project, mus151, which demonstrates a means for keeping a user's personal projects separate from the main distribution. This is highly recommended, in order to simplify upgrades to future STK releases.</LI>
|
||||
</UL>
|
||||
|
||||
\subsection v2 Version 2
|
||||
- Unification of the capabilities of STK across the various platforms. All of the previous SGI functionality has been ported to Linux and Windows, including realtime sound output and MIDI input.
|
||||
- MIDI input (with optional time-stamping) supported on SGI, Linux (OSS device drivers only), and Windows operating systems. Time stamping under IRIX and Windows is quantized to milliseconds and under Linux to hundredths of a second.
|
||||
- Various Sound Output Options - .wav, .snd, and .mat (Matlab MAT-file) soundfile outputs are supported on all operating systems. I hacked out the MAT-file structure, so you don't have to include any platform-specific libraries. Realtime sound output is provided as well, except under NeXTStep.
|
||||
- Multiple Reverberator Implementations - Reverb subclasses of JCRev and NRev (popular reverberator implementations from CCRMA) have been written. Perry's original reverb implementation still exists as PRCRev. All reverberators now take a T60 initializer argument.
|
||||
- MD2SKINI - A program which parses a MIDI input stream and spits out SKINI code. The output of MD2SKINI is typically piped into an STK instrument executable (e.g. <tt>MD2SKINI | syntmono Clarinet -r -i</tt>). In addition, you can supply a filename argument to MD2SKINI and have it simultaneously record a SKINI score file for future reuse.
|
||||
- Modifications to <I>Object.h</I> for OS_TYPE compilation dependencies. <I>Makefile</I> automatically determines OS_TYPE when invoked (if you have the GNU makefile utilities installed on your system).
|
||||
- A single distribution for all platforms. The Unix and Windows versions have been merged into a single set of classes. Makefiles and Visual C++ workspace/project files are provided for compiling.
|
||||
|
||||
<UL>
|
||||
<LI>Unification of the capabilities of STK across the various platforms. All of the previous SGI functionality has been ported to Linux and Windows, including realtime sound output and MIDI input.</LI>
|
||||
<LI>MIDI input (with optional time-stamping) supported on SGI, Linux (OSS device drivers only), and Windows operating systems. Time stamping under IRIX and Windows is quantized to milliseconds and under Linux to hundredths of a second.</LI>
|
||||
<LI>Various Sound Output Options - .wav, .snd, and .mat (Matlab MAT-file) soundfile outputs are supported on all operating systems. I hacked out the MAT-file structure, so you don't have to include any platform-specific libraries. Realtime sound output is provided as well, except under NeXTStep.</LI>
|
||||
<LI>Multiple Reverberator Implementations - Reverb subclasses of JCRev and NRev (popular reverberator implementations from CCRMA) have been written. Perry's original reverb implementation still exists as PRCRev. All reverberators now take a T60 initializer argument.</LI>
|
||||
<LI>MD2SKINI - A program which parses a MIDI input stream and spits out SKINI code. The output of MD2SKINI is typically piped into an STK instrument executable (eg. <tt>MD2SKINI | syntmono Clarinet -r -i</tt>). In addition, you can supply a filename argument to MD2SKINI and have it simultaneously record a SKINI score file for future reuse.</LI>
|
||||
<LI>Modifications to <I>Object.h</I> for OS_TYPE compilation dependencies. <I>Makefile</I> automatically determines OS_TYPE when invoked (if you have the GNU makefile utilities installed on your system).</LI>
|
||||
<LI>A single distribution for all platforms. The Unix and Windows versions have been merged into a single set of classes. Makefiles and Visual C++ workspace/project files are provided for compiling.</LI>
|
||||
</UL>
|
||||
|
||||
*/
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
- \ref license
|
||||
- \ref filerate
|
||||
- \ref computesample
|
||||
- \ref tickframe
|
||||
- \ref endianness
|
||||
- \ref xwindows
|
||||
|
||||
@@ -21,11 +23,10 @@ and Windows computer platforms. Generic, non-realtime support has
|
||||
been tested under NeXTStep, Sun, and other platforms and should
|
||||
work with any standard C++ compiler.
|
||||
|
||||
STK GitHub site: https://github.com/thestk/stk
|
||||
STK WWW site: http://ccrma.stanford.edu/software/stk/
|
||||
|
||||
The Synthesis ToolKit in C++ (STK)
|
||||
Copyright (c) 1995--2019 Perry R. Cook and Gary P. Scavone
|
||||
Copyright (c) 1995-2007 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
|
||||
@@ -64,13 +65,21 @@ Stk::setSampleRate( sampleRate ); // set a new STK sample rate based o
|
||||
|
||||
With version 4.3 and higher of STK, the FileWvIn class will be notified of a sample rate change and it will automatically adjust its read rate accordingly. Previous versions of STK did not perform this change and thus, the read rate could end up being incorrect. If you do not want FileWvIn to perform this automatic adjustment, you can call the \c ignoreSampleRateChange() function for a given class instance.
|
||||
|
||||
\section tickframe What is the difference between the tick() and tickFrame() functions?
|
||||
|
||||
\e tickFrame() functions are provided in classes that can handle multi-channel data. A <i>sample frame</i> of audio data represents a single "slice" in time across many audio channels. The WvIn and WvOut subclasses are the primary classes in STK that currently implement the \e tickFrame() functions. \e tick() functions are used for monophonic classes. Note, however, that the WvIn and WvOut classes also implement \e tick() functions though their behavior is dependent on the number of channels you are working with. For example, if using the FileWvIn class with a monophonic soundfile, then there is no difference between the \e tick() and \e tickFrame() functions (aside from the format of their arguments). But if you have a multi-channel file open, then the single value returned from the tick() function is an average of all the samples in the multi-channel sample frame.
|
||||
|
||||
\section computesample Hey, why was the tick() function replaced by computeSample() in various STK classes?
|
||||
|
||||
C++ doesn't like overloaded virtual functions. All STK classes that implement a single-sample \e tick() function also provide an overloaded version that takes an StkFrames argument (for vectorized computations). Further, many STK classes inherit from abstract base classes (Instrmnt, Generator, ...) and it is most convenient to define functionality common to all subclasses (like the \e tick() function that takes an StkFrames argument) in only the base class. So, to get around the overloaded virtual function problem, STK now uses the \e computeSample() function as a non-overloaded virtual function that is implemented in all subclasses (it essentially replaces the \e tick() function). Note, however, that the overloaded \e tick() functions are still available to the user ... they are implemented in the base classes.
|
||||
|
||||
\section endianness Why does the sound I generated with STK sound like *&#@!?
|
||||
|
||||
If the resultant sound generated by an STK program sounds like noise (and you're not doing an MLS experiment), the problem is likely related to the byte "endianness" of your computer. By default, STK assumes "big endian" byte order. If you are working with STK classes on a PC (Windows or Linux), you \e must define the <TT>__LITTLE_ENDIAN__</TT> preprocessor definition \e before compiling. If after reading this you realize you need to make this change, do not forget to recompile all STK classes from scratch.
|
||||
|
||||
\section xwindows Why do I get a Tk display error message?
|
||||
|
||||
The following error may be printed to your terminal window (depending on the version of the Tcl/Tk interpreter you are running) if you attempt to start an STK Tcl/Tk interface without the X Server first running:
|
||||
The following error will be printed to your terminal window if you attempt to start an STK tcl/tk interface without the X Server first running:
|
||||
|
||||
\code
|
||||
Application initialization failed: this isn't a Tk applicationcouldn't connect to display ":0.0"
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
/*! \page filtering Using Filters
|
||||
|
||||
In this section, we demonstrate the use of a few of the STK filter classes. The stk::Iir class provides functionality to implement a generalized infinite impulse response (IIR) digital filter, similar to the \c filter function in Matlab. In this example, we create an stk::Iir instance and initialize it with specific numerator and denominator coefficients. We then compute its impulse response for 20 samples.
|
||||
In this section, we demonstrate the use of a few of the STK filter classes. The Filter class provides functionality to implement a generalized digital filter of any type, similar to the \c filter function in Matlab. In this example, we create a Filter instance and initialize it with specific numerator and denominator coefficients. We then compute its impulse response for 20 samples.
|
||||
|
||||
\code
|
||||
#include "Iir.h"
|
||||
using namespace stk;
|
||||
#include "Filter.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
@@ -17,7 +16,7 @@ int main()
|
||||
denominator.push_back( 0.3 );
|
||||
denominator.push_back( -0.5 );
|
||||
|
||||
Iir filter( numerator, denominator );
|
||||
Filter filter( numerator, denominator );
|
||||
|
||||
filter.tick( output );
|
||||
for ( unsigned int i=0; i<output.size(); i++ ) {
|
||||
@@ -28,23 +27,22 @@ int main()
|
||||
}
|
||||
\endcode
|
||||
|
||||
The stk::Iir class implements the standard difference equation
|
||||
The Filter class implements the standard difference equation
|
||||
\code
|
||||
a[0]*y[n] = b[0]*x[n] + ... + b[nb]*x[n-nb] - a[1]*y[n-1] - ... - a[na]*y[n-na],
|
||||
\endcode
|
||||
|
||||
where "b" values are numerator coefficients and "a" values are denominator coefficients. Note that if the first denominator coefficient is not 1.0, the Iir class automatically normalizes all filter coefficients by that value. The coefficient values are passed to the Iir class via a C++ <a href="http://www.cplusplus.com/reference/vector/vector/">vector</a>, a container object provided by the C++ Standard Library.
|
||||
where "b" values are numerator coefficients and "a" values are denominator coefficients. Note that if the first denominator coefficient is not 1.0, the Filter class automatically normalizes all filter coefficients by that value. The coefficient values are passed to the Filter class via a C++ <a href="http://www.roguewave.com/support/docs/sourcepro/stdlibref/vector.html">vector</a>, a container object provided by the C++ Standard Library.
|
||||
|
||||
Most STK classes use more specific types of digital filters, such as the stk::OneZero, stk::OnePole, stk::TwoPole, or stk::BiQuad varieties. These classes inherit from the stk::Filter abstract base class and provide specific functionality particular to their use, as well as functions to independently control individual coefficient values.
|
||||
Most STK classes use more specific types of digital filters, such as the OneZero, OnePole, TwoPole, or BiQuad varieties. These classes inherit from the Filter class and provide specific functionality particular to their use, as well as functions to independently control individual coefficient values.
|
||||
|
||||
\section reson Resonances:
|
||||
|
||||
The STK stk::BiQuad and stk::TwoPole classes provide functionality for creating resonance filters. The following example demonstrates how to create a resonance centered at 440 Hz that is used to filter the output of a stk::Noise generator.
|
||||
The STK BiQuad and TwoPole classes provide functionality for creating resonance filters. The following example demonstrates how to create a resonance centered at 440 Hz that is used to filter the output of a Noise generator.
|
||||
|
||||
\code
|
||||
#include "BiQuad.h"
|
||||
#include "Noise.h"
|
||||
using namespace stk;
|
||||
|
||||
int main()
|
||||
{
|
||||
@@ -63,12 +61,11 @@ int main()
|
||||
}
|
||||
\endcode
|
||||
|
||||
By passing a boolian value of \c true as the third argument to the stk::BiQuad::setResonance() function, the filter coefficients are automatically scaled to achieve unity gain at the resonance peak frequency. The previous code could be easily modified for "vector-based" calculations:
|
||||
By passing a boolian value of \c true as the third argument to the BiQuad::setResonance() function, the filter coefficients are automatically scaled to achieve unity gain at the resonance peak frequency. The previous code could be easily modified for "vector-based" calculations:
|
||||
|
||||
\code
|
||||
#include "BiQuad.h"
|
||||
#include "Noise.h"
|
||||
using namespace stk;
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995--2019 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
/*! \page fundamentals STK Fundamentals
|
||||
|
||||
The Synthesis ToolKit is implemented in the C++ programming language. STK does not attempt to provide a new programming environment or paradigm but rather provides a set of objects that can be used within a normal C++ programming framework. Therefore, it is expected that users of STK will have some familiarity with C/C++ programming concepts. That said, the STK classes do have some particular idiosyncrasies that we will mention here. Starting with STK version 4.4, all STK classes except RtAudio and RtMidi are defined within the stk namespace.
|
||||
The Synthesis ToolKit is implemented in the C++ programming language. STK does not attempt to provide a new programming environment or paradigm but rather provides a set of objects that can be used within a normal C++ programming framework. Therefore, it is expected that users of STK will have some familiarity with C/C++ programming concepts. That said, the STK classes do have some particular idiosyncrasies that we will mention here.
|
||||
|
||||
\section Signal Computations:
|
||||
|
||||
Audio and control signals throughout STK use a floating-point data type, <tt>StkFloat</tt>, the exact precision of which can be controlled via a typedef statement in Stk.h. By default, an StkFloat is a double-precision floating-point value. Thus, the ToolKit can use any normalization scheme desired. The base instruments and algorithms are implemented with a general audio sample dynamic maximum of +/-1.0.
|
||||
|
||||
In general, the computation and/or passing of values is performed on a "single-sample" basis. For example, the stk::Noise class outputs random floating-point numbers in the range +/-1.0. The computation of such values occurs in the stk::Noise::tick() function. The following program will generate 20 random floating-point (<tt>StkFloat</tt>) values in the range -1.0 to +1.0:
|
||||
In general, the computation and/or passing of values is performed on a "single-sample" basis. For example, the Noise class outputs random floating-point numbers in the range +/-1.0. The computation of such values occurs in the Noise::tick() function. The following program will generate 20 random floating-point (<tt>StkFloat</tt>) values in the range -1.0 to +1.0:
|
||||
|
||||
\code
|
||||
#include "Noise.h"
|
||||
using namespace stk;
|
||||
|
||||
int main()
|
||||
{
|
||||
@@ -30,7 +29,6 @@ Nearly all STK classes implement <TT>tick()</TT> functions that take and/or retu
|
||||
|
||||
\code
|
||||
#include "Noise.h"
|
||||
using namespace stk;
|
||||
|
||||
int main()
|
||||
{
|
||||
@@ -46,19 +44,19 @@ int main()
|
||||
}
|
||||
\endcode
|
||||
|
||||
In this way, it might be possible to achieve improved processing efficiency using vectorized computations. The StkFrames class is a relatively new addition to the ToolKit to provide a general "mechanism" for handling and passing vectorized, multi-channel audio data. The StkFrames "type" provides functions to set and/or determine the number of audio channels and sample frames it holds. Further, the StkFrames class provides data interpolation and subscripting functionality by frame/channel values.
|
||||
In this way, it might be possible to achieve improved processing efficiency using vectorized computations. The StkFrames class is a relatively new addition to the ToolKit to provide a general "mechanism" for handling and passing vectorized, multi-channel audio data. The StkFrames "type" provides functions to set and/or determine the number of audio channels and sample frames it holds, as well as the format (interleaved or non-interleaved) of its data. Further, the StkFrames class provides data interpolation and subscripting functionality by frame/channel values.
|
||||
|
||||
\section STK Inheritance:
|
||||
|
||||
Nearly all STK classes inherit from the Stk abstract base class, which provides common functionality related to error reporting, sample rate control, and byte swapping. Several other base classes exist that roughly group many of the classes according to function as follows:
|
||||
|
||||
- stk::Generator: source signal unit generator classes [stk::Envelope, stk::ADSR, stk::Asymp, stk::Noise, stk::SubNoise, stk::Modulate, stk::SingWave, stk::SineWave, stk::Blit, stk::BlitSaw, stk::BlitSquare, stk::Granulate]
|
||||
- stk::Filter: digital filtering classes [stk::OneZero, stk::OnePole, stk::PoleZero, stk::TwoZero, stk::TwoPole, stk::BiQuad, stk::FormSwep, stk::Delay, stk::DelayL, stk::DelayA, stk::TapDelay]
|
||||
- stk::Function: input to output function mappings [stk::BowTable, stk::JetTable, stk::ReedTable]
|
||||
- stk::Instrmnt: sound synthesis algorithms, including physical, FM, modal, and particle models
|
||||
- stk::Effect: sound processing effect classes [stk::Echo, stk::Chorus, stk::PitShift, stk::PRCRev, stk::JCRev, stk::NRev]
|
||||
- stk::WvOut: audio data output classes [stk::FileWvOut, stk::RtWvOut, stk::InetWvOut]
|
||||
- stk::WvIn: audio data input classes [stk::FileWvIn, stk::FileLoop, stk::RtWvIn, stk::InetWvIn]
|
||||
- Generator: source signal unit generator classes [Envelope, ADSR, Asymp, Noise, SubNoise, Modulate, SingWave, SineWave Blit, BlitSaw, BlitSquare, Granulate]
|
||||
- Filter: digital filtering classes [OneZero, OnePole, PoleZero, TwoZero, TwoPole, BiQuad, FormSwep, Delay, DelayL, DelayA]
|
||||
- Function: input to output function mappings [BowTable, JetTable, ReedTable]
|
||||
- Instrmnt: sound synthesis algorithms, including physical, FM, modal, and particle models
|
||||
- Effect: sound processing effect classes [Echo, Chorus, PitShift, PRCRev, JCRev, NRev]
|
||||
- WvOut: audio data output classes [FileWvOut, RtWvOut, InetWvOut]
|
||||
- WvIn: audio data input classes [FileWvIn, WaveLoop, RtWvIn, InetWvIn]
|
||||
|
||||
|
||||
[<A HREF="tutorial.html">Main tutorial page</A>] [<A HREF="hello.html">Next tutorial</A>]
|
||||
|
||||
@@ -3,25 +3,24 @@
|
||||
We'll continue our introduction to the Synthesis ToolKit with a simple
|
||||
sine-wave oscillator program. STK provides two different classes for
|
||||
sine-wave generation. We will first look at a generic waveform
|
||||
oscillator class, stk::FileLoop, that can load a variety of common file
|
||||
oscillator class, WaveLoop, that can load a variety of common file
|
||||
types. In this example, we load a sine "table" from an STK RAW file
|
||||
(defined as monophonic, 16-bit, big-endian data). We use the class
|
||||
stk::FileWvOut to write the result to a 16-bit, WAV formatted audio file.
|
||||
FileWvOut to write the result to a 16-bit, WAV formatted audio file.
|
||||
|
||||
\code
|
||||
|
||||
// sineosc.cpp
|
||||
|
||||
#include "FileLoop.h"
|
||||
#include "WaveLoop.h"
|
||||
#include "FileWvOut.h"
|
||||
using namespace stk;
|
||||
|
||||
int main()
|
||||
{
|
||||
// Set the global sample rate before creating class instances.
|
||||
Stk::setSampleRate( 44100.0 );
|
||||
|
||||
FileLoop input;
|
||||
WaveLoop input;
|
||||
FileWvOut output;
|
||||
|
||||
// Load the sine wave file.
|
||||
@@ -40,37 +39,29 @@ int main()
|
||||
}
|
||||
\endcode
|
||||
|
||||
stk::FileLoop is a subclass of stk::FileWvIn, which supports WAV, SND
|
||||
(AU), AIFF, MAT-file (Matlab), and RAW file formats with 8-, 16-, and
|
||||
32-bit integer and 32- and 64-bit floating-point data types.
|
||||
stk::FileWvIn provides interpolating, read-once ("oneshot")
|
||||
functionality, as well as methods for setting the read rate and read
|
||||
position.
|
||||
WaveLoop is a subclass of FileWvIn, which supports WAV, SND (AU),
|
||||
AIFF, MAT-file (Matlab), and RAW file formats with 8-, 16-, and 32-bit
|
||||
integer and 32- and 64-bit floating-point data types. FileWvIn
|
||||
provides interpolating, read-once ("oneshot") functionality, as well
|
||||
as methods for setting the read rate and read position.
|
||||
|
||||
stk::FileWvIn provides a "tick level" and interpolating interface to
|
||||
the stk::FileRead class. Likewise, stk::FileWvOut provides a "tick
|
||||
level" interface to the stk::FileWrite class. stk::FileRead and
|
||||
FileWrite both support WAV, SND(AU), AIFF, MAT-file (Matlab), and RAW
|
||||
file formats with 8-, 16-, and 32-bit integer and 32- and 64-bit
|
||||
floating-point data types. stk::FileWvOut does not currently offer
|
||||
data interpolation functionality.
|
||||
FileWvIn provides a "tick level" and interpolating interface to the
|
||||
FileRead class. Likewise, FileWvOut provides a "tick level" interface
|
||||
to the FileWrite class. FileRead and FileWrite both support WAV,
|
||||
SND(AU), AIFF, MAT-file (Matlab), and RAW file formats with 8-, 16-,
|
||||
and 32-bit integer and 32- and 64-bit floating-point data types.
|
||||
FileWvOut does not currently offer data interpolation functionality.
|
||||
|
||||
A number of STK parent classes, including stk::WvIn, stk::WvOut,
|
||||
stk::Instrmnt, stk::Generator, and stk::Effect, (and some or all of
|
||||
their subclasses) support multi-channel sample frames. If a
|
||||
single-sample version of the <TT>tick()</TT> function is called for
|
||||
these classes, a full sample frame is computed but only a single value
|
||||
is either input and/or output. For example, if the single-sample
|
||||
<TT>tick()</TT> function is called for subclasses of stk::WvOut, the
|
||||
sample argument is written to all channels in the one computed frame.
|
||||
For classes returning values, an optional \c channel argument
|
||||
specifies which channel value is returned from the computed frame (the
|
||||
default is always channel 0). To input and/or output multichannel data
|
||||
to these classes, the overloaded <TT>tick()</TT> functions taking
|
||||
StkFrames reference arguments should be used.
|
||||
The WvIn and WvOut parent classes and all subclasses support
|
||||
multi-channel sample frames. To distinguish single-sample frame
|
||||
operations from multi-channel frame operations, these classes also
|
||||
implement <TT>tickFrame()</TT> functions. When a <TT>tick()</TT>
|
||||
method is called for multi-channel data, frame averages are returned
|
||||
or the input sample is distributed across all channels of a sample
|
||||
frame.
|
||||
|
||||
Nearly all STK classes inherit from the stk::Stk base class. Stk
|
||||
provides a static sample rate that is queried by subclasses as needed.
|
||||
Nearly all STK classes inherit from the Stk base class. Stk provides
|
||||
a static sample rate that is queried by subclasses as needed.
|
||||
Because many classes use the current sample rate value during
|
||||
instantiation, it is important that the desired value be set at the
|
||||
beginning of a program. The default STK sample rate is 44100 Hz.
|
||||
@@ -84,11 +75,7 @@ rewritten as shown below.
|
||||
|
||||
\include sineosc.cpp
|
||||
|
||||
In this particular case, we simply exit the program if an error occurs
|
||||
(an error message is automatically printed to stderr). A more refined
|
||||
program might attempt to recover from or fix a particular problem and,
|
||||
if successful, continue processing. See the \ref classes to determine
|
||||
which constructors and functions can throw an error.
|
||||
In this particular case, we simply exit the program if an error occurs (an error message is automatically printed to stderr). A more refined program might attempt to recover from or fix a particular problem and, if successful, continue processing. See the \ref classes to determine which constructors and functions can throw an error.
|
||||
|
||||
[<A HREF="fundamentals.html">Main tutorial page</A>] [<A HREF="compile.html">Next tutorial</A>]
|
||||
*/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/*! \mainpage The Synthesis ToolKit in C++ (STK)
|
||||
/*! \mainpage <I>The Synthesis ToolKit in C++ (STK)</I>
|
||||
|
||||
\htmlonly
|
||||
<BODY BGCOLOR="white">
|
||||
@@ -15,7 +15,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 20 years
|
||||
fact, the ToolKit has been working continuously for about 10 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
|
||||
|
||||
@@ -18,16 +18,16 @@ Here's a link to a book that includes an chapter on STK.
|
||||
|
||||
<H4>What is the <I>Synthesis ToolKit</I>?</H4>
|
||||
|
||||
The Synthesis ToolKit in C++ (STK) is a set of open source audio signal processing and algorithmic synthesis classes written in the C++ programming language. STK was designed to facilitate rapid development of music synthesis and audio processing software, with an emphasis on cross-platform functionality, realtime control, ease of use, and educational example code. The Synthesis ToolKit is extremely 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 20 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 platforms and should work with any standard C++ compiler.
|
||||
The Synthesis ToolKit in C++ (STK) is a set of open source audio signal processing and algorithmic synthesis classes written in the C++ programming language. STK was designed to facilitate rapid development of music synthesis and audio processing software, with an emphasis on cross-platform functionality, realtime control, ease of use, and educational example code. The Synthesis ToolKit is extremely 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 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 platforms and should work with any standard C++ compiler.
|
||||
|
||||
The Synthesis ToolKit is free. The only parts of the Synthesis ToolKit that are platform-dependent concern real-time audio and MIDI input and output, and that is taken care of with a few special classes. The interface for MIDI input and the simple <A HREF="https://www.tcl.tk/">Tcl/Tk</A> graphical user interfaces (GUIs) provided is the same, so it's easy to experiment in real time using either the GUIs or MIDI. The Synthesis ToolKit can generate simultaneous SND (AU), WAV, AIFF, and MAT-file output soundfile formats (as well as realtime sound output), so you can view your results using one of a large variety of sound/signal analysis tools already available (e.g. <A HREF="http://www-ccrma.stanford.edu/software/snd/">Snd</A>, Cool Edit, Matlab).
|
||||
The Synthesis ToolKit is free for non-commercial use. The only parts of the Synthesis ToolKit that are platform-dependent concern real-time audio and MIDI input and output, and that is taken care of with a few special classes. The interface for MIDI input and the simple <A HREF="http://dev.scriptics.com">Tcl/Tk</A> graphical user interfaces (GUIs) provided is the same, so it's easy to experiment in real time using either the GUIs or MIDI. The Synthesis ToolKit can generate simultaneous SND (AU), WAV, AIFF, and MAT-file output soundfile formats (as well as realtime sound output), so you can view your results using one of a large variety of sound/signal analysis tools already available (e.g. <A HREF="http://www-ccrma.stanford.edu/software/snd/">Snd</A>, Cool Edit, Matlab).
|
||||
|
||||
|
||||
<H4>What the <I>Synthesis ToolKit</I> is not.</H4>
|
||||
|
||||
The Synthesis Toolkit is not one particular program. Rather, it is a set of C++ classes that you can use to create your own programs. A few example applications are provided to demonstrate some of the ways to use the classes. If you have specific needs, you will probably have to either modify the example programs or write a new program altogether. Further, the example programs don't have a fancy GUI wrapper. It is easy to embed STK classes inside a GUI environment but we have chosen to focus our energy on the audio signal processing issues. Spending hundreds of hours making platform-dependent graphical user interfaces would go against one of the fundamental design goals of the ToolKit - platform independence.
|
||||
|
||||
For those instances where a simple GUI with sliders and buttons is helpful, we use <A HREF="https://www.tcl.tk/">Tcl/Tk</A> (that is freely distributed for all the supported ToolKit platforms). A number of Tcl/Tk GUI scripts are distributed with the ToolKit release. For control, the Synthesis Toolkit uses raw MIDI (on supported platforms), and SKINI (Synthesis ToolKit Instrument Network Interface, a MIDI-like text message synthesis control format).
|
||||
For those instances where a simple GUI with sliders and buttons is helpful, we use <A HREF="http://dev.scriptics.com">Tcl/Tk</A> (that is freely distributed for all the supported ToolKit platforms). A number of Tcl/Tk GUI scripts are distributed with the ToolKit release. For control, the Synthesis Toolkit uses raw MIDI (on supported platforms), and SKINI (Synthesis ToolKit Instrument Network Interface, a MIDI-like text message synthesis control format).
|
||||
|
||||
<H4>A brief history of the <I>Synthesis ToolKit in C++.</I></H4>
|
||||
|
||||
@@ -39,8 +39,8 @@ everything to C++ on SGI hardware, added real-time capabilities, and
|
||||
greatly expanded the synthesis techniques available. With the help of
|
||||
Bill Putnam, Perry also made a port of STK to Windows95. Gary Scavone
|
||||
began using STK extensively in the summer of 1997 and completed a full
|
||||
port of STK to Linux early in 1998. He finished the fully compatible
|
||||
Windows port (using DirectSound API) in June 1998. Numerous
|
||||
port of STK to Linux early in 1998. He finished the fully compatable
|
||||
Windows port (using Direct Sound API) in June 1998. Numerous
|
||||
improvements and extensions have been made since then.
|
||||
|
||||
The Toolkit has been distributed continuously since 1996 via the <A
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*! \page instruments Instruments
|
||||
|
||||
The ToolKit comes with a wide variety of synthesis algorithms, all of which inherit from the stk::Instrmnt class. In this example, we'll fire up an instance of the stk::BeeThree FM synthesis class and show how its frequency can be modified over time.
|
||||
The ToolKit comes with a wide variety of synthesis algorithms, all of which inherit from the Instrmnt class. In this example, we'll fire up an instance of the BeeThree FM synthesis class and show how its frequency can be modified over time.
|
||||
|
||||
\include bethree.cpp
|
||||
|
||||
@@ -10,7 +10,7 @@ with any other STK instrument class. It should be noted, however,
|
||||
that a few classes do not respond to the setFrequency() function
|
||||
(e.g., Shakers, Drummer).
|
||||
|
||||
The noteOn() function initiates an instrument attack. Instruments that are continuously excited (e.g., stk::Clarinet, stk::BeeThree) will continue to sound until stopped with a noteOff(). Impulsively excited instrument sounds (e.g., stk::Plucked, stk::Wurley) typically decay within a few seconds time, requiring subsequent noteOn() messages for re-attack.
|
||||
The noteOn() function initiates an instrument attack. Instruments that are continuously excited (e.g., Clarinet, BeeThree) will continue to sound until stopped with a noteOff(). Impulsively excited instrument sounds (e.g., Plucked, Wurley) typically decay within a few seconds time, requiring subsequent noteOn() messages for re-attack.
|
||||
|
||||
Instrument parameters can be precisely controlled as demonstrated above. A more flexible approach to instrument control, allowing arbitrary scorefile or realtime updates, is described in the next tutorial chapter.
|
||||
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
/*! \page links Miscellaneous Links
|
||||
|
||||
- <A HREF="http://www.music.mcgill.ca/~gary/rtaudio/">The %RtAudio WWW site</A>
|
||||
- <A HREF="http://music.mcgill.ca/~gary/rtaudio/">The %RtAudio WWW site</A>
|
||||
|
||||
- <A HREF="http://www.music.mcgill.ca/~gary/rtmidi/">The %RtMidi WWW site</A>
|
||||
|
||||
- <A HREF="http://momu.stanford.edu/stk/">MoMu-Stk: A lightly modified version of STK that supports the iPhone platform (iPhone, iPad, iPod Touches)</A>
|
||||
- <A HREF="http://music.mcgill.ca/~gary/rtmidi/">The %RtMidi WWW site</A>
|
||||
|
||||
- <A HREF="http://ccrma.stanford.edu/~woony/software/stkx/">StkX: A Cocoa STK Framework for Mac OS X by Woon Seung Yeo</A>
|
||||
|
||||
@@ -12,14 +10,20 @@
|
||||
|
||||
- <A HREF="http://chuck.cs.princeton.edu/">ChucK: Concurrent, On-the-fly Audio Programming Language</A> using STK unit generators
|
||||
|
||||
- <A HREF="http://kern.ccarh.org">Kern Scores: A Library of Electronic Musical Scores</A> (with automatic conversion to SKINI format)
|
||||
- <A HREF="http://www.music.princeton.edu/paul/stkugens.tar.gz">Paul Lansky's port of STK to SuperCollider</A>
|
||||
|
||||
- <A HREF="http://kern.humdrum.net/">Kern Scores: A Library of Electronic Musical Scores</A> (with automatic conversion to SKINI format)
|
||||
|
||||
- <A HREF="http://stk.sapp.org/midi2skini">MIDI to SKINI file converter</A> by Craig Sapp
|
||||
|
||||
- <A HREF="http://extra.humdrum.org/example/kern2skini/">Kern Score to SKINI file converter</A> by Craig Sapp
|
||||
- <A HREF="http://stk.sapp.org/kern2skini">Kern Score to SKINI file converter</A> by Craig Sapp
|
||||
|
||||
- <A HREF="http://www.artassault.org/software/software.html">Calico - A Polyphonic Score File Parser for STK</A> by Greg Kellum
|
||||
|
||||
- <A HREF="http://www.music.columbia.edu/PeRColate/">PeRColate: A Port of STK for Max/MSP</A>
|
||||
|
||||
- <A HREF="http://mathmorphs.swiki.net/32/">A Partial Port of STK to Squeak</A>
|
||||
|
||||
- <a href="http://airy.andre.online.fr/AU/index.html">AUStk: a demo of integration of STK instruments into an AudioUnit</a> by Airy Andre
|
||||
|
||||
*/
|
||||
|
||||
@@ -1,25 +1,22 @@
|
||||
/*! \page multichannel Multi-Channel I/O
|
||||
|
||||
The ToolKit stk::WvIn and stk::WvOut classes (and their subclasses) support multi-channel audio data input and output. Several other abstract base classes, such as stk::Instrmnt, stk::Generator, and stk::Effect, also support multi-channel computations though not all of their subclasses produce or take multi-channel data. A set of interleaved audio samples representing a single time "slice" is referred to as a <I>sample frame</I>. At a sample rate of 44.1 kHz, a four-channel audio stream will have 44100 sample frames per second and a total of 176400 individual samples per second.
|
||||
The ToolKit WvIn and WvOut classes (and their subclasses) support multi-channel audio data input and output. A set of interleaved audio samples representing a single time "slice" is referred to as a <I>sample frame</I>. At a sample rate of 44.1 kHz, a four-channel audio stream will have 44100 sample frames per second and a total of 176400 individual samples per second.
|
||||
|
||||
Most STK classes process single-sample data streams via their
|
||||
<TT>tick()</TT> function. For classes supporting multi-channel data,
|
||||
one must distinguish the <TT>tick()</TT> functions taking or producing
|
||||
single \c StkFloat arguments from those taking stk::StkFrames& arguments. If
|
||||
a single-sample version of the <TT>tick()</TT> function is called for
|
||||
these classes, a full sample frame is computed but only a single value
|
||||
is either input and/or output. For example, if the single-sample
|
||||
<TT>tick()</TT> function is called for subclasses of WvOut, the sample
|
||||
argument is written to all channels in the one computed frame. For
|
||||
classes returning values, an optional \c channel argument specifies
|
||||
which channel value is returned from the computed frame (the default
|
||||
is always channel 0). To input and/or output multichannel data to
|
||||
these classes, the overloaded <TT>tick()</TT> functions taking
|
||||
StkFrames reference arguments should be used.
|
||||
<TT>tick()</TT> function. In order to distinguish single-sample and
|
||||
sample frame calculations, the WvIn and WvOut classes implement both
|
||||
<TT>tick()</TT> and <TT>tickFrame()</TT> functions. The
|
||||
<TT>tickFrame()</TT> functions take or return a reference to an StkFrames object
|
||||
representing one or more sample frames. For single-channel
|
||||
streams, the <TT>tick()</TT> and <TT>tickFrame()</TT> functions
|
||||
produce equivalent results. When <TT>tick()</TT> is called for a
|
||||
multi-channel stream, however, the function either returns a sample
|
||||
frame average (WvIn) or writes a single sample argument to all
|
||||
channels (WvOut).
|
||||
|
||||
Multi-channel support for realtime audio input and output is dependent on the audio device(s) available on your system.
|
||||
|
||||
The following example demonstrates the use of the stk::FileWvOut class for
|
||||
The following example demonstrates the use of the FileWvOut class for
|
||||
creating a four channel, 16-bit AIFF formatted audio file. We will
|
||||
use four sinewaves of different frequencies for the first two seconds
|
||||
and then a single sinewave for the last two seconds.
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
/*! \page polyvoices Voice Management
|
||||
|
||||
The previous tutorial chapters were concerned only with monophonic ToolKit instrument playback and control. At this point, it should be relatively clear that one can instantiate multiple instruments and perhaps sum together their outputs or even direct their outputs to separate channels. It is less clear how one might go about controlling a group of instruments. The stk::Voicer class is designed to serve just this purpose.
|
||||
The previous tutorial chapters were concerned only with monophonic ToolKit instrument playback and control. At this point, it should be relatively clear that one can instantiate multiple instruments and perhaps sum together their outputs or even direct their outputs to separate channels. It is less clear how one might go about controlling a group of instruments. The Voicer class is designed to serve just this purpose.
|
||||
|
||||
The stk::Voicer class is a relatively simple voice manager. The user can dynamically add and delete instruments to/from its "control", with the option of controlling specific instruments via unique note tags and/or grouping sets of instruments via a "group" number. All sounding instrument outputs are summed and returned via the <TT>tick()</TT> function. The stk::Voicer class responds to noteOn, noteOff, setFrequency, pitchBend, and controlChange messages, automatically assigning incoming messages to the voices in its control. When all voices are sounding and a new noteOn is encountered, the stk::Voicer interrupts the oldest sounding voice. The user is responsible for creating and deleting all instrument instances.
|
||||
The STK Voicer class is a relatively simple voice manager. The user can dynamically add and delete instruments to/from its "control", with the option of controlling specific instruments via unique note tags and/or grouping sets of instruments via a "channel" number. All sounding instrument outputs are summed and returned via the <TT>tick()</TT> function. The Voicer class responds to noteOn, noteOff, setFrequency, pitchBend, and controlChange messages, automatically assigning incoming messages to the voices in its control. When all voices are sounding and a new noteOn is encountered, the Voicer interrupts the oldest sounding voice. The user is responsible for creating and deleting all instrument instances.
|
||||
|
||||
In the following example, we modify the <TT>controlbee.cpp</TT> program to make use of three stk::BeeThree instruments, all controlled using a stk::Voicer.
|
||||
In the following example, we modify the <TT>controlbee.cpp</TT> program to make use of three BeeThree instruments, all controlled using a Voicer.
|
||||
|
||||
\include threebees.cpp
|
||||
|
||||
@@ -14,9 +14,9 @@ We have written this program to accept control messages from \c STDIN. Assuming
|
||||
threebees < scores/bachfugue.ski
|
||||
\endcode
|
||||
|
||||
For more fun, surf to <A HREF="http://kern.ccarh.org/">Kern Scores</A> for a huge assortment of other scorefiles that can be downloaded in the SKINI format.
|
||||
For more fun, surf to <A HREF="http://kern.humdrum.net/">Kern Scores</A> for a huge assortment of other scorefiles that can be downloaded in the SKINI format.
|
||||
|
||||
Another easy extension would be to add the \c stk::Messager::startMidiInput() function to the program and then play the instruments via a MIDI keyboard.
|
||||
Another easy extension would be to add the \c Messager::startMidiInput() function to the program and then play the instruments via a MIDI keyboard.
|
||||
|
||||
[<A HREF="tutorial.html">Main tutorial page</A>]
|
||||
*/
|
||||
|
||||
@@ -2,36 +2,36 @@
|
||||
|
||||
In this section, we modify the <TT>sineosc.cpp</TT> program in order
|
||||
to send the output to the default audio playback device on your
|
||||
computer system. We also make use of the stk::SineWave class as a
|
||||
sine-wave oscillator. stk::SineWave computes an internal, static sine-wave
|
||||
computer system. We also make use of the SineWave class as a
|
||||
sine-wave oscillator. SineWave computes an internal, static sine-wave
|
||||
table when its first instance is created. Subsequent instances make
|
||||
use of the same table. The default table length, specified in
|
||||
SineWave.h, is 2048 samples.
|
||||
|
||||
\include rtsine.cpp
|
||||
|
||||
The class stk::RtWvOut is a protected subclass of stk::WvOut. A number of
|
||||
The class RtWvOut is a protected subclass of WvOut. A number of
|
||||
optional constructor arguments can be used to fine tune its
|
||||
performance for a given system. stk::RtWvOut provides a "single-sample",
|
||||
blocking interface to the RtAudio class. Note that stk::RtWvOut (as well
|
||||
as the stk::RtWvIn class described below) makes use of RtAudio's callback
|
||||
performance for a given system. RtWvOut provides a "single-sample",
|
||||
blocking interface to the RtAudio class. Note that RtWvOut (as well
|
||||
as the RtWvIn class described below) makes use of RtAudio's callback
|
||||
input/output functionality by creating a large ring-buffer into which
|
||||
data is written. These classes should not be used when low-latency
|
||||
and robust performance is necessary
|
||||
|
||||
Though not used here, an stk::RtWvIn class exists as well that can be used
|
||||
Though not used here, an RtWvIn class exists as well that can be used
|
||||
to read realtime audio data from an input device. See the
|
||||
<TT>record.cpp</TT> example program in the <TT>examples</TT> project
|
||||
for more information.
|
||||
|
||||
It may be possible to use an instance of stk::RtWvOut and an instance of
|
||||
stk::RtWvIn to simultaneously read and write realtime audio to and from a
|
||||
It may be possible to use an instance of RtWvOut and an instance of
|
||||
RtWvIn to simultaneously read and write realtime audio to and from a
|
||||
hardware device or devices. However, it is recommended to instead use
|
||||
a single instance of RtAudio to achieve this behavior, as described in the next section.
|
||||
See the <TT>effects</TT> project or the <TT>duplex.cpp</TT> example
|
||||
program in the <TT>examples</TT> project for more information.
|
||||
|
||||
When using any realtime STK class (RtAudio, stk::RtWvOut, stk::RtWvIn, RtMidi, stk::InetWvIn, stk::InetWvOut, stk::Socket, stk::UdpSocket, stk::TcpServer, stk::TcpClient, and stk::Thread), it is necessary to specify an audio/MIDI API preprocessor definition and link with the appropriate libraries or frameworks. For example, the above program could be compiled on a Linux system using the GNU g++ compiler and the ALSA audio API as follows (assuming all necessary files exist in the project directory):
|
||||
When using any realtime STK class (RtAudio, RtWvOut, RtWvIn, RtDuplex, RtMidi, InetWvIn, InetWvOut, Socket, UdpSocket, TcpServer, TcpClient, and Thread), it is necessary to specify an audio/MIDI API preprocessor definition and link with the appropriate libraries or frameworks. For example, the above program could be compiled on a Linux system using the GNU g++ compiler and the ALSA audio API as follows (assuming all necessary files exist in the project directory):
|
||||
|
||||
\code
|
||||
g++ -Wall -D__LINUX_ALSA__ -D__LITTLE_ENDIAN__ -o rtsine Stk.cpp Generator.cpp SineWave.cpp WvOut.cpp \
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<B>General:</B>
|
||||
<UL>
|
||||
<LI>A MIDI interface to use MIDI input/output controls. (NOTE: This may be built into the soundcard on your computer.)</LI>
|
||||
<LI><A HREF="https://www.tcl.tk/">Tcl/Tk</A> version 8.0 or higher to use the simple Tcl/Tk GUIs provided with the STK distribution (available free over the WWW for all supported realtime platforms).</LI>
|
||||
<LI><A HREF="http://dev.scriptics.com">Tcl/Tk</A> version 8.0 or higher to use the simple Tcl/Tk GUIs provided with the STK distribution (available free over the WWW for all supported realtime platforms).</LI>
|
||||
</UL>
|
||||
|
||||
<B>Linux (specific):</B>
|
||||
@@ -15,21 +15,28 @@
|
||||
|
||||
<B>Macintosh OS X (specific):</B>
|
||||
<UL>
|
||||
<LI>A C++ compiler is not installed by default with OS X. It is necessary to download the Developer Kit from the Apple WWW site in order to compile STK or load it from the installation CD-ROM.</LI>
|
||||
<LI>A C++ compiler does install by default with OS X. It is necessary to download the Developer Kit from the Apple WWW site in order to compile STK or load it from the installation CD-ROM.</LI>
|
||||
<LI><B>IMPORTANT:</B>The internal Macintosh audio hardware typically supports a sample rate of 44100 Hz only. The default STK sample rate is now 44100 Hz, but there may be programs that change that value before execution. Check the program code if you have sample rate conflicts. Many of the example project programs allow the sample rate to be specified via the command line.</LI>
|
||||
<LI>If you experience frequent audio input/output "glitches", try increasing the RT_BUFFER_SIZE specified in Stk.h.</LI>
|
||||
<LI>The Tcl/Tk interpreter does not ship by default with OS X and 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.
|
||||
<LI>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.
|
||||
|
||||
It appears that socket support in Tcl/Tk 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.</LI>
|
||||
It appears that socket support in Tcl/Tk 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.</LI>
|
||||
|
||||
</UL>
|
||||
|
||||
<B>Windows95 and later (specific):</B>
|
||||
<B>Windows95/98/2000/XP (specific):</B>
|
||||
<UL>
|
||||
<LI>A soundcard to use realtime audio input/output capabilities. In order to use the <I><B>effects</B></I> project, the soundcard and drivers must support full duplex mode.</LI>
|
||||
<LI><A HREF="http://www.microsoft.com/directx/">DirectX</A> 5.0 (or higher) runtime libraries.</LI>
|
||||
<LI><A HREF="http://www.microsoft.com/directx/">DirectX</A> 5.0 (or higher) runtime libraries to use the precompiled binaries.</LI>
|
||||
<LI>Visual C++ .NET for compiling (though a precompiled distribution is available).</LI>
|
||||
<LI>For compiling the source (if not already in your system): <UL><LI><A HREF="Misc/dsound.h">dsound.h</A> header file (DirectX 6.1) - put somewhere in your header search path</LI><LI><A HREF="Misc/dsound.lib">dsound.lib</A> library file (DirectX 6.1) - put somewhere in your library search path</LI></UL></LI>
|
||||
</UL>
|
||||
|
||||
<B>WindowsNT (specific):</B>
|
||||
<UL>
|
||||
<LI>DirectX support for NT is inadequate, so it is not possible to use STK under WindowsNT with realtime DirectX support. It may be possible to use STK under WindowsNT with realtime ASIO support, though this has not been tested.</LI>
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
|
||||
*/
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
/*! \page tutorial Tutorial
|
||||
|
||||
The Synthesis ToolKit is a set of C++ classes. In order to go beyond the simple example programs we provide, it is necessary to know some basics about programming in C and C++. STK's "target audience" includes people who:
|
||||
- want to create audio DSP and/or synthesis programs
|
||||
- want to use our unit generators and input/output routines rather than code their own
|
||||
- want to learn about synthesis and processing algorithms
|
||||
- wish to teach real-time synthesis and processing and wish to use some of our classes and examples
|
||||
<UL>
|
||||
<LI>want to create audio DSP and/or synthesis programs</LI>
|
||||
<LI>want to use our unit generators and input/output routines rather than code their own</LI>
|
||||
<LI>want to learn about synthesis and processing algorithms</LI>
|
||||
<LI>wish to teach real-time synthesis and processing and wish to use some of our classes and examples</LI>
|
||||
</UL>
|
||||
|
||||
Most ToolKit programmers will likely end up writing a class or two for their own particular needs, but this task is typically simplified by making use of pre-existing STK classes (filters, oscillators, etc.).
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
- \ref directory
|
||||
- \ref compiling
|
||||
- \ref debug
|
||||
- \ref control
|
||||
- \ref voices
|
||||
- \ref nort
|
||||
@@ -32,23 +31,23 @@ The top level distribution contains the following directories:
|
||||
This release of STK comes with four separate "project" directories:
|
||||
|
||||
<OL>
|
||||
<LI> The <I><B>demo</B></I> project is used to demonstrate nearly all of the STK instruments. The <I><B>stk-demo</B></I> program has been written to allow a variety of control input and sound data output options. Simple graphical user interfaces (GUIs) are also provided.<P></LI>
|
||||
<LI> The <I><B>demo</B></I> project is used to demonstrate nearly all of the STK instruments. The <I><B>demo</B></I> program has been written to allow a variety of control input and sound data output options. Simple graphical user interfaces (GUIs) are also provided.<P></LI>
|
||||
|
||||
<LI> The <I><B>effects</B></I> project demonstrates realtime duplex mode (simultaneous audio input and output) operation, when available, as well as various delay-line based effects algorithms.<P></LI>
|
||||
|
||||
<LI> The <I><B>ragamatic</B></I> project is just cool. Fire it up and be enlightened.<P></LI>
|
||||
|
||||
<LI> The <I><B>eguitar</B></I> project demonstrates how to make an electric guitar with feedback and distortion.<P></LI>
|
||||
|
||||
<LI> The <I><B>examples</B></I> project contains several simple programs that demonstrate audio input/output, including the audio internet streaming classes, as well as most of the tutorial programs.</LI>
|
||||
</OL>
|
||||
|
||||
\section compiling Compiling:
|
||||
|
||||
<UL>
|
||||
<LI><B>Windows95 and later:</B> For specifics on creating Windows applications using Visual Studio, see README-Win.txt.</LI>
|
||||
<LI><B>Windows95/98/2000/XP:</B> Realtime support is available using either DirectSound or ASIO audio drivers. For DirectSound support, use the <TT>__WINDOWS_DS__</TT> preprocessor definition and link with the <TT>dsound.lib</TT>, <TT>winmm.lib</TT>, and <TT>Wsock32.lib</TT> libraries. For ASIO support, use the <TT>__WINDOWS_ASIO__</TT> preprocessor definition, include all the files in the <TT>src/asio/</TT> directory (i.e. <TT>asio.h,cpp</TT>, <TT>asiodrivers.h,cpp</TT>, ...), and link with the <TT>winmm.lib</TT>, and <TT>Wsock32.lib</TT> libraries. In addition, the <TT>__LITTLE_ENDIAN__</TT> and <TT>__WINDOWS_MM__</TT> preprocessor definitions are necessary for all Windows systems (RtMidi uses the Windows MultiMedia MIDI API). A distribution of the release is available with precompiled binaries (using DirectSound) for all the projects. In order for these binaries to function properly, your system must have the DirectX 5.0 (or higher) runtime libraries installed (available from <A HREF="http://www.microsoft.com/directx/">Microsoft</A>). Further, the <I><B>effects</B></I> project requires that your soundcard and drivers provide full duplex mode capabilities. Visual C++ .NET project files are provided in each project directory as well should you wish to compile your own binaries. It is important to link with the non-debug libraries when compiling "release" program versions and debug libraries when compiling "debug" program versions.</LI>
|
||||
|
||||
<LI><B>Unix (and MinGW) Systems:</B> A GNU <TT>configure</TT> shell script is included in the distribution for unix-based systems. From the top-level distribution directory, type <TT>'./configure'</TT> and the script will create <TT>Makefiles</TT> in each project directory specific to the characteristics of the host computer. Then from within any given project directory (example <TT>demo</TT>), type <TT>'make'</TT> to compile the project. In addition, an STK library can be compiled from within the <TT>src</TT> directory.
|
||||
<LI><B>WindowsNT:</B> DirectX support for NT is inadequate, so it is not possible to use STK under WindowsNT with realtime DirectX support. It may be possible to use STK under WindowsNT with realtime ASIO support, though this has not been tested.</LI>
|
||||
|
||||
<LI><B>Unix Systems:</B> A GNU <TT>configure</TT> shell script is included in the distribution for unix-based systems. From the top-level distribution directory, type <TT>'./configure'</TT> and the script will create <TT>Makefiles</TT> in each project directory specific to the characteristics of the host computer. Then from within any given project directory (example <TT>demo</TT>), type <TT>'make'</TT> to compile the project. In addition, an STK library can be compiled from within the <TT>src</TT> directory.
|
||||
|
||||
Several options can be supplied to the <TT>configure</TT> script to customize the build behavior:
|
||||
<UL>
|
||||
@@ -57,9 +56,7 @@ Several options can be supplied to the <TT>configure</TT> script to customize th
|
||||
<LI><TT>--with-alsa</TT> to choose native ALSA API support (default, linux only)</LI>
|
||||
<LI><TT>--with-oss</TT> to choose native OSS audio API support (linux only, no native OSS MIDI support)</LI>
|
||||
<LI><TT>--with-jack</TT> to choose native JACK API support (linux and Macintosh OS-X)</LI>
|
||||
<LI><TT>--with-core</TT> to choose CoreAudio API support (Macintosh OS-X)</LI>
|
||||
<LI><TT>--with-asio</TT> to choose ASIO Audio API support (Windows)</LI>
|
||||
<LI><TT>--with-ds</TT> to choose Windows DirectSound Audio API support (Windows)</LI>
|
||||
<LI><TT>--with-core</TT> to choose Core Audio API support (Macintosh OS-X)</LI>
|
||||
</UL>
|
||||
<P>
|
||||
Note that it is possible to specify as many of the "--with-" options as desired to compile multi-API support. In addition, it is possible to specify the location of the STK rawwaves and the STK include path as follows:
|
||||
@@ -75,14 +72,11 @@ For those who wish to create their own system-specific <TT>Makefiles</TT>:
|
||||
<UL>
|
||||
<LI><B>Linux:</B> Realtime audio support is enabled with either the <TT>__LINUX_ALSA__</TT>, <TT>__UNIX_JACK__</TT>, and/or <TT>__LINUX_OSS__</TT> preprocessor definitions, which are used to select the underlying audio system API(s). Because the ALSA library is now integrated into the standard Linux kernel, it is the default audio/MIDI API with STK versions 4.2 and higher. The <TT>__LINUX_ALSASEQ__</TT> preprocessor definition must be included for MIDI support. Note that native OSS MIDI support no longer exists in RtMidi. If the <TT>__LINUX_OSS__</TT> preprocessor definition is specified, only OSS (version 4.0) audio support will be compiled and RtMidi will still be compiled using the ALSA API (assuming the <TT>__LINUX_ALSASEQ__</TT> definition is defined). For this reason, STK now requires the <TT>asound</TT> library for realtime support. Realtime programs must also link with the <TT>pthread</TT> library. In addition, the <TT>__LITTLE_ENDIAN__</TT> preprocessor definition is necessary if compiling on a little-endian system. See the README-Linux file for further system configuration information.</LI>
|
||||
|
||||
<LI><B>Macintosh OS X:</B> Realtime support is enabled with the <TT>__MACOSX_CORE__</TT> and <TT>__UNIX_JACK__</TT> preprocessor definitions, which incorporate the CoreAudio audio/MIDI API and/or the JACK API. Realtime programs must also link with the <TT>pthread</TT> library and the <TT>CoreAudio</TT>, <TT>CoreMIDI</TT>, and <TT>CoreFoundation</TT> frameworks (for CoreAudio support) and/or the JACK library. See the README-MacOSX file for further system configuration information.</LI>
|
||||
<LI><B>Macintosh OS X:</B> Realtime support is enabled with the <TT>__MACOSX_CORE__</TT> and <TT>__UNIX_JACK__</TT> preprocessor definitions, which incorporate the CoreAudio audio/MIDI API and/or the JACK API. Realtime programs must also link with the <TT>pthread</TT> library and the <TT>CoreAudio</TT>, <TT>CoreMIDI</TT>, and <TT>CoreFoundation</TT> frameworks (for Core Audio support) and/or the JACK library. See the README-MacOSX file for further system configuration information.</LI>
|
||||
|
||||
<LI><B>Generic (non-realtime):</B> Most STK classes are operating system <I>independent</I> and can be compiled using any current C++ compiler. STK assumes big-endian host byte order by default, so if your system is little-endian (i.e. Intel processor), you must provide the <TT>__LITTLE_ENDIAN__</TT> preprocessor definition to your compiler. The <I><B>demo</B></I> project will compile without realtime support, allowing the use of SKINI scorefiles for input control and output to a variety of soundfile formats. The following classes <I>cannot</I> be used without realtime support: RtAudio, RtWvIn, RtWvOut, RtDuplex, RtMidi, Socket, Thread, Mutex, TcpWvIn, TcpWvOut. Because of this, it is not possible to compile the <I><B>effects</B></I>, <I><B>ragamatic</B></I>, and most of the <I><B>examples</B></I> projects for non-realtime use.</LI>
|
||||
</UL>
|
||||
|
||||
\section debug Debugging:
|
||||
|
||||
When developing applications with STK, it is recommended that you define the preprocessor definition <TT>_STK_DEBUG_</TT> when compiling (or specify the <TT>--enable-debug</TT> option to the <TT>configure</TT> script). This will enable all levels of function argument and error checking within the STK classes. Without this definition, argument checking does not occur in functions that are expected to be called frequently in an iterative manner.
|
||||
|
||||
\section control Control Data:
|
||||
|
||||
@@ -91,10 +85,11 @@ All STK programs in this distribution take input control data in the form of <A
|
||||
<OL>
|
||||
<LI>Redirect or pipe SKINI scorefiles to an executable.</LI>
|
||||
<LI>Pipe realtime SKINI input messages to an executable (not possible under Windows95/98).</LI>
|
||||
<LI>Socket realtime SKINI input messages to an executable.</LI>
|
||||
<LI>Acquire realtime MIDI messages from a MIDI port on your computer.</LI>
|
||||
</OL>
|
||||
|
||||
<A HREF="https://www.tcl.tk/">Tcl/Tk</A> graphical user interfaces (GUI) are provided with this distribution that can generate realtime SKINI messages. Note that the Messager class allows multiple simultaneous socket client connections, together with MIDI and/or piped input. The <I><B>Md2Skini</B></I> program (in the <I><B>demo</B></I> directory) is mostly obsolete but can be used to create SKINI scorefiles from realtime MIDI input.
|
||||
<A HREF="http://dev.scriptics.com">Tcl/Tk</A> graphical user interfaces (GUI) are provided with this distribution that can generate realtime SKINI messages. Note that the Messager class allows multiple simultaneous socket client connections, together with MIDI and/or piped input. The <I><B>Md2Skini</B></I> program (in the <I><B>demo</B></I> directory) is mostly obsolete but can be used to create SKINI scorefiles from realtime MIDI input.
|
||||
|
||||
|
||||
\section voices Demo: STK Instruments
|
||||
@@ -134,23 +129,23 @@ The <I><B>demo</B></I> project demonstrates the behavior of all the distributed
|
||||
|
||||
See the information above with respect to compiling STK for non-realtime use.
|
||||
|
||||
In non-realtime mode, it is assumed that input control messages are provided from a SKINI scorefile and that audio output is written to a soundfile (.snd, .wav, .aif, .mat, .raw). A number of SKINI scorefiles are provided in the <I>scores</I> directory of the <I><B>demo</B></I> project. Assuming a successful compilation of the <I><B>stk-demo</B></I> program, typing:
|
||||
In non-realtime mode, it is assumed that input control messages are provided from a SKINI scorefile and that audio output is written to a soundfile (.snd, .wav, .aif, .mat, .raw). A number of SKINI scorefiles are provided in the <I>scores</I> directory of the <I><B>demo</B></I> project. Assuming a successful compilation of the <I><B>demo</B></I> program, typing:
|
||||
|
||||
\code
|
||||
stk-demo BeeThree -ow myfile.wav -if scores/bookert.ski
|
||||
demo BeeThree -ow myfile.wav -if scores/bookert.ski
|
||||
\endcode
|
||||
|
||||
from the <I><B>demo</B></I> directory will play the scorefile <I>bookert.ski</I> using the STK BeeThree instrument and write the resulting audio data to a WAV formatted soundfile called "myfile.wav" (note that you may need to append <TT>./</TT> to the program name if your default shell setup is not set to look in the current directory). Typing <TT>stk-demo</TT> without any arguments will provide a full program usage description.
|
||||
from the <I><B>demo</B></I> directory will play the scorefile <I>bookert.ski</I> using the STK BeeThree instrument and write the resulting audio data to a WAV formatted soundfile called "myfile.wav" (note that you may need to append <TT>./</TT> to the program name if your default shell setup is not set to look in the current directory). Typing <TT>demo</TT> without any arguments will provide a full program usage description.
|
||||
|
||||
|
||||
\section rt Demo: Realtime Use
|
||||
|
||||
STK realtime audio and MIDI input/output and realtime SKINI control input via socketing support is provided for Linux, Mac OS-X, and Windows95 and later operating systems. STK realtime SKINI control input via piping is possible under Linux, Mac OS X, and Windows2000 and later only.
|
||||
STK realtime audio and MIDI input/output and realtime SKINI control input via socketing support is provided for Linux, Mac OS-X, and Windows95/98/2000/XP operating systems. STK realtime SKINI control input via piping is possible under Linux, Mac OS X, and Windows2000/XP only.
|
||||
<P>
|
||||
Control input and audio output options are typically specified as command-line arguments to STK programs. For example, the <I><B>stk-demo</B></I> program is invoked as:
|
||||
Control input and audio output options are typically specified as command-line arguments to STK programs. For example, the <I><B>demo</B></I> program is invoked as:
|
||||
|
||||
\code
|
||||
stk-demo instrument flags
|
||||
demo instrument flags
|
||||
\endcode
|
||||
|
||||
where instruments include those described above and flags can be any or all of:
|
||||
@@ -161,45 +156,56 @@ where instruments include those described above and flags can be any or all of:
|
||||
<LI><I>-om \<file name\></I> for MAT-file output,</LI>
|
||||
<LI><I>-if \<file name\></I> for a SKINI formatted control file,</LI>
|
||||
<LI><I>-ip</I> for realtime SKINI control input via piping,</LI>
|
||||
<LI><I>-is \<port\></I> for realtime SKINI control input via socketing (with an optional port number),</LI>
|
||||
<LI><I>-im \<port\></I> for MIDI control input (with optional port, -1 = virtual port where possible),</LI>
|
||||
<LI><I>-s RATE</I> to specify a sample rate,</LI>
|
||||
<LI><I>-n NUMBER</I> to specify multivoice polyphony</LI>
|
||||
</UL>
|
||||
The <i>-ip</i> flag must be used when piping realtime SKINI control data to an STK program. The <i>-im</i> flag must be used to read MIDI control input from your MIDI port. Note that you can use both input types simultaneously.
|
||||
The <i>-ip</i> and <i>-is</i> flags must be used when piping or socketing realtime SKINI control data to an STK program. The <i>-im</i> flag must be used to read MIDI control input from your MIDI port. Note that you can use all three input types simultaneously.
|
||||
|
||||
Assuming a successful compilation of the <I><B>stk-demo</B></I> program, typing:
|
||||
Assuming a successful compilation of the <I><B>demo</B></I> program, typing:
|
||||
|
||||
\code
|
||||
stk-demo BeeThree -or -if scores/bookert.ski
|
||||
demo BeeThree -or -if scores/bookert.ski
|
||||
\endcode
|
||||
|
||||
from the <I><B>demo</B></I> directory will play the scorefile <I>bookert.ski</I> using the STK BeeThree instrument and stream the resulting audio data in realtime to the audio output channel of your computer. Typing <TT>stk-demo</TT> without any arguments will provide a full program usage description.
|
||||
from the <I><B>demo</B></I> directory will play the scorefile <I>bookert.ski</I> using the STK BeeThree instrument and stream the resulting audio data in realtime to the audio output channel of your computer. Typing <TT>demo</TT> without any arguments will provide a full program usage description.
|
||||
|
||||
|
||||
\section tcl Realtime Control Input using Tcl/Tk Graphical User Interfaces:
|
||||
|
||||
There are a number of <A HREF="https://www.tcl.tk/">Tcl/Tk</A> GUIs supplied with the STK projects. These scripts require Tcl/Tk version 8.0 or later, which can be downloaded for free over the WWW. On Unix and Windows2000 and later platforms, you can run the various executable scripts (e.g. StkDemo.bat) provided with each project to start everything up (you may need to symbolically link the wishXX executable to the name <I>wish</I>). The Physical.bat script just implements the following command-line sequence:
|
||||
There are a number of <A HREF="http://dev.scriptics.com">Tcl/Tk</A> GUIs supplied with the STK projects. These scripts require Tcl/Tk version 8.0 or later, which can be downloaded for free over the WWW. On Unix and Windows2000/XP platforms, you can run the various executable scripts (e.g. StkDemo.bat) provided with each project to start everything up (you may need to symbolically link the wishXX executable to the name <I>wish</I>). The Physical.bat script just implements the following command-line sequence:
|
||||
|
||||
\code
|
||||
wish < tcl/Physical.tcl | stk-demo Clarinet -or -ip
|
||||
wish < tcl/Physical.tcl | demo Clarinet -or -ip
|
||||
\endcode
|
||||
|
||||
On WindowsXX and Unix platforms, the following operations are necessary to establish a socket connection between the Tcl/Tk GUI and the STK program:
|
||||
<OL>
|
||||
<LI>Open a DOS shell and start the STK program with the <I>-is</I> flag (ex. <I><B>demo Clarinet -or -is</B></I>).</LI>
|
||||
<LI>Open the Tcl/Tk GUI (e.g. tcl/Physical.tcl) by double-clicking on it, or type <TT>wish < tcl/Physical.tcl</TT> in another DOS shell.</LI>
|
||||
<LI>Establish the socket connection by selecting <I>Socket</I> under the Communications menu item in the Tcl/Tk GUI.</LI>
|
||||
</OL>
|
||||
|
||||
Note that it is possible to specify a hostname when establishing the socket connection from the socket client. Thus, the STK socket server program and the Tcl/Tk GUI need not necessarily reside on the same computer.
|
||||
|
||||
|
||||
\section midi Realtime MIDI Control Input:
|
||||
|
||||
On all supported realtime platforms, you can direct realtime MIDI input to the STK Clarinet by typing:
|
||||
|
||||
\code
|
||||
stk-demo Clarinet -or -im
|
||||
demo Clarinet -or -im
|
||||
\endcode
|
||||
|
||||
This will attempt to use the default MIDI port for input. An optional MIDI port number can be specified after the <TT>-im</TT> flag. Valid MIDI ports are numbered from 0 (default) and higher. On Linux and Macintosh OS-X systems, it is possible to open a virtual MIDI input port (that other software applications can connect to) by specifying a port identifier of -1.
|
||||
|
||||
\section polyphony Polyphony:
|
||||
|
||||
The <I><B>stk-demo</B></I> program supports an arbitrary number of voices via the <TT>-n NUMBER</TT> command-line flag and argument. For example, you can play eight BeeThree instruments with realtime output and control them from a MIDI device by typing:
|
||||
The <I><B>demo</B></I> program supports an arbitrary number of voices via the <TT>-n NUMBER</TT> command-line flag and argument. For example, you can play eight BeeThree instruments with realtime output and control them from a MIDI device by typing:
|
||||
|
||||
\code
|
||||
stk-demo BeeThree -n 8 -or -im
|
||||
demo BeeThree -n 8 -or -im
|
||||
\endcode
|
||||
|
||||
*/
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
STK: A ToolKit of Audio Synthesis Classes and Instruments in C++
|
||||
|
||||
By Perry R. Cook and Gary P. Scavone, 1995--2019.
|
||||
By Perry R. Cook and Gary P. Scavone, 1995-2007.
|
||||
|
||||
STK Classes - See the HTML documentation in the html directory for complete information.
|
||||
|
||||
|
||||
.- Generator - (Modulate, Noise, SingWave, Envelope, ADSR, Asymp, SineWave, Blit, BlitSaw, BlitSquare, Granulate)
|
||||
.- Generator - (Modulate, Noise, SingWave, Envelope, SineWave, Blit, BlitSaw, BlitSquare, Granulate)
|
||||
| | |
|
||||
| SubNoise ADSR
|
||||
| Asymp
|
||||
|
|
||||
|- Function - (BowTable, JetTable, ReedTable)
|
||||
|
|
||||
@@ -13,28 +16,29 @@ STK Classes - See the HTML documentation in the html directory for complete info
|
||||
|
|
||||
|- WvIn - (FileWvIn, RtWvIn, InetWvIn)
|
||||
| |
|
||||
| FileLoop
|
||||
| WaveLoop
|
||||
|
|
||||
|- WvOut - (FileWvOut, RtWvOut, TcpWvOut)
|
||||
|
|
||||
|- Filter - (OnePole, OneZero, TwoPole, TwoZero, PoleZero, Biquad, FormSwep, Delay, DelayL, DelayA, TapDelay)
|
||||
|- Filter - (OnePole, OneZero, Delay, TwoPole, TwoZero, PoleZero, Biquad)
|
||||
| | |
|
||||
| DelayL FormSwep
|
||||
| DelayA
|
||||
|
|
||||
|- RtAudio, RtMidi, Socket, Thread, Mutex
|
||||
| |
|
||||
Stk -| UdpSocket
|
||||
| TcpServer
|
||||
| TcpClient
|
||||
|- RtAudio, RtMidi, RtDuplex, Socket, Thread, Mutex
|
||||
| |
|
||||
Stk -| UdpSocket
|
||||
| TcpServer
|
||||
| TcpClient
|
||||
|
|
||||
|- StkFrames
|
||||
|
|
||||
|- Effect - (Echo, Chorus, PitShift, LentPitShift, PRCRev, JCRev, NRev, FreeVerb)
|
||||
|- Effect - (Echo, Chorus, PitShift, PRCRev, JCRev, NRev)
|
||||
|
|
||||
|- Voicer, Message, Skini, MidiFileIn, Phonemes, Sphere, Vector3D
|
||||
|
|
||||
|- Messager
|
||||
|
|
||||
|- Twang, Guitar
|
||||
|
|
||||
| .- FM - (HevyMetl, PercFlut, Rhodey, Wurley, TubeBell, BeeThree, FMVoices)
|
||||
| |
|
||||
| |- Modal - ModalBar
|
||||
@@ -45,11 +49,11 @@ Stk -| UdpSocket
|
||||
| |
|
||||
| |- Resonate
|
||||
| |
|
||||
| |- Mandolin
|
||||
| |- PluckedTwo - Mandolin
|
||||
.- Instrmnt -|
|
||||
|- Drummer
|
||||
|
|
||||
|- Clarinet, BlowHole, Saxofony, Flute, Brass, BlowBotl, Bowed, Plucked, StifKarp, Sitar, Recorder
|
||||
|- Clarinet, BlowHole, Saxofony, Flute, Brass, BlowBotl, Bowed, Plucked, StifKarp, Sitar
|
||||
|
|
||||
|- Shakers
|
||||
|
|
||||
@@ -64,33 +68,34 @@ Stk -| UdpSocket
|
||||
|
||||
Master Class: Stk.cpp Sample rate, byte-swapping, error handling functionality
|
||||
|
||||
Sources: Generator.h Abstract base class for various source signal classes
|
||||
Function.h Abstract base class for various input/output mapping classes
|
||||
Sources: Generator.cpp Abstract base class for various source signal classes
|
||||
Function.cpp Abstract base class for various input/output mapping classes
|
||||
Envelope.cpp Linearly goes to target by rate
|
||||
ADSR.cpp ADSR envelope
|
||||
ADSR.cpp ADSR flavor of Envelope
|
||||
Asymp.cpp Exponentially approaches target
|
||||
Noise.cpp Random number generator
|
||||
SubNoise.cpp Random numbers each N samples
|
||||
SineWave.cpp Sinusoidal oscillator with internally computed static table
|
||||
Blit.cpp Bandlimited impulse train
|
||||
BlitSaw.cpp Bandlimited sawtooth generator
|
||||
BlitSquare.cpp Bandlimited square wave generator
|
||||
Granulate.cpp Granular synthesis class that processes a monophonic audio file
|
||||
FileRead.cpp Audio file input class (no internal data storage) for RAW, WAV, SND (AU), AIFF, MAT-file files
|
||||
WvIn.h Abstract base class for audio data input classes
|
||||
WvIn.cpp Abstract base class for audio data input classes
|
||||
FileWvIn.cpp Audio file input interface class with interpolation
|
||||
FileLoop.cpp Wavetable looping (subclass of FileWvIn)
|
||||
WaveLoop.cpp Wavetable looping (subclass of FileWvIn)
|
||||
RtWvIn.cpp Realtime audio input class (subclass of WvIn)
|
||||
InetWvIn.cpp Audio streaming (socket server) input class (subclass of WvIn)
|
||||
|
||||
Sinks: FileWrite.cpp Audio file output class (no internal data storage) for RAW, WAV, SND (AU), AIFF, MAT-file files
|
||||
WvOut.h Abstract base class for audio data output classes
|
||||
WvOut.cpp Abstract base class for audio data output classes
|
||||
FileWvOut.cpp Audio file output interface class to FileWrite
|
||||
RtWvOut.cpp Realtime audio output class (subclass of WvOut)
|
||||
InetWvOut.cpp Audio streaming (socket client) output class (subclass of WvOut)
|
||||
|
||||
Filters: Filter.h Filter master class
|
||||
Iir.h General infinite-impulse response filter
|
||||
Fir.h General finite-impulse response filter
|
||||
Duplex: RtDuplex.cpp Synchronous realtime audio input/output class (blocking)
|
||||
|
||||
Filters: Filter.cpp Filter master class
|
||||
OneZero.cpp One zero filter
|
||||
OnePole.cpp One pole filter
|
||||
PoleZero.cpp One pole/one zero filter
|
||||
@@ -99,16 +104,15 @@ Filters: Filter.h Filter master class
|
||||
BiQuad.cpp Two pole/two zero filter
|
||||
FormSwep.cpp Sweepable biquad filter (goes to target by rate)
|
||||
Delay.cpp Non-interpolating delay line class
|
||||
DelayL.cpp Linearly interpolating delay line
|
||||
DelayA.cpp Allpass interpolating delay line
|
||||
TapDelay.cpp Multi-tap non-interpolating delay line class
|
||||
DelayL.cpp Linearly interpolating delay line (subclass of Delay)
|
||||
DelayA.cpp Allpass interpolating delay line (subclass of Delay)
|
||||
|
||||
Non-Linear: JetTabl.h Cubic jet non-linearity
|
||||
BowTabl.h x^(-3) Bow non-linearity
|
||||
ReedTabl.h One breakpoint saturating reed non-linearity
|
||||
Non-Linear: JetTabl.cpp Cubic jet non-linearity
|
||||
BowTabl.cpp x^(-3) Bow non-linearity
|
||||
ReedTabl.cpp One breakpoint saturating reed non-linearity
|
||||
|
||||
Derived: Modulate.cpp Periodic and random vibrato: WvIn, Noise, OnePole
|
||||
SingWave.cpp Looping wave table with randomness: Modulate, FileLoop, Envelope
|
||||
Derived: Modulate.cpp Periodic and random vibrato: WvIn, SubNoise, OnePole
|
||||
SingWave.cpp Looping wave table with randomness: Modulate, WaveLoop, Envelope
|
||||
|
||||
|
||||
********** INSTRUMENTS AND ALGORITHMS **************
|
||||
@@ -117,49 +121,45 @@ Each class is listed either with some of the unit generators it uses,
|
||||
or in terms of the algorithm it implements. All inherit from Instrmnt,
|
||||
which inherits from Stk.
|
||||
|
||||
Simple.cpp Simple Instrument Pulse oscillator + resonant filtered noise
|
||||
Plucked.cpp Basic Plucked String DelayA, OneZero, OnePole, Noise
|
||||
Twang.cpp Not So Basic Pluck DelayL, DlineA, Fir, allows commuted synthesis
|
||||
Mandolin.cpp Commuted Mandolin 2 Twangs
|
||||
Guitar.cpp N-String Guitar N Twangs, bridge coupling, allows feedback and body filter
|
||||
StifKarp.cpp Plucked String with Stiffness DelayA, DelayL, OneZero, BiQuad, Noise
|
||||
Bowed.cpp So So Bowed String DelayL, BowTabl, OnePole, BiQuad, WaveLoop, ADSR
|
||||
Brass.cpp Not So Bad Brass Instrument DelayA, BiQuad, PoleZero, ADSR, WaveLoop
|
||||
Clarinet.cpp Pretty Good Clarinet DelayL, ReedTabl, OneZero, Envelope, Noise, WaveLoop
|
||||
BlowHole.cpp Clarinet w/ Tone & Vent Holes DelayL, ReedTabl, OneZero, Envelope, Noise, WaveLoop, PoleZero
|
||||
Saxofony.cpp A Faux Saxophone DelayL, ReedTabl, OneZero, Envelope, Noise, WaveLoop
|
||||
Flute.cpp Pretty Good Flute JetTabl, DelayL, OnePole, PoleZero, Noise, ADSR, WaveLoop
|
||||
Recorder.cpp A More Physical Flute DelayL, IIR, Noise, ADSR, SineWave
|
||||
BlowBotl.cpp Blown Bottle JetTabl, BiQuad, PoleZero, Noise, ADSR, WaveLoop
|
||||
BandedWG.cpp Banded Waveguide Meta-Object Delay, BowTabl, ADSR, BiQuad
|
||||
Modal.cpp N Resonances Envelope, WaveLoop, BiQuad, OnePole
|
||||
ModalBar.cpp Various presets 4 Resonance Models
|
||||
FM.cpp N Operator FM Master ADSR, WaveLoop, TwoZero
|
||||
HevyMetl.cpp Distorted FM Synthesizer 3 Cascade with FB Modulator
|
||||
PercFlut.cpp Percussive Flute 3 Cascade Operators
|
||||
Rhodey.cpp Rhodes-Like Electric Piano 2 Parallel Simple FMs
|
||||
Wurley.cpp Wurlitzer Electric Piano 2 Parallel Simple FMs
|
||||
TubeBell.cpp Classic FM Bell 2 Parallel Simple FMs
|
||||
FMVoices.cpp 3 Formant FM Voice 3 Carriers Share 1 Modulator
|
||||
VoicForm.cpp 4 Formant Voice Synthesis FormSwep, SingWave, OnePole, OneZero, Envelope, Noise
|
||||
BeeThree.cpp Cheezy Additive Organ 4 Oscillators Additive
|
||||
Sampler.cpp Sampling Synthesizer 5 each ADSR, WvIn, WaveLoop, OnePole
|
||||
Moog.cpp Swept Filter Sampler with Swept Filter
|
||||
Resonate.cpp Filtered Noise ADSR, BiQuad, Noise
|
||||
Drummer.cpp Drum Synthesizer Bunch of WvIns, and OnePole
|
||||
Shakers.cpp PhISM statistical model for shakers and real-world sound effects
|
||||
Mesh2D.cpp Two-dimensional, rectilinear digital waveguide mesh.
|
||||
Whistle.cpp Hybrid physical/spectral model of a police whistle.
|
||||
Simple.cpp Simple Instrument Pulse oscillator + resonant filtered noise
|
||||
Plucked.cpp Basic Plucked String DelayA, OneZero, OnePole, Noise
|
||||
StifKarp.cpp Plucked String with Stiffness DelayA, DelayL, OneZero, BiQuad, Noise
|
||||
PluckTwo.cpp Not So Basic Pluck DelayL, DlineA, OneZero
|
||||
Mandolin.cpp Commuted Mandolin <<flavor of PluckTwo>>
|
||||
Bowed.cpp So So Bowed String DelayL, BowTabl, OnePole, BiQuad, WaveLoop, ADSR
|
||||
Brass.cpp Not So Bad Brass Instrument DelayA, BiQuad, PoleZero, ADSR, WaveLoop
|
||||
Clarinet.cpp Pretty Good Clarinet DelayL, ReedTabl, OneZero, Envelope, Noise, WaveLoop
|
||||
BlowHole.cpp Clarinet w/ Tone & Vent Holes DelayL, ReedTabl, OneZero, Envelope, Noise, WaveLoop, PoleZero
|
||||
Saxofony.cpp A Faux Saxophone DelayL, ReedTabl, OneZero, Envelope, Noise, WaveLoop
|
||||
Flute.cpp Pretty Good Flute JetTabl, DelayL, OnePole, PoleZero, Noise, ADSR, WaveLoop
|
||||
BlowBotl.cpp Blown Bottle JetTabl, BiQuad, PoleZero, Noise, ADSR, WaveLoop
|
||||
BandedWG.cpp Banded Waveguide Meta-Object Delay, BowTabl, ADSR, BiQuad
|
||||
Modal.cpp N Resonances Envelope, WaveLoop, BiQuad, OnePole
|
||||
ModalBar.cpp Various presets 4 Resonance Models
|
||||
FM.cpp N Operator FM Master ADSR, WaveLoop, TwoZero
|
||||
HevyMetl.cpp Distorted FM Synthesizer 3 Cascade with FB Modulator
|
||||
PercFlut.cpp Percussive Flute 3 Cascade Operators
|
||||
Rhodey.cpp Rhodes-Like Electric Piano 2 Parallel Simple FMs
|
||||
Wurley.cpp Wurlitzer Electric Piano 2 Parallel Simple FMs
|
||||
TubeBell.cpp Classic FM Bell 2 Parallel Simple FMs
|
||||
FMVoices.cpp 3 Formant FM Voice 3 Carriers Share 1 Modulator
|
||||
VoicForm.cpp 4 Formant Voice Synthesis FormSwep, SingWave, OnePole, OneZero, Envelope, Noise
|
||||
BeeThree.cpp Cheezy Additive Organ 4 Oscillators Additive
|
||||
Sampler.cpp Sampling Synthesizer 5 each ADSR, WvIn, WaveLoop, OnePole
|
||||
Moog.cpp Swept Filter Sampler with Swept Filter
|
||||
Resonate.cpp Filtered Noise ADSR, BiQuad, Noise
|
||||
Drummer.cpp Drum Synthesizer Bunch of WvIns, and OnePole
|
||||
Shakers.cpp PhISM statistical model for shakers and real-world sound effects
|
||||
Mesh2D.cpp Two-dimensional, rectilinear digital waveguide mesh.
|
||||
Whistle.cpp Hybrid physical/spectral model of a police whistle.
|
||||
|
||||
Effect.h Effects Processor Base Class
|
||||
JCRev.cpp Chowning Reverberator 3 series allpass units, 4 parallel combs, 2 stereo delays
|
||||
NRev.cpp Another famous CCRMA Reverb 8 allpass, 6 parallel comb filters
|
||||
PRCRev.cpp Dirt Cheap Reverb by Cook 2 allpass, 2 comb filters
|
||||
FreeVerb.cpp Jezar at Dreampoint's FreeVerb 4 allpass, 8 lowpass comb filters
|
||||
Flanger.cpp Flanger Effects Processor DelayL, WaveLoop
|
||||
Chorus.cpp Chorus Effects Processor DelayL, WaveLoop
|
||||
PitShift.cpp Cheap Pitch Shifter DelayL
|
||||
LentPitShift.cpp Pitch Shifter based Lent Algorithm
|
||||
Effect.cpp Effects Processor Base Class
|
||||
JCRev.cpp Chowning Reverberator 3 series allpass units, 4 parallel combs, 2 stereo delays
|
||||
NRev.cpp Another famous CCRMA Reverb 8 allpass, 6 parallel comb filters
|
||||
PRCRev.cpp Dirt Cheap Reverb by Cook 2 allpass, 2 comb filters
|
||||
Flanger.cpp Flanger Effects Processor DelayL, WaveLoop
|
||||
Chorus.cpp Chorus Effects Processor DelayL, WaveLoop
|
||||
PitShift.cpp Cheap Pitch Shifter DelayL
|
||||
|
||||
|
||||
*********** OTHER SUPPORT CLASSES AND FILES **************
|
||||
@@ -174,7 +174,7 @@ effects.cpp Effects demonstration program
|
||||
ragamatic.cpp Nirvana just waiting to happen
|
||||
|
||||
Skini.cpp SKINI file/message parser object
|
||||
SKINImsg.h #defines for often used and universal MIDI/SKINI symbols
|
||||
SKINItbl.h Table of SKINI messages
|
||||
SKINI.msg #defines for often used and universal MIDI/SKINI symbols
|
||||
SKINI.tbl Table of SKINI messages
|
||||
|
||||
|
||||
|
||||
78
doc/html/ADSR_8h-source.html
Normal file
78
doc/html/ADSR_8h-source.html
Normal file
@@ -0,0 +1,78 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>ADSR.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00016"></a>00016 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00017"></a>00017
|
||||
<a name="l00018"></a>00018 <span class="preprocessor">#ifndef STK_ADSR_H</span>
|
||||
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define STK_ADSR_H</span>
|
||||
<a name="l00020"></a>00020 <span class="preprocessor"></span>
|
||||
<a name="l00021"></a>00021 <span class="preprocessor">#include "Envelope.h"</span>
|
||||
<a name="l00022"></a>00022
|
||||
<a name="l00023"></a><a class="code" href="classADSR.html">00023</a> <span class="keyword">class </span><a class="code" href="classADSR.html">ADSR</a> : <span class="keyword">public</span> <a class="code" href="classEnvelope.html">Envelope</a>
|
||||
<a name="l00024"></a>00024 {
|
||||
<a name="l00025"></a>00025 <span class="keyword">public</span>:
|
||||
<a name="l00026"></a>00026
|
||||
<a name="l00028"></a>00028 <span class="keyword">enum</span> { ATTACK, DECAY, SUSTAIN, RELEASE, DONE };
|
||||
<a name="l00029"></a>00029
|
||||
<a name="l00031"></a>00031 <a class="code" href="classADSR.html#a0">ADSR</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00034"></a>00034 <a class="code" href="classADSR.html#a1">~ADSR</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00037"></a>00037 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a2">keyOn</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00038"></a>00038
|
||||
<a name="l00040"></a>00040 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a3">keyOff</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00043"></a>00043 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a4">setAttackRate</a>(StkFloat rate);
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00046"></a>00046 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a5">setDecayRate</a>(StkFloat rate);
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00049"></a>00049 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a6">setSustainLevel</a>(StkFloat level);
|
||||
<a name="l00050"></a>00050
|
||||
<a name="l00052"></a>00052 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a7">setReleaseRate</a>(StkFloat rate);
|
||||
<a name="l00053"></a>00053
|
||||
<a name="l00055"></a>00055 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a8">setAttackTime</a>(StkFloat time);
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00058"></a>00058 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a9">setDecayTime</a>(StkFloat time);
|
||||
<a name="l00059"></a>00059
|
||||
<a name="l00061"></a>00061 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a10">setReleaseTime</a>(StkFloat time);
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00064"></a>00064 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a11">setAllTimes</a>(StkFloat aTime, StkFloat dTime, StkFloat sLevel, StkFloat rTime);
|
||||
<a name="l00065"></a>00065
|
||||
<a name="l00067"></a>00067 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a12">setTarget</a>(StkFloat target);
|
||||
<a name="l00068"></a>00068
|
||||
<a name="l00070"></a>00070 <span class="keywordtype">int</span> <a class="code" href="classADSR.html#a13">getState</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
|
||||
<a name="l00071"></a>00071
|
||||
<a name="l00073"></a>00073 <span class="keywordtype">void</span> <a class="code" href="classADSR.html#a14">setValue</a>(StkFloat value);
|
||||
<a name="l00074"></a>00074
|
||||
<a name="l00075"></a>00075 <span class="keyword">protected</span>:
|
||||
<a name="l00076"></a>00076
|
||||
<a name="l00077"></a>00077 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00078"></a>00078 <span class="keywordtype">void</span> sampleRateChanged( StkFloat newRate, StkFloat oldRate );
|
||||
<a name="l00079"></a>00079
|
||||
<a name="l00080"></a>00080 StkFloat attackRate_;
|
||||
<a name="l00081"></a>00081 StkFloat decayRate_;
|
||||
<a name="l00082"></a>00082 StkFloat sustainLevel_;
|
||||
<a name="l00083"></a>00083 StkFloat releaseRate_;
|
||||
<a name="l00084"></a>00084 };
|
||||
<a name="l00085"></a>00085
|
||||
<a name="l00086"></a>00086 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
61
doc/html/Asymp_8h-source.html
Normal file
61
doc/html/Asymp_8h-source.html
Normal file
@@ -0,0 +1,61 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Asymp.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00024"></a>00024 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00025"></a>00025
|
||||
<a name="l00026"></a>00026 <span class="preprocessor">#ifndef STK_ASYMP_H</span>
|
||||
<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor">#define STK_ASYMP_H</span>
|
||||
<a name="l00028"></a>00028 <span class="preprocessor"></span>
|
||||
<a name="l00029"></a>00029 <span class="preprocessor">#include "Envelope.h"</span>
|
||||
<a name="l00030"></a>00030
|
||||
<a name="l00031"></a>00031 <span class="keyword">const</span> StkFloat TARGET_THRESHOLD = 0.000001;
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00033"></a><a class="code" href="classAsymp.html">00033</a> <span class="keyword">class </span><a class="code" href="classAsymp.html">Asymp</a> : <span class="keyword">public</span> <a class="code" href="classEnvelope.html">Envelope</a>
|
||||
<a name="l00034"></a>00034 {
|
||||
<a name="l00035"></a>00035 <span class="keyword">public</span>:
|
||||
<a name="l00036"></a>00036
|
||||
<a name="l00038"></a>00038 <a class="code" href="classAsymp.html#a0">Asymp</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00039"></a>00039
|
||||
<a name="l00041"></a>00041 <a class="code" href="classAsymp.html#a1">~Asymp</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00042"></a>00042
|
||||
<a name="l00044"></a>00044 <span class="keywordtype">void</span> <a class="code" href="classAsymp.html#a2">keyOn</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00045"></a>00045
|
||||
<a name="l00047"></a>00047 <span class="keywordtype">void</span> <a class="code" href="classAsymp.html#a3">keyOff</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00050"></a>00050
|
||||
<a name="l00056"></a>00056 <span class="keywordtype">void</span> <a class="code" href="classAsymp.html#a4">setTau</a>(StkFloat tau);
|
||||
<a name="l00057"></a>00057
|
||||
<a name="l00059"></a>00059 <span class="keywordtype">void</span> <a class="code" href="classAsymp.html#a5">setTime</a>(StkFloat time);
|
||||
<a name="l00060"></a>00060
|
||||
<a name="l00062"></a>00062 <span class="keywordtype">void</span> <a class="code" href="classAsymp.html#a6">setTarget</a>(StkFloat target);
|
||||
<a name="l00063"></a>00063
|
||||
<a name="l00064"></a>00064 <span class="keyword">protected</span>:
|
||||
<a name="l00065"></a>00065
|
||||
<a name="l00066"></a>00066 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00067"></a>00067 <span class="keywordtype">void</span> sampleRateChanged( StkFloat newRate, StkFloat oldRate );
|
||||
<a name="l00068"></a>00068
|
||||
<a name="l00069"></a>00069 StkFloat factor_;
|
||||
<a name="l00070"></a>00070 StkFloat constant_;
|
||||
<a name="l00071"></a>00071 };
|
||||
<a name="l00072"></a>00072
|
||||
<a name="l00073"></a>00073 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
93
doc/html/BandedWG_8h-source.html
Normal file
93
doc/html/BandedWG_8h-source.html
Normal file
@@ -0,0 +1,93 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>BandedWG.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00030"></a>00030 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00031"></a>00031
|
||||
<a name="l00032"></a>00032 <span class="preprocessor">#ifndef STK_BANDEDWG_H</span>
|
||||
<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define STK_BANDEDWG_H</span>
|
||||
<a name="l00034"></a>00034 <span class="preprocessor"></span>
|
||||
<a name="l00035"></a>00035 <span class="keyword">const</span> <span class="keywordtype">int</span> MAX_BANDED_MODES = 20;
|
||||
<a name="l00036"></a>00036
|
||||
<a name="l00037"></a>00037 <span class="preprocessor">#include "Instrmnt.h"</span>
|
||||
<a name="l00038"></a>00038 <span class="preprocessor">#include "DelayL.h"</span>
|
||||
<a name="l00039"></a>00039 <span class="preprocessor">#include "BowTable.h"</span>
|
||||
<a name="l00040"></a>00040 <span class="preprocessor">#include "ADSR.h"</span>
|
||||
<a name="l00041"></a>00041 <span class="preprocessor">#include "BiQuad.h"</span>
|
||||
<a name="l00042"></a>00042
|
||||
<a name="l00043"></a><a class="code" href="classBandedWG.html">00043</a> <span class="keyword">class </span><a class="code" href="classBandedWG.html">BandedWG</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
<a name="l00044"></a>00044 {
|
||||
<a name="l00045"></a>00045 <span class="keyword">public</span>:
|
||||
<a name="l00047"></a>00047 <a class="code" href="classBandedWG.html#a0">BandedWG</a>();
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00050"></a>00050 <a class="code" href="classBandedWG.html#a1">~BandedWG</a>();
|
||||
<a name="l00051"></a>00051
|
||||
<a name="l00053"></a>00053 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a2">clear</a>();
|
||||
<a name="l00054"></a>00054
|
||||
<a name="l00056"></a>00056 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a3">setStrikePosition</a>(StkFloat position);
|
||||
<a name="l00057"></a>00057
|
||||
<a name="l00059"></a>00059 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a4">setPreset</a>(<span class="keywordtype">int</span> preset);
|
||||
<a name="l00060"></a>00060
|
||||
<a name="l00062"></a>00062 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a5">setFrequency</a>(StkFloat frequency);
|
||||
<a name="l00063"></a>00063
|
||||
<a name="l00065"></a>00065 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a6">startBowing</a>(StkFloat amplitude, StkFloat rate);
|
||||
<a name="l00066"></a>00066
|
||||
<a name="l00068"></a>00068 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a7">stopBowing</a>(StkFloat rate);
|
||||
<a name="l00069"></a>00069
|
||||
<a name="l00071"></a>00071 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a8">pluck</a>(StkFloat amp);
|
||||
<a name="l00072"></a>00072
|
||||
<a name="l00074"></a>00074 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a9">noteOn</a>(StkFloat frequency, StkFloat amplitude);
|
||||
<a name="l00075"></a>00075
|
||||
<a name="l00077"></a>00077 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a10">noteOff</a>(StkFloat amplitude);
|
||||
<a name="l00078"></a>00078
|
||||
<a name="l00080"></a>00080 <span class="keywordtype">void</span> <a class="code" href="classBandedWG.html#a11">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
|
||||
<a name="l00081"></a>00081
|
||||
<a name="l00082"></a>00082 <span class="keyword">protected</span>:
|
||||
<a name="l00083"></a>00083
|
||||
<a name="l00084"></a>00084 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00085"></a>00085
|
||||
<a name="l00086"></a>00086 <span class="keywordtype">bool</span> doPluck_;
|
||||
<a name="l00087"></a>00087 <span class="keywordtype">bool</span> trackVelocity_;
|
||||
<a name="l00088"></a>00088 <span class="keywordtype">int</span> nModes_;
|
||||
<a name="l00089"></a>00089 <span class="keywordtype">int</span> presetModes_;
|
||||
<a name="l00090"></a>00090 <a class="code" href="classBowTable.html">BowTable</a> bowTable_;
|
||||
<a name="l00091"></a>00091 <a class="code" href="classADSR.html">ADSR</a> adsr_;
|
||||
<a name="l00092"></a>00092 <a class="code" href="classBiQuad.html">BiQuad</a> bandpass_[MAX_BANDED_MODES];
|
||||
<a name="l00093"></a>00093 <a class="code" href="classDelayL.html">DelayL</a> delay_[MAX_BANDED_MODES];
|
||||
<a name="l00094"></a>00094 StkFloat maxVelocity_;
|
||||
<a name="l00095"></a>00095 StkFloat modes_[MAX_BANDED_MODES];
|
||||
<a name="l00096"></a>00096 StkFloat frequency_;
|
||||
<a name="l00097"></a>00097 StkFloat baseGain_;
|
||||
<a name="l00098"></a>00098 StkFloat gains_[MAX_BANDED_MODES];
|
||||
<a name="l00099"></a>00099 StkFloat basegains_[MAX_BANDED_MODES];
|
||||
<a name="l00100"></a>00100 StkFloat excitation_[MAX_BANDED_MODES];
|
||||
<a name="l00101"></a>00101 StkFloat integrationConstant_;
|
||||
<a name="l00102"></a>00102 StkFloat velocityInput_;
|
||||
<a name="l00103"></a>00103 StkFloat bowVelocity_;
|
||||
<a name="l00104"></a>00104 StkFloat bowTarget_;
|
||||
<a name="l00105"></a>00105 StkFloat bowPosition_;
|
||||
<a name="l00106"></a>00106 StkFloat strikeAmp_;
|
||||
<a name="l00107"></a>00107 <span class="keywordtype">int</span> strikePosition_;
|
||||
<a name="l00108"></a>00108
|
||||
<a name="l00109"></a>00109 };
|
||||
<a name="l00110"></a>00110
|
||||
<a name="l00111"></a>00111 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
46
doc/html/BeeThree_8h-source.html
Normal file
46
doc/html/BeeThree_8h-source.html
Normal file
@@ -0,0 +1,46 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>BeeThree.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00033"></a>00033 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00035"></a>00035 <span class="preprocessor">#ifndef STK_BEETHREE_H</span>
|
||||
<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#define STK_BEETHREE_H</span>
|
||||
<a name="l00037"></a>00037 <span class="preprocessor"></span>
|
||||
<a name="l00038"></a>00038 <span class="preprocessor">#include "FM.h"</span>
|
||||
<a name="l00039"></a>00039
|
||||
<a name="l00040"></a><a class="code" href="classBeeThree.html">00040</a> <span class="keyword">class </span><a class="code" href="classBeeThree.html">BeeThree</a> : <span class="keyword">public</span> <a class="code" href="classFM.html">FM</a>
|
||||
<a name="l00041"></a>00041 {
|
||||
<a name="l00042"></a>00042 <span class="keyword">public</span>:
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00047"></a>00047 <a class="code" href="classBeeThree.html#a0">BeeThree</a>();
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00050"></a>00050 <a class="code" href="classBeeThree.html#a1">~BeeThree</a>();
|
||||
<a name="l00051"></a>00051
|
||||
<a name="l00053"></a>00053 <span class="keywordtype">void</span> <a class="code" href="classBeeThree.html#a2">noteOn</a>(StkFloat frequency, StkFloat amplitude);
|
||||
<a name="l00054"></a>00054
|
||||
<a name="l00055"></a>00055 <span class="keyword">protected</span>:
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00057"></a>00057 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00058"></a>00058 };
|
||||
<a name="l00059"></a>00059
|
||||
<a name="l00060"></a>00060 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
105
doc/html/BiQuad_8h-source.html
Normal file
105
doc/html/BiQuad_8h-source.html
Normal file
@@ -0,0 +1,105 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>BiQuad.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00013"></a>00013 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00014"></a>00014
|
||||
<a name="l00015"></a>00015 <span class="preprocessor">#ifndef STK_BIQUAD_H</span>
|
||||
<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#define STK_BIQUAD_H</span>
|
||||
<a name="l00017"></a>00017 <span class="preprocessor"></span>
|
||||
<a name="l00018"></a>00018 <span class="preprocessor">#include "Filter.h"</span>
|
||||
<a name="l00019"></a>00019
|
||||
<a name="l00020"></a><a class="code" href="classBiQuad.html">00020</a> <span class="keyword">class </span><a class="code" href="classBiQuad.html">BiQuad</a> : <span class="keyword">protected</span> <a class="code" href="classFilter.html">Filter</a>
|
||||
<a name="l00021"></a>00021 {
|
||||
<a name="l00022"></a>00022 <span class="keyword">public</span>:
|
||||
<a name="l00023"></a>00023
|
||||
<a name="l00025"></a>00025 <a class="code" href="classBiQuad.html#a0">BiQuad</a>();
|
||||
<a name="l00026"></a>00026
|
||||
<a name="l00028"></a>00028 <span class="keyword">virtual</span> <a class="code" href="classBiQuad.html#a1">~BiQuad</a>();
|
||||
<a name="l00029"></a>00029
|
||||
<a name="l00031"></a><a class="code" href="classBiQuad.html#a2">00031</a> <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a2">ignoreSampleRateChange</a>( <span class="keywordtype">bool</span> ignore = <span class="keyword">true</span> ) { ignoreSampleRateChange_ = ignore; };
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00034"></a>00034 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a3">clear</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00037"></a>00037 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a4">setB0</a>(StkFloat b0);
|
||||
<a name="l00038"></a>00038
|
||||
<a name="l00040"></a>00040 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a5">setB1</a>(StkFloat b1);
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00043"></a>00043 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a6">setB2</a>(StkFloat b2);
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00046"></a>00046 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a7">setA1</a>(StkFloat a1);
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00049"></a>00049 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a8">setA2</a>(StkFloat a2);
|
||||
<a name="l00050"></a>00050
|
||||
<a name="l00052"></a>00052
|
||||
<a name="l00063"></a>00063 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a9">setResonance</a>(StkFloat frequency, StkFloat radius, <span class="keywordtype">bool</span> normalize = <span class="keyword">false</span>);
|
||||
<a name="l00064"></a>00064
|
||||
<a name="l00066"></a>00066
|
||||
<a name="l00072"></a>00072 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a10">setNotch</a>(StkFloat frequency, StkFloat radius);
|
||||
<a name="l00073"></a>00073
|
||||
<a name="l00075"></a>00075
|
||||
<a name="l00081"></a>00081 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a11">setEqualGainZeroes</a>();
|
||||
<a name="l00082"></a>00082
|
||||
<a name="l00084"></a>00084
|
||||
<a name="l00088"></a>00088 <span class="keywordtype">void</span> <a class="code" href="classBiQuad.html#a12">setGain</a>(StkFloat gain);
|
||||
<a name="l00089"></a>00089
|
||||
<a name="l00091"></a>00091 StkFloat <a class="code" href="classBiQuad.html#a13">getGain</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
|
||||
<a name="l00092"></a>00092
|
||||
<a name="l00094"></a>00094 StkFloat <a class="code" href="classBiQuad.html#a14">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
|
||||
<a name="l00095"></a>00095
|
||||
<a name="l00097"></a>00097 <span class="keyword">virtual</span> StkFloat <a class="code" href="classBiQuad.html#a15">tick</a>(StkFloat sample);
|
||||
<a name="l00098"></a>00098
|
||||
<a name="l00100"></a>00100
|
||||
<a name="l00106"></a>00106 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>& <a class="code" href="classBiQuad.html#a15">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>& frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 0 );
|
||||
<a name="l00107"></a>00107
|
||||
<a name="l00108"></a>00108 <span class="keyword">protected</span>:
|
||||
<a name="l00109"></a>00109
|
||||
<a name="l00110"></a>00110 <span class="comment">// This function must be implemented in all subclasses. It is used</span>
|
||||
<a name="l00111"></a>00111 <span class="comment">// to get around a C++ problem with overloaded virtual functions.</span>
|
||||
<a name="l00112"></a>00112 <span class="keyword">virtual</span> StkFloat computeSample( StkFloat input );
|
||||
<a name="l00113"></a>00113 <span class="keyword">virtual</span> <span class="keywordtype">void</span> sampleRateChanged( StkFloat newRate, StkFloat oldRate );
|
||||
<a name="l00114"></a>00114 };
|
||||
<a name="l00115"></a>00115
|
||||
<a name="l00116"></a>00116 <span class="keyword">inline</span> StkFloat BiQuad :: computeSample( StkFloat input )
|
||||
<a name="l00117"></a>00117 {
|
||||
<a name="l00118"></a>00118 inputs_[0] = gain_ * input;
|
||||
<a name="l00119"></a>00119 outputs_[0] = b_[0] * inputs_[0] + b_[1] * inputs_[1] + b_[2] * inputs_[2];
|
||||
<a name="l00120"></a>00120 outputs_[0] -= a_[2] * outputs_[2] + a_[1] * outputs_[1];
|
||||
<a name="l00121"></a>00121 inputs_[2] = inputs_[1];
|
||||
<a name="l00122"></a>00122 inputs_[1] = inputs_[0];
|
||||
<a name="l00123"></a>00123 outputs_[2] = outputs_[1];
|
||||
<a name="l00124"></a>00124 outputs_[1] = outputs_[0];
|
||||
<a name="l00125"></a>00125
|
||||
<a name="l00126"></a>00126 <span class="keywordflow">return</span> outputs_[0];
|
||||
<a name="l00127"></a>00127 }
|
||||
<a name="l00128"></a>00128
|
||||
<a name="l00129"></a><a class="code" href="classBiQuad.html#a15">00129</a> <span class="keyword">inline</span> StkFloat <a class="code" href="classBiQuad.html#a15">BiQuad :: tick</a>( StkFloat input )
|
||||
<a name="l00130"></a>00130 {
|
||||
<a name="l00131"></a>00131 <span class="keywordflow">return</span> this->computeSample( input );
|
||||
<a name="l00132"></a>00132 }
|
||||
<a name="l00133"></a>00133
|
||||
<a name="l00134"></a><a class="code" href="classBiQuad.html#a16">00134</a> <span class="keyword">inline</span> <a class="code" href="classStkFrames.html">StkFrames</a>& <a class="code" href="classBiQuad.html#a15">BiQuad :: tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>& frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel )
|
||||
<a name="l00135"></a>00135 {
|
||||
<a name="l00136"></a>00136 <span class="keywordflow">return</span> <a class="code" href="classFilter.html#a10">Filter::tick</a>( frames, channel );
|
||||
<a name="l00137"></a>00137 }
|
||||
<a name="l00138"></a>00138
|
||||
<a name="l00139"></a>00139 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
61
doc/html/BlitSaw_8h-source.html
Normal file
61
doc/html/BlitSaw_8h-source.html
Normal file
@@ -0,0 +1,61 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>BlitSaw.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00020"></a>00020 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00021"></a>00021
|
||||
<a name="l00022"></a>00022 <span class="preprocessor">#ifndef STK_BLITSAW_H</span>
|
||||
<a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#define STK_BLITSAW_H</span>
|
||||
<a name="l00024"></a>00024 <span class="preprocessor"></span>
|
||||
<a name="l00025"></a>00025 <span class="preprocessor">#include "Generator.h"</span>
|
||||
<a name="l00026"></a>00026
|
||||
<a name="l00027"></a><a class="code" href="classBlitSaw.html">00027</a> <span class="keyword">class </span><a class="code" href="classBlitSaw.html">BlitSaw</a>: <span class="keyword">public</span> <a class="code" href="classGenerator.html">Generator</a>
|
||||
<a name="l00028"></a>00028 {
|
||||
<a name="l00029"></a>00029 <span class="keyword">public</span>:
|
||||
<a name="l00031"></a>00031 <a class="code" href="classBlitSaw.html#a0">BlitSaw</a>( StkFloat frequency = 220.0 );
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00034"></a>00034 <a class="code" href="classBlitSaw.html#a1">~BlitSaw</a>();
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00037"></a>00037 <span class="keywordtype">void</span> <a class="code" href="classBlitSaw.html#a2">reset</a>();
|
||||
<a name="l00038"></a>00038
|
||||
<a name="l00040"></a>00040 <span class="keywordtype">void</span> <a class="code" href="classBlitSaw.html#a3">setFrequency</a>( StkFloat frequency );
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00055"></a>00055 <span class="keywordtype">void</span> <a class="code" href="classBlitSaw.html#a4">setHarmonics</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nHarmonics = 0 );
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00057"></a>00057 <span class="keyword">protected</span>:
|
||||
<a name="l00058"></a>00058
|
||||
<a name="l00059"></a>00059 <span class="keywordtype">void</span> updateHarmonics( <span class="keywordtype">void</span> );
|
||||
<a name="l00060"></a>00060 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00061"></a>00061
|
||||
<a name="l00062"></a>00062 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nHarmonics_;
|
||||
<a name="l00063"></a>00063 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_;
|
||||
<a name="l00064"></a>00064 StkFloat rate_;
|
||||
<a name="l00065"></a>00065 StkFloat phase_;
|
||||
<a name="l00066"></a>00066 StkFloat p_;
|
||||
<a name="l00067"></a>00067 StkFloat C2_;
|
||||
<a name="l00068"></a>00068 StkFloat a_;
|
||||
<a name="l00069"></a>00069 StkFloat state_;
|
||||
<a name="l00070"></a>00070
|
||||
<a name="l00071"></a>00071 };
|
||||
<a name="l00072"></a>00072
|
||||
<a name="l00073"></a>00073 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
66
doc/html/BlitSquare_8h-source.html
Normal file
66
doc/html/BlitSquare_8h-source.html
Normal file
@@ -0,0 +1,66 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>BlitSquare.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00031"></a>00031 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00033"></a>00033 <span class="preprocessor">#ifndef STK_BLITSQUARE_H</span>
|
||||
<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define STK_BLITSQUARE_H</span>
|
||||
<a name="l00035"></a>00035 <span class="preprocessor"></span>
|
||||
<a name="l00036"></a>00036 <span class="preprocessor">#include "Generator.h"</span>
|
||||
<a name="l00037"></a>00037
|
||||
<a name="l00038"></a><a class="code" href="classBlitSquare.html">00038</a> <span class="keyword">class </span><a class="code" href="classBlitSquare.html">BlitSquare</a>: <span class="keyword">public</span> <a class="code" href="classGenerator.html">Generator</a>
|
||||
<a name="l00039"></a>00039 {
|
||||
<a name="l00040"></a>00040 <span class="keyword">public</span>:
|
||||
<a name="l00042"></a>00042 <a class="code" href="classBlitSquare.html#a0">BlitSquare</a>( StkFloat frequency = 220.0 );
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00045"></a>00045 <a class="code" href="classBlitSquare.html#a1">~BlitSquare</a>();
|
||||
<a name="l00046"></a>00046
|
||||
<a name="l00048"></a>00048 <span class="keywordtype">void</span> <a class="code" href="classBlitSquare.html#a2">reset</a>();
|
||||
<a name="l00049"></a>00049
|
||||
<a name="l00051"></a>00051
|
||||
<a name="l00054"></a><a class="code" href="classBlitSquare.html#a3">00054</a> <span class="keywordtype">void</span> <a class="code" href="classBlitSquare.html#a3">setPhase</a>( StkFloat phase ) { phase_ = PI * phase; };
|
||||
<a name="l00055"></a>00055
|
||||
<a name="l00057"></a>00057
|
||||
<a name="l00060"></a><a class="code" href="classBlitSquare.html#a4">00060</a> StkFloat <a class="code" href="classBlitSquare.html#a4">getPhase</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> phase_ / PI; };
|
||||
<a name="l00061"></a>00061
|
||||
<a name="l00063"></a>00063 <span class="keywordtype">void</span> <a class="code" href="classBlitSquare.html#a5">setFrequency</a>( StkFloat frequency );
|
||||
<a name="l00064"></a>00064
|
||||
<a name="l00066"></a>00066
|
||||
<a name="l00078"></a>00078 <span class="keywordtype">void</span> <a class="code" href="classBlitSquare.html#a6">setHarmonics</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nHarmonics = 0 );
|
||||
<a name="l00079"></a>00079
|
||||
<a name="l00080"></a>00080 <span class="keyword">protected</span>:
|
||||
<a name="l00081"></a>00081
|
||||
<a name="l00082"></a>00082 <span class="keywordtype">void</span> updateHarmonics( <span class="keywordtype">void</span> );
|
||||
<a name="l00083"></a>00083 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00084"></a>00084
|
||||
<a name="l00085"></a>00085 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nHarmonics_;
|
||||
<a name="l00086"></a>00086 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_;
|
||||
<a name="l00087"></a>00087 StkFloat rate_;
|
||||
<a name="l00088"></a>00088 StkFloat phase_;
|
||||
<a name="l00089"></a>00089 StkFloat p_;
|
||||
<a name="l00090"></a>00090 StkFloat a_;
|
||||
<a name="l00091"></a>00091 StkFloat lastBlitOutput_;
|
||||
<a name="l00092"></a>00092 StkFloat dcbState_;
|
||||
<a name="l00093"></a>00093 };
|
||||
<a name="l00094"></a>00094
|
||||
<a name="l00095"></a>00095 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
64
doc/html/Blit_8h-source.html
Normal file
64
doc/html/Blit_8h-source.html
Normal file
@@ -0,0 +1,64 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Blit.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00022"></a>00022 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00023"></a>00023
|
||||
<a name="l00024"></a>00024 <span class="preprocessor">#ifndef STK_BLIT_H</span>
|
||||
<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#define STK_BLIT_H</span>
|
||||
<a name="l00026"></a>00026 <span class="preprocessor"></span>
|
||||
<a name="l00027"></a>00027 <span class="preprocessor">#include "Generator.h"</span>
|
||||
<a name="l00028"></a>00028
|
||||
<a name="l00029"></a><a class="code" href="classBlit.html">00029</a> <span class="keyword">class </span><a class="code" href="classBlit.html">Blit</a>: <span class="keyword">public</span> <a class="code" href="classGenerator.html">Generator</a>
|
||||
<a name="l00030"></a>00030 {
|
||||
<a name="l00031"></a>00031 <span class="keyword">public</span>:
|
||||
<a name="l00033"></a>00033 <a class="code" href="classBlit.html#a0">Blit</a>( StkFloat frequency = 220.0 );
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00036"></a>00036 <a class="code" href="classBlit.html#a1">~Blit</a>();
|
||||
<a name="l00037"></a>00037
|
||||
<a name="l00039"></a>00039 <span class="keywordtype">void</span> <a class="code" href="classBlit.html#a2">reset</a>();
|
||||
<a name="l00040"></a>00040
|
||||
<a name="l00042"></a>00042
|
||||
<a name="l00045"></a><a class="code" href="classBlit.html#a3">00045</a> <span class="keywordtype">void</span> <a class="code" href="classBlit.html#a3">setPhase</a>( StkFloat phase ) { phase_ = PI * phase; };
|
||||
<a name="l00046"></a>00046
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00051"></a><a class="code" href="classBlit.html#a4">00051</a> StkFloat <a class="code" href="classBlit.html#a4">getPhase</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> phase_ / PI; };
|
||||
<a name="l00052"></a>00052
|
||||
<a name="l00054"></a>00054 <span class="keywordtype">void</span> <a class="code" href="classBlit.html#a5">setFrequency</a>( StkFloat frequency );
|
||||
<a name="l00055"></a>00055
|
||||
<a name="l00057"></a>00057
|
||||
<a name="l00069"></a>00069 <span class="keywordtype">void</span> <a class="code" href="classBlit.html#a6">setHarmonics</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nHarmonics = 0 );
|
||||
<a name="l00070"></a>00070
|
||||
<a name="l00071"></a>00071 <span class="keyword">protected</span>:
|
||||
<a name="l00072"></a>00072
|
||||
<a name="l00073"></a>00073 <span class="keywordtype">void</span> updateHarmonics( <span class="keywordtype">void</span> );
|
||||
<a name="l00074"></a>00074 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00075"></a>00075
|
||||
<a name="l00076"></a>00076 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nHarmonics_;
|
||||
<a name="l00077"></a>00077 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_;
|
||||
<a name="l00078"></a>00078 StkFloat rate_;
|
||||
<a name="l00079"></a>00079 StkFloat phase_;
|
||||
<a name="l00080"></a>00080 StkFloat p_;
|
||||
<a name="l00081"></a>00081
|
||||
<a name="l00082"></a>00082 };
|
||||
<a name="l00083"></a>00083
|
||||
<a name="l00084"></a>00084 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
76
doc/html/BlowBotl_8h-source.html
Normal file
76
doc/html/BlowBotl_8h-source.html
Normal file
@@ -0,0 +1,76 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>BlowBotl.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00017"></a>00017 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00018"></a>00018
|
||||
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef STK_BLOWBOTL_H</span>
|
||||
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define STK_BLOWBOTL_H</span>
|
||||
<a name="l00021"></a>00021 <span class="preprocessor"></span>
|
||||
<a name="l00022"></a>00022 <span class="preprocessor">#include "Instrmnt.h"</span>
|
||||
<a name="l00023"></a>00023 <span class="preprocessor">#include "JetTable.h"</span>
|
||||
<a name="l00024"></a>00024 <span class="preprocessor">#include "BiQuad.h"</span>
|
||||
<a name="l00025"></a>00025 <span class="preprocessor">#include "PoleZero.h"</span>
|
||||
<a name="l00026"></a>00026 <span class="preprocessor">#include "Noise.h"</span>
|
||||
<a name="l00027"></a>00027 <span class="preprocessor">#include "ADSR.h"</span>
|
||||
<a name="l00028"></a>00028 <span class="preprocessor">#include "SineWave.h"</span>
|
||||
<a name="l00029"></a>00029
|
||||
<a name="l00030"></a><a class="code" href="classBlowBotl.html">00030</a> <span class="keyword">class </span><a class="code" href="classBlowBotl.html">BlowBotl</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
<a name="l00031"></a>00031 {
|
||||
<a name="l00032"></a>00032 <span class="keyword">public</span>:
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00037"></a>00037 <a class="code" href="classBlowBotl.html#a0">BlowBotl</a>();
|
||||
<a name="l00038"></a>00038
|
||||
<a name="l00040"></a>00040 <a class="code" href="classBlowBotl.html#a1">~BlowBotl</a>();
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00043"></a>00043 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a2">clear</a>();
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00046"></a>00046 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a3">setFrequency</a>(StkFloat frequency);
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00049"></a>00049 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a4">startBlowing</a>(StkFloat amplitude, StkFloat rate);
|
||||
<a name="l00050"></a>00050
|
||||
<a name="l00052"></a>00052 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a5">stopBlowing</a>(StkFloat rate);
|
||||
<a name="l00053"></a>00053
|
||||
<a name="l00055"></a>00055 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a6">noteOn</a>(StkFloat frequency, StkFloat amplitude);
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00058"></a>00058 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a7">noteOff</a>(StkFloat amplitude);
|
||||
<a name="l00059"></a>00059
|
||||
<a name="l00061"></a>00061 <span class="keywordtype">void</span> <a class="code" href="classBlowBotl.html#a8">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00063"></a>00063 <span class="keyword">protected</span>:
|
||||
<a name="l00064"></a>00064
|
||||
<a name="l00065"></a>00065 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00066"></a>00066
|
||||
<a name="l00067"></a>00067 <a class="code" href="classJetTable.html">JetTable</a> jetTable_;
|
||||
<a name="l00068"></a>00068 <a class="code" href="classBiQuad.html">BiQuad</a> resonator_;
|
||||
<a name="l00069"></a>00069 <a class="code" href="classPoleZero.html">PoleZero</a> dcBlock_;
|
||||
<a name="l00070"></a>00070 <a class="code" href="classNoise.html">Noise</a> noise_;
|
||||
<a name="l00071"></a>00071 <a class="code" href="classADSR.html">ADSR</a> adsr_;
|
||||
<a name="l00072"></a>00072 <a class="code" href="classSineWave.html">SineWave</a> vibrato_;
|
||||
<a name="l00073"></a>00073 StkFloat maxPressure_;
|
||||
<a name="l00074"></a>00074 StkFloat noiseGain_;
|
||||
<a name="l00075"></a>00075 StkFloat vibratoGain_;
|
||||
<a name="l00076"></a>00076 StkFloat outputGain_;
|
||||
<a name="l00077"></a>00077
|
||||
<a name="l00078"></a>00078 };
|
||||
<a name="l00079"></a>00079
|
||||
<a name="l00080"></a>00080 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
86
doc/html/BlowHole_8h-source.html
Normal file
86
doc/html/BlowHole_8h-source.html
Normal file
@@ -0,0 +1,86 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>BlowHole.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00034"></a>00034 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00036"></a>00036 <span class="preprocessor">#ifndef STK_BLOWHOLE_H</span>
|
||||
<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#define STK_BLOWHOLE_H</span>
|
||||
<a name="l00038"></a>00038 <span class="preprocessor"></span>
|
||||
<a name="l00039"></a>00039 <span class="preprocessor">#include "Instrmnt.h"</span>
|
||||
<a name="l00040"></a>00040 <span class="preprocessor">#include "DelayL.h"</span>
|
||||
<a name="l00041"></a>00041 <span class="preprocessor">#include "ReedTable.h"</span>
|
||||
<a name="l00042"></a>00042 <span class="preprocessor">#include "OneZero.h"</span>
|
||||
<a name="l00043"></a>00043 <span class="preprocessor">#include "PoleZero.h"</span>
|
||||
<a name="l00044"></a>00044 <span class="preprocessor">#include "Envelope.h"</span>
|
||||
<a name="l00045"></a>00045 <span class="preprocessor">#include "Noise.h"</span>
|
||||
<a name="l00046"></a>00046 <span class="preprocessor">#include "SineWave.h"</span>
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00048"></a><a class="code" href="classBlowHole.html">00048</a> <span class="keyword">class </span><a class="code" href="classBlowHole.html">BlowHole</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
<a name="l00049"></a>00049 {
|
||||
<a name="l00050"></a>00050 <span class="keyword">public</span>:
|
||||
<a name="l00052"></a>00052
|
||||
<a name="l00055"></a>00055 <a class="code" href="classBlowHole.html#a0">BlowHole</a>(StkFloat lowestFrequency);
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00058"></a>00058 <a class="code" href="classBlowHole.html#a1">~BlowHole</a>();
|
||||
<a name="l00059"></a>00059
|
||||
<a name="l00061"></a>00061 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a2">clear</a>();
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00064"></a>00064 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a3">setFrequency</a>(StkFloat frequency);
|
||||
<a name="l00065"></a>00065
|
||||
<a name="l00067"></a>00067 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a4">setTonehole</a>(StkFloat newValue);
|
||||
<a name="l00068"></a>00068
|
||||
<a name="l00070"></a>00070 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a5">setVent</a>(StkFloat newValue);
|
||||
<a name="l00071"></a>00071
|
||||
<a name="l00073"></a>00073 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a6">startBlowing</a>(StkFloat amplitude, StkFloat rate);
|
||||
<a name="l00074"></a>00074
|
||||
<a name="l00076"></a>00076 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a7">stopBlowing</a>(StkFloat rate);
|
||||
<a name="l00077"></a>00077
|
||||
<a name="l00079"></a>00079 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a8">noteOn</a>(StkFloat frequency, StkFloat amplitude);
|
||||
<a name="l00080"></a>00080
|
||||
<a name="l00082"></a>00082 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a9">noteOff</a>(StkFloat amplitude);
|
||||
<a name="l00083"></a>00083
|
||||
<a name="l00085"></a>00085 <span class="keywordtype">void</span> <a class="code" href="classBlowHole.html#a10">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
|
||||
<a name="l00086"></a>00086
|
||||
<a name="l00087"></a>00087 <span class="keyword">protected</span>:
|
||||
<a name="l00088"></a>00088
|
||||
<a name="l00089"></a>00089 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00090"></a>00090
|
||||
<a name="l00091"></a>00091 <a class="code" href="classDelayL.html">DelayL</a> delays_[3];
|
||||
<a name="l00092"></a>00092 <a class="code" href="classReedTable.html">ReedTable</a> reedTable_;
|
||||
<a name="l00093"></a>00093 <a class="code" href="classOneZero.html">OneZero</a> filter_;
|
||||
<a name="l00094"></a>00094 <a class="code" href="classPoleZero.html">PoleZero</a> tonehole_;
|
||||
<a name="l00095"></a>00095 <a class="code" href="classPoleZero.html">PoleZero</a> vent_;
|
||||
<a name="l00096"></a>00096 <a class="code" href="classEnvelope.html">Envelope</a> envelope_;
|
||||
<a name="l00097"></a>00097 <a class="code" href="classNoise.html">Noise</a> noise_;
|
||||
<a name="l00098"></a>00098 <a class="code" href="classSineWave.html">SineWave</a> vibrato_;
|
||||
<a name="l00099"></a>00099 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> length_;
|
||||
<a name="l00100"></a>00100 StkFloat scatter_;
|
||||
<a name="l00101"></a>00101 StkFloat thCoeff_;
|
||||
<a name="l00102"></a>00102 StkFloat rhGain_;
|
||||
<a name="l00103"></a>00103 StkFloat outputGain_;
|
||||
<a name="l00104"></a>00104 StkFloat noiseGain_;
|
||||
<a name="l00105"></a>00105 StkFloat vibratoGain_;
|
||||
<a name="l00106"></a>00106
|
||||
<a name="l00107"></a>00107 };
|
||||
<a name="l00108"></a>00108
|
||||
<a name="l00109"></a>00109 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
53
doc/html/BowTable_8h-source.html
Normal file
53
doc/html/BowTable_8h-source.html
Normal file
@@ -0,0 +1,53 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>BowTable.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00010"></a>00010 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00011"></a>00011
|
||||
<a name="l00012"></a>00012 <span class="preprocessor">#ifndef STK_BOWTABL_H</span>
|
||||
<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor">#define STK_BOWTABL_H</span>
|
||||
<a name="l00014"></a>00014 <span class="preprocessor"></span>
|
||||
<a name="l00015"></a>00015 <span class="preprocessor">#include "Function.h"</span>
|
||||
<a name="l00016"></a>00016
|
||||
<a name="l00017"></a><a class="code" href="classBowTable.html">00017</a> <span class="keyword">class </span><a class="code" href="classBowTable.html">BowTable</a> : <span class="keyword">public</span> <a class="code" href="classFunction.html">Function</a>
|
||||
<a name="l00018"></a>00018 {
|
||||
<a name="l00019"></a>00019 <span class="keyword">public</span>:
|
||||
<a name="l00021"></a>00021 <a class="code" href="classBowTable.html#a0">BowTable</a>();
|
||||
<a name="l00022"></a>00022
|
||||
<a name="l00024"></a>00024 <a class="code" href="classBowTable.html#a1">~BowTable</a>();
|
||||
<a name="l00025"></a>00025
|
||||
<a name="l00027"></a>00027
|
||||
<a name="l00033"></a>00033 <span class="keywordtype">void</span> <a class="code" href="classBowTable.html#a2">setOffset</a>(StkFloat offset);
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00036"></a>00036
|
||||
<a name="l00040"></a>00040 <span class="keywordtype">void</span> <a class="code" href="classBowTable.html#a3">setSlope</a>(StkFloat slope);
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00042"></a>00042 <span class="keyword">protected</span>:
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00044"></a>00044 StkFloat computeSample( StkFloat input );
|
||||
<a name="l00045"></a>00045
|
||||
<a name="l00046"></a>00046 StkFloat offset_;
|
||||
<a name="l00047"></a>00047 StkFloat slope_;
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00049"></a>00049 };
|
||||
<a name="l00050"></a>00050
|
||||
<a name="l00051"></a>00051 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
78
doc/html/Bowed_8h-source.html
Normal file
78
doc/html/Bowed_8h-source.html
Normal file
@@ -0,0 +1,78 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Bowed.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00022"></a>00022 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00023"></a>00023
|
||||
<a name="l00024"></a>00024 <span class="preprocessor">#ifndef STK_BOWED_H</span>
|
||||
<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#define STK_BOWED_H</span>
|
||||
<a name="l00026"></a>00026 <span class="preprocessor"></span>
|
||||
<a name="l00027"></a>00027 <span class="preprocessor">#include "Instrmnt.h"</span>
|
||||
<a name="l00028"></a>00028 <span class="preprocessor">#include "DelayL.h"</span>
|
||||
<a name="l00029"></a>00029 <span class="preprocessor">#include "BowTable.h"</span>
|
||||
<a name="l00030"></a>00030 <span class="preprocessor">#include "OnePole.h"</span>
|
||||
<a name="l00031"></a>00031 <span class="preprocessor">#include "BiQuad.h"</span>
|
||||
<a name="l00032"></a>00032 <span class="preprocessor">#include "SineWave.h"</span>
|
||||
<a name="l00033"></a>00033 <span class="preprocessor">#include "ADSR.h"</span>
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00035"></a><a class="code" href="classBowed.html">00035</a> <span class="keyword">class </span><a class="code" href="classBowed.html">Bowed</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
<a name="l00036"></a>00036 {
|
||||
<a name="l00037"></a>00037 <span class="keyword">public</span>:
|
||||
<a name="l00039"></a>00039 <a class="code" href="classBowed.html#a0">Bowed</a>(StkFloat lowestFrequency);
|
||||
<a name="l00040"></a>00040
|
||||
<a name="l00042"></a>00042 <a class="code" href="classBowed.html#a1">~Bowed</a>();
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00045"></a>00045 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a2">clear</a>();
|
||||
<a name="l00046"></a>00046
|
||||
<a name="l00048"></a>00048 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a3">setFrequency</a>(StkFloat frequency);
|
||||
<a name="l00049"></a>00049
|
||||
<a name="l00051"></a>00051 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a4">setVibrato</a>(StkFloat gain);
|
||||
<a name="l00052"></a>00052
|
||||
<a name="l00054"></a>00054 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a5">startBowing</a>(StkFloat amplitude, StkFloat rate);
|
||||
<a name="l00055"></a>00055
|
||||
<a name="l00057"></a>00057 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a6">stopBowing</a>(StkFloat rate);
|
||||
<a name="l00058"></a>00058
|
||||
<a name="l00060"></a>00060 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a7">noteOn</a>(StkFloat frequency, StkFloat amplitude);
|
||||
<a name="l00061"></a>00061
|
||||
<a name="l00063"></a>00063 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a8">noteOff</a>(StkFloat amplitude);
|
||||
<a name="l00064"></a>00064
|
||||
<a name="l00066"></a>00066 <span class="keywordtype">void</span> <a class="code" href="classBowed.html#a9">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
|
||||
<a name="l00067"></a>00067
|
||||
<a name="l00068"></a>00068 <span class="keyword">protected</span>:
|
||||
<a name="l00069"></a>00069
|
||||
<a name="l00070"></a>00070 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00071"></a>00071
|
||||
<a name="l00072"></a>00072 <a class="code" href="classDelayL.html">DelayL</a> neckDelay_;
|
||||
<a name="l00073"></a>00073 <a class="code" href="classDelayL.html">DelayL</a> bridgeDelay_;
|
||||
<a name="l00074"></a>00074 <a class="code" href="classBowTable.html">BowTable</a> bowTable_;
|
||||
<a name="l00075"></a>00075 <a class="code" href="classOnePole.html">OnePole</a> stringFilter_;
|
||||
<a name="l00076"></a>00076 <a class="code" href="classBiQuad.html">BiQuad</a> bodyFilter_;
|
||||
<a name="l00077"></a>00077 <a class="code" href="classSineWave.html">SineWave</a> vibrato_;
|
||||
<a name="l00078"></a>00078 <a class="code" href="classADSR.html">ADSR</a> adsr_;
|
||||
<a name="l00079"></a>00079 StkFloat maxVelocity_;
|
||||
<a name="l00080"></a>00080 StkFloat baseDelay_;
|
||||
<a name="l00081"></a>00081 StkFloat vibratoGain_;
|
||||
<a name="l00082"></a>00082 StkFloat betaRatio_;
|
||||
<a name="l00083"></a>00083
|
||||
<a name="l00084"></a>00084 };
|
||||
<a name="l00085"></a>00085
|
||||
<a name="l00086"></a>00086 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
77
doc/html/Brass_8h-source.html
Normal file
77
doc/html/Brass_8h-source.html
Normal file
@@ -0,0 +1,77 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Brass.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00021"></a>00021 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00022"></a>00022
|
||||
<a name="l00023"></a>00023 <span class="preprocessor">#ifndef STK_BRASS_H</span>
|
||||
<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#define STK_BRASS_H</span>
|
||||
<a name="l00025"></a>00025 <span class="preprocessor"></span>
|
||||
<a name="l00026"></a>00026 <span class="preprocessor">#include "Instrmnt.h"</span>
|
||||
<a name="l00027"></a>00027 <span class="preprocessor">#include "DelayA.h"</span>
|
||||
<a name="l00028"></a>00028 <span class="preprocessor">#include "BiQuad.h"</span>
|
||||
<a name="l00029"></a>00029 <span class="preprocessor">#include "PoleZero.h"</span>
|
||||
<a name="l00030"></a>00030 <span class="preprocessor">#include "ADSR.h"</span>
|
||||
<a name="l00031"></a>00031 <span class="preprocessor">#include "SineWave.h"</span>
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00033"></a><a class="code" href="classBrass.html">00033</a> <span class="keyword">class </span><a class="code" href="classBrass.html">Brass</a>: <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
<a name="l00034"></a>00034 {
|
||||
<a name="l00035"></a>00035 <span class="keyword">public</span>:
|
||||
<a name="l00037"></a>00037
|
||||
<a name="l00040"></a>00040 <a class="code" href="classBrass.html#a0">Brass</a>(StkFloat lowestFrequency);
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00043"></a>00043 <a class="code" href="classBrass.html#a1">~Brass</a>();
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00046"></a>00046 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a2">clear</a>();
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00049"></a>00049 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a3">setFrequency</a>(StkFloat frequency);
|
||||
<a name="l00050"></a>00050
|
||||
<a name="l00052"></a>00052 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a4">setLip</a>(StkFloat frequency);
|
||||
<a name="l00053"></a>00053
|
||||
<a name="l00055"></a>00055 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a5">startBlowing</a>(StkFloat amplitude, StkFloat rate);
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00058"></a>00058 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a6">stopBlowing</a>(StkFloat rate);
|
||||
<a name="l00059"></a>00059
|
||||
<a name="l00061"></a>00061 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a7">noteOn</a>(StkFloat frequency, StkFloat amplitude);
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00064"></a>00064 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a8">noteOff</a>(StkFloat amplitude);
|
||||
<a name="l00065"></a>00065
|
||||
<a name="l00067"></a>00067 <span class="keywordtype">void</span> <a class="code" href="classBrass.html#a9">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
|
||||
<a name="l00068"></a>00068
|
||||
<a name="l00069"></a>00069 <span class="keyword">protected</span>:
|
||||
<a name="l00070"></a>00070
|
||||
<a name="l00071"></a>00071 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00072"></a>00072
|
||||
<a name="l00073"></a>00073 <a class="code" href="classDelayA.html">DelayA</a> delayLine_;
|
||||
<a name="l00074"></a>00074 <a class="code" href="classBiQuad.html">BiQuad</a> lipFilter_;
|
||||
<a name="l00075"></a>00075 <a class="code" href="classPoleZero.html">PoleZero</a> dcBlock_;
|
||||
<a name="l00076"></a>00076 <a class="code" href="classADSR.html">ADSR</a> adsr_;
|
||||
<a name="l00077"></a>00077 <a class="code" href="classSineWave.html">SineWave</a> vibrato_;
|
||||
<a name="l00078"></a>00078 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> length_;
|
||||
<a name="l00079"></a>00079 StkFloat lipTarget_;
|
||||
<a name="l00080"></a>00080 StkFloat slideTarget_;
|
||||
<a name="l00081"></a>00081 StkFloat vibratoGain_;
|
||||
<a name="l00082"></a>00082 StkFloat maxPressure_;
|
||||
<a name="l00083"></a>00083
|
||||
<a name="l00084"></a>00084 };
|
||||
<a name="l00085"></a>00085
|
||||
<a name="l00086"></a>00086 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
59
doc/html/Chorus_8h-source.html
Normal file
59
doc/html/Chorus_8h-source.html
Normal file
@@ -0,0 +1,59 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Chorus.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00009"></a>00009 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00010"></a>00010
|
||||
<a name="l00011"></a>00011 <span class="preprocessor">#ifndef STK_CHORUS_H</span>
|
||||
<a name="l00012"></a>00012 <span class="preprocessor"></span><span class="preprocessor">#define STK_CHORUS_H</span>
|
||||
<a name="l00013"></a>00013 <span class="preprocessor"></span>
|
||||
<a name="l00014"></a>00014 <span class="preprocessor">#include "Effect.h"</span>
|
||||
<a name="l00015"></a>00015 <span class="preprocessor">#include "DelayL.h"</span>
|
||||
<a name="l00016"></a>00016 <span class="preprocessor">#include "SineWave.h"</span>
|
||||
<a name="l00017"></a>00017
|
||||
<a name="l00018"></a><a class="code" href="classChorus.html">00018</a> <span class="keyword">class </span><a class="code" href="classChorus.html">Chorus</a> : <span class="keyword">public</span> <a class="code" href="classEffect.html">Effect</a>
|
||||
<a name="l00019"></a>00019 {
|
||||
<a name="l00020"></a>00020 <span class="keyword">public</span>:
|
||||
<a name="l00022"></a>00022
|
||||
<a name="l00025"></a>00025 <a class="code" href="classChorus.html#a0">Chorus</a>( StkFloat baseDelay = 6000 );
|
||||
<a name="l00026"></a>00026
|
||||
<a name="l00028"></a>00028 <a class="code" href="classChorus.html#a1">~Chorus</a>();
|
||||
<a name="l00029"></a>00029
|
||||
<a name="l00031"></a>00031 <span class="keywordtype">void</span> <a class="code" href="classChorus.html#a2">clear</a>();
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00034"></a>00034 <span class="keywordtype">void</span> <a class="code" href="classChorus.html#a3">setModDepth</a>(StkFloat depth);
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00037"></a>00037 <span class="keywordtype">void</span> <a class="code" href="classChorus.html#a4">setModFrequency</a>(StkFloat frequency);
|
||||
<a name="l00038"></a>00038
|
||||
<a name="l00039"></a>00039 <span class="keyword">protected</span>:
|
||||
<a name="l00040"></a>00040
|
||||
<a name="l00041"></a>00041 StkFloat computeSample( StkFloat input );
|
||||
<a name="l00042"></a>00042
|
||||
<a name="l00043"></a>00043 <a class="code" href="classDelayL.html">DelayL</a> delayLine_[2];
|
||||
<a name="l00044"></a>00044 <a class="code" href="classSineWave.html">SineWave</a> mods_[2];
|
||||
<a name="l00045"></a>00045 StkFloat baseLength_;
|
||||
<a name="l00046"></a>00046 StkFloat modDepth_;
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00048"></a>00048 };
|
||||
<a name="l00049"></a>00049
|
||||
<a name="l00050"></a>00050 <span class="preprocessor">#endif</span>
|
||||
<a name="l00051"></a>00051 <span class="preprocessor"></span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
76
doc/html/Clarinet_8h-source.html
Normal file
76
doc/html/Clarinet_8h-source.html
Normal file
@@ -0,0 +1,76 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Clarinet.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00023"></a>00023 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00024"></a>00024
|
||||
<a name="l00025"></a>00025 <span class="preprocessor">#ifndef STK_CLARINET_H</span>
|
||||
<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#define STK_CLARINET_H</span>
|
||||
<a name="l00027"></a>00027 <span class="preprocessor"></span>
|
||||
<a name="l00028"></a>00028 <span class="preprocessor">#include "Instrmnt.h"</span>
|
||||
<a name="l00029"></a>00029 <span class="preprocessor">#include "DelayL.h"</span>
|
||||
<a name="l00030"></a>00030 <span class="preprocessor">#include "ReedTable.h"</span>
|
||||
<a name="l00031"></a>00031 <span class="preprocessor">#include "OneZero.h"</span>
|
||||
<a name="l00032"></a>00032 <span class="preprocessor">#include "Envelope.h"</span>
|
||||
<a name="l00033"></a>00033 <span class="preprocessor">#include "Noise.h"</span>
|
||||
<a name="l00034"></a>00034 <span class="preprocessor">#include "SineWave.h"</span>
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00036"></a><a class="code" href="classClarinet.html">00036</a> <span class="keyword">class </span><a class="code" href="classClarinet.html">Clarinet</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
<a name="l00037"></a>00037 {
|
||||
<a name="l00038"></a>00038 <span class="keyword">public</span>:
|
||||
<a name="l00040"></a>00040
|
||||
<a name="l00043"></a>00043 <a class="code" href="classClarinet.html#a0">Clarinet</a>(StkFloat lowestFrequency);
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00046"></a>00046 <a class="code" href="classClarinet.html#a1">~Clarinet</a>();
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00049"></a>00049 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a2">clear</a>();
|
||||
<a name="l00050"></a>00050
|
||||
<a name="l00052"></a>00052 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a3">setFrequency</a>(StkFloat frequency);
|
||||
<a name="l00053"></a>00053
|
||||
<a name="l00055"></a>00055 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a4">startBlowing</a>(StkFloat amplitude, StkFloat rate);
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00058"></a>00058 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a5">stopBlowing</a>(StkFloat rate);
|
||||
<a name="l00059"></a>00059
|
||||
<a name="l00061"></a>00061 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a6">noteOn</a>(StkFloat frequency, StkFloat amplitude);
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00064"></a>00064 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a7">noteOff</a>(StkFloat amplitude);
|
||||
<a name="l00065"></a>00065
|
||||
<a name="l00067"></a>00067 <span class="keywordtype">void</span> <a class="code" href="classClarinet.html#a8">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
|
||||
<a name="l00068"></a>00068
|
||||
<a name="l00069"></a>00069 <span class="keyword">protected</span>:
|
||||
<a name="l00070"></a>00070
|
||||
<a name="l00071"></a>00071 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00072"></a>00072
|
||||
<a name="l00073"></a>00073 <a class="code" href="classDelayL.html">DelayL</a> delayLine_;
|
||||
<a name="l00074"></a>00074 <a class="code" href="classReedTable.html">ReedTable</a> reedTable_;
|
||||
<a name="l00075"></a>00075 <a class="code" href="classOneZero.html">OneZero</a> filter_;
|
||||
<a name="l00076"></a>00076 <a class="code" href="classEnvelope.html">Envelope</a> envelope_;
|
||||
<a name="l00077"></a>00077 <a class="code" href="classNoise.html">Noise</a> noise_;
|
||||
<a name="l00078"></a>00078 <a class="code" href="classSineWave.html">SineWave</a> vibrato_;
|
||||
<a name="l00079"></a>00079 <span class="keywordtype">long</span> length_;
|
||||
<a name="l00080"></a>00080 StkFloat outputGain_;
|
||||
<a name="l00081"></a>00081 StkFloat noiseGain_;
|
||||
<a name="l00082"></a>00082 StkFloat vibratoGain_;
|
||||
<a name="l00083"></a>00083
|
||||
<a name="l00084"></a>00084 };
|
||||
<a name="l00085"></a>00085
|
||||
<a name="l00086"></a>00086 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
63
doc/html/DelayA_8h-source.html
Normal file
63
doc/html/DelayA_8h-source.html
Normal file
@@ -0,0 +1,63 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>DelayA.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00020"></a>00020 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00021"></a>00021
|
||||
<a name="l00022"></a>00022 <span class="preprocessor">#ifndef STK_DELAYA_H</span>
|
||||
<a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#define STK_DELAYA_H</span>
|
||||
<a name="l00024"></a>00024 <span class="preprocessor"></span>
|
||||
<a name="l00025"></a>00025 <span class="preprocessor">#include "Delay.h"</span>
|
||||
<a name="l00026"></a>00026
|
||||
<a name="l00027"></a><a class="code" href="classDelayA.html">00027</a> <span class="keyword">class </span><a class="code" href="classDelayA.html">DelayA</a> : <span class="keyword">public</span> <a class="code" href="classDelay.html">Delay</a>
|
||||
<a name="l00028"></a>00028 {
|
||||
<a name="l00029"></a>00029 <span class="keyword">public</span>:
|
||||
<a name="l00030"></a>00030
|
||||
<a name="l00032"></a>00032 <a class="code" href="classDelayA.html#a0">DelayA</a>();
|
||||
<a name="l00033"></a>00033
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00040"></a>00040 <a class="code" href="classDelayA.html#a0">DelayA</a>(StkFloat delay, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> maxDelay);
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00043"></a>00043 <a class="code" href="classDelayA.html#a2">~DelayA</a>();
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00046"></a>00046 <span class="keywordtype">void</span> <a class="code" href="classDelayA.html#a3">clear</a>();
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00049"></a>00049
|
||||
<a name="l00052"></a>00052 <span class="keywordtype">void</span> <a class="code" href="classDelayA.html#a4">setDelay</a>(StkFloat delay);
|
||||
<a name="l00053"></a>00053
|
||||
<a name="l00055"></a>00055 StkFloat <a class="code" href="classDelayA.html#a5">getDelay</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00058"></a>00058
|
||||
<a name="l00061"></a>00061 StkFloat <a class="code" href="classDelayA.html#a6">nextOut</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00063"></a>00063 <span class="keyword">protected</span>:
|
||||
<a name="l00064"></a>00064
|
||||
<a name="l00065"></a>00065 StkFloat computeSample( StkFloat input );
|
||||
<a name="l00066"></a>00066
|
||||
<a name="l00067"></a>00067 StkFloat alpha_;
|
||||
<a name="l00068"></a>00068 StkFloat coeff_;
|
||||
<a name="l00069"></a>00069 StkFloat apInput_;
|
||||
<a name="l00070"></a>00070 StkFloat nextOutput_;
|
||||
<a name="l00071"></a>00071 <span class="keywordtype">bool</span> doNextOut_;
|
||||
<a name="l00072"></a>00072 };
|
||||
<a name="l00073"></a>00073
|
||||
<a name="l00074"></a>00074 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
60
doc/html/DelayL_8h-source.html
Normal file
60
doc/html/DelayL_8h-source.html
Normal file
@@ -0,0 +1,60 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>DelayL.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00023"></a>00023 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00024"></a>00024
|
||||
<a name="l00025"></a>00025 <span class="preprocessor">#ifndef STK_DELAYL_H</span>
|
||||
<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#define STK_DELAYL_H</span>
|
||||
<a name="l00027"></a>00027 <span class="preprocessor"></span>
|
||||
<a name="l00028"></a>00028 <span class="preprocessor">#include "Delay.h"</span>
|
||||
<a name="l00029"></a>00029
|
||||
<a name="l00030"></a><a class="code" href="classDelayL.html">00030</a> <span class="keyword">class </span><a class="code" href="classDelayL.html">DelayL</a> : <span class="keyword">public</span> <a class="code" href="classDelay.html">Delay</a>
|
||||
<a name="l00031"></a>00031 {
|
||||
<a name="l00032"></a>00032 <span class="keyword">public</span>:
|
||||
<a name="l00033"></a>00033
|
||||
<a name="l00035"></a>00035 <a class="code" href="classDelayL.html#a0">DelayL</a>();
|
||||
<a name="l00036"></a>00036
|
||||
<a name="l00038"></a>00038
|
||||
<a name="l00043"></a>00043 <a class="code" href="classDelayL.html#a0">DelayL</a>(StkFloat delay, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> maxDelay);
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00046"></a>00046 <a class="code" href="classDelayL.html#a2">~DelayL</a>();
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00049"></a>00049
|
||||
<a name="l00052"></a>00052 <span class="keywordtype">void</span> <a class="code" href="classDelayL.html#a3">setDelay</a>(StkFloat delay);
|
||||
<a name="l00053"></a>00053
|
||||
<a name="l00055"></a>00055 StkFloat <a class="code" href="classDelayL.html#a4">getDelay</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00058"></a>00058
|
||||
<a name="l00061"></a>00061 StkFloat <a class="code" href="classDelayL.html#a5">nextOut</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00063"></a>00063 <span class="keyword">protected</span>:
|
||||
<a name="l00064"></a>00064
|
||||
<a name="l00065"></a>00065 StkFloat computeSample( StkFloat input );
|
||||
<a name="l00066"></a>00066
|
||||
<a name="l00067"></a>00067 StkFloat alpha_;
|
||||
<a name="l00068"></a>00068 StkFloat omAlpha_;
|
||||
<a name="l00069"></a>00069 StkFloat nextOutput_;
|
||||
<a name="l00070"></a>00070 <span class="keywordtype">bool</span> doNextOut_;
|
||||
<a name="l00071"></a>00071 };
|
||||
<a name="l00072"></a>00072
|
||||
<a name="l00073"></a>00073 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
79
doc/html/Delay_8h-source.html
Normal file
79
doc/html/Delay_8h-source.html
Normal file
@@ -0,0 +1,79 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Delay.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00019"></a>00019 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00020"></a>00020
|
||||
<a name="l00021"></a>00021 <span class="preprocessor">#ifndef STK_DELAY_H</span>
|
||||
<a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#define STK_DELAY_H</span>
|
||||
<a name="l00023"></a>00023 <span class="preprocessor"></span>
|
||||
<a name="l00024"></a>00024 <span class="preprocessor">#include "Filter.h"</span>
|
||||
<a name="l00025"></a>00025
|
||||
<a name="l00026"></a><a class="code" href="classDelay.html">00026</a> <span class="keyword">class </span><a class="code" href="classDelay.html">Delay</a> : <span class="keyword">protected</span> <a class="code" href="classFilter.html">Filter</a>
|
||||
<a name="l00027"></a>00027 {
|
||||
<a name="l00028"></a>00028 <span class="keyword">public</span>:
|
||||
<a name="l00029"></a>00029
|
||||
<a name="l00031"></a>00031 <a class="code" href="classDelay.html#a0">Delay</a>();
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00039"></a>00039 <a class="code" href="classDelay.html#a0">Delay</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> delay, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> maxDelay);
|
||||
<a name="l00040"></a>00040
|
||||
<a name="l00042"></a>00042 <span class="keyword">virtual</span> <a class="code" href="classDelay.html#a2">~Delay</a>();
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00045"></a>00045 <span class="keywordtype">void</span> <a class="code" href="classDelay.html#a3">clear</a>();
|
||||
<a name="l00046"></a>00046
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00055"></a>00055 <span class="keywordtype">void</span> <a class="code" href="classDelay.html#a4">setMaximumDelay</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> delay);
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00058"></a>00058
|
||||
<a name="l00061"></a>00061 <span class="keywordtype">void</span> <a class="code" href="classDelay.html#a5">setDelay</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> delay);
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00064"></a>00064 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classDelay.html#a6">getDelay</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
|
||||
<a name="l00065"></a>00065
|
||||
<a name="l00067"></a>00067 StkFloat <a class="code" href="classDelay.html#a7">energy</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
|
||||
<a name="l00068"></a>00068
|
||||
<a name="l00070"></a>00070
|
||||
<a name="l00075"></a>00075 StkFloat <a class="code" href="classDelay.html#a8">contentsAt</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> tapDelay);
|
||||
<a name="l00076"></a>00076
|
||||
<a name="l00078"></a>00078 StkFloat <a class="code" href="classDelay.html#a9">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
|
||||
<a name="l00079"></a>00079
|
||||
<a name="l00081"></a>00081
|
||||
<a name="l00084"></a>00084 <span class="keyword">virtual</span> StkFloat <a class="code" href="classDelay.html#a10">nextOut</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00085"></a>00085
|
||||
<a name="l00087"></a>00087 <span class="keyword">virtual</span> StkFloat <a class="code" href="classDelay.html#a11">tick</a>(StkFloat sample);
|
||||
<a name="l00088"></a>00088
|
||||
<a name="l00090"></a>00090
|
||||
<a name="l00096"></a>00096 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>& <a class="code" href="classDelay.html#a11">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>& frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 0 );
|
||||
<a name="l00097"></a>00097
|
||||
<a name="l00098"></a>00098 <span class="keyword">protected</span>:
|
||||
<a name="l00099"></a>00099
|
||||
<a name="l00100"></a>00100 <span class="comment">// This function must be implemented in all subclasses. It is used</span>
|
||||
<a name="l00101"></a>00101 <span class="comment">// to get around a C++ problem with overloaded virtual functions.</span>
|
||||
<a name="l00102"></a>00102 <span class="keyword">virtual</span> StkFloat computeSample( StkFloat input );
|
||||
<a name="l00103"></a>00103
|
||||
<a name="l00104"></a>00104 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> inPoint_;
|
||||
<a name="l00105"></a>00105 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> outPoint_;
|
||||
<a name="l00106"></a>00106 StkFloat delay_;
|
||||
<a name="l00107"></a>00107 };
|
||||
<a name="l00108"></a>00108
|
||||
<a name="l00109"></a>00109 <span class="preprocessor">#endif</span>
|
||||
<a name="l00110"></a>00110 <span class="preprocessor"></span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
60
doc/html/Drummer_8h-source.html
Normal file
60
doc/html/Drummer_8h-source.html
Normal file
@@ -0,0 +1,60 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Drummer.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00016"></a>00016 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00017"></a>00017
|
||||
<a name="l00018"></a>00018 <span class="preprocessor">#ifndef STK_DRUMMER_H</span>
|
||||
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define STK_DRUMMER_H</span>
|
||||
<a name="l00020"></a>00020 <span class="preprocessor"></span>
|
||||
<a name="l00021"></a>00021 <span class="preprocessor">#include "Instrmnt.h"</span>
|
||||
<a name="l00022"></a>00022 <span class="preprocessor">#include "FileWvIn.h"</span>
|
||||
<a name="l00023"></a>00023 <span class="preprocessor">#include "OnePole.h"</span>
|
||||
<a name="l00024"></a>00024
|
||||
<a name="l00025"></a>00025 <span class="keyword">const</span> <span class="keywordtype">int</span> DRUM_NUMWAVES = 11;
|
||||
<a name="l00026"></a>00026 <span class="keyword">const</span> <span class="keywordtype">int</span> DRUM_POLYPHONY = 4;
|
||||
<a name="l00027"></a>00027
|
||||
<a name="l00028"></a><a class="code" href="classDrummer.html">00028</a> <span class="keyword">class </span><a class="code" href="classDrummer.html">Drummer</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
<a name="l00029"></a>00029 {
|
||||
<a name="l00030"></a>00030 <span class="keyword">public</span>:
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00035"></a>00035 <a class="code" href="classDrummer.html#a0">Drummer</a>();
|
||||
<a name="l00036"></a>00036
|
||||
<a name="l00038"></a>00038 <a class="code" href="classDrummer.html#a1">~Drummer</a>();
|
||||
<a name="l00039"></a>00039
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00047"></a>00047 <span class="keywordtype">void</span> <a class="code" href="classDrummer.html#a2">noteOn</a>(StkFloat instrument, StkFloat amplitude);
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00050"></a>00050 <span class="keywordtype">void</span> <a class="code" href="classDrummer.html#a3">noteOff</a>(StkFloat amplitude);
|
||||
<a name="l00051"></a>00051
|
||||
<a name="l00052"></a>00052 <span class="keyword">protected</span>:
|
||||
<a name="l00053"></a>00053
|
||||
<a name="l00054"></a>00054 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00055"></a>00055
|
||||
<a name="l00056"></a>00056 <a class="code" href="classFileWvIn.html">FileWvIn</a> waves_[DRUM_POLYPHONY];
|
||||
<a name="l00057"></a>00057 <a class="code" href="classOnePole.html">OnePole</a> filters_[DRUM_POLYPHONY];
|
||||
<a name="l00058"></a>00058 std::vector<int> soundOrder_;
|
||||
<a name="l00059"></a>00059 std::vector<int> soundNumber_;
|
||||
<a name="l00060"></a>00060 <span class="keywordtype">int</span> nSounding_;
|
||||
<a name="l00061"></a>00061 };
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00063"></a>00063 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
56
doc/html/Echo_8h-source.html
Normal file
56
doc/html/Echo_8h-source.html
Normal file
@@ -0,0 +1,56 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Echo.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00009"></a>00009 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00010"></a>00010
|
||||
<a name="l00011"></a>00011 <span class="preprocessor">#ifndef STK_ECHO_H</span>
|
||||
<a name="l00012"></a>00012 <span class="preprocessor"></span><span class="preprocessor">#define STK_ECHO_H</span>
|
||||
<a name="l00013"></a>00013 <span class="preprocessor"></span>
|
||||
<a name="l00014"></a>00014 <span class="preprocessor">#include "Effect.h"</span>
|
||||
<a name="l00015"></a>00015 <span class="preprocessor">#include "Delay.h"</span>
|
||||
<a name="l00016"></a>00016
|
||||
<a name="l00017"></a><a class="code" href="classEcho.html">00017</a> <span class="keyword">class </span><a class="code" href="classEcho.html">Echo</a> : <span class="keyword">public</span> <a class="code" href="classEffect.html">Effect</a>
|
||||
<a name="l00018"></a>00018 {
|
||||
<a name="l00019"></a>00019 <span class="keyword">public</span>:
|
||||
<a name="l00021"></a>00021
|
||||
<a name="l00024"></a>00024 <a class="code" href="classEcho.html#a0">Echo</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> maximumDelay = (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>) <a class="code" href="classStk.html#e0">Stk::sampleRate</a>() );
|
||||
<a name="l00025"></a>00025
|
||||
<a name="l00027"></a>00027 <a class="code" href="classEcho.html#a1">~Echo</a>();
|
||||
<a name="l00028"></a>00028
|
||||
<a name="l00030"></a>00030 <span class="keywordtype">void</span> <a class="code" href="classEcho.html#a2">clear</a>();
|
||||
<a name="l00031"></a>00031
|
||||
<a name="l00033"></a>00033 <span class="keywordtype">void</span> <a class="code" href="classEcho.html#a3">setMaximumDelay</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> delay );
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00036"></a>00036 <span class="keywordtype">void</span> <a class="code" href="classEcho.html#a4">setDelay</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> delay );
|
||||
<a name="l00037"></a>00037
|
||||
<a name="l00038"></a>00038 <span class="keyword">protected</span>:
|
||||
<a name="l00039"></a>00039
|
||||
<a name="l00040"></a>00040 StkFloat computeSample( StkFloat input );
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00042"></a>00042 <a class="code" href="classDelay.html">Delay</a> delayLine_;
|
||||
<a name="l00043"></a>00043 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> length_;
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00045"></a>00045 };
|
||||
<a name="l00046"></a>00046
|
||||
<a name="l00047"></a>00047 <span class="preprocessor">#endif</span>
|
||||
<a name="l00048"></a>00048 <span class="preprocessor"></span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
69
doc/html/Effect_8h-source.html
Normal file
69
doc/html/Effect_8h-source.html
Normal file
@@ -0,0 +1,69 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Effect.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00010"></a>00010 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00011"></a>00011
|
||||
<a name="l00012"></a>00012 <span class="preprocessor">#include "Stk.h"</span>
|
||||
<a name="l00013"></a>00013
|
||||
<a name="l00014"></a>00014 <span class="preprocessor">#ifndef STK_EFFECT_H</span>
|
||||
<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#define STK_EFFECT_H</span>
|
||||
<a name="l00016"></a>00016 <span class="preprocessor"></span>
|
||||
<a name="l00017"></a><a class="code" href="classEffect.html">00017</a> <span class="keyword">class </span><a class="code" href="classEffect.html">Effect</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
|
||||
<a name="l00018"></a>00018 {
|
||||
<a name="l00019"></a>00019 <span class="keyword">public</span>:
|
||||
<a name="l00021"></a>00021 <a class="code" href="classEffect.html#a0">Effect</a>();
|
||||
<a name="l00022"></a>00022
|
||||
<a name="l00024"></a>00024 <span class="keyword">virtual</span> <a class="code" href="classEffect.html#a1">~Effect</a>();
|
||||
<a name="l00025"></a>00025
|
||||
<a name="l00027"></a>00027 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classEffect.html#a2">clear</a>() = 0;
|
||||
<a name="l00028"></a>00028
|
||||
<a name="l00030"></a>00030 <span class="keywordtype">void</span> <a class="code" href="classEffect.html#a3">setEffectMix</a>(StkFloat mix);
|
||||
<a name="l00031"></a>00031
|
||||
<a name="l00033"></a>00033 StkFloat <a class="code" href="classEffect.html#a4">lastOut</a>() <span class="keyword">const</span>;
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00036"></a>00036 StkFloat <a class="code" href="classEffect.html#a5">lastOutLeft</a>() <span class="keyword">const</span>;
|
||||
<a name="l00037"></a>00037
|
||||
<a name="l00039"></a>00039 StkFloat <a class="code" href="classEffect.html#a6">lastOutRight</a>() <span class="keyword">const</span>;
|
||||
<a name="l00040"></a>00040
|
||||
<a name="l00042"></a>00042 StkFloat <a class="code" href="classEffect.html#a7">tick</a>( StkFloat input );
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00045"></a>00045
|
||||
<a name="l00051"></a>00051 <a class="code" href="classStkFrames.html">StkFrames</a>& <a class="code" href="classEffect.html#a7">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>& frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 0 );
|
||||
<a name="l00052"></a>00052
|
||||
<a name="l00053"></a>00053 <span class="keyword">protected</span>:
|
||||
<a name="l00054"></a>00054
|
||||
<a name="l00055"></a>00055 <span class="comment">// This abstract function must be implemented in all subclasses.</span>
|
||||
<a name="l00056"></a>00056 <span class="comment">// It is used to get around a C++ problem with overloaded virtual</span>
|
||||
<a name="l00057"></a>00057 <span class="comment">// functions.</span>
|
||||
<a name="l00058"></a>00058 <span class="keyword">virtual</span> StkFloat computeSample( StkFloat input ) = 0;
|
||||
<a name="l00059"></a>00059
|
||||
<a name="l00060"></a>00060 <span class="comment">// Returns true if argument value is prime.</span>
|
||||
<a name="l00061"></a>00061 <span class="keywordtype">bool</span> isPrime( <span class="keywordtype">int</span> number );
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00063"></a>00063 StkFloat lastOutput_[2];
|
||||
<a name="l00064"></a>00064 StkFloat effectMix_;
|
||||
<a name="l00065"></a>00065
|
||||
<a name="l00066"></a>00066 };
|
||||
<a name="l00067"></a>00067
|
||||
<a name="l00068"></a>00068 <span class="preprocessor">#endif</span>
|
||||
<a name="l00069"></a>00069 <span class="preprocessor"></span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
68
doc/html/Envelope_8h-source.html
Normal file
68
doc/html/Envelope_8h-source.html
Normal file
@@ -0,0 +1,68 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Envelope.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00014"></a>00014 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00015"></a>00015
|
||||
<a name="l00016"></a>00016 <span class="preprocessor">#ifndef STK_ENVELOPE_H</span>
|
||||
<a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#define STK_ENVELOPE_H</span>
|
||||
<a name="l00018"></a>00018 <span class="preprocessor"></span>
|
||||
<a name="l00019"></a>00019 <span class="preprocessor">#include "Generator.h"</span>
|
||||
<a name="l00020"></a>00020
|
||||
<a name="l00021"></a><a class="code" href="classEnvelope.html">00021</a> <span class="keyword">class </span><a class="code" href="classEnvelope.html">Envelope</a> : <span class="keyword">public</span> <a class="code" href="classGenerator.html">Generator</a>
|
||||
<a name="l00022"></a>00022 {
|
||||
<a name="l00023"></a>00023 <span class="keyword">public</span>:
|
||||
<a name="l00024"></a>00024
|
||||
<a name="l00026"></a>00026 <a class="code" href="classEnvelope.html#a0">Envelope</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00027"></a>00027
|
||||
<a name="l00029"></a>00029 <a class="code" href="classEnvelope.html#a0">Envelope</a>( <span class="keyword">const</span> <a class="code" href="classEnvelope.html">Envelope</a>& e );
|
||||
<a name="l00030"></a>00030
|
||||
<a name="l00032"></a>00032 <span class="keyword">virtual</span> <a class="code" href="classEnvelope.html#a2">~Envelope</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00033"></a>00033
|
||||
<a name="l00035"></a>00035 <a class="code" href="classEnvelope.html">Envelope</a>& <a class="code" href="classEnvelope.html#a3">operator= </a>( <span class="keyword">const</span> <a class="code" href="classEnvelope.html">Envelope</a>& e );
|
||||
<a name="l00036"></a>00036
|
||||
<a name="l00038"></a>00038 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classEnvelope.html#a4">keyOn</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00039"></a>00039
|
||||
<a name="l00041"></a>00041 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classEnvelope.html#a5">keyOff</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00042"></a>00042
|
||||
<a name="l00044"></a>00044 <span class="keywordtype">void</span> <a class="code" href="classEnvelope.html#a6">setRate</a>(StkFloat rate);
|
||||
<a name="l00045"></a>00045
|
||||
<a name="l00047"></a>00047 <span class="keywordtype">void</span> <a class="code" href="classEnvelope.html#a7">setTime</a>(StkFloat time);
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00050"></a>00050 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classEnvelope.html#a8">setTarget</a>(StkFloat target);
|
||||
<a name="l00051"></a>00051
|
||||
<a name="l00053"></a>00053 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classEnvelope.html#a9">setValue</a>(StkFloat value);
|
||||
<a name="l00054"></a>00054
|
||||
<a name="l00056"></a>00056 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classEnvelope.html#a10">getState</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
|
||||
<a name="l00057"></a>00057
|
||||
<a name="l00058"></a>00058 <span class="keyword">protected</span>:
|
||||
<a name="l00059"></a>00059
|
||||
<a name="l00060"></a>00060 <span class="keyword">virtual</span> StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00061"></a>00061 <span class="keyword">virtual</span> <span class="keywordtype">void</span> sampleRateChanged( StkFloat newRate, StkFloat oldRate );
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00063"></a>00063 StkFloat value_;
|
||||
<a name="l00064"></a>00064 StkFloat target_;
|
||||
<a name="l00065"></a>00065 StkFloat rate_;
|
||||
<a name="l00066"></a>00066 <span class="keywordtype">int</span> state_;
|
||||
<a name="l00067"></a>00067 };
|
||||
<a name="l00068"></a>00068
|
||||
<a name="l00069"></a>00069 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
54
doc/html/FMVoices_8h-source.html
Normal file
54
doc/html/FMVoices_8h-source.html
Normal file
@@ -0,0 +1,54 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>FMVoices.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00031"></a>00031 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00033"></a>00033 <span class="preprocessor">#ifndef STK_FMVOICES_H</span>
|
||||
<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define STK_FMVOICES_H</span>
|
||||
<a name="l00035"></a>00035 <span class="preprocessor"></span>
|
||||
<a name="l00036"></a>00036 <span class="preprocessor">#include "FM.h"</span>
|
||||
<a name="l00037"></a>00037
|
||||
<a name="l00038"></a><a class="code" href="classFMVoices.html">00038</a> <span class="keyword">class </span><a class="code" href="classFMVoices.html">FMVoices</a> : <span class="keyword">public</span> <a class="code" href="classFM.html">FM</a>
|
||||
<a name="l00039"></a>00039 {
|
||||
<a name="l00040"></a>00040 <span class="keyword">public</span>:
|
||||
<a name="l00042"></a>00042
|
||||
<a name="l00045"></a>00045 <a class="code" href="classFMVoices.html#a0">FMVoices</a>();
|
||||
<a name="l00046"></a>00046
|
||||
<a name="l00048"></a>00048 <a class="code" href="classFMVoices.html#a1">~FMVoices</a>();
|
||||
<a name="l00049"></a>00049
|
||||
<a name="l00051"></a>00051 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFMVoices.html#a2">setFrequency</a>(StkFloat frequency);
|
||||
<a name="l00052"></a>00052
|
||||
<a name="l00054"></a>00054 <span class="keywordtype">void</span> <a class="code" href="classFMVoices.html#a3">noteOn</a>(StkFloat frequency, StkFloat amplitude);
|
||||
<a name="l00055"></a>00055
|
||||
<a name="l00057"></a>00057 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFMVoices.html#a4">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
|
||||
<a name="l00058"></a>00058
|
||||
<a name="l00059"></a>00059 <span class="keyword">protected</span>:
|
||||
<a name="l00060"></a>00060
|
||||
<a name="l00061"></a>00061 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00063"></a>00063 <span class="keywordtype">int</span> currentVowel_;
|
||||
<a name="l00064"></a>00064 StkFloat tilt_[3];
|
||||
<a name="l00065"></a>00065 StkFloat mods_[3];
|
||||
<a name="l00066"></a>00066 };
|
||||
<a name="l00067"></a>00067
|
||||
<a name="l00068"></a>00068 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
90
doc/html/FM_8h-source.html
Normal file
90
doc/html/FM_8h-source.html
Normal file
@@ -0,0 +1,90 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>FM.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00024"></a>00024 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00025"></a>00025
|
||||
<a name="l00026"></a>00026 <span class="preprocessor">#ifndef STK_FM_H</span>
|
||||
<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor">#define STK_FM_H</span>
|
||||
<a name="l00028"></a>00028 <span class="preprocessor"></span>
|
||||
<a name="l00029"></a>00029 <span class="preprocessor">#include "Instrmnt.h"</span>
|
||||
<a name="l00030"></a>00030 <span class="preprocessor">#include "ADSR.h"</span>
|
||||
<a name="l00031"></a>00031 <span class="preprocessor">#include "WaveLoop.h"</span>
|
||||
<a name="l00032"></a>00032 <span class="preprocessor">#include "SineWave.h"</span>
|
||||
<a name="l00033"></a>00033 <span class="preprocessor">#include "TwoZero.h"</span>
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00035"></a><a class="code" href="classFM.html">00035</a> <span class="keyword">class </span><a class="code" href="classFM.html">FM</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
<a name="l00036"></a>00036 {
|
||||
<a name="l00037"></a>00037 <span class="keyword">public</span>:
|
||||
<a name="l00039"></a>00039
|
||||
<a name="l00042"></a>00042 <a class="code" href="classFM.html#a0">FM</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> operators = 4 );
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00045"></a>00045 <span class="keyword">virtual</span> <a class="code" href="classFM.html#a1">~FM</a>();
|
||||
<a name="l00046"></a>00046
|
||||
<a name="l00048"></a>00048 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a2">clear</a>();
|
||||
<a name="l00049"></a>00049
|
||||
<a name="l00051"></a>00051 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a3">loadWaves</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> **filenames);
|
||||
<a name="l00052"></a>00052
|
||||
<a name="l00054"></a>00054 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFM.html#a4">setFrequency</a>(StkFloat frequency);
|
||||
<a name="l00055"></a>00055
|
||||
<a name="l00057"></a>00057 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a5">setRatio</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> waveIndex, StkFloat ratio);
|
||||
<a name="l00058"></a>00058
|
||||
<a name="l00060"></a>00060 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a6">setGain</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> waveIndex, StkFloat gain);
|
||||
<a name="l00061"></a>00061
|
||||
<a name="l00063"></a>00063 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a7">setModulationSpeed</a>(StkFloat mSpeed);
|
||||
<a name="l00064"></a>00064
|
||||
<a name="l00066"></a>00066 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a8">setModulationDepth</a>(StkFloat mDepth);
|
||||
<a name="l00067"></a>00067
|
||||
<a name="l00069"></a>00069 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a9">setControl1</a>(StkFloat cVal);
|
||||
<a name="l00070"></a>00070
|
||||
<a name="l00072"></a>00072 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a10">setControl2</a>(StkFloat cVal);
|
||||
<a name="l00073"></a>00073
|
||||
<a name="l00075"></a>00075 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a11">keyOn</a>();
|
||||
<a name="l00076"></a>00076
|
||||
<a name="l00078"></a>00078 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a12">keyOff</a>();
|
||||
<a name="l00079"></a>00079
|
||||
<a name="l00081"></a>00081 <span class="keywordtype">void</span> <a class="code" href="classFM.html#a13">noteOff</a>(StkFloat amplitude);
|
||||
<a name="l00082"></a>00082
|
||||
<a name="l00084"></a>00084 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFM.html#a14">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
|
||||
<a name="l00085"></a>00085
|
||||
<a name="l00086"></a>00086 <span class="keyword">protected</span>:
|
||||
<a name="l00087"></a>00087
|
||||
<a name="l00088"></a>00088 <span class="keyword">virtual</span> StkFloat computeSample( <span class="keywordtype">void</span> ) = 0;
|
||||
<a name="l00089"></a>00089
|
||||
<a name="l00090"></a>00090 std::vector<ADSR *> adsr_;
|
||||
<a name="l00091"></a>00091 std::vector<WaveLoop *> waves_;
|
||||
<a name="l00092"></a>00092 <a class="code" href="classSineWave.html">SineWave</a> vibrato_;
|
||||
<a name="l00093"></a>00093 <a class="code" href="classTwoZero.html">TwoZero</a> twozero_;
|
||||
<a name="l00094"></a>00094 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nOperators_;
|
||||
<a name="l00095"></a>00095 StkFloat baseFrequency_;
|
||||
<a name="l00096"></a>00096 std::vector<StkFloat> ratios_;
|
||||
<a name="l00097"></a>00097 std::vector<StkFloat> gains_;
|
||||
<a name="l00098"></a>00098 StkFloat modDepth_;
|
||||
<a name="l00099"></a>00099 StkFloat control1_;
|
||||
<a name="l00100"></a>00100 StkFloat control2_;
|
||||
<a name="l00101"></a>00101 StkFloat fmGains_[100];
|
||||
<a name="l00102"></a>00102 StkFloat fmSusLevels_[16];
|
||||
<a name="l00103"></a>00103 StkFloat fmAttTimes_[32];
|
||||
<a name="l00104"></a>00104
|
||||
<a name="l00105"></a>00105 };
|
||||
<a name="l00106"></a>00106
|
||||
<a name="l00107"></a>00107 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
88
doc/html/FileRead_8h-source.html
Normal file
88
doc/html/FileRead_8h-source.html
Normal file
@@ -0,0 +1,88 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>FileRead.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00030"></a>00030 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00031"></a>00031
|
||||
<a name="l00032"></a>00032 <span class="preprocessor">#ifndef STK_FILEREAD_H</span>
|
||||
<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define STK_FILEREAD_H</span>
|
||||
<a name="l00034"></a>00034 <span class="preprocessor"></span>
|
||||
<a name="l00035"></a>00035 <span class="preprocessor">#include "Stk.h"</span>
|
||||
<a name="l00036"></a>00036
|
||||
<a name="l00037"></a><a class="code" href="classFileRead.html">00037</a> <span class="keyword">class </span><a class="code" href="classFileRead.html">FileRead</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
|
||||
<a name="l00038"></a>00038 {
|
||||
<a name="l00039"></a>00039 <span class="keyword">public</span>:
|
||||
<a name="l00041"></a>00041 <a class="code" href="classFileRead.html#a0">FileRead</a>();
|
||||
<a name="l00042"></a>00042
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00050"></a>00050 <a class="code" href="classFileRead.html#a0">FileRead</a>( std::string fileName, <span class="keywordtype">bool</span> typeRaw = <span class="keyword">false</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1,
|
||||
<a name="l00051"></a>00051 StkFormat format = <a class="code" href="classStk.html#s1">STK_SINT16</a>, StkFloat rate = 22050.0 );
|
||||
<a name="l00052"></a>00052
|
||||
<a name="l00054"></a>00054 <a class="code" href="classFileRead.html#a2">~FileRead</a>();
|
||||
<a name="l00055"></a>00055
|
||||
<a name="l00057"></a>00057
|
||||
<a name="l00063"></a>00063 <span class="keywordtype">void</span> <a class="code" href="classFileRead.html#a3">open</a>( std::string fileName, <span class="keywordtype">bool</span> typeRaw = <span class="keyword">false</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1,
|
||||
<a name="l00064"></a>00064 StkFormat format = <a class="code" href="classStk.html#s1">STK_SINT16</a>, StkFloat rate = 22050.0 );
|
||||
<a name="l00065"></a>00065
|
||||
<a name="l00067"></a>00067 <span class="keywordtype">void</span> <a class="code" href="classFileRead.html#a4">close</a>( <span class="keywordtype">void</span> );
|
||||
<a name="l00068"></a>00068
|
||||
<a name="l00070"></a>00070 <span class="keywordtype">bool</span> <a class="code" href="classFileRead.html#a5">isOpen</a>( <span class="keywordtype">void</span> );
|
||||
<a name="l00071"></a>00071
|
||||
<a name="l00073"></a><a class="code" href="classFileRead.html#a6">00073</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classFileRead.html#a6">fileSize</a>( <span class="keywordtype">void</span> )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fileSize_; };
|
||||
<a name="l00074"></a>00074
|
||||
<a name="l00076"></a><a class="code" href="classFileRead.html#a7">00076</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classFileRead.html#a7">channels</a>( <span class="keywordtype">void</span> )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> channels_; };
|
||||
<a name="l00077"></a>00077
|
||||
<a name="l00079"></a>00079
|
||||
<a name="l00084"></a><a class="code" href="classFileRead.html#a8">00084</a> StkFloat <a class="code" href="classFileRead.html#a8">fileRate</a>( <span class="keywordtype">void</span> )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fileRate_; };
|
||||
<a name="l00085"></a>00085
|
||||
<a name="l00087"></a>00087
|
||||
<a name="l00099"></a>00099 <span class="keywordtype">void</span> <a class="code" href="classFileRead.html#a9">read</a>( <a class="code" href="classStkFrames.html">StkFrames</a>& buffer, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> startFrame = 0, <span class="keywordtype">bool</span> doNormalize = <span class="keyword">true</span> );
|
||||
<a name="l00100"></a>00100
|
||||
<a name="l00101"></a>00101 <span class="keyword">protected</span>:
|
||||
<a name="l00102"></a>00102
|
||||
<a name="l00103"></a>00103 <span class="comment">// Get STK RAW file information.</span>
|
||||
<a name="l00104"></a>00104 <span class="keywordtype">bool</span> getRawInfo( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels,
|
||||
<a name="l00105"></a>00105 StkFormat format, StkFloat rate );
|
||||
<a name="l00106"></a>00106
|
||||
<a name="l00107"></a>00107 <span class="comment">// Get WAV file header information.</span>
|
||||
<a name="l00108"></a>00108 <span class="keywordtype">bool</span> getWavInfo( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
|
||||
<a name="l00109"></a>00109
|
||||
<a name="l00110"></a>00110 <span class="comment">// Get SND (AU) file header information.</span>
|
||||
<a name="l00111"></a>00111 <span class="keywordtype">bool</span> getSndInfo( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
|
||||
<a name="l00112"></a>00112
|
||||
<a name="l00113"></a>00113 <span class="comment">// Get AIFF file header information.</span>
|
||||
<a name="l00114"></a>00114 <span class="keywordtype">bool</span> getAifInfo( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
|
||||
<a name="l00115"></a>00115
|
||||
<a name="l00116"></a>00116 <span class="comment">// Get MAT-file header information.</span>
|
||||
<a name="l00117"></a>00117 <span class="keywordtype">bool</span> getMatInfo( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
|
||||
<a name="l00118"></a>00118
|
||||
<a name="l00119"></a>00119 FILE *fd_;
|
||||
<a name="l00120"></a>00120 <span class="keywordtype">bool</span> byteswap_;
|
||||
<a name="l00121"></a>00121 <span class="keywordtype">bool</span> wavFile_;
|
||||
<a name="l00122"></a>00122 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> fileSize_;
|
||||
<a name="l00123"></a>00123 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> dataOffset_;
|
||||
<a name="l00124"></a>00124 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channels_;
|
||||
<a name="l00125"></a>00125 StkFormat dataType_;
|
||||
<a name="l00126"></a>00126 StkFloat fileRate_;
|
||||
<a name="l00127"></a>00127 };
|
||||
<a name="l00128"></a>00128
|
||||
<a name="l00129"></a>00129 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
99
doc/html/FileWrite_8h-source.html
Normal file
99
doc/html/FileWrite_8h-source.html
Normal file
@@ -0,0 +1,99 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>FileWrite.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00022"></a>00022 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00023"></a>00023
|
||||
<a name="l00024"></a>00024 <span class="preprocessor">#ifndef STK_FILEWRITE_H</span>
|
||||
<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#define STK_FILEWRITE_H</span>
|
||||
<a name="l00026"></a>00026 <span class="preprocessor"></span>
|
||||
<a name="l00027"></a>00027 <span class="preprocessor">#include "Stk.h"</span>
|
||||
<a name="l00028"></a>00028
|
||||
<a name="l00029"></a><a class="code" href="classFileWrite.html">00029</a> <span class="keyword">class </span><a class="code" href="classFileWrite.html">FileWrite</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
|
||||
<a name="l00030"></a>00030 {
|
||||
<a name="l00031"></a>00031 <span class="keyword">public</span>:
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00033"></a>00033 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> FILE_TYPE;
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00035"></a><a class="code" href="classFileWrite.html#s0">00035</a> <span class="keyword">static</span> <span class="keyword">const</span> FILE_TYPE <a class="code" href="classFileWrite.html#s0">FILE_RAW</a>;
|
||||
<a name="l00036"></a><a class="code" href="classFileWrite.html#s1">00036</a> <span class="keyword">static</span> <span class="keyword">const</span> FILE_TYPE <a class="code" href="classFileWrite.html#s1">FILE_WAV</a>;
|
||||
<a name="l00037"></a><a class="code" href="classFileWrite.html#s2">00037</a> <span class="keyword">static</span> <span class="keyword">const</span> FILE_TYPE <a class="code" href="classFileWrite.html#s2">FILE_SND</a>;
|
||||
<a name="l00038"></a><a class="code" href="classFileWrite.html#s3">00038</a> <span class="keyword">static</span> <span class="keyword">const</span> FILE_TYPE <a class="code" href="classFileWrite.html#s3">FILE_AIF</a>;
|
||||
<a name="l00039"></a><a class="code" href="classFileWrite.html#s4">00039</a> <span class="keyword">static</span> <span class="keyword">const</span> FILE_TYPE <a class="code" href="classFileWrite.html#s4">FILE_MAT</a>;
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00042"></a>00042 <a class="code" href="classFileWrite.html#a0">FileWrite</a>();
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00045"></a>00045
|
||||
<a name="l00048"></a>00048 <a class="code" href="classFileWrite.html#a0">FileWrite</a>( std::string fileName, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1, FILE_TYPE type = <a class="code" href="classFileWrite.html#s1">FILE_WAV</a>, Stk::StkFormat format = <a class="code" href="classStk.html#s1">STK_SINT16</a> );
|
||||
<a name="l00049"></a>00049
|
||||
<a name="l00051"></a>00051 <span class="keyword">virtual</span> <a class="code" href="classFileWrite.html#a2">~FileWrite</a>();
|
||||
<a name="l00052"></a>00052
|
||||
<a name="l00054"></a>00054
|
||||
<a name="l00057"></a>00057 <span class="keywordtype">void</span> <a class="code" href="classFileWrite.html#a3">open</a>( std::string fileName, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1,
|
||||
<a name="l00058"></a>00058 FileWrite::FILE_TYPE type = <a class="code" href="classFileWrite.html#s1">FILE_WAV</a>, Stk::StkFormat format = <a class="code" href="classStk.html#s1">STK_SINT16</a> );
|
||||
<a name="l00059"></a>00059
|
||||
<a name="l00061"></a>00061 <span class="keywordtype">void</span> <a class="code" href="classFileWrite.html#a4">close</a>( <span class="keywordtype">void</span> );
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00064"></a>00064 <span class="keywordtype">bool</span> <a class="code" href="classFileWrite.html#a5">isOpen</a>( <span class="keywordtype">void</span> );
|
||||
<a name="l00065"></a>00065
|
||||
<a name="l00067"></a>00067
|
||||
<a name="l00072"></a>00072 <span class="keywordtype">void</span> <a class="code" href="classFileWrite.html#a6">write</a>( <a class="code" href="classStkFrames.html">StkFrames</a>& buffer );
|
||||
<a name="l00073"></a>00073
|
||||
<a name="l00074"></a>00074 <span class="keyword">protected</span>:
|
||||
<a name="l00075"></a>00075
|
||||
<a name="l00076"></a>00076 <span class="comment">// Write STK RAW file header.</span>
|
||||
<a name="l00077"></a>00077 <span class="keywordtype">bool</span> setRawFile( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
|
||||
<a name="l00078"></a>00078
|
||||
<a name="l00079"></a>00079 <span class="comment">// Write WAV file header.</span>
|
||||
<a name="l00080"></a>00080 <span class="keywordtype">bool</span> setWavFile( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
|
||||
<a name="l00081"></a>00081
|
||||
<a name="l00082"></a>00082 <span class="comment">// Close WAV file, updating the header.</span>
|
||||
<a name="l00083"></a>00083 <span class="keywordtype">void</span> closeWavFile( <span class="keywordtype">void</span> );
|
||||
<a name="l00084"></a>00084
|
||||
<a name="l00085"></a>00085 <span class="comment">// Write SND (AU) file header.</span>
|
||||
<a name="l00086"></a>00086 <span class="keywordtype">bool</span> setSndFile( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
|
||||
<a name="l00087"></a>00087
|
||||
<a name="l00088"></a>00088 <span class="comment">// Close SND file, updating the header.</span>
|
||||
<a name="l00089"></a>00089 <span class="keywordtype">void</span> closeSndFile( <span class="keywordtype">void</span> );
|
||||
<a name="l00090"></a>00090
|
||||
<a name="l00091"></a>00091 <span class="comment">// Write AIFF file header.</span>
|
||||
<a name="l00092"></a>00092 <span class="keywordtype">bool</span> setAifFile( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
|
||||
<a name="l00093"></a>00093
|
||||
<a name="l00094"></a>00094 <span class="comment">// Close AIFF file, updating the header.</span>
|
||||
<a name="l00095"></a>00095 <span class="keywordtype">void</span> closeAifFile( <span class="keywordtype">void</span> );
|
||||
<a name="l00096"></a>00096
|
||||
<a name="l00097"></a>00097 <span class="comment">// Write MAT-file header.</span>
|
||||
<a name="l00098"></a>00098 <span class="keywordtype">bool</span> setMatFile( <span class="keyword">const</span> <span class="keywordtype">char</span> *fileName );
|
||||
<a name="l00099"></a>00099
|
||||
<a name="l00100"></a>00100 <span class="comment">// Close MAT-file, updating the header.</span>
|
||||
<a name="l00101"></a>00101 <span class="keywordtype">void</span> closeMatFile( <span class="keywordtype">void</span> );
|
||||
<a name="l00102"></a>00102
|
||||
<a name="l00103"></a>00103 FILE *fd_;
|
||||
<a name="l00104"></a>00104 FILE_TYPE fileType_;
|
||||
<a name="l00105"></a>00105 StkFormat dataType_;
|
||||
<a name="l00106"></a>00106 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channels_;
|
||||
<a name="l00107"></a>00107 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> frameCounter_;
|
||||
<a name="l00108"></a>00108 <span class="keywordtype">bool</span> byteswap_;
|
||||
<a name="l00109"></a>00109
|
||||
<a name="l00110"></a>00110 };
|
||||
<a name="l00111"></a>00111
|
||||
<a name="l00112"></a>00112 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
92
doc/html/FileWvIn_8h-source.html
Normal file
92
doc/html/FileWvIn_8h-source.html
Normal file
@@ -0,0 +1,92 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>FileWvIn.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00032"></a>00032 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00033"></a>00033
|
||||
<a name="l00034"></a>00034 <span class="preprocessor">#ifndef STK_FILEWVIN_H</span>
|
||||
<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">#define STK_FILEWVIN_H</span>
|
||||
<a name="l00036"></a>00036 <span class="preprocessor"></span>
|
||||
<a name="l00037"></a>00037 <span class="preprocessor">#include "WvIn.h"</span>
|
||||
<a name="l00038"></a>00038 <span class="preprocessor">#include "FileRead.h"</span>
|
||||
<a name="l00039"></a>00039
|
||||
<a name="l00040"></a><a class="code" href="classFileWvIn.html">00040</a> <span class="keyword">class </span><a class="code" href="classFileWvIn.html">FileWvIn</a> : <span class="keyword">public</span> <a class="code" href="classWvIn.html">WvIn</a>
|
||||
<a name="l00041"></a>00041 {
|
||||
<a name="l00042"></a>00042 <span class="keyword">public</span>:
|
||||
<a name="l00044"></a>00044 <a class="code" href="classFileWvIn.html#a0">FileWvIn</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> chunkThreshold = 1000000, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> chunkSize = 1024 );
|
||||
<a name="l00045"></a>00045
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00051"></a>00051 <a class="code" href="classFileWvIn.html#a0">FileWvIn</a>( std::string fileName, <span class="keywordtype">bool</span> raw = <span class="keyword">false</span>, <span class="keywordtype">bool</span> doNormalize = <span class="keyword">true</span>,
|
||||
<a name="l00052"></a>00052 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> chunkThreshold = 1000000, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> chunkSize = 1024 );
|
||||
<a name="l00053"></a>00053
|
||||
<a name="l00055"></a>00055 <span class="keyword">virtual</span> <a class="code" href="classFileWvIn.html#a2">~FileWvIn</a>();
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00058"></a>00058
|
||||
<a name="l00067"></a>00067 <span class="keywordtype">void</span> <a class="code" href="classFileWvIn.html#a3">openFile</a>( std::string fileName, <span class="keywordtype">bool</span> raw = <span class="keyword">false</span>, <span class="keywordtype">bool</span> doNormalize = <span class="keyword">true</span> );
|
||||
<a name="l00068"></a>00068
|
||||
<a name="l00070"></a>00070 <span class="keywordtype">void</span> <a class="code" href="classFileWvIn.html#a4">closeFile</a>( <span class="keywordtype">void</span> );
|
||||
<a name="l00071"></a>00071
|
||||
<a name="l00073"></a>00073 <span class="keywordtype">void</span> <a class="code" href="classFileWvIn.html#a5">reset</a>( <span class="keywordtype">void</span> );
|
||||
<a name="l00074"></a>00074
|
||||
<a name="l00076"></a>00076
|
||||
<a name="l00080"></a>00080 <span class="keywordtype">void</span> <a class="code" href="classFileWvIn.html#a6">normalize</a>( <span class="keywordtype">void</span> );
|
||||
<a name="l00081"></a>00081
|
||||
<a name="l00083"></a>00083
|
||||
<a name="l00087"></a>00087 <span class="keywordtype">void</span> <a class="code" href="classFileWvIn.html#a6">normalize</a>( StkFloat peak );
|
||||
<a name="l00088"></a>00088
|
||||
<a name="l00090"></a><a class="code" href="classFileWvIn.html#a8">00090</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classFileWvIn.html#a8">getSize</a>( <span class="keywordtype">void</span> )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data_.<a class="code" href="classStkFrames.html#a13">frames</a>(); };
|
||||
<a name="l00091"></a>00091
|
||||
<a name="l00093"></a>00093
|
||||
<a name="l00098"></a><a class="code" href="classFileWvIn.html#a9">00098</a> StkFloat <a class="code" href="classFileWvIn.html#a9">getFileRate</a>( <span class="keywordtype">void</span> )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data_.<a class="code" href="classStkFrames.html#a15">dataRate</a>(); };
|
||||
<a name="l00099"></a>00099
|
||||
<a name="l00101"></a><a class="code" href="classFileWvIn.html#a10">00101</a> <span class="keywordtype">bool</span> <a class="code" href="classFileWvIn.html#a10">isFinished</a>( <span class="keywordtype">void</span> )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> finished_; };
|
||||
<a name="l00102"></a>00102
|
||||
<a name="l00104"></a>00104
|
||||
<a name="l00107"></a>00107 <span class="keywordtype">void</span> <a class="code" href="classFileWvIn.html#a11">setRate</a>( StkFloat rate );
|
||||
<a name="l00108"></a>00108
|
||||
<a name="l00110"></a>00110
|
||||
<a name="l00113"></a>00113 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFileWvIn.html#a12">addTime</a>( StkFloat time );
|
||||
<a name="l00114"></a>00114
|
||||
<a name="l00116"></a>00116
|
||||
<a name="l00122"></a><a class="code" href="classFileWvIn.html#a13">00122</a> <span class="keywordtype">void</span> <a class="code" href="classFileWvIn.html#a13">setInterpolate</a>( <span class="keywordtype">bool</span> doInterpolate ) { interpolate_ = doInterpolate; };
|
||||
<a name="l00123"></a>00123
|
||||
<a name="l00124"></a>00124 StkFloat lastOut( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
|
||||
<a name="l00125"></a>00125
|
||||
<a name="l00126"></a>00126 <span class="keyword">protected</span>:
|
||||
<a name="l00127"></a>00127
|
||||
<a name="l00128"></a>00128 <span class="keyword">virtual</span> <span class="keywordtype">void</span> computeFrame( <span class="keywordtype">void</span> );
|
||||
<a name="l00129"></a>00129 <span class="keyword">virtual</span> <span class="keywordtype">void</span> sampleRateChanged( StkFloat newRate, StkFloat oldRate );
|
||||
<a name="l00130"></a>00130
|
||||
<a name="l00131"></a>00131 <a class="code" href="classFileRead.html">FileRead</a> file_;
|
||||
<a name="l00132"></a>00132 <span class="keywordtype">bool</span> finished_;
|
||||
<a name="l00133"></a>00133 <span class="keywordtype">bool</span> interpolate_;
|
||||
<a name="l00134"></a>00134 <span class="keywordtype">bool</span> normalizing_;
|
||||
<a name="l00135"></a>00135 <span class="keywordtype">bool</span> chunking_;
|
||||
<a name="l00136"></a>00136 StkFloat time_;
|
||||
<a name="l00137"></a>00137 StkFloat rate_;
|
||||
<a name="l00138"></a>00138 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> chunkThreshold_;
|
||||
<a name="l00139"></a>00139 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> chunkSize_;
|
||||
<a name="l00140"></a>00140 <span class="keywordtype">long</span> chunkPointer_;
|
||||
<a name="l00141"></a>00141
|
||||
<a name="l00142"></a>00142 };
|
||||
<a name="l00143"></a>00143
|
||||
<a name="l00144"></a>00144 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
72
doc/html/FileWvOut_8h-source.html
Normal file
72
doc/html/FileWvOut_8h-source.html
Normal file
@@ -0,0 +1,72 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>FileWvOut.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00022"></a>00022 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00023"></a>00023
|
||||
<a name="l00024"></a>00024 <span class="preprocessor">#ifndef STK_FILEWVOUT_H</span>
|
||||
<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#define STK_FILEWVOUT_H</span>
|
||||
<a name="l00026"></a>00026 <span class="preprocessor"></span>
|
||||
<a name="l00027"></a>00027 <span class="preprocessor">#include "WvOut.h"</span>
|
||||
<a name="l00028"></a>00028 <span class="preprocessor">#include "FileWrite.h"</span>
|
||||
<a name="l00029"></a>00029
|
||||
<a name="l00030"></a><a class="code" href="classFileWvOut.html">00030</a> <span class="keyword">class </span><a class="code" href="classFileWvOut.html">FileWvOut</a> : <span class="keyword">public</span> <a class="code" href="classWvOut.html">WvOut</a>
|
||||
<a name="l00031"></a>00031 {
|
||||
<a name="l00032"></a>00032 <span class="keyword">public</span>:
|
||||
<a name="l00033"></a>00033
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00039"></a>00039 <a class="code" href="classFileWvOut.html#a0">FileWvOut</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bufferFrames = 1024 );
|
||||
<a name="l00040"></a>00040
|
||||
<a name="l00042"></a>00042
|
||||
<a name="l00045"></a>00045 <a class="code" href="classFileWvOut.html#a0">FileWvOut</a>( std::string fileName,
|
||||
<a name="l00046"></a>00046 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1,
|
||||
<a name="l00047"></a>00047 FileWrite::FILE_TYPE type = <a class="code" href="classFileWrite.html#s1">FileWrite::FILE_WAV</a>,
|
||||
<a name="l00048"></a>00048 Stk::StkFormat format = <a class="code" href="classStk.html#s1">STK_SINT16</a>,
|
||||
<a name="l00049"></a>00049 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bufferFrames = 1024 );
|
||||
<a name="l00050"></a>00050
|
||||
<a name="l00052"></a>00052 <span class="keyword">virtual</span> <a class="code" href="classFileWvOut.html#a2">~FileWvOut</a>();
|
||||
<a name="l00053"></a>00053
|
||||
<a name="l00055"></a>00055
|
||||
<a name="l00060"></a>00060 <span class="keywordtype">void</span> <a class="code" href="classFileWvOut.html#a3">openFile</a>( std::string fileName,
|
||||
<a name="l00061"></a>00061 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels,
|
||||
<a name="l00062"></a>00062 FileWrite::FILE_TYPE type,
|
||||
<a name="l00063"></a>00063 Stk::StkFormat format );
|
||||
<a name="l00064"></a>00064
|
||||
<a name="l00066"></a>00066
|
||||
<a name="l00070"></a>00070 <span class="keywordtype">void</span> <a class="code" href="classFileWvOut.html#a4">closeFile</a>( <span class="keywordtype">void</span> );
|
||||
<a name="l00071"></a>00071
|
||||
<a name="l00072"></a>00072 <span class="keyword">protected</span>:
|
||||
<a name="l00073"></a>00073
|
||||
<a name="l00074"></a>00074 <span class="keywordtype">void</span> computeSample( <span class="keyword">const</span> StkFloat sample );
|
||||
<a name="l00075"></a>00075
|
||||
<a name="l00076"></a>00076 <span class="keywordtype">void</span> computeFrames( <span class="keyword">const</span> <a class="code" href="classStkFrames.html">StkFrames</a>& frames );
|
||||
<a name="l00077"></a>00077
|
||||
<a name="l00078"></a>00078 <span class="keywordtype">void</span> incrementFrame( <span class="keywordtype">void</span> );
|
||||
<a name="l00079"></a>00079
|
||||
<a name="l00080"></a>00080 <a class="code" href="classFileWrite.html">FileWrite</a> file_;
|
||||
<a name="l00081"></a>00081 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bufferFrames_;
|
||||
<a name="l00082"></a>00082 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bufferIndex_;
|
||||
<a name="l00083"></a>00083 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> iData_;
|
||||
<a name="l00084"></a>00084
|
||||
<a name="l00085"></a>00085 };
|
||||
<a name="l00086"></a>00086
|
||||
<a name="l00087"></a>00087 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
75
doc/html/Filter_8h-source.html
Normal file
75
doc/html/Filter_8h-source.html
Normal file
@@ -0,0 +1,75 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Filter.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00028"></a>00028 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00029"></a>00029
|
||||
<a name="l00030"></a>00030 <span class="preprocessor">#ifndef STK_FILTER_H</span>
|
||||
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#define STK_FILTER_H</span>
|
||||
<a name="l00032"></a>00032 <span class="preprocessor"></span>
|
||||
<a name="l00033"></a>00033 <span class="preprocessor">#include "Stk.h"</span>
|
||||
<a name="l00034"></a>00034 <span class="preprocessor">#include <vector></span>
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00036"></a><a class="code" href="classFilter.html">00036</a> <span class="keyword">class </span><a class="code" href="classFilter.html">Filter</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
|
||||
<a name="l00037"></a>00037 {
|
||||
<a name="l00038"></a>00038 <span class="keyword">public</span>:
|
||||
<a name="l00040"></a>00040 <a class="code" href="classFilter.html#a0">Filter</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00047"></a>00047 <a class="code" href="classFilter.html#a0">Filter</a>( std::vector<StkFloat> &bCoefficients, std::vector<StkFloat> &aCoefficients );
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00050"></a>00050 <span class="keyword">virtual</span> <a class="code" href="classFilter.html#a2">~Filter</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00051"></a>00051
|
||||
<a name="l00053"></a>00053 <span class="keywordtype">void</span> <a class="code" href="classFilter.html#a3">clear</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00054"></a>00054
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00063"></a>00063 <span class="keywordtype">void</span> <a class="code" href="classFilter.html#a4">setCoefficients</a>( std::vector<StkFloat> &bCoefficients, std::vector<StkFloat> &aCoefficients, <span class="keywordtype">bool</span> clearState = <span class="keyword">false</span> );
|
||||
<a name="l00064"></a>00064
|
||||
<a name="l00066"></a>00066
|
||||
<a name="l00073"></a>00073 <span class="keywordtype">void</span> <a class="code" href="classFilter.html#a5">setNumerator</a>( std::vector<StkFloat> &bCoefficients, <span class="keywordtype">bool</span> clearState = <span class="keyword">false</span> );
|
||||
<a name="l00074"></a>00074
|
||||
<a name="l00076"></a>00076
|
||||
<a name="l00085"></a>00085 <span class="keywordtype">void</span> <a class="code" href="classFilter.html#a6">setDenominator</a>( std::vector<StkFloat> &aCoefficients, <span class="keywordtype">bool</span> clearState = <span class="keyword">false</span> );
|
||||
<a name="l00086"></a>00086
|
||||
<a name="l00088"></a>00088
|
||||
<a name="l00092"></a>00092 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classFilter.html#a7">setGain</a>(StkFloat gain);
|
||||
<a name="l00093"></a>00093
|
||||
<a name="l00095"></a>00095 <span class="keyword">virtual</span> StkFloat <a class="code" href="classFilter.html#a8">getGain</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
|
||||
<a name="l00096"></a>00096
|
||||
<a name="l00098"></a>00098 <span class="keyword">virtual</span> StkFloat <a class="code" href="classFilter.html#a9">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
|
||||
<a name="l00099"></a>00099
|
||||
<a name="l00101"></a>00101 <span class="keyword">virtual</span> StkFloat <a class="code" href="classFilter.html#a10">tick</a>( StkFloat input );
|
||||
<a name="l00102"></a>00102
|
||||
<a name="l00104"></a>00104
|
||||
<a name="l00110"></a>00110 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>& <a class="code" href="classFilter.html#a10">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>& frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 0 );
|
||||
<a name="l00111"></a>00111
|
||||
<a name="l00112"></a>00112 <span class="keyword">protected</span>:
|
||||
<a name="l00113"></a>00113
|
||||
<a name="l00114"></a>00114 StkFloat gain_;
|
||||
<a name="l00115"></a>00115 std::vector<StkFloat> b_;
|
||||
<a name="l00116"></a>00116 std::vector<StkFloat> a_;
|
||||
<a name="l00117"></a>00117 std::vector<StkFloat> outputs_;
|
||||
<a name="l00118"></a>00118 std::vector<StkFloat> inputs_;
|
||||
<a name="l00119"></a>00119
|
||||
<a name="l00120"></a>00120 };
|
||||
<a name="l00121"></a>00121
|
||||
<a name="l00122"></a>00122 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
90
doc/html/Flute_8h-source.html
Normal file
90
doc/html/Flute_8h-source.html
Normal file
@@ -0,0 +1,90 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Flute.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00023"></a>00023 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00024"></a>00024
|
||||
<a name="l00025"></a>00025 <span class="preprocessor">#ifndef STK_FLUTE_H</span>
|
||||
<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#define STK_FLUTE_H</span>
|
||||
<a name="l00027"></a>00027 <span class="preprocessor"></span>
|
||||
<a name="l00028"></a>00028 <span class="preprocessor">#include "Instrmnt.h"</span>
|
||||
<a name="l00029"></a>00029 <span class="preprocessor">#include "JetTable.h"</span>
|
||||
<a name="l00030"></a>00030 <span class="preprocessor">#include "DelayL.h"</span>
|
||||
<a name="l00031"></a>00031 <span class="preprocessor">#include "OnePole.h"</span>
|
||||
<a name="l00032"></a>00032 <span class="preprocessor">#include "PoleZero.h"</span>
|
||||
<a name="l00033"></a>00033 <span class="preprocessor">#include "Noise.h"</span>
|
||||
<a name="l00034"></a>00034 <span class="preprocessor">#include "ADSR.h"</span>
|
||||
<a name="l00035"></a>00035 <span class="preprocessor">#include "SineWave.h"</span>
|
||||
<a name="l00036"></a>00036
|
||||
<a name="l00037"></a><a class="code" href="classFlute.html">00037</a> <span class="keyword">class </span><a class="code" href="classFlute.html">Flute</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
<a name="l00038"></a>00038 {
|
||||
<a name="l00039"></a>00039 <span class="keyword">public</span>:
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00044"></a>00044 <a class="code" href="classFlute.html#a0">Flute</a>(StkFloat lowestFrequency);
|
||||
<a name="l00045"></a>00045
|
||||
<a name="l00047"></a>00047 <a class="code" href="classFlute.html#a1">~Flute</a>();
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00050"></a>00050 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a2">clear</a>();
|
||||
<a name="l00051"></a>00051
|
||||
<a name="l00053"></a>00053 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a3">setFrequency</a>(StkFloat frequency);
|
||||
<a name="l00054"></a>00054
|
||||
<a name="l00056"></a>00056 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a4">setJetReflection</a>(StkFloat coefficient);
|
||||
<a name="l00057"></a>00057
|
||||
<a name="l00059"></a>00059 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a5">setEndReflection</a>(StkFloat coefficient);
|
||||
<a name="l00060"></a>00060
|
||||
<a name="l00062"></a>00062 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a6">setJetDelay</a>(StkFloat aRatio);
|
||||
<a name="l00063"></a>00063
|
||||
<a name="l00065"></a>00065 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a7">startBlowing</a>(StkFloat amplitude, StkFloat rate);
|
||||
<a name="l00066"></a>00066
|
||||
<a name="l00068"></a>00068 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a8">stopBlowing</a>(StkFloat rate);
|
||||
<a name="l00069"></a>00069
|
||||
<a name="l00071"></a>00071 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a9">noteOn</a>(StkFloat frequency, StkFloat amplitude);
|
||||
<a name="l00072"></a>00072
|
||||
<a name="l00074"></a>00074 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a10">noteOff</a>(StkFloat amplitude);
|
||||
<a name="l00075"></a>00075
|
||||
<a name="l00077"></a>00077 <span class="keywordtype">void</span> <a class="code" href="classFlute.html#a11">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
|
||||
<a name="l00078"></a>00078
|
||||
<a name="l00079"></a>00079 <span class="keyword">protected</span>:
|
||||
<a name="l00080"></a>00080
|
||||
<a name="l00081"></a>00081 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00082"></a>00082
|
||||
<a name="l00083"></a>00083 <a class="code" href="classDelayL.html">DelayL</a> jetDelay_;
|
||||
<a name="l00084"></a>00084 <a class="code" href="classDelayL.html">DelayL</a> boreDelay_;
|
||||
<a name="l00085"></a>00085 <a class="code" href="classJetTable.html">JetTable</a> jetTable_;
|
||||
<a name="l00086"></a>00086 <a class="code" href="classOnePole.html">OnePole</a> filter_;
|
||||
<a name="l00087"></a>00087 <a class="code" href="classPoleZero.html">PoleZero</a> dcBlock_;
|
||||
<a name="l00088"></a>00088 <a class="code" href="classNoise.html">Noise</a> noise_;
|
||||
<a name="l00089"></a>00089 <a class="code" href="classADSR.html">ADSR</a> adsr_;
|
||||
<a name="l00090"></a>00090 <a class="code" href="classSineWave.html">SineWave</a> vibrato_;
|
||||
<a name="l00091"></a>00091 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> length_;
|
||||
<a name="l00092"></a>00092 StkFloat lastFrequency_;
|
||||
<a name="l00093"></a>00093 StkFloat maxPressure_;
|
||||
<a name="l00094"></a>00094 StkFloat jetReflection_;
|
||||
<a name="l00095"></a>00095 StkFloat endReflection_;
|
||||
<a name="l00096"></a>00096 StkFloat noiseGain_;
|
||||
<a name="l00097"></a>00097 StkFloat vibratoGain_;
|
||||
<a name="l00098"></a>00098 StkFloat outputGain_;
|
||||
<a name="l00099"></a>00099 StkFloat jetRatio_;
|
||||
<a name="l00100"></a>00100
|
||||
<a name="l00101"></a>00101 };
|
||||
<a name="l00102"></a>00102
|
||||
<a name="l00103"></a>00103 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
73
doc/html/FormSwep_8h-source.html
Normal file
73
doc/html/FormSwep_8h-source.html
Normal file
@@ -0,0 +1,73 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>FormSwep.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00013"></a>00013 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00014"></a>00014
|
||||
<a name="l00015"></a>00015 <span class="preprocessor">#ifndef STK_FORMSWEP_H</span>
|
||||
<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#define STK_FORMSWEP_H</span>
|
||||
<a name="l00017"></a>00017 <span class="preprocessor"></span>
|
||||
<a name="l00018"></a>00018 <span class="preprocessor">#include "BiQuad.h"</span>
|
||||
<a name="l00019"></a>00019
|
||||
<a name="l00020"></a><a class="code" href="classFormSwep.html">00020</a> <span class="keyword">class </span><a class="code" href="classFormSwep.html">FormSwep</a> : <span class="keyword">public</span> <a class="code" href="classBiQuad.html">BiQuad</a>
|
||||
<a name="l00021"></a>00021 {
|
||||
<a name="l00022"></a>00022 <span class="keyword">public</span>:
|
||||
<a name="l00023"></a>00023
|
||||
<a name="l00025"></a>00025 <a class="code" href="classFormSwep.html#a0">FormSwep</a>();
|
||||
<a name="l00026"></a>00026
|
||||
<a name="l00028"></a>00028 <a class="code" href="classFormSwep.html#a1">~FormSwep</a>();
|
||||
<a name="l00029"></a>00029
|
||||
<a name="l00031"></a>00031
|
||||
<a name="l00042"></a>00042 <span class="keywordtype">void</span> <a class="code" href="classFormSwep.html#a2">setResonance</a>(StkFloat frequency, StkFloat radius);
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00045"></a>00045 <span class="keywordtype">void</span> <a class="code" href="classFormSwep.html#a3">setStates</a>(StkFloat frequency, StkFloat radius, StkFloat gain = 1.0);
|
||||
<a name="l00046"></a>00046
|
||||
<a name="l00048"></a>00048 <span class="keywordtype">void</span> <a class="code" href="classFormSwep.html#a4">setTargets</a>(StkFloat frequency, StkFloat radius, StkFloat gain = 1.0);
|
||||
<a name="l00049"></a>00049
|
||||
<a name="l00051"></a>00051
|
||||
<a name="l00059"></a>00059 <span class="keywordtype">void</span> <a class="code" href="classFormSwep.html#a5">setSweepRate</a>(StkFloat rate);
|
||||
<a name="l00060"></a>00060
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00067"></a>00067 <span class="keywordtype">void</span> <a class="code" href="classFormSwep.html#a6">setSweepTime</a>(StkFloat time);
|
||||
<a name="l00068"></a>00068
|
||||
<a name="l00069"></a>00069 <span class="keyword">protected</span>:
|
||||
<a name="l00070"></a>00070
|
||||
<a name="l00071"></a>00071 StkFloat computeSample( StkFloat input );
|
||||
<a name="l00072"></a>00072
|
||||
<a name="l00073"></a>00073 <span class="keywordtype">bool</span> dirty_;
|
||||
<a name="l00074"></a>00074 StkFloat frequency_;
|
||||
<a name="l00075"></a>00075 StkFloat radius_;
|
||||
<a name="l00076"></a>00076 StkFloat startFrequency_;
|
||||
<a name="l00077"></a>00077 StkFloat startRadius_;
|
||||
<a name="l00078"></a>00078 StkFloat startGain_;
|
||||
<a name="l00079"></a>00079 StkFloat targetFrequency_;
|
||||
<a name="l00080"></a>00080 StkFloat targetRadius_;
|
||||
<a name="l00081"></a>00081 StkFloat targetGain_;
|
||||
<a name="l00082"></a>00082 StkFloat deltaFrequency_;
|
||||
<a name="l00083"></a>00083 StkFloat deltaRadius_;
|
||||
<a name="l00084"></a>00084 StkFloat deltaGain_;
|
||||
<a name="l00085"></a>00085 StkFloat sweepState_;
|
||||
<a name="l00086"></a>00086 StkFloat sweepRate_;
|
||||
<a name="l00087"></a>00087
|
||||
<a name="l00088"></a>00088 };
|
||||
<a name="l00089"></a>00089
|
||||
<a name="l00090"></a>00090 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
57
doc/html/Function_8h-source.html
Normal file
57
doc/html/Function_8h-source.html
Normal file
@@ -0,0 +1,57 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Function.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00011"></a>00011 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00012"></a>00012
|
||||
<a name="l00013"></a>00013 <span class="preprocessor">#include "Stk.h"</span>
|
||||
<a name="l00014"></a>00014
|
||||
<a name="l00015"></a>00015 <span class="preprocessor">#ifndef STK_FUNCTION_H</span>
|
||||
<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#define STK_FUNCTION_H</span>
|
||||
<a name="l00017"></a>00017 <span class="preprocessor"></span>
|
||||
<a name="l00018"></a><a class="code" href="classFunction.html">00018</a> <span class="keyword">class </span><a class="code" href="classFunction.html">Function</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
|
||||
<a name="l00019"></a>00019 {
|
||||
<a name="l00020"></a>00020 <span class="keyword">public</span>:
|
||||
<a name="l00022"></a>00022 <a class="code" href="classFunction.html#a0">Function</a>();
|
||||
<a name="l00023"></a>00023
|
||||
<a name="l00025"></a>00025 <span class="keyword">virtual</span> <a class="code" href="classFunction.html#a1">~Function</a>();
|
||||
<a name="l00026"></a>00026
|
||||
<a name="l00028"></a><a class="code" href="classFunction.html#a2">00028</a> <span class="keyword">virtual</span> StkFloat <a class="code" href="classFunction.html#a2">lastOut</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> lastOutput_; };
|
||||
<a name="l00029"></a>00029
|
||||
<a name="l00031"></a>00031 StkFloat <a class="code" href="classFunction.html#a3">tick</a>( StkFloat input );
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00040"></a>00040 <span class="keyword">virtual</span> <a class="code" href="classStkFrames.html">StkFrames</a>& <a class="code" href="classFunction.html#a3">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>& frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 0 );
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00042"></a>00042 <span class="keyword">protected</span>:
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00044"></a>00044 <span class="comment">// This abstract function must be implemented in all subclasses.</span>
|
||||
<a name="l00045"></a>00045 <span class="comment">// It is used to get around a C++ problem with overloaded virtual</span>
|
||||
<a name="l00046"></a>00046 <span class="comment">// functions.</span>
|
||||
<a name="l00047"></a>00047 <span class="keyword">virtual</span> StkFloat computeSample( StkFloat input ) = 0;
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00049"></a>00049 StkFloat lastOutput_;
|
||||
<a name="l00050"></a>00050
|
||||
<a name="l00051"></a>00051 };
|
||||
<a name="l00052"></a>00052
|
||||
<a name="l00053"></a>00053 <span class="preprocessor">#endif</span>
|
||||
<a name="l00054"></a>00054 <span class="preprocessor"></span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
57
doc/html/Generator_8h-source.html
Normal file
57
doc/html/Generator_8h-source.html
Normal file
@@ -0,0 +1,57 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Generator.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00010"></a>00010 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00011"></a>00011
|
||||
<a name="l00012"></a>00012 <span class="preprocessor">#ifndef STK_GENERATOR_H</span>
|
||||
<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor">#define STK_GENERATOR_H</span>
|
||||
<a name="l00014"></a>00014 <span class="preprocessor"></span>
|
||||
<a name="l00015"></a>00015 <span class="preprocessor">#include "Stk.h"</span>
|
||||
<a name="l00016"></a>00016
|
||||
<a name="l00017"></a><a class="code" href="classGenerator.html">00017</a> <span class="keyword">class </span><a class="code" href="classGenerator.html">Generator</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
|
||||
<a name="l00018"></a>00018 {
|
||||
<a name="l00019"></a>00019 <span class="keyword">public</span>:
|
||||
<a name="l00021"></a>00021 <a class="code" href="classGenerator.html#a0">Generator</a>( <span class="keywordtype">void</span> );
|
||||
<a name="l00022"></a>00022
|
||||
<a name="l00024"></a>00024 <span class="keyword">virtual</span> <a class="code" href="classGenerator.html#a1">~Generator</a>( <span class="keywordtype">void</span> );
|
||||
<a name="l00025"></a>00025
|
||||
<a name="l00027"></a><a class="code" href="classGenerator.html#a2">00027</a> <span class="keyword">virtual</span> StkFloat <a class="code" href="classGenerator.html#a2">lastOut</a>( <span class="keywordtype">void</span> )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> lastOutput_; };
|
||||
<a name="l00028"></a>00028
|
||||
<a name="l00030"></a>00030 StkFloat <a class="code" href="classGenerator.html#a3">tick</a>( <span class="keywordtype">void</span> );
|
||||
<a name="l00031"></a>00031
|
||||
<a name="l00033"></a>00033
|
||||
<a name="l00039"></a>00039 <a class="code" href="classStkFrames.html">StkFrames</a>& <a class="code" href="classGenerator.html#a3">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>& frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 0 );
|
||||
<a name="l00040"></a>00040
|
||||
<a name="l00041"></a>00041 <span class="keyword">protected</span>:
|
||||
<a name="l00042"></a>00042
|
||||
<a name="l00043"></a>00043 <span class="comment">// This abstract function must be implemented in all subclasses.</span>
|
||||
<a name="l00044"></a>00044 <span class="comment">// It is used to get around a C++ problem with overloaded virtual</span>
|
||||
<a name="l00045"></a>00045 <span class="comment">// functions.</span>
|
||||
<a name="l00046"></a>00046 <span class="keyword">virtual</span> StkFloat computeSample( <span class="keywordtype">void</span> ) = 0;
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00048"></a>00048 StkFloat lastOutput_;
|
||||
<a name="l00049"></a>00049
|
||||
<a name="l00050"></a>00050 };
|
||||
<a name="l00051"></a>00051
|
||||
<a name="l00052"></a>00052 <span class="preprocessor">#endif</span>
|
||||
<a name="l00053"></a>00053 <span class="preprocessor"></span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
110
doc/html/Granulate_8h-source.html
Normal file
110
doc/html/Granulate_8h-source.html
Normal file
@@ -0,0 +1,110 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Granulate.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00016"></a>00016 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00017"></a>00017
|
||||
<a name="l00018"></a>00018 <span class="preprocessor">#ifndef STK_GRANULATE_H</span>
|
||||
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define STK_GRANULATE_H</span>
|
||||
<a name="l00020"></a>00020 <span class="preprocessor"></span>
|
||||
<a name="l00021"></a>00021 <span class="preprocessor">#include <vector></span>
|
||||
<a name="l00022"></a>00022 <span class="preprocessor">#include "Generator.h"</span>
|
||||
<a name="l00023"></a>00023 <span class="preprocessor">#include "Envelope.h"</span>
|
||||
<a name="l00024"></a>00024 <span class="preprocessor">#include "Noise.h"</span>
|
||||
<a name="l00025"></a>00025
|
||||
<a name="l00026"></a><a class="code" href="classGranulate.html">00026</a> <span class="keyword">class </span><a class="code" href="classGranulate.html">Granulate</a>: <span class="keyword">public</span> <a class="code" href="classGenerator.html">Generator</a>
|
||||
<a name="l00027"></a>00027 {
|
||||
<a name="l00028"></a>00028 <span class="keyword">public</span>:
|
||||
<a name="l00030"></a>00030 <a class="code" href="classGranulate.html#a0">Granulate</a>( <span class="keywordtype">void</span> );
|
||||
<a name="l00031"></a>00031
|
||||
<a name="l00033"></a>00033 <a class="code" href="classGranulate.html#a0">Granulate</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nVoices, std::string fileName, <span class="keywordtype">bool</span> typeRaw = <span class="keyword">false</span> );
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00036"></a>00036 <a class="code" href="classGranulate.html#a2">~Granulate</a>();
|
||||
<a name="l00037"></a>00037
|
||||
<a name="l00039"></a>00039
|
||||
<a name="l00043"></a>00043 <span class="keywordtype">void</span> <a class="code" href="classGranulate.html#a3">openFile</a>( std::string fileName, <span class="keywordtype">bool</span> typeRaw = <span class="keyword">false</span> );
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00046"></a>00046
|
||||
<a name="l00050"></a>00050 <span class="keywordtype">void</span> <a class="code" href="classGranulate.html#a4">reset</a>();
|
||||
<a name="l00051"></a>00051
|
||||
<a name="l00053"></a>00053
|
||||
<a name="l00058"></a>00058 <span class="keywordtype">void</span> <a class="code" href="classGranulate.html#a5">setVoices</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nVoices = 1 );
|
||||
<a name="l00059"></a>00059
|
||||
<a name="l00061"></a>00061
|
||||
<a name="l00067"></a>00067 <span class="keywordtype">void</span> <a class="code" href="classGranulate.html#a6">setStretch</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> stretchFactor = 1 );
|
||||
<a name="l00068"></a>00068
|
||||
<a name="l00070"></a>00070
|
||||
<a name="l00085"></a>00085 <span class="keywordtype">void</span> <a class="code" href="classGranulate.html#a7">setGrainParameters</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> duration = 30, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rampPercent = 50,
|
||||
<a name="l00086"></a>00086 <span class="keywordtype">int</span> offset = 0, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> delay = 0 );
|
||||
<a name="l00087"></a>00087
|
||||
<a name="l00089"></a>00089
|
||||
<a name="l00097"></a>00097 <span class="keywordtype">void</span> <a class="code" href="classGranulate.html#a8">setRandomFactor</a>( StkFloat randomness = 0.1 );
|
||||
<a name="l00098"></a>00098
|
||||
<a name="l00099"></a>00099 <span class="keyword">enum</span> GrainState {
|
||||
<a name="l00100"></a>00100 GRAIN_STOPPED,
|
||||
<a name="l00101"></a>00101 GRAIN_FADEIN,
|
||||
<a name="l00102"></a>00102 GRAIN_SUSTAIN,
|
||||
<a name="l00103"></a>00103 GRAIN_FADEOUT
|
||||
<a name="l00104"></a>00104 };
|
||||
<a name="l00105"></a>00105
|
||||
<a name="l00106"></a>00106 <span class="keyword">protected</span>:
|
||||
<a name="l00107"></a>00107
|
||||
<a name="l00108"></a>00108 <span class="keyword">struct </span>Grain {
|
||||
<a name="l00109"></a>00109 StkFloat eScaler;
|
||||
<a name="l00110"></a>00110 StkFloat eRate;
|
||||
<a name="l00111"></a>00111 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> attackCount;
|
||||
<a name="l00112"></a>00112 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> sustainCount;
|
||||
<a name="l00113"></a>00113 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> decayCount;
|
||||
<a name="l00114"></a>00114 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> delayCount;
|
||||
<a name="l00115"></a>00115 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> counter;
|
||||
<a name="l00116"></a>00116 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> pointer;
|
||||
<a name="l00117"></a>00117 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> startPointer;
|
||||
<a name="l00118"></a>00118 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> repeats;
|
||||
<a name="l00119"></a>00119 GrainState state;
|
||||
<a name="l00120"></a>00120
|
||||
<a name="l00121"></a>00121 <span class="comment">// Default constructor.</span>
|
||||
<a name="l00122"></a>00122 Grain()
|
||||
<a name="l00123"></a>00123 :eScaler(0.0), eRate(0.0), attackCount(0), sustainCount(0), decayCount(0),
|
||||
<a name="l00124"></a>00124 delayCount(0), counter(0), pointer(0), startPointer(0), repeats(0), state(GRAIN_STOPPED) {}
|
||||
<a name="l00125"></a>00125 };
|
||||
<a name="l00126"></a>00126
|
||||
<a name="l00127"></a>00127 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00128"></a>00128 <span class="keywordtype">void</span> calculateGrain( Granulate::Grain& grain );
|
||||
<a name="l00129"></a>00129
|
||||
<a name="l00130"></a>00130 <a class="code" href="classStkFrames.html">StkFrames</a> data_;
|
||||
<a name="l00131"></a>00131 std::vector<Grain> grains_;
|
||||
<a name="l00132"></a>00132 <a class="code" href="classNoise.html">Noise</a> noise;
|
||||
<a name="l00133"></a>00133 <span class="keywordtype">long</span> gPointer_;
|
||||
<a name="l00134"></a>00134
|
||||
<a name="l00135"></a>00135 <span class="comment">// Global grain parameters.</span>
|
||||
<a name="l00136"></a>00136 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> gDuration_;
|
||||
<a name="l00137"></a>00137 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> gRampPercent_;
|
||||
<a name="l00138"></a>00138 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> gDelay_;
|
||||
<a name="l00139"></a>00139 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> gStretch_;
|
||||
<a name="l00140"></a>00140 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> stretchCounter_;
|
||||
<a name="l00141"></a>00141 <span class="keywordtype">int</span> gOffset_;
|
||||
<a name="l00142"></a>00142 StkFloat gRandomFactor_;
|
||||
<a name="l00143"></a>00143 StkFloat gain_;
|
||||
<a name="l00144"></a>00144
|
||||
<a name="l00145"></a>00145 };
|
||||
<a name="l00146"></a>00146
|
||||
<a name="l00147"></a>00147 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
46
doc/html/HevyMetl_8h-source.html
Normal file
46
doc/html/HevyMetl_8h-source.html
Normal file
@@ -0,0 +1,46 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>HevyMetl.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00029"></a>00029 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00030"></a>00030
|
||||
<a name="l00031"></a>00031 <span class="preprocessor">#ifndef STK_HEVYMETL_H</span>
|
||||
<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#define STK_HEVYMETL_H</span>
|
||||
<a name="l00033"></a>00033 <span class="preprocessor"></span>
|
||||
<a name="l00034"></a>00034 <span class="preprocessor">#include "FM.h"</span>
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00036"></a><a class="code" href="classHevyMetl.html">00036</a> <span class="keyword">class </span><a class="code" href="classHevyMetl.html">HevyMetl</a> : <span class="keyword">public</span> <a class="code" href="classFM.html">FM</a>
|
||||
<a name="l00037"></a>00037 {
|
||||
<a name="l00038"></a>00038 <span class="keyword">public</span>:
|
||||
<a name="l00040"></a>00040
|
||||
<a name="l00043"></a>00043 <a class="code" href="classHevyMetl.html#a0">HevyMetl</a>();
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00046"></a>00046 <a class="code" href="classHevyMetl.html#a1">~HevyMetl</a>();
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00049"></a>00049 <span class="keywordtype">void</span> <a class="code" href="classHevyMetl.html#a2">noteOn</a>(StkFloat frequency, StkFloat amplitude);
|
||||
<a name="l00050"></a>00050
|
||||
<a name="l00051"></a>00051 <span class="keyword">protected</span>:
|
||||
<a name="l00052"></a>00052
|
||||
<a name="l00053"></a>00053 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00054"></a>00054 };
|
||||
<a name="l00055"></a>00055
|
||||
<a name="l00056"></a>00056 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
87
doc/html/InetWvIn_8h-source.html
Normal file
87
doc/html/InetWvIn_8h-source.html
Normal file
@@ -0,0 +1,87 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>InetWvIn.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00025"></a>00025 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00026"></a>00026
|
||||
<a name="l00027"></a>00027 <span class="preprocessor">#ifndef STK_INETWVIN_H</span>
|
||||
<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#define STK_INETWVIN_H</span>
|
||||
<a name="l00029"></a>00029 <span class="preprocessor"></span>
|
||||
<a name="l00030"></a>00030 <span class="preprocessor">#include "WvIn.h"</span>
|
||||
<a name="l00031"></a>00031 <span class="preprocessor">#include "TcpServer.h"</span>
|
||||
<a name="l00032"></a>00032 <span class="preprocessor">#include "UdpSocket.h"</span>
|
||||
<a name="l00033"></a>00033 <span class="preprocessor">#include "Thread.h"</span>
|
||||
<a name="l00034"></a>00034 <span class="preprocessor">#include "Mutex.h"</span>
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00036"></a>00036 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
|
||||
<a name="l00037"></a>00037 <span class="keywordtype">bool</span> finished;
|
||||
<a name="l00038"></a>00038 <span class="keywordtype">void</span> *object;
|
||||
<a name="l00039"></a>00039 } ThreadInfo;
|
||||
<a name="l00040"></a>00040
|
||||
<a name="l00041"></a><a class="code" href="classInetWvIn.html">00041</a> <span class="keyword">class </span><a class="code" href="classInetWvIn.html">InetWvIn</a> : <span class="keyword">public</span> <a class="code" href="classWvIn.html">WvIn</a>
|
||||
<a name="l00042"></a>00042 {
|
||||
<a name="l00043"></a>00043 <span class="keyword">public</span>:
|
||||
<a name="l00045"></a>00045
|
||||
<a name="l00048"></a>00048 <a class="code" href="classInetWvIn.html#a0">InetWvIn</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> bufferFrames = 1024, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nBuffers = 8 );
|
||||
<a name="l00049"></a>00049
|
||||
<a name="l00051"></a>00051 <a class="code" href="classInetWvIn.html#a1">~InetWvIn</a>();
|
||||
<a name="l00052"></a>00052
|
||||
<a name="l00054"></a>00054
|
||||
<a name="l00061"></a>00061 <span class="keywordtype">void</span> <a class="code" href="classInetWvIn.html#a2">listen</a>( <span class="keywordtype">int</span> port = 2006, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1,
|
||||
<a name="l00062"></a>00062 Stk::StkFormat format = <a class="code" href="classStk.html#s1">STK_SINT16</a>,
|
||||
<a name="l00063"></a>00063 Socket::ProtocolType protocol = Socket::PROTO_TCP );
|
||||
<a name="l00064"></a>00064
|
||||
<a name="l00066"></a>00066
|
||||
<a name="l00070"></a>00070 <span class="keywordtype">bool</span> <a class="code" href="classInetWvIn.html#a3">isConnected</a>( <span class="keywordtype">void</span> );
|
||||
<a name="l00071"></a>00071
|
||||
<a name="l00072"></a>00072 <span class="comment">// Called by the thread routine to receive data via the socket connection</span>
|
||||
<a name="l00073"></a>00073 <span class="comment">// and fill the socket buffer. This is not intended for general use but</span>
|
||||
<a name="l00074"></a>00074 <span class="comment">// had to be made public for access from the thread.</span>
|
||||
<a name="l00075"></a>00075 <span class="keywordtype">void</span> receive( <span class="keywordtype">void</span> );
|
||||
<a name="l00076"></a>00076
|
||||
<a name="l00077"></a>00077 <span class="keyword">protected</span>:
|
||||
<a name="l00078"></a>00078
|
||||
<a name="l00079"></a>00079 <span class="comment">// Read buffered socket data into the data buffer ... will block if none available.</span>
|
||||
<a name="l00080"></a>00080 <span class="keywordtype">int</span> readData( <span class="keywordtype">void</span> );
|
||||
<a name="l00081"></a>00081
|
||||
<a name="l00082"></a>00082 <span class="keywordtype">void</span> computeFrame( <span class="keywordtype">void</span> );
|
||||
<a name="l00083"></a>00083
|
||||
<a name="l00084"></a>00084 <a class="code" href="classSocket.html">Socket</a> *soket_;
|
||||
<a name="l00085"></a>00085 <a class="code" href="classThread.html">Thread</a> thread_;
|
||||
<a name="l00086"></a>00086 <a class="code" href="classMutex.html">Mutex</a> mutex_;
|
||||
<a name="l00087"></a>00087 <span class="keywordtype">char</span> *buffer_;
|
||||
<a name="l00088"></a>00088 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> bufferFrames_;
|
||||
<a name="l00089"></a>00089 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> bufferBytes_;
|
||||
<a name="l00090"></a>00090 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> bytesFilled_;
|
||||
<a name="l00091"></a>00091 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nBuffers_;
|
||||
<a name="l00092"></a>00092 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> writePoint_;
|
||||
<a name="l00093"></a>00093 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> readPoint_;
|
||||
<a name="l00094"></a>00094 <span class="keywordtype">long</span> bufferCounter_;
|
||||
<a name="l00095"></a>00095 <span class="keywordtype">int</span> dataBytes_;
|
||||
<a name="l00096"></a>00096 <span class="keywordtype">bool</span> connected_;
|
||||
<a name="l00097"></a>00097 <span class="keywordtype">int</span> fd_;
|
||||
<a name="l00098"></a>00098 ThreadInfo threadInfo_;
|
||||
<a name="l00099"></a>00099 Stk::StkFormat dataType_;
|
||||
<a name="l00100"></a>00100
|
||||
<a name="l00101"></a>00101 };
|
||||
<a name="l00102"></a>00102
|
||||
<a name="l00103"></a>00103 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
71
doc/html/InetWvOut_8h-source.html
Normal file
71
doc/html/InetWvOut_8h-source.html
Normal file
@@ -0,0 +1,71 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>InetWvOut.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00021"></a>00021 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00022"></a>00022
|
||||
<a name="l00023"></a>00023 <span class="preprocessor">#ifndef STK_INETWVOUT_H</span>
|
||||
<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#define STK_INETWVOUT_H</span>
|
||||
<a name="l00025"></a>00025 <span class="preprocessor"></span>
|
||||
<a name="l00026"></a>00026 <span class="preprocessor">#include "WvOut.h"</span>
|
||||
<a name="l00027"></a>00027 <span class="preprocessor">#include "Socket.h"</span>
|
||||
<a name="l00028"></a>00028
|
||||
<a name="l00029"></a><a class="code" href="classInetWvOut.html">00029</a> <span class="keyword">class </span><a class="code" href="classInetWvOut.html">InetWvOut</a> : <span class="keyword">public</span> <a class="code" href="classWvOut.html">WvOut</a>
|
||||
<a name="l00030"></a>00030 {
|
||||
<a name="l00031"></a>00031 <span class="keyword">public</span>:
|
||||
<a name="l00033"></a>00033 <a class="code" href="classInetWvOut.html#a0">InetWvOut</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> packetFrames = 1024 );
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00036"></a>00036
|
||||
<a name="l00039"></a>00039 <a class="code" href="classInetWvOut.html#a0">InetWvOut</a>( <span class="keywordtype">int</span> port, Socket::ProtocolType protocol = Socket::PROTO_TCP,
|
||||
<a name="l00040"></a>00040 std::string hostname = <span class="stringliteral">"localhost"</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1, Stk::StkFormat format = <a class="code" href="classStk.html#s1">STK_SINT16</a>,
|
||||
<a name="l00041"></a>00041 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> packetFrames = 1024 );
|
||||
<a name="l00042"></a>00042
|
||||
<a name="l00044"></a>00044 <a class="code" href="classInetWvOut.html#a2">~InetWvOut</a>();
|
||||
<a name="l00045"></a>00045
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00050"></a>00050 <span class="keywordtype">void</span> <a class="code" href="classInetWvOut.html#a3">connect</a>( <span class="keywordtype">int</span> port, Socket::ProtocolType protocol = Socket::PROTO_TCP,
|
||||
<a name="l00051"></a>00051 std::string hostname = <span class="stringliteral">"localhost"</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nChannels = 1, Stk::StkFormat format = <a class="code" href="classStk.html#s1">STK_SINT16</a> );
|
||||
<a name="l00052"></a>00052
|
||||
<a name="l00054"></a>00054 <span class="keywordtype">void</span> <a class="code" href="classInetWvOut.html#a4">disconnect</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00055"></a>00055
|
||||
<a name="l00056"></a>00056 <span class="keyword">protected</span>:
|
||||
<a name="l00057"></a>00057
|
||||
<a name="l00058"></a>00058 <span class="keywordtype">void</span> computeSample( <span class="keyword">const</span> StkFloat sample );
|
||||
<a name="l00059"></a>00059
|
||||
<a name="l00060"></a>00060 <span class="keywordtype">void</span> computeFrames( <span class="keyword">const</span> <a class="code" href="classStkFrames.html">StkFrames</a>& frames );
|
||||
<a name="l00061"></a>00061
|
||||
<a name="l00062"></a>00062 <span class="keywordtype">void</span> incrementFrame( <span class="keywordtype">void</span> );
|
||||
<a name="l00063"></a>00063
|
||||
<a name="l00064"></a>00064 <span class="comment">// Write a buffer of length frames via the socket connection.</span>
|
||||
<a name="l00065"></a>00065 <span class="keywordtype">void</span> writeData( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> frames );
|
||||
<a name="l00066"></a>00066
|
||||
<a name="l00067"></a>00067 <span class="keywordtype">char</span> *buffer_;
|
||||
<a name="l00068"></a>00068 <a class="code" href="classSocket.html">Socket</a> *soket_;
|
||||
<a name="l00069"></a>00069 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> bufferFrames_;
|
||||
<a name="l00070"></a>00070 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> bufferBytes_;
|
||||
<a name="l00071"></a>00071 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> bufferIndex_;
|
||||
<a name="l00072"></a>00072 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> iData_;
|
||||
<a name="l00073"></a>00073 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dataBytes_;
|
||||
<a name="l00074"></a>00074 Stk::StkFormat dataType_;
|
||||
<a name="l00075"></a>00075 };
|
||||
<a name="l00076"></a>00076
|
||||
<a name="l00077"></a>00077 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
68
doc/html/Instrmnt_8h-source.html
Normal file
68
doc/html/Instrmnt_8h-source.html
Normal file
@@ -0,0 +1,68 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Instrmnt.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00010"></a>00010 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00011"></a>00011
|
||||
<a name="l00012"></a>00012 <span class="preprocessor">#ifndef STK_INSTRMNT_H</span>
|
||||
<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor">#define STK_INSTRMNT_H</span>
|
||||
<a name="l00014"></a>00014 <span class="preprocessor"></span>
|
||||
<a name="l00015"></a>00015 <span class="preprocessor">#include "Stk.h"</span>
|
||||
<a name="l00016"></a>00016
|
||||
<a name="l00017"></a><a class="code" href="classInstrmnt.html">00017</a> <span class="keyword">class </span><a class="code" href="classInstrmnt.html">Instrmnt</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
|
||||
<a name="l00018"></a>00018 {
|
||||
<a name="l00019"></a>00019 <span class="keyword">public</span>:
|
||||
<a name="l00021"></a>00021 <a class="code" href="classInstrmnt.html#a0">Instrmnt</a>();
|
||||
<a name="l00022"></a>00022
|
||||
<a name="l00024"></a>00024 <span class="keyword">virtual</span> <a class="code" href="classInstrmnt.html#a1">~Instrmnt</a>();
|
||||
<a name="l00025"></a>00025
|
||||
<a name="l00027"></a>00027 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(StkFloat frequency, StkFloat amplitude) = 0;
|
||||
<a name="l00028"></a>00028
|
||||
<a name="l00030"></a>00030 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(StkFloat amplitude) = 0;
|
||||
<a name="l00031"></a>00031
|
||||
<a name="l00033"></a>00033 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(StkFloat frequency);
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00036"></a>00036 StkFloat <a class="code" href="classInstrmnt.html#a5">lastOut</a>() <span class="keyword">const</span>;
|
||||
<a name="l00037"></a>00037
|
||||
<a name="l00039"></a>00039 StkFloat <a class="code" href="classInstrmnt.html#a6">lastOutLeft</a>() <span class="keyword">const</span>;
|
||||
<a name="l00040"></a>00040
|
||||
<a name="l00042"></a>00042 StkFloat <a class="code" href="classInstrmnt.html#a7">lastOutRight</a>() <span class="keyword">const</span>;
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00045"></a>00045 StkFloat <a class="code" href="classInstrmnt.html#a8">tick</a>( <span class="keywordtype">void</span> );
|
||||
<a name="l00046"></a>00046
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00054"></a>00054 <a class="code" href="classStkFrames.html">StkFrames</a>& <a class="code" href="classInstrmnt.html#a8">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>& frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 0 );
|
||||
<a name="l00055"></a>00055
|
||||
<a name="l00057"></a>00057 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInstrmnt.html#a10">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
|
||||
<a name="l00058"></a>00058
|
||||
<a name="l00059"></a>00059 <span class="keyword">protected</span>:
|
||||
<a name="l00060"></a>00060
|
||||
<a name="l00061"></a>00061 <span class="comment">// This abstract function must be implemented in all subclasses.</span>
|
||||
<a name="l00062"></a>00062 <span class="comment">// It is used to get around a C++ problem with overloaded virtual</span>
|
||||
<a name="l00063"></a>00063 <span class="comment">// functions.</span>
|
||||
<a name="l00064"></a>00064 <span class="keyword">virtual</span> StkFloat computeSample( <span class="keywordtype">void</span> ) = 0;
|
||||
<a name="l00065"></a>00065
|
||||
<a name="l00066"></a>00066 StkFloat lastOutput_;
|
||||
<a name="l00067"></a>00067
|
||||
<a name="l00068"></a>00068 };
|
||||
<a name="l00069"></a>00069
|
||||
<a name="l00070"></a>00070 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
57
doc/html/JCRev_8h-source.html
Normal file
57
doc/html/JCRev_8h-source.html
Normal file
@@ -0,0 +1,57 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>JCRev.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00015"></a>00015 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00016"></a>00016
|
||||
<a name="l00017"></a>00017 <span class="preprocessor">#ifndef STK_JCREV_H</span>
|
||||
<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define STK_JCREV_H</span>
|
||||
<a name="l00019"></a>00019 <span class="preprocessor"></span>
|
||||
<a name="l00020"></a>00020 <span class="preprocessor">#include "Effect.h"</span>
|
||||
<a name="l00021"></a>00021 <span class="preprocessor">#include "Delay.h"</span>
|
||||
<a name="l00022"></a>00022
|
||||
<a name="l00023"></a><a class="code" href="classJCRev.html">00023</a> <span class="keyword">class </span><a class="code" href="classJCRev.html">JCRev</a> : <span class="keyword">public</span> <a class="code" href="classEffect.html">Effect</a>
|
||||
<a name="l00024"></a>00024 {
|
||||
<a name="l00025"></a>00025 <span class="keyword">public</span>:
|
||||
<a name="l00027"></a>00027 <a class="code" href="classJCRev.html#a0">JCRev</a>( StkFloat T60 = 1.0 );
|
||||
<a name="l00028"></a>00028
|
||||
<a name="l00030"></a>00030 <a class="code" href="classJCRev.html#a1">~JCRev</a>();
|
||||
<a name="l00031"></a>00031
|
||||
<a name="l00033"></a>00033 <span class="keywordtype">void</span> <a class="code" href="classJCRev.html#a2">clear</a>();
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00036"></a>00036 <span class="keywordtype">void</span> <a class="code" href="classJCRev.html#a3">setT60</a>( StkFloat T60 );
|
||||
<a name="l00037"></a>00037
|
||||
<a name="l00038"></a>00038 <span class="keyword">protected</span>:
|
||||
<a name="l00039"></a>00039
|
||||
<a name="l00040"></a>00040 StkFloat computeSample( StkFloat input );
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00042"></a>00042 <a class="code" href="classDelay.html">Delay</a> allpassDelays_[3];
|
||||
<a name="l00043"></a>00043 <a class="code" href="classDelay.html">Delay</a> combDelays_[4];
|
||||
<a name="l00044"></a>00044 <a class="code" href="classDelay.html">Delay</a> outLeftDelay_;
|
||||
<a name="l00045"></a>00045 <a class="code" href="classDelay.html">Delay</a> outRightDelay_;
|
||||
<a name="l00046"></a>00046 StkFloat allpassCoefficient_;
|
||||
<a name="l00047"></a>00047 StkFloat combCoefficient_[4];
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00049"></a>00049 };
|
||||
<a name="l00050"></a>00050
|
||||
<a name="l00051"></a>00051 <span class="preprocessor">#endif</span>
|
||||
<a name="l00052"></a>00052 <span class="preprocessor"></span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
44
doc/html/JetTable_8h-source.html
Normal file
44
doc/html/JetTable_8h-source.html
Normal file
@@ -0,0 +1,44 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>JetTable.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00014"></a>00014 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00015"></a>00015
|
||||
<a name="l00016"></a>00016 <span class="preprocessor">#ifndef STK_JETTABL_H</span>
|
||||
<a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#define STK_JETTABL_H</span>
|
||||
<a name="l00018"></a>00018 <span class="preprocessor"></span>
|
||||
<a name="l00019"></a>00019 <span class="preprocessor">#include "Function.h"</span>
|
||||
<a name="l00020"></a>00020
|
||||
<a name="l00021"></a><a class="code" href="classJetTable.html">00021</a> <span class="keyword">class </span><a class="code" href="classJetTable.html">JetTable</a> : <span class="keyword">public</span> <a class="code" href="classFunction.html">Function</a>
|
||||
<a name="l00022"></a>00022 {
|
||||
<a name="l00023"></a>00023 <span class="keyword">public</span>:
|
||||
<a name="l00025"></a>00025 <a class="code" href="classJetTable.html#a0">JetTable</a>();
|
||||
<a name="l00026"></a>00026
|
||||
<a name="l00028"></a>00028 <a class="code" href="classJetTable.html#a1">~JetTable</a>();
|
||||
<a name="l00029"></a>00029
|
||||
<a name="l00030"></a>00030 <span class="keyword">protected</span>:
|
||||
<a name="l00031"></a>00031
|
||||
<a name="l00032"></a>00032 StkFloat computeSample( StkFloat input );
|
||||
<a name="l00033"></a>00033
|
||||
<a name="l00034"></a>00034 };
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00036"></a>00036 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
59
doc/html/Mandolin_8h-source.html
Normal file
59
doc/html/Mandolin_8h-source.html
Normal file
@@ -0,0 +1,59 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Mandolin.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00028"></a>00028 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00029"></a>00029
|
||||
<a name="l00030"></a>00030 <span class="preprocessor">#ifndef STK_MANDOLIN_H</span>
|
||||
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#define STK_MANDOLIN_H</span>
|
||||
<a name="l00032"></a>00032 <span class="preprocessor"></span>
|
||||
<a name="l00033"></a>00033 <span class="preprocessor">#include "PluckTwo.h"</span>
|
||||
<a name="l00034"></a>00034 <span class="preprocessor">#include "FileWvIn.h"</span>
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00036"></a><a class="code" href="classMandolin.html">00036</a> <span class="keyword">class </span><a class="code" href="classMandolin.html">Mandolin</a> : <span class="keyword">public</span> <a class="code" href="classPluckTwo.html">PluckTwo</a>
|
||||
<a name="l00037"></a>00037 {
|
||||
<a name="l00038"></a>00038 <span class="keyword">public</span>:
|
||||
<a name="l00040"></a>00040 <a class="code" href="classMandolin.html#a0">Mandolin</a>(StkFloat lowestFrequency);
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00043"></a>00043 <a class="code" href="classMandolin.html#a1">~Mandolin</a>();
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00046"></a>00046 <span class="keywordtype">void</span> <a class="code" href="classMandolin.html#a2">pluck</a>(StkFloat amplitude);
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00049"></a>00049 <span class="keywordtype">void</span> <a class="code" href="classMandolin.html#a2">pluck</a>(StkFloat amplitude,StkFloat position);
|
||||
<a name="l00050"></a>00050
|
||||
<a name="l00052"></a>00052 <span class="keywordtype">void</span> <a class="code" href="classMandolin.html#a4">noteOn</a>(StkFloat frequency, StkFloat amplitude);
|
||||
<a name="l00053"></a>00053
|
||||
<a name="l00055"></a>00055 <span class="keywordtype">void</span> <a class="code" href="classMandolin.html#a5">setBodySize</a>(StkFloat size);
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00058"></a>00058 <span class="keywordtype">void</span> <a class="code" href="classMandolin.html#a6">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
|
||||
<a name="l00059"></a>00059
|
||||
<a name="l00060"></a>00060 <span class="keyword">protected</span>:
|
||||
<a name="l00061"></a>00061
|
||||
<a name="l00062"></a>00062 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00063"></a>00063
|
||||
<a name="l00064"></a>00064 <a class="code" href="classFileWvIn.html">FileWvIn</a> *soundfile_[12];
|
||||
<a name="l00065"></a>00065 <span class="keywordtype">int</span> mic_;
|
||||
<a name="l00066"></a>00066 <span class="keywordtype">long</span> dampTime_;
|
||||
<a name="l00067"></a>00067 <span class="keywordtype">bool</span> waveDone_;
|
||||
<a name="l00068"></a>00068 };
|
||||
<a name="l00069"></a>00069
|
||||
<a name="l00070"></a>00070 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
89
doc/html/Mesh2D_8h-source.html
Normal file
89
doc/html/Mesh2D_8h-source.html
Normal file
@@ -0,0 +1,89 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Mesh2D.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00025"></a>00025 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00026"></a>00026
|
||||
<a name="l00027"></a>00027 <span class="preprocessor">#ifndef STK_MESH2D_H</span>
|
||||
<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#define STK_MESH2D_H</span>
|
||||
<a name="l00029"></a>00029 <span class="preprocessor"></span>
|
||||
<a name="l00030"></a>00030 <span class="preprocessor">#include "Instrmnt.h"</span>
|
||||
<a name="l00031"></a>00031 <span class="preprocessor">#include "OnePole.h"</span>
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00033"></a>00033 <span class="keyword">const</span> <span class="keywordtype">short</span> NXMAX = 12;
|
||||
<a name="l00034"></a>00034 <span class="keyword">const</span> <span class="keywordtype">short</span> NYMAX = 12;
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00036"></a><a class="code" href="classMesh2D.html">00036</a> <span class="keyword">class </span><a class="code" href="classMesh2D.html">Mesh2D</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
<a name="l00037"></a>00037 {
|
||||
<a name="l00038"></a>00038 <span class="keyword">public</span>:
|
||||
<a name="l00040"></a>00040 <a class="code" href="classMesh2D.html#a0">Mesh2D</a>(<span class="keywordtype">short</span> nX, <span class="keywordtype">short</span> nY);
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00043"></a>00043 <a class="code" href="classMesh2D.html#a1">~Mesh2D</a>();
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00046"></a>00046 <span class="keywordtype">void</span> <a class="code" href="classMesh2D.html#a2">clear</a>();
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00049"></a>00049 <span class="keywordtype">void</span> <a class="code" href="classMesh2D.html#a3">setNX</a>(<span class="keywordtype">short</span> lenX);
|
||||
<a name="l00050"></a>00050
|
||||
<a name="l00052"></a>00052 <span class="keywordtype">void</span> <a class="code" href="classMesh2D.html#a4">setNY</a>(<span class="keywordtype">short</span> lenY);
|
||||
<a name="l00053"></a>00053
|
||||
<a name="l00055"></a>00055 <span class="keywordtype">void</span> <a class="code" href="classMesh2D.html#a5">setInputPosition</a>(StkFloat xFactor, StkFloat yFactor);
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00058"></a>00058 <span class="keywordtype">void</span> <a class="code" href="classMesh2D.html#a6">setDecay</a>(StkFloat decayFactor);
|
||||
<a name="l00059"></a>00059
|
||||
<a name="l00061"></a>00061 <span class="keywordtype">void</span> <a class="code" href="classMesh2D.html#a7">noteOn</a>(StkFloat frequency, StkFloat amplitude);
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00064"></a>00064 <span class="keywordtype">void</span> <a class="code" href="classMesh2D.html#a8">noteOff</a>(StkFloat amplitude);
|
||||
<a name="l00065"></a>00065
|
||||
<a name="l00067"></a>00067 StkFloat <a class="code" href="classMesh2D.html#a9">energy</a>();
|
||||
<a name="l00068"></a>00068
|
||||
<a name="l00070"></a>00070 StkFloat <a class="code" href="classMesh2D.html#a10">inputTick</a>( StkFloat input );
|
||||
<a name="l00071"></a>00071
|
||||
<a name="l00073"></a>00073 <span class="keywordtype">void</span> <a class="code" href="classMesh2D.html#a11">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
|
||||
<a name="l00074"></a>00074
|
||||
<a name="l00075"></a>00075 <span class="keyword">protected</span>:
|
||||
<a name="l00076"></a>00076
|
||||
<a name="l00077"></a>00077 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00078"></a>00078
|
||||
<a name="l00079"></a>00079 StkFloat tick0();
|
||||
<a name="l00080"></a>00080 StkFloat tick1();
|
||||
<a name="l00081"></a>00081 <span class="keywordtype">void</span> clearMesh();
|
||||
<a name="l00082"></a>00082
|
||||
<a name="l00083"></a>00083 <span class="keywordtype">short</span> NX_, NY_;
|
||||
<a name="l00084"></a>00084 <span class="keywordtype">short</span> xInput_, yInput_;
|
||||
<a name="l00085"></a>00085 <a class="code" href="classOnePole.html">OnePole</a> filterX_[NXMAX];
|
||||
<a name="l00086"></a>00086 <a class="code" href="classOnePole.html">OnePole</a> filterY_[NYMAX];
|
||||
<a name="l00087"></a>00087 StkFloat v_[NXMAX-1][NYMAX-1]; <span class="comment">// junction velocities</span>
|
||||
<a name="l00088"></a>00088 StkFloat vxp_[NXMAX][NYMAX]; <span class="comment">// positive-x velocity wave</span>
|
||||
<a name="l00089"></a>00089 StkFloat vxm_[NXMAX][NYMAX]; <span class="comment">// negative-x velocity wave</span>
|
||||
<a name="l00090"></a>00090 StkFloat vyp_[NXMAX][NYMAX]; <span class="comment">// positive-y velocity wave</span>
|
||||
<a name="l00091"></a>00091 StkFloat vym_[NXMAX][NYMAX]; <span class="comment">// negative-y velocity wave</span>
|
||||
<a name="l00092"></a>00092
|
||||
<a name="l00093"></a>00093 <span class="comment">// Alternate buffers</span>
|
||||
<a name="l00094"></a>00094 StkFloat vxp1_[NXMAX][NYMAX]; <span class="comment">// positive-x velocity wave</span>
|
||||
<a name="l00095"></a>00095 StkFloat vxm1_[NXMAX][NYMAX]; <span class="comment">// negative-x velocity wave</span>
|
||||
<a name="l00096"></a>00096 StkFloat vyp1_[NXMAX][NYMAX]; <span class="comment">// positive-y velocity wave</span>
|
||||
<a name="l00097"></a>00097 StkFloat vym1_[NXMAX][NYMAX]; <span class="comment">// negative-y velocity wave</span>
|
||||
<a name="l00098"></a>00098
|
||||
<a name="l00099"></a>00099 <span class="keywordtype">int</span> counter_; <span class="comment">// time in samples</span>
|
||||
<a name="l00100"></a>00100 };
|
||||
<a name="l00101"></a>00101
|
||||
<a name="l00102"></a>00102 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
109
doc/html/Messager_8h-source.html
Normal file
109
doc/html/Messager_8h-source.html
Normal file
@@ -0,0 +1,109 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Messager.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00033"></a>00033 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00035"></a>00035 <span class="preprocessor">#ifndef STK_MESSAGER_H</span>
|
||||
<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#define STK_MESSAGER_H</span>
|
||||
<a name="l00037"></a>00037 <span class="preprocessor"></span>
|
||||
<a name="l00038"></a>00038 <span class="preprocessor">#include "Stk.h"</span>
|
||||
<a name="l00039"></a>00039 <span class="preprocessor">#include "Skini.h"</span>
|
||||
<a name="l00040"></a>00040 <span class="preprocessor">#include <queue></span>
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00042"></a>00042 <span class="keyword">const</span> <span class="keywordtype">int</span> DEFAULT_QUEUE_LIMIT = 200;
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00044"></a>00044 <span class="preprocessor">#if defined(__STK_REALTIME__)</span>
|
||||
<a name="l00045"></a>00045 <span class="preprocessor"></span>
|
||||
<a name="l00046"></a>00046 <span class="preprocessor">#include "Mutex.h"</span>
|
||||
<a name="l00047"></a>00047 <span class="preprocessor">#include "Thread.h"</span>
|
||||
<a name="l00048"></a>00048 <span class="preprocessor">#include "TcpServer.h"</span>
|
||||
<a name="l00049"></a>00049 <span class="preprocessor">#include "RtMidi.h"</span>
|
||||
<a name="l00050"></a>00050
|
||||
<a name="l00051"></a>00051 <span class="keyword">extern</span> <span class="stringliteral">"C"</span> THREAD_RETURN THREAD_TYPE stdinHandler(<span class="keywordtype">void</span> * ptr);
|
||||
<a name="l00052"></a>00052
|
||||
<a name="l00053"></a>00053 <span class="keyword">extern</span> <span class="stringliteral">"C"</span> THREAD_RETURN THREAD_TYPE socketHandler(<span class="keywordtype">void</span> * ptr);
|
||||
<a name="l00054"></a>00054
|
||||
<a name="l00055"></a>00055 <span class="preprocessor">#endif // __STK_REALTIME__</span>
|
||||
<a name="l00056"></a>00056 <span class="preprocessor"></span>
|
||||
<a name="l00057"></a><a class="code" href="classMessager.html">00057</a> <span class="keyword">class </span><a class="code" href="classMessager.html">Messager</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
|
||||
<a name="l00058"></a>00058 {
|
||||
<a name="l00059"></a>00059 <span class="keyword">public</span>:
|
||||
<a name="l00060"></a>00060
|
||||
<a name="l00061"></a>00061 <span class="comment">// This structure is used to share data among the various realtime</span>
|
||||
<a name="l00062"></a>00062 <span class="comment">// messager threads. It must be public.</span>
|
||||
<a name="l00063"></a>00063 <span class="keyword">struct </span>MessagerData {
|
||||
<a name="l00064"></a>00064 <a class="code" href="classSkini.html">Skini</a> skini;
|
||||
<a name="l00065"></a>00065 std::queue<Skini::Message> queue;
|
||||
<a name="l00066"></a>00066 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueLimit;
|
||||
<a name="l00067"></a>00067 <span class="keywordtype">int</span> sources;
|
||||
<a name="l00068"></a>00068
|
||||
<a name="l00069"></a>00069 <span class="preprocessor">#if defined(__STK_REALTIME__)</span>
|
||||
<a name="l00070"></a>00070 <span class="preprocessor"></span> <a class="code" href="classMutex.html">Mutex</a> mutex;
|
||||
<a name="l00071"></a>00071 <a class="code" href="classRtMidiIn.html">RtMidiIn</a> *midi;
|
||||
<a name="l00072"></a>00072 <a class="code" href="classTcpServer.html">TcpServer</a> *socket;
|
||||
<a name="l00073"></a>00073 std::vector<int> fd;
|
||||
<a name="l00074"></a>00074 fd_set mask;
|
||||
<a name="l00075"></a>00075 <span class="preprocessor">#endif</span>
|
||||
<a name="l00076"></a>00076 <span class="preprocessor"></span>
|
||||
<a name="l00077"></a>00077 <span class="comment">// Default constructor.</span>
|
||||
<a name="l00078"></a>00078 MessagerData()
|
||||
<a name="l00079"></a>00079 :queueLimit(0), sources(0) {}
|
||||
<a name="l00080"></a>00080 };
|
||||
<a name="l00081"></a>00081
|
||||
<a name="l00083"></a>00083 <a class="code" href="classMessager.html#a0">Messager</a>();
|
||||
<a name="l00084"></a>00084
|
||||
<a name="l00086"></a>00086 <a class="code" href="classMessager.html#a1">~Messager</a>();
|
||||
<a name="l00087"></a>00087
|
||||
<a name="l00089"></a>00089
|
||||
<a name="l00095"></a>00095 <span class="keywordtype">void</span> <a class="code" href="classMessager.html#a2">popMessage</a>( <a class="code" href="structSkini_1_1Message.html">Skini::Message</a>& message );
|
||||
<a name="l00096"></a>00096
|
||||
<a name="l00098"></a>00098 <span class="keywordtype">void</span> <a class="code" href="classMessager.html#a3">pushMessage</a>( <a class="code" href="structSkini_1_1Message.html">Skini::Message</a>& message );
|
||||
<a name="l00099"></a>00099
|
||||
<a name="l00101"></a>00101
|
||||
<a name="l00109"></a>00109 <span class="keywordtype">bool</span> <a class="code" href="classMessager.html#a4">setScoreFile</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* filename );
|
||||
<a name="l00110"></a>00110
|
||||
<a name="l00111"></a>00111 <span class="preprocessor">#if defined(__STK_REALTIME__)</span>
|
||||
<a name="l00112"></a>00112 <span class="preprocessor"></span>
|
||||
<a name="l00113"></a>00113
|
||||
<a name="l00122"></a>00122 <span class="keywordtype">bool</span> <a class="code" href="classMessager.html#a5">startStdInput</a>();
|
||||
<a name="l00123"></a>00123
|
||||
<a name="l00125"></a>00125
|
||||
<a name="l00136"></a>00136 <span class="keywordtype">bool</span> <a class="code" href="classMessager.html#a6">startSocketInput</a>( <span class="keywordtype">int</span> port=2001 );
|
||||
<a name="l00137"></a>00137
|
||||
<a name="l00139"></a>00139
|
||||
<a name="l00151"></a>00151 <span class="keywordtype">bool</span> <a class="code" href="classMessager.html#a7">startMidiInput</a>( <span class="keywordtype">int</span> port=0 );
|
||||
<a name="l00152"></a>00152
|
||||
<a name="l00153"></a>00153 <span class="preprocessor">#endif</span>
|
||||
<a name="l00154"></a>00154 <span class="preprocessor"></span>
|
||||
<a name="l00155"></a>00155 <span class="keyword">protected</span>:
|
||||
<a name="l00156"></a>00156
|
||||
<a name="l00157"></a>00157 MessagerData data_;
|
||||
<a name="l00158"></a>00158
|
||||
<a name="l00159"></a>00159 <span class="preprocessor">#if defined(__STK_REALTIME__)</span>
|
||||
<a name="l00160"></a>00160 <span class="preprocessor"></span> <a class="code" href="classThread.html">Thread</a> stdinThread_;
|
||||
<a name="l00161"></a>00161 <a class="code" href="classThread.html">Thread</a> socketThread_;
|
||||
<a name="l00162"></a>00162 <span class="preprocessor">#endif</span>
|
||||
<a name="l00163"></a>00163 <span class="preprocessor"></span>
|
||||
<a name="l00164"></a>00164 };
|
||||
<a name="l00165"></a>00165
|
||||
<a name="l00166"></a>00166 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
94
doc/html/MidiFileIn_8h-source.html
Normal file
94
doc/html/MidiFileIn_8h-source.html
Normal file
@@ -0,0 +1,94 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>MidiFileIn.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/**********************************************************************/</span>
|
||||
<a name="l00016"></a>00016 <span class="comment">/**********************************************************************/</span>
|
||||
<a name="l00017"></a>00017
|
||||
<a name="l00018"></a>00018 <span class="preprocessor">#ifndef STK_MIDIFILEIN_H</span>
|
||||
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define STK_MIDIFILEIN_H</span>
|
||||
<a name="l00020"></a>00020 <span class="preprocessor"></span>
|
||||
<a name="l00021"></a>00021 <span class="preprocessor">#include "Stk.h"</span>
|
||||
<a name="l00022"></a>00022 <span class="preprocessor">#include <string></span>
|
||||
<a name="l00023"></a>00023 <span class="preprocessor">#include <vector></span>
|
||||
<a name="l00024"></a>00024 <span class="preprocessor">#include <fstream></span>
|
||||
<a name="l00025"></a>00025 <span class="preprocessor">#include <sstream></span>
|
||||
<a name="l00026"></a>00026
|
||||
<a name="l00027"></a><a class="code" href="classMidiFileIn.html">00027</a> <span class="keyword">class </span><a class="code" href="classMidiFileIn.html">MidiFileIn</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
|
||||
<a name="l00028"></a>00028 {
|
||||
<a name="l00029"></a>00029 <span class="keyword">public</span>:
|
||||
<a name="l00031"></a>00031
|
||||
<a name="l00035"></a>00035 <a class="code" href="classMidiFileIn.html#a0">MidiFileIn</a>( std::string fileName );
|
||||
<a name="l00036"></a>00036
|
||||
<a name="l00038"></a>00038 <a class="code" href="classMidiFileIn.html#a1">~MidiFileIn</a>();
|
||||
<a name="l00039"></a>00039
|
||||
<a name="l00041"></a>00041 <span class="keywordtype">int</span> <a class="code" href="classMidiFileIn.html#a2">getFileFormat</a>() <span class="keyword">const</span>;
|
||||
<a name="l00042"></a>00042
|
||||
<a name="l00044"></a>00044 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classMidiFileIn.html#a3">getNumberOfTracks</a>() <span class="keyword">const</span>;
|
||||
<a name="l00045"></a>00045
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00052"></a>00052 <span class="keywordtype">int</span> <a class="code" href="classMidiFileIn.html#a4">getDivision</a>() <span class="keyword">const</span>;
|
||||
<a name="l00053"></a>00053
|
||||
<a name="l00055"></a>00055
|
||||
<a name="l00059"></a>00059 <span class="keywordtype">void</span> <a class="code" href="classMidiFileIn.html#a5">rewindTrack</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> track = 0 );
|
||||
<a name="l00060"></a>00060
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00069"></a>00069 <span class="keywordtype">double</span> <a class="code" href="classMidiFileIn.html#a6">getTickSeconds</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> track = 0 );
|
||||
<a name="l00070"></a>00070
|
||||
<a name="l00072"></a>00072
|
||||
<a name="l00084"></a>00084 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classMidiFileIn.html#a7">getNextEvent</a>( std::vector<unsigned char> *event, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> track = 0 );
|
||||
<a name="l00085"></a>00085
|
||||
<a name="l00087"></a>00087
|
||||
<a name="l00097"></a>00097 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classMidiFileIn.html#a8">getNextMidiEvent</a>( std::vector<unsigned char> *midiEvent, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> track = 0 );
|
||||
<a name="l00098"></a>00098
|
||||
<a name="l00099"></a>00099 <span class="keyword">protected</span>:
|
||||
<a name="l00100"></a>00100
|
||||
<a name="l00101"></a>00101 <span class="comment">// This protected class function is used for reading variable-length</span>
|
||||
<a name="l00102"></a>00102 <span class="comment">// MIDI file values. It is assumed that this function is called with</span>
|
||||
<a name="l00103"></a>00103 <span class="comment">// the file read pointer positioned at the start of a</span>
|
||||
<a name="l00104"></a>00104 <span class="comment">// variable-length value. The function returns true if the value is</span>
|
||||
<a name="l00105"></a>00105 <span class="comment">// successfully parsed. Otherwise, it returns false.</span>
|
||||
<a name="l00106"></a>00106 <span class="keywordtype">bool</span> readVariableLength( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *value );
|
||||
<a name="l00107"></a>00107
|
||||
<a name="l00108"></a>00108 std::ifstream file_;
|
||||
<a name="l00109"></a>00109 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nTracks_;
|
||||
<a name="l00110"></a>00110 <span class="keywordtype">int</span> format_;
|
||||
<a name="l00111"></a>00111 <span class="keywordtype">int</span> division_;
|
||||
<a name="l00112"></a>00112 <span class="keywordtype">bool</span> usingTimeCode_;
|
||||
<a name="l00113"></a>00113 std::vector<double> tickSeconds_;
|
||||
<a name="l00114"></a>00114 std::vector<long> trackPointers_;
|
||||
<a name="l00115"></a>00115 std::vector<long> trackOffsets_;
|
||||
<a name="l00116"></a>00116 std::vector<long> trackLengths_;
|
||||
<a name="l00117"></a>00117 std::vector<char> trackStatus_;
|
||||
<a name="l00118"></a>00118
|
||||
<a name="l00119"></a>00119 <span class="comment">// This structure and the following variables are used to save and</span>
|
||||
<a name="l00120"></a>00120 <span class="comment">// keep track of a format 1 tempo map (and the initial tickSeconds</span>
|
||||
<a name="l00121"></a>00121 <span class="comment">// parameter for formats 0 and 2).</span>
|
||||
<a name="l00122"></a>00122 <span class="keyword">struct </span>TempoChange {
|
||||
<a name="l00123"></a>00123 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> count;
|
||||
<a name="l00124"></a>00124 <span class="keywordtype">double</span> tickSeconds;
|
||||
<a name="l00125"></a>00125 };
|
||||
<a name="l00126"></a>00126 std::vector<TempoChange> tempoEvents_;
|
||||
<a name="l00127"></a>00127 std::vector<unsigned long> trackCounters_;
|
||||
<a name="l00128"></a>00128 std::vector<unsigned int> trackTempoIndex_;
|
||||
<a name="l00129"></a>00129 };
|
||||
<a name="l00130"></a>00130
|
||||
<a name="l00131"></a>00131 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
49
doc/html/ModalBar_8h-source.html
Normal file
49
doc/html/ModalBar_8h-source.html
Normal file
@@ -0,0 +1,49 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>ModalBar.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00029"></a>00029 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00030"></a>00030
|
||||
<a name="l00031"></a>00031 <span class="preprocessor">#ifndef STK_MODALBAR_H</span>
|
||||
<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#define STK_MODALBAR_H</span>
|
||||
<a name="l00033"></a>00033 <span class="preprocessor"></span>
|
||||
<a name="l00034"></a>00034 <span class="preprocessor">#include "Modal.h"</span>
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00036"></a><a class="code" href="classModalBar.html">00036</a> <span class="keyword">class </span><a class="code" href="classModalBar.html">ModalBar</a> : <span class="keyword">public</span> <a class="code" href="classModal.html">Modal</a>
|
||||
<a name="l00037"></a>00037 {
|
||||
<a name="l00038"></a>00038 <span class="keyword">public</span>:
|
||||
<a name="l00040"></a>00040 <a class="code" href="classModalBar.html#a0">ModalBar</a>();
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00043"></a>00043 <a class="code" href="classModalBar.html#a1">~ModalBar</a>();
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00046"></a>00046 <span class="keywordtype">void</span> <a class="code" href="classModalBar.html#a2">setStickHardness</a>(StkFloat hardness);
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00049"></a>00049 <span class="keywordtype">void</span> <a class="code" href="classModalBar.html#a3">setStrikePosition</a>(StkFloat position);
|
||||
<a name="l00050"></a>00050
|
||||
<a name="l00052"></a>00052 <span class="keywordtype">void</span> <a class="code" href="classModalBar.html#a4">setPreset</a>(<span class="keywordtype">int</span> preset);
|
||||
<a name="l00053"></a>00053
|
||||
<a name="l00055"></a>00055 <span class="keywordtype">void</span> <a class="code" href="classModalBar.html#a5">setModulationDepth</a>(StkFloat mDepth);
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00058"></a>00058 <span class="keywordtype">void</span> <a class="code" href="classModalBar.html#a6">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
|
||||
<a name="l00059"></a>00059 };
|
||||
<a name="l00060"></a>00060
|
||||
<a name="l00061"></a>00061 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
88
doc/html/Modal_8h-source.html
Normal file
88
doc/html/Modal_8h-source.html
Normal file
@@ -0,0 +1,88 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Modal.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00012"></a>00012 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00013"></a>00013
|
||||
<a name="l00014"></a>00014 <span class="preprocessor">#ifndef STK_MODAL_H</span>
|
||||
<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#define STK_MODAL_H</span>
|
||||
<a name="l00016"></a>00016 <span class="preprocessor"></span>
|
||||
<a name="l00017"></a>00017 <span class="preprocessor">#include "Instrmnt.h"</span>
|
||||
<a name="l00018"></a>00018 <span class="preprocessor">#include "Envelope.h"</span>
|
||||
<a name="l00019"></a>00019 <span class="preprocessor">#include "WaveLoop.h"</span>
|
||||
<a name="l00020"></a>00020 <span class="preprocessor">#include "SineWave.h"</span>
|
||||
<a name="l00021"></a>00021 <span class="preprocessor">#include "BiQuad.h"</span>
|
||||
<a name="l00022"></a>00022 <span class="preprocessor">#include "OnePole.h"</span>
|
||||
<a name="l00023"></a>00023
|
||||
<a name="l00024"></a><a class="code" href="classModal.html">00024</a> <span class="keyword">class </span><a class="code" href="classModal.html">Modal</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
<a name="l00025"></a>00025 {
|
||||
<a name="l00026"></a>00026 <span class="keyword">public</span>:
|
||||
<a name="l00028"></a>00028
|
||||
<a name="l00031"></a>00031 <a class="code" href="classModal.html#a0">Modal</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> modes = 4 );
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00034"></a>00034 <span class="keyword">virtual</span> <a class="code" href="classModal.html#a1">~Modal</a>();
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00037"></a>00037 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a2">clear</a>();
|
||||
<a name="l00038"></a>00038
|
||||
<a name="l00040"></a>00040 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModal.html#a3">setFrequency</a>(StkFloat frequency);
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00043"></a>00043 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a4">setRatioAndRadius</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> modeIndex, StkFloat ratio, StkFloat radius);
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00046"></a>00046 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a5">setMasterGain</a>(StkFloat aGain);
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00049"></a>00049 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a6">setDirectGain</a>(StkFloat aGain);
|
||||
<a name="l00050"></a>00050
|
||||
<a name="l00052"></a>00052 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a7">setModeGain</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> modeIndex, StkFloat gain);
|
||||
<a name="l00053"></a>00053
|
||||
<a name="l00055"></a>00055 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModal.html#a8">strike</a>(StkFloat amplitude);
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00058"></a>00058 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a9">damp</a>(StkFloat amplitude);
|
||||
<a name="l00059"></a>00059
|
||||
<a name="l00061"></a>00061 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a10">noteOn</a>(StkFloat frequency, StkFloat amplitude);
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00064"></a>00064 <span class="keywordtype">void</span> <a class="code" href="classModal.html#a11">noteOff</a>(StkFloat amplitude);
|
||||
<a name="l00065"></a>00065
|
||||
<a name="l00067"></a>00067 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModal.html#a12">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value) = 0;
|
||||
<a name="l00068"></a>00068
|
||||
<a name="l00069"></a>00069 <span class="keyword">protected</span>:
|
||||
<a name="l00070"></a>00070
|
||||
<a name="l00071"></a>00071 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00072"></a>00072
|
||||
<a name="l00073"></a>00073 <a class="code" href="classEnvelope.html">Envelope</a> envelope_;
|
||||
<a name="l00074"></a>00074 <a class="code" href="classFileWvIn.html">FileWvIn</a> *wave_;
|
||||
<a name="l00075"></a>00075 <a class="code" href="classBiQuad.html">BiQuad</a> **filters_;
|
||||
<a name="l00076"></a>00076 <a class="code" href="classOnePole.html">OnePole</a> onepole_;
|
||||
<a name="l00077"></a>00077 <a class="code" href="classSineWave.html">SineWave</a> vibrato_;
|
||||
<a name="l00078"></a>00078
|
||||
<a name="l00079"></a>00079 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nModes_;
|
||||
<a name="l00080"></a>00080 std::vector<StkFloat> ratios_;
|
||||
<a name="l00081"></a>00081 std::vector<StkFloat> radii_;
|
||||
<a name="l00082"></a>00082
|
||||
<a name="l00083"></a>00083 StkFloat vibratoGain_;
|
||||
<a name="l00084"></a>00084 StkFloat masterGain_;
|
||||
<a name="l00085"></a>00085 StkFloat directGain_;
|
||||
<a name="l00086"></a>00086 StkFloat stickHardness_;
|
||||
<a name="l00087"></a>00087 StkFloat strikePosition_;
|
||||
<a name="l00088"></a>00088 StkFloat baseFrequency_;
|
||||
<a name="l00089"></a>00089 };
|
||||
<a name="l00090"></a>00090
|
||||
<a name="l00091"></a>00091 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
62
doc/html/Modulate_8h-source.html
Normal file
62
doc/html/Modulate_8h-source.html
Normal file
@@ -0,0 +1,62 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Modulate.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00011"></a>00011 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00012"></a>00012
|
||||
<a name="l00013"></a>00013 <span class="preprocessor">#ifndef STK_MODULATE_H</span>
|
||||
<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#define STK_MODULATE_H</span>
|
||||
<a name="l00015"></a>00015 <span class="preprocessor"></span>
|
||||
<a name="l00016"></a>00016 <span class="preprocessor">#include "Generator.h"</span>
|
||||
<a name="l00017"></a>00017 <span class="preprocessor">#include "SineWave.h"</span>
|
||||
<a name="l00018"></a>00018 <span class="preprocessor">#include "SubNoise.h"</span>
|
||||
<a name="l00019"></a>00019 <span class="preprocessor">#include "OnePole.h"</span>
|
||||
<a name="l00020"></a>00020
|
||||
<a name="l00021"></a><a class="code" href="classModulate.html">00021</a> <span class="keyword">class </span><a class="code" href="classModulate.html">Modulate</a> : <span class="keyword">public</span> <a class="code" href="classGenerator.html">Generator</a>
|
||||
<a name="l00022"></a>00022 {
|
||||
<a name="l00023"></a>00023 <span class="keyword">public</span>:
|
||||
<a name="l00025"></a>00025
|
||||
<a name="l00028"></a>00028 <a class="code" href="classModulate.html#a0">Modulate</a>();
|
||||
<a name="l00029"></a>00029
|
||||
<a name="l00031"></a>00031 <a class="code" href="classModulate.html#a1">~Modulate</a>();
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00034"></a>00034 <span class="keywordtype">void</span> <a class="code" href="classModulate.html#a2">reset</a>();
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00037"></a>00037 <span class="keywordtype">void</span> <a class="code" href="classModulate.html#a3">setVibratoRate</a>(StkFloat rate);
|
||||
<a name="l00038"></a>00038
|
||||
<a name="l00040"></a>00040 <span class="keywordtype">void</span> <a class="code" href="classModulate.html#a4">setVibratoGain</a>(StkFloat gain);
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00043"></a>00043 <span class="keywordtype">void</span> <a class="code" href="classModulate.html#a5">setRandomGain</a>(StkFloat gain);
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00045"></a>00045 <span class="keyword">protected</span>:
|
||||
<a name="l00046"></a>00046
|
||||
<a name="l00047"></a>00047 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00049"></a>00049 <a class="code" href="classSineWave.html">SineWave</a> vibrato_;
|
||||
<a name="l00050"></a>00050 <a class="code" href="classSubNoise.html">SubNoise</a> noise_;
|
||||
<a name="l00051"></a>00051 <a class="code" href="classOnePole.html">OnePole</a> filter_;
|
||||
<a name="l00052"></a>00052 StkFloat vibratoGain_;
|
||||
<a name="l00053"></a>00053 StkFloat randomGain_;
|
||||
<a name="l00054"></a>00054
|
||||
<a name="l00055"></a>00055 };
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00057"></a>00057 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
61
doc/html/Moog_8h-source.html
Normal file
61
doc/html/Moog_8h-source.html
Normal file
@@ -0,0 +1,61 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Moog.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00019"></a>00019 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00020"></a>00020
|
||||
<a name="l00021"></a>00021 <span class="preprocessor">#ifndef STK_MOOG_H</span>
|
||||
<a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#define STK_MOOG_H</span>
|
||||
<a name="l00023"></a>00023 <span class="preprocessor"></span>
|
||||
<a name="l00024"></a>00024 <span class="preprocessor">#include "Sampler.h"</span>
|
||||
<a name="l00025"></a>00025 <span class="preprocessor">#include "FormSwep.h"</span>
|
||||
<a name="l00026"></a>00026
|
||||
<a name="l00027"></a><a class="code" href="classMoog.html">00027</a> <span class="keyword">class </span><a class="code" href="classMoog.html">Moog</a> : <span class="keyword">public</span> <a class="code" href="classSampler.html">Sampler</a>
|
||||
<a name="l00028"></a>00028 {
|
||||
<a name="l00029"></a>00029 <span class="keyword">public</span>:
|
||||
<a name="l00031"></a>00031
|
||||
<a name="l00034"></a>00034 <a class="code" href="classMoog.html#a0">Moog</a>();
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00037"></a>00037 <a class="code" href="classMoog.html#a1">~Moog</a>();
|
||||
<a name="l00038"></a>00038
|
||||
<a name="l00040"></a>00040 <span class="keywordtype">void</span> <a class="code" href="classMoog.html#a2">setFrequency</a>(StkFloat frequency);
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00043"></a>00043 <span class="keywordtype">void</span> <a class="code" href="classMoog.html#a3">noteOn</a>(StkFloat frequency, StkFloat amplitude);
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00046"></a>00046 <span class="keywordtype">void</span> <a class="code" href="classMoog.html#a4">setModulationSpeed</a>(StkFloat mSpeed);
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00049"></a>00049 <span class="keywordtype">void</span> <a class="code" href="classMoog.html#a5">setModulationDepth</a>(StkFloat mDepth);
|
||||
<a name="l00050"></a>00050
|
||||
<a name="l00052"></a>00052 <span class="keywordtype">void</span> <a class="code" href="classMoog.html#a6">controlChange</a>(<span class="keywordtype">int</span> number, StkFloat value);
|
||||
<a name="l00053"></a>00053
|
||||
<a name="l00054"></a>00054 <span class="keyword">protected</span>:
|
||||
<a name="l00055"></a>00055
|
||||
<a name="l00056"></a>00056 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00057"></a>00057
|
||||
<a name="l00058"></a>00058 <a class="code" href="classFormSwep.html">FormSwep</a> filters_[2];
|
||||
<a name="l00059"></a>00059 StkFloat modDepth_;
|
||||
<a name="l00060"></a>00060 StkFloat filterQ_;
|
||||
<a name="l00061"></a>00061 StkFloat filterRate_;
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00063"></a>00063 };
|
||||
<a name="l00064"></a>00064
|
||||
<a name="l00065"></a>00065 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
70
doc/html/Mutex_8h-source.html
Normal file
70
doc/html/Mutex_8h-source.html
Normal file
@@ -0,0 +1,70 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Mutex.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00012"></a>00012 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00013"></a>00013
|
||||
<a name="l00014"></a>00014 <span class="preprocessor">#ifndef STK_MUTEX_H</span>
|
||||
<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#define STK_MUTEX_H</span>
|
||||
<a name="l00016"></a>00016 <span class="preprocessor"></span>
|
||||
<a name="l00017"></a>00017 <span class="preprocessor">#include "Stk.h"</span>
|
||||
<a name="l00018"></a>00018
|
||||
<a name="l00019"></a>00019 <span class="preprocessor">#if (defined(__OS_IRIX__) || defined(__OS_LINUX__) || defined(__OS_MACOSX__))</span>
|
||||
<a name="l00020"></a>00020 <span class="preprocessor"></span>
|
||||
<a name="l00021"></a>00021 <span class="preprocessor"> #include <pthread.h></span>
|
||||
<a name="l00022"></a>00022 <span class="keyword">typedef</span> pthread_mutex_t MUTEX;
|
||||
<a name="l00023"></a>00023 <span class="keyword">typedef</span> pthread_cond_t CONDITION;
|
||||
<a name="l00024"></a>00024
|
||||
<a name="l00025"></a>00025 <span class="preprocessor">#elif defined(__OS_WINDOWS__)</span>
|
||||
<a name="l00026"></a>00026 <span class="preprocessor"></span>
|
||||
<a name="l00027"></a>00027 <span class="preprocessor"> #include <windows.h></span>
|
||||
<a name="l00028"></a>00028 <span class="preprocessor"> #include <process.h></span>
|
||||
<a name="l00029"></a>00029 <span class="keyword">typedef</span> CRITICAL_SECTION MUTEX;
|
||||
<a name="l00030"></a>00030 <span class="keyword">typedef</span> HANDLE CONDITION;
|
||||
<a name="l00031"></a>00031
|
||||
<a name="l00032"></a>00032 <span class="preprocessor">#endif</span>
|
||||
<a name="l00033"></a>00033 <span class="preprocessor"></span>
|
||||
<a name="l00034"></a><a class="code" href="classMutex.html">00034</a> <span class="keyword">class </span><a class="code" href="classMutex.html">Mutex</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
|
||||
<a name="l00035"></a>00035 {
|
||||
<a name="l00036"></a>00036 <span class="keyword">public</span>:
|
||||
<a name="l00038"></a>00038 <a class="code" href="classMutex.html#a0">Mutex</a>();
|
||||
<a name="l00039"></a>00039
|
||||
<a name="l00041"></a>00041 <a class="code" href="classMutex.html#a1">~Mutex</a>();
|
||||
<a name="l00042"></a>00042
|
||||
<a name="l00044"></a>00044 <span class="keywordtype">void</span> <a class="code" href="classMutex.html#a2">lock</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00045"></a>00045
|
||||
<a name="l00047"></a>00047 <span class="keywordtype">void</span> <a class="code" href="classMutex.html#a3">unlock</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00050"></a>00050
|
||||
<a name="l00054"></a>00054 <span class="keywordtype">void</span> <a class="code" href="classMutex.html#a4">wait</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00055"></a>00055
|
||||
<a name="l00057"></a>00057
|
||||
<a name="l00061"></a>00061 <span class="keywordtype">void</span> <a class="code" href="classMutex.html#a5">signal</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00063"></a>00063 <span class="keyword">protected</span>:
|
||||
<a name="l00064"></a>00064
|
||||
<a name="l00065"></a>00065 MUTEX mutex_;
|
||||
<a name="l00066"></a>00066 CONDITION condition_;
|
||||
<a name="l00067"></a>00067
|
||||
<a name="l00068"></a>00068 };
|
||||
<a name="l00069"></a>00069
|
||||
<a name="l00070"></a>00070 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
56
doc/html/NRev_8h-source.html
Normal file
56
doc/html/NRev_8h-source.html
Normal file
@@ -0,0 +1,56 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>NRev.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00017"></a>00017 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00018"></a>00018
|
||||
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef STK_NREV_H</span>
|
||||
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define STK_NREV_H</span>
|
||||
<a name="l00021"></a>00021 <span class="preprocessor"></span>
|
||||
<a name="l00022"></a>00022 <span class="preprocessor">#include "Effect.h"</span>
|
||||
<a name="l00023"></a>00023 <span class="preprocessor">#include "Delay.h"</span>
|
||||
<a name="l00024"></a>00024
|
||||
<a name="l00025"></a><a class="code" href="classNRev.html">00025</a> <span class="keyword">class </span><a class="code" href="classNRev.html">NRev</a> : <span class="keyword">public</span> <a class="code" href="classEffect.html">Effect</a>
|
||||
<a name="l00026"></a>00026 {
|
||||
<a name="l00027"></a>00027 <span class="keyword">public</span>:
|
||||
<a name="l00029"></a>00029 <a class="code" href="classNRev.html#a0">NRev</a>( StkFloat T60 = 1.0 );
|
||||
<a name="l00030"></a>00030
|
||||
<a name="l00032"></a>00032 <a class="code" href="classNRev.html#a1">~NRev</a>();
|
||||
<a name="l00033"></a>00033
|
||||
<a name="l00035"></a>00035 <span class="keywordtype">void</span> <a class="code" href="classNRev.html#a2">clear</a>();
|
||||
<a name="l00036"></a>00036
|
||||
<a name="l00038"></a>00038 <span class="keywordtype">void</span> <a class="code" href="classNRev.html#a3">setT60</a>( StkFloat T60 );
|
||||
<a name="l00039"></a>00039
|
||||
<a name="l00040"></a>00040 <span class="keyword">protected</span>:
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00042"></a>00042 StkFloat computeSample( StkFloat input );
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00044"></a>00044 <a class="code" href="classDelay.html">Delay</a> allpassDelays_[8];
|
||||
<a name="l00045"></a>00045 <a class="code" href="classDelay.html">Delay</a> combDelays_[6];
|
||||
<a name="l00046"></a>00046 StkFloat allpassCoefficient_;
|
||||
<a name="l00047"></a>00047 StkFloat combCoefficient_[6];
|
||||
<a name="l00048"></a>00048 StkFloat lowpassState_;
|
||||
<a name="l00049"></a>00049
|
||||
<a name="l00050"></a>00050 };
|
||||
<a name="l00051"></a>00051
|
||||
<a name="l00052"></a>00052 <span class="preprocessor">#endif</span>
|
||||
<a name="l00053"></a>00053 <span class="preprocessor"></span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
51
doc/html/Noise_8h-source.html
Normal file
51
doc/html/Noise_8h-source.html
Normal file
@@ -0,0 +1,51 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Noise.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00011"></a>00011 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00012"></a>00012
|
||||
<a name="l00013"></a>00013 <span class="preprocessor">#ifndef STK_NOISE_H</span>
|
||||
<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#define STK_NOISE_H</span>
|
||||
<a name="l00015"></a>00015 <span class="preprocessor"></span>
|
||||
<a name="l00016"></a>00016 <span class="preprocessor">#include "Generator.h"</span>
|
||||
<a name="l00017"></a>00017
|
||||
<a name="l00018"></a><a class="code" href="classNoise.html">00018</a> <span class="keyword">class </span><a class="code" href="classNoise.html">Noise</a> : <span class="keyword">public</span> <a class="code" href="classGenerator.html">Generator</a>
|
||||
<a name="l00019"></a>00019 {
|
||||
<a name="l00020"></a>00020 <span class="keyword">public</span>:
|
||||
<a name="l00021"></a>00021
|
||||
<a name="l00023"></a>00023 <a class="code" href="classNoise.html#a0">Noise</a>();
|
||||
<a name="l00024"></a>00024
|
||||
<a name="l00026"></a>00026
|
||||
<a name="l00030"></a>00030 <a class="code" href="classNoise.html#a0">Noise</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> seed );
|
||||
<a name="l00031"></a>00031
|
||||
<a name="l00033"></a>00033 <span class="keyword">virtual</span> <a class="code" href="classNoise.html#a2">~Noise</a>();
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00036"></a>00036
|
||||
<a name="l00040"></a>00040 <span class="keywordtype">void</span> <a class="code" href="classNoise.html#a3">setSeed</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> seed = 0 );
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00042"></a>00042 <span class="keyword">protected</span>:
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00044"></a>00044 <span class="keyword">virtual</span> StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00045"></a>00045
|
||||
<a name="l00046"></a>00046 };
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00048"></a>00048 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
64
doc/html/OnePole_8h-source.html
Normal file
64
doc/html/OnePole_8h-source.html
Normal file
@@ -0,0 +1,64 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>OnePole.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00013"></a>00013 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00014"></a>00014
|
||||
<a name="l00015"></a>00015 <span class="preprocessor">#ifndef STK_ONEPOLE_H</span>
|
||||
<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#define STK_ONEPOLE_H</span>
|
||||
<a name="l00017"></a>00017 <span class="preprocessor"></span>
|
||||
<a name="l00018"></a>00018 <span class="preprocessor">#include "Filter.h"</span>
|
||||
<a name="l00019"></a>00019
|
||||
<a name="l00020"></a><a class="code" href="classOnePole.html">00020</a> <span class="keyword">class </span><a class="code" href="classOnePole.html">OnePole</a> : <span class="keyword">protected</span> <a class="code" href="classFilter.html">Filter</a>
|
||||
<a name="l00021"></a>00021 {
|
||||
<a name="l00022"></a>00022 <span class="keyword">public</span>:
|
||||
<a name="l00023"></a>00023
|
||||
<a name="l00025"></a>00025 <a class="code" href="classOnePole.html#a0">OnePole</a>();
|
||||
<a name="l00026"></a>00026
|
||||
<a name="l00028"></a>00028 <a class="code" href="classOnePole.html#a0">OnePole</a>( StkFloat thePole );
|
||||
<a name="l00029"></a>00029
|
||||
<a name="l00031"></a>00031 <a class="code" href="classOnePole.html#a2">~OnePole</a>();
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00034"></a>00034 <span class="keywordtype">void</span> <a class="code" href="classOnePole.html#a3">clear</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00037"></a>00037 <span class="keywordtype">void</span> <a class="code" href="classOnePole.html#a4">setB0</a>(StkFloat b0);
|
||||
<a name="l00038"></a>00038
|
||||
<a name="l00040"></a>00040 <span class="keywordtype">void</span> <a class="code" href="classOnePole.html#a5">setA1</a>(StkFloat a1);
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00050"></a>00050 <span class="keywordtype">void</span> <a class="code" href="classOnePole.html#a6">setPole</a>(StkFloat thePole);
|
||||
<a name="l00051"></a>00051
|
||||
<a name="l00053"></a>00053
|
||||
<a name="l00057"></a>00057 <span class="keywordtype">void</span> <a class="code" href="classOnePole.html#a7">setGain</a>(StkFloat gain);
|
||||
<a name="l00058"></a>00058
|
||||
<a name="l00060"></a>00060 StkFloat <a class="code" href="classOnePole.html#a8">getGain</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
|
||||
<a name="l00061"></a>00061
|
||||
<a name="l00063"></a>00063 StkFloat <a class="code" href="classOnePole.html#a9">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
|
||||
<a name="l00064"></a>00064
|
||||
<a name="l00066"></a>00066 StkFloat <a class="code" href="classOnePole.html#a10">tick</a>(StkFloat sample);
|
||||
<a name="l00067"></a>00067
|
||||
<a name="l00069"></a>00069
|
||||
<a name="l00075"></a>00075 <a class="code" href="classStkFrames.html">StkFrames</a>& <a class="code" href="classOnePole.html#a10">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>& frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 0 );
|
||||
<a name="l00076"></a>00076
|
||||
<a name="l00077"></a>00077 };
|
||||
<a name="l00078"></a>00078
|
||||
<a name="l00079"></a>00079 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
64
doc/html/OneZero_8h-source.html
Normal file
64
doc/html/OneZero_8h-source.html
Normal file
@@ -0,0 +1,64 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>OneZero.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00013"></a>00013 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00014"></a>00014
|
||||
<a name="l00015"></a>00015 <span class="preprocessor">#ifndef STK_ONEZERO_H</span>
|
||||
<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#define STK_ONEZERO_H</span>
|
||||
<a name="l00017"></a>00017 <span class="preprocessor"></span>
|
||||
<a name="l00018"></a>00018 <span class="preprocessor">#include "Filter.h"</span>
|
||||
<a name="l00019"></a>00019
|
||||
<a name="l00020"></a><a class="code" href="classOneZero.html">00020</a> <span class="keyword">class </span><a class="code" href="classOneZero.html">OneZero</a> : <span class="keyword">protected</span> <a class="code" href="classFilter.html">Filter</a>
|
||||
<a name="l00021"></a>00021 {
|
||||
<a name="l00022"></a>00022 <span class="keyword">public</span>:
|
||||
<a name="l00023"></a>00023
|
||||
<a name="l00025"></a>00025 <a class="code" href="classOneZero.html#a0">OneZero</a>();
|
||||
<a name="l00026"></a>00026
|
||||
<a name="l00028"></a>00028 <a class="code" href="classOneZero.html#a0">OneZero</a>(StkFloat theZero);
|
||||
<a name="l00029"></a>00029
|
||||
<a name="l00031"></a>00031 <a class="code" href="classOneZero.html#a2">~OneZero</a>();
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00034"></a>00034 <span class="keywordtype">void</span> <a class="code" href="classOneZero.html#a3">clear</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00035"></a>00035
|
||||
<a name="l00037"></a>00037 <span class="keywordtype">void</span> <a class="code" href="classOneZero.html#a4">setB0</a>(StkFloat b0);
|
||||
<a name="l00038"></a>00038
|
||||
<a name="l00040"></a>00040 <span class="keywordtype">void</span> <a class="code" href="classOneZero.html#a5">setB1</a>(StkFloat b1);
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00050"></a>00050 <span class="keywordtype">void</span> <a class="code" href="classOneZero.html#a6">setZero</a>(StkFloat theZero);
|
||||
<a name="l00051"></a>00051
|
||||
<a name="l00053"></a>00053
|
||||
<a name="l00057"></a>00057 <span class="keywordtype">void</span> <a class="code" href="classOneZero.html#a7">setGain</a>(StkFloat gain);
|
||||
<a name="l00058"></a>00058
|
||||
<a name="l00060"></a>00060 StkFloat <a class="code" href="classOneZero.html#a8">getGain</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
|
||||
<a name="l00061"></a>00061
|
||||
<a name="l00063"></a>00063 StkFloat <a class="code" href="classOneZero.html#a9">lastOut</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
|
||||
<a name="l00064"></a>00064
|
||||
<a name="l00066"></a>00066 StkFloat <a class="code" href="classOneZero.html#a10">tick</a>(StkFloat sample);
|
||||
<a name="l00067"></a>00067
|
||||
<a name="l00069"></a>00069
|
||||
<a name="l00075"></a>00075 <a class="code" href="classStkFrames.html">StkFrames</a>& <a class="code" href="classOneZero.html#a10">tick</a>( <a class="code" href="classStkFrames.html">StkFrames</a>& frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channel = 0 );
|
||||
<a name="l00076"></a>00076
|
||||
<a name="l00077"></a>00077 };
|
||||
<a name="l00078"></a>00078
|
||||
<a name="l00079"></a>00079 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
55
doc/html/PRCRev_8h-source.html
Normal file
55
doc/html/PRCRev_8h-source.html
Normal file
@@ -0,0 +1,55 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>PRCRev.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00015"></a>00015 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00016"></a>00016
|
||||
<a name="l00017"></a>00017 <span class="preprocessor">#ifndef STK_PRCREV_H</span>
|
||||
<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define STK_PRCREV_H</span>
|
||||
<a name="l00019"></a>00019 <span class="preprocessor"></span>
|
||||
<a name="l00020"></a>00020 <span class="preprocessor">#include "Effect.h"</span>
|
||||
<a name="l00021"></a>00021 <span class="preprocessor">#include "Delay.h"</span>
|
||||
<a name="l00022"></a>00022
|
||||
<a name="l00023"></a><a class="code" href="classPRCRev.html">00023</a> <span class="keyword">class </span><a class="code" href="classPRCRev.html">PRCRev</a> : <span class="keyword">public</span> <a class="code" href="classEffect.html">Effect</a>
|
||||
<a name="l00024"></a>00024 {
|
||||
<a name="l00025"></a>00025 <span class="keyword">public</span>:
|
||||
<a name="l00027"></a>00027 <a class="code" href="classPRCRev.html#a0">PRCRev</a>( StkFloat T60 = 1.0 );
|
||||
<a name="l00028"></a>00028
|
||||
<a name="l00030"></a>00030 <a class="code" href="classPRCRev.html#a1">~PRCRev</a>();
|
||||
<a name="l00031"></a>00031
|
||||
<a name="l00033"></a>00033 <span class="keywordtype">void</span> <a class="code" href="classPRCRev.html#a2">clear</a>();
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00036"></a>00036 <span class="keywordtype">void</span> <a class="code" href="classPRCRev.html#a3">setT60</a>( StkFloat T60 );
|
||||
<a name="l00037"></a>00037
|
||||
<a name="l00038"></a>00038 <span class="keyword">protected</span>:
|
||||
<a name="l00039"></a>00039
|
||||
<a name="l00040"></a>00040 StkFloat computeSample( StkFloat input );
|
||||
<a name="l00041"></a>00041
|
||||
<a name="l00042"></a>00042 <a class="code" href="classDelay.html">Delay</a> allpassDelays_[2];
|
||||
<a name="l00043"></a>00043 <a class="code" href="classDelay.html">Delay</a> combDelays_[2];
|
||||
<a name="l00044"></a>00044 StkFloat allpassCoefficient_;
|
||||
<a name="l00045"></a>00045 StkFloat combCoefficient_[2];
|
||||
<a name="l00046"></a>00046
|
||||
<a name="l00047"></a>00047 };
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00049"></a>00049 <span class="preprocessor">#endif</span>
|
||||
<a name="l00050"></a>00050 <span class="preprocessor"></span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
48
doc/html/PercFlut_8h-source.html
Normal file
48
doc/html/PercFlut_8h-source.html
Normal file
@@ -0,0 +1,48 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>PercFlut.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00027"></a>00027 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00028"></a>00028
|
||||
<a name="l00029"></a>00029 <span class="preprocessor">#ifndef STK_PERCFLUT_H</span>
|
||||
<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define STK_PERCFLUT_H</span>
|
||||
<a name="l00031"></a>00031 <span class="preprocessor"></span>
|
||||
<a name="l00032"></a>00032 <span class="preprocessor">#include "FM.h"</span>
|
||||
<a name="l00033"></a>00033
|
||||
<a name="l00034"></a><a class="code" href="classPercFlut.html">00034</a> <span class="keyword">class </span><a class="code" href="classPercFlut.html">PercFlut</a> : <span class="keyword">public</span> <a class="code" href="classFM.html">FM</a>
|
||||
<a name="l00035"></a>00035 {
|
||||
<a name="l00036"></a>00036 <span class="keyword">public</span>:
|
||||
<a name="l00038"></a>00038
|
||||
<a name="l00041"></a>00041 <a class="code" href="classPercFlut.html#a0">PercFlut</a>();
|
||||
<a name="l00042"></a>00042
|
||||
<a name="l00044"></a>00044 <a class="code" href="classPercFlut.html#a1">~PercFlut</a>();
|
||||
<a name="l00045"></a>00045
|
||||
<a name="l00047"></a>00047 <span class="keywordtype">void</span> <a class="code" href="classPercFlut.html#a2">setFrequency</a>(StkFloat frequency);
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00050"></a>00050 <span class="keywordtype">void</span> <a class="code" href="classPercFlut.html#a3">noteOn</a>(StkFloat frequency, StkFloat amplitude);
|
||||
<a name="l00051"></a>00051
|
||||
<a name="l00052"></a>00052 <span class="keyword">protected</span>:
|
||||
<a name="l00053"></a>00053
|
||||
<a name="l00054"></a>00054 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00055"></a>00055 };
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00057"></a>00057 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
57
doc/html/Phonemes_8h-source.html
Normal file
57
doc/html/Phonemes_8h-source.html
Normal file
@@ -0,0 +1,57 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Phonemes.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00011"></a>00011 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00012"></a>00012
|
||||
<a name="l00013"></a>00013 <span class="preprocessor">#ifndef STK_PHONEMES_H</span>
|
||||
<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#define STK_PHONEMES_H</span>
|
||||
<a name="l00015"></a>00015 <span class="preprocessor"></span>
|
||||
<a name="l00016"></a>00016 <span class="preprocessor">#include "Stk.h"</span>
|
||||
<a name="l00017"></a>00017
|
||||
<a name="l00018"></a><a class="code" href="classPhonemes.html">00018</a> <span class="keyword">class </span><a class="code" href="classPhonemes.html">Phonemes</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
|
||||
<a name="l00019"></a>00019 {
|
||||
<a name="l00020"></a>00020 <span class="keyword">public</span>:
|
||||
<a name="l00021"></a>00021
|
||||
<a name="l00022"></a>00022 <a class="code" href="classPhonemes.html">Phonemes</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00023"></a>00023 ~<a class="code" href="classPhonemes.html">Phonemes</a>(<span class="keywordtype">void</span>);
|
||||
<a name="l00024"></a>00024
|
||||
<a name="l00026"></a>00026 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classPhonemes.html#e0">name</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index );
|
||||
<a name="l00027"></a>00027
|
||||
<a name="l00029"></a>00029 <span class="keyword">static</span> StkFloat <a class="code" href="classPhonemes.html#e1">voiceGain</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index );
|
||||
<a name="l00030"></a>00030
|
||||
<a name="l00032"></a>00032 <span class="keyword">static</span> StkFloat <a class="code" href="classPhonemes.html#e2">noiseGain</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index );
|
||||
<a name="l00033"></a>00033
|
||||
<a name="l00035"></a>00035 <span class="keyword">static</span> StkFloat <a class="code" href="classPhonemes.html#e3">formantFrequency</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> partial );
|
||||
<a name="l00036"></a>00036
|
||||
<a name="l00038"></a>00038 <span class="keyword">static</span> StkFloat <a class="code" href="classPhonemes.html#e4">formantRadius</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> partial );
|
||||
<a name="l00039"></a>00039
|
||||
<a name="l00041"></a>00041 <span class="keyword">static</span> StkFloat <a class="code" href="classPhonemes.html#e5">formantGain</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> partial );
|
||||
<a name="l00042"></a>00042
|
||||
<a name="l00043"></a>00043 <span class="keyword">private</span>:
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00045"></a>00045 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> phonemeNames[][4];
|
||||
<a name="l00046"></a>00046 <span class="keyword">static</span> <span class="keyword">const</span> StkFloat phonemeGains[][2];
|
||||
<a name="l00047"></a>00047 <span class="keyword">static</span> <span class="keyword">const</span> StkFloat phonemeParameters[][4][3];
|
||||
<a name="l00048"></a>00048 };
|
||||
<a name="l00049"></a>00049
|
||||
<a name="l00050"></a>00050 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
57
doc/html/PitShift_8h-source.html
Normal file
57
doc/html/PitShift_8h-source.html
Normal file
@@ -0,0 +1,57 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>PitShift.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00010"></a>00010 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00011"></a>00011
|
||||
<a name="l00012"></a>00012 <span class="preprocessor">#ifndef STK_PITSHIFT_H</span>
|
||||
<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor">#define STK_PITSHIFT_H</span>
|
||||
<a name="l00014"></a>00014 <span class="preprocessor"></span>
|
||||
<a name="l00015"></a>00015 <span class="preprocessor">#include "Effect.h"</span>
|
||||
<a name="l00016"></a>00016 <span class="preprocessor">#include "DelayL.h"</span>
|
||||
<a name="l00017"></a>00017
|
||||
<a name="l00018"></a><a class="code" href="classPitShift.html">00018</a> <span class="keyword">class </span><a class="code" href="classPitShift.html">PitShift</a> : <span class="keyword">public</span> <a class="code" href="classEffect.html">Effect</a>
|
||||
<a name="l00019"></a>00019 {
|
||||
<a name="l00020"></a>00020 <span class="keyword">public</span>:
|
||||
<a name="l00022"></a>00022 <a class="code" href="classPitShift.html#a0">PitShift</a>();
|
||||
<a name="l00023"></a>00023
|
||||
<a name="l00025"></a>00025 <a class="code" href="classPitShift.html#a1">~PitShift</a>();
|
||||
<a name="l00026"></a>00026
|
||||
<a name="l00028"></a>00028 <span class="keywordtype">void</span> <a class="code" href="classPitShift.html#a2">clear</a>();
|
||||
<a name="l00029"></a>00029
|
||||
<a name="l00031"></a>00031 <span class="keywordtype">void</span> <a class="code" href="classPitShift.html#a3">setShift</a>(StkFloat shift);
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00033"></a>00033 <span class="keyword">protected</span>:
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00035"></a>00035 StkFloat computeSample( StkFloat input );
|
||||
<a name="l00036"></a>00036
|
||||
<a name="l00037"></a>00037 <a class="code" href="classDelayL.html">DelayL</a> delayLine_[2];
|
||||
<a name="l00038"></a>00038 StkFloat delay_[2];
|
||||
<a name="l00039"></a>00039 StkFloat env_[2];
|
||||
<a name="l00040"></a>00040 StkFloat rate_;
|
||||
<a name="l00041"></a>00041 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> delayLength;
|
||||
<a name="l00042"></a>00042 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> halfLength;
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00044"></a>00044 };
|
||||
<a name="l00045"></a>00045
|
||||
<a name="l00046"></a>00046 <span class="preprocessor">#endif</span>
|
||||
<a name="l00047"></a>00047 <span class="preprocessor"></span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
77
doc/html/PluckTwo_8h-source.html
Normal file
77
doc/html/PluckTwo_8h-source.html
Normal file
@@ -0,0 +1,77 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>PluckTwo.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00019"></a>00019 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00020"></a>00020
|
||||
<a name="l00021"></a>00021 <span class="preprocessor">#ifndef STK_PLUCKTWO_H</span>
|
||||
<a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#define STK_PLUCKTWO_H</span>
|
||||
<a name="l00023"></a>00023 <span class="preprocessor"></span>
|
||||
<a name="l00024"></a>00024 <span class="preprocessor">#include "Instrmnt.h"</span>
|
||||
<a name="l00025"></a>00025 <span class="preprocessor">#include "DelayL.h"</span>
|
||||
<a name="l00026"></a>00026 <span class="preprocessor">#include "DelayA.h"</span>
|
||||
<a name="l00027"></a>00027 <span class="preprocessor">#include "OneZero.h"</span>
|
||||
<a name="l00028"></a>00028
|
||||
<a name="l00029"></a><a class="code" href="classPluckTwo.html">00029</a> <span class="keyword">class </span><a class="code" href="classPluckTwo.html">PluckTwo</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
<a name="l00030"></a>00030 {
|
||||
<a name="l00031"></a>00031 <span class="keyword">public</span>:
|
||||
<a name="l00033"></a>00033 <a class="code" href="classPluckTwo.html#a0">PluckTwo</a>(StkFloat lowestFrequency);
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00036"></a>00036 <span class="keyword">virtual</span> <a class="code" href="classPluckTwo.html#a1">~PluckTwo</a>();
|
||||
<a name="l00037"></a>00037
|
||||
<a name="l00039"></a>00039 <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a2">clear</a>();
|
||||
<a name="l00040"></a>00040
|
||||
<a name="l00042"></a>00042 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a3">setFrequency</a>(StkFloat frequency);
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00045"></a>00045 <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a4">setDetune</a>(StkFloat detune);
|
||||
<a name="l00046"></a>00046
|
||||
<a name="l00048"></a>00048 <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a5">setFreqAndDetune</a>(StkFloat frequency, StkFloat detune);
|
||||
<a name="l00049"></a>00049
|
||||
<a name="l00051"></a>00051 <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a6">setPluckPosition</a>(StkFloat position);
|
||||
<a name="l00052"></a>00052
|
||||
<a name="l00054"></a>00054
|
||||
<a name="l00059"></a>00059 <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a7">setBaseLoopGain</a>(StkFloat aGain);
|
||||
<a name="l00060"></a>00060
|
||||
<a name="l00062"></a>00062 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPluckTwo.html#a8">noteOff</a>(StkFloat amplitude);
|
||||
<a name="l00063"></a>00063
|
||||
<a name="l00064"></a>00064 <span class="keyword">protected</span>:
|
||||
<a name="l00065"></a>00065
|
||||
<a name="l00066"></a>00066 <span class="keyword">virtual</span> StkFloat computeSample( <span class="keywordtype">void</span> ) = 0;
|
||||
<a name="l00067"></a>00067
|
||||
<a name="l00068"></a>00068 <a class="code" href="classDelayA.html">DelayA</a> delayLine_;
|
||||
<a name="l00069"></a>00069 <a class="code" href="classDelayA.html">DelayA</a> delayLine2_;
|
||||
<a name="l00070"></a>00070 <a class="code" href="classDelayL.html">DelayL</a> combDelay_;
|
||||
<a name="l00071"></a>00071 <a class="code" href="classOneZero.html">OneZero</a> filter_;
|
||||
<a name="l00072"></a>00072 <a class="code" href="classOneZero.html">OneZero</a> filter2_;
|
||||
<a name="l00073"></a>00073
|
||||
<a name="l00074"></a>00074 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> length_;
|
||||
<a name="l00075"></a>00075 StkFloat loopGain_;
|
||||
<a name="l00076"></a>00076 StkFloat baseLoopGain_;
|
||||
<a name="l00077"></a>00077 StkFloat lastFrequency_;
|
||||
<a name="l00078"></a>00078 StkFloat lastLength_;
|
||||
<a name="l00079"></a>00079 StkFloat detuning_;
|
||||
<a name="l00080"></a>00080 StkFloat pluckAmplitude_;
|
||||
<a name="l00081"></a>00081 StkFloat pluckPosition_;
|
||||
<a name="l00082"></a>00082
|
||||
<a name="l00083"></a>00083 };
|
||||
<a name="l00084"></a>00084
|
||||
<a name="l00085"></a>00085 <span class="preprocessor">#endif</span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
66
doc/html/Plucked_8h-source.html
Normal file
66
doc/html/Plucked_8h-source.html
Normal file
@@ -0,0 +1,66 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.gif"> <img src="mcgill.gif"><P>
|
||||
<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="faq.html">FAQ</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.4.4 -->
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">include</a></div>
|
||||
<h1>Plucked.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00018"></a>00018 <span class="comment">/***************************************************/</span>
|
||||
<a name="l00019"></a>00019
|
||||
<a name="l00020"></a>00020 <span class="preprocessor">#ifndef STK_PLUCKED_H</span>
|
||||
<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#define STK_PLUCKED_H</span>
|
||||
<a name="l00022"></a>00022 <span class="preprocessor"></span>
|
||||
<a name="l00023"></a>00023 <span class="preprocessor">#include "Instrmnt.h"</span>
|
||||
<a name="l00024"></a>00024 <span class="preprocessor">#include "DelayA.h"</span>
|
||||
<a name="l00025"></a>00025 <span class="preprocessor">#include "OneZero.h"</span>
|
||||
<a name="l00026"></a>00026 <span class="preprocessor">#include "OnePole.h"</span>
|
||||
<a name="l00027"></a>00027 <span class="preprocessor">#include "Noise.h"</span>
|
||||
<a name="l00028"></a>00028
|
||||
<a name="l00029"></a><a class="code" href="classPlucked.html">00029</a> <span class="keyword">class </span><a class="code" href="classPlucked.html">Plucked</a> : <span class="keyword">public</span> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
<a name="l00030"></a>00030 {
|
||||
<a name="l00031"></a>00031 <span class="keyword">public</span>:
|
||||
<a name="l00033"></a>00033 <a class="code" href="classPlucked.html#a0">Plucked</a>(StkFloat lowestFrequency);
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00036"></a>00036 <a class="code" href="classPlucked.html#a1">~Plucked</a>();
|
||||
<a name="l00037"></a>00037
|
||||
<a name="l00039"></a>00039 <span class="keywordtype">void</span> <a class="code" href="classPlucked.html#a2">clear</a>();
|
||||
<a name="l00040"></a>00040
|
||||
<a name="l00042"></a>00042 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPlucked.html#a3">setFrequency</a>(StkFloat frequency);
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00045"></a>00045 <span class="keywordtype">void</span> <a class="code" href="classPlucked.html#a4">pluck</a>(StkFloat amplitude);
|
||||
<a name="l00046"></a>00046
|
||||
<a name="l00048"></a>00048 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPlucked.html#a5">noteOn</a>(StkFloat frequency, StkFloat amplitude);
|
||||
<a name="l00049"></a>00049
|
||||
<a name="l00051"></a>00051 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPlucked.html#a6">noteOff</a>(StkFloat amplitude);
|
||||
<a name="l00052"></a>00052
|
||||
<a name="l00053"></a>00053 <span class="keyword">protected</span>:
|
||||
<a name="l00054"></a>00054
|
||||
<a name="l00055"></a>00055 StkFloat computeSample( <span class="keywordtype">void</span> );
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00057"></a>00057 <a class="code" href="classDelayA.html">DelayA</a> delayLine_;
|
||||
<a name="l00058"></a>00058 <a class="code" href="classOneZero.html">OneZero</a> loopFilter_;
|
||||
<a name="l00059"></a>00059 <a class="code" href="classOnePole.html">OnePole</a> pickFilter_;
|
||||
<a name="l00060"></a>00060 <a class="code" href="classNoise.html">Noise</a> noise_;
|
||||
<a name="l00061"></a>00061 StkFloat loopGain_;
|
||||
<a name="l00062"></a>00062 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> length_;
|
||||
<a name="l00063"></a>00063
|
||||
<a name="l00064"></a>00064 };
|
||||
<a name="l00065"></a>00065
|
||||
<a name="l00066"></a>00066 <span class="preprocessor">#endif</span>
|
||||
<a name="l00067"></a>00067 <span class="preprocessor"></span>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user