mirror of
https://github.com/thestk/stk
synced 2026-01-12 04:21:52 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
43dcd5775a | ||
|
|
81475b04c5 |
115
README
Normal file
115
README
Normal file
@@ -0,0 +1,115 @@
|
||||
The Synthesis ToolKit in C++ (STK)
|
||||
|
||||
By Perry R. Cook and Gary P. Scavone, 1995-2002.
|
||||
|
||||
This distribution of the Synthesis ToolKit in C++ (STK) contains the following:
|
||||
|
||||
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 programs
|
||||
|
||||
Please read the Legal and Ethical notes near the bottom of this document.
|
||||
|
||||
|
||||
OVERVIEW:
|
||||
|
||||
The Synthesis ToolKit in C++ (STK) is a set of audio signal processing and synthesis classes and algorithms written in C++. You can use these classes to create programs that make sounds with a variety of synthesis techniques. This is not a terribly novel concept, except that the Synthesis ToolKit is extremely portable (it's mostly platform-independent C and C++ code), and it's completely user-extensible (no libraries, no hidden drivers, and all source code is included). 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 8 years now. STK currently runs with "realtime" support (audio and MIDI) on SGI (Irix), Linux, 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 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).
|
||||
|
||||
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. If you feel the need to have a "drag and drop" graphical patching GUI, you probably don't want to use the ToolKit. Spending hundreds of hours making platform-dependent graphics code 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="http://dev.scriptics.com">Tcl/Tk</A> (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), and SKINI (Synthesis ToolKit Instrument Network Interface, a MIDI-like text message synthesis control format).
|
||||
|
||||
|
||||
SYSTEM REQUIREMENTS:
|
||||
|
||||
See the individual README's (eg. README-linux) for platform specific information and system requirements. In general, you will use either the provided Makefiles (Unix platforms) 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:
|
||||
|
||||
STK has undergone several key revisions, changes, and additions since its last release. Despite being available in one form or another since 1996, we still consider STK to be alpha software. Thus, backward compatability has not been a priority. Please read the Release Notes to see what has changed since the last release.
|
||||
|
||||
The control message handling scheme has been simplified greatly through the use of the Messager class. It is now possible to have access to simultaneous piped, socketed, and/or MIDI input control messages. In most cases, this should eliminate the use of the Md2Skini program.
|
||||
|
||||
Realtime audio input capabilities were added to STK with release 3.0, though the behavior of such is very hardware dependent. Under Linux 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 file types. Though somewhat obsolete, the program Md2Skini can be used to write SKINI scorefiles from realtime MIDI input. Finally, STK should compile with non-realtime functionality on any platform with a generic C++ compiler.
|
||||
|
||||
For those who wish to make a library from the core STK classes, there is a Makefile in the src directory that will accomplish that (Linux and SGI only).
|
||||
|
||||
|
||||
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 you find a bug, please let us know and we'll try to correct it. You can also make suggestions, but again, no guarantees. Send email to prc@cs.princeton.edu and gary@ccrma.stanford.edu.
|
||||
|
||||
|
||||
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, give us some. 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 administered by the Stanford Office of Technology and Licensing.
|
||||
|
||||
The good news is that large hunks of the techniques used here are 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.
|
||||
|
||||
|
||||
FURTHER READING:
|
||||
|
||||
For complete documentation on this ToolKit, the classes, etc., see the doc directory of the distribution or surf to http://www-ccrma.stanford.edu/software/stk/. Also check the platform specific README's for specific system requirements.
|
||||
|
||||
|
||||
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 for the continuation of my research, and as a possible starting point for a software synthesis system. The basic motivation was to create the necessary unit generators to do the synthesis, processing, and control that I want to do and teach about. Little thought for optimization was given (see Object.cpp), and therefore improvements, especially speed enhancements, should be possible with these classes. It was written with some basic concepts in mind about how to let compilers optimize.
|
||||
|
||||
Your question at this point might be, "But Perry, with CMix, CMusic, CSound, CShells, CMonkeys, etc. already cluttering the landscape, why a new set of stupid C functions for music synthesis and processing?" The answers lie below.
|
||||
|
||||
1) I needed to port many of the things I've done
|
||||
into something which is generic enough to port
|
||||
further to different machines.
|
||||
|
||||
2) I really plan to document this stuff, so that
|
||||
you don't have to be me to figure out what's
|
||||
going on. (I'll probably be sorry I said this
|
||||
in a couple of years, when even I can't figure
|
||||
out what I was thinking.)
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
4) I wanted to try some new stuff with modal synthesis,
|
||||
and implement some classic FM patches as well.
|
||||
|
||||
5) I wanted to reimplement, and newly implement
|
||||
more of the intelligent and physical performer
|
||||
models I've talked about in some of my papers.
|
||||
But I wanted to do it in a portable way, and in
|
||||
such a way that I can hook up modules quickly.
|
||||
I also wanted to make these instruments connectable
|
||||
to such player objects, so folks like Brad Garton
|
||||
who really think a lot about the players can connect
|
||||
them to my instruments, a lot about which I think.
|
||||
|
||||
6) More rationalizations to follow . . .
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,156 +1,155 @@
|
||||
STK: A ToolKit of Audio Synthesis Classes and Instruments in C++
|
||||
Version 3.2
|
||||
|
||||
By Perry R. Cook, 1995-2000
|
||||
and Gary P. Scavone, 1997-2000.
|
||||
|
||||
STK Classes, Version 3.2
|
||||
Please read README.txt for more information.
|
||||
|
||||
<--------Building Blocks---------->|<----------------Instruments------------------>
|
||||
|
||||
SourcSink Filters Reverb Non-Lin Modal & FM Physical Sampling PhISM
|
||||
Formant
|
||||
|
||||
Object-----------------------------------Instrmnt----------.
|
||||
| | | | | | |
|
||||
Envelope| Filter Reverb BowTabl | .----------------------------------------.
|
||||
| | | | JetTabl | | | | | | | | |
|
||||
ADSR | OneZero PRCRev ReedTabl| Modal4 | FM4Op---.| | | | Shakers
|
||||
| OnePole JCRev | | | | || | | |
|
||||
._____| TwoZero NRev .____| ModalBar| FM4Alg3 || Plucked Sampler |
|
||||
| | TwoPole | | | || Clarinet | |
|
||||
Noise | DCBlock LipFilt | HeavyMtl|| Brass SamplFlt|
|
||||
| | BiQuad | || Flute | |
|
||||
SubNoise| DlineL .____| .____|| Bowed Moog1 |
|
||||
| DLineA | | || BowedBar |
|
||||
| DLineN VoicForm FM4Alg4 || BlowHole |
|
||||
| FormSwep | ||____. |
|
||||
| PoleZero PercFlut| | |
|
||||
.____| FIR | Plucked2 |
|
||||
| | .____| | .____|
|
||||
TablLook| | | Mandolin |
|
||||
| FM4Alg5 | DrumSynt
|
||||
|____. | |
|
||||
| | Rhodey |
|
||||
| WvIn Wurley |
|
||||
._____| | TubeBell |
|
||||
| | WavWvIn .____|
|
||||
Modulatr| SndWvIn | |
|
||||
| RawWvIn FM4Alg6 |
|
||||
._____| MatWvIn | |
|
||||
| | AifWvIn FMVoices|
|
||||
SingWave| StrmWvIn |
|
||||
| .____|
|
||||
._____|_____. |
|
||||
| | | FM4Alg8
|
||||
VoicMang| WvOut |
|
||||
| | BeeThree
|
||||
| WavWvOut
|
||||
._____| SndWvOut
|
||||
| | RawWvOut
|
||||
RtMidi | MatWvOut
|
||||
| AifWvOut
|
||||
._____| RtWvOut
|
||||
| StrmWvOut
|
||||
RtAudio
|
||||
|
||||
********** INSTRUMENTS AND ALGORITHMS **************
|
||||
|
||||
Each Class will be listed either with all UGs it uses,
|
||||
or the <<Algorithm>> of which it is a flavor.
|
||||
All inherit from Instrmnt, which inherits from Object.
|
||||
|
||||
Plucked.cpp Basic Plucked String DLineA,OneZero,OnePole,Noise
|
||||
Plucked2.cpp Not So Basic Pluck DLineL,DlineA,OneZero
|
||||
Mandolin.cpp My Own Mandolin <<flavor of Plucked2>>
|
||||
Bowed.cpp Not Hideous Bowed String DlineL,BowTabl,OnePole,BiQuad,RawWave,ADSR
|
||||
Brass.cpp Not So Bad Brass Inst. DLineA,LipFilt,DCBlock,ADSR,RawWvIn
|
||||
Clarinet.cpp Pretty Good Clarinet DLineL,ReedTabl,OneZero,Envelope,Noise,RawWvIn
|
||||
BlowHole.cpp Clarinet w/ tone/reghole DLineL,ReedTabl,OneZero,Envelope,Noise,RawWvIn,PoleZero
|
||||
Flute.cpp Pretty Good Flute JetTabl,DLineL,OnePole,DCBlock,Noise,ADSR,RawWvIn
|
||||
BowedBar.cpp Pretty Good Bowed Bar DLineN,BowTabl,ADSR,BiQuad
|
||||
Modal4.cpp 4 Resonances Envelope,RawWvIn,RawWvIn,BiQuad,OnePole
|
||||
ModalBar.cpp Various presets <<flavor of MODAL4>>
|
||||
FM4Op.cpp 4 Operator FM Master ADSR,RawWvIn,TwoZero
|
||||
FM4Alg3.cpp 3 Cascade w/ FB Mod. <<flavor of FM4OP>>
|
||||
FM4Alg4.cpp Like Alg3 but diff. <<flavor of FM4OP>>
|
||||
FM4Alg5.cpp 2 Parallel Simple FMs <<flavor of FM4OP>>
|
||||
FM4Alg6.cpp 3 Carr. with 1 Mod. <<flavor of FM4OP>>
|
||||
FM4Alg8.cpp 4 Osc. Additive <<flavor of FM4OP>>
|
||||
HeavyMtl.cpp Distorted Synth <<flavor of FM4Alg3>>
|
||||
PercFlut.cpp Perc. Flute <<flavor of FM4Alg4>>
|
||||
Rhodey.cpp Rhodes-Like Elec. Piano <<flavor of FM4Alg5>>
|
||||
Wurley.cpp Wurlitz. Elec. Piano <<flavor of FM4Alg5>>
|
||||
TubeBell.cpp Classic FM Bell <<flavor of FM4Alg5>>
|
||||
FMVoices.cpp 3-Formant Voice Synth. <<flavor of FM4Alg6>>
|
||||
BeeThree.cpp Cheezy Organ for Paul <<flavor of FM4Alg8>>
|
||||
Sampler.cpp Sampling Synth. 4 each ADSR, RawWvIn (att), RawWvIn (loop), OnePole
|
||||
SamplFlt.cpp Sampler with Swept Filter <<flavor of Sampler>>
|
||||
Moog1.cpp Swept filter flavor of <<flavor of SamplFlt>>
|
||||
VoicForm.cpp Source/Filter Voice Envelope,Noise,SingWave,FormSwep,OnePole,OneZero
|
||||
DrumSynt.cpp Drum Synthesizer bunch of RawWvIn, and OnePole
|
||||
Shakers.cpp Stochastic Event Models
|
||||
|
||||
*********** BASIC UNIT GENERATORS **************
|
||||
|
||||
Master Object: Object.cpp For compatibility with Objective C
|
||||
|
||||
Source&Sink: Envelope.cpp Linearly Goes to Target by Rate, + noteOn/Off
|
||||
ADSR.cpp ADSR Flavor of Envelope
|
||||
Noise.cpp Random Number Generator
|
||||
SubNoise.cpp Random Numbers each N samples
|
||||
|
||||
Inputs: TablLook.cpp Lookup Table (assumes given data in big-endian format)
|
||||
WvIn.cpp Input Master Class (Looping, One-Shot,
|
||||
Interpolating, Non-Interpolating)
|
||||
RawWvIn.cpp STK Raw-file Input
|
||||
SndWvIn.cpp .snd Input Class
|
||||
WavWvIn.cpp .wav Input Class
|
||||
MatWvIn.cpp Matlab MAT-file Input Class
|
||||
AifWvIn.cpp AIFF Input Class
|
||||
RtWvIn.cpp Realtime Input Class
|
||||
StrmWvIn.cpp Audio Streaming (socket server) Input Class
|
||||
|
||||
Outputs: WvOut.cpp Output Master Class
|
||||
RawWvOut.cpp STK Raw-file Output Class
|
||||
SndWvOut.cpp .snd Output Class
|
||||
WavWvOut.cpp .wav Output Class
|
||||
MatWvOut.cpp Matlab MaT-file Output Class
|
||||
AifWvOut.cpp AIFF Output Class
|
||||
RtWvOut.cpp Realtime Output Class
|
||||
StrmWvOut.cpp Audio Streaming (socket client) Output Class
|
||||
|
||||
Duplex: RtDuplex.cpp Realtime Input/Output Class
|
||||
|
||||
MIDI: RtMidi.cpp MIDI I/O Class
|
||||
|
||||
Audio I/O: RtAudio.cpp Multi-OS Audio I/O Routines
|
||||
|
||||
Filters: Filter.cpp Filter Master Class
|
||||
OneZero.cpp One Zero Filter
|
||||
OnePole.cpp One Pole Filter
|
||||
PoleZero.cpp One Pole/One Zero Filter
|
||||
DCBlock.cpp DC Blocking 1Pole/1Zero Filter
|
||||
TwoZero.cpp Two Zero Filter
|
||||
TwoPole.cpp Two Pole Filter
|
||||
BiQuad.cpp 2Pole/2Zero Filter
|
||||
FormSwep.cpp Sweepable 2Pole filter, go to target by rate
|
||||
DLineL.cpp Linearly Interpolating Delay Line
|
||||
DLineA.cpp AllPass Interpolating Delay Line
|
||||
DLineN.cpp Non Interpolating Delay Line
|
||||
|
||||
Reverb: Reverb.cpp Reverb Master Class
|
||||
PRCRev.cpp 2 series allpass units, 2 parallel comb filters
|
||||
JCRev.cpp 3 series allpass units, 4 parallel comb filters
|
||||
NRev.cpp 6 parallel comb filters, 3 series allpass units, ...
|
||||
|
||||
NonLin&Lookup: JetTabl.cpp Cubic Jet NonLinearity
|
||||
BowTabl.cpp 1/x^3-like Bow NonLinearity
|
||||
ReedTabl.cpp 1 break point Reed NonLinearity
|
||||
LipFilt.cpp Pressure Controlled BiQuad with NonLin
|
||||
|
||||
Derived: Modulatr.cpp Per. and Rnd. Vibrato: RawWave, SubNoise, OnePole
|
||||
SingWave.cpp Looping Wavetable with: Modulatr, Envelope
|
||||
|
||||
Control: Controller.cpp Pipe, Socket, and MIDI control message handling
|
||||
STK: A ToolKit of Audio Synthesis Classes and Instruments in C++
|
||||
|
||||
By Perry R. Cook and Gary P. Scavone, 1995-2002.
|
||||
|
||||
STK Classes - See the HTML documentation in the html directory for complete information.
|
||||
|
||||
.- Envelope - ADSR
|
||||
|
|
||||
|- Noise - SubNoise
|
||||
|
|
||||
|- Table
|
||||
|
|
||||
|- WvIn - (WaveLoop, RtWvIn, TcpWvIn)
|
||||
|
|
||||
|- WvOut - (RtWvOut, TcpWvOut)
|
||||
|
|
||||
|- Filter - (OnePole, OneZero, Delay, TwoPole, TwoZero, PoleZero, Biquad)
|
||||
| | |
|
||||
| DelayL FormSwep
|
||||
| DelayA
|
||||
|
|
||||
|- Echo, Chorus, PitShift
|
||||
|
|
||||
|- RtAudio, RtMidi, Socket, Thread
|
||||
Stk -|
|
||||
|- Reverb - (PRCRev, JCRev, NRev)
|
||||
|
|
||||
|- Modulate
|
||||
|
|
||||
|- Messager
|
||||
|
|
||||
|- SKINI
|
||||
|
|
||||
|- ReedTabl, JetTabl, BowTabl
|
||||
|
|
||||
| .- FM - (HevyMetl, PercFlut, Rhodey, Wurley, TubeBell, BeeThree, FMVoices)
|
||||
| |
|
||||
| |- Modal - ModalBar
|
||||
| |
|
||||
| |- Sampler - Moog
|
||||
| |
|
||||
| |- Resonate
|
||||
| |
|
||||
| |- PluckedTwo - Mandolin
|
||||
.- Instrmnt -|
|
||||
|- Drummer
|
||||
|
|
||||
|- Clarinet, BlowHole, Saxofony, Flute, Brass, BlowBotl, Bowed, Plucked, StifKarp, Sitar
|
||||
|
|
||||
|- Shakers
|
||||
|
|
||||
|- BandedWG
|
||||
|
|
||||
.- Mesh2D
|
||||
|
||||
|
||||
*********** UNIT GENERATORS **************
|
||||
|
||||
Master Class: Stk.cpp Sample rate, byte-swapping, error handling functionality
|
||||
|
||||
Sources: Envelope.cpp Linearly Goes to Target by Rate
|
||||
ADSR.cpp ADSR Flavor of Envelope
|
||||
Noise.cpp Random Number Generator
|
||||
SubNoise.cpp Random Numbers each N samples
|
||||
Table.cpp Lookup Table (assumes given data in big-endian format)
|
||||
WvIn.cpp Data Input Class (interpolating) for RAW, WAV, SND (AU), AIFF, MAT-file files
|
||||
WaveLoop.cpp Wavetable looping (subclass of WvIn)
|
||||
RtWvIn.cpp Realtime Audio Input Class (subclass of WvIn)
|
||||
TcpWvIn.cpp Audio Streaming (socket server) Input Class (subclass of WvIn)
|
||||
|
||||
Sinks: WvOut.cpp Output Master Class for RAW, WAV, SND (AU), AIFF, MAT-file files
|
||||
RtWvOut.cpp Realtime Output Class (subclass of WvOut)
|
||||
TcpWvOut.cpp Audio Streaming (socket client) Output Class (subclass of WvOut)
|
||||
|
||||
Duplex: RtDuplex.cpp Synchronous Realtime Audio Input/Output Class
|
||||
|
||||
Filters: Filter.cpp Filter Master Class
|
||||
OneZero.cpp One Zero Filter
|
||||
OnePole.cpp One Pole Filter
|
||||
PoleZero.cpp One Pole/One Zero Filter
|
||||
TwoZero.cpp Two Zero Filter
|
||||
TwoPole.cpp Two Pole Filter
|
||||
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 (subclass of Delay)
|
||||
DelayA.cpp Allpass Interpolating Delay Line (subclass of Delay)
|
||||
|
||||
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: RawWvIn, SubNoise, OnePole
|
||||
|
||||
|
||||
********** INSTRUMENTS AND ALGORITHMS **************
|
||||
|
||||
Each Class will be listed either with all the unit generators it uses,
|
||||
or the <<Algorithm>> of which it is a flavor. 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
|
||||
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
|
||||
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.
|
||||
|
||||
Reverb.cpp Reverberator Effects Processor Master Class for reverberators
|
||||
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 **************
|
||||
|
||||
RtAudio.cpp Multi-OS/API audio I/O routines
|
||||
RtMidi.cpp Multi-OS/API MIDI I/O routines
|
||||
Messager.cpp Pipe, socket, and MIDI control message handling
|
||||
|
||||
demo.cpp Demonstration program for most synthesis algorithms
|
||||
effects.cpp Effects demonstration program
|
||||
ragamatic.cpp Nirvana just waiting to happen
|
||||
|
||||
SKINI.cpp SKINI file/message parser object
|
||||
SKINI.msg #defines for often used and universal MIDI/SKINI symbols
|
||||
SKINI.tbl Table of SKINI messages
|
||||
|
||||
|
||||
|
||||
@@ -1,28 +1,26 @@
|
||||
STK: A ToolKit of Audio Synthesis Classes and Instruments in C++
|
||||
Version 3.2
|
||||
|
||||
By Perry R. Cook, 1995-2000
|
||||
and Gary P. Scavone, 1997-2000.
|
||||
|
||||
Please read the file README.txt for more general STK information.
|
||||
|
||||
STK for Linux is currently using either the Open Sound System (OSS) or the Advanced Linux Sound Architecture (ALSA) sound and MIDI APIs. The free version of OSS works as well (and in some cases better than the commercial OSS version ... such as with my Maestro 2e chipset). In general, the ALSA drivers seem to perform well though we have had some problems with them at CCRMA. You can read more about ALSA at http://www.alsa-project.org/. ALSA is open source and holds great promise for audio under Linux. Select (uncomment) the proper API #define statement in Object.h.
|
||||
|
||||
STK should compile without much trouble under Linux ... afterall, it is primarily developed on Linux platforms. 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.
|
||||
|
||||
MIDIATOR SERIAL PORT MIDI SUPPORT:
|
||||
|
||||
STK now has special support for the MIDIator serial port MIDI interface. This is of primary interest to us laptop users, whose computers usually don't have a gameport. If you want to buy one of these devices, make sure you get the MS-124w model (www.midiator.com). For it to work in STK, make sure you uncomment the MIDIATOR define statement in Object.h. This support currently only works within the OSS API framework, though I should be able to get it to work with ALSA in the future as well.
|
||||
|
||||
There are a few things that need to be done on your system to get the MIDIator working. Add the following lines to your bootup sequence in /etc/rc.d/rc.local:
|
||||
|
||||
setserial /dev/ttyS0 baud_base 57600
|
||||
setserial /dev/ttyS0 divisor 1
|
||||
|
||||
You may need to specify the full path to the setserial function, depending on how your PATH variable is set up. Also, you may need to modify the permissions of /dev/ttyS0 (chmod a+rwx). And finally, the MIDIator should be set for "single addresssed" mode (the S/A switch on S and the A/B switch on A), which puts identical output on all 4 MIDI output ports. It is possible to use the MIDIator in a "multi-port" mode, though I'm not currently supporting that in STK.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
The Synthesis ToolKit in C++ (STK)
|
||||
|
||||
By Perry R. Cook and Gary P. Scavone, 1995-2002.
|
||||
|
||||
Please read the file README for more general STK information.
|
||||
|
||||
Realtime support for Linux is currently using either the Open Sound System (OSS) or the Advanced Linux Sound Architecture (ALSA) sound and MIDI APIs. The free version of OSS works as well (and in some cases better than the commercial OSS version ... such as with my Maestro 2e chipset). In general, the ALSA drivers also seem to perform well. You can read more about ALSA at http://www.alsa-project.org/. ALSA is open source and holds great promise for audio under Linux. The API is selected during compilation using either the __LINUX_ALSA__ or __LINUX_OSS__ definitions.
|
||||
|
||||
STK should compile without much trouble under Linux ... afterall, it is primarily developed on Linux platforms. 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.
|
||||
|
||||
MIDIATOR SERIAL PORT MIDI SUPPORT:
|
||||
|
||||
STK now has special support for the MIDIator serial port MIDI interface. This is of primary interest to us laptop users, whose computers usually don't have a gameport. If you want to buy one of these devices, make sure you get the MS-124w model (www.midiator.com). For it to work in STK, you must provide the __MIDIATOR__ definition during compilation (in addition to either __LINUX_ALSA__ or __LINUX_OSS__).
|
||||
|
||||
There are a few things that need to be done on your system to get the MIDIator working. Assuming you wish to attach the MIDIator to serial port 0, add the following lines to your bootup sequence in /etc/rc.d/rc.local:
|
||||
|
||||
setserial /dev/ttyS0 baud_base 57600
|
||||
setserial /dev/ttyS0 divisor 1
|
||||
|
||||
You may need to specify the full path to the setserial function, depending on how your PATH variable is set up. Also, you may need to modify the permissions of /dev/ttyS0 (chmod a+rwx). And finally, the MIDIator should be set for "single addresssed" mode (the S/A switch on S and the A/B switch on A), which puts identical output on all 4 MIDI output ports. It is possible to use the MIDIator in a "multi-port" mode, though I'm not currently supporting that in STK.
|
||||
|
||||
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,14 +1,9 @@
|
||||
STK: A ToolKit of Audio Synthesis Classes and Instruments in C++
|
||||
Version 3.2
|
||||
|
||||
By Perry R. Cook, 1995-2000
|
||||
and Gary P. Scavone, 1997-2000.
|
||||
|
||||
Please read the file README.txt 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. I have had some difficulty testing this release under NeXTStep because our NeXTStep compilers at CCRMA are very old. We tried a newer version of gcc-2.7.2.2 and that mostly worked, though it died trying to compile the BowedBar class. Also, I was unable to locate the correct header for the random() function.
|
||||
|
||||
In summary, I _think_ STK will compile under NeXTStep with a fairly recent compiler, but you may have to do a little work to make it happen. If you do succeed, please let us know.
|
||||
|
||||
Just for clarification, "realtime" support and the use of the __STK_REALTIME_ define statement includes audio and MIDI input/output routines, as well as socket and thread routines for realtime message acquisition (Controller) and internet audio streaming (StrmWvIn, StrmWvOut).
|
||||
|
||||
The Synthesis ToolKit in C++ (STK)
|
||||
|
||||
By Perry R. Cook and Gary P. Scavone, 1995-2002.
|
||||
|
||||
Please read the file README for more general STK information.
|
||||
|
||||
Please read the file README.txt 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,15 +1,13 @@
|
||||
STK: A ToolKit of Audio Synthesis Classes and Instruments in C++
|
||||
Version 3.2
|
||||
|
||||
By Perry R. Cook, 1995-2000
|
||||
and Gary P. Scavone, 1997-2000.
|
||||
|
||||
Please read the file README.txt for more general STK information.
|
||||
|
||||
It seems that SGI systems are not distributed with the GNU Makefile utilities. The default Make utility has very limited functionality, so your safest bet is to download the GNU Makefile utilities from the Internet and use STK's default Makefile. If this is not possible, try using Makefile.sgi (make -f Makefile.sgi).
|
||||
|
||||
Another issue that has crept up with this release is proper compiler support for C++ error handling. If you experience problems, you probably don't have a recent version of the C++ compiler. Otherwise, STK should compile and run on SGI platforms without any problems.
|
||||
|
||||
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!
|
||||
The Synthesis ToolKit in C++ (STK)
|
||||
|
||||
By Perry R. Cook and Gary P. Scavone, 1995-2002.
|
||||
|
||||
Please read the file README for more general STK information.
|
||||
|
||||
When using the Makefiles provided, first try invoking "gmake" (for GNU make). If that doesn't work, try to download the GNU Makefile utilities from the Internet and use STK's default Makefile. If this is not possible, try using Makefile.sgi (make -f Makefile.sgi).
|
||||
|
||||
Another issue that has crept up with this release is proper compiler support for C++ error handling. If you experience problems, you probably don't have a recent version of the C++ compiler. Otherwise, STK should compile and run on SGI platforms without any problems. Release 4.0 of STK is confirmed to compile without difficulty using CC version 7.30.
|
||||
|
||||
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,69 +1,73 @@
|
||||
STK: A ToolKit of Audio Synthesis Classes and Instruments in C++
|
||||
Version 3.2
|
||||
|
||||
By Perry R. Cook, 1995-2000
|
||||
and Gary P. Scavone, 1997-2000.
|
||||
|
||||
Please read the file README.txt for more general STK information.
|
||||
|
||||
DirectX and WindowsNT Issues:
|
||||
-----------------------------
|
||||
|
||||
STK is currently distributed with Visual C++ 6.0 project and workspace files.
|
||||
|
||||
The STK realtime sound input capabilities under Windoze are only supported using the DirectSoundCapture API. The latency is pretty horrendous, but what do you expect? Also, there is a 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. I stopped supporting the WinMM audio output code with this release. So, if you wish to compile STK under WindowsNT (without realtime audio input support), you'll have to download an older version of STK, uncomment the __WINMM_API_ flag (and comment out the __WINDS_API flag) in Object.h and recompile the source code.
|
||||
|
||||
Realtime sound output under Windoze is supported using the DirectSound (dsound.lib) API. All new versions of Win95/98/NT come with the DirectSound library, but early versions did not. If you have trouble running the distributed executables, then you probably don't have DirectSound installed on your system. You can download the necessary DirectSound stuff from Microsoft's WWW pages (http://www.microsoft.com/directx/download.asp).
|
||||
|
||||
Realtime MIDI input is supported using the winmm.lib API.
|
||||
|
||||
Visual C++ 6.0 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 (STK.dsw), 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":
|
||||
|
||||
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. Add all the necessary files to the project.
|
||||
|
||||
Remember that items 1-3 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 -
|
||||
|
||||
|
||||
PLAY SKINI SCOREFILES IN REALTIME:
|
||||
|
||||
syntmono Clarinet -or < scores/streetsf.ski
|
||||
|
||||
|
||||
USE TCL/TK GUIs FOR REALTIME CONTROL:
|
||||
|
||||
1. Open a DOS console window and start syntmono (eg. syntmono Clarinet -or -is).
|
||||
|
||||
2. Double click on a Tcl/Tk file in TCLSpecs (eg. TCLPhys.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. syntmono 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.
|
||||
|
||||
|
||||
WINDOWS 2000:
|
||||
|
||||
I don't have Windows 2000 and I doubt I'll get it anytime soon. However, we briefly tested release 3.2 of STK on Perry's Win2000 machine and it worked fine. There is an advantage in using Windows 2000 over 95/98 in that piping works, just as under unix. Also, the scheduler in Win2000 seems to be much better, so socketed messages don't get clumped together like they do in Win 95/98. Since 2000 is supposed to ship with DirectX 7.0, the DirectSoundCapture functionality should work as well.
|
||||
The Synthesis ToolKit in C++ (STK)
|
||||
|
||||
By Perry R. Cook and Gary P. Scavone, 1995-2002.
|
||||
|
||||
Please read the file README for more general STK information.
|
||||
|
||||
DirectX and WindowsNT Issues:
|
||||
-----------------------------
|
||||
|
||||
STK is currently distributed with Visual C++ 6.0 project and workspace files. It has been tested using both Visual C++ 6.0 and Visual C++ .NET.
|
||||
|
||||
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.
|
||||
|
||||
The STK realtime sound input capabilities under Windoze are only supported using the DirectSoundCapture API. The latency is pretty horrendous, but what do you expect? Also, there is a 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. I stopped supporting the WinMM audio output code with release 3.2.
|
||||
|
||||
Realtime sound output under Windoze is supported using the DirectSound (dsound.lib) API. All new versions of WindowsXX come with the DirectSound library, but early versions did not. If you have trouble running the distributed executables, then you probably don't have DirectSound installed on your system. You can download the necessary DirectSound stuff from Microsoft's WWW pages (http://www.microsoft.com/directx/download.asp).
|
||||
|
||||
Realtime MIDI input is supported using the winmm.lib API.
|
||||
|
||||
Visual C++ 6.0 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":
|
||||
|
||||
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__" 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 -
|
||||
|
||||
|
||||
PLAY SKINI SCOREFILES IN REALTIME:
|
||||
|
||||
demo Clarinet -or < 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 TCLSpecs (eg. TCLPhys.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 2000/XP:
|
||||
|
||||
There is a big advantage in using Windows 2000/XP 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. The script files (ex. Demo) can be renamed with .bat extensions, allowing them to work in the same way as in unix systems.
|
||||
|
||||
|
||||
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.
|
||||
|
||||
|
||||
|
||||
128
doc/README.txt
128
doc/README.txt
@@ -1,128 +0,0 @@
|
||||
STK: A ToolKit of Audio Synthesis Classes and Instruments in C++
|
||||
Version 3.2
|
||||
|
||||
By Perry R. Cook, 1995-2000
|
||||
and Gary P. Scavone, 1997-2000.
|
||||
|
||||
Please read the Legal and Ethical notes near the bottom of this document.
|
||||
|
||||
|
||||
OVERVIEW:
|
||||
|
||||
STK is a set of audio signal processing C++ classes and instruments for music synthesis. You can use these classes to create programs which make cool sounds using a variety of synthesis techniques. This is not a terribly novel concept, except that STK is very portable (it's mostly platform-independent C and C++ code) AND it's completely user-extensible. So, the code you write using STK actually has some chance of working in another 5-10 years. STK currently runs with "realtime" support (audio and MIDI) on SGI (Irix), Linux, and Windows computer platforms. Generic, non-realtime support has been tested under NeXTStep, but should work with any standard C++ compiler. STK is free for non-commercial use. The only parts of STK that are platform-dependent concern real-time sound, MIDI, and control input and output ... but we've taken care of that for you. The interface for MIDI input and the simple Tcl/Tk graphical user interfaces (GUIs) provided is the same, so it's easy to voice and experiment in real time using either the GUIs or MIDI.
|
||||
|
||||
STK isn't one particular program. Rather, STK is a set of C++ classes that you can use to create your own programs. We've provided a few example applications that demonstrate some of the ways that you could use these classes. But 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. If you feel the need to have a "drag and drop" GUI, you probably don't want to use STK. Spending hundreds of hours making platform-dependent GUI code would go against one of the fundamental design goals of STK - platform independence. STK can generate simultaneous .snd, .wav, .aif, and .mat output soundfile formats (as well as realtime sound output), so you can view your results using one of the numerous sound/signal analysis tools already available over the WWW (e.g. Snd, Cool Edit, Matlab). For those instances where a simple GUI with sliders and buttons is helpful, we use Tcl/Tk (which is freely distributed for all the STK supported platforms). A number of Tcl/Tk GUI scripts are distributed with the STK release.
|
||||
|
||||
|
||||
SYSTEM REQUIREMENTS:
|
||||
|
||||
See the individual README's (eg. README-linux) for platform specific information and system requirements. In general, you will use either the provided Makefiles (Unix platforms) 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:
|
||||
|
||||
STK has undergone several key revisions, changes, and additions since its last release. Despite being available in one form or another since 1996, we still consider STK to be alpha software. Thus, backward compatability has not been a priority. Please read the ReleaseNotes to see what has changed since the last release.
|
||||
|
||||
The control message handling scheme has been simplified greatly with release 3.2 through the use of the Controller class. It is now possible to have access to simultaneous piped, socketed, and/or MIDI input control messages. In most cases, this should eliminate the use of the MD2SKINI program.
|
||||
|
||||
Realtime audio input capabilities were added to STK with release 3.0, though the behavior of such is very hardware dependent. Under Linux 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 file types. Though somewhat obsolete, the program MD2SKINI can be used to write SKINI scorefiles from realtime MIDI input. Finally, STK should compile with non-realtime functionality on any platform with a generic C++ compiler.
|
||||
|
||||
For those who wish to make a library from the core STK classes, there is a Makefile in the src directory that will accomplish that (Linux and SGI only).
|
||||
|
||||
GETTING STARTED:
|
||||
|
||||
A number of example "projects" are provided with this distribution. The effects directory contains a program that demonstrates realtime duplex mode (simultaneous audio input and output) operation, as well as several simple delay-line based effects algorithms. RagaMatic is a totally cool application for achieving inner peace. The examples directory contains several simple programs which demonstrate audio input/output, as well as the use of the audio internet streaming classes. The syntmono directory offers a program for monophonic STK instrument playback and manipulation. Syntmono is used to demonstrate most of the current STK instruments. Control data (in the form of MIDI or SKINI messages) is acquired by syntmono through pipe, socket, or MIDI connections. Tcl/Tk GUIs are provided which output SKINI formatted messages. A variety of SKINI scorefiles are distributed with STK and can be found in the "scores" directory of the syntmono project. MD2SKINI is an executable (currently compiles from the syntmono project) which takes raw MIDI input, converts it to SKINI format, and outputs the result to stdout or any socket host and port ID.
|
||||
|
||||
Unless you downloaded the distribution with precompiled Windoze binaries, it is necessary to first compile the sources. Under Linux or Irix, simply typing "make" in any of the particular project directories will begin the compilation process. If your Unix system does not have the GNU Makefile utilities, you will have to use one of the platform specific Makefiles (eg. make -f Makefile.sgi). To compile the projects under Windoze, you should use the VC++ 6.0 project files provided with the STK distribution.
|
||||
|
||||
|
||||
SYNTMONO:
|
||||
|
||||
Syntmono is used to demonstrate most of the current STK instruments. Syntmono can take realtime control input via MIDI and/or SKINI format via pipes or sockets, or it can be fed SKINI scorefile (non-realtime) input. Syntmono can output data in realtime, .wav, .snd, .aif, .mat (Matlab MAT-file), and/or .raw formats. Assuming you have successfully compiled the syntmono executable, a scorefile can be redirected to syntmono and the output heard in realtime in the following way:
|
||||
|
||||
syntmono Clarinet -or < scores/streetsf.ski
|
||||
|
||||
The "-or" flag specifies the realtime output option. Typing syntmono without arguments will provide a brief description of the instruments possible and the various input/output option flags. Tcl/Tk GUIs are provided in the "tcl" directory of each project, though you will have to install Tcl/Tk version 8.0 or higher on your system to use them (older versions of Tcl/Tk under Linux seem to be more forgiving than under IRIX). Realtime SKINI control data can be piped to syntmono from a Tcl/Tk GUI on Unix platforms and WinNT in the following way:
|
||||
|
||||
wish < TCLSpecs/TCLPhys.tcl | syntmono Clarinet -or -ip
|
||||
|
||||
The "-ip" flag specifies piped realtime input. It is not possible to use realtime pipes under Windoze95/98, so socket communication must be used instead. For socket communication, it is necessary to first start the syntmono socket server using the "-is" flag (socketed realtime input). For the time being, a default (hardwired) socket port of 2001 is being used by syntmono. After syntmono is running (and waiting for a socket client connection), a Tcl/Tk GUI can be started. When using the GUI, it is necessary to invoke the "communications" menu item and select "socket" to establish the connection. The same procedure is also possible on Unix platforms. Finally, realtime MIDI control input can be used to control syntmono by typing:
|
||||
|
||||
syntmono Clarinet -or -im
|
||||
|
||||
The "-im" flag specifies realtime MIDI input. It is possible to use piped, socketed, and/or MIDI control input simultaneously.
|
||||
|
||||
|
||||
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 you find a bug, please let us know and we'll try to correct it. You can also make suggestions, but again, no guarantees. Send email to prc@cs.princeton.edu and gary@ccrma.stanford.edu.
|
||||
|
||||
|
||||
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, give us some. 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 administered by the Stanford Office of Technology and Licensing.
|
||||
|
||||
The good news is that large hunks of the techniques used here are 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.
|
||||
|
||||
|
||||
FURTHER READING:
|
||||
|
||||
For more documentation on this ToolKit, the classes, etc., read the file Hierarchy.txt and the individual class definitions. Also check the platform specific README's for specific system requirements.
|
||||
|
||||
|
||||
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 for the continuation of my research, and as a possible starting point for a software synthesis system. The basic motivation was to create the necessary unit generators to do the synthesis, processing, and control that I want to do and teach about. Little thought for optimization was given (see Object.cpp), and therefore improvements, especially speed enhancements, should be possible with these classes. It was written with some basic concepts in mind about how to let compilers optimize.
|
||||
|
||||
Your question at this point might be, "But Perry, with CMix, CMusic, CSound, CShells, CMonkeys, etc. already cluttering the landscape, why a new set of stupid C functions for music synthesis and processing?" The answers lie below.
|
||||
|
||||
1) I needed to port many of the things I've done
|
||||
into something which is generic enough to port
|
||||
further to different machines.
|
||||
|
||||
2) I really plan to document this stuff, so that
|
||||
you don't have to be me to figure out what's
|
||||
going on. (I'll probably be sorry I said this
|
||||
in a couple of years, when even I can't figure
|
||||
out what I was thinking.)
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
4) I wanted to try some new stuff with modal synthesis,
|
||||
and implement some classic FM patches as well.
|
||||
|
||||
5) I wanted to reimplement, and newly implement
|
||||
more of the intelligent and physical performer
|
||||
models I've talked about in some of my papers.
|
||||
But I wanted to do it in a portable way, and in
|
||||
such a way that I can hook up modules quickly.
|
||||
I also wanted to make these instruments connectable
|
||||
to such player objects, so folks like Brad Garton
|
||||
who really think a lot about the players can connect
|
||||
them to my instruments, a lot about which I think.
|
||||
|
||||
6) More rationalizations to follow . . .
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,90 +1,101 @@
|
||||
STK: A ToolKit of Audio Synthesis Classes and Instruments in C++
|
||||
Release 3.2
|
||||
|
||||
By Perry R. Cook, 1995-2000
|
||||
and Gary P. Scavone, 1997-2000
|
||||
|
||||
v3.2: (13 November 2000)
|
||||
- new control handling class (Controller)
|
||||
- added AIFF file input/output support
|
||||
- stklib.a Makefile in src directory
|
||||
- added C++ error handling capabilities
|
||||
- added 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 (thanks Dave!)
|
||||
- simplified byte-swapping functions (in-place swapping)
|
||||
- new FIR filter class (thanks Julius!)
|
||||
- "stereo-ized" RagaMatic
|
||||
- probably a bunch more fixes that I've long since forgotten about
|
||||
|
||||
|
||||
v3.1: (13 March 2000)
|
||||
- new RagaMatic project!!!
|
||||
- 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 lot of minor changes, some bug fixes ... can't remember all of them
|
||||
|
||||
|
||||
v3.0: (10 October 1999)
|
||||
- new #define flags for OS and realtime dependencies (this will probably cause problems for most everyone, but it was necessary to make future ports easier)
|
||||
- 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 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 GUI
|
||||
- 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 MY_FLOAT) 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)
|
||||
|
||||
|
||||
v2.02: (16 November 1998)
|
||||
- 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 Win 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.
|
||||
|
||||
|
||||
v2.01: (27 July 1998)
|
||||
- Corrected extraneous ^M line return characters that were incompatible with SGI.
|
||||
|
||||
|
||||
v2.0: (20 July 1998)
|
||||
- The first true release by Gary, with unified capabilities across SGI, Linux, and Win platforms. See WWW pages (http://www-ccrma.stanford.edu/CCRMA/Software/STK/) for more info.
|
||||
|
||||
|
||||
v1.1:
|
||||
- More linux support and other changes that happened so long ago that I can't remember anymore. Never officially released.
|
||||
|
||||
|
||||
v1.0:
|
||||
- Linux support added with the help of Tim Stilson. Never officially released.
|
||||
|
||||
|
||||
v0.8:
|
||||
The Synthesis ToolKit in C++ (STK)
|
||||
|
||||
By Perry R. Cook and Gary P. Scavone, 1995-2002.
|
||||
|
||||
v4.0: (April 2002)
|
||||
- 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
|
||||
|
||||
v3.2: (13 November 2000)
|
||||
- new control handling class (Controller)
|
||||
- added AIFF file input/output support
|
||||
- stklib.a Makefile in src directory
|
||||
- added C++ error handling capabilities
|
||||
- added 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 (thanks Dave!)
|
||||
- simplified byte-swapping functions (in-place swapping)
|
||||
- new FIR filter class (thanks Julius!)
|
||||
- "stereo-ized" RagaMatic
|
||||
- probably a bunch more fixes that I've long since forgotten about
|
||||
|
||||
|
||||
v3.1: (13 March 2000)
|
||||
- new RagaMatic project!!!
|
||||
- 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 lot of minor changes, some bug fixes ... can't remember all of them
|
||||
|
||||
|
||||
v3.0: (10 October 1999)
|
||||
- new #define flags for OS and realtime dependencies (this will probably cause problems for most everyone, but it was necessary to make future ports easier)
|
||||
- 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 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 GUI
|
||||
- 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 MY_FLOAT) 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)
|
||||
|
||||
|
||||
v2.02: (16 November 1998)
|
||||
- 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 Win 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.
|
||||
|
||||
|
||||
v2.01: (27 July 1998)
|
||||
- Corrected extraneous ^M line return characters that were incompatible with SGI.
|
||||
|
||||
|
||||
v2.0: (20 July 1998)
|
||||
- The first true release by Gary, with unified capabilities across SGI, Linux, and Win platforms. See WWW pages (http://www-ccrma.stanford.edu/CCRMA/Software/STK/) for more info.
|
||||
|
||||
|
||||
v1.1:
|
||||
- More linux support and other changes that happened so long ago that I can't remember anymore. Never officially released.
|
||||
|
||||
|
||||
v1.0:
|
||||
- Linux support added with the help of Tim Stilson. Never officially released.
|
||||
|
||||
|
||||
v0.8:
|
||||
- One of (if not THE) original distributions for SGI, NeXTStep, and basic Win support. I think this came out in 1996.
|
||||
@@ -1,395 +1,391 @@
|
||||
This describes the 1.1 implementation of SKINI,
|
||||
updated for the 2.x release of STK:
|
||||
|
||||
Synthesis toolKit Instrument Network Interface
|
||||
|
||||
for the Synthesis Toolkit in C++ by Perry R. Cook
|
||||
and Gary Scavone, 1999.
|
||||
|
||||
*********************************
|
||||
* Too good to be true? *
|
||||
* Have control and read it too? *
|
||||
* A SKINI Haiku. *
|
||||
*********************************
|
||||
|
||||
Profound thanks to Dan Trueman, Brad Garton, and
|
||||
Gary Scavone for input on this revision. Thanks
|
||||
also to MIDI, the NeXT MusicKit, ZIPI and all
|
||||
the creators and modifiers of these for good bases
|
||||
upon/from which to build and depart.
|
||||
|
||||
1) MIDI Compatibility
|
||||
|
||||
SKINI was designed to be MIDI compatible wherever possible,
|
||||
and extend MIDI in incremental, then maybe profound ways.
|
||||
|
||||
Differences from MIDI, and motivations, include:
|
||||
|
||||
Text-based messages are used, with meaningful names
|
||||
wherever possible. This allows any language or system
|
||||
capable of formatted printing to generate SKINI.
|
||||
Similarly, any system capable of reading in a string
|
||||
and turning delimited fields into strings, floats,
|
||||
and ints can consume SKINI for control. More importantly,
|
||||
humans can actually read, and even write if they want,
|
||||
SKINI files and streams. Use an editor and search/
|
||||
replace or macros to change a channel or control number.
|
||||
Load a SKINI score into a spread sheet to apply
|
||||
transformations to time, control parameters, MIDI
|
||||
velocities, etc. Put a monkey on a special typewriter
|
||||
and get your next great work. Life's too short to debug
|
||||
bit/nybble packed variable length mumble messages. Disk
|
||||
space gets cheaper, available bandwidth increases, music
|
||||
takes up so little space and bandwidth compared to video
|
||||
and grapics. Live a little.
|
||||
|
||||
Floating point numbers are used wherever possible.
|
||||
Note Numbers, Velocities, Controller Values, and
|
||||
Delta and Absolute Times are all represented and
|
||||
scanned as ASCII double-precision floats. MIDI byte
|
||||
values are preserved, so that incoming MIDI bytes
|
||||
from an interface can be put directly into SKINI
|
||||
messages. 60.0 or 60 is middle C, 127.0 or 127 is
|
||||
maximum velocity etc. But, unlike MIDI, 60.5 can
|
||||
cause a 50cent sharp middle C to be played. As with
|
||||
MIDI byte values like velocity, use of the integer and
|
||||
SKINI-added fractional parts is up to the implementor
|
||||
of the algorithm being controlled by SKINI messages.
|
||||
But the extra precision is there to be used or ignored.
|
||||
|
||||
2) WHY SKINI?
|
||||
|
||||
SKINI was designed to be extensable and hackable for a number
|
||||
of applications: imbedded synthesis in a game or VR simulation,
|
||||
scoring and mixing tasks, real-time and non-real time applications
|
||||
which could benefit from controllable sound synthesis,
|
||||
JAVA controlled synthesis, or eventually maybe JAVA synthesis,
|
||||
etc. SKINI is not intended to be "the mother of scorefiles,"
|
||||
but since the entire system is based on text representations
|
||||
of names, floats, and ints, converters from one scorefile
|
||||
language to SKINI, or back, should be easily created.
|
||||
|
||||
I am basically a bottom-up designer with an awareness of top-
|
||||
down design ideas, so SKINI above all reflects the needs of my
|
||||
particular research and creative projects as they have arisen and
|
||||
developed. SKINI11 represents a profound advance beyond SKINI08
|
||||
and SKINI09 (the first versions), future SKINI's might
|
||||
reflect some changes. Compatibility with prior scorefiles
|
||||
will be attempted, but there aren't that many scorefiles out
|
||||
there yet.
|
||||
|
||||
3) SKINI MESSAGES
|
||||
|
||||
A basic SKINI message is a line of text. There are only three
|
||||
required fields, the message type (an ASCII name), the time (either
|
||||
delta or absolute), and the channel number. Don't freak out and
|
||||
think that this is MIDI channel 0-15 (which is supported), because
|
||||
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
|
||||
SKINI11.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,
|
||||
so a newline means the message is over. Multiple messages are
|
||||
NOT allowed directly on a single line (by use of the ; for
|
||||
example in C). This could be supported, but it isn't in
|
||||
version 1.1.
|
||||
|
||||
Message types include standard MIDI types like NoteOn, NoteOff,
|
||||
ControlChange, etc. MIDI extension message types (messages
|
||||
which look better than MIDI but actually get turned into
|
||||
MIDI-like messages) include LipTension, StringDamping, etc.
|
||||
NonMIDI message types include SetPath (sets a path for file
|
||||
use later), and OpenReadFile (for streaming, mixing, and applying
|
||||
effects to soundfiles along with synthesis, for example).
|
||||
Other NonMIDI message types include Trilling, HammerOn, etc. (these
|
||||
translate to gestures, behaviors, and contexts for use by
|
||||
intellegent players and instruments using SKINI). Where possible
|
||||
I will still use these as MIDI extension messages, so foot
|
||||
switches, etc. can be used to control them in real time.
|
||||
|
||||
All fields other than type, time, and channel are optional, and the
|
||||
types and useage of the additional fields is defined in the file
|
||||
SKINI11.tbl.
|
||||
|
||||
The other important file used by SKINI is SKINI11.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
|
||||
be replaced by declaration and assignment statements, preserving
|
||||
the look and behavior of the rest of the code.
|
||||
|
||||
4) C Files Used To Implement SKINI11
|
||||
|
||||
SKINI11.cpp is an object which can either open a SKINI file, and
|
||||
successively read and parse lines of text as SKINI strings, or
|
||||
accept strings from another object and parse them. The latter
|
||||
functionality would be used by a socket, pipe, or other connection
|
||||
receiving SKINI messages a line at a time, usually in real time,
|
||||
but not restricted to real time.
|
||||
|
||||
SKINI11.msg should be included by anything wanting to use the
|
||||
SKINI11.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.
|
||||
|
||||
SKINI11.tbl is used only by the SKINI parser object (SKINI11.cpp).
|
||||
In the file SKINI11.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
|
||||
could be dynamically loaded and changed in a future version of
|
||||
SKINI.
|
||||
|
||||
5) SKINI Messages and the SKINI Parser:
|
||||
|
||||
The parser isn't all that smart, but neither am I. Here are the
|
||||
basic rules governing a valid SKINI message:
|
||||
|
||||
a) If the first (non-delimiter (see c)) character in a SKINI
|
||||
string is '/' that line is treated as a comment and echoed
|
||||
to stdout.
|
||||
|
||||
b) If there are no characters on a line, that line is treated
|
||||
as blank and echoed to stdout. Tabs and spaces are treated
|
||||
as non-characters.
|
||||
|
||||
c) Spaces, commas, and tabs delimit the fields in a SKINI
|
||||
message line. (We might allow for multiple messages per
|
||||
line later using the semicolon, but probably not. A series
|
||||
of lines with deltaTimes of 0.0 denotes simultaneous events.
|
||||
For Readability, multiple messages per line doesn't help much,
|
||||
so it's unlikely to be supported later).
|
||||
|
||||
d) The first field must be a SKINI message name. (like NoteOn).
|
||||
These might become case-insensitive in SKINI11+, so don't plan
|
||||
on exciting clever overloading of names (like noTeOn being
|
||||
different from NoTeON). There can be a number of leading
|
||||
spaces or tabs, but don't exceed 32 or so.
|
||||
|
||||
e) The second field must be a time specification in seconds.
|
||||
For real-time applications, this field can be 0.0. A time
|
||||
field can be either delta-time (most common and the only one
|
||||
supported in SKINI0.8), or absolute time. Absolute time
|
||||
messages have an '=' appended to the beginning of the floating
|
||||
point number with no space. So 0.10000 means delta time of
|
||||
100ms., while =0.10000 means absolute time of 100 ms. Absolute
|
||||
time messages make most sense in score files, but could also be
|
||||
used for (loose) synchronization in a real-time context. Real
|
||||
time messages should be time-ordered AND time-correct. That is,
|
||||
if you've sent 100 total delta-time messages of 1.0 seconds, and
|
||||
then send an absolute time message of =90.0 seconds, or if you
|
||||
send two absolute time messages of =100.0 and =90.0 in that
|
||||
order, things will get really fouled up. The SKINI1.1 parser
|
||||
doesn't know about time, however. The WvOut device is the
|
||||
master time keeper in the Synthesis Toolkit, so it should be
|
||||
queried to see if absolute time messages are making sense.
|
||||
There's an example of how to do that later in this document.
|
||||
Absolute times are returned by the parser as negative numbers
|
||||
(since negative deltaTimes are not allowed).
|
||||
|
||||
f) The third field must be an integer channel number. Don't go
|
||||
crazy and think that this is just MIDI channel 0-15 (which is
|
||||
supported). The channel number is scanned as a long int. Channels
|
||||
0-15 are in general to be treated as MIDI channels. After that
|
||||
it's wide open. Channels could be socket numbers, machine IDs,
|
||||
serial numbers, or even unique tags for each event in a synthesis.
|
||||
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 SKINI11.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
|
||||
on the line, but the object using SKINI must take that string
|
||||
apart (retrived by using getRemainderString()) and scan it.
|
||||
Any excess fields are stashed in remainderString.
|
||||
|
||||
6) A Short SKINI File:
|
||||
|
||||
/* Howdy!!! Welcome to SKINI11, by P. Cook 1999
|
||||
|
||||
NoteOn 0.000082 2 55 82
|
||||
NoteOff 1.000000 2 55 0
|
||||
NoteOn 0.000082 2 69 82
|
||||
StringDetune 0.100000 2 10
|
||||
StringDetune 0.100000 2 30
|
||||
StringDetune 0.100000 2 50
|
||||
NoteOn 0.000000 2 69 82
|
||||
StringDetune 0.100000 2 40
|
||||
StringDetune 0.100000 2 22
|
||||
StringDetune 0.100000 2 12
|
||||
//
|
||||
StringDamping 0.000100 2 0.0
|
||||
NoteOn 0.000082 2 55 82
|
||||
NoteOn 0.200000 2 62 82
|
||||
NoteOn 0.100000 2 71 82
|
||||
NoteOn 0.200000 2 79 82
|
||||
NoteOff 1.000000 2 55 82
|
||||
NoteOff 0.000000 2 62 82
|
||||
NoteOff 0.000000 2 71 82
|
||||
NoteOff 0.000000 2 79 82
|
||||
StringDamping =4.000000 2 0.0
|
||||
NoteOn 0.000082 2 55 82
|
||||
NoteOn 0.200000 2 62 82
|
||||
NoteOn 0.100000 2 71 82
|
||||
NoteOn 0.200000 2 79 82
|
||||
NoteOff 1.000000 2 55 82
|
||||
NoteOff 0.000000 2 62 82
|
||||
NoteOff 0.000000 2 71 82
|
||||
NoteOff 0.000000 2 79 82
|
||||
|
||||
7) The SKINI11.tbl File, How Messages are Parsed
|
||||
|
||||
The SKINI11.tbl file contains an array of structures which
|
||||
are accessed by the parser object SKINI11.cpp. The struct is:
|
||||
|
||||
struct SKINISpec { char messageString[32];
|
||||
long type;
|
||||
long data2;
|
||||
long data3;
|
||||
};
|
||||
|
||||
so an assignment of one of these structs looks like:
|
||||
|
||||
MessageStr$ ,type, data2, data3,
|
||||
|
||||
type is the message type sent back from the SKINI line parser.
|
||||
data<n> is either
|
||||
NOPE : field not used, specifically, there aren't going
|
||||
to be any more fields on this line. So if there
|
||||
is is NOPE in data2, data3 won't even be checked
|
||||
SK_INT : byte (actually scanned as 32 bit signed long int)
|
||||
If it's a MIDI data field which is required to
|
||||
be an integer, like a controller number, it's
|
||||
0-127. Otherwise) get creative with SK_INTs
|
||||
SK_DBL : double precision floating point. SKINI uses these
|
||||
in the MIDI context for note numbers with micro
|
||||
tuning, velocities, controller values, etc.
|
||||
SK_STR : only valid in final field. This allows (nearly)
|
||||
arbitrary message types to be supported by simply
|
||||
scanning the string to EndOfLine and then passing
|
||||
it to a more intellegent handler. For example,
|
||||
MIDI SYSEX (system exclusive) messages of up to
|
||||
256bytes can be read as space-delimited integers
|
||||
into the 1K SK_STR buffer. Longer bulk dumps,
|
||||
soundfiles, etc. should be handled as a new
|
||||
message type pointing to a FileName, Socket, or
|
||||
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 SKINI11.tbl file
|
||||
|
||||
{"NoteOff" , __SK_NoteOff_, SK_DBL, SK_DBL},
|
||||
{"NoteOn" , __SK_NoteOn_, SK_DBL, SK_DBL},
|
||||
|
||||
{"ControlChange" , __SK_ControlChange_, SK_INT, SK_DBL},
|
||||
{"Volume" , __SK_ControlChange_, __SK_Volume_ , SK_DBL},
|
||||
|
||||
{"StringDamping" , __SK_ControlChange_, __SK_StringDamping_ , SK_DBL},
|
||||
{"StringDetune" , __SK_ControlChange_, __SK_StringDetune_ , SK_DBL},
|
||||
|
||||
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 SKINI11.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
|
||||
fields would be scanned as double-precision floats and assigned to
|
||||
the byteTwo and byteThree variables of the SKINI parser. The remainder
|
||||
of the line is stashed in the remainderString variable.
|
||||
|
||||
The ControlChange spec is basically the same as NoteOn and NoteOff, but
|
||||
the second data byte is set to an integer (for checking later as to
|
||||
what MIDI control is being changed).
|
||||
|
||||
The Volume spec is a MIDI Extension message, which behaves like a
|
||||
ControlChange message with the controller number set explicitly to
|
||||
the value for MIDI Volume (7). Thus the following two lines would
|
||||
accomplish the same changing of MIDI volume on channel 2:
|
||||
|
||||
ControlChange 0.000000 2 7 64.1
|
||||
Volume 0.000000 2 64.1
|
||||
|
||||
I like the 2nd line better, thus my motivation for SKINI in the first
|
||||
place.
|
||||
|
||||
The StringDamping and StringDetune messages behave the same as
|
||||
the Volume message, but use Control Numbers which aren't specifically
|
||||
nailed-down in MIDI. Note that these Control Numbers are carried
|
||||
around as long ints, so we're not limited to 0-127. If, however,
|
||||
you want to use a MIDI controller to play an instrument, using
|
||||
controller numbers in the 0-127 range might make sense.
|
||||
|
||||
8) Objects using SKINI
|
||||
|
||||
Here's a simple example of code which uses the SKINI object
|
||||
to read a SKINI file and control a single instrument.
|
||||
|
||||
instrument = new Mandolin(50.0);
|
||||
score = new SKINI11(argv[1]);
|
||||
while(score->getType() > 0) {
|
||||
tempDouble = score->getDelta();
|
||||
if (tempDouble < 0) {
|
||||
tempDouble = - tempDouble;
|
||||
tempDouble = tempDouble - output.getTime();
|
||||
if (tempDouble < 0) {
|
||||
printf("Bad News Here!!! Backward Absolute Time
|
||||
Required.\n");
|
||||
tempDouble = 0.0;
|
||||
}
|
||||
}
|
||||
tempLong = (long) (tempDouble * SRATE);
|
||||
for (i=0;i<tempLong;i++) {
|
||||
output.tick(instrument->tick());
|
||||
}
|
||||
tempDouble3 = score->getByteThree();
|
||||
if (score->getType()== __SK_NoteOn_ ) {
|
||||
tempDouble3 *= NORM_7;
|
||||
if (score->getByteThree() == 0) {
|
||||
tempDouble3 = 0.5;
|
||||
instrument->noteOff(tempDouble3);
|
||||
}
|
||||
else {
|
||||
tempLong = (int) score->getByteTwo();
|
||||
tempDouble2 = __MIDI_To_Pitch[tempLong];
|
||||
instrument->noteOn(tempDouble2,tempDouble3);
|
||||
}
|
||||
}
|
||||
else if (score->getType() == __SK_NoteOff_) {
|
||||
tempDouble3 *= NORM_7;
|
||||
instrument->noteOff(tempDouble3);
|
||||
}
|
||||
else if (score->getType() == __SK_ControlChange_) {
|
||||
tempLong = score->getByteTwoInt();
|
||||
instrument->controlChange(tempLong,temp3.0);
|
||||
}
|
||||
score->nextMessage();
|
||||
}
|
||||
|
||||
When the score (SKINI11 object) object is created from the
|
||||
filename in argv[1], the first valid command line is read
|
||||
from the file and parsed.
|
||||
|
||||
The score->getType() retrieves the messageType. If this is
|
||||
-1, there are no more valid messages in the file and the
|
||||
synthesis loop terminates. Otherwise, the message type is
|
||||
returned.
|
||||
|
||||
getDelta() retrieves the deltaTime until the current message
|
||||
should occur. If this is greater than 0, synthesis occurs
|
||||
until the deltaTime has elapsed. If deltaTime is less than
|
||||
zero, the time is interpreted as absolute time and the output
|
||||
device is queried as to what time it is now. That is used to
|
||||
form a deltaTime, and if it's positive we synthesize. If
|
||||
it's negative, we print an error and pretend this never
|
||||
happened and we hang around hoping to eventually catch up.
|
||||
|
||||
The rest of the code sorts out message types NoteOn, NoteOff
|
||||
(including NoteOn with velocity 0), and ControlChange. The
|
||||
code implicitly takes into account the integer type of the
|
||||
control number, but all other data is treated as double float.
|
||||
|
||||
The last line reads and parses the next message in the file.
|
||||
This describes the latest (version 1.1) implementation of SKINI.
|
||||
|
||||
Synthesis toolKit Instrument Network Interface
|
||||
|
||||
for the Synthesis Toolkit in C++ by Perry R. Cook.
|
||||
|
||||
*********************************
|
||||
* Too good to be true? *
|
||||
* Have control and read it too? *
|
||||
* A SKINI Haiku. *
|
||||
*********************************
|
||||
|
||||
Profound thanks to Dan Trueman, Brad Garton, and
|
||||
Gary Scavone for input on this revision. Thanks
|
||||
also to MIDI, the NeXT MusicKit, ZIPI and all
|
||||
the creators and modifiers of these for good bases
|
||||
upon/from which to build and depart.
|
||||
|
||||
1) MIDI Compatibility
|
||||
|
||||
SKINI was designed to be MIDI compatible wherever possible,
|
||||
and extend MIDI in incremental, then maybe profound ways.
|
||||
|
||||
Differences from MIDI, and motivations, include:
|
||||
|
||||
Text-based messages are used, with meaningful names
|
||||
wherever possible. This allows any language or system
|
||||
capable of formatted printing to generate SKINI.
|
||||
Similarly, any system capable of reading in a string
|
||||
and turning delimited fields into strings, floats,
|
||||
and ints can consume SKINI for control. More importantly,
|
||||
humans can actually read, and even write if they want,
|
||||
SKINI files and streams. Use an editor and search/
|
||||
replace or macros to change a channel or control number.
|
||||
Load a SKINI score into a spread sheet to apply
|
||||
transformations to time, control parameters, MIDI
|
||||
velocities, etc. Put a monkey on a special typewriter
|
||||
and get your next great work. Life's too short to debug
|
||||
bit/nybble packed variable length mumble messages. Disk
|
||||
space gets cheaper, available bandwidth increases, music
|
||||
takes up so little space and bandwidth compared to video
|
||||
and grapics. Live a little.
|
||||
|
||||
Floating point numbers are used wherever possible.
|
||||
Note Numbers, Velocities, Controller Values, and
|
||||
Delta and Absolute Times are all represented and
|
||||
scanned as ASCII double-precision floats. MIDI byte
|
||||
values are preserved, so that incoming MIDI bytes
|
||||
from an interface can be put directly into SKINI
|
||||
messages. 60.0 or 60 is middle C, 127.0 or 127 is
|
||||
maximum velocity etc. But, unlike MIDI, 60.5 can
|
||||
cause a 50cent sharp middle C to be played. As with
|
||||
MIDI byte values like velocity, use of the integer and
|
||||
SKINI-added fractional parts is up to the implementor
|
||||
of the algorithm being controlled by SKINI messages.
|
||||
But the extra precision is there to be used or ignored.
|
||||
|
||||
2) WHY SKINI?
|
||||
|
||||
SKINI was designed to be extensable and hackable for a number
|
||||
of applications: imbedded synthesis in a game or VR simulation,
|
||||
scoring and mixing tasks, real-time and non-real time applications
|
||||
which could benefit from controllable sound synthesis,
|
||||
JAVA controlled synthesis, or eventually maybe JAVA synthesis,
|
||||
etc. SKINI is not intended to be "the mother of scorefiles,"
|
||||
but since the entire system is based on text representations
|
||||
of names, floats, and ints, converters from one scorefile
|
||||
language to SKINI, or back, should be easily created.
|
||||
|
||||
I am basically a bottom-up designer with an awareness of top-
|
||||
down design ideas, so SKINI above all reflects the needs of my
|
||||
particular research and creative projects as they have arisen and
|
||||
developed. SKINI 1.1 represents a profound advance beyond
|
||||
versions 0.8 and 0.9 (the first versions), future SKINI's might
|
||||
reflect some changes. Compatibility with prior scorefiles
|
||||
will be attempted, but there aren't that many scorefiles out
|
||||
there yet.
|
||||
|
||||
3) SKINI MESSAGES
|
||||
|
||||
A basic SKINI message is a line of text. There are only three
|
||||
required fields, the message type (an ASCII name), the time (either
|
||||
delta or absolute), and the channel number. Don't freak out and
|
||||
think that this is MIDI channel 0-15 (which is supported), because
|
||||
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
|
||||
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,
|
||||
so a newline means the message is over. Multiple messages are
|
||||
NOT allowed directly on a single line (by use of the ; for
|
||||
example in C). This could be supported, but it isn't in
|
||||
version 1.1.
|
||||
|
||||
Message types include standard MIDI types like NoteOn, NoteOff,
|
||||
ControlChange, etc. MIDI extension message types (messages
|
||||
which look better than MIDI but actually get turned into
|
||||
MIDI-like messages) include LipTension, StringDamping, etc.
|
||||
NonMIDI message types include SetPath (sets a path for file
|
||||
use later), and OpenReadFile (for streaming, mixing, and applying
|
||||
effects to soundfiles along with synthesis, for example).
|
||||
Other non-MIDI message types include Trilling, HammerOn, etc. (these
|
||||
translate to gestures, behaviors, and contexts for use by
|
||||
intellegent players and instruments using SKINI). Where possible
|
||||
I will still use these as MIDI extension messages, so foot
|
||||
switches, etc. can be used to control them in real time.
|
||||
|
||||
All fields other than type, time, and channel are optional, and the
|
||||
types and useage of the additional fields is defined in the file
|
||||
SKINI.tbl.
|
||||
|
||||
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
|
||||
be replaced by declaration and assignment statements, preserving
|
||||
the look and behavior of the rest of the code.
|
||||
|
||||
4) C Files Used To Implement SKINI
|
||||
|
||||
SKINI.cpp is an object which can either open a SKINI file, and
|
||||
successively read and parse lines of text as SKINI strings, or
|
||||
accept strings from another object and parse them. The latter
|
||||
functionality would be used by a socket, pipe, or other connection
|
||||
receiving SKINI messages a line at a time, usually in real time,
|
||||
but not restricted to real time.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
could be dynamically loaded and changed in a future version of
|
||||
SKINI.
|
||||
|
||||
5) SKINI Messages and the SKINI Parser:
|
||||
|
||||
The parser isn't all that smart, but neither am I. Here are the
|
||||
basic rules governing a valid SKINI message:
|
||||
|
||||
a) If the first (non-delimiter (see c)) character in a SKINI
|
||||
string is '/' that line is treated as a comment and echoed
|
||||
to stdout.
|
||||
|
||||
b) If there are no characters on a line, that line is treated
|
||||
as blank and echoed to stdout. Tabs and spaces are treated
|
||||
as non-characters.
|
||||
|
||||
c) Spaces, commas, and tabs delimit the fields in a SKINI
|
||||
message line. (We might allow for multiple messages per
|
||||
line later using the semicolon, but probably not. A series
|
||||
of lines with deltaTimes of 0.0 denotes simultaneous events.
|
||||
For read-ability, multiple messages per line doesn't help much,
|
||||
so it's unlikely to be supported later).
|
||||
|
||||
d) The first field must be a SKINI message name. (like NoteOn).
|
||||
These might become case-insensitive in future versions, so don't
|
||||
plan on exciting clever overloading of names (like noTeOn being
|
||||
different from NoTeON). There can be a number of leading
|
||||
spaces or tabs, but don't exceed 32 or so.
|
||||
|
||||
e) The second field must be a time specification in seconds.
|
||||
A time field can be either delta-time (most common and the only one
|
||||
supported in version 0.8), or absolute time. Absolute time
|
||||
messages have an '=' appended to the beginning of the floating
|
||||
point number with no space. So 0.10000 means delta time of
|
||||
100 ms, while =0.10000 means absolute time of 100 ms. Absolute
|
||||
time messages make most sense in score files, but could also be
|
||||
used for (loose) synchronization in a real-time context. Real
|
||||
time messages should be time-ordered AND time-correct. That is,
|
||||
if you've sent 100 total delta-time messages of 1.0 seconds, and
|
||||
then send an absolute time message of =90.0 seconds, or if you
|
||||
send two absolute time messages of =100.0 and =90.0 in that
|
||||
order, things will get really fouled up. The SKINI parser
|
||||
doesn't know about time, however. The WvOut device is the
|
||||
master time keeper in the Synthesis Toolkit, so it should be
|
||||
queried to see if absolute time messages are making sense.
|
||||
There's an example of how to do that later in this document.
|
||||
Absolute times are returned by the parser as negative numbers
|
||||
(since negative deltaTimes are not allowed).
|
||||
|
||||
f) The third field must be an integer channel number. Don't go
|
||||
crazy and think that this is just MIDI channel 0-15 (which is
|
||||
supported). The channel number is scanned as a long int. Channels
|
||||
0-15 are in general to be treated as MIDI channels. After that
|
||||
it's wide open. Channels could be socket numbers, machine IDs,
|
||||
serial numbers, or even unique tags for each event in a synthesis.
|
||||
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 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
|
||||
on the line, but the object using SKINI must take that string
|
||||
apart (retrived by using getRemainderString()) and scan it.
|
||||
Any excess fields are stashed in remainderString.
|
||||
|
||||
6) A Short SKINI File:
|
||||
|
||||
/* Howdy!!! Welcome to SKINI, by P. Cook 1999
|
||||
|
||||
NoteOn 0.000082 2 55 82
|
||||
NoteOff 1.000000 2 55 0
|
||||
NoteOn 0.000082 2 69 82
|
||||
StringDetune 0.100000 2 10
|
||||
StringDetune 0.100000 2 30
|
||||
StringDetune 0.100000 2 50
|
||||
NoteOn 0.000000 2 69 82
|
||||
StringDetune 0.100000 2 40
|
||||
StringDetune 0.100000 2 22
|
||||
StringDetune 0.100000 2 12
|
||||
//
|
||||
StringDamping 0.000100 2 0.0
|
||||
NoteOn 0.000082 2 55 82
|
||||
NoteOn 0.200000 2 62 82
|
||||
NoteOn 0.100000 2 71 82
|
||||
NoteOn 0.200000 2 79 82
|
||||
NoteOff 1.000000 2 55 82
|
||||
NoteOff 0.000000 2 62 82
|
||||
NoteOff 0.000000 2 71 82
|
||||
NoteOff 0.000000 2 79 82
|
||||
StringDamping =4.000000 2 0.0
|
||||
NoteOn 0.000082 2 55 82
|
||||
NoteOn 0.200000 2 62 82
|
||||
NoteOn 0.100000 2 71 82
|
||||
NoteOn 0.200000 2 79 82
|
||||
NoteOff 1.000000 2 55 82
|
||||
NoteOff 0.000000 2 62 82
|
||||
NoteOff 0.000000 2 71 82
|
||||
NoteOff 0.000000 2 79 82
|
||||
|
||||
7) The SKINI.tbl File, How Messages are Parsed:
|
||||
|
||||
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];
|
||||
long type;
|
||||
long data2;
|
||||
long data3;
|
||||
};
|
||||
|
||||
so an assignment of one of these structs looks like:
|
||||
|
||||
MessageStr$ ,type, data2, data3,
|
||||
|
||||
type is the message type sent back from the SKINI line parser.
|
||||
data<n> is either
|
||||
NOPE : field not used, specifically, there aren't going
|
||||
to be any more fields on this line. So if there
|
||||
is is NOPE in data2, data3 won't even be checked
|
||||
SK_INT : byte (actually scanned as 32 bit signed long int)
|
||||
If it's a MIDI data field which is required to
|
||||
be an integer, like a controller number, it's
|
||||
0-127. Otherwise) get creative with SK_INTs
|
||||
SK_DBL : double precision floating point. SKINI uses these
|
||||
in the MIDI context for note numbers with micro
|
||||
tuning, velocities, controller values, etc.
|
||||
SK_STR : only valid in final field. This allows (nearly)
|
||||
arbitrary message types to be supported by simply
|
||||
scanning the string to EndOfLine and then passing
|
||||
it to a more intellegent handler. For example,
|
||||
MIDI SYSEX (system exclusive) messages of up to
|
||||
256 bytes can be read as space-delimited integers
|
||||
into the 1K SK_STR buffer. Longer bulk dumps,
|
||||
soundfiles, etc. should be handled as a new
|
||||
message type pointing to a FileName, Socket, or
|
||||
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 SKINI.tbl file
|
||||
|
||||
{"NoteOff" , __SK_NoteOff_, SK_DBL, SK_DBL},
|
||||
{"NoteOn" , __SK_NoteOn_, SK_DBL, SK_DBL},
|
||||
|
||||
{"ControlChange" , __SK_ControlChange_, SK_INT, SK_DBL},
|
||||
{"Volume" , __SK_ControlChange_, __SK_Volume_ , SK_DBL},
|
||||
|
||||
{"StringDamping" , __SK_ControlChange_, __SK_StringDamping_, SK_DBL},
|
||||
{"StringDetune" , __SK_ControlChange_, __SK_StringDetune_, SK_DBL},
|
||||
|
||||
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 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
|
||||
fields would be scanned as double-precision floats and assigned to
|
||||
the byteTwo and byteThree variables of the SKINI parser. The remainder
|
||||
of the line is stashed in the remainderString variable.
|
||||
|
||||
The ControlChange spec is basically the same as NoteOn and NoteOff, but
|
||||
the second data byte is set to an integer (for checking later as to
|
||||
what MIDI control is being changed).
|
||||
|
||||
The Volume spec is a MIDI Extension message, which behaves like a
|
||||
ControlChange message with the controller number set explicitly to
|
||||
the value for MIDI Volume (7). Thus the following two lines would
|
||||
accomplish the same changing of MIDI volume on channel 2:
|
||||
|
||||
ControlChange 0.000000 2 7 64.1
|
||||
Volume 0.000000 2 64.1
|
||||
|
||||
I like the 2nd line better, thus my motivation for SKINI in the first
|
||||
place.
|
||||
|
||||
The StringDamping and StringDetune messages behave the same as
|
||||
the Volume message, but use Control Numbers which aren't specifically
|
||||
nailed-down in MIDI. Note that these Control Numbers are carried
|
||||
around as long ints, so we're not limited to 0-127. If, however,
|
||||
you want to use a MIDI controller to play an instrument, using
|
||||
controller numbers in the 0-127 range might make sense.
|
||||
|
||||
8) Objects using SKINI
|
||||
|
||||
Here's a simple example of code which uses the SKINI object
|
||||
to read a SKINI file and control a single instrument.
|
||||
|
||||
instrument = new Mandolin(50.0);
|
||||
score = new SKINI(argv[1]);
|
||||
while(score->getType() > 0) {
|
||||
tempDouble = score->getDelta();
|
||||
if (tempDouble < 0) {
|
||||
tempDouble = - tempDouble;
|
||||
tempDouble = tempDouble - output.getTime();
|
||||
if (tempDouble < 0) {
|
||||
printf("Bad News Here!!! Backward Absolute Time Required.\n");
|
||||
tempDouble = 0.0;
|
||||
}
|
||||
}
|
||||
tempLong = (long) (tempDouble * Stk::sampleRate());
|
||||
for (i=0;i<tempLong;i++) {
|
||||
output.tick(instrument->tick());
|
||||
}
|
||||
tempDouble3 = score->getByteThree();
|
||||
if (score->getType()== __SK_NoteOn_ ) {
|
||||
tempDouble3 *= NORM_MIDI;
|
||||
if (score->getByteThree() == 0) {
|
||||
tempDouble3 = 0.5;
|
||||
instrument->noteOff(tempDouble3);
|
||||
}
|
||||
else {
|
||||
tempLong = (int) score->getByteTwo();
|
||||
tempDouble2 = Midi2Pitch[tempLong];
|
||||
instrument->noteOn(tempDouble2,tempDouble3);
|
||||
}
|
||||
}
|
||||
else if (score->getType() == __SK_NoteOff_) {
|
||||
tempDouble3 *= NORM_MIDI;
|
||||
instrument->noteOff(tempDouble3);
|
||||
}
|
||||
else if (score->getType() == __SK_ControlChange_) {
|
||||
tempLong = score->getByteTwoInt();
|
||||
instrument->controlChange(tempLong,temp3.0);
|
||||
}
|
||||
score->nextMessage();
|
||||
}
|
||||
|
||||
When the score (SKINI object) object is created from the
|
||||
filename in argv[1], the first valid command line is read
|
||||
from the file and parsed.
|
||||
|
||||
The score->getType() retrieves the messageType. If this is
|
||||
-1, there are no more valid messages in the file and the
|
||||
synthesis loop terminates. Otherwise, the message type is
|
||||
returned.
|
||||
|
||||
getDelta() retrieves the deltaTime until the current message
|
||||
should occur. If this is greater than 0, synthesis occurs
|
||||
until the deltaTime has elapsed. If deltaTime is less than
|
||||
zero, the time is interpreted as absolute time and the output
|
||||
device is queried as to what time it is now. That is used to
|
||||
form a deltaTime, and if it's positive we synthesize. If
|
||||
it's negative, we print an error and pretend this never
|
||||
happened and we hang around hoping to eventually catch up.
|
||||
|
||||
The rest of the code sorts out message types NoteOn, NoteOff
|
||||
(including NoteOn with velocity 0), and ControlChange. The
|
||||
code implicitly takes into account the integer type of the
|
||||
control number, but all other data is treated as double float.
|
||||
|
||||
The last line reads and parses the next message in the file.
|
||||
155
doc/doxygen/Doxyfile
Normal file
155
doc/doxygen/Doxyfile
Normal file
@@ -0,0 +1,155 @@
|
||||
# Doxyfile 1.2.6
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# General configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
PROJECT_NAME = STK
|
||||
PROJECT_NUMBER =
|
||||
OUTPUT_DIRECTORY = .
|
||||
OUTPUT_LANGUAGE = English
|
||||
EXTRACT_ALL = NO
|
||||
EXTRACT_PRIVATE = NO
|
||||
EXTRACT_STATIC = YES
|
||||
HIDE_UNDOC_MEMBERS = YES
|
||||
HIDE_UNDOC_CLASSES = YES
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
REPEAT_BRIEF = YES
|
||||
ALWAYS_DETAILED_SEC = NO
|
||||
FULL_PATH_NAMES = NO
|
||||
STRIP_FROM_PATH =
|
||||
INTERNAL_DOCS = NO
|
||||
CLASS_DIAGRAMS = YES
|
||||
SOURCE_BROWSER = NO
|
||||
INLINE_SOURCES = NO
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
CASE_SENSE_NAMES = YES
|
||||
HIDE_SCOPE_NAMES = NO
|
||||
VERBATIM_HEADERS = YES
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
JAVADOC_AUTOBRIEF = NO
|
||||
INHERIT_DOCS = YES
|
||||
INLINE_INFO = YES
|
||||
SORT_MEMBER_DOCS = NO
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
TAB_SIZE = 8
|
||||
ENABLED_SECTIONS =
|
||||
GENERATE_TODOLIST = YES
|
||||
GENERATE_TESTLIST = YES
|
||||
GENERATE_BUGLIST = YES
|
||||
ALIASES =
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
OPTIMIZE_OUTPUT_FOR_C = NO
|
||||
SHOW_USED_FILES = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to warning and progress messages
|
||||
#---------------------------------------------------------------------------
|
||||
QUIET = NO
|
||||
WARNINGS = YES
|
||||
WARN_IF_UNDOCUMENTED = YES
|
||||
WARN_FORMAT = "$file:$line: $text"
|
||||
WARN_LOGFILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = index.txt information.txt classes.txt download.txt usage.txt maillist.txt system.txt tutorial.txt skini.txt ../../include/
|
||||
FILE_PATTERNS = *.h
|
||||
RECURSIVE = NO
|
||||
EXCLUDE =
|
||||
EXCLUDE_PATTERNS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS =
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
FILTER_SOURCE_FILES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the alphabetical class index
|
||||
#---------------------------------------------------------------------------
|
||||
ALPHABETICAL_INDEX = NO
|
||||
COLS_IN_ALPHA_INDEX = 5
|
||||
IGNORE_PREFIX =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the HTML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_HTML = YES
|
||||
HTML_OUTPUT = ../html
|
||||
HTML_HEADER = header.html
|
||||
HTML_FOOTER = footer.html
|
||||
HTML_STYLESHEET =
|
||||
HTML_ALIGN_MEMBERS = YES
|
||||
GENERATE_HTMLHELP = NO
|
||||
GENERATE_CHI = NO
|
||||
BINARY_TOC = NO
|
||||
TOC_EXPAND = NO
|
||||
DISABLE_INDEX = YES
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
GENERATE_TREEVIEW = NO
|
||||
TREEVIEW_WIDTH = 250
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the LaTeX output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_LATEX = YES
|
||||
LATEX_OUTPUT = latex
|
||||
COMPACT_LATEX = NO
|
||||
PAPER_TYPE = letter
|
||||
EXTRA_PACKAGES =
|
||||
LATEX_HEADER = header.tex
|
||||
PDF_HYPERLINKS = YES
|
||||
USE_PDFLATEX = YES
|
||||
LATEX_BATCHMODE = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the RTF output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_RTF = NO
|
||||
RTF_OUTPUT = rtf
|
||||
COMPACT_RTF = NO
|
||||
RTF_HYPERLINKS = NO
|
||||
RTF_STYLESHEET_FILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the man page output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_MAN = NO
|
||||
MAN_OUTPUT = man
|
||||
MAN_EXTENSION = .3
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
#---------------------------------------------------------------------------
|
||||
ENABLE_PREPROCESSING = YES
|
||||
MACRO_EXPANSION = NO
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
SEARCH_INCLUDES = YES
|
||||
INCLUDE_PATH =
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
PREDEFINED =
|
||||
EXPAND_AS_DEFINED =
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES =
|
||||
GENERATE_TAGFILE =
|
||||
ALLEXTERNALS = NO
|
||||
PERL_PATH = /usr/bin/perl
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the dot tool
|
||||
#---------------------------------------------------------------------------
|
||||
HAVE_DOT = NO
|
||||
CLASS_GRAPH = YES
|
||||
COLLABORATION_GRAPH = YES
|
||||
INCLUDE_GRAPH = YES
|
||||
INCLUDED_BY_GRAPH = YES
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
DOT_PATH =
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
GENERATE_LEGEND = YES
|
||||
DOT_CLEANUP = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to the search engine
|
||||
#---------------------------------------------------------------------------
|
||||
SEARCHENGINE = NO
|
||||
CGI_NAME = search.cgi
|
||||
CGI_URL =
|
||||
DOC_URL =
|
||||
DOC_ABSPATH =
|
||||
BIN_ABSPATH = /usr/local/bin/
|
||||
EXT_DOC_PATHS =
|
||||
|
||||
10
doc/doxygen/classes.txt
Normal file
10
doc/doxygen/classes.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
/*! \page classes Class Documentation
|
||||
|
||||
<UL>
|
||||
<LI><a class="qindex" href="hierarchy.html">Class Hierarchy</a></LI>
|
||||
<LI><a class="qindex" href="annotated.html">Class/Enum List</a></LI>
|
||||
<LI><a class="qindex" href="files.html">File List</a></LI>
|
||||
<LI><a class="qindex" href="functions.html">Compound Members</a></LI>
|
||||
</UL>
|
||||
|
||||
*/
|
||||
115
doc/doxygen/download.txt
Normal file
115
doc/doxygen/download.txt
Normal file
@@ -0,0 +1,115 @@
|
||||
/*! \page download Download and Release Notes
|
||||
|
||||
<B>Version 4.0, 30 April 2002</B><P>
|
||||
<A HREF="Release/stk-4.0.tar.gz">STK Version 4.0: Source distribution</A> (1.64 MB tar/gzipped)<BR>
|
||||
<A HREF="Release/stk-4.0.binaries.tar.gz">STK Version 4.0: Source distribution with precompiled windows binaries</A> (2.26 MB tar/gzipped)<BR>
|
||||
<P>
|
||||
|
||||
\section notes Release Notes:
|
||||
|
||||
\subsection v4 Version 4.0
|
||||
|
||||
<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
|
||||
|
||||
<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
|
||||
|
||||
<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
|
||||
|
||||
<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 MY_FLOAT) 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
|
||||
|
||||
<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
|
||||
|
||||
<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. <FONT FACE="Geneva">MD2SKINI | syntmono Clarinet -r -i</FONT>). In addition, you can supply a filename argument to MD2SKINI and have it simultaneously record a SKINI score file for future reuse.
|
||||
<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>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>
|
||||
|
||||
*/
|
||||
9
doc/doxygen/footer.html
Normal file
9
doc/doxygen/footer.html
Normal file
@@ -0,0 +1,9 @@
|
||||
<HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
10
doc/doxygen/header.html
Normal file
10
doc/doxygen/header.html
Normal file
@@ -0,0 +1,10 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
31
doc/doxygen/header.tex
Normal file
31
doc/doxygen/header.tex
Normal file
@@ -0,0 +1,31 @@
|
||||
\documentclass[letter]{book}
|
||||
\usepackage{makeidx}
|
||||
\usepackage{fancyhdr}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{float}
|
||||
\usepackage{alltt}
|
||||
\usepackage{doxygen}
|
||||
\usepackage{hyperref}
|
||||
\makeindex
|
||||
\setcounter{tocdepth}{1}
|
||||
\setlength{\footrulewidth}{0.4pt}
|
||||
\begin{document}
|
||||
\begin{titlepage}
|
||||
\vspace*{7cm}
|
||||
\begin{center}
|
||||
{\Large User Manual}\\
|
||||
\vspace*{0.5cm}
|
||||
{\Large The Synthesis ToolKit in C++}\\
|
||||
\vspace*{1cm}
|
||||
{\large by Perry R. Cook and Gary P. Scavone}\\
|
||||
\vspace*{0.5cm}
|
||||
{\small \copyright 1995--2002}\\
|
||||
\end{center}
|
||||
\end{titlepage}
|
||||
\clearemptydoublepage
|
||||
\pagenumbering{roman}
|
||||
\rfoot[\fancyplain{}{\bfseries\scriptsize The Synthesis ToolKit in C++ by Perry R. Cook and Gary P. Scavone, \copyright~1995--2002}]{}
|
||||
\lfoot[]{\fancyplain{}{\bfseries\scriptsize The Synthesis ToolKit in C++ by Perry R. Cook and Gary P. Scavone, \copyright~1995--2002}}
|
||||
\tableofcontents
|
||||
\clearemptydoublepage
|
||||
\pagenumbering{arabic}
|
||||
BIN
doc/doxygen/images/ccrma.gif
Normal file
BIN
doc/doxygen/images/ccrma.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.1 KiB |
BIN
doc/doxygen/images/princeton.gif
Normal file
BIN
doc/doxygen/images/princeton.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.3 KiB |
15
doc/doxygen/index.txt
Normal file
15
doc/doxygen/index.txt
Normal file
@@ -0,0 +1,15 @@
|
||||
/*! \mainpage <I>The Synthesis ToolKit in C++ (STK)</I>
|
||||
|
||||
<BODY BGCOLOR="white">
|
||||
|
||||
The <B>Synthesis ToolKit in C++ (STK)</B> is a set of audio signal processing and synthesis classes and algorithms written in C++. You can use these classes to create programs that make sounds with a variety of synthesis techniques. This is not a terribly novel concept, except that the Synthesis ToolKit is extremely portable (it's mostly platform-independent C and C++ code), and it's completely user-extensible (no libraries, no hidden drivers, and all source code is included). 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 8 years now. STK currently runs with "realtime" support (audio and MIDI) on SGI (Irix), Linux, 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.
|
||||
|
||||
- \ref information
|
||||
- \ref classes
|
||||
- \ref download
|
||||
- \ref usage
|
||||
- \ref maillist
|
||||
- \ref system
|
||||
- \ref tutorial
|
||||
|
||||
*/
|
||||
50
doc/doxygen/information.txt
Normal file
50
doc/doxygen/information.txt
Normal file
@@ -0,0 +1,50 @@
|
||||
/*! \page information General Information
|
||||
|
||||
<H3>References</H3>
|
||||
<UL>
|
||||
<LI><A HREF="Papers/stkicmc99.pdf">ICMC99 Paper</A></LI>
|
||||
<BR>
|
||||
A somewhat recent paper by Perry and Gary about the Synthesis ToolKit in C++.
|
||||
<P>
|
||||
<LI><A HREF="Papers/STKsiggraph96.pdf">SIGGRAPH96 Paper</A></LI>
|
||||
<BR>
|
||||
A not-so-recent paper by Perry about the Synthesis ToolKit in C++.
|
||||
<P>
|
||||
<LI><A HREF="http://www.cs.princeton.edu/~prc/NewWork.html#STK">Perry's STK Web Page</A></LI>
|
||||
<BR>
|
||||
This is a link to Perry Cook's STK Web page. He has information about the \ref skini, the protocol used to control STK instruments, as well as a lot of other cool stuff.
|
||||
</UL>
|
||||
|
||||
|
||||
<H4>What is the <I>Synthesis ToolKit</I>?</H4>
|
||||
|
||||
The Synthesis ToolKit in C++ (STK) is a set of audio signal processing and synthesis classes and algorithms written in C++. You can use these classes to create programs that make sounds with a variety of synthesis techniques. This is not a terribly novel concept, except that the Synthesis ToolKit is extremely portable (it's mostly platform-independent C and C++ code), and it's completely user-extensible (no libraries, no hidden drivers, and all source code is included). 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 8 years now. STK currently runs with "realtime" support (audio and MIDI) on SGI (Irix), Linux, 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 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. If you feel the need to have a "drag and drop" graphical patching GUI, you probably don't want to use the ToolKit. Spending hundreds of hours making platform-dependent graphics code 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="http://dev.scriptics.com">Tcl/Tk</A> (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), 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>
|
||||
|
||||
Perry Cook began developing a pre-cursor to the Synthesis ToolKit (also called STK) under NeXTStep at the Center for Computer Research in Music and Acoustics (CCRMA) at Stanford University in the early-1990s. With his move to Princeton University in 1996, he ported 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 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 HREF="http://www.music.princeton.edu/psk">Princeton Sound Kitchen</A>, <A HREF="http://www.cs.princeton.edu/~prc">Perry Cook's home page</A> at Princeton, <A HREF="http://www-ccrma.stanford.edu/~gary/">Gary Scavone's home page</A> at Stanford's Center for Computer Research in Music and Acoustics (CCRMA), and the <A HREF="http://www-ccrma.stanford.edu/software/stk">Synthesis ToolKit home page</A>. The ToolKit has been in included in various collections of software. Much of it has also been ported to MAX/MSP on Macintosh computers by Dan Trueman and Luke Dubois of Columbia University, and is distributed as <A HREF="http://music.columbia.edu/PeRColate">PeRColate</A>. Help on real-time sound and MIDI has been provided by Tim Stilson, Bill Putnam, and Gabriel Maldonado.
|
||||
|
||||
<H4>Legal and Ethical Notes</H4>
|
||||
|
||||
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, give us some. If you make compositions with it, put us in the program notes.
|
||||
<P>
|
||||
|
||||
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 administered by the Stanford Office of Technology and Licensing. The good news is that large hunks of the techniques used here are public domain. To avoid subtle legal issues, we will not state what's freely useable here, but we will try to note within the various classes where certain things are likely to be protected by patents.
|
||||
|
||||
|
||||
<H4>Disclaimer</H4>
|
||||
|
||||
STK is free and we do not guarantee anything. We've been hacking on this code for a while now and most of it seems to work pretty well. But, there surely are some bugs floating around. Sometimes things work fine on one computer platform but not so fine on another. FPU overflows and underflows cause <I>very</I> weird behavior which also depends on the particular CPU and OS. Let us know about bugs you find and we'll do our best to correct them.
|
||||
|
||||
*/
|
||||
12
doc/doxygen/maillist.txt
Normal file
12
doc/doxygen/maillist.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
/*! \page maillist The Mail List
|
||||
|
||||
An <A HREF="mailto:stk-request@ccrma.stanford.edu">STK</A> mailing list has been set up to facilitate communication among STK users. Subscribing to this list is your best way of keeping on top of new releases, bug fixes, and various user developments.
|
||||
<P>
|
||||
To join send a message to <A HREF="mailto:stk-request@ccrma.stanford.edu"><stk-request@ccrma.stanford.edu></A>
|
||||
with the contents: <TT>subscribe</TT>
|
||||
|
||||
<P>
|
||||
To be removed from the list send a message to <A HREF="mailto:stk-request@ccrma.stanford.edu"><stk-request@ccrma.stanford.edu></A>
|
||||
with the contents: <TT>unsubscribe</TT>
|
||||
|
||||
*/
|
||||
218
doc/doxygen/skini.txt
Normal file
218
doc/doxygen/skini.txt
Normal file
@@ -0,0 +1,218 @@
|
||||
/*! \page skini Synthesis toolKit Instrument Network Interface (SKINI)
|
||||
|
||||
This describes the latest (version 1.1) implementation of SKINI for the Synthesis Toolkit in C++ (STK) by Perry R. Cook.
|
||||
|
||||
\code
|
||||
Too good to be true?
|
||||
Have control and read it too?
|
||||
A SKINI haiku.
|
||||
\endcode
|
||||
|
||||
Profound thanks to Dan Trueman, Brad Garton, and Gary Scavone for input on this revision. Thanks also to MIDI, the NeXT MusicKit, ZIPI and all the creators and modifiers of these for good bases upon/from which to build and depart.
|
||||
|
||||
\section compatibility MIDI Compatibility
|
||||
|
||||
SKINI was designed to be MIDI compatible wherever possible, and extend MIDI in incremental, then maybe profound ways.
|
||||
|
||||
Differences from MIDI, and motivations, include:
|
||||
|
||||
- Text-based messages are used, with meaningful names wherever possible. This allows any language or system capable of formatted printing to generate SKINI. Similarly, any system capable of reading in a string and turning delimited fields into strings, floats, and ints can consume SKINI for control. More importantly, humans can actually read, and even write if they want, SKINI files and streams. Use an editor and search/replace or macros to change a channel or control number. Load a SKINI score into a spread sheet to apply transformations to time, control parameters, MIDI velocities, etc. Put a monkey on a special typewriter and get your next great work. Life's too short to debug bit/nybble packed variable length mumble messages. Disk space gets cheaper, available bandwidth increases, music takes up so little space and bandwidth compared to video and grapics. Live a little.
|
||||
|
||||
- Floating point numbers are used wherever possible. Note Numbers, Velocities, Controller Values, and Delta and Absolute Times are all represented and scanned as ASCII double-precision floats. MIDI byte values are preserved, so that incoming MIDI bytes from an interface can be put directly into SKINI messages. 60.0 or 60 is middle C, 127.0 or 127 is maximum velocity etc. But, unlike MIDI, 60.5 can cause a 50cent sharp middle C to be played. As with MIDI byte values like velocity, use of the integer and SKINI-added fractional parts is up to the implementor of the algorithm being controlled by SKINI messages. But the extra precision is there to be used or ignored.
|
||||
|
||||
\section why Why SKINI?
|
||||
|
||||
SKINI was designed to be extensable and hackable for a number of applications: imbedded synthesis in a game or VR simulation, scoring and mixing tasks, real-time and non-real time applications which could benefit from controllable sound synthesis, JAVA controlled synthesis, or eventually maybe JAVA synthesis, etc. SKINI is not intended to be "the mother of scorefiles," but since the entire system is based on text representations of names, floats, and ints, converters from one scorefile language to SKINI, or back, should be easily created.
|
||||
|
||||
I am basically a bottom-up designer with an awareness of top-down design ideas, so SKINI above all reflects the needs of my particular research and creative projects as they have arisen and developed. SKINI 1.1 represents a profound advance beyond versions 0.8 and 0.9 (the first versions), future SKINI's might reflect some changes. Compatibility with prior scorefiles will be attempted, but there aren't that many scorefiles out there yet.
|
||||
|
||||
\section messages SKINI Messages
|
||||
|
||||
A basic SKINI message is a line of text. There are only three required fields, the message type (an ASCII name), the time (either delta or absolute), and the channel number. Don't freak out and think that this is MIDI channel 0-15 (which is supported), because 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 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, so a newline means the message is over. Multiple messages are NOT allowed directly on a single line (by use of the ; for example in C). This could be supported, but it isn't in version 1.1.
|
||||
|
||||
Message types include standard MIDI types like NoteOn, NoteOff, ControlChange, etc. MIDI extension message types (messages which look better than MIDI but actually get turned into MIDI-like messages) include LipTension, StringDamping, etc. Non-MIDI message types include SetPath (sets a path for file use later), and OpenReadFile (for streaming, mixing, and applying effects to soundfiles along with synthesis, for example). Other non-MIDI message types include Trilling, HammerOn, etc. (these translate to gestures, behaviors, and contexts for use by intellegent players and instruments using SKINI). Where possible I will still use these as MIDI extension messages, so foot switches, etc. can be used to control them in real time.
|
||||
|
||||
All fields other than type, time, and channel are optional, and the types and useage of the additional fields is defined in the file SKINI.tbl.
|
||||
|
||||
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 be replaced by declaration and assignment statements, preserving the look and behavior of the rest of the code.
|
||||
|
||||
\section cfiles C Files Used To Implement SKINI
|
||||
|
||||
SKINI.cpp is an object which can either open a SKINI file, and successively read and parse lines of text as SKINI strings, or accept strings from another object and parse them. The latter functionality would be used by a socket, pipe, or other connection receiving SKINI messages a line at a time, usually in real time, but not restricted to real time.
|
||||
|
||||
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.
|
||||
|
||||
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 could be dynamically loaded and changed in a future version of SKINI.
|
||||
|
||||
\section parser SKINI Messages and the SKINI Parser:
|
||||
|
||||
The parser isn't all that smart, but neither am I. Here are the basic rules governing a valid SKINI message:
|
||||
|
||||
- If the first (non-delimiter ... see below) character in a SKINI string is '/' that line is treated as a comment and echoed to stdout.
|
||||
|
||||
- If there are no characters on a line, that line is treated as blank and echoed to stdout. Tabs and spaces are treated as non-characters.
|
||||
|
||||
- Spaces, commas, and tabs delimit the fields in a SKINI message line. (We might allow for multiple messages per line later using the semicolon, but probably not. A series of lines with deltaTimes of 0.0 denotes simultaneous events. For read-ability, multiple messages per line doesn't help much, so it's unlikely to be supported later).
|
||||
|
||||
- The first field must be a SKINI message name (like NoteOn). These might become case-insensitive in future versions, so don't plan on exciting clever overloading of names (like noTeOn being different from NoTeON). There can be a number of leading spaces or tabs, but don't exceed 32 or so.
|
||||
|
||||
- The second field must be a time specification in seconds. A time field can be either delta-time (most common and the only one supported in version 0.8), or absolute time. Absolute time messages have an '=' appended to the beginning of the floating point number with no space. So 0.10000 means delta time of 100 ms, while =0.10000 means absolute time of 100 ms. Absolute time messages make most sense in score files, but could also be used for (loose) synchronization in a real-time context. Real-time messages should be time-ordered AND time-correct. That is, if you've sent 100 total delta-time messages of 1.0 seconds, and then send an absolute time message of =90.0 seconds, or if you send two absolute time messages of =100.0 and =90.0 in that order, things will get really fouled up. The SKINI parser doesn't know about time, however. The WvOut device is the master time keeper in the Synthesis Toolkit, so it should be queried to see if absolute time messages are making sense. There's an example of how to do that later in this document. Absolute times are returned by the parser as negative numbers (since negative deltaTimes are not allowed).
|
||||
|
||||
- The third field must be an integer channel number. Don't go crazy and think that this is just MIDI channel 0-15 (which is supported). The channel number is scanned as a long int. Channels 0-15 are in general to be treated as MIDI channels. After that it's wide open. Channels could be socket numbers, machine IDs, serial numbers, or even unique tags for each event in a synthesis. A -1 channel can be used as don't care, omni, or other functions depending on your needs and taste.
|
||||
|
||||
- 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 on the line, but the object using SKINI must take that string apart (retrived by using getRemainderString()) and scan it. Any excess fields are stashed in remainderString.
|
||||
|
||||
\section file A Short SKINI File:
|
||||
|
||||
\code
|
||||
/* Howdy!!! Welcome to SKINI, by P. Cook 1999
|
||||
|
||||
NoteOn 0.000082 2 55 82
|
||||
NoteOff 1.000000 2 55 0
|
||||
NoteOn 0.000082 2 69 82
|
||||
StringDetune 0.100000 2 10
|
||||
StringDetune 0.100000 2 30
|
||||
StringDetune 0.100000 2 50
|
||||
NoteOn 0.000000 2 69 82
|
||||
StringDetune 0.100000 2 40
|
||||
StringDetune 0.100000 2 22
|
||||
StringDetune 0.100000 2 12
|
||||
//
|
||||
StringDamping 0.000100 2 0.0
|
||||
NoteOn 0.000082 2 55 82
|
||||
NoteOn 0.200000 2 62 82
|
||||
NoteOn 0.100000 2 71 82
|
||||
NoteOn 0.200000 2 79 82
|
||||
NoteOff 1.000000 2 55 82
|
||||
NoteOff 0.000000 2 62 82
|
||||
NoteOff 0.000000 2 71 82
|
||||
NoteOff 0.000000 2 79 82
|
||||
StringDamping =4.000000 2 0.0
|
||||
NoteOn 0.000082 2 55 82
|
||||
NoteOn 0.200000 2 62 82
|
||||
NoteOn 0.100000 2 71 82
|
||||
NoteOn 0.200000 2 79 82
|
||||
NoteOff 1.000000 2 55 82
|
||||
NoteOff 0.000000 2 62 82
|
||||
NoteOff 0.000000 2 71 82
|
||||
NoteOff 0.000000 2 79 82
|
||||
\endcode
|
||||
|
||||
\section table The SKINI.tbl File and Message Parsing:
|
||||
|
||||
The SKINI.tbl file contains an array of structures which are accessed by the parser object SKINI.cpp. The struct is:
|
||||
|
||||
\code
|
||||
struct SKINISpec {
|
||||
char messageString[32];
|
||||
long type;
|
||||
long data2;
|
||||
long data3;
|
||||
};
|
||||
\endcode
|
||||
|
||||
so an assignment of one of these structs looks like:
|
||||
|
||||
\code
|
||||
MessageStr$ ,type, data2, data3,
|
||||
\endcode
|
||||
|
||||
<TT>type</TT> is the message type sent back from the SKINI line parser.
|
||||
|
||||
<TT>data<n></TT> is either:
|
||||
|
||||
- NOPE : field not used, specifically, there aren't going to be any more fields on this line. So if there is is NOPE in data2, data3 won't even be checked.
|
||||
|
||||
- SK_INT : byte (actually scanned as 32 bit signed long int). If it's a MIDI data field which is required to be an integer, like a controller number, it's 0-127. Otherwise, get creative with SK_INTs.
|
||||
|
||||
- SK_DBL : double precision floating point. SKINI uses these in the MIDI context for note numbers with micro tuning, velocities, controller values, etc.
|
||||
|
||||
- SK_STR : only valid in final field. This allows (nearly) arbitrary message types to be supported by simply scanning the string to EndOfLine and then passing it to a more intellegent handler. For example, MIDI SYSEX (system exclusive) messages of up to 256 bytes can be read as space-delimited integers into the 1K SK_STR buffer. Longer bulk dumps, soundfiles, etc. should be handled as a new message type pointing to a FileName, Socket, or 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 SKINI.tbl file
|
||||
|
||||
\code
|
||||
{"NoteOff" , __SK_NoteOff_, SK_DBL, SK_DBL},
|
||||
{"NoteOn" , __SK_NoteOn_, SK_DBL, SK_DBL},
|
||||
|
||||
{"ControlChange" , __SK_ControlChange_, SK_INT, SK_DBL},
|
||||
{"Volume" , __SK_ControlChange_, __SK_Volume_ , SK_DBL},
|
||||
|
||||
{"StringDamping" , __SK_ControlChange_, __SK_StringDamping_, SK_DBL},
|
||||
{"StringDetune" , __SK_ControlChange_, __SK_StringDetune_, SK_DBL},
|
||||
\endcode
|
||||
|
||||
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 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 fields would be scanned as double-precision floats and assigned to the byteTwo and byteThree variables of the SKINI parser. The remainder of the line is stashed in the remainderString variable.
|
||||
|
||||
The ControlChange spec is basically the same as NoteOn and NoteOff, but the second data byte is set to an integer (for checking later as to what MIDI control is being changed).
|
||||
|
||||
The Volume spec is a MIDI Extension message, which behaves like a ControlChange message with the controller number set explicitly to the value for MIDI Volume (7). Thus the following two lines would accomplish the same changing of MIDI volume on channel 2:
|
||||
|
||||
\code
|
||||
ControlChange 0.000000 2 7 64.1
|
||||
Volume 0.000000 2 64.1
|
||||
\endcode
|
||||
|
||||
I like the 2nd line better, thus my motivation for SKINI in the first place.
|
||||
|
||||
The StringDamping and StringDetune messages behave the same as the Volume message, but use Control Numbers which aren't specifically nailed-down in MIDI. Note that these Control Numbers are carried around as long ints, so we're not limited to 0-127. If, however, you want to use a MIDI controller to play an instrument, using controller numbers in the 0-127 range might make sense.
|
||||
|
||||
\section using Using SKINI:
|
||||
|
||||
Here's a simple example of code which uses the SKINI object to read a SKINI file and control a single instrument.
|
||||
|
||||
\code
|
||||
instrument = new Mandolin(50.0);
|
||||
score = new SKINI(argv[1]);
|
||||
while(score->getType() > 0) {
|
||||
tempDouble = score->getDelta();
|
||||
if (tempDouble < 0) {
|
||||
tempDouble = - tempDouble;
|
||||
tempDouble = tempDouble - output.getTime();
|
||||
if (tempDouble < 0) {
|
||||
printf("Bad News Here!!! Backward Absolute Time Required.\n");
|
||||
tempDouble = 0.0;
|
||||
}
|
||||
}
|
||||
tempLong = (long) (tempDouble * Stk::sampleRate());
|
||||
for (i=0;i<tempLong;i++) {
|
||||
output.tick(instrument->tick());
|
||||
}
|
||||
tempDouble3 = score->getByteThree();
|
||||
if (score->getType()== __SK_NoteOn_ ) {
|
||||
tempDouble3 *= NORM_MIDI;
|
||||
if (score->getByteThree() == 0) {
|
||||
tempDouble3 = 0.5;
|
||||
instrument->noteOff(tempDouble3);
|
||||
}
|
||||
else {
|
||||
tempLong = (int) score->getByteTwo();
|
||||
tempDouble2 = Midi2Pitch[tempLong];
|
||||
instrument->noteOn(tempDouble2,tempDouble3);
|
||||
}
|
||||
}
|
||||
else if (score->getType() == __SK_NoteOff_) {
|
||||
tempDouble3 *= NORM_MIDI;
|
||||
instrument->noteOff(tempDouble3);
|
||||
}
|
||||
else if (score->getType() == __SK_ControlChange_) {
|
||||
tempLong = score->getByteTwoInt();
|
||||
instrument->controlChange(tempLong,temp3.0);
|
||||
}
|
||||
score->nextMessage();
|
||||
}
|
||||
\endcode
|
||||
|
||||
When the score (SKINI object) object is created from the filename in argv[1], the first valid command line is read from the file and parsed.
|
||||
|
||||
The score->getType() retrieves the messageType. If this is -1, there are no more valid messages in the file and the synthesis loop terminates. Otherwise, the message type is returned.
|
||||
|
||||
getDelta() retrieves the deltaTime until the current message should occur. If this is greater than 0, synthesis occurs until the deltaTime has elapsed. If deltaTime is less than zero, the time is interpreted as absolute time and the output device is queried as to what time it is now. That is used to form a deltaTime, and if it's positive we synthesize. If it's negative, we print an error and pretend this never happened and we hang around hoping to eventually catch up.
|
||||
|
||||
The rest of the code sorts out message types NoteOn, NoteOff (including NoteOn with velocity 0), and ControlChange. The code implicitly takes into account the integer type of the control number, but all other data is treated as double float.
|
||||
|
||||
The last line reads and parses the next message in the file.
|
||||
|
||||
*/
|
||||
29
doc/doxygen/system.txt
Normal file
29
doc/doxygen/system.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
/*! \page system System Requirements
|
||||
|
||||
<B>General</B>
|
||||
<UL>
|
||||
<LI>A MIDI interface to use MIDI input controls. (NOTE: This may be built into the soundcard on your computer.)</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>
|
||||
<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.opensound.com">OSS</A> or <A HREF="http://www.alsa-project.org/">ALSA</A> device drivers for realtime sound output and MIDI input.</LI>
|
||||
</UL>
|
||||
|
||||
<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 to use the precompiled binaries.</LI>
|
||||
<LI>Visual C++ 6.0 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>STK is no longer supported under WindowsNT because DirectX support for NT is minimal. Unless DirectX 5.0 or higher becomes available for NT, STK won't work.</LI>
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
|
||||
*/
|
||||
149
doc/doxygen/tutorial.txt
Normal file
149
doc/doxygen/tutorial.txt
Normal file
@@ -0,0 +1,149 @@
|
||||
/*! \page tutorial Tutorial
|
||||
|
||||
- \ref intro
|
||||
- \ref start
|
||||
- \ref compile
|
||||
- \ref rtvsnonrt
|
||||
|
||||
\section intro Introduction
|
||||
|
||||
First and foremost, the Synthesis ToolKit is a set of C++ classes. That means you need to know some basics about programming in C++ to make use of STK (beyond the example programs we provide). STK's "target audience" is people who:
|
||||
<UL>
|
||||
<LI>already know how to program in C and C++</LI>
|
||||
<LI>want to create audio DSP and/or synthesis programs</LI>
|
||||
<LI>want to save some time by using our unit generators and input/output routines</LI>
|
||||
<LI>know C, but 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.).
|
||||
|
||||
\section start Getting Started
|
||||
|
||||
We'll begin our introduction to the Synthesis ToolKit with a simple sine-wave oscillator program. STK doesn't provide a specific oscillator for sine waves. Instead, it provides a generic waveform oscillator class, WaveLoop, which can load a variety of common file types. In this example, we load a sine "table" from an STK RAW file. The class RtWvOut will send "realtime" samples to the audio output hardware on your computer.
|
||||
|
||||
\code
|
||||
|
||||
// sineosc.cpp
|
||||
|
||||
#include "WaveLoop.h"
|
||||
#include "RtWvOut.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
// Set the global sample rate before creating class instances.
|
||||
Stk::setSampleRate( 44100.0 );
|
||||
|
||||
// Define and load the sine wave file
|
||||
WaveLoop *input = new WaveLoop("sinewave.raw", TRUE);
|
||||
input->setFrequency(440.0);
|
||||
|
||||
// Define and open the default realtime output device for one-channel playback
|
||||
RtWvOut *output = new RtWvOut(1);
|
||||
|
||||
// Play the oscillator for 40000 samples
|
||||
for (int i=0; i<40000; i++) {
|
||||
output->tick( input->tick() );
|
||||
}
|
||||
|
||||
// Clean up
|
||||
delete input;
|
||||
delete output;
|
||||
|
||||
return 0;
|
||||
}
|
||||
\endcode
|
||||
|
||||
WaveLoop is a subclass of WvIn, 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. WvIn provides interpolating, read once ("oneshot") functionality, as well as methods for setting the read rate and read position.
|
||||
|
||||
Nearly all STK classes implement tick() methods which take and/or return sample values. Within the tick() method, the fundamental sample calculations are performed for a given class. Most STK classes consume/generate a single sample per operation and their tick() method takes/returns each sample "by value". In addition, every class implementing a tick() method also provides an overloaded tick() function taking pointer and size arguments which can be used for vectorized computations.
|
||||
|
||||
The WvIn and WvOut classes support multi-channel sample frames. To distinguish single-sample frame operations from multi-channel frame operations, these classes also implement tickFrame() functions. When a tick() 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 base class. Stk provides a static sample rate which 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 22050 Hz.
|
||||
|
||||
Another primary concept that is somewhat obscurred in this example concerns the data format in which sample values are passed and received. Audio and control signals throughout STK use a floating-point data type, the exact precision of which can be controlled via the MY_FLOAT \#define statement in Stk.h. 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, and the WvIn and WvOut classes and subclasses scale appropriately for DAC or soundfile input and output.
|
||||
|
||||
Finally, STK has some basic C++ error handling functionality built in. Classes which access files and/or hardware are most prone to runtime errors. To properly "catch" such errors, the above example should be rewritten as shown below.
|
||||
|
||||
\code
|
||||
// sineosc.cpp
|
||||
|
||||
#include "WaveLoop.h"
|
||||
#include "RtWvOut.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
// Set the global sample rate before creating class instances.
|
||||
Stk::setSampleRate( 44100.0 );
|
||||
|
||||
WaveLoop *input = 0;
|
||||
RtWvOut *output = 0;
|
||||
|
||||
try {
|
||||
// Define and load the sine wave file
|
||||
input = new WaveLoop( "sinewave.raw", TRUE );
|
||||
|
||||
// Define and open the default realtime output device for one-channel playback
|
||||
output = new RtWvOut(1);
|
||||
}
|
||||
catch (StkError &) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
input->setFrequency(440.0);
|
||||
|
||||
// Play the oscillator for 40000 samples
|
||||
for (int i=0; i<40000; i++) {
|
||||
try {
|
||||
output->tick(input->tick());
|
||||
}
|
||||
catch (StkError &) {
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
|
||||
cleanup:
|
||||
delete input;
|
||||
delete output;
|
||||
|
||||
return 0;
|
||||
}
|
||||
\endcode
|
||||
|
||||
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.
|
||||
|
||||
\section compile Compiling
|
||||
|
||||
\subsection compileLinux Linux
|
||||
|
||||
In general, you will probably want to use a <TT>Makefile</TT> for your STK programs and projects. For this particular program, however, the following will suffice (on a linux system):
|
||||
\code
|
||||
g++ -Wall -D__LINUX_OSS__ -D__LITTLE_ENDIAN__ -o sineosc Stk.cpp WvIn.cpp WaveLoop.cpp WvOut.cpp RtWvOut.cpp RtAudio.cpp sineosc.cpp -lpthread
|
||||
\endcode
|
||||
|
||||
This assumes you've set up a directory that includes the files <TT>sineosc.cpp</TT>, the rawwave file <TT>sinewave.raw</TT>, and the header and source files for the classes Stk, WvIn, WaveLoop, WvOut, RtWvOut, and RtAudio. There are other, more convenient, means for structuring projects that will be discussed later.
|
||||
|
||||
Most linux systems currently come installed with the OSS audio hardware drivers. If your system instead has ALSA audio drivers installed and you wish to make use of native ALSA API calls, a link to the ALSA library must be specified in the above compile statement (<TT>-lasound</TT>) and the preprocessor definition should instead be <TT>__LINUX_ALSA__</TT>.
|
||||
|
||||
\subsection compileIrix Irix
|
||||
|
||||
The irix (SGI) and linux operating systems are both flavors of unix and thus behave similarly. Making the same assumptions as in the linux case, the following compile statement should work:
|
||||
\code
|
||||
CC -Wall -D__IRIX_AL__ -o sineosc Stk.cpp WvIn.cpp WaveLoop.cpp WvOut.cpp RtWvOut.cpp RtAudio.cpp sineosc.cpp -lpthread
|
||||
\endcode
|
||||
|
||||
\subsection compileWin Windows
|
||||
|
||||
I have personally only worked with Visual C++ when compiling programs under windoze. I'll assume you've become familiar with Visual C+ and don't need a tutorial on its particular idiosyncrasies. In creating the VC++ project, add the Stk, WvIn, WaveLoop, WvOut, RtWvOut, and RtAudio class files, as well as the <TT>sineosc.cpp</TT> and <TT>sinewave.raw</TT> files. You will also need to link to the DirectSound library (<TT>dsound.lib</TT>), select the multithreaded library, and provide the <TT>__WINDOWS_DS__</TT> and <TT>__LITTLE_ENDIAN__</TT> preprocessor definitions.
|
||||
|
||||
|
||||
\section rtvsnonrt "Realtime" vs. "Non-Realtime"
|
||||
|
||||
Most of the Synthesis ToolKit classes are platform independent. That means that they should compile on any reasonably current C++ compiler. The functionality needed for realtime audio and MIDI input/output, as well as realtime control message acquistion, is inherently platform and operating-system (OS) <I>dependent</I>. STK classes which require specific platform/OS support include RtAudio, RtWvOut, RtWvIn, RtDuplex, RtMidi, TcpWvIn, TcpWvOut, Socket, and Thread. These classes currently can only be compiled on Linux, Irix, and Windows (except Windows NT) systems using the <TT>__LINUX_OSS__</TT>, <TT>__LINUX_ALSA__</TT>, <TT>__IRIX_AL__</TT>, or <TT>__WINDOWS_DS__</TT> preprocessor definitions.
|
||||
|
||||
Without the "realtime" classes, it is still possible to read SKINI scorefiles for control input and to read and write to/from a variety of audio file formats (WAV, SND, AIFF, MAT-file, and RAW). If compiling for a "little-endian" host processor, the <TT>__LITTLE_ENDIAN__</TT> preprocessor definition should be provided.
|
||||
|
||||
\section continued To Be Continued ...
|
||||
|
||||
*/
|
||||
183
doc/doxygen/usage.txt
Normal file
183
doc/doxygen/usage.txt
Normal file
@@ -0,0 +1,183 @@
|
||||
/*! \page usage Usage Documentation
|
||||
|
||||
- \ref directory
|
||||
- \ref compiling
|
||||
- \ref control
|
||||
- \ref instruments
|
||||
- \ref nort
|
||||
- \ref rt
|
||||
- \ref tcl
|
||||
- \ref midi
|
||||
|
||||
<HR>
|
||||
|
||||
\section directory Directory Structure:
|
||||
|
||||
The top level distribution contains the following directories:
|
||||
|
||||
<UL>
|
||||
<LI> The <I><B>src</B></I> directory contains the source .cpp files for almost all the STK unit generator and algorithm classes.</LI><P>
|
||||
|
||||
<LI> The <I><B>include</B></I> directory contains the header files for almost all the STK unit generator and algorithm classes.</LI><P>
|
||||
|
||||
<LI> The <I><B>rawwaves</B></I> directory contains various raw, monophonic, 16-bit, big-endian soundfiles used with the STK classes.</LI><P>
|
||||
|
||||
<LI> The <I><B>doc</B></I> directory contains documentation about STK.</LI><P>
|
||||
|
||||
<LI> The <I><B>projects</B></I> directory contains various demo and example STK programs.</LI><P>
|
||||
</UL>
|
||||
|
||||
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>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>examples</B></I> project contains several simple programs which demonstrate audio input/output, as well as the use of the audio internet streaming classes.</LI>
|
||||
</OL>
|
||||
|
||||
\section compiling Compiling:
|
||||
|
||||
<UL>
|
||||
<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, 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>
|
||||
|
||||
<LI><B>Linux:</B> Realtime support is enabled with either the <TT>__LINUX_OSS__</TT> or <TT>__LINUX_ALSA__</TT> preprocessor definitions, which are used to select the underlying audio/MIDI system API. Realtime programs must also link with the <TT>pthread</TT> library. When using the ALSA API, it is also necessary to link with the <TT>asound</TT> library. In addition, the <TT>__LITTLE_ENDIAN__</TT> preprocessor definition is necessary if compiling on a little-endian system. Assuming your system has the <A HREF="http://gnu.cetcol.net.co/">GNU</A> Makefile utilities installed, typing <TT>make</TT> within a particular project directory will initiate the compilation process. The <TT>Makefile</TT> will have to be modified to change the default audio/MIDI system API and for big-endian processors. Special support exists under Linux for the MIDIator serial MIDI device, enabled using the __MIDIATOR__ preprocessor definition (together with either the __LINUX_ALSA__ or __LINUX_OSS__ definitions). See the README-Linux file for further system configuration information.</LI>
|
||||
|
||||
<LI><B>SGI:</B> Realtime support is enabled with the <TT>__IRIX_AL__</TT> preprocessor definition and linkage with the <TT>audio</TT>, <TT>md</TT>, and <TT>pthread</TT> libraries. If your system has the <A HREF="http://gnu.cetcol.net.co/">GNU</A> Makefile utilities installed, typing <TT>make</TT> (or <TT>gmake</TT>) within a particular project directory will initiate the compilation process. If your system does not have the GNU Makefile utilities, you should first try to download and install them. If this is not possible, a generic Makefile is provided with the <I><B>demo</B></I> project (Makefile.sgi). It can be invoked by typing <TT>make -f Makefile.sgi</TT> within that project directory. STK 4.0 is confirmed to compile using CC version 7.30. There may be problems with old compiler versions.</LI>
|
||||
|
||||
<LI><B>Windows95/98/2000/XP:</B> Realtime support is enabled with the <TT>__WINDOWS_DS__</TT> preprocessor definition and linkage with the <TT>dsound.lib</TT>, <TT>winmm.lib</TT>, and <TT>Wsock32.lib</TT> libraries. In addition, the <TT>__LITTLE_ENDIAN__</TT> preprocessor definition is necessary for all Windows systems. A distribution of the release is available with precompiled binaries 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++ 6.0 project file 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>WindowsNT:</B> I've given up trying to make things work under NT. You'll have to switch to Windows 2000 (which does seem to work).</LI>
|
||||
</UL>
|
||||
|
||||
|
||||
\section control Control Data:
|
||||
|
||||
All STK programs in this distribution take input control data in the form of <A HREF="skini.html">SKINI</A> or MIDI messages only. The Messager class unifies the various means of acquiring control data under a single, easy to use set of functions. The way that SKINI messages can be sent to the programs is dependent upon the operating system in use, as well as whether the program is running in realtime or not. In general, it is possible to:
|
||||
|
||||
<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="http://dev.scriptics.com">Tcl/Tk</A> graphical user interfaces (GUI) are provided with this distribution which 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 instruments Demo: STK Instruments
|
||||
|
||||
The <I><B>demo</B></I> project demonstrates the behavior of all the distributed STK instruments. The instruments available with this release include:
|
||||
<UL>
|
||||
<LI>Clarinet: Pretty good physical model of the clarinet</LI>
|
||||
<LI>BlowHole: A clarinet physical model with one tonehole and one register vent</LI>
|
||||
<LI>Saxofony: A psuedo-conical bore reed instrument which sometimes sounds like a saxophone</LI>
|
||||
<LI>Flute: Pretty good physical model of the flute</LI>
|
||||
<LI>Brass: Not so bad physical model of a brass instrument</LI>
|
||||
<LI>BlowBotl: A basic helmholtz resonator and air jet model</LI>
|
||||
<LI>Bowed: Not hideous physical model of a bowed string instrument</LI>
|
||||
<LI>Plucked: Yer basic plucked string physical model</LI>
|
||||
<LI>StifKarp: A simple plucked, stiff string physical model</LI>
|
||||
<LI>Sitar: A simple sitar/plucked string physical model</LI>
|
||||
<LI>Mandolin: Two-string mandolin physical model</LI>
|
||||
<LI>Rhodey: Rhodes-like electric piano FM synthesis model</LI>
|
||||
<LI>Wurley: Wurlitzer-like electric piano FM synthesis model</LI>
|
||||
<LI>TubeBell: FM synthesis model</LI>
|
||||
<LI>HevyMetl: Distorted synthesizer FM synthesis model</LI>
|
||||
<LI>PercFlut: Percussive flute-like FM synthesis model</LI>
|
||||
<LI>BeeThree: Cheezy organ FM synthesis model</LI>
|
||||
<LI>Moog: Swept filter sampler</LI>
|
||||
<LI>FMVoices: Three-formant FM voice synthesis</LI>
|
||||
<LI>Resonate: Noise through a BiQuad filter</LI>
|
||||
<LI>Drummer: Sampling synthesis</LI>
|
||||
<LI>BandedWG: Banded waveguide meta-object for bowed bars, tibetan bowls, etc.</LI>
|
||||
<LI>Shakers: Various stochastic event models of shaker instruments</LI>
|
||||
<LI>ModalBar: Various four-resonance presets (marimba, vibraphone, etc...)</LI>
|
||||
<LI>Mesh2D: Two-dimensional, rectilinear digital waveguide mesh</LI>
|
||||
</UL>
|
||||
|
||||
\section nort Demo: Non-Realtime Use
|
||||
|
||||
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>demo</B></I> program, typing:
|
||||
|
||||
\code
|
||||
cat scores/bookert.ski | demo BeeThree -w myfile.wav
|
||||
\endcode
|
||||
|
||||
or (on WindowsXX and/or Unix)
|
||||
|
||||
\code
|
||||
demo BeeThree -w myfile.wav < 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". 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, SGI, and Windows95/98/2000/XP operating systems. STK realtime SKINI control input via piping is possible under Linux, SGI, 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>demo</B></I> program is invoked as:
|
||||
|
||||
\code
|
||||
demo instrument flags
|
||||
\endcode
|
||||
|
||||
where instruments include those described above and flags can be any or all of:
|
||||
<UL>
|
||||
<LI><I>-or</I> for realtime audio output,</LI>
|
||||
<LI><I>-ow <file name></I> for WAV soundfile output,</LI>
|
||||
<LI><I>-os <file name></I> for SND (AU) soundfile output,</LI>
|
||||
<LI><I>-om <file name></I> for MAT-file output,</LI>
|
||||
<LI><I>-ip</I> or <I>-is</I> for realtime SKINI control input via piping or socketing, respectively,</LI>
|
||||
<LI><I>-im <file name></I> for MIDI control input</LI>
|
||||
</UL>
|
||||
The <-ip> and <-is> flags must be used when piping or socketing realtime SKINI control data to an STK program. The <-im> 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>demo</B></I> program, typing:
|
||||
|
||||
\code
|
||||
cat scores/bookert.ski | demo BeeThree -or
|
||||
\endcode
|
||||
|
||||
or (on WindowsXX and/or Unix)
|
||||
|
||||
\code
|
||||
demo BeeThree -or < 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>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="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 wish80 executable to the name <I>wish</I>). The PhysicalDemo script just implements the following command-line sequence:
|
||||
|
||||
\code
|
||||
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
|
||||
demo Clarinet -or -im
|
||||
\endcode
|
||||
|
||||
*/
|
||||
76
doc/html/ADSR_8h-source.html
Normal file
76
doc/html/ADSR_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>ADSR.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00016 <font class="comment">/***************************************************/</font>
|
||||
00017
|
||||
00018 <font class="preprocessor">#if !defined(__ADSR_H)</font>
|
||||
00019 <font class="preprocessor"></font><font class="preprocessor">#define __ADSR_H</font>
|
||||
00020 <font class="preprocessor"></font>
|
||||
00021 <font class="preprocessor">#include "Envelope.h"</font>
|
||||
00022
|
||||
00023 <font class="keyword">class </font><a class="code" href="classADSR.html">ADSR</a> : <font class="keyword">public</font> <a class="code" href="classEnvelope.html">Envelope</a>
|
||||
00024 {
|
||||
00025 <font class="keyword">public</font>:
|
||||
00026
|
||||
00028 <font class="keyword">enum</font> { ATTACK, DECAY, SUSTAIN, RELEASE, DONE };
|
||||
00029
|
||||
00031 <a class="code" href="classADSR.html#a0">ADSR</a>(<font class="keywordtype">void</font>);
|
||||
00032
|
||||
00034 <a class="code" href="classADSR.html#a1">~ADSR</a>(<font class="keywordtype">void</font>);
|
||||
00035
|
||||
00037 <font class="keywordtype">void</font> <a class="code" href="classEnvelope.html#a2">keyOn</a>(<font class="keywordtype">void</font>);
|
||||
00038
|
||||
00040 <font class="keywordtype">void</font> <a class="code" href="classEnvelope.html#a3">keyOff</a>(<font class="keywordtype">void</font>);
|
||||
00041
|
||||
00043 <font class="keywordtype">void</font> <a class="code" href="classADSR.html#a4">setAttackRate</a>(MY_FLOAT aRate);
|
||||
00044
|
||||
00046 <font class="keywordtype">void</font> <a class="code" href="classADSR.html#a5">setDecayRate</a>(MY_FLOAT aRate);
|
||||
00047
|
||||
00049 <font class="keywordtype">void</font> <a class="code" href="classADSR.html#a6">setSustainLevel</a>(MY_FLOAT aLevel);
|
||||
00050
|
||||
00052 <font class="keywordtype">void</font> <a class="code" href="classADSR.html#a7">setReleaseRate</a>(MY_FLOAT aRate);
|
||||
00053
|
||||
00055 <font class="keywordtype">void</font> <a class="code" href="classADSR.html#a8">setAttackTime</a>(MY_FLOAT aTime);
|
||||
00056
|
||||
00058 <font class="keywordtype">void</font> <a class="code" href="classADSR.html#a9">setDecayTime</a>(MY_FLOAT aTime);
|
||||
00059
|
||||
00061 <font class="keywordtype">void</font> <a class="code" href="classADSR.html#a10">setReleaseTime</a>(MY_FLOAT aTime);
|
||||
00062
|
||||
00064 <font class="keywordtype">void</font> <a class="code" href="classADSR.html#a11">setAllTimes</a>(MY_FLOAT aTime, MY_FLOAT dTime, MY_FLOAT sLevel, MY_FLOAT rTime);
|
||||
00065
|
||||
00067 <font class="keywordtype">void</font> <a class="code" href="classEnvelope.html#a6">setTarget</a>(MY_FLOAT aTarget);
|
||||
00068
|
||||
00070 <font class="keywordtype">int</font> <a class="code" href="classEnvelope.html#a8">getState</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00071
|
||||
00073 <font class="keywordtype">void</font> <a class="code" href="classEnvelope.html#a7">setValue</a>(MY_FLOAT aValue);
|
||||
00074
|
||||
00076 MY_FLOAT <a class="code" href="classEnvelope.html#a9">tick</a>(<font class="keywordtype">void</font>);
|
||||
00077
|
||||
00079 MY_FLOAT *<a class="code" href="classEnvelope.html#a9">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00080
|
||||
00081 <font class="keyword">protected</font>:
|
||||
00082 MY_FLOAT attackRate;
|
||||
00083 MY_FLOAT decayRate;
|
||||
00084 MY_FLOAT sustainLevel;
|
||||
00085 MY_FLOAT releaseRate;
|
||||
00086 };
|
||||
00087
|
||||
00088 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
87
doc/html/BandedWG_8h-source.html
Normal file
87
doc/html/BandedWG_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>BandedWG.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00030 <font class="comment">/***************************************************/</font>
|
||||
00031
|
||||
00032 <font class="preprocessor">#if !defined(__BANDEDWG_H)</font>
|
||||
00033 <font class="preprocessor"></font><font class="preprocessor">#define __BANDEDWG_H</font>
|
||||
00034 <font class="preprocessor"></font>
|
||||
00035 <font class="preprocessor">#define MAX_BANDED_MODES 17</font>
|
||||
00036 <font class="preprocessor"></font>
|
||||
00037 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00038 <font class="preprocessor">#include "Delay.h"</font>
|
||||
00039 <font class="preprocessor">#include "BowTabl.h"</font>
|
||||
00040 <font class="preprocessor">#include "ADSR.h"</font>
|
||||
00041 <font class="preprocessor">#include "BiQuad.h"</font>
|
||||
00042
|
||||
00043 <font class="keyword">class </font><a class="code" href="classBandedWG.html">BandedWG</a> : <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00044 {
|
||||
00045 <font class="keyword">public</font>:
|
||||
00047 <a class="code" href="classBandedWG.html#a0">BandedWG</a>();
|
||||
00048
|
||||
00050 <a class="code" href="classBandedWG.html#a1">~BandedWG</a>();
|
||||
00051
|
||||
00053 <font class="keywordtype">void</font> <a class="code" href="classBandedWG.html#a2">clear</a>();
|
||||
00054
|
||||
00056 <font class="keywordtype">void</font> <a class="code" href="classBandedWG.html#a3">setStrikePosition</a>(MY_FLOAT position);
|
||||
00057
|
||||
00059 <font class="keywordtype">void</font> <a class="code" href="classBandedWG.html#a4">setPreset</a>(<font class="keywordtype">int</font> preset);
|
||||
00060
|
||||
00062 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00063
|
||||
00065 <font class="keywordtype">void</font> <a class="code" href="classBandedWG.html#a6">startBowing</a>(MY_FLOAT amplitude, MY_FLOAT rate);
|
||||
00066
|
||||
00068 <font class="keywordtype">void</font> <a class="code" href="classBandedWG.html#a7">stopBowing</a>(MY_FLOAT rate);
|
||||
00069
|
||||
00071 <font class="keywordtype">void</font> <a class="code" href="classBandedWG.html#a8">pluck</a>(MY_FLOAT amp);
|
||||
00072
|
||||
00074 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00075
|
||||
00077 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00078
|
||||
00080 MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>();
|
||||
00081
|
||||
00083 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a8">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value);
|
||||
00084
|
||||
00085 <font class="keyword">protected</font>:
|
||||
00086
|
||||
00087 <font class="keywordtype">bool</font> doPluck;
|
||||
00088 <font class="keywordtype">bool</font> trackVelocity;
|
||||
00089 <font class="keywordtype">int</font> nModes;
|
||||
00090 <font class="keywordtype">int</font> presetModes;
|
||||
00091 <a class="code" href="classBowTabl.html">BowTabl</a> *bowTabl;
|
||||
00092 <a class="code" href="classADSR.html">ADSR</a> *adsr;
|
||||
00093 <a class="code" href="classBiQuad.html">BiQuad</a> *bandpass;
|
||||
00094 <a class="code" href="classDelay.html">Delay</a> *delay;
|
||||
00095 MY_FLOAT maxVelocity;
|
||||
00096 MY_FLOAT modes[MAX_BANDED_MODES];
|
||||
00097 MY_FLOAT freakency;
|
||||
00098 MY_FLOAT baseGain;
|
||||
00099 MY_FLOAT gains[MAX_BANDED_MODES];
|
||||
00100 MY_FLOAT integrationConstant;
|
||||
00101 MY_FLOAT bowVelocity;
|
||||
00102 MY_FLOAT bowTarget;
|
||||
00103 MY_FLOAT bowPosition;
|
||||
00104 <font class="keywordtype">int</font> strikePosition;
|
||||
00105
|
||||
00106 };
|
||||
00107
|
||||
00108 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
41
doc/html/BeeThree_8h-source.html
Normal file
41
doc/html/BeeThree_8h-source.html
Normal file
@@ -0,0 +1,41 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>BeeThree.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00033 <font class="comment">/***************************************************/</font>
|
||||
00034
|
||||
00035 <font class="preprocessor">#if !defined(__BEETHREE_H)</font>
|
||||
00036 <font class="preprocessor"></font><font class="preprocessor">#define __BEETHREE_H</font>
|
||||
00037 <font class="preprocessor"></font>
|
||||
00038 <font class="preprocessor">#include "FM.h"</font>
|
||||
00039
|
||||
00040 <font class="keyword">class </font><a class="code" href="classBeeThree.html">BeeThree</a> : <font class="keyword">public</font> <a class="code" href="classFM.html">FM</a>
|
||||
00041 {
|
||||
00042 <font class="keyword">public</font>:
|
||||
00044 <a class="code" href="classBeeThree.html#a0">BeeThree</a>();
|
||||
00045
|
||||
00047 <a class="code" href="classBeeThree.html#a1">~BeeThree</a>();
|
||||
00048
|
||||
00050 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00051
|
||||
00053 MY_FLOAT <a class="code" href="classFM.html#a14">tick</a>();
|
||||
00054 };
|
||||
00055
|
||||
00056 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
70
doc/html/BiQuad_8h-source.html
Normal file
70
doc/html/BiQuad_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>BiQuad.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00013 <font class="comment">/***************************************************/</font>
|
||||
00014
|
||||
00015 <font class="preprocessor">#if !defined(__BIQUAD_H)</font>
|
||||
00016 <font class="preprocessor"></font><font class="preprocessor">#define __BIQUAD_H</font>
|
||||
00017 <font class="preprocessor"></font>
|
||||
00018 <font class="preprocessor">#include "Filter.h"</font>
|
||||
00019
|
||||
00020 <font class="keyword">class </font><a class="code" href="classBiQuad.html">BiQuad</a> : <font class="keyword">protected</font> <a class="code" href="classFilter.html">Filter</a>
|
||||
00021 {
|
||||
00022 <font class="keyword">public</font>:
|
||||
00023
|
||||
00025 <a class="code" href="classBiQuad.html#a0">BiQuad</a>();
|
||||
00026
|
||||
00028 <font class="keyword">virtual</font> <a class="code" href="classBiQuad.html#a1">~BiQuad</a>();
|
||||
00029
|
||||
00031 <font class="keywordtype">void</font> <a class="code" href="classFilter.html#a3">clear</a>(<font class="keywordtype">void</font>);
|
||||
00032
|
||||
00034 <font class="keywordtype">void</font> <a class="code" href="classBiQuad.html#a3">setB0</a>(MY_FLOAT b0);
|
||||
00035
|
||||
00037 <font class="keywordtype">void</font> <a class="code" href="classBiQuad.html#a4">setB1</a>(MY_FLOAT b1);
|
||||
00038
|
||||
00040 <font class="keywordtype">void</font> <a class="code" href="classBiQuad.html#a5">setB2</a>(MY_FLOAT b2);
|
||||
00041
|
||||
00043 <font class="keywordtype">void</font> <a class="code" href="classBiQuad.html#a6">setA1</a>(MY_FLOAT a1);
|
||||
00044
|
||||
00046 <font class="keywordtype">void</font> <a class="code" href="classBiQuad.html#a7">setA2</a>(MY_FLOAT a2);
|
||||
00047
|
||||
00049
|
||||
00060 <font class="keywordtype">void</font> <a class="code" href="classBiQuad.html#a8">setResonance</a>(MY_FLOAT frequency, MY_FLOAT radius, <font class="keywordtype">bool</font> normalize = FALSE);
|
||||
00061
|
||||
00063
|
||||
00069 <font class="keywordtype">void</font> <a class="code" href="classBiQuad.html#a9">setNotch</a>(MY_FLOAT frequency, MY_FLOAT radius);
|
||||
00070
|
||||
00072
|
||||
00078 <font class="keywordtype">void</font> <a class="code" href="classBiQuad.html#a10">setEqualGainZeroes</a>();
|
||||
00079
|
||||
00081
|
||||
00085 <font class="keywordtype">void</font> <a class="code" href="classFilter.html#a7">setGain</a>(MY_FLOAT theGain);
|
||||
00086
|
||||
00088 MY_FLOAT <a class="code" href="classFilter.html#a8">getGain</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00089
|
||||
00091 MY_FLOAT <a class="code" href="classFilter.html#a9">lastOut</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00092
|
||||
00094 MY_FLOAT <a class="code" href="classFilter.html#a10">tick</a>(MY_FLOAT sample);
|
||||
00095
|
||||
00097 MY_FLOAT *<a class="code" href="classFilter.html#a10">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00098 };
|
||||
00099
|
||||
00100 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
72
doc/html/BlowBotl_8h-source.html
Normal file
72
doc/html/BlowBotl_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>BlowBotl.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00017 <font class="comment">/***************************************************/</font>
|
||||
00018
|
||||
00019 <font class="preprocessor">#if !defined(__BOTTLE_H)</font>
|
||||
00020 <font class="preprocessor"></font><font class="preprocessor">#define __BOTTLE_H</font>
|
||||
00021 <font class="preprocessor"></font>
|
||||
00022 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00023 <font class="preprocessor">#include "JetTabl.h"</font>
|
||||
00024 <font class="preprocessor">#include "BiQuad.h"</font>
|
||||
00025 <font class="preprocessor">#include "PoleZero.h"</font>
|
||||
00026 <font class="preprocessor">#include "Noise.h"</font>
|
||||
00027 <font class="preprocessor">#include "ADSR.h"</font>
|
||||
00028 <font class="preprocessor">#include "WaveLoop.h"</font>
|
||||
00029
|
||||
00030 <font class="keyword">class </font><a class="code" href="classBlowBotl.html">BlowBotl</a> : <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00031 {
|
||||
00032 <font class="keyword">public</font>:
|
||||
00034 <a class="code" href="classBlowBotl.html#a0">BlowBotl</a>();
|
||||
00035
|
||||
00037 <a class="code" href="classBlowBotl.html#a1">~BlowBotl</a>();
|
||||
00038
|
||||
00040 <font class="keywordtype">void</font> <a class="code" href="classBlowBotl.html#a2">clear</a>();
|
||||
00041
|
||||
00043 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00044
|
||||
00046 <font class="keywordtype">void</font> <a class="code" href="classBlowBotl.html#a4">startBlowing</a>(MY_FLOAT amplitude, MY_FLOAT rate);
|
||||
00047
|
||||
00049 <font class="keywordtype">void</font> <a class="code" href="classBlowBotl.html#a5">stopBlowing</a>(MY_FLOAT rate);
|
||||
00050
|
||||
00052 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00053
|
||||
00055 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00056
|
||||
00058 MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>();
|
||||
00059
|
||||
00061 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a8">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value);
|
||||
00062
|
||||
00063 <font class="keyword">protected</font>:
|
||||
00064 <a class="code" href="classJetTabl.html">JetTabl</a> *jetTable;
|
||||
00065 <a class="code" href="classBiQuad.html">BiQuad</a> *resonator;
|
||||
00066 <a class="code" href="classPoleZero.html">PoleZero</a> *dcBlock;
|
||||
00067 <a class="code" href="classNoise.html">Noise</a> *noise;
|
||||
00068 <a class="code" href="classADSR.html">ADSR</a> *adsr;
|
||||
00069 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
|
||||
00070 MY_FLOAT maxPressure;
|
||||
00071 MY_FLOAT noiseGain;
|
||||
00072 MY_FLOAT vibratoGain;
|
||||
00073 MY_FLOAT outputGain;
|
||||
00074
|
||||
00075 };
|
||||
00076
|
||||
00077 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
84
doc/html/BlowHole_8h-source.html
Normal file
84
doc/html/BlowHole_8h-source.html
Normal file
@@ -0,0 +1,84 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>BlowHole.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00034 <font class="comment">/***************************************************/</font>
|
||||
00035
|
||||
00036 <font class="preprocessor">#if !defined(__BLOWHOLE_H)</font>
|
||||
00037 <font class="preprocessor"></font><font class="preprocessor">#define __BLOWHOLE_H</font>
|
||||
00038 <font class="preprocessor"></font>
|
||||
00039 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00040 <font class="preprocessor">#include "DelayL.h"</font>
|
||||
00041 <font class="preprocessor">#include "ReedTabl.h"</font>
|
||||
00042 <font class="preprocessor">#include "OneZero.h"</font>
|
||||
00043 <font class="preprocessor">#include "PoleZero.h"</font>
|
||||
00044 <font class="preprocessor">#include "Envelope.h"</font>
|
||||
00045 <font class="preprocessor">#include "Noise.h"</font>
|
||||
00046 <font class="preprocessor">#include "WaveLoop.h"</font>
|
||||
00047
|
||||
00048 <font class="keyword">class </font><a class="code" href="classBlowHole.html">BlowHole</a> : <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00049 {
|
||||
00050 <font class="keyword">public</font>:
|
||||
00052 <a class="code" href="classBlowHole.html#a0">BlowHole</a>(MY_FLOAT lowestFrequency);
|
||||
00053
|
||||
00055 <a class="code" href="classBlowHole.html#a1">~BlowHole</a>();
|
||||
00056
|
||||
00058 <font class="keywordtype">void</font> <a class="code" href="classBlowHole.html#a2">clear</a>();
|
||||
00059
|
||||
00061 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00062
|
||||
00064 <font class="keywordtype">void</font> <a class="code" href="classBlowHole.html#a4">setTonehole</a>(MY_FLOAT newValue);
|
||||
00065
|
||||
00067 <font class="keywordtype">void</font> <a class="code" href="classBlowHole.html#a5">setVent</a>(MY_FLOAT newValue);
|
||||
00068
|
||||
00070 <font class="keywordtype">void</font> <a class="code" href="classBlowHole.html#a6">startBlowing</a>(MY_FLOAT amplitude, MY_FLOAT rate);
|
||||
00071
|
||||
00073 <font class="keywordtype">void</font> <a class="code" href="classBlowHole.html#a7">stopBlowing</a>(MY_FLOAT rate);
|
||||
00074
|
||||
00076 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00077
|
||||
00079 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00080
|
||||
00082 MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>();
|
||||
00083
|
||||
00085 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a8">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value);
|
||||
00086
|
||||
00087 <font class="keyword">protected</font>:
|
||||
00088 <a class="code" href="classDelayL.html">DelayL</a> *delays[3];
|
||||
00089 <a class="code" href="classReedTabl.html">ReedTabl</a> *reedTable;
|
||||
00090 <a class="code" href="classOneZero.html">OneZero</a> *filter;
|
||||
00091 <a class="code" href="classPoleZero.html">PoleZero</a> *tonehole;
|
||||
00092 <a class="code" href="classPoleZero.html">PoleZero</a> *vent;
|
||||
00093 <a class="code" href="classEnvelope.html">Envelope</a> *envelope;
|
||||
00094 <a class="code" href="classNoise.html">Noise</a> *noise;
|
||||
00095 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
|
||||
00096 <font class="keywordtype">long</font> length;
|
||||
00097 MY_FLOAT scatter;
|
||||
00098 MY_FLOAT th_coeff;
|
||||
00099 MY_FLOAT r_th;
|
||||
00100 MY_FLOAT rh_coeff;
|
||||
00101 MY_FLOAT rh_gain;
|
||||
00102 MY_FLOAT outputGain;
|
||||
00103 MY_FLOAT noiseGain;
|
||||
00104 MY_FLOAT vibratoGain;
|
||||
00105
|
||||
00106 };
|
||||
00107
|
||||
00108 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
56
doc/html/BowTabl_8h-source.html
Normal file
56
doc/html/BowTabl_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>BowTabl.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00010 <font class="comment">/***************************************************/</font>
|
||||
00011
|
||||
00012 <font class="preprocessor">#if !defined(__BOWTABL_H)</font>
|
||||
00013 <font class="preprocessor"></font><font class="preprocessor">#define __BOWTABL_H</font>
|
||||
00014 <font class="preprocessor"></font>
|
||||
00015 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00016
|
||||
00017 <font class="keyword">class </font><a class="code" href="classBowTabl.html">BowTabl</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00018 {
|
||||
00019 <font class="keyword">public</font>:
|
||||
00021 <a class="code" href="classBowTabl.html#a0">BowTabl</a>();
|
||||
00022
|
||||
00024 <a class="code" href="classBowTabl.html#a1">~BowTabl</a>();
|
||||
00025
|
||||
00027
|
||||
00033 <font class="keywordtype">void</font> <a class="code" href="classBowTabl.html#a2">setOffset</a>(MY_FLOAT aValue);
|
||||
00034
|
||||
00036
|
||||
00040 <font class="keywordtype">void</font> <a class="code" href="classBowTabl.html#a3">setSlope</a>(MY_FLOAT aValue);
|
||||
00041
|
||||
00043 MY_FLOAT <a class="code" href="classBowTabl.html#a4">lastOut</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00044
|
||||
00046
|
||||
00050 MY_FLOAT <a class="code" href="classBowTabl.html#a5">tick</a>(<font class="keyword">const</font> MY_FLOAT input);
|
||||
00051
|
||||
00053 MY_FLOAT *<a class="code" href="classBowTabl.html#a5">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00054
|
||||
00055 <font class="keyword">protected</font>:
|
||||
00056 MY_FLOAT offSet;
|
||||
00057 MY_FLOAT slope;
|
||||
00058 MY_FLOAT lastOutput;
|
||||
00059
|
||||
00060 };
|
||||
00061
|
||||
00062 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
75
doc/html/Bowed_8h-source.html
Normal file
75
doc/html/Bowed_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Bowed.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00022 <font class="comment">/***************************************************/</font>
|
||||
00023
|
||||
00024 <font class="preprocessor">#if !defined(__BOWED_H)</font>
|
||||
00025 <font class="preprocessor"></font><font class="preprocessor">#define __BOWED_H</font>
|
||||
00026 <font class="preprocessor"></font>
|
||||
00027 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00028 <font class="preprocessor">#include "DelayL.h"</font>
|
||||
00029 <font class="preprocessor">#include "BowTabl.h"</font>
|
||||
00030 <font class="preprocessor">#include "OnePole.h"</font>
|
||||
00031 <font class="preprocessor">#include "BiQuad.h"</font>
|
||||
00032 <font class="preprocessor">#include "WaveLoop.h"</font>
|
||||
00033 <font class="preprocessor">#include "ADSR.h"</font>
|
||||
00034
|
||||
00035 <font class="keyword">class </font><a class="code" href="classBowed.html">Bowed</a> : <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00036 {
|
||||
00037 <font class="keyword">public</font>:
|
||||
00039 <a class="code" href="classBowed.html#a0">Bowed</a>(MY_FLOAT lowestFrequency);
|
||||
00040
|
||||
00042 <a class="code" href="classBowed.html#a1">~Bowed</a>();
|
||||
00043
|
||||
00045 <font class="keywordtype">void</font> <a class="code" href="classBowed.html#a2">clear</a>();
|
||||
00046
|
||||
00048 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00049
|
||||
00051 <font class="keywordtype">void</font> <a class="code" href="classBowed.html#a4">setVibrato</a>(MY_FLOAT gain);
|
||||
00052
|
||||
00054 <font class="keywordtype">void</font> <a class="code" href="classBowed.html#a5">startBowing</a>(MY_FLOAT amplitude, MY_FLOAT rate);
|
||||
00055
|
||||
00057 <font class="keywordtype">void</font> <a class="code" href="classBowed.html#a6">stopBowing</a>(MY_FLOAT rate);
|
||||
00058
|
||||
00060 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00061
|
||||
00063 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00064
|
||||
00066 MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>();
|
||||
00067
|
||||
00069 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a8">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value);
|
||||
00070
|
||||
00071 <font class="keyword">protected</font>:
|
||||
00072 <a class="code" href="classDelayL.html">DelayL</a> *neckDelay;
|
||||
00073 <a class="code" href="classDelayL.html">DelayL</a> *bridgeDelay;
|
||||
00074 <a class="code" href="classBowTabl.html">BowTabl</a> *bowTable;
|
||||
00075 <a class="code" href="classOnePole.html">OnePole</a> *stringFilter;
|
||||
00076 <a class="code" href="classBiQuad.html">BiQuad</a> *bodyFilter;
|
||||
00077 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
|
||||
00078 <a class="code" href="classADSR.html">ADSR</a> *adsr;
|
||||
00079 MY_FLOAT maxVelocity;
|
||||
00080 MY_FLOAT baseDelay;
|
||||
00081 MY_FLOAT vibratoGain;
|
||||
00082 MY_FLOAT betaRatio;
|
||||
00083
|
||||
00084 };
|
||||
00085
|
||||
00086 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
73
doc/html/Brass_8h-source.html
Normal file
73
doc/html/Brass_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Brass.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00021 <font class="comment">/***************************************************/</font>
|
||||
00022
|
||||
00023 <font class="preprocessor">#if !defined(__BRASS_H)</font>
|
||||
00024 <font class="preprocessor"></font><font class="preprocessor">#define __BRASS_H</font>
|
||||
00025 <font class="preprocessor"></font>
|
||||
00026 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00027 <font class="preprocessor">#include "DelayA.h"</font>
|
||||
00028 <font class="preprocessor">#include "BiQuad.h"</font>
|
||||
00029 <font class="preprocessor">#include "PoleZero.h"</font>
|
||||
00030 <font class="preprocessor">#include "ADSR.h"</font>
|
||||
00031 <font class="preprocessor">#include "WaveLoop.h"</font>
|
||||
00032
|
||||
00033 <font class="keyword">class </font><a class="code" href="classBrass.html">Brass</a>: <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00034 {
|
||||
00035 <font class="keyword">public</font>:
|
||||
00037 <a class="code" href="classBrass.html#a0">Brass</a>(MY_FLOAT lowestFrequency);
|
||||
00038
|
||||
00040 <a class="code" href="classBrass.html#a1">~Brass</a>();
|
||||
00041
|
||||
00043 <font class="keywordtype">void</font> <a class="code" href="classBrass.html#a2">clear</a>();
|
||||
00044
|
||||
00046 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00047
|
||||
00049 <font class="keywordtype">void</font> <a class="code" href="classBrass.html#a4">setLip</a>(MY_FLOAT frequency);
|
||||
00050
|
||||
00052 <font class="keywordtype">void</font> <a class="code" href="classBrass.html#a5">startBlowing</a>(MY_FLOAT amplitude,MY_FLOAT rate);
|
||||
00053
|
||||
00055 <font class="keywordtype">void</font> <a class="code" href="classBrass.html#a6">stopBlowing</a>(MY_FLOAT rate);
|
||||
00056
|
||||
00058 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00059
|
||||
00061 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00062
|
||||
00064 MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>();
|
||||
00065
|
||||
00067 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a8">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value);
|
||||
00068
|
||||
00069 <font class="keyword">protected</font>:
|
||||
00070 <a class="code" href="classDelayA.html">DelayA</a> *delayLine;
|
||||
00071 <a class="code" href="classBiQuad.html">BiQuad</a> *lipFilter;
|
||||
00072 <a class="code" href="classPoleZero.html">PoleZero</a> *dcBlock;
|
||||
00073 <a class="code" href="classADSR.html">ADSR</a> *adsr;
|
||||
00074 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
|
||||
00075 <font class="keywordtype">long</font> length;
|
||||
00076 MY_FLOAT lipTarget;
|
||||
00077 MY_FLOAT slideTarget;
|
||||
00078 MY_FLOAT vibratoGain;
|
||||
00079 MY_FLOAT maxPressure;
|
||||
00080
|
||||
00081 };
|
||||
00082
|
||||
00083 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
67
doc/html/Chorus_8h-source.html
Normal file
67
doc/html/Chorus_8h-source.html
Normal file
@@ -0,0 +1,67 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Chorus.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00009 <font class="comment">/***************************************************/</font>
|
||||
00010
|
||||
00011 <font class="preprocessor">#if !defined(__CHORUS_H)</font>
|
||||
00012 <font class="preprocessor"></font><font class="preprocessor">#define __CHORUS_H</font>
|
||||
00013 <font class="preprocessor"></font>
|
||||
00014 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00015 <font class="preprocessor">#include "DelayL.h"</font>
|
||||
00016 <font class="preprocessor">#include "WaveLoop.h"</font>
|
||||
00017
|
||||
00018 <font class="keyword">class </font><a class="code" href="classChorus.html">Chorus</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00019 {
|
||||
00020 <font class="keyword">public</font>:
|
||||
00022 <a class="code" href="classChorus.html#a0">Chorus</a>(MY_FLOAT baseDelay);
|
||||
00023
|
||||
00025 <a class="code" href="classChorus.html#a1">~Chorus</a>();
|
||||
00026
|
||||
00028 <font class="keywordtype">void</font> <a class="code" href="classChorus.html#a2">clear</a>();
|
||||
00029
|
||||
00031 <font class="keywordtype">void</font> <a class="code" href="classChorus.html#a3">setModDepth</a>(MY_FLOAT depth);
|
||||
00032
|
||||
00034 <font class="keywordtype">void</font> <a class="code" href="classChorus.html#a4">setModFrequency</a>(MY_FLOAT frequency);
|
||||
00035
|
||||
00037 <font class="keywordtype">void</font> <a class="code" href="classChorus.html#a5">setEffectMix</a>(MY_FLOAT mix);
|
||||
00038
|
||||
00040 MY_FLOAT <a class="code" href="classChorus.html#a6">lastOut</a>() <font class="keyword">const</font>;
|
||||
00041
|
||||
00043 MY_FLOAT <a class="code" href="classChorus.html#a7">lastOutLeft</a>() <font class="keyword">const</font>;
|
||||
00044
|
||||
00046 MY_FLOAT <a class="code" href="classChorus.html#a8">lastOutRight</a>() <font class="keyword">const</font>;
|
||||
00047
|
||||
00049 MY_FLOAT <a class="code" href="classChorus.html#a9">tick</a>(MY_FLOAT input);
|
||||
00050
|
||||
00052 MY_FLOAT *<a class="code" href="classChorus.html#a9">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00053
|
||||
00054 <font class="keyword">protected</font>:
|
||||
00055 <a class="code" href="classDelayL.html">DelayL</a> *delayLine[2];
|
||||
00056 <a class="code" href="classWaveLoop.html">WaveLoop</a> *mods[2];
|
||||
00057 MY_FLOAT baseLength;
|
||||
00058 MY_FLOAT modDepth;
|
||||
00059 MY_FLOAT lastOutput[2];
|
||||
00060 MY_FLOAT effectMix;
|
||||
00061
|
||||
00062 };
|
||||
00063
|
||||
00064 <font class="preprocessor">#endif</font>
|
||||
00065 <font class="preprocessor"></font>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
72
doc/html/Clarinet_8h-source.html
Normal file
72
doc/html/Clarinet_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Clarinet.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00023 <font class="comment">/***************************************************/</font>
|
||||
00024
|
||||
00025 <font class="preprocessor">#if !defined(__CLARINET_H)</font>
|
||||
00026 <font class="preprocessor"></font><font class="preprocessor">#define __CLARINET_H</font>
|
||||
00027 <font class="preprocessor"></font>
|
||||
00028 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00029 <font class="preprocessor">#include "DelayL.h"</font>
|
||||
00030 <font class="preprocessor">#include "ReedTabl.h"</font>
|
||||
00031 <font class="preprocessor">#include "OneZero.h"</font>
|
||||
00032 <font class="preprocessor">#include "Envelope.h"</font>
|
||||
00033 <font class="preprocessor">#include "Noise.h"</font>
|
||||
00034 <font class="preprocessor">#include "WaveLoop.h"</font>
|
||||
00035
|
||||
00036 <font class="keyword">class </font><a class="code" href="classClarinet.html">Clarinet</a> : <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00037 {
|
||||
00038 <font class="keyword">public</font>:
|
||||
00040 <a class="code" href="classClarinet.html#a0">Clarinet</a>(MY_FLOAT lowestFrequency);
|
||||
00041
|
||||
00043 <a class="code" href="classClarinet.html#a1">~Clarinet</a>();
|
||||
00044
|
||||
00046 <font class="keywordtype">void</font> <a class="code" href="classClarinet.html#a2">clear</a>();
|
||||
00047
|
||||
00049 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00050
|
||||
00052 <font class="keywordtype">void</font> <a class="code" href="classClarinet.html#a4">startBlowing</a>(MY_FLOAT amplitude, MY_FLOAT rate);
|
||||
00053
|
||||
00055 <font class="keywordtype">void</font> <a class="code" href="classClarinet.html#a5">stopBlowing</a>(MY_FLOAT rate);
|
||||
00056
|
||||
00058 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00059
|
||||
00061 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00062
|
||||
00064 MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>();
|
||||
00065
|
||||
00067 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a8">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value);
|
||||
00068
|
||||
00069 <font class="keyword">protected</font>:
|
||||
00070 <a class="code" href="classDelayL.html">DelayL</a> *delayLine;
|
||||
00071 <a class="code" href="classReedTabl.html">ReedTabl</a> *reedTable;
|
||||
00072 <a class="code" href="classOneZero.html">OneZero</a> *filter;
|
||||
00073 <a class="code" href="classEnvelope.html">Envelope</a> *envelope;
|
||||
00074 <a class="code" href="classNoise.html">Noise</a> *noise;
|
||||
00075 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
|
||||
00076 <font class="keywordtype">long</font> length;
|
||||
00077 MY_FLOAT outputGain;
|
||||
00078 MY_FLOAT noiseGain;
|
||||
00079 MY_FLOAT vibratoGain;
|
||||
00080
|
||||
00081 };
|
||||
00082
|
||||
00083 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
55
doc/html/DelayA_8h-source.html
Normal file
55
doc/html/DelayA_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>DelayA.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00023 <font class="comment">/***************************************************/</font>
|
||||
00024
|
||||
00025 <font class="preprocessor">#if !defined(__DelayA_h)</font>
|
||||
00026 <font class="preprocessor"></font><font class="preprocessor">#define __DelayA_h</font>
|
||||
00027 <font class="preprocessor"></font>
|
||||
00028 <font class="preprocessor">#include "Delay.h"</font>
|
||||
00029
|
||||
00030 <font class="keyword">class </font><a class="code" href="classDelayA.html">DelayA</a> : <font class="keyword">public</font> <a class="code" href="classDelay.html">Delay</a>
|
||||
00031 {
|
||||
00032 <font class="keyword">public</font>:
|
||||
00033
|
||||
00035 <a class="code" href="classDelayA.html#a0">DelayA</a>();
|
||||
00036
|
||||
00038
|
||||
00039 <a class="code" href="classDelayA.html#a0">DelayA</a>(MY_FLOAT theDelay, <font class="keywordtype">long</font> maxDelay);
|
||||
00040
|
||||
00042 <a class="code" href="classDelayA.html#a2">~DelayA</a>();
|
||||
00043
|
||||
00045 <font class="keywordtype">void</font> <a class="code" href="classDelay.html#a3">clear</a>();
|
||||
00046
|
||||
00048
|
||||
00051 <font class="keywordtype">void</font> <a class="code" href="classDelay.html#a4">setDelay</a>(MY_FLOAT theDelay);
|
||||
00052
|
||||
00054 MY_FLOAT <a class="code" href="classDelay.html#a5">getDelay</a>(<font class="keywordtype">void</font>);
|
||||
00055
|
||||
00057 MY_FLOAT <a class="code" href="classDelay.html#a9">tick</a>(MY_FLOAT sample);
|
||||
00058
|
||||
00059 <font class="keyword">protected</font>:
|
||||
00060 MY_FLOAT alpha;
|
||||
00061 MY_FLOAT coeff;
|
||||
00062 MY_FLOAT apInput;
|
||||
00063 };
|
||||
00064
|
||||
00065 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
52
doc/html/DelayL_8h-source.html
Normal file
52
doc/html/DelayL_8h-source.html
Normal file
@@ -0,0 +1,52 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>DelayL.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00023 <font class="comment">/***************************************************/</font>
|
||||
00024
|
||||
00025 <font class="preprocessor">#if !defined(__DELAYL_H)</font>
|
||||
00026 <font class="preprocessor"></font><font class="preprocessor">#define __DELAYL_H</font>
|
||||
00027 <font class="preprocessor"></font>
|
||||
00028 <font class="preprocessor">#include "Delay.h"</font>
|
||||
00029
|
||||
00030 <font class="keyword">class </font><a class="code" href="classDelayL.html">DelayL</a> : <font class="keyword">public</font> <a class="code" href="classDelay.html">Delay</a>
|
||||
00031 {
|
||||
00032 <font class="keyword">public</font>:
|
||||
00033
|
||||
00035 <a class="code" href="classDelayL.html#a0">DelayL</a>();
|
||||
00036
|
||||
00038
|
||||
00039 <a class="code" href="classDelayL.html#a0">DelayL</a>(MY_FLOAT theDelay, <font class="keywordtype">long</font> maxDelay);
|
||||
00040
|
||||
00042 <a class="code" href="classDelayL.html#a2">~DelayL</a>();
|
||||
00043
|
||||
00045
|
||||
00048 <font class="keywordtype">void</font> <a class="code" href="classDelay.html#a4">setDelay</a>(MY_FLOAT theDelay);
|
||||
00049
|
||||
00051 MY_FLOAT <a class="code" href="classDelay.html#a5">getDelay</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00052
|
||||
00054 MY_FLOAT <a class="code" href="classDelay.html#a9">tick</a>(MY_FLOAT sample);
|
||||
00055
|
||||
00056 <font class="keyword">protected</font>:
|
||||
00057 MY_FLOAT alpha;
|
||||
00058 MY_FLOAT omAlpha;
|
||||
00059 };
|
||||
00060
|
||||
00061 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
65
doc/html/Delay_8h-source.html
Normal file
65
doc/html/Delay_8h-source.html
Normal file
@@ -0,0 +1,65 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Delay.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00019 <font class="comment">/***************************************************/</font>
|
||||
00020
|
||||
00021 <font class="preprocessor">#if !defined(__DELAY_H)</font>
|
||||
00022 <font class="preprocessor"></font><font class="preprocessor">#define __DELAY_H</font>
|
||||
00023 <font class="preprocessor"></font>
|
||||
00024 <font class="preprocessor">#include "Filter.h"</font>
|
||||
00025
|
||||
00026 <font class="keyword">class </font><a class="code" href="classDelay.html">Delay</a> : <font class="keyword">protected</font> <a class="code" href="classFilter.html">Filter</a>
|
||||
00027 {
|
||||
00028 <font class="keyword">public</font>:
|
||||
00029
|
||||
00031 <a class="code" href="classDelay.html#a0">Delay</a>();
|
||||
00032
|
||||
00034 <a class="code" href="classDelay.html#a0">Delay</a>(<font class="keywordtype">long</font> theDelay, <font class="keywordtype">long</font> maxDelay);
|
||||
00035
|
||||
00037 <font class="keyword">virtual</font> <a class="code" href="classDelay.html#a2">~Delay</a>();
|
||||
00038
|
||||
00040 <font class="keywordtype">void</font> <a class="code" href="classFilter.html#a3">clear</a>();
|
||||
00041
|
||||
00043
|
||||
00046 <font class="keywordtype">void</font> <a class="code" href="classDelay.html#a4">setDelay</a>(<font class="keywordtype">long</font> theDelay);
|
||||
00047
|
||||
00049 <font class="keywordtype">long</font> <a class="code" href="classDelay.html#a5">getDelay</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00050
|
||||
00052 MY_FLOAT <a class="code" href="classDelay.html#a6">energy</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00053
|
||||
00055
|
||||
00058 MY_FLOAT <a class="code" href="classDelay.html#a7">contentsAt</a>(<font class="keywordtype">long</font> tapDelay) <font class="keyword">const</font>;
|
||||
00059
|
||||
00061 MY_FLOAT <a class="code" href="classFilter.html#a9">lastOut</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00062
|
||||
00064 <font class="keyword">virtual</font> MY_FLOAT <a class="code" href="classFilter.html#a10">tick</a>(MY_FLOAT sample);
|
||||
00065
|
||||
00067 <font class="keyword">virtual</font> MY_FLOAT *<a class="code" href="classFilter.html#a10">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00068
|
||||
00069 <font class="keyword">protected</font>:
|
||||
00070 <font class="keywordtype">long</font> inPoint;
|
||||
00071 <font class="keywordtype">long</font> outPoint;
|
||||
00072 <font class="keywordtype">long</font> length;
|
||||
00073 MY_FLOAT delay;
|
||||
00074 };
|
||||
00075
|
||||
00076 <font class="preprocessor">#endif</font>
|
||||
00077 <font class="preprocessor"></font>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
56
doc/html/Drummer_8h-source.html
Normal file
56
doc/html/Drummer_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Drummer.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00016 <font class="comment">/***************************************************/</font>
|
||||
00017
|
||||
00018 <font class="preprocessor">#if !defined(__DRUMMER_H)</font>
|
||||
00019 <font class="preprocessor"></font><font class="preprocessor">#define __DRUMMER_H</font>
|
||||
00020 <font class="preprocessor"></font>
|
||||
00021 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00022 <font class="preprocessor">#include "WvIn.h"</font>
|
||||
00023 <font class="preprocessor">#include "OnePole.h"</font>
|
||||
00024
|
||||
00025 <font class="preprocessor">#define DRUM_NUMWAVES 11</font>
|
||||
00026 <font class="preprocessor"></font><font class="preprocessor">#define DRUM_POLYPHONY 4</font>
|
||||
00027 <font class="preprocessor"></font>
|
||||
00028 <font class="keyword">class </font><a class="code" href="classDrummer.html">Drummer</a> : <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00029 {
|
||||
00030 <font class="keyword">public</font>:
|
||||
00032 <a class="code" href="classDrummer.html#a0">Drummer</a>();
|
||||
00033
|
||||
00035 <a class="code" href="classDrummer.html#a1">~Drummer</a>();
|
||||
00036
|
||||
00038
|
||||
00043 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT instrument, MY_FLOAT amplitude);
|
||||
00044
|
||||
00046 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00047
|
||||
00049 MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>();
|
||||
00050
|
||||
00051 <font class="keyword">protected</font>:
|
||||
00052 <a class="code" href="classWvIn.html">WvIn</a> *waves[DRUM_POLYPHONY];
|
||||
00053 <a class="code" href="classOnePole.html">OnePole</a> *filters[DRUM_POLYPHONY];
|
||||
00054 <font class="keywordtype">int</font> sounding[DRUM_POLYPHONY];
|
||||
00055 <font class="keywordtype">int</font> nSounding;
|
||||
00056
|
||||
00057 };
|
||||
00058
|
||||
00059 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
58
doc/html/Echo_8h-source.html
Normal file
58
doc/html/Echo_8h-source.html
Normal file
@@ -0,0 +1,58 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Echo.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00009 <font class="comment">/***************************************************/</font>
|
||||
00010
|
||||
00011 <font class="preprocessor">#if !defined(__ECHO_H)</font>
|
||||
00012 <font class="preprocessor"></font><font class="preprocessor">#define __ECHO_H</font>
|
||||
00013 <font class="preprocessor"></font>
|
||||
00014 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00015 <font class="preprocessor">#include "Delay.h"</font>
|
||||
00016
|
||||
00017 <font class="keyword">class </font><a class="code" href="classEcho.html">Echo</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00018 {
|
||||
00019 <font class="keyword">public</font>:
|
||||
00021 <a class="code" href="classEcho.html#a0">Echo</a>(MY_FLOAT longestDelay);
|
||||
00022
|
||||
00024 <a class="code" href="classEcho.html#a1">~Echo</a>();
|
||||
00025
|
||||
00027 <font class="keywordtype">void</font> <a class="code" href="classEcho.html#a2">clear</a>();
|
||||
00028
|
||||
00030 <font class="keywordtype">void</font> <a class="code" href="classEcho.html#a3">setDelay</a>(MY_FLOAT delay);
|
||||
00031
|
||||
00033 <font class="keywordtype">void</font> <a class="code" href="classEcho.html#a4">setEffectMix</a>(MY_FLOAT mix);
|
||||
00034
|
||||
00036 MY_FLOAT <a class="code" href="classEcho.html#a5">lastOut</a>() <font class="keyword">const</font>;
|
||||
00037
|
||||
00039 MY_FLOAT <a class="code" href="classEcho.html#a6">tick</a>(MY_FLOAT input);
|
||||
00040
|
||||
00042 MY_FLOAT *<a class="code" href="classEcho.html#a6">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00043
|
||||
00044 <font class="keyword">protected</font>:
|
||||
00045 <a class="code" href="classDelay.html">Delay</a> *delayLine;
|
||||
00046 <font class="keywordtype">long</font> length;
|
||||
00047 MY_FLOAT lastOutput;
|
||||
00048 MY_FLOAT effectMix;
|
||||
00049
|
||||
00050 };
|
||||
00051
|
||||
00052 <font class="preprocessor">#endif</font>
|
||||
00053 <font class="preprocessor"></font>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
64
doc/html/Envelope_8h-source.html
Normal file
64
doc/html/Envelope_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Envelope.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00014 <font class="comment">/***************************************************/</font>
|
||||
00015
|
||||
00016 <font class="preprocessor">#if !defined(__ENVELOPE_H)</font>
|
||||
00017 <font class="preprocessor"></font><font class="preprocessor">#define __ENVELOPE_H</font>
|
||||
00018 <font class="preprocessor"></font>
|
||||
00019 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00020
|
||||
00021 <font class="keyword">class </font><a class="code" href="classEnvelope.html">Envelope</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00022 {
|
||||
00023 <font class="keyword">public</font>:
|
||||
00024
|
||||
00026 <a class="code" href="classEnvelope.html#a0">Envelope</a>(<font class="keywordtype">void</font>);
|
||||
00027
|
||||
00029 <font class="keyword">virtual</font> <a class="code" href="classEnvelope.html#a1">~Envelope</a>(<font class="keywordtype">void</font>);
|
||||
00030
|
||||
00032 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classEnvelope.html#a2">keyOn</a>(<font class="keywordtype">void</font>);
|
||||
00033
|
||||
00035 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classEnvelope.html#a3">keyOff</a>(<font class="keywordtype">void</font>);
|
||||
00036
|
||||
00038 <font class="keywordtype">void</font> <a class="code" href="classEnvelope.html#a4">setRate</a>(MY_FLOAT aRate);
|
||||
00039
|
||||
00041 <font class="keywordtype">void</font> <a class="code" href="classEnvelope.html#a5">setTime</a>(MY_FLOAT aTime);
|
||||
00042
|
||||
00044 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classEnvelope.html#a6">setTarget</a>(MY_FLOAT aTarget);
|
||||
00045
|
||||
00047 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classEnvelope.html#a7">setValue</a>(MY_FLOAT aValue);
|
||||
00048
|
||||
00050 <font class="keyword">virtual</font> <font class="keywordtype">int</font> <a class="code" href="classEnvelope.html#a8">getState</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00051
|
||||
00053 <font class="keyword">virtual</font> MY_FLOAT <a class="code" href="classEnvelope.html#a9">tick</a>(<font class="keywordtype">void</font>);
|
||||
00054
|
||||
00056 <font class="keyword">virtual</font> MY_FLOAT *<a class="code" href="classEnvelope.html#a9">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00057
|
||||
00059 MY_FLOAT <a class="code" href="classEnvelope.html#a11">lastOut</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00060
|
||||
00061 <font class="keyword">protected</font>:
|
||||
00062 MY_FLOAT value;
|
||||
00063 MY_FLOAT target;
|
||||
00064 MY_FLOAT rate;
|
||||
00065 <font class="keywordtype">int</font> state;
|
||||
00066 };
|
||||
00067
|
||||
00068 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
50
doc/html/FMVoices_8h-source.html
Normal file
50
doc/html/FMVoices_8h-source.html
Normal file
@@ -0,0 +1,50 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>FMVoices.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00031 <font class="comment">/***************************************************/</font>
|
||||
00032
|
||||
00033 <font class="preprocessor">#if !defined(__FMVOICES_H)</font>
|
||||
00034 <font class="preprocessor"></font><font class="preprocessor">#define __FMVOICES_H</font>
|
||||
00035 <font class="preprocessor"></font>
|
||||
00036 <font class="preprocessor">#include "FM.h"</font>
|
||||
00037
|
||||
00038 <font class="keyword">class </font><a class="code" href="classFMVoices.html">FMVoices</a> : <font class="keyword">public</font> <a class="code" href="classFM.html">FM</a>
|
||||
00039 {
|
||||
00040 <font class="keyword">public</font>:
|
||||
00042 <a class="code" href="classFMVoices.html#a0">FMVoices</a>();
|
||||
00043
|
||||
00045 <a class="code" href="classFMVoices.html#a1">~FMVoices</a>();
|
||||
00046
|
||||
00048 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classFM.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00049
|
||||
00051 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00052
|
||||
00054 MY_FLOAT <a class="code" href="classFM.html#a14">tick</a>();
|
||||
00055
|
||||
00057 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classFM.html#a15">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value);
|
||||
00058
|
||||
00059 <font class="keyword">protected</font>:
|
||||
00060 <font class="keywordtype">int</font> currentVowel;
|
||||
00061 MY_FLOAT tilt[3];
|
||||
00062 MY_FLOAT mods[3];
|
||||
00063 };
|
||||
00064
|
||||
00065 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
85
doc/html/FM_8h-source.html
Normal file
85
doc/html/FM_8h-source.html
Normal file
@@ -0,0 +1,85 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>FM.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00024 <font class="comment">/***************************************************/</font>
|
||||
00025
|
||||
00026 <font class="preprocessor">#if !defined(__FM_H)</font>
|
||||
00027 <font class="preprocessor"></font><font class="preprocessor">#define __FM_H</font>
|
||||
00028 <font class="preprocessor"></font>
|
||||
00029 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00030 <font class="preprocessor">#include "ADSR.h"</font>
|
||||
00031 <font class="preprocessor">#include "WaveLoop.h"</font>
|
||||
00032 <font class="preprocessor">#include "TwoZero.h"</font>
|
||||
00033
|
||||
00034 <font class="keyword">class </font><a class="code" href="classFM.html">FM</a> : <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00035 {
|
||||
00036 <font class="keyword">public</font>:
|
||||
00038 <a class="code" href="classFM.html#a0">FM</a>( <font class="keywordtype">int</font> operators = 4 );
|
||||
00039
|
||||
00041 <font class="keyword">virtual</font> <a class="code" href="classFM.html#a1">~FM</a>();
|
||||
00042
|
||||
00044 <font class="keywordtype">void</font> <a class="code" href="classFM.html#a2">clear</a>();
|
||||
00045
|
||||
00047 <font class="keywordtype">void</font> <a class="code" href="classFM.html#a3">loadWaves</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> **filenames);
|
||||
00048
|
||||
00050 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00051
|
||||
00053 <font class="keywordtype">void</font> <a class="code" href="classFM.html#a5">setRatio</a>(<font class="keywordtype">int</font> waveIndex, MY_FLOAT ratio);
|
||||
00054
|
||||
00056 <font class="keywordtype">void</font> <a class="code" href="classFM.html#a6">setGain</a>(<font class="keywordtype">int</font> waveIndex, MY_FLOAT gain);
|
||||
00057
|
||||
00059 <font class="keywordtype">void</font> <a class="code" href="classFM.html#a7">setModulationSpeed</a>(MY_FLOAT mSpeed);
|
||||
00060
|
||||
00062 <font class="keywordtype">void</font> <a class="code" href="classFM.html#a8">setModulationDepth</a>(MY_FLOAT mDepth);
|
||||
00063
|
||||
00065 <font class="keywordtype">void</font> <a class="code" href="classFM.html#a9">setControl1</a>(MY_FLOAT cVal);
|
||||
00066
|
||||
00068 <font class="keywordtype">void</font> <a class="code" href="classFM.html#a10">setControl2</a>(MY_FLOAT cVal);
|
||||
00069
|
||||
00071 <font class="keywordtype">void</font> <a class="code" href="classFM.html#a11">keyOn</a>();
|
||||
00072
|
||||
00074 <font class="keywordtype">void</font> <a class="code" href="classFM.html#a12">keyOff</a>();
|
||||
00075
|
||||
00077 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00078
|
||||
00080 <font class="keyword">virtual</font> MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>() = 0;
|
||||
00081
|
||||
00083 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a8">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value);
|
||||
00084
|
||||
00085 <font class="keyword">protected</font>:
|
||||
00086 <a class="code" href="classADSR.html">ADSR</a> **adsr;
|
||||
00087 <a class="code" href="classWaveLoop.html">WaveLoop</a> **waves;
|
||||
00088 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
|
||||
00089 <a class="code" href="classTwoZero.html">TwoZero</a> *twozero;
|
||||
00090 <font class="keywordtype">int</font> nOperators;
|
||||
00091 MY_FLOAT baseFrequency;
|
||||
00092 MY_FLOAT *ratios;
|
||||
00093 MY_FLOAT *gains;
|
||||
00094 MY_FLOAT modDepth;
|
||||
00095 MY_FLOAT control1;
|
||||
00096 MY_FLOAT control2;
|
||||
00097 MY_FLOAT __FM_gains[100];
|
||||
00098 MY_FLOAT __FM_susLevels[16];
|
||||
00099 MY_FLOAT __FM_attTimes[32];
|
||||
00100
|
||||
00101 };
|
||||
00102
|
||||
00103 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
72
doc/html/Filter_8h-source.html
Normal file
72
doc/html/Filter_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Filter.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00028 <font class="comment">/***************************************************/</font>
|
||||
00029
|
||||
00030 <font class="preprocessor">#if !defined(__FILTER_H)</font>
|
||||
00031 <font class="preprocessor"></font><font class="preprocessor">#define __FILTER_H</font>
|
||||
00032 <font class="preprocessor"></font>
|
||||
00033 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00034
|
||||
00035 <font class="keyword">class </font><a class="code" href="classFilter.html">Filter</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00036 {
|
||||
00037 <font class="keyword">public</font>:
|
||||
00039 <a class="code" href="classFilter.html#a0">Filter</a>(<font class="keywordtype">void</font>);
|
||||
00040
|
||||
00042
|
||||
00046 <a class="code" href="classFilter.html#a0">Filter</a>(<font class="keywordtype">int</font> nb, MY_FLOAT *bCoefficients, <font class="keywordtype">int</font> na, MY_FLOAT *aCoefficients);
|
||||
00047
|
||||
00049 <font class="keyword">virtual</font> <a class="code" href="classFilter.html#a2">~Filter</a>(<font class="keywordtype">void</font>);
|
||||
00050
|
||||
00052 <font class="keywordtype">void</font> <a class="code" href="classFilter.html#a3">clear</a>(<font class="keywordtype">void</font>);
|
||||
00053
|
||||
00055
|
||||
00060 <font class="keywordtype">void</font> <a class="code" href="classFilter.html#a4">setCoefficients</a>(<font class="keywordtype">int</font> nb, MY_FLOAT *bCoefficients, <font class="keywordtype">int</font> na, MY_FLOAT *aCoefficients);
|
||||
00061
|
||||
00063
|
||||
00069 <font class="keywordtype">void</font> <a class="code" href="classFilter.html#a5">setNumerator</a>(<font class="keywordtype">int</font> nb, MY_FLOAT *bCoefficients);
|
||||
00070
|
||||
00072
|
||||
00080 <font class="keywordtype">void</font> <a class="code" href="classFilter.html#a6">setDenominator</a>(<font class="keywordtype">int</font> na, MY_FLOAT *aCoefficients);
|
||||
00081
|
||||
00083
|
||||
00087 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classFilter.html#a7">setGain</a>(MY_FLOAT theGain);
|
||||
00088
|
||||
00090 <font class="keyword">virtual</font> MY_FLOAT <a class="code" href="classFilter.html#a8">getGain</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00091
|
||||
00093 <font class="keyword">virtual</font> MY_FLOAT <a class="code" href="classFilter.html#a9">lastOut</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00094
|
||||
00096 <font class="keyword">virtual</font> MY_FLOAT <a class="code" href="classFilter.html#a10">tick</a>(MY_FLOAT sample);
|
||||
00097
|
||||
00099 <font class="keyword">virtual</font> MY_FLOAT *<a class="code" href="classFilter.html#a10">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00100
|
||||
00101 <font class="keyword">protected</font>:
|
||||
00102 MY_FLOAT gain;
|
||||
00103 <font class="keywordtype">int</font> nB;
|
||||
00104 <font class="keywordtype">int</font> nA;
|
||||
00105 MY_FLOAT *b;
|
||||
00106 MY_FLOAT *a;
|
||||
00107 MY_FLOAT *outputs;
|
||||
00108 MY_FLOAT *inputs;
|
||||
00109
|
||||
00110 };
|
||||
00111
|
||||
00112 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
86
doc/html/Flute_8h-source.html
Normal file
86
doc/html/Flute_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Flute.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00023 <font class="comment">/***************************************************/</font>
|
||||
00024
|
||||
00025 <font class="preprocessor">#if !defined(__FLUTE_H)</font>
|
||||
00026 <font class="preprocessor"></font><font class="preprocessor">#define __FLUTE_H</font>
|
||||
00027 <font class="preprocessor"></font>
|
||||
00028 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00029 <font class="preprocessor">#include "JetTabl.h"</font>
|
||||
00030 <font class="preprocessor">#include "DelayL.h"</font>
|
||||
00031 <font class="preprocessor">#include "OnePole.h"</font>
|
||||
00032 <font class="preprocessor">#include "PoleZero.h"</font>
|
||||
00033 <font class="preprocessor">#include "Noise.h"</font>
|
||||
00034 <font class="preprocessor">#include "ADSR.h"</font>
|
||||
00035 <font class="preprocessor">#include "WaveLoop.h"</font>
|
||||
00036
|
||||
00037 <font class="keyword">class </font><a class="code" href="classFlute.html">Flute</a> : <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00038 {
|
||||
00039 <font class="keyword">public</font>:
|
||||
00041 <a class="code" href="classFlute.html#a0">Flute</a>(MY_FLOAT lowestFrequency);
|
||||
00042
|
||||
00044 <a class="code" href="classFlute.html#a1">~Flute</a>();
|
||||
00045
|
||||
00047 <font class="keywordtype">void</font> <a class="code" href="classFlute.html#a2">clear</a>();
|
||||
00048
|
||||
00050 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00051
|
||||
00053 <font class="keywordtype">void</font> <a class="code" href="classFlute.html#a4">setJetReflection</a>(MY_FLOAT coefficient);
|
||||
00054
|
||||
00056 <font class="keywordtype">void</font> <a class="code" href="classFlute.html#a5">setEndReflection</a>(MY_FLOAT coefficient);
|
||||
00057
|
||||
00059 <font class="keywordtype">void</font> <a class="code" href="classFlute.html#a6">setJetDelay</a>(MY_FLOAT aRatio);
|
||||
00060
|
||||
00062 <font class="keywordtype">void</font> <a class="code" href="classFlute.html#a7">startBlowing</a>(MY_FLOAT amplitude, MY_FLOAT rate);
|
||||
00063
|
||||
00065 <font class="keywordtype">void</font> <a class="code" href="classFlute.html#a8">stopBlowing</a>(MY_FLOAT rate);
|
||||
00066
|
||||
00068 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00069
|
||||
00071 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00072
|
||||
00074 MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>();
|
||||
00075
|
||||
00077 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a8">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value);
|
||||
00078
|
||||
00079 <font class="keyword">protected</font>:
|
||||
00080 <a class="code" href="classDelayL.html">DelayL</a> *jetDelay;
|
||||
00081 <a class="code" href="classDelayL.html">DelayL</a> *boreDelay;
|
||||
00082 <a class="code" href="classJetTabl.html">JetTabl</a> *jetTable;
|
||||
00083 <a class="code" href="classOnePole.html">OnePole</a> *filter;
|
||||
00084 <a class="code" href="classPoleZero.html">PoleZero</a> *dcBlock;
|
||||
00085 <a class="code" href="classNoise.html">Noise</a> *noise;
|
||||
00086 <a class="code" href="classADSR.html">ADSR</a> *adsr;
|
||||
00087 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
|
||||
00088 <font class="keywordtype">long</font> length;
|
||||
00089 MY_FLOAT lastFrequency;
|
||||
00090 MY_FLOAT maxPressure;
|
||||
00091 MY_FLOAT jetReflection;
|
||||
00092 MY_FLOAT endReflection;
|
||||
00093 MY_FLOAT noiseGain;
|
||||
00094 MY_FLOAT vibratoGain;
|
||||
00095 MY_FLOAT outputGain;
|
||||
00096 MY_FLOAT jetRatio;
|
||||
00097
|
||||
00098 };
|
||||
00099
|
||||
00100 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
72
doc/html/FormSwep_8h-source.html
Normal file
72
doc/html/FormSwep_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>FormSwep.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00013 <font class="comment">/***************************************************/</font>
|
||||
00014
|
||||
00015 <font class="preprocessor">#if !defined(__FORMSWEP_H)</font>
|
||||
00016 <font class="preprocessor"></font><font class="preprocessor">#define __FORMSWEP_H</font>
|
||||
00017 <font class="preprocessor"></font>
|
||||
00018 <font class="preprocessor">#include "BiQuad.h"</font>
|
||||
00019
|
||||
00020 <font class="keyword">class </font><a class="code" href="classFormSwep.html">FormSwep</a> : <font class="keyword">public</font> <a class="code" href="classBiQuad.html">BiQuad</a>
|
||||
00021 {
|
||||
00022 <font class="keyword">public</font>:
|
||||
00023
|
||||
00025 <a class="code" href="classFormSwep.html#a0">FormSwep</a>();
|
||||
00026
|
||||
00028 <a class="code" href="classFormSwep.html#a1">~FormSwep</a>();
|
||||
00029
|
||||
00031
|
||||
00042 <font class="keywordtype">void</font> <a class="code" href="classBiQuad.html#a8">setResonance</a>(MY_FLOAT aFrequency, MY_FLOAT aRadius);
|
||||
00043
|
||||
00045 <font class="keywordtype">void</font> <a class="code" href="classFormSwep.html#a3">setStates</a>(MY_FLOAT aFrequency, MY_FLOAT aRadius, MY_FLOAT aGain = 1.0);
|
||||
00046
|
||||
00048 <font class="keywordtype">void</font> <a class="code" href="classFormSwep.html#a4">setTargets</a>(MY_FLOAT aFrequency, MY_FLOAT aRadius, MY_FLOAT aGain = 1.0);
|
||||
00049
|
||||
00051
|
||||
00059 <font class="keywordtype">void</font> <a class="code" href="classFormSwep.html#a5">setSweepRate</a>(MY_FLOAT aRate);
|
||||
00060
|
||||
00062
|
||||
00067 <font class="keywordtype">void</font> <a class="code" href="classFormSwep.html#a6">setSweepTime</a>(MY_FLOAT aTime);
|
||||
00068
|
||||
00070 MY_FLOAT <a class="code" href="classBiQuad.html#a14">tick</a>(MY_FLOAT sample);
|
||||
00071
|
||||
00073 MY_FLOAT *<a class="code" href="classBiQuad.html#a14">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00074
|
||||
00075 <font class="keyword">protected</font>:
|
||||
00076 <font class="keywordtype">bool</font> dirty;
|
||||
00077 MY_FLOAT frequency;
|
||||
00078 MY_FLOAT radius;
|
||||
00079 MY_FLOAT startFrequency;
|
||||
00080 MY_FLOAT startRadius;
|
||||
00081 MY_FLOAT startGain;
|
||||
00082 MY_FLOAT targetFrequency;
|
||||
00083 MY_FLOAT targetRadius;
|
||||
00084 MY_FLOAT targetGain;
|
||||
00085 MY_FLOAT deltaFrequency;
|
||||
00086 MY_FLOAT deltaRadius;
|
||||
00087 MY_FLOAT deltaGain;
|
||||
00088 MY_FLOAT sweepState;
|
||||
00089 MY_FLOAT sweepRate;
|
||||
00090
|
||||
00091 };
|
||||
00092
|
||||
00093 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
41
doc/html/HevyMetl_8h-source.html
Normal file
41
doc/html/HevyMetl_8h-source.html
Normal file
@@ -0,0 +1,41 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>HevyMetl.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00029 <font class="comment">/***************************************************/</font>
|
||||
00030
|
||||
00031 <font class="preprocessor">#if !defined(__HEVYMETL_H)</font>
|
||||
00032 <font class="preprocessor"></font><font class="preprocessor">#define __HEVYMETL_H</font>
|
||||
00033 <font class="preprocessor"></font>
|
||||
00034 <font class="preprocessor">#include "FM.h"</font>
|
||||
00035
|
||||
00036 <font class="keyword">class </font><a class="code" href="classHevyMetl.html">HevyMetl</a> : <font class="keyword">public</font> <a class="code" href="classFM.html">FM</a>
|
||||
00037 {
|
||||
00038 <font class="keyword">public</font>:
|
||||
00040 <a class="code" href="classHevyMetl.html#a0">HevyMetl</a>();
|
||||
00041
|
||||
00043 <a class="code" href="classHevyMetl.html#a1">~HevyMetl</a>();
|
||||
00044
|
||||
00046 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00047
|
||||
00049 MY_FLOAT <a class="code" href="classFM.html#a14">tick</a>();
|
||||
00050 };
|
||||
00051
|
||||
00052 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
56
doc/html/Instrmnt_8h-source.html
Normal file
56
doc/html/Instrmnt_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Instrmnt.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00010 <font class="comment">/***************************************************/</font>
|
||||
00011
|
||||
00012 <font class="preprocessor">#if !defined(__INSTRMNT_H)</font>
|
||||
00013 <font class="preprocessor"></font><font class="preprocessor">#define __INSTRMNT_H</font>
|
||||
00014 <font class="preprocessor"></font>
|
||||
00015 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00016 <font class="preprocessor">#include <iostream.h></font>
|
||||
00017
|
||||
00018 <font class="keyword">class </font><a class="code" href="classInstrmnt.html">Instrmnt</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00019 {
|
||||
00020 <font class="keyword">public</font>:
|
||||
00022 <a class="code" href="classInstrmnt.html#a0">Instrmnt</a>();
|
||||
00023
|
||||
00025 <font class="keyword">virtual</font> <a class="code" href="classInstrmnt.html#a1">~Instrmnt</a>();
|
||||
00026
|
||||
00028 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude) = 0;
|
||||
00029
|
||||
00031 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude) = 0;
|
||||
00032
|
||||
00034 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00035
|
||||
00037 MY_FLOAT <a class="code" href="classInstrmnt.html#a5">lastOut</a>() <font class="keyword">const</font>;
|
||||
00038
|
||||
00040 <font class="keyword">virtual</font> MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>() = 0;
|
||||
00041
|
||||
00043 <font class="keyword">virtual</font> MY_FLOAT *<a class="code" href="classInstrmnt.html#a6">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00044
|
||||
00046 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a8">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value);
|
||||
00047
|
||||
00048 <font class="keyword">protected</font>:
|
||||
00049 MY_FLOAT lastOutput;
|
||||
00050
|
||||
00051 };
|
||||
00052
|
||||
00053 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
54
doc/html/JCRev_8h-source.html
Normal file
54
doc/html/JCRev_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>JCRev.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00015 <font class="comment">/***************************************************/</font>
|
||||
00016
|
||||
00017 <font class="preprocessor">#if !defined(__JCREV_H)</font>
|
||||
00018 <font class="preprocessor"></font><font class="preprocessor">#define __JCREV_H</font>
|
||||
00019 <font class="preprocessor"></font>
|
||||
00020 <font class="preprocessor">#include "Reverb.h"</font>
|
||||
00021 <font class="preprocessor">#include "Delay.h"</font>
|
||||
00022
|
||||
00023 <font class="keyword">class </font><a class="code" href="classJCRev.html">JCRev</a> : <font class="keyword">public</font> <a class="code" href="classReverb.html">Reverb</a>
|
||||
00024 {
|
||||
00025 <font class="keyword">public</font>:
|
||||
00026 <font class="comment">// Class constructor taking a T60 decay time argument.</font>
|
||||
00027 JCRev(MY_FLOAT T60);
|
||||
00028
|
||||
00029 <font class="comment">// Class destructor.</font>
|
||||
00030 ~JCRev();
|
||||
00031
|
||||
00033 <font class="keywordtype">void</font> <a class="code" href="classReverb.html#a2">clear</a>();
|
||||
00034
|
||||
00036 MY_FLOAT <a class="code" href="classReverb.html#a7">tick</a>(MY_FLOAT input);
|
||||
00037
|
||||
00038 <font class="keyword">protected</font>:
|
||||
00039 <a class="code" href="classDelay.html">Delay</a> *allpassDelays[3];
|
||||
00040 <a class="code" href="classDelay.html">Delay</a> *combDelays[4];
|
||||
00041 <a class="code" href="classDelay.html">Delay</a> *outLeftDelay;
|
||||
00042 <a class="code" href="classDelay.html">Delay</a> *outRightDelay;
|
||||
00043 MY_FLOAT allpassCoefficient;
|
||||
00044 MY_FLOAT combCoefficient[4];
|
||||
00045
|
||||
00046 };
|
||||
00047
|
||||
00048 <font class="preprocessor">#endif</font>
|
||||
00049 <font class="preprocessor"></font>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
47
doc/html/JetTabl_8h-source.html
Normal file
47
doc/html/JetTabl_8h-source.html
Normal file
@@ -0,0 +1,47 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>JetTabl.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00014 <font class="comment">/***************************************************/</font>
|
||||
00015
|
||||
00016 <font class="preprocessor">#if !defined(__JETTABL_H)</font>
|
||||
00017 <font class="preprocessor"></font><font class="preprocessor">#define __JETTABL_H</font>
|
||||
00018 <font class="preprocessor"></font>
|
||||
00019 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00020
|
||||
00021 <font class="keyword">class </font><a class="code" href="classJetTabl.html">JetTabl</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00022 {
|
||||
00023 <font class="keyword">public</font>:
|
||||
00025 <a class="code" href="classJetTabl.html#a0">JetTabl</a>();
|
||||
00026
|
||||
00028 <a class="code" href="classJetTabl.html#a1">~JetTabl</a>();
|
||||
00029
|
||||
00031 MY_FLOAT <a class="code" href="classJetTabl.html#a2">lastOut</a>() <font class="keyword">const</font>;
|
||||
00032
|
||||
00034 MY_FLOAT <a class="code" href="classJetTabl.html#a3">tick</a>(MY_FLOAT input);
|
||||
00035
|
||||
00037 MY_FLOAT *<a class="code" href="classJetTabl.html#a3">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00038
|
||||
00039 <font class="keyword">protected</font>:
|
||||
00040 MY_FLOAT lastOutput;
|
||||
00041
|
||||
00042 };
|
||||
00043
|
||||
00044 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
57
doc/html/Mandolin_8h-source.html
Normal file
57
doc/html/Mandolin_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Mandolin.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00028 <font class="comment">/***************************************************/</font>
|
||||
00029
|
||||
00030 <font class="preprocessor">#if !defined(__MANDOLIN_H)</font>
|
||||
00031 <font class="preprocessor"></font><font class="preprocessor">#define __MANDOLIN_H</font>
|
||||
00032 <font class="preprocessor"></font>
|
||||
00033 <font class="preprocessor">#include "PluckTwo.h"</font>
|
||||
00034 <font class="preprocessor">#include "WvIn.h"</font>
|
||||
00035
|
||||
00036 <font class="keyword">class </font><a class="code" href="classMandolin.html">Mandolin</a> : <font class="keyword">public</font> <a class="code" href="classPluckTwo.html">PluckTwo</a>
|
||||
00037 {
|
||||
00038 <font class="keyword">public</font>:
|
||||
00040 <a class="code" href="classMandolin.html#a0">Mandolin</a>(MY_FLOAT lowestFrequency);
|
||||
00041
|
||||
00043 <font class="keyword">virtual</font> <a class="code" href="classMandolin.html#a1">~Mandolin</a>();
|
||||
00044
|
||||
00046 <font class="keywordtype">void</font> <a class="code" href="classMandolin.html#a2">pluck</a>(MY_FLOAT amplitude);
|
||||
00047
|
||||
00049 <font class="keywordtype">void</font> <a class="code" href="classMandolin.html#a2">pluck</a>(MY_FLOAT amplitude,MY_FLOAT position);
|
||||
00050
|
||||
00052 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00053
|
||||
00055 <font class="keywordtype">void</font> <a class="code" href="classMandolin.html#a5">setBodySize</a>(MY_FLOAT size);
|
||||
00056
|
||||
00058 <font class="keyword">virtual</font> MY_FLOAT <a class="code" href="classPluckTwo.html#a9">tick</a>();
|
||||
00059
|
||||
00061 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a8">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value);
|
||||
00062
|
||||
00063 <font class="keyword">protected</font>:
|
||||
00064 <a class="code" href="classWvIn.html">WvIn</a> *soundfile[12];
|
||||
00065 MY_FLOAT directBody;
|
||||
00066 <font class="keywordtype">int</font> mic;
|
||||
00067 <font class="keywordtype">long</font> dampTime;
|
||||
00068 <font class="keywordtype">bool</font> waveDone;
|
||||
00069 };
|
||||
00070
|
||||
00071 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Mesh2D.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00025 <font class="comment">/***************************************************/</font>
|
||||
00026
|
||||
00027 <font class="preprocessor">#if !defined(__MESH2D_H)</font>
|
||||
00028 <font class="preprocessor"></font><font class="preprocessor">#define __MESH2D_H</font>
|
||||
00029 <font class="preprocessor"></font>
|
||||
00030 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00031 <font class="preprocessor">#include "OnePole.h"</font>
|
||||
00032
|
||||
00033 <font class="preprocessor">#define NXMAX ((short)(12))</font>
|
||||
00034 <font class="preprocessor"></font><font class="preprocessor">#define NYMAX ((short)(12))</font>
|
||||
00035 <font class="preprocessor"></font>
|
||||
00036 <font class="keyword">class </font><a class="code" href="classMesh2D.html">Mesh2D</a> : <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00037 {
|
||||
00038 <font class="keyword">public</font>:
|
||||
00040 <a class="code" href="classMesh2D.html#a0">Mesh2D</a>(<font class="keywordtype">short</font> nX, <font class="keywordtype">short</font> nY);
|
||||
00041
|
||||
00043 <a class="code" href="classMesh2D.html#a1">~Mesh2D</a>();
|
||||
00044
|
||||
00046 <font class="keywordtype">void</font> <a class="code" href="classMesh2D.html#a2">clear</a>();
|
||||
00047
|
||||
00049 <font class="keywordtype">void</font> <a class="code" href="classMesh2D.html#a3">setNX</a>(<font class="keywordtype">short</font> lenX);
|
||||
00050
|
||||
00052 <font class="keywordtype">void</font> <a class="code" href="classMesh2D.html#a4">setNY</a>(<font class="keywordtype">short</font> lenY);
|
||||
00053
|
||||
00055 <font class="keywordtype">void</font> <a class="code" href="classMesh2D.html#a5">setInputPosition</a>(MY_FLOAT xFactor, MY_FLOAT yFactor);
|
||||
00056
|
||||
00058 <font class="keywordtype">void</font> <a class="code" href="classMesh2D.html#a6">setDecay</a>(MY_FLOAT decayFactor);
|
||||
00059
|
||||
00061 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00062
|
||||
00064 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00065
|
||||
00067 MY_FLOAT <a class="code" href="classMesh2D.html#a9">energy</a>();
|
||||
00068
|
||||
00070 MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>();
|
||||
00071
|
||||
00073 MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>(MY_FLOAT input);
|
||||
00074
|
||||
00076 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a8">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value);
|
||||
00077
|
||||
00078 <font class="keyword">protected</font>:
|
||||
00079
|
||||
00080 MY_FLOAT tick0();
|
||||
00081 MY_FLOAT tick1();
|
||||
00082 <font class="keywordtype">void</font> clearMesh();
|
||||
00083
|
||||
00084 <font class="keywordtype">short</font> NX, NY;
|
||||
00085 <font class="keywordtype">short</font> xInput, yInput;
|
||||
00086 <a class="code" href="classOnePole.html">OnePole</a> *filterX[NXMAX];
|
||||
00087 <a class="code" href="classOnePole.html">OnePole</a> *filterY[NYMAX];
|
||||
00088 MY_FLOAT v[NXMAX-1][NYMAX-1]; <font class="comment">// junction velocities</font>
|
||||
00089 MY_FLOAT vxp[NXMAX][NYMAX]; <font class="comment">// positive-x velocity wave</font>
|
||||
00090 MY_FLOAT vxm[NXMAX][NYMAX]; <font class="comment">// negative-x velocity wave</font>
|
||||
00091 MY_FLOAT vyp[NXMAX][NYMAX]; <font class="comment">// positive-y velocity wave</font>
|
||||
00092 MY_FLOAT vym[NXMAX][NYMAX]; <font class="comment">// negative-y velocity wave</font>
|
||||
00093
|
||||
00094 <font class="comment">// Alternate buffers</font>
|
||||
00095 MY_FLOAT vxp1[NXMAX][NYMAX]; <font class="comment">// positive-x velocity wave</font>
|
||||
00096 MY_FLOAT vxm1[NXMAX][NYMAX]; <font class="comment">// negative-x velocity wave</font>
|
||||
00097 MY_FLOAT vyp1[NXMAX][NYMAX]; <font class="comment">// positive-y velocity wave</font>
|
||||
00098 MY_FLOAT vym1[NXMAX][NYMAX]; <font class="comment">// negative-y velocity wave</font>
|
||||
00099
|
||||
00100 <font class="keywordtype">int</font> counter; <font class="comment">// time in samples</font>
|
||||
00101
|
||||
00102
|
||||
00103 };
|
||||
00104
|
||||
00105 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
115
doc/html/Messager_8h-source.html
Normal file
115
doc/html/Messager_8h-source.html
Normal file
@@ -0,0 +1,115 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Messager.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00034 <font class="comment">/***************************************************/</font>
|
||||
00035
|
||||
00036 <font class="preprocessor">#if !defined(__MESSAGER_H)</font>
|
||||
00037 <font class="preprocessor"></font><font class="preprocessor">#define __MESSSAGER_H</font>
|
||||
00038 <font class="preprocessor"></font>
|
||||
00039 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00040 <font class="preprocessor">#include "SKINI.h"</font>
|
||||
00041
|
||||
00042 <font class="preprocessor">#define MESSAGE_LENGTH 128</font>
|
||||
00043 <font class="preprocessor"></font><font class="preprocessor">#define MAX_MESSAGES 25</font>
|
||||
00044 <font class="preprocessor"></font>
|
||||
00045 <font class="preprocessor">#if defined(__STK_REALTIME__)</font>
|
||||
00046 <font class="preprocessor"></font>
|
||||
00047 <font class="preprocessor">#include "Thread.h"</font>
|
||||
00048 <font class="preprocessor">#include "Socket.h"</font>
|
||||
00049 <font class="preprocessor">#include "RtMidi.h"</font>
|
||||
00050
|
||||
00051 <font class="preprocessor">#define STK_MIDI 0x0001</font>
|
||||
00052 <font class="preprocessor"></font><font class="preprocessor">#define STK_PIPE 0x0002</font>
|
||||
00053 <font class="preprocessor"></font><font class="preprocessor">#define STK_SOCKET 0x0004</font>
|
||||
00054 <font class="preprocessor"></font>
|
||||
00055 <font class="keyword">extern</font> <font class="stringliteral">"C"</font> THREAD_RETURN THREAD_TYPE stdinHandler(<font class="keywordtype">void</font> * ptr);
|
||||
00056
|
||||
00057 <font class="preprocessor">#if (defined(__OS_IRIX__) || defined(__OS_LINUX__))</font>
|
||||
00058 <font class="preprocessor"></font><font class="preprocessor"> #include <sys/types.h></font>
|
||||
00059 <font class="preprocessor"> #include <sys/time.h></font>
|
||||
00060 <font class="preprocessor">#endif</font>
|
||||
00061 <font class="preprocessor"></font>
|
||||
00062 <font class="preprocessor">#endif // __STK_REALTIME__</font>
|
||||
00063 <font class="preprocessor"></font>
|
||||
00064 <font class="keyword">class </font><a class="code" href="classMessager.html">Messager</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00065 {
|
||||
00066 <font class="keyword">public</font>:
|
||||
00068
|
||||
00075 <a class="code" href="classMessager.html#a0">Messager</a>(<font class="keywordtype">int</font> inputMask = 0);
|
||||
00076
|
||||
00078 <a class="code" href="classMessager.html#a1">~Messager</a>();
|
||||
00079
|
||||
00081
|
||||
00087 <font class="keywordtype">long</font> <a class="code" href="classMessager.html#a2">nextMessage</a>(<font class="keywordtype">void</font>);
|
||||
00088
|
||||
00090 <font class="keywordtype">void</font> <a class="code" href="classMessager.html#a3">setRtDelta</a>(<font class="keywordtype">long</font> nSamples);
|
||||
00091
|
||||
00093 <font class="keywordtype">long</font> <a class="code" href="classMessager.html#a4">getDelta</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00094
|
||||
00096 <font class="keywordtype">long</font> <a class="code" href="classMessager.html#a5">getType</a>() <font class="keyword">const</font>;
|
||||
00097
|
||||
00099 MY_FLOAT <a class="code" href="classMessager.html#a6">getByteTwo</a>() <font class="keyword">const</font>;
|
||||
00100
|
||||
00102 MY_FLOAT <a class="code" href="classMessager.html#a7">getByteThree</a>() <font class="keyword">const</font>;
|
||||
00103
|
||||
00105 <font class="keywordtype">long</font> <a class="code" href="classMessager.html#a8">getChannel</a>() <font class="keyword">const</font>;
|
||||
00106
|
||||
00107 <font class="keyword">protected</font>:
|
||||
00108
|
||||
00109 <a class="code" href="classSKINI.html">SKINI</a> *skini;
|
||||
00110 <font class="keywordtype">long</font> type;
|
||||
00111 <font class="keywordtype">long</font> channel;
|
||||
00112 MY_FLOAT byte2;
|
||||
00113 MY_FLOAT byte3;
|
||||
00114 <font class="keywordtype">int</font> sources;
|
||||
00115 <font class="keywordtype">long</font> delta;
|
||||
00116 <font class="keywordtype">long</font> rtDelta;
|
||||
00117 <font class="keywordtype">char</font> message[MAX_MESSAGES][MESSAGE_LENGTH];
|
||||
00118 <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> messageIndex;
|
||||
00119 <font class="keywordtype">int</font> nMessages;
|
||||
00120
|
||||
00121 <font class="preprocessor">#if defined(__STK_REALTIME__)</font>
|
||||
00122 <font class="preprocessor"></font>
|
||||
00123 <font class="comment">// Check MIDI source for new messages.</font>
|
||||
00124 <font class="keywordtype">bool</font> midiMessage(<font class="keywordtype">void</font>);
|
||||
00125
|
||||
00126 <font class="comment">// Check socket sources for new messages.</font>
|
||||
00127 <font class="keywordtype">bool</font> socketMessage(<font class="keywordtype">void</font>);
|
||||
00128
|
||||
00129 <font class="comment">// Receive and parse socket data.</font>
|
||||
00130 <font class="keywordtype">bool</font> readSocket(<font class="keywordtype">int</font> fd);
|
||||
00131
|
||||
00132 <a class="code" href="classRtMidi.html">RtMidi</a> *midi;
|
||||
00133 <a class="code" href="classThread.html">Thread</a> *thread;
|
||||
00134 <a class="code" href="classSocket.html">Socket</a> *soket;
|
||||
00135
|
||||
00136 <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> nSockets;
|
||||
00137 fd_set mask;
|
||||
00138 <font class="keywordtype">int</font> maxfd;
|
||||
00139 <font class="keywordtype">int</font> pipefd;
|
||||
00140 <font class="keywordtype">int</font> fd[16];
|
||||
00141 <font class="keywordtype">char</font> error[256];
|
||||
00142
|
||||
00143 <font class="preprocessor">#endif // __STK_REALTIME__</font>
|
||||
00144 <font class="preprocessor"></font>
|
||||
00145 };
|
||||
00146
|
||||
00147 <font class="preprocessor">#endif // defined(__MESSAGER_H)</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
47
doc/html/ModalBar_8h-source.html
Normal file
47
doc/html/ModalBar_8h-source.html
Normal file
@@ -0,0 +1,47 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>ModalBar.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00028 <font class="comment">/***************************************************/</font>
|
||||
00029
|
||||
00030 <font class="preprocessor">#if !defined(__MODALBAR_H)</font>
|
||||
00031 <font class="preprocessor"></font><font class="preprocessor">#define __MODALBAR_H</font>
|
||||
00032 <font class="preprocessor"></font>
|
||||
00033 <font class="preprocessor">#include "Modal.h"</font>
|
||||
00034
|
||||
00035 <font class="keyword">class </font><a class="code" href="classModalBar.html">ModalBar</a> : <font class="keyword">public</font> <a class="code" href="classModal.html">Modal</a>
|
||||
00036 {
|
||||
00037 <font class="keyword">public</font>:
|
||||
00039 <a class="code" href="classModalBar.html#a0">ModalBar</a>();
|
||||
00040
|
||||
00042 <a class="code" href="classModalBar.html#a1">~ModalBar</a>();
|
||||
00043
|
||||
00045 <font class="keywordtype">void</font> <a class="code" href="classModalBar.html#a2">setStickHardness</a>(MY_FLOAT hardness);
|
||||
00046
|
||||
00048 <font class="keywordtype">void</font> <a class="code" href="classModalBar.html#a3">setStrikePosition</a>(MY_FLOAT position);
|
||||
00049
|
||||
00051 <font class="keywordtype">void</font> <a class="code" href="classModalBar.html#a4">setPreset</a>(<font class="keywordtype">int</font> preset);
|
||||
00052
|
||||
00054 <font class="keywordtype">void</font> <a class="code" href="classModalBar.html#a5">setModulationDepth</a>(MY_FLOAT mDepth);
|
||||
00055
|
||||
00057 <font class="keywordtype">void</font> <a class="code" href="classModal.html#a13">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value);
|
||||
00058 };
|
||||
00059
|
||||
00060 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
82
doc/html/Modal_8h-source.html
Normal file
82
doc/html/Modal_8h-source.html
Normal file
@@ -0,0 +1,82 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Modal.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00012 <font class="comment">/***************************************************/</font>
|
||||
00013
|
||||
00014 <font class="preprocessor">#if !defined(__MODAL_H)</font>
|
||||
00015 <font class="preprocessor"></font><font class="preprocessor">#define __MODAL_H</font>
|
||||
00016 <font class="preprocessor"></font>
|
||||
00017 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00018 <font class="preprocessor">#include "Envelope.h"</font>
|
||||
00019 <font class="preprocessor">#include "WaveLoop.h"</font>
|
||||
00020 <font class="preprocessor">#include "BiQuad.h"</font>
|
||||
00021 <font class="preprocessor">#include "OnePole.h"</font>
|
||||
00022
|
||||
00023 <font class="keyword">class </font><a class="code" href="classModal.html">Modal</a> : <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00024 {
|
||||
00025 <font class="keyword">public</font>:
|
||||
00027 <a class="code" href="classModal.html#a0">Modal</a>( <font class="keywordtype">int</font> modes = 4 );
|
||||
00028
|
||||
00030 <font class="keyword">virtual</font> <a class="code" href="classModal.html#a1">~Modal</a>();
|
||||
00031
|
||||
00033 <font class="keywordtype">void</font> <a class="code" href="classModal.html#a2">clear</a>();
|
||||
00034
|
||||
00036 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00037
|
||||
00039 <font class="keywordtype">void</font> <a class="code" href="classModal.html#a4">setRatioAndRadius</a>(<font class="keywordtype">int</font> modeIndex, MY_FLOAT ratio, MY_FLOAT radius);
|
||||
00040
|
||||
00042 <font class="keywordtype">void</font> <a class="code" href="classModal.html#a5">setMasterGain</a>(MY_FLOAT aGain);
|
||||
00043
|
||||
00045 <font class="keywordtype">void</font> <a class="code" href="classModal.html#a6">setDirectGain</a>(MY_FLOAT aGain);
|
||||
00046
|
||||
00048 <font class="keywordtype">void</font> <a class="code" href="classModal.html#a7">setModeGain</a>(<font class="keywordtype">int</font> modeIndex, MY_FLOAT gain);
|
||||
00049
|
||||
00051 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classModal.html#a8">strike</a>(MY_FLOAT amplitude);
|
||||
00052
|
||||
00054 <font class="keywordtype">void</font> <a class="code" href="classModal.html#a9">damp</a>(MY_FLOAT amplitude);
|
||||
00055
|
||||
00057 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00058
|
||||
00060 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00061
|
||||
00063 <font class="keyword">virtual</font> MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>();
|
||||
00064
|
||||
00066 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a8">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value) = 0;
|
||||
00067
|
||||
00068 <font class="keyword">protected</font>:
|
||||
00069 <a class="code" href="classEnvelope.html">Envelope</a> *envelope;
|
||||
00070 <a class="code" href="classWvIn.html">WvIn</a> *wave;
|
||||
00071 <a class="code" href="classBiQuad.html">BiQuad</a> **filters;
|
||||
00072 <a class="code" href="classOnePole.html">OnePole</a> *onepole;
|
||||
00073 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
|
||||
00074 <font class="keywordtype">int</font> nModes;
|
||||
00075 MY_FLOAT vibratoGain;
|
||||
00076 MY_FLOAT masterGain;
|
||||
00077 MY_FLOAT directGain;
|
||||
00078 MY_FLOAT stickHardness;
|
||||
00079 MY_FLOAT strikePosition;
|
||||
00080 MY_FLOAT baseFrequency;
|
||||
00081 MY_FLOAT *ratios;
|
||||
00082 MY_FLOAT *radii;
|
||||
00083
|
||||
00084 };
|
||||
00085
|
||||
00086 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
63
doc/html/Modulate_8h-source.html
Normal file
63
doc/html/Modulate_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Modulate.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00011 <font class="comment">/***************************************************/</font>
|
||||
00012
|
||||
00013 <font class="preprocessor">#if !defined(__MODULATE_H)</font>
|
||||
00014 <font class="preprocessor"></font><font class="preprocessor">#define __MODULATE_H</font>
|
||||
00015 <font class="preprocessor"></font>
|
||||
00016 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00017 <font class="preprocessor">#include "WaveLoop.h"</font>
|
||||
00018 <font class="preprocessor">#include "SubNoise.h"</font>
|
||||
00019 <font class="preprocessor">#include "OnePole.h"</font>
|
||||
00020
|
||||
00021 <font class="keyword">class </font><a class="code" href="classModulate.html">Modulate</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00022 {
|
||||
00023 <font class="keyword">public</font>:
|
||||
00025 <a class="code" href="classModulate.html#a0">Modulate</a>();
|
||||
00026
|
||||
00028 <a class="code" href="classModulate.html#a1">~Modulate</a>();
|
||||
00029
|
||||
00031 <font class="keywordtype">void</font> <a class="code" href="classModulate.html#a2">reset</a>();
|
||||
00032
|
||||
00034 <font class="keywordtype">void</font> <a class="code" href="classModulate.html#a3">setVibratoRate</a>(MY_FLOAT aRate);
|
||||
00035
|
||||
00037 <font class="keywordtype">void</font> <a class="code" href="classModulate.html#a4">setVibratoGain</a>(MY_FLOAT aGain);
|
||||
00038
|
||||
00040 <font class="keywordtype">void</font> <a class="code" href="classModulate.html#a5">setRandomGain</a>(MY_FLOAT aGain);
|
||||
00041
|
||||
00043 MY_FLOAT <a class="code" href="classModulate.html#a6">tick</a>();
|
||||
00044
|
||||
00046 <font class="keyword">virtual</font> MY_FLOAT *<a class="code" href="classModulate.html#a6">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00047
|
||||
00049 MY_FLOAT <a class="code" href="classModulate.html#a8">lastOut</a>() <font class="keyword">const</font>;
|
||||
00050
|
||||
00051 <font class="keyword">protected</font>:
|
||||
00052 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
|
||||
00053 <a class="code" href="classSubNoise.html">SubNoise</a> *noise;
|
||||
00054 <a class="code" href="classOnePole.html">OnePole</a> *filter;
|
||||
00055 MY_FLOAT vibratoGain;
|
||||
00056 MY_FLOAT randomGain;
|
||||
00057 MY_FLOAT lastOutput;
|
||||
00058
|
||||
00059 };
|
||||
00060
|
||||
00061 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
57
doc/html/Moog_8h-source.html
Normal file
57
doc/html/Moog_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Moog.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00019 <font class="comment">/***************************************************/</font>
|
||||
00020
|
||||
00021 <font class="preprocessor">#if !defined(__MOOG_H)</font>
|
||||
00022 <font class="preprocessor"></font><font class="preprocessor">#define __MOOG_H</font>
|
||||
00023 <font class="preprocessor"></font>
|
||||
00024 <font class="preprocessor">#include "Sampler.h"</font>
|
||||
00025 <font class="preprocessor">#include "FormSwep.h"</font>
|
||||
00026
|
||||
00027 <font class="keyword">class </font><a class="code" href="classMoog.html">Moog</a> : <font class="keyword">public</font> <a class="code" href="classSampler.html">Sampler</a>
|
||||
00028 {
|
||||
00029 <font class="keyword">public</font>:
|
||||
00031 <a class="code" href="classMoog.html#a0">Moog</a>();
|
||||
00032
|
||||
00034 <a class="code" href="classMoog.html#a1">~Moog</a>();
|
||||
00035
|
||||
00037 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classSampler.html#a3">setFrequency</a>(MY_FLOAT frequency);
|
||||
00038
|
||||
00040 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00041
|
||||
00043 <font class="keywordtype">void</font> <a class="code" href="classMoog.html#a4">setModulationSpeed</a>(MY_FLOAT mSpeed);
|
||||
00044
|
||||
00046 <font class="keywordtype">void</font> <a class="code" href="classMoog.html#a5">setModulationDepth</a>(MY_FLOAT mDepth);
|
||||
00047
|
||||
00049 <font class="keyword">virtual</font> MY_FLOAT <a class="code" href="classSampler.html#a7">tick</a>();
|
||||
00050
|
||||
00052 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classSampler.html#a8">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value);
|
||||
00053
|
||||
00054 <font class="keyword">protected</font>:
|
||||
00055 <a class="code" href="classFormSwep.html">FormSwep</a> *filters[2];
|
||||
00056 MY_FLOAT modDepth;
|
||||
00057 MY_FLOAT filterQ;
|
||||
00058 MY_FLOAT filterRate;
|
||||
00059
|
||||
00060 };
|
||||
00061
|
||||
00062 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
53
doc/html/NRev_8h-source.html
Normal file
53
doc/html/NRev_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>NRev.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00017 <font class="comment">/***************************************************/</font>
|
||||
00018
|
||||
00019 <font class="preprocessor">#if !defined(__NREV_H)</font>
|
||||
00020 <font class="preprocessor"></font><font class="preprocessor">#define __NREV_H</font>
|
||||
00021 <font class="preprocessor"></font>
|
||||
00022 <font class="preprocessor">#include "Reverb.h"</font>
|
||||
00023 <font class="preprocessor">#include "Delay.h"</font>
|
||||
00024
|
||||
00025 <font class="keyword">class </font><a class="code" href="classNRev.html">NRev</a> : <font class="keyword">public</font> <a class="code" href="classReverb.html">Reverb</a>
|
||||
00026 {
|
||||
00027 <font class="keyword">public</font>:
|
||||
00028 <font class="comment">// Class constructor taking a T60 decay time argument.</font>
|
||||
00029 NRev(MY_FLOAT T60);
|
||||
00030
|
||||
00031 <font class="comment">// Class destructor.</font>
|
||||
00032 ~NRev();
|
||||
00033
|
||||
00035 <font class="keywordtype">void</font> <a class="code" href="classReverb.html#a2">clear</a>();
|
||||
00036
|
||||
00038 MY_FLOAT <a class="code" href="classReverb.html#a7">tick</a>(MY_FLOAT input);
|
||||
00039
|
||||
00040 <font class="keyword">protected</font>:
|
||||
00041 <a class="code" href="classDelay.html">Delay</a> *allpassDelays[8];
|
||||
00042 <a class="code" href="classDelay.html">Delay</a> *combDelays[6];
|
||||
00043 MY_FLOAT allpassCoefficient;
|
||||
00044 MY_FLOAT combCoefficient[6];
|
||||
00045 MY_FLOAT lowpassState;
|
||||
00046
|
||||
00047 };
|
||||
00048
|
||||
00049 <font class="preprocessor">#endif</font>
|
||||
00050 <font class="preprocessor"></font>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
49
doc/html/Noise_8h-source.html
Normal file
49
doc/html/Noise_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Noise.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00011 <font class="comment">/***************************************************/</font>
|
||||
00012
|
||||
00013 <font class="preprocessor">#if !defined(__NOISE_H)</font>
|
||||
00014 <font class="preprocessor"></font><font class="preprocessor">#define __NOISE_H</font>
|
||||
00015 <font class="preprocessor"></font>
|
||||
00016 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00017
|
||||
00018 <font class="keyword">class </font><a class="code" href="classNoise.html">Noise</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00019 {
|
||||
00020 <font class="keyword">public</font>:
|
||||
00021
|
||||
00023 <a class="code" href="classNoise.html#a0">Noise</a>();
|
||||
00024
|
||||
00026 <font class="keyword">virtual</font> <a class="code" href="classNoise.html#a1">~Noise</a>();
|
||||
00027
|
||||
00029 <font class="keyword">virtual</font> MY_FLOAT <a class="code" href="classNoise.html#a2">tick</a>();
|
||||
00030
|
||||
00032 <font class="keyword">virtual</font> MY_FLOAT *<a class="code" href="classNoise.html#a2">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00033
|
||||
00035 MY_FLOAT <a class="code" href="classNoise.html#a4">lastOut</a>() <font class="keyword">const</font>;
|
||||
00036
|
||||
00037 <font class="keyword">protected</font>:
|
||||
00038
|
||||
00039 MY_FLOAT lastOutput;
|
||||
00040
|
||||
00041 };
|
||||
00042
|
||||
00043 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
60
doc/html/OnePole_8h-source.html
Normal file
60
doc/html/OnePole_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>OnePole.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00013 <font class="comment">/***************************************************/</font>
|
||||
00014
|
||||
00015 <font class="preprocessor">#if !defined(__ONEPOLE_H)</font>
|
||||
00016 <font class="preprocessor"></font><font class="preprocessor">#define __ONEPOLE_H</font>
|
||||
00017 <font class="preprocessor"></font>
|
||||
00018 <font class="preprocessor">#include "Filter.h"</font>
|
||||
00019
|
||||
00020 <font class="keyword">class </font><a class="code" href="classOnePole.html">OnePole</a> : <font class="keyword">protected</font> <a class="code" href="classFilter.html">Filter</a>
|
||||
00021 {
|
||||
00022 <font class="keyword">public</font>:
|
||||
00023
|
||||
00025 <a class="code" href="classOnePole.html#a0">OnePole</a>();
|
||||
00026
|
||||
00028 <a class="code" href="classOnePole.html#a0">OnePole</a>(MY_FLOAT thePole);
|
||||
00029
|
||||
00031 <a class="code" href="classOnePole.html#a2">~OnePole</a>();
|
||||
00032
|
||||
00034 <font class="keywordtype">void</font> <a class="code" href="classFilter.html#a3">clear</a>(<font class="keywordtype">void</font>);
|
||||
00035
|
||||
00037 <font class="keywordtype">void</font> <a class="code" href="classOnePole.html#a4">setB0</a>(MY_FLOAT b0);
|
||||
00038
|
||||
00040 <font class="keywordtype">void</font> <a class="code" href="classOnePole.html#a5">setA1</a>(MY_FLOAT a1);
|
||||
00041
|
||||
00043
|
||||
00050 <font class="keywordtype">void</font> <a class="code" href="classOnePole.html#a6">setPole</a>(MY_FLOAT thePole);
|
||||
00051
|
||||
00053
|
||||
00057 <font class="keywordtype">void</font> <a class="code" href="classFilter.html#a7">setGain</a>(MY_FLOAT theGain);
|
||||
00058
|
||||
00060 MY_FLOAT <a class="code" href="classFilter.html#a8">getGain</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00061
|
||||
00063 MY_FLOAT <a class="code" href="classFilter.html#a9">lastOut</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00064
|
||||
00066 MY_FLOAT <a class="code" href="classFilter.html#a10">tick</a>(MY_FLOAT sample);
|
||||
00067
|
||||
00069 MY_FLOAT *<a class="code" href="classFilter.html#a10">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00070 };
|
||||
00071
|
||||
00072 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
60
doc/html/OneZero_8h-source.html
Normal file
60
doc/html/OneZero_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>OneZero.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00013 <font class="comment">/***************************************************/</font>
|
||||
00014
|
||||
00015 <font class="preprocessor">#if !defined(__ONEZERO_H)</font>
|
||||
00016 <font class="preprocessor"></font><font class="preprocessor">#define __ONEZERO_H</font>
|
||||
00017 <font class="preprocessor"></font>
|
||||
00018 <font class="preprocessor">#include "Filter.h"</font>
|
||||
00019
|
||||
00020 <font class="keyword">class </font><a class="code" href="classOneZero.html">OneZero</a> : <font class="keyword">protected</font> <a class="code" href="classFilter.html">Filter</a>
|
||||
00021 {
|
||||
00022 <font class="keyword">public</font>:
|
||||
00023
|
||||
00025 <a class="code" href="classOneZero.html#a0">OneZero</a>();
|
||||
00026
|
||||
00028 <a class="code" href="classOneZero.html#a0">OneZero</a>(MY_FLOAT theZero);
|
||||
00029
|
||||
00031 <a class="code" href="classOneZero.html#a2">~OneZero</a>();
|
||||
00032
|
||||
00034 <font class="keywordtype">void</font> <a class="code" href="classFilter.html#a3">clear</a>(<font class="keywordtype">void</font>);
|
||||
00035
|
||||
00037 <font class="keywordtype">void</font> <a class="code" href="classOneZero.html#a4">setB0</a>(MY_FLOAT b0);
|
||||
00038
|
||||
00040 <font class="keywordtype">void</font> <a class="code" href="classOneZero.html#a5">setB1</a>(MY_FLOAT b1);
|
||||
00041
|
||||
00043
|
||||
00050 <font class="keywordtype">void</font> <a class="code" href="classOneZero.html#a6">setZero</a>(MY_FLOAT theZero);
|
||||
00051
|
||||
00053
|
||||
00057 <font class="keywordtype">void</font> <a class="code" href="classFilter.html#a7">setGain</a>(MY_FLOAT theGain);
|
||||
00058
|
||||
00060 MY_FLOAT <a class="code" href="classFilter.html#a8">getGain</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00061
|
||||
00063 MY_FLOAT <a class="code" href="classFilter.html#a9">lastOut</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00064
|
||||
00066 MY_FLOAT <a class="code" href="classFilter.html#a10">tick</a>(MY_FLOAT sample);
|
||||
00067
|
||||
00069 MY_FLOAT *<a class="code" href="classFilter.html#a10">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00070 };
|
||||
00071
|
||||
00072 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
52
doc/html/PRCRev_8h-source.html
Normal file
52
doc/html/PRCRev_8h-source.html
Normal file
@@ -0,0 +1,52 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>PRCRev.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00015 <font class="comment">/***************************************************/</font>
|
||||
00016
|
||||
00017 <font class="preprocessor">#if !defined(__PRCREV_H)</font>
|
||||
00018 <font class="preprocessor"></font><font class="preprocessor">#define __PRCREV_H</font>
|
||||
00019 <font class="preprocessor"></font>
|
||||
00020 <font class="preprocessor">#include "Reverb.h"</font>
|
||||
00021 <font class="preprocessor">#include "Delay.h"</font>
|
||||
00022
|
||||
00023 <font class="keyword">class </font><a class="code" href="classPRCRev.html">PRCRev</a> : <font class="keyword">public</font> <a class="code" href="classReverb.html">Reverb</a>
|
||||
00024 {
|
||||
00025 <font class="keyword">public</font>:
|
||||
00026 <font class="comment">// Class constructor taking a T60 decay time argument.</font>
|
||||
00027 PRCRev(MY_FLOAT T60);
|
||||
00028
|
||||
00029 <font class="comment">// Class destructor.</font>
|
||||
00030 ~PRCRev();
|
||||
00031
|
||||
00033 <font class="keywordtype">void</font> <a class="code" href="classReverb.html#a2">clear</a>();
|
||||
00034
|
||||
00036 MY_FLOAT <a class="code" href="classReverb.html#a7">tick</a>(MY_FLOAT input);
|
||||
00037
|
||||
00038 <font class="keyword">protected</font>:
|
||||
00039 <a class="code" href="classDelay.html">Delay</a> *allpassDelays[2];
|
||||
00040 <a class="code" href="classDelay.html">Delay</a> *combDelays[2];
|
||||
00041 MY_FLOAT allpassCoefficient;
|
||||
00042 MY_FLOAT combCoefficient[2];
|
||||
00043
|
||||
00044 };
|
||||
00045
|
||||
00046 <font class="preprocessor">#endif</font>
|
||||
00047 <font class="preprocessor"></font>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
43
doc/html/PercFlut_8h-source.html
Normal file
43
doc/html/PercFlut_8h-source.html
Normal file
@@ -0,0 +1,43 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>PercFlut.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00027 <font class="comment">/***************************************************/</font>
|
||||
00028
|
||||
00029 <font class="preprocessor">#if !defined(__PERCFLUT_H)</font>
|
||||
00030 <font class="preprocessor"></font><font class="preprocessor">#define __PERCFLUT_H</font>
|
||||
00031 <font class="preprocessor"></font>
|
||||
00032 <font class="preprocessor">#include "FM.h"</font>
|
||||
00033
|
||||
00034 <font class="keyword">class </font><a class="code" href="classPercFlut.html">PercFlut</a> : <font class="keyword">public</font> <a class="code" href="classFM.html">FM</a>
|
||||
00035 {
|
||||
00036 <font class="keyword">public</font>:
|
||||
00038 <a class="code" href="classPercFlut.html#a0">PercFlut</a>();
|
||||
00039
|
||||
00041 <a class="code" href="classPercFlut.html#a1">~PercFlut</a>();
|
||||
00042
|
||||
00044 <font class="keywordtype">void</font> <a class="code" href="classFM.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00045
|
||||
00047 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00048
|
||||
00050 MY_FLOAT <a class="code" href="classFM.html#a14">tick</a>();
|
||||
00051 };
|
||||
00052
|
||||
00053 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
60
doc/html/PitShift_8h-source.html
Normal file
60
doc/html/PitShift_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>PitShift.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00010 <font class="comment">/***************************************************/</font>
|
||||
00011
|
||||
00012 <font class="preprocessor">#if !defined(__PITSHIFT_H)</font>
|
||||
00013 <font class="preprocessor"></font><font class="preprocessor">#define __PITSHIFT_H</font>
|
||||
00014 <font class="preprocessor"></font>
|
||||
00015 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00016 <font class="preprocessor">#include "DelayL.h"</font>
|
||||
00017
|
||||
00018 <font class="keyword">class </font><a class="code" href="classPitShift.html">PitShift</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00019 {
|
||||
00020 <font class="keyword">public</font>:
|
||||
00022 <a class="code" href="classPitShift.html#a0">PitShift</a>();
|
||||
00023
|
||||
00025 <a class="code" href="classPitShift.html#a1">~PitShift</a>();
|
||||
00026
|
||||
00028 <font class="keywordtype">void</font> <a class="code" href="classPitShift.html#a2">clear</a>();
|
||||
00029
|
||||
00031 <font class="keywordtype">void</font> <a class="code" href="classPitShift.html#a3">setShift</a>(MY_FLOAT shift);
|
||||
00032
|
||||
00034 <font class="keywordtype">void</font> <a class="code" href="classPitShift.html#a4">setEffectMix</a>(MY_FLOAT mix);
|
||||
00035
|
||||
00037 MY_FLOAT <a class="code" href="classPitShift.html#a5">lastOut</a>() <font class="keyword">const</font>;
|
||||
00038
|
||||
00040 MY_FLOAT <a class="code" href="classPitShift.html#a6">tick</a>(MY_FLOAT input);
|
||||
00041
|
||||
00043 MY_FLOAT *<a class="code" href="classPitShift.html#a6">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00044
|
||||
00045 <font class="keyword">protected</font>:
|
||||
00046 <a class="code" href="classDelay.html">Delay</a> *delayLine[2];
|
||||
00047 MY_FLOAT lastOutput;
|
||||
00048 MY_FLOAT delay[2];
|
||||
00049 MY_FLOAT env[2];
|
||||
00050 MY_FLOAT effectMix;
|
||||
00051 MY_FLOAT rate;
|
||||
00052
|
||||
00053 };
|
||||
00054
|
||||
00055 <font class="preprocessor">#endif</font>
|
||||
00056 <font class="preprocessor"></font>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
73
doc/html/PluckTwo_8h-source.html
Normal file
73
doc/html/PluckTwo_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>PluckTwo.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00019 <font class="comment">/***************************************************/</font>
|
||||
00020
|
||||
00021 <font class="preprocessor">#if !defined(__PLUCKTWO_H)</font>
|
||||
00022 <font class="preprocessor"></font><font class="preprocessor">#define __PLUCKTWO_H</font>
|
||||
00023 <font class="preprocessor"></font>
|
||||
00024 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00025 <font class="preprocessor">#include "DelayL.h"</font>
|
||||
00026 <font class="preprocessor">#include "DelayA.h"</font>
|
||||
00027 <font class="preprocessor">#include "OneZero.h"</font>
|
||||
00028
|
||||
00029 <font class="keyword">class </font><a class="code" href="classPluckTwo.html">PluckTwo</a> : <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00030 {
|
||||
00031 <font class="keyword">public</font>:
|
||||
00033 <a class="code" href="classPluckTwo.html#a0">PluckTwo</a>(MY_FLOAT lowestFrequency);
|
||||
00034
|
||||
00036 <font class="keyword">virtual</font> <a class="code" href="classPluckTwo.html#a1">~PluckTwo</a>();
|
||||
00037
|
||||
00039 <font class="keywordtype">void</font> <a class="code" href="classPluckTwo.html#a2">clear</a>();
|
||||
00040
|
||||
00042 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00043
|
||||
00045 <font class="keywordtype">void</font> <a class="code" href="classPluckTwo.html#a4">setDetune</a>(MY_FLOAT detune);
|
||||
00046
|
||||
00048 <font class="keywordtype">void</font> <a class="code" href="classPluckTwo.html#a5">setFreqAndDetune</a>(MY_FLOAT frequency, MY_FLOAT detune);
|
||||
00049
|
||||
00051 <font class="keywordtype">void</font> <a class="code" href="classPluckTwo.html#a6">setPluckPosition</a>(MY_FLOAT position);
|
||||
00052
|
||||
00054
|
||||
00059 <font class="keywordtype">void</font> <a class="code" href="classPluckTwo.html#a7">setBaseLoopGain</a>(MY_FLOAT aGain);
|
||||
00060
|
||||
00062 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00063
|
||||
00065 <font class="keyword">virtual</font> MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>() = 0;
|
||||
00066
|
||||
00067 <font class="keyword">protected</font>:
|
||||
00068 <a class="code" href="classDelayA.html">DelayA</a> *delayLine;
|
||||
00069 <a class="code" href="classDelayA.html">DelayA</a> *delayLine2;
|
||||
00070 <a class="code" href="classDelayL.html">DelayL</a> *combDelay;
|
||||
00071 <a class="code" href="classOneZero.html">OneZero</a> *filter;
|
||||
00072 <a class="code" href="classOneZero.html">OneZero</a> *filter2;
|
||||
00073 <font class="keywordtype">long</font> length;
|
||||
00074 MY_FLOAT loopGain;
|
||||
00075 MY_FLOAT baseLoopGain;
|
||||
00076 MY_FLOAT lastFrequency;
|
||||
00077 MY_FLOAT lastLength;
|
||||
00078 MY_FLOAT detuning;
|
||||
00079 MY_FLOAT pluckAmplitude;
|
||||
00080 MY_FLOAT pluckPosition;
|
||||
00081
|
||||
00082 };
|
||||
00083
|
||||
00084 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
63
doc/html/Plucked_8h-source.html
Normal file
63
doc/html/Plucked_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Plucked.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00018 <font class="comment">/***************************************************/</font>
|
||||
00019
|
||||
00020 <font class="preprocessor">#if !defined(__PLUCKED_H)</font>
|
||||
00021 <font class="preprocessor"></font><font class="preprocessor">#define __PLUCKED_H</font>
|
||||
00022 <font class="preprocessor"></font>
|
||||
00023 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00024 <font class="preprocessor">#include "DelayA.h"</font>
|
||||
00025 <font class="preprocessor">#include "OneZero.h"</font>
|
||||
00026 <font class="preprocessor">#include "OnePole.h"</font>
|
||||
00027 <font class="preprocessor">#include "Noise.h"</font>
|
||||
00028
|
||||
00029 <font class="keyword">class </font><a class="code" href="classPlucked.html">Plucked</a> : <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00030 {
|
||||
00031 <font class="keyword">public</font>:
|
||||
00033 <a class="code" href="classPlucked.html#a0">Plucked</a>(MY_FLOAT lowestFrequency);
|
||||
00034
|
||||
00036 <a class="code" href="classPlucked.html#a1">~Plucked</a>();
|
||||
00037
|
||||
00039 <font class="keywordtype">void</font> <a class="code" href="classPlucked.html#a2">clear</a>();
|
||||
00040
|
||||
00042 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00043
|
||||
00045 <font class="keywordtype">void</font> <a class="code" href="classPlucked.html#a4">pluck</a>(MY_FLOAT amplitude);
|
||||
00046
|
||||
00048 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00049
|
||||
00051 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00052
|
||||
00054 <font class="keyword">virtual</font> MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>();
|
||||
00055
|
||||
00056 <font class="keyword">protected</font>:
|
||||
00057 <a class="code" href="classDelayA.html">DelayA</a> *delayLine;
|
||||
00058 <a class="code" href="classOneZero.html">OneZero</a> *loopFilter;
|
||||
00059 <a class="code" href="classOnePole.html">OnePole</a> *pickFilter;
|
||||
00060 <a class="code" href="classNoise.html">Noise</a> *noise;
|
||||
00061 <font class="keywordtype">long</font> length;
|
||||
00062 MY_FLOAT loopGain;
|
||||
00063
|
||||
00064 };
|
||||
00065
|
||||
00066 <font class="preprocessor">#endif</font>
|
||||
00067 <font class="preprocessor"></font>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
63
doc/html/PoleZero_8h-source.html
Normal file
63
doc/html/PoleZero_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>PoleZero.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00013 <font class="comment">/***************************************************/</font>
|
||||
00014
|
||||
00015 <font class="preprocessor">#if !defined(__POLEZERO_H)</font>
|
||||
00016 <font class="preprocessor"></font><font class="preprocessor">#define __POLEZERO_H</font>
|
||||
00017 <font class="preprocessor"></font>
|
||||
00018 <font class="preprocessor">#include "Filter.h"</font>
|
||||
00019
|
||||
00020 <font class="keyword">class </font><a class="code" href="classPoleZero.html">PoleZero</a> : <font class="keyword">protected</font> <a class="code" href="classFilter.html">Filter</a>
|
||||
00021 {
|
||||
00022 <font class="keyword">public</font>:
|
||||
00023
|
||||
00025 <a class="code" href="classPoleZero.html#a0">PoleZero</a>();
|
||||
00026
|
||||
00028 <a class="code" href="classPoleZero.html#a1">~PoleZero</a>();
|
||||
00029
|
||||
00031 <font class="keywordtype">void</font> <a class="code" href="classFilter.html#a3">clear</a>(<font class="keywordtype">void</font>);
|
||||
00032
|
||||
00034 <font class="keywordtype">void</font> <a class="code" href="classPoleZero.html#a3">setB0</a>(MY_FLOAT b0);
|
||||
00035
|
||||
00037 <font class="keywordtype">void</font> <a class="code" href="classPoleZero.html#a4">setB1</a>(MY_FLOAT b1);
|
||||
00038
|
||||
00040 <font class="keywordtype">void</font> <a class="code" href="classPoleZero.html#a5">setA1</a>(MY_FLOAT a1);
|
||||
00041
|
||||
00043
|
||||
00048 <font class="keywordtype">void</font> <a class="code" href="classPoleZero.html#a6">setAllpass</a>(MY_FLOAT coefficient);
|
||||
00049
|
||||
00051
|
||||
00057 <font class="keywordtype">void</font> <a class="code" href="classPoleZero.html#a7">setBlockZero</a>(MY_FLOAT thePole = 0.99);
|
||||
00058
|
||||
00060
|
||||
00064 <font class="keywordtype">void</font> <a class="code" href="classFilter.html#a7">setGain</a>(MY_FLOAT theGain);
|
||||
00065
|
||||
00067 MY_FLOAT <a class="code" href="classFilter.html#a8">getGain</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00068
|
||||
00070 MY_FLOAT <a class="code" href="classFilter.html#a9">lastOut</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00071
|
||||
00073 MY_FLOAT <a class="code" href="classFilter.html#a10">tick</a>(MY_FLOAT sample);
|
||||
00074
|
||||
00076 MY_FLOAT *<a class="code" href="classFilter.html#a10">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00077 };
|
||||
00078
|
||||
00079 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
56
doc/html/ReedTabl_8h-source.html
Normal file
56
doc/html/ReedTabl_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>ReedTabl.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00018 <font class="comment">/***************************************************/</font>
|
||||
00019
|
||||
00020 <font class="preprocessor">#if !defined(__REEDTABL_H)</font>
|
||||
00021 <font class="preprocessor"></font><font class="preprocessor">#define __REEDTABL_H</font>
|
||||
00022 <font class="preprocessor"></font>
|
||||
00023 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00024
|
||||
00025 <font class="keyword">class </font><a class="code" href="classReedTabl.html">ReedTabl</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00026 {
|
||||
00027 <font class="keyword">public</font>:
|
||||
00029 <a class="code" href="classReedTabl.html#a0">ReedTabl</a>();
|
||||
00030
|
||||
00032 <a class="code" href="classReedTabl.html#a1">~ReedTabl</a>();
|
||||
00033
|
||||
00035
|
||||
00040 <font class="keywordtype">void</font> <a class="code" href="classReedTabl.html#a2">setOffset</a>(MY_FLOAT aValue);
|
||||
00041
|
||||
00043
|
||||
00048 <font class="keywordtype">void</font> <a class="code" href="classReedTabl.html#a3">setSlope</a>(MY_FLOAT aValue);
|
||||
00049
|
||||
00051 MY_FLOAT <a class="code" href="classReedTabl.html#a4">lastOut</a>() <font class="keyword">const</font>;
|
||||
00052
|
||||
00054
|
||||
00058 MY_FLOAT <a class="code" href="classReedTabl.html#a5">tick</a>(MY_FLOAT input);
|
||||
00059
|
||||
00061 MY_FLOAT *<a class="code" href="classReedTabl.html#a5">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00062
|
||||
00063 <font class="keyword">protected</font>:
|
||||
00064 MY_FLOAT offSet;
|
||||
00065 MY_FLOAT slope;
|
||||
00066 MY_FLOAT lastOutput;
|
||||
00067
|
||||
00068 };
|
||||
00069
|
||||
00070 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
70
doc/html/Resonate_8h-source.html
Normal file
70
doc/html/Resonate_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Resonate.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00018 <font class="comment">/***************************************************/</font>
|
||||
00019
|
||||
00020 <font class="preprocessor">#if !defined(__RESONATE_H)</font>
|
||||
00021 <font class="preprocessor"></font><font class="preprocessor">#define __RESONATE_H</font>
|
||||
00022 <font class="preprocessor"></font>
|
||||
00023 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00024 <font class="preprocessor">#include "ADSR.h"</font>
|
||||
00025 <font class="preprocessor">#include "BiQuad.h"</font>
|
||||
00026 <font class="preprocessor">#include "Noise.h"</font>
|
||||
00027
|
||||
00028 <font class="keyword">class </font><a class="code" href="classResonate.html">Resonate</a> : <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00029 {
|
||||
00030 <font class="keyword">public</font>:
|
||||
00032 <a class="code" href="classResonate.html#a0">Resonate</a>();
|
||||
00033
|
||||
00035 <a class="code" href="classResonate.html#a1">~Resonate</a>();
|
||||
00036
|
||||
00038 <font class="keywordtype">void</font> <a class="code" href="classResonate.html#a2">clear</a>();
|
||||
00039
|
||||
00041 <font class="keywordtype">void</font> <a class="code" href="classResonate.html#a3">setResonance</a>(MY_FLOAT frequency, MY_FLOAT radius);
|
||||
00042
|
||||
00044 <font class="keywordtype">void</font> <a class="code" href="classResonate.html#a4">setNotch</a>(MY_FLOAT frequency, MY_FLOAT radius);
|
||||
00045
|
||||
00047 <font class="keywordtype">void</font> <a class="code" href="classResonate.html#a5">setEqualGainZeroes</a>();
|
||||
00048
|
||||
00050 <font class="keywordtype">void</font> <a class="code" href="classResonate.html#a6">keyOn</a>();
|
||||
00051
|
||||
00053 <font class="keywordtype">void</font> <a class="code" href="classResonate.html#a7">keyOff</a>();
|
||||
00054
|
||||
00056 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00057
|
||||
00059 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00060
|
||||
00062 MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>();
|
||||
00063
|
||||
00065 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a8">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value);
|
||||
00066
|
||||
00067 <font class="keyword">protected</font>:
|
||||
00068 <a class="code" href="classADSR.html">ADSR</a> *adsr;
|
||||
00069 <a class="code" href="classBiQuad.html">BiQuad</a> *filter;
|
||||
00070 <a class="code" href="classNoise.html">Noise</a> *noise;
|
||||
00071 MY_FLOAT poleFrequency;
|
||||
00072 MY_FLOAT poleRadius;
|
||||
00073 MY_FLOAT zeroFrequency;
|
||||
00074 MY_FLOAT zeroRadius;
|
||||
00075
|
||||
00076 };
|
||||
00077
|
||||
00078 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
61
doc/html/Reverb_8h-source.html
Normal file
61
doc/html/Reverb_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Reverb.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00010 <font class="comment">/***************************************************/</font>
|
||||
00011
|
||||
00012 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00013
|
||||
00014 <font class="preprocessor">#if !defined(__REVERB_H)</font>
|
||||
00015 <font class="preprocessor"></font><font class="preprocessor">#define __REVERB_H</font>
|
||||
00016 <font class="preprocessor"></font>
|
||||
00017 <font class="keyword">class </font><a class="code" href="classReverb.html">Reverb</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00018 {
|
||||
00019 <font class="keyword">public</font>:
|
||||
00021 <a class="code" href="classReverb.html#a0">Reverb</a>();
|
||||
00022
|
||||
00024 <font class="keyword">virtual</font> <a class="code" href="classReverb.html#a1">~Reverb</a>();
|
||||
00025
|
||||
00027 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classReverb.html#a2">clear</a>() = 0;
|
||||
00028
|
||||
00030 <font class="keywordtype">void</font> <a class="code" href="classReverb.html#a3">setEffectMix</a>(MY_FLOAT mix);
|
||||
00031
|
||||
00033 MY_FLOAT <a class="code" href="classReverb.html#a4">lastOut</a>() <font class="keyword">const</font>;
|
||||
00034
|
||||
00036 MY_FLOAT <a class="code" href="classReverb.html#a5">lastOutLeft</a>() <font class="keyword">const</font>;
|
||||
00037
|
||||
00039 MY_FLOAT <a class="code" href="classReverb.html#a6">lastOutRight</a>() <font class="keyword">const</font>;
|
||||
00040
|
||||
00042 <font class="keyword">virtual</font> MY_FLOAT <a class="code" href="classReverb.html#a7">tick</a>(MY_FLOAT input) = 0;
|
||||
00043
|
||||
00045 <font class="keyword">virtual</font> MY_FLOAT *<a class="code" href="classReverb.html#a7">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00046
|
||||
00047 <font class="keyword">protected</font>:
|
||||
00048
|
||||
00049 <font class="comment">// Returns true if argument value is prime.</font>
|
||||
00050 <font class="keywordtype">bool</font> isPrime(<font class="keywordtype">int</font> number);
|
||||
00051
|
||||
00052 MY_FLOAT lastOutput[2];
|
||||
00053 MY_FLOAT effectMix;
|
||||
00054
|
||||
00055 };
|
||||
00056
|
||||
00057 <font class="preprocessor">#endif // defined(__REVERB_H)</font>
|
||||
00058 <font class="preprocessor"></font>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
43
doc/html/Rhodey_8h-source.html
Normal file
43
doc/html/Rhodey_8h-source.html
Normal file
@@ -0,0 +1,43 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Rhodey.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00031 <font class="comment">/***************************************************/</font>
|
||||
00032
|
||||
00033 <font class="preprocessor">#if !defined(__RHODEY_H)</font>
|
||||
00034 <font class="preprocessor"></font><font class="preprocessor">#define __RHODEY_H</font>
|
||||
00035 <font class="preprocessor"></font>
|
||||
00036 <font class="preprocessor">#include "FM.h"</font>
|
||||
00037
|
||||
00038 <font class="keyword">class </font><a class="code" href="classRhodey.html">Rhodey</a> : <font class="keyword">public</font> <a class="code" href="classFM.html">FM</a>
|
||||
00039 {
|
||||
00040 <font class="keyword">public</font>:
|
||||
00042 <a class="code" href="classRhodey.html#a0">Rhodey</a>();
|
||||
00043
|
||||
00045 <a class="code" href="classRhodey.html#a1">~Rhodey</a>();
|
||||
00046
|
||||
00048 <font class="keywordtype">void</font> <a class="code" href="classFM.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00049
|
||||
00051 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00052
|
||||
00054 MY_FLOAT <a class="code" href="classFM.html#a14">tick</a>();
|
||||
00055 };
|
||||
00056
|
||||
00057 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
301
doc/html/RtAudio_8h-source.html
Normal file
301
doc/html/RtAudio_8h-source.html
Normal file
@@ -0,0 +1,301 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>RtAudio.h</h1><div class="fragment"><pre>00001 <font class="comment">/******************************************/</font>
|
||||
00002 <font class="comment">/*</font>
|
||||
00003 <font class="comment"> RtAudio - realtime sound I/O C++ class</font>
|
||||
00004 <font class="comment"> by Gary P. Scavone, 2001-2002.</font>
|
||||
00005 <font class="comment">*/</font>
|
||||
00006 <font class="comment">/******************************************/</font>
|
||||
00007
|
||||
00008 <font class="preprocessor">#if !defined(__RTAUDIO_H)</font>
|
||||
00009 <font class="preprocessor"></font><font class="preprocessor">#define __RTAUDIO_H</font>
|
||||
00010 <font class="preprocessor"></font>
|
||||
00011 <font class="preprocessor">#include <map></font>
|
||||
00012
|
||||
00013 <font class="preprocessor">#if defined(__LINUX_ALSA__)</font>
|
||||
00014 <font class="preprocessor"></font><font class="preprocessor"> #include <alsa/asoundlib.h></font>
|
||||
00015 <font class="preprocessor"> #include <pthread.h></font>
|
||||
00016 <font class="preprocessor"> #include <unistd.h></font>
|
||||
00017
|
||||
00018 <font class="preprocessor"> #define THREAD_TYPE</font>
|
||||
00019 <font class="preprocessor"></font> <font class="keyword">typedef</font> snd_pcm_t *AUDIO_HANDLE;
|
||||
00020 <font class="keyword">typedef</font> <font class="keywordtype">int</font> DEVICE_ID;
|
||||
00021 <font class="keyword">typedef</font> pthread_t THREAD_HANDLE;
|
||||
00022 <font class="keyword">typedef</font> pthread_mutex_t MUTEX;
|
||||
00023
|
||||
00024 <font class="preprocessor">#elif defined(__LINUX_OSS__)</font>
|
||||
00025 <font class="preprocessor"></font><font class="preprocessor"> #include <pthread.h></font>
|
||||
00026 <font class="preprocessor"> #include <unistd.h></font>
|
||||
00027
|
||||
00028 <font class="preprocessor"> #define THREAD_TYPE</font>
|
||||
00029 <font class="preprocessor"></font> <font class="keyword">typedef</font> <font class="keywordtype">int</font> AUDIO_HANDLE;
|
||||
00030 <font class="keyword">typedef</font> <font class="keywordtype">int</font> DEVICE_ID;
|
||||
00031 <font class="keyword">typedef</font> pthread_t THREAD_HANDLE;
|
||||
00032 <font class="keyword">typedef</font> pthread_mutex_t MUTEX;
|
||||
00033
|
||||
00034 <font class="preprocessor">#elif defined(__WINDOWS_DS__)</font>
|
||||
00035 <font class="preprocessor"></font><font class="preprocessor"> #include <windows.h></font>
|
||||
00036 <font class="preprocessor"> #include <process.h></font>
|
||||
00037
|
||||
00038 <font class="comment">// The following struct is used to hold the extra variables</font>
|
||||
00039 <font class="comment">// specific to the DirectSound implementation.</font>
|
||||
00040 <font class="keyword">typedef</font> <font class="keyword">struct </font>{
|
||||
00041 <font class="keywordtype">void</font> * object;
|
||||
00042 <font class="keywordtype">void</font> * buffer;
|
||||
00043 UINT bufferPointer;
|
||||
00044 } AUDIO_HANDLE;
|
||||
00045
|
||||
00046 <font class="preprocessor"> #define THREAD_TYPE __stdcall</font>
|
||||
00047 <font class="preprocessor"></font> <font class="keyword">typedef</font> LPGUID DEVICE_ID;
|
||||
00048 <font class="keyword">typedef</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> THREAD_HANDLE;
|
||||
00049 <font class="keyword">typedef</font> CRITICAL_SECTION MUTEX;
|
||||
00050
|
||||
00051 <font class="preprocessor">#elif defined(__IRIX_AL__)</font>
|
||||
00052 <font class="preprocessor"></font><font class="preprocessor"> #include <dmedia/audio.h></font>
|
||||
00053 <font class="preprocessor"> #include <pthread.h></font>
|
||||
00054 <font class="preprocessor"> #include <unistd.h></font>
|
||||
00055
|
||||
00056 <font class="preprocessor"> #define THREAD_TYPE</font>
|
||||
00057 <font class="preprocessor"></font> <font class="keyword">typedef</font> ALport AUDIO_HANDLE;
|
||||
00058 <font class="keyword">typedef</font> <font class="keywordtype">int</font> DEVICE_ID;
|
||||
00059 <font class="keyword">typedef</font> pthread_t THREAD_HANDLE;
|
||||
00060 <font class="keyword">typedef</font> pthread_mutex_t MUTEX;
|
||||
00061
|
||||
00062 <font class="preprocessor">#endif</font>
|
||||
00063 <font class="preprocessor"></font>
|
||||
00064
|
||||
00065 <font class="comment">// *************************************************** //</font>
|
||||
00066 <font class="comment">//</font>
|
||||
00067 <font class="comment">// RtError class declaration.</font>
|
||||
00068 <font class="comment">//</font>
|
||||
00069 <font class="comment">// *************************************************** //</font>
|
||||
00070
|
||||
00071 <font class="keyword">class </font>RtError
|
||||
00072 {
|
||||
00073 <font class="keyword">public</font>:
|
||||
00074 <font class="keyword">enum</font> TYPE {
|
||||
00075 WARNING,
|
||||
00076 DEBUG_WARNING,
|
||||
00077 UNSPECIFIED,
|
||||
00078 NO_DEVICES_FOUND,
|
||||
00079 INVALID_DEVICE,
|
||||
00080 INVALID_STREAM,
|
||||
00081 MEMORY_ERROR,
|
||||
00082 INVALID_PARAMETER,
|
||||
00083 DRIVER_ERROR,
|
||||
00084 SYSTEM_ERROR,
|
||||
00085 THREAD_ERROR
|
||||
00086 };
|
||||
00087
|
||||
00088 <font class="keyword">protected</font>:
|
||||
00089 <font class="keywordtype">char</font> error_message[256];
|
||||
00090 TYPE type;
|
||||
00091
|
||||
00092 <font class="keyword">public</font>:
|
||||
00094 RtError(<font class="keyword">const</font> <font class="keywordtype">char</font> *p, TYPE tipe = RtError::UNSPECIFIED);
|
||||
00095
|
||||
00097 <font class="keyword">virtual</font> ~RtError(<font class="keywordtype">void</font>);
|
||||
00098
|
||||
00100 <font class="keyword">virtual</font> <font class="keywordtype">void</font> printMessage(<font class="keywordtype">void</font>);
|
||||
00101
|
||||
00103 <font class="keyword">virtual</font> <font class="keyword">const</font> TYPE& getType(<font class="keywordtype">void</font>)<font class="keyword"> </font>{ <font class="keywordflow">return</font> type; }
|
||||
00104
|
||||
00106 <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *getMessage(<font class="keywordtype">void</font>)<font class="keyword"> </font>{ <font class="keywordflow">return</font> error_message; }
|
||||
00107 };
|
||||
00108
|
||||
00109
|
||||
00110 <font class="comment">// *************************************************** //</font>
|
||||
00111 <font class="comment">//</font>
|
||||
00112 <font class="comment">// RtAudio class declaration.</font>
|
||||
00113 <font class="comment">//</font>
|
||||
00114 <font class="comment">// *************************************************** //</font>
|
||||
00115
|
||||
00116 <font class="keyword">class </font>RtAudio
|
||||
00117 {
|
||||
00118 <font class="keyword">public</font>:
|
||||
00119
|
||||
00120 <font class="comment">// Support for signed integers and floats. Audio data fed to/from</font>
|
||||
00121 <font class="comment">// the tickStream() routine is assumed to ALWAYS be in host</font>
|
||||
00122 <font class="comment">// byte order. The internal routines will automatically take care of</font>
|
||||
00123 <font class="comment">// any necessary byte-swapping between the host format and the</font>
|
||||
00124 <font class="comment">// soundcard. Thus, endian-ness is not a concern in the following</font>
|
||||
00125 <font class="comment">// format definitions.</font>
|
||||
00126 <font class="keyword">typedef</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> RTAUDIO_FORMAT;
|
||||
00127 <font class="keyword">static</font> <font class="keyword">const</font> RTAUDIO_FORMAT RTAUDIO_SINT8;
|
||||
00128 <font class="keyword">static</font> <font class="keyword">const</font> RTAUDIO_FORMAT RTAUDIO_SINT16;
|
||||
00129 <font class="keyword">static</font> <font class="keyword">const</font> RTAUDIO_FORMAT RTAUDIO_SINT24;
|
||||
00130 <font class="keyword">static</font> <font class="keyword">const</font> RTAUDIO_FORMAT RTAUDIO_SINT32;
|
||||
00131 <font class="keyword">static</font> <font class="keyword">const</font> RTAUDIO_FORMAT RTAUDIO_FLOAT32;
|
||||
00132 <font class="keyword">static</font> <font class="keyword">const</font> RTAUDIO_FORMAT RTAUDIO_FLOAT64;
|
||||
00133
|
||||
00134 <font class="comment">//static const int MAX_SAMPLE_RATES = 14;</font>
|
||||
00135 <font class="keyword">enum</font> { MAX_SAMPLE_RATES = 14 };
|
||||
00136
|
||||
00137 <font class="keyword">typedef</font> int (*RTAUDIO_CALLBACK)(<font class="keywordtype">char</font> *buffer, <font class="keywordtype">int</font> bufferSize, <font class="keywordtype">void</font> *userData);
|
||||
00138
|
||||
00139 <font class="keyword">typedef</font> <font class="keyword">struct </font>{
|
||||
00140 <font class="keywordtype">char</font> name[128];
|
||||
00141 DEVICE_ID id[2];
|
||||
00142 <font class="keywordtype">bool</font> probed;
|
||||
00143 <font class="keywordtype">int</font> maxOutputChannels;
|
||||
00144 <font class="keywordtype">int</font> maxInputChannels;
|
||||
00145 <font class="keywordtype">int</font> maxDuplexChannels;
|
||||
00146 <font class="keywordtype">int</font> minOutputChannels;
|
||||
00147 <font class="keywordtype">int</font> minInputChannels;
|
||||
00148 <font class="keywordtype">int</font> minDuplexChannels;
|
||||
00149 <font class="keywordtype">bool</font> hasDuplexSupport;
|
||||
00150 <font class="keywordtype">int</font> nSampleRates;
|
||||
00151 <font class="keywordtype">int</font> sampleRates[MAX_SAMPLE_RATES];
|
||||
00152 RTAUDIO_FORMAT nativeFormats;
|
||||
00153 } RTAUDIO_DEVICE;
|
||||
00154
|
||||
00156
|
||||
00163 RtAudio();
|
||||
00164
|
||||
00166
|
||||
00177 RtAudio(<font class="keywordtype">int</font> *streamId,
|
||||
00178 <font class="keywordtype">int</font> outputDevice, <font class="keywordtype">int</font> outputChannels,
|
||||
00179 <font class="keywordtype">int</font> inputDevice, <font class="keywordtype">int</font> inputChannels,
|
||||
00180 RTAUDIO_FORMAT format, <font class="keywordtype">int</font> sampleRate,
|
||||
00181 <font class="keywordtype">int</font> *bufferSize, <font class="keywordtype">int</font> numberOfBuffers);
|
||||
00182
|
||||
00184
|
||||
00188 ~RtAudio();
|
||||
00189
|
||||
00191
|
||||
00218 <font class="keywordtype">int</font> openStream(<font class="keywordtype">int</font> outputDevice, <font class="keywordtype">int</font> outputChannels,
|
||||
00219 <font class="keywordtype">int</font> inputDevice, <font class="keywordtype">int</font> inputChannels,
|
||||
00220 RTAUDIO_FORMAT format, <font class="keywordtype">int</font> sampleRate,
|
||||
00221 <font class="keywordtype">int</font> *bufferSize, <font class="keywordtype">int</font> numberOfBuffers);
|
||||
00222
|
||||
00224
|
||||
00243 <font class="keywordtype">void</font> setStreamCallback(<font class="keywordtype">int</font> streamId, RTAUDIO_CALLBACK callback, <font class="keywordtype">void</font> *userData);
|
||||
00244
|
||||
00246
|
||||
00253 <font class="keywordtype">void</font> cancelStreamCallback(<font class="keywordtype">int</font> streamId);
|
||||
00254
|
||||
00256 <font class="keywordtype">int</font> getDeviceCount(<font class="keywordtype">void</font>);
|
||||
00257
|
||||
00259
|
||||
00269 <font class="keywordtype">void</font> getDeviceInfo(<font class="keywordtype">int</font> device, RTAUDIO_DEVICE *info);
|
||||
00270
|
||||
00272
|
||||
00277 <font class="keywordtype">char</font> * <font class="keyword">const</font> getStreamBuffer(<font class="keywordtype">int</font> streamId);
|
||||
00278
|
||||
00280
|
||||
00285 <font class="keywordtype">void</font> tickStream(<font class="keywordtype">int</font> streamId);
|
||||
00286
|
||||
00288
|
||||
00292 <font class="keywordtype">void</font> closeStream(<font class="keywordtype">int</font> streamId);
|
||||
00293
|
||||
00295
|
||||
00299 <font class="keywordtype">void</font> startStream(<font class="keywordtype">int</font> streamId);
|
||||
00300
|
||||
00302
|
||||
00306 <font class="keywordtype">void</font> stopStream(<font class="keywordtype">int</font> streamId);
|
||||
00307
|
||||
00309
|
||||
00313 <font class="keywordtype">void</font> abortStream(<font class="keywordtype">int</font> streamId);
|
||||
00314
|
||||
00316
|
||||
00321 <font class="keywordtype">int</font> streamWillBlock(<font class="keywordtype">int</font> streamId);
|
||||
00322
|
||||
00323 <font class="keyword">protected</font>:
|
||||
00324
|
||||
00325 <font class="keyword">private</font>:
|
||||
00326
|
||||
00327 <font class="keyword">static</font> <font class="keyword">const</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> SAMPLE_RATES[MAX_SAMPLE_RATES];
|
||||
00328
|
||||
00329 <font class="keyword">enum</font> { FAILURE, SUCCESS };
|
||||
00330
|
||||
00331 <font class="keyword">enum</font> STREAM_MODE {
|
||||
00332 PLAYBACK,
|
||||
00333 RECORD,
|
||||
00334 DUPLEX,
|
||||
00335 UNINITIALIZED = -75
|
||||
00336 };
|
||||
00337
|
||||
00338 <font class="keyword">enum</font> STREAM_STATE {
|
||||
00339 STREAM_STOPPED,
|
||||
00340 STREAM_RUNNING
|
||||
00341 };
|
||||
00342
|
||||
00343 <font class="keyword">typedef</font> <font class="keyword">struct </font>{
|
||||
00344 <font class="keywordtype">int</font> device[2]; <font class="comment">// Playback and record, respectively.</font>
|
||||
00345 STREAM_MODE mode; <font class="comment">// PLAYBACK, RECORD, or DUPLEX.</font>
|
||||
00346 AUDIO_HANDLE handle[2]; <font class="comment">// Playback and record handles, respectively.</font>
|
||||
00347 STREAM_STATE state; <font class="comment">// STOPPED or RUNNING</font>
|
||||
00348 <font class="keywordtype">char</font> *userBuffer;
|
||||
00349 <font class="keywordtype">char</font> *deviceBuffer;
|
||||
00350 <font class="keywordtype">bool</font> doConvertBuffer[2]; <font class="comment">// Playback and record, respectively.</font>
|
||||
00351 <font class="keywordtype">bool</font> deInterleave[2]; <font class="comment">// Playback and record, respectively.</font>
|
||||
00352 <font class="keywordtype">bool</font> doByteSwap[2]; <font class="comment">// Playback and record, respectively.</font>
|
||||
00353 <font class="keywordtype">int</font> sampleRate;
|
||||
00354 <font class="keywordtype">int</font> bufferSize;
|
||||
00355 <font class="keywordtype">int</font> nBuffers;
|
||||
00356 <font class="keywordtype">int</font> nUserChannels[2]; <font class="comment">// Playback and record, respectively.</font>
|
||||
00357 <font class="keywordtype">int</font> nDeviceChannels[2]; <font class="comment">// Playback and record channels, respectively.</font>
|
||||
00358 RTAUDIO_FORMAT userFormat;
|
||||
00359 RTAUDIO_FORMAT deviceFormat[2]; <font class="comment">// Playback and record, respectively.</font>
|
||||
00360 <font class="keywordtype">bool</font> usingCallback;
|
||||
00361 THREAD_HANDLE thread;
|
||||
00362 MUTEX mutex;
|
||||
00363 RTAUDIO_CALLBACK callback;
|
||||
00364 <font class="keywordtype">void</font> *userData;
|
||||
00365 } RTAUDIO_STREAM;
|
||||
00366
|
||||
00367 <font class="keyword">typedef</font> <font class="keywordtype">signed</font> <font class="keywordtype">short</font> INT16;
|
||||
00368 <font class="keyword">typedef</font> <font class="keywordtype">signed</font> <font class="keywordtype">int</font> INT32;
|
||||
00369 <font class="keyword">typedef</font> <font class="keywordtype">float</font> FLOAT32;
|
||||
00370 <font class="keyword">typedef</font> <font class="keywordtype">double</font> FLOAT64;
|
||||
00371
|
||||
00372 <font class="keywordtype">char</font> message[256];
|
||||
00373 <font class="keywordtype">int</font> nDevices;
|
||||
00374 RTAUDIO_DEVICE *devices;
|
||||
00375
|
||||
00376 std::map<int, void *> streams;
|
||||
00377
|
||||
00379 <font class="keywordtype">void</font> error(RtError::TYPE type);
|
||||
00380
|
||||
00385 <font class="keywordtype">void</font> initialize(<font class="keywordtype">void</font>);
|
||||
00386
|
||||
00388 <font class="keywordtype">void</font> clearDeviceInfo(RTAUDIO_DEVICE *info);
|
||||
00389
|
||||
00397 <font class="keywordtype">void</font> probeDeviceInfo(RTAUDIO_DEVICE *info);
|
||||
00398
|
||||
00405 <font class="keywordtype">bool</font> probeDeviceOpen(<font class="keywordtype">int</font> device, RTAUDIO_STREAM *stream,
|
||||
00406 STREAM_MODE mode, <font class="keywordtype">int</font> channels,
|
||||
00407 <font class="keywordtype">int</font> sampleRate, RTAUDIO_FORMAT format,
|
||||
00408 <font class="keywordtype">int</font> *bufferSize, <font class="keywordtype">int</font> numberOfBuffers);
|
||||
00409
|
||||
00416 <font class="keywordtype">void</font> *verifyStream(<font class="keywordtype">int</font> streamId);
|
||||
00417
|
||||
00422 <font class="keywordtype">void</font> convertStreamBuffer(RTAUDIO_STREAM *stream, STREAM_MODE mode);
|
||||
00423
|
||||
00425 <font class="keywordtype">void</font> byteSwapBuffer(<font class="keywordtype">char</font> *buffer, <font class="keywordtype">int</font> samples, RTAUDIO_FORMAT format);
|
||||
00426
|
||||
00428 <font class="keywordtype">int</font> formatBytes(RTAUDIO_FORMAT format);
|
||||
00429 };
|
||||
00430
|
||||
00431 <font class="comment">// Uncomment the following definition to have extra information spewed to stderr.</font>
|
||||
00432 <font class="comment">//#define RTAUDIO_DEBUG</font>
|
||||
00433
|
||||
00434 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
70
doc/html/RtDuplex_8h-source.html
Normal file
70
doc/html/RtDuplex_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>RtDuplex.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00022 <font class="comment">/***************************************************/</font>
|
||||
00023
|
||||
00024 <font class="preprocessor">#if !defined(__RTDUPLEX_H)</font>
|
||||
00025 <font class="preprocessor"></font><font class="preprocessor">#define __RTDUPLEX_H</font>
|
||||
00026 <font class="preprocessor"></font>
|
||||
00027 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00028 <font class="preprocessor">#include "RtAudio.h"</font>
|
||||
00029
|
||||
00030 <font class="keyword">class </font><a class="code" href="classRtDuplex.html">RtDuplex</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00031 {
|
||||
00032 <font class="keyword">public</font>:
|
||||
00034
|
||||
00045 <a class="code" href="classRtDuplex.html#a0">RtDuplex</a>(<font class="keywordtype">int</font> nChannels = 1, MY_FLOAT sampleRate = Stk::sampleRate(), <font class="keywordtype">int</font> device = 0, <font class="keywordtype">int</font> bufferFrames = RT_BUFFER_SIZE, <font class="keywordtype">int</font> nBuffers = 2);
|
||||
00046
|
||||
00048 <a class="code" href="classRtDuplex.html#a1">~RtDuplex</a>();
|
||||
00049
|
||||
00051
|
||||
00054 <font class="keywordtype">void</font> <a class="code" href="classRtDuplex.html#a2">start</a>(<font class="keywordtype">void</font>);
|
||||
00055
|
||||
00057
|
||||
00060 <font class="keywordtype">void</font> <a class="code" href="classRtDuplex.html#a3">stop</a>(<font class="keywordtype">void</font>);
|
||||
00061
|
||||
00063 MY_FLOAT <a class="code" href="classRtDuplex.html#a4">lastOut</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00064
|
||||
00066
|
||||
00069 MY_FLOAT <a class="code" href="classRtDuplex.html#a5">tick</a>(<font class="keyword">const</font> MY_FLOAT sample);
|
||||
00070
|
||||
00072
|
||||
00075 MY_FLOAT *<a class="code" href="classRtDuplex.html#a5">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00076
|
||||
00078 <font class="keyword">const</font> MY_FLOAT *<a class="code" href="classRtDuplex.html#a7">lastFrame</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00079
|
||||
00081
|
||||
00084 MY_FLOAT *<a class="code" href="classRtDuplex.html#a8">tickFrame</a>(MY_FLOAT *frameVector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> frames = 1);
|
||||
00085
|
||||
00086 <font class="keyword">protected</font>:
|
||||
00087
|
||||
00088 RtAudio *audio;
|
||||
00089 MY_FLOAT *data;
|
||||
00090 MY_FLOAT *lastOutput;
|
||||
00091 <font class="keywordtype">int</font> bufferSize;
|
||||
00092 <font class="keywordtype">bool</font> stopped;
|
||||
00093 <font class="keywordtype">int</font> stream;
|
||||
00094 <font class="keywordtype">long</font> counter;
|
||||
00095 <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> channels;
|
||||
00096
|
||||
00097 };
|
||||
00098
|
||||
00099 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
61
doc/html/RtMidi_8h-source.html
Normal file
61
doc/html/RtMidi_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>RtMidi.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00030 <font class="comment">/***************************************************/</font>
|
||||
00031
|
||||
00032 <font class="preprocessor">#if !defined(__RTMIDI_H)</font>
|
||||
00033 <font class="preprocessor"></font><font class="preprocessor">#define __RTMIDI_H</font>
|
||||
00034 <font class="preprocessor"></font>
|
||||
00035 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00036
|
||||
00037 <font class="keyword">class </font><a class="code" href="classRtMidi.html">RtMidi</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00038 {
|
||||
00039 <font class="keyword">public</font>:
|
||||
00041 <a class="code" href="classRtMidi.html#a0">RtMidi</a>(<font class="keywordtype">int</font> device = 0);
|
||||
00042
|
||||
00044 <a class="code" href="classRtMidi.html#a1">~RtMidi</a>();
|
||||
00045
|
||||
00047 <font class="keywordtype">void</font> <a class="code" href="classRtMidi.html#a2">printMessage</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00048
|
||||
00050
|
||||
00053 <font class="keywordtype">int</font> <a class="code" href="classRtMidi.html#a3">nextMessage</a>(<font class="keywordtype">void</font>);
|
||||
00054
|
||||
00056 <font class="keywordtype">int</font> <a class="code" href="classRtMidi.html#a4">getType</a>() <font class="keyword">const</font>;
|
||||
00057
|
||||
00059 <font class="keywordtype">int</font> <a class="code" href="classRtMidi.html#a5">getChannel</a>() <font class="keyword">const</font>;
|
||||
00060
|
||||
00062 MY_FLOAT <a class="code" href="classRtMidi.html#a6">getByteTwo</a>() <font class="keyword">const</font>;
|
||||
00063
|
||||
00065 MY_FLOAT <a class="code" href="classRtMidi.html#a7">getByteThree</a>() <font class="keyword">const</font>;
|
||||
00066
|
||||
00068 MY_FLOAT <a class="code" href="classRtMidi.html#a8">getDeltaTime</a>() <font class="keyword">const</font>;
|
||||
00069
|
||||
00070 <font class="keyword">protected</font>:
|
||||
00071 <font class="keywordtype">int</font> messageType;
|
||||
00072 <font class="keywordtype">int</font> channel;
|
||||
00073 <font class="keywordtype">float</font> byteTwo;
|
||||
00074 <font class="keywordtype">float</font> byteThree;
|
||||
00075 MY_FLOAT deltaTime;
|
||||
00076 <font class="keywordtype">int</font> readIndex;
|
||||
00077
|
||||
00078 };
|
||||
00079
|
||||
00080 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
70
doc/html/RtWvIn_8h-source.html
Normal file
70
doc/html/RtWvIn_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>RtWvIn.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00020 <font class="comment">/***************************************************/</font>
|
||||
00021
|
||||
00022 <font class="preprocessor">#if !defined(__RTWVIN_H)</font>
|
||||
00023 <font class="preprocessor"></font><font class="preprocessor">#define __RTWVIN_H</font>
|
||||
00024 <font class="preprocessor"></font>
|
||||
00025 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00026 <font class="preprocessor">#include "WvIn.h"</font>
|
||||
00027 <font class="preprocessor">#include "RtAudio.h"</font>
|
||||
00028
|
||||
00029 <font class="keyword">class </font><a class="code" href="classRtWvIn.html">RtWvIn</a> : <font class="keyword">protected</font> <a class="code" href="classWvIn.html">WvIn</a>
|
||||
00030 {
|
||||
00031 <font class="keyword">public</font>:
|
||||
00033
|
||||
00044 <a class="code" href="classRtWvIn.html#a0">RtWvIn</a>(<font class="keywordtype">int</font> nChannels = 1, MY_FLOAT sampleRate = Stk::sampleRate(), <font class="keywordtype">int</font> device = 0, <font class="keywordtype">int</font> bufferFrames = RT_BUFFER_SIZE, <font class="keywordtype">int</font> nBuffers = 2);
|
||||
00045
|
||||
00047 <a class="code" href="classRtWvIn.html#a1">~RtWvIn</a>();
|
||||
00048
|
||||
00050
|
||||
00053 <font class="keywordtype">void</font> <a class="code" href="classRtWvIn.html#a2">start</a>(<font class="keywordtype">void</font>);
|
||||
00054
|
||||
00056
|
||||
00059 <font class="keywordtype">void</font> <a class="code" href="classRtWvIn.html#a3">stop</a>(<font class="keywordtype">void</font>);
|
||||
00060
|
||||
00062 MY_FLOAT <a class="code" href="classWvIn.html#a15">lastOut</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00063
|
||||
00065
|
||||
00068 MY_FLOAT <a class="code" href="classWvIn.html#a16">tick</a>(<font class="keywordtype">void</font>);
|
||||
00069
|
||||
00071
|
||||
00074 MY_FLOAT *<a class="code" href="classWvIn.html#a16">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00075
|
||||
00077 <font class="keyword">const</font> MY_FLOAT *<a class="code" href="classWvIn.html#a18">lastFrame</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00078
|
||||
00080
|
||||
00083 <font class="keyword">const</font> MY_FLOAT *<a class="code" href="classWvIn.html#a19">tickFrame</a>(<font class="keywordtype">void</font>);
|
||||
00084
|
||||
00086
|
||||
00089 MY_FLOAT *<a class="code" href="classWvIn.html#a19">tickFrame</a>(MY_FLOAT *frameVector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> frames);
|
||||
00090
|
||||
00091 <font class="keyword">protected</font>:
|
||||
00092
|
||||
00093 RtAudio *audio;
|
||||
00094 <font class="keywordtype">bool</font> stopped;
|
||||
00095 <font class="keywordtype">int</font> stream;
|
||||
00096 <font class="keywordtype">long</font> counter;
|
||||
00097
|
||||
00098 };
|
||||
00099
|
||||
00100 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
66
doc/html/RtWvOut_8h-source.html
Normal file
66
doc/html/RtWvOut_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>RtWvOut.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00019 <font class="comment">/***************************************************/</font>
|
||||
00020
|
||||
00021 <font class="preprocessor">#if !defined(__RTWVOUT_H)</font>
|
||||
00022 <font class="preprocessor"></font><font class="preprocessor">#define __RTWVOUT_H</font>
|
||||
00023 <font class="preprocessor"></font>
|
||||
00024 <font class="preprocessor">#include "WvOut.h"</font>
|
||||
00025 <font class="preprocessor">#include "RtAudio.h"</font>
|
||||
00026
|
||||
00027 <font class="keyword">class </font><a class="code" href="classRtWvOut.html">RtWvOut</a> : <font class="keyword">protected</font> <a class="code" href="classWvOut.html">WvOut</a>
|
||||
00028 {
|
||||
00029 <font class="keyword">public</font>:
|
||||
00031
|
||||
00042 <a class="code" href="classRtWvOut.html#a0">RtWvOut</a>(<font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> nChannels = 1, MY_FLOAT sampleRate = Stk::sampleRate(), <font class="keywordtype">int</font> device = 0, <font class="keywordtype">int</font> bufferFrames = RT_BUFFER_SIZE, <font class="keywordtype">int</font> nBuffers = 4 );
|
||||
00043
|
||||
00045 <a class="code" href="classRtWvOut.html#a1">~RtWvOut</a>();
|
||||
00046
|
||||
00048
|
||||
00051 <font class="keywordtype">void</font> <a class="code" href="classRtWvOut.html#a2">start</a>(<font class="keywordtype">void</font>);
|
||||
00052
|
||||
00054
|
||||
00057 <font class="keywordtype">void</font> <a class="code" href="classRtWvOut.html#a3">stop</a>(<font class="keywordtype">void</font>);
|
||||
00058
|
||||
00060 <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> <a class="code" href="classWvOut.html#a5">getFrames</a>( <font class="keywordtype">void</font> ) <font class="keyword">const</font>;
|
||||
00061
|
||||
00063 MY_FLOAT <a class="code" href="classWvOut.html#a6">getTime</a>( <font class="keywordtype">void</font> ) <font class="keyword">const</font>;
|
||||
00064
|
||||
00066
|
||||
00069 <font class="keywordtype">void</font> <a class="code" href="classWvOut.html#a7">tick</a>(<font class="keyword">const</font> MY_FLOAT sample);
|
||||
00070
|
||||
00072
|
||||
00075 <font class="keywordtype">void</font> <a class="code" href="classWvOut.html#a7">tick</a>(<font class="keyword">const</font> MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00076
|
||||
00078
|
||||
00081 <font class="keywordtype">void</font> <a class="code" href="classWvOut.html#a9">tickFrame</a>(<font class="keyword">const</font> MY_FLOAT *frameVector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> frames = 1);
|
||||
00082
|
||||
00083 <font class="keyword">protected</font>:
|
||||
00084
|
||||
00085 RtAudio *audio;
|
||||
00086 <font class="keywordtype">bool</font> stopped;
|
||||
00087 <font class="keywordtype">int</font> stream;
|
||||
00088 <font class="keywordtype">int</font> bufferSize;
|
||||
00089
|
||||
00090 };
|
||||
00091
|
||||
00092 <font class="preprocessor">#endif // defined(__RTWVOUT_H)</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
103
doc/html/SKINI_8h-source.html
Normal file
103
doc/html/SKINI_8h-source.html
Normal file
@@ -0,0 +1,103 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>SKINI.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00026 <font class="comment">/***************************************************/</font>
|
||||
00027
|
||||
00028 <font class="preprocessor">#if !defined(__SKINI_H)</font>
|
||||
00029 <font class="preprocessor"></font><font class="preprocessor">#define __SKINI_H</font>
|
||||
00030 <font class="preprocessor"></font>
|
||||
00031 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00032 <font class="preprocessor">#include <stdio.h></font>
|
||||
00033
|
||||
00034 <font class="keyword">class </font><a class="code" href="classSKINI.html">SKINI</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00035 {
|
||||
00036 <font class="keyword">public</font>:
|
||||
00038 <a class="code" href="classSKINI.html#a0">SKINI</a>();
|
||||
00039
|
||||
00041 <a class="code" href="classSKINI.html#a0">SKINI</a>(<font class="keywordtype">char</font> *fileName);
|
||||
00042
|
||||
00044 <a class="code" href="classSKINI.html#a2">~SKINI</a>();
|
||||
00045
|
||||
00047
|
||||
00050 <font class="keywordtype">long</font> <a class="code" href="classSKINI.html#a3">parseThis</a>(<font class="keywordtype">char</font>* aString);
|
||||
00051
|
||||
00053
|
||||
00056 <font class="keywordtype">long</font> <a class="code" href="classSKINI.html#a4">nextMessage</a>();
|
||||
00057
|
||||
00059 <font class="keywordtype">long</font> <a class="code" href="classSKINI.html#a5">getType</a>() <font class="keyword">const</font>;
|
||||
00060
|
||||
00062 <font class="keywordtype">long</font> <a class="code" href="classSKINI.html#a6">getChannel</a>() <font class="keyword">const</font>;
|
||||
00063
|
||||
00065 MY_FLOAT <a class="code" href="classSKINI.html#a7">getDelta</a>() <font class="keyword">const</font>;
|
||||
00066
|
||||
00068 MY_FLOAT <a class="code" href="classSKINI.html#a8">getByteTwo</a>() <font class="keyword">const</font>;
|
||||
00069
|
||||
00071 MY_FLOAT <a class="code" href="classSKINI.html#a9">getByteThree</a>() <font class="keyword">const</font>;
|
||||
00072
|
||||
00074 <font class="keywordtype">long</font> <a class="code" href="classSKINI.html#a10">getByteTwoInt</a>() <font class="keyword">const</font>;
|
||||
00075
|
||||
00077 <font class="keywordtype">long</font> <a class="code" href="classSKINI.html#a11">getByteThreeInt</a>() <font class="keyword">const</font>;
|
||||
00078
|
||||
00080 <font class="keyword">const</font> <font class="keywordtype">char</font>* <a class="code" href="classSKINI.html#a12">getRemainderString</a>();
|
||||
00081
|
||||
00083 <font class="keyword">const</font> <font class="keywordtype">char</font>* <a class="code" href="classSKINI.html#a13">getMessageTypeString</a>();
|
||||
00084
|
||||
00086 <font class="keyword">const</font> <font class="keywordtype">char</font>* <a class="code" href="classSKINI.html#a14">whatsThisType</a>(<font class="keywordtype">long</font> type);
|
||||
00087
|
||||
00089 <font class="keyword">const</font> <font class="keywordtype">char</font>* <a class="code" href="classSKINI.html#a15">whatsThisController</a>(<font class="keywordtype">long</font> number);
|
||||
00090
|
||||
00091 <font class="keyword">protected</font>:
|
||||
00092
|
||||
00093 FILE *myFile;
|
||||
00094 <font class="keywordtype">long</font> messageType;
|
||||
00095 <font class="keywordtype">char</font> msgTypeString[64];
|
||||
00096 <font class="keywordtype">long</font> channel;
|
||||
00097 MY_FLOAT deltaTime;
|
||||
00098 MY_FLOAT byteTwo;
|
||||
00099 MY_FLOAT byteThree;
|
||||
00100 <font class="keywordtype">long</font> byteTwoInt;
|
||||
00101 <font class="keywordtype">long</font> byteThreeInt;
|
||||
00102 <font class="keywordtype">char</font> remainderString[1024];
|
||||
00103 <font class="keywordtype">char</font> whatString[1024];
|
||||
00104 };
|
||||
00105
|
||||
00106 <font class="keyword">static</font> <font class="keyword">const</font> <font class="keywordtype">double</font> Midi2Pitch[129] = {
|
||||
00107 8.18,8.66,9.18,9.72,10.30,10.91,11.56,12.25,
|
||||
00108 12.98,13.75,14.57,15.43,16.35,17.32,18.35,19.45,
|
||||
00109 20.60,21.83,23.12,24.50,25.96,27.50,29.14,30.87,
|
||||
00110 32.70,34.65,36.71,38.89,41.20,43.65,46.25,49.00,
|
||||
00111 51.91,55.00,58.27,61.74,65.41,69.30,73.42,77.78,
|
||||
00112 82.41,87.31,92.50,98.00,103.83,110.00,116.54,123.47,
|
||||
00113 130.81,138.59,146.83,155.56,164.81,174.61,185.00,196.00,
|
||||
00114 207.65,220.00,233.08,246.94,261.63,277.18,293.66,311.13,
|
||||
00115 329.63,349.23,369.99,392.00,415.30,440.00,466.16,493.88,
|
||||
00116 523.25,554.37,587.33,622.25,659.26,698.46,739.99,783.99,
|
||||
00117 830.61,880.00,932.33,987.77,1046.50,1108.73,1174.66,1244.51,
|
||||
00118 1318.51,1396.91,1479.98,1567.98,1661.22,1760.00,1864.66,1975.53,
|
||||
00119 2093.00,2217.46,2349.32,2489.02,2637.02,2793.83,2959.96,3135.96,
|
||||
00120 3322.44,3520.00,3729.31,3951.07,4186.01,4434.92,4698.64,4978.03,
|
||||
00121 5274.04,5587.65,5919.91,6271.93,6644.88,7040.00,7458.62,7902.13,
|
||||
00122 8372.02,8869.84,9397.27,9956.06,10548.08,11175.30,11839.82,12543.85,
|
||||
00123 13289.75};
|
||||
00124
|
||||
00125 <font class="preprocessor">#endif</font>
|
||||
00126 <font class="preprocessor"></font>
|
||||
00127
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
68
doc/html/Sampler_8h-source.html
Normal file
68
doc/html/Sampler_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Sampler.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00010 <font class="comment">/***************************************************/</font>
|
||||
00011
|
||||
00012 <font class="preprocessor">#if !defined(__SAMPLER_H)</font>
|
||||
00013 <font class="preprocessor"></font><font class="preprocessor">#define __SAMPLER_H</font>
|
||||
00014 <font class="preprocessor"></font>
|
||||
00015 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00016 <font class="preprocessor">#include "ADSR.h"</font>
|
||||
00017 <font class="preprocessor">#include "WvIn.h"</font>
|
||||
00018 <font class="preprocessor">#include "WaveLoop.h"</font>
|
||||
00019 <font class="preprocessor">#include "OnePole.h"</font>
|
||||
00020
|
||||
00021 <font class="keyword">class </font><a class="code" href="classSampler.html">Sampler</a> : <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00022 {
|
||||
00023 <font class="keyword">public</font>:
|
||||
00025 <a class="code" href="classSampler.html#a0">Sampler</a>();
|
||||
00026
|
||||
00028 <font class="keyword">virtual</font> <a class="code" href="classSampler.html#a1">~Sampler</a>();
|
||||
00029
|
||||
00031 <font class="keywordtype">void</font> <a class="code" href="classSampler.html#a2">clear</a>();
|
||||
00032
|
||||
00034 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(MY_FLOAT frequency) = 0;
|
||||
00035
|
||||
00037 <font class="keywordtype">void</font> <a class="code" href="classSampler.html#a4">keyOn</a>();
|
||||
00038
|
||||
00040 <font class="keywordtype">void</font> <a class="code" href="classSampler.html#a5">keyOff</a>();
|
||||
00041
|
||||
00043 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00044
|
||||
00046 <font class="keyword">virtual</font> MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>();
|
||||
00047
|
||||
00049 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a8">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value) = 0;
|
||||
00050
|
||||
00051 <font class="keyword">protected</font>:
|
||||
00052 <a class="code" href="classADSR.html">ADSR</a> *adsr;
|
||||
00053 <a class="code" href="classWvIn.html">WvIn</a> *attacks[5];
|
||||
00054 <a class="code" href="classWaveLoop.html">WaveLoop</a> *loops[5];
|
||||
00055 <a class="code" href="classOnePole.html">OnePole</a> *filter;
|
||||
00056 MY_FLOAT baseFrequency;
|
||||
00057 MY_FLOAT attackRatios[5];
|
||||
00058 MY_FLOAT loopRatios[5];
|
||||
00059 MY_FLOAT attackGain;
|
||||
00060 MY_FLOAT loopGain;
|
||||
00061 <font class="keywordtype">int</font> whichOne;
|
||||
00062
|
||||
00063 };
|
||||
00064
|
||||
00065 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
75
doc/html/Saxofony_8h-source.html
Normal file
75
doc/html/Saxofony_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Saxofony.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00036 <font class="comment">/***************************************************/</font>
|
||||
00037
|
||||
00038 <font class="preprocessor">#if !defined(__SAXOFONY_H)</font>
|
||||
00039 <font class="preprocessor"></font><font class="preprocessor">#define __SAXOFONY_H</font>
|
||||
00040 <font class="preprocessor"></font>
|
||||
00041 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00042 <font class="preprocessor">#include "DelayL.h"</font>
|
||||
00043 <font class="preprocessor">#include "ReedTabl.h"</font>
|
||||
00044 <font class="preprocessor">#include "OneZero.h"</font>
|
||||
00045 <font class="preprocessor">#include "Envelope.h"</font>
|
||||
00046 <font class="preprocessor">#include "Noise.h"</font>
|
||||
00047 <font class="preprocessor">#include "WaveLoop.h"</font>
|
||||
00048
|
||||
00049 <font class="keyword">class </font><a class="code" href="classSaxofony.html">Saxofony</a> : <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00050 {
|
||||
00051 <font class="keyword">public</font>:
|
||||
00053 <a class="code" href="classSaxofony.html#a0">Saxofony</a>(MY_FLOAT lowestFrequency);
|
||||
00054
|
||||
00056 <a class="code" href="classSaxofony.html#a1">~Saxofony</a>();
|
||||
00057
|
||||
00059 <font class="keywordtype">void</font> <a class="code" href="classSaxofony.html#a2">clear</a>();
|
||||
00060
|
||||
00062 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00063
|
||||
00065 <font class="keywordtype">void</font> <a class="code" href="classSaxofony.html#a4">setBlowPosition</a>(MY_FLOAT aPosition);
|
||||
00066
|
||||
00068 <font class="keywordtype">void</font> <a class="code" href="classSaxofony.html#a5">startBlowing</a>(MY_FLOAT amplitude, MY_FLOAT rate);
|
||||
00069
|
||||
00071 <font class="keywordtype">void</font> <a class="code" href="classSaxofony.html#a6">stopBlowing</a>(MY_FLOAT rate);
|
||||
00072
|
||||
00074 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00075
|
||||
00077 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00078
|
||||
00080 MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>();
|
||||
00081
|
||||
00083 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a8">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value);
|
||||
00084
|
||||
00085 <font class="keyword">protected</font>:
|
||||
00086 <a class="code" href="classDelayL.html">DelayL</a> *delays[2];
|
||||
00087 <a class="code" href="classReedTabl.html">ReedTabl</a> *reedTable;
|
||||
00088 <a class="code" href="classOneZero.html">OneZero</a> *filter;
|
||||
00089 <a class="code" href="classEnvelope.html">Envelope</a> *envelope;
|
||||
00090 <a class="code" href="classNoise.html">Noise</a> *noise;
|
||||
00091 <a class="code" href="classWaveLoop.html">WaveLoop</a> *vibrato;
|
||||
00092 <font class="keywordtype">long</font> length;
|
||||
00093 MY_FLOAT outputGain;
|
||||
00094 MY_FLOAT noiseGain;
|
||||
00095 MY_FLOAT vibratoGain;
|
||||
00096 MY_FLOAT position;
|
||||
00097
|
||||
00098 };
|
||||
00099
|
||||
00100 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
88
doc/html/Shakers_8h-source.html
Normal file
88
doc/html/Shakers_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Shakers.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00053 <font class="comment">/***************************************************/</font>
|
||||
00054
|
||||
00055 <font class="preprocessor">#if !defined(__SHAKERS_H)</font>
|
||||
00056 <font class="preprocessor"></font><font class="preprocessor">#define __SHAKERS_H</font>
|
||||
00057 <font class="preprocessor"></font>
|
||||
00058 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00059
|
||||
00060 <font class="preprocessor">#define MAX_FREQS 8</font>
|
||||
00061 <font class="preprocessor"></font><font class="preprocessor">#define NUM_INSTR 24</font>
|
||||
00062 <font class="preprocessor"></font>
|
||||
00063 <font class="keyword">class </font><a class="code" href="classShakers.html">Shakers</a> : <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00064 {
|
||||
00065 <font class="keyword">public</font>:
|
||||
00067 <a class="code" href="classShakers.html#a0">Shakers</a>();
|
||||
00068
|
||||
00070 <a class="code" href="classShakers.html#a1">~Shakers</a>();
|
||||
00071
|
||||
00073
|
||||
00077 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT instrument, MY_FLOAT amplitude);
|
||||
00078
|
||||
00080 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00081
|
||||
00083 MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>();
|
||||
00084
|
||||
00086 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a8">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value);
|
||||
00087
|
||||
00088 <font class="keyword">protected</font>:
|
||||
00089
|
||||
00090 <font class="keywordtype">int</font> setupName(<font class="keywordtype">char</font>* instr);
|
||||
00091 <font class="keywordtype">int</font> setupNum(<font class="keywordtype">int</font> inst);
|
||||
00092 <font class="keywordtype">int</font> setFreqAndReson(<font class="keywordtype">int</font> which, MY_FLOAT freq, MY_FLOAT reson);
|
||||
00093 <font class="keywordtype">void</font> setDecays(MY_FLOAT sndDecay, MY_FLOAT sysDecay);
|
||||
00094 <font class="keywordtype">void</font> setFinalZs(MY_FLOAT z0, MY_FLOAT z1, MY_FLOAT z2);
|
||||
00095 MY_FLOAT wuter_tick();
|
||||
00096 MY_FLOAT tbamb_tick();
|
||||
00097 MY_FLOAT ratchet_tick();
|
||||
00098
|
||||
00099 <font class="keywordtype">int</font> instType;
|
||||
00100 <font class="keywordtype">int</font> ratchetPos, lastRatchetPos;
|
||||
00101 MY_FLOAT shakeEnergy;
|
||||
00102 MY_FLOAT inputs[MAX_FREQS];
|
||||
00103 MY_FLOAT outputs[MAX_FREQS][2];
|
||||
00104 MY_FLOAT coeffs[MAX_FREQS][2];
|
||||
00105 MY_FLOAT sndLevel;
|
||||
00106 MY_FLOAT baseGain;
|
||||
00107 MY_FLOAT gains[MAX_FREQS];
|
||||
00108 <font class="keywordtype">int</font> nFreqs;
|
||||
00109 MY_FLOAT t_center_freqs[MAX_FREQS];
|
||||
00110 MY_FLOAT center_freqs[MAX_FREQS];
|
||||
00111 MY_FLOAT resons[MAX_FREQS];
|
||||
00112 MY_FLOAT freq_rand[MAX_FREQS];
|
||||
00113 <font class="keywordtype">int</font> freqalloc[MAX_FREQS];
|
||||
00114 MY_FLOAT soundDecay;
|
||||
00115 MY_FLOAT systemDecay;
|
||||
00116 MY_FLOAT nObjects;
|
||||
00117 MY_FLOAT collLikely;
|
||||
00118 MY_FLOAT totalEnergy;
|
||||
00119 MY_FLOAT ratchet,ratchetDelta;
|
||||
00120 MY_FLOAT finalZ[3];
|
||||
00121 MY_FLOAT finalZCoeffs[3];
|
||||
00122 MY_FLOAT defObjs[NUM_INSTR];
|
||||
00123 MY_FLOAT defDecays[NUM_INSTR];
|
||||
00124 MY_FLOAT decayScale[NUM_INSTR];
|
||||
00125
|
||||
00126 };
|
||||
00127
|
||||
00128 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
68
doc/html/Simple_8h-source.html
Normal file
68
doc/html/Simple_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Simple.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00018 <font class="comment">/***************************************************/</font>
|
||||
00019
|
||||
00020 <font class="preprocessor">#if !defined(__SIMPLE_H)</font>
|
||||
00021 <font class="preprocessor"></font><font class="preprocessor">#define __SIMPLE_H</font>
|
||||
00022 <font class="preprocessor"></font>
|
||||
00023 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00024 <font class="preprocessor">#include "ADSR.h"</font>
|
||||
00025 <font class="preprocessor">#include "WaveLoop.h"</font>
|
||||
00026 <font class="preprocessor">#include "OnePole.h"</font>
|
||||
00027 <font class="preprocessor">#include "BiQuad.h"</font>
|
||||
00028 <font class="preprocessor">#include "Noise.h"</font>
|
||||
00029
|
||||
00030 <font class="keyword">class </font><a class="code" href="classSimple.html">Simple</a> : <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00031 {
|
||||
00032 <font class="keyword">public</font>:
|
||||
00034 <a class="code" href="classSimple.html#a0">Simple</a>();
|
||||
00035
|
||||
00037 <font class="keyword">virtual</font> <a class="code" href="classSimple.html#a1">~Simple</a>();
|
||||
00038
|
||||
00040 <font class="keywordtype">void</font> <a class="code" href="classSimple.html#a2">clear</a>();
|
||||
00041
|
||||
00043 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00044
|
||||
00046 <font class="keywordtype">void</font> <a class="code" href="classSimple.html#a4">keyOn</a>();
|
||||
00047
|
||||
00049 <font class="keywordtype">void</font> <a class="code" href="classSimple.html#a5">keyOff</a>();
|
||||
00050
|
||||
00052 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00053
|
||||
00055 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00056
|
||||
00058 <font class="keyword">virtual</font> MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>();
|
||||
00059
|
||||
00061 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a8">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value);
|
||||
00062
|
||||
00063 <font class="keyword">protected</font>:
|
||||
00064 <a class="code" href="classADSR.html">ADSR</a> *adsr;
|
||||
00065 <a class="code" href="classWaveLoop.html">WaveLoop</a> *loop;
|
||||
00066 <a class="code" href="classOnePole.html">OnePole</a> *filter;
|
||||
00067 <a class="code" href="classBiQuad.html">BiQuad</a> *biquad;
|
||||
00068 <a class="code" href="classNoise.html">Noise</a> *noise;
|
||||
00069 MY_FLOAT baseFrequency;
|
||||
00070 MY_FLOAT loopGain;
|
||||
00071
|
||||
00072 };
|
||||
00073
|
||||
00074 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
66
doc/html/Sitar_8h-source.html
Normal file
66
doc/html/Sitar_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Sitar.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00018 <font class="comment">/***************************************************/</font>
|
||||
00019
|
||||
00020 <font class="preprocessor">#if !defined(__SITAR_H)</font>
|
||||
00021 <font class="preprocessor"></font><font class="preprocessor">#define __SITAR_H</font>
|
||||
00022 <font class="preprocessor"></font>
|
||||
00023 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00024 <font class="preprocessor">#include "DelayA.h"</font>
|
||||
00025 <font class="preprocessor">#include "OneZero.h"</font>
|
||||
00026 <font class="preprocessor">#include "Noise.h"</font>
|
||||
00027 <font class="preprocessor">#include "ADSR.h"</font>
|
||||
00028
|
||||
00029 <font class="keyword">class </font><a class="code" href="classSitar.html">Sitar</a> : <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00030 {
|
||||
00031 <font class="keyword">public</font>:
|
||||
00033 <a class="code" href="classSitar.html#a0">Sitar</a>(MY_FLOAT lowestFrequency);
|
||||
00034
|
||||
00036 <a class="code" href="classSitar.html#a1">~Sitar</a>();
|
||||
00037
|
||||
00039 <font class="keywordtype">void</font> <a class="code" href="classSitar.html#a2">clear</a>();
|
||||
00040
|
||||
00042 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00043
|
||||
00045 <font class="keywordtype">void</font> <a class="code" href="classSitar.html#a4">pluck</a>(MY_FLOAT amplitude);
|
||||
00046
|
||||
00048 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00049
|
||||
00051 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00052
|
||||
00054 MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>();
|
||||
00055
|
||||
00056 <font class="keyword">protected</font>:
|
||||
00057 <a class="code" href="classDelayA.html">DelayA</a> *delayLine;
|
||||
00058 <a class="code" href="classOneZero.html">OneZero</a> *loopFilter;
|
||||
00059 <a class="code" href="classNoise.html">Noise</a> *noise;
|
||||
00060 <a class="code" href="classADSR.html">ADSR</a> *envelope;
|
||||
00061 <font class="keywordtype">long</font> length;
|
||||
00062 MY_FLOAT loopGain;
|
||||
00063 MY_FLOAT amGain;
|
||||
00064 MY_FLOAT delay;
|
||||
00065 MY_FLOAT targetDelay;
|
||||
00066
|
||||
00067 };
|
||||
00068
|
||||
00069 <font class="preprocessor">#endif</font>
|
||||
00070 <font class="preprocessor"></font>
|
||||
</pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
75
doc/html/Socket_8h-source.html
Normal file
75
doc/html/Socket_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Socket.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00019 <font class="comment">/***************************************************/</font>
|
||||
00020
|
||||
00021 <font class="preprocessor">#if !defined(__SOCKET_H)</font>
|
||||
00022 <font class="preprocessor"></font><font class="preprocessor">#define __SOCKET_H</font>
|
||||
00023 <font class="preprocessor"></font>
|
||||
00024 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00025
|
||||
00026 <font class="keyword">class </font><a class="code" href="classSocket.html">Socket</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00027 {
|
||||
00028 <font class="keyword">public</font>:
|
||||
00030
|
||||
00033 <a class="code" href="classSocket.html#a0">Socket</a>( <font class="keywordtype">int</font> port = 2006 );
|
||||
00034
|
||||
00036
|
||||
00039 <a class="code" href="classSocket.html#a0">Socket</a>( <font class="keywordtype">int</font> port, <font class="keyword">const</font> <font class="keywordtype">char</font> *hostname );
|
||||
00040
|
||||
00042 <a class="code" href="classSocket.html#a2">~Socket</a>();
|
||||
00043
|
||||
00045
|
||||
00053 <font class="keywordtype">int</font> <a class="code" href="classSocket.html#a3">connect</a>( <font class="keywordtype">int</font> port, <font class="keyword">const</font> <font class="keywordtype">char</font> *hostname = <font class="stringliteral">"localhost"</font> );
|
||||
00054
|
||||
00056 <font class="keywordtype">void</font> <a class="code" href="classSocket.html#a4">close</a>( <font class="keywordtype">void</font> );
|
||||
00057
|
||||
00059 <font class="keywordtype">int</font> <a class="code" href="classSocket.html#a5">socket</a>( <font class="keywordtype">void</font> ) <font class="keyword">const</font>;
|
||||
00060
|
||||
00062 <font class="keywordtype">int</font> <a class="code" href="classSocket.html#a6">port</a>( <font class="keywordtype">void</font> ) <font class="keyword">const</font>;
|
||||
00063
|
||||
00065
|
||||
00071 <font class="keywordtype">int</font> <a class="code" href="classSocket.html#a7">accept</a>( <font class="keywordtype">void</font> );
|
||||
00072
|
||||
00074 <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classSocket.html#d0">setBlocking</a>( <font class="keywordtype">int</font> socket, <font class="keywordtype">bool</font> enable );
|
||||
00075
|
||||
00077 <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classSocket.html#a4">close</a>( <font class="keywordtype">int</font> socket );
|
||||
00078
|
||||
00080 <font class="keyword">static</font> <font class="keywordtype">bool</font> <a class="code" href="classSocket.html#d2">isValid</a>( <font class="keywordtype">int</font> socket );
|
||||
00081
|
||||
00083 <font class="keywordtype">int</font> <a class="code" href="classSocket.html#a8">writeBuffer</a>(<font class="keyword">const</font> <font class="keywordtype">void</font> *buffer, <font class="keywordtype">long</font> bufferSize, <font class="keywordtype">int</font> flags = 0);
|
||||
00084
|
||||
00086 <font class="keyword">static</font> <font class="keywordtype">int</font> <a class="code" href="classSocket.html#a8">writeBuffer</a>(<font class="keywordtype">int</font> socket, <font class="keyword">const</font> <font class="keywordtype">void</font> *buffer, <font class="keywordtype">long</font> bufferSize, <font class="keywordtype">int</font> flags );
|
||||
00087
|
||||
00089 <font class="keywordtype">int</font> <a class="code" href="classSocket.html#a9">readBuffer</a>(<font class="keywordtype">void</font> *buffer, <font class="keywordtype">long</font> bufferSize, <font class="keywordtype">int</font> flags = 0);
|
||||
00090
|
||||
00092 <font class="keyword">static</font> <font class="keywordtype">int</font> <a class="code" href="classSocket.html#a9">readBuffer</a>(<font class="keywordtype">int</font> socket, <font class="keywordtype">void</font> *buffer, <font class="keywordtype">long</font> bufferSize, <font class="keywordtype">int</font> flags );
|
||||
00093
|
||||
00094 <font class="keyword">protected</font>:
|
||||
00095
|
||||
00096 <font class="keywordtype">char</font> msg[256];
|
||||
00097 <font class="keywordtype">int</font> soket;
|
||||
00098 <font class="keywordtype">int</font> poort;
|
||||
00099 <font class="keywordtype">bool</font> server;
|
||||
00100
|
||||
00101 };
|
||||
00102
|
||||
00103 <font class="preprocessor">#endif // defined(__SOCKET_H)</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
79
doc/html/StifKarp_8h-source.html
Normal file
79
doc/html/StifKarp_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>StifKarp.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00022 <font class="comment">/***************************************************/</font>
|
||||
00023
|
||||
00024 <font class="preprocessor">#if !defined(__StifKarp_h)</font>
|
||||
00025 <font class="preprocessor"></font><font class="preprocessor">#define __StifKarp_h</font>
|
||||
00026 <font class="preprocessor"></font>
|
||||
00027 <font class="preprocessor">#include "Instrmnt.h"</font>
|
||||
00028 <font class="preprocessor">#include "DelayL.h"</font>
|
||||
00029 <font class="preprocessor">#include "DelayA.h"</font>
|
||||
00030 <font class="preprocessor">#include "OneZero.h"</font>
|
||||
00031 <font class="preprocessor">#include "Noise.h"</font>
|
||||
00032 <font class="preprocessor">#include "BiQuad.h"</font>
|
||||
00033
|
||||
00034 <font class="keyword">class </font><a class="code" href="classStifKarp.html">StifKarp</a> : <font class="keyword">public</font> <a class="code" href="classInstrmnt.html">Instrmnt</a>
|
||||
00035 {
|
||||
00036 <font class="keyword">public</font>:
|
||||
00038 <a class="code" href="classStifKarp.html#a0">StifKarp</a>(MY_FLOAT lowestFrequency);
|
||||
00039
|
||||
00041 <a class="code" href="classStifKarp.html#a1">~StifKarp</a>();
|
||||
00042
|
||||
00044 <font class="keywordtype">void</font> <a class="code" href="classStifKarp.html#a2">clear</a>();
|
||||
00045
|
||||
00047 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00048
|
||||
00050 <font class="keywordtype">void</font> <a class="code" href="classStifKarp.html#a4">setStretch</a>(MY_FLOAT stretch);
|
||||
00051
|
||||
00053 <font class="keywordtype">void</font> <a class="code" href="classStifKarp.html#a5">setPickupPosition</a>(MY_FLOAT position);
|
||||
00054
|
||||
00056
|
||||
00061 <font class="keywordtype">void</font> <a class="code" href="classStifKarp.html#a6">setBaseLoopGain</a>(MY_FLOAT aGain);
|
||||
00062
|
||||
00064 <font class="keywordtype">void</font> <a class="code" href="classStifKarp.html#a7">pluck</a>(MY_FLOAT amplitude);
|
||||
00065
|
||||
00067 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00068
|
||||
00070 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a3">noteOff</a>(MY_FLOAT amplitude);
|
||||
00071
|
||||
00073 MY_FLOAT <a class="code" href="classInstrmnt.html#a6">tick</a>();
|
||||
00074
|
||||
00076 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a8">controlChange</a>(<font class="keywordtype">int</font> number, MY_FLOAT value);
|
||||
00077
|
||||
00078 <font class="keyword">protected</font>:
|
||||
00079 <a class="code" href="classDelayA.html">DelayA</a> *delayLine;
|
||||
00080 <a class="code" href="classDelayL.html">DelayL</a> *combDelay;
|
||||
00081 <a class="code" href="classOneZero.html">OneZero</a> *filter;
|
||||
00082 <a class="code" href="classNoise.html">Noise</a> *noise;
|
||||
00083 <a class="code" href="classBiQuad.html">BiQuad</a> *biQuad[4];
|
||||
00084 <font class="keywordtype">long</font> length;
|
||||
00085 MY_FLOAT loopGain;
|
||||
00086 MY_FLOAT baseLoopGain;
|
||||
00087 MY_FLOAT lastFrequency;
|
||||
00088 MY_FLOAT lastLength;
|
||||
00089 MY_FLOAT stretching;
|
||||
00090 MY_FLOAT pluckAmplitude;
|
||||
00091 MY_FLOAT pickupPosition;
|
||||
00092
|
||||
00093 };
|
||||
00094
|
||||
00095 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
151
doc/html/Stk_8h-source.html
Normal file
151
doc/html/Stk_8h-source.html
Normal file
@@ -0,0 +1,151 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Stk.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00013 <font class="comment">/***************************************************/</font>
|
||||
00014
|
||||
00015 <font class="preprocessor">#if !defined(__STK_H)</font>
|
||||
00016 <font class="preprocessor"></font><font class="preprocessor">#define __STK_H</font>
|
||||
00017 <font class="preprocessor"></font>
|
||||
00018 <font class="comment">// Most data in STK is passed and calculated with the following</font>
|
||||
00019 <font class="comment">// user-definable floating-point type. You can change this to "float"</font>
|
||||
00020 <font class="comment">// if you prefer or perhaps a "long double" in the future.</font>
|
||||
00021 <font class="keyword">typedef</font> <font class="keywordtype">double</font> MY_FLOAT;
|
||||
00022
|
||||
00024
|
||||
<a name="l00029"></a><a class="code" href="classStkError.html">00029</a> <font class="keyword">class </font><a class="code" href="classStkError.html">StkError</a>
|
||||
00030 {
|
||||
00031 <font class="keyword">public</font>:
|
||||
00032 <font class="keyword">enum</font> TYPE {
|
||||
00033 WARNING,
|
||||
00034 DEBUG_WARNING,
|
||||
00035 FUNCTION_ARGUMENT,
|
||||
00036 FILE_NOT_FOUND,
|
||||
00037 FILE_UNKNOWN_FORMAT,
|
||||
00038 FILE_ERROR,
|
||||
00039 PROCESS_THREAD,
|
||||
00040 PROCESS_SOCKET,
|
||||
00041 PROCESS_SOCKET_IPADDR,
|
||||
00042 AUDIO_SYSTEM,
|
||||
00043 MIDI_SYSTEM,
|
||||
00044 UNSPECIFIED
|
||||
00045 };
|
||||
00046
|
||||
00047 <font class="keyword">protected</font>:
|
||||
00048 <font class="keywordtype">char</font> message[256];
|
||||
00049 TYPE type;
|
||||
00050
|
||||
00051 <font class="keyword">public</font>:
|
||||
00053 <a class="code" href="classStkError.html#a0">StkError</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *p, TYPE tipe = StkError::UNSPECIFIED);
|
||||
00054
|
||||
00056 <font class="keyword">virtual</font> <a class="code" href="classStkError.html#a1">~StkError</a>(<font class="keywordtype">void</font>);
|
||||
00057
|
||||
00059 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classStkError.html#a2">printMessage</a>(<font class="keywordtype">void</font>);
|
||||
00060
|
||||
<a name="l00062"></a><a class="code" href="classStkError.html#a3">00062</a> <font class="keyword">virtual</font> <font class="keyword">const</font> TYPE& <a class="code" href="classStkError.html#a3">getType</a>(<font class="keywordtype">void</font>)<font class="keyword"> </font>{ <font class="keywordflow">return</font> type; }
|
||||
00063
|
||||
<a name="l00065"></a><a class="code" href="classStkError.html#a4">00065</a> <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *<a class="code" href="classStkError.html#a4">getMessage</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> message; }
|
||||
00066 };
|
||||
00067
|
||||
00068
|
||||
00069 <font class="keyword">class </font><a class="code" href="classStk.html">Stk</a>
|
||||
00070 {
|
||||
00071 <font class="keyword">public</font>:
|
||||
00072
|
||||
00073 <font class="keyword">typedef</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> STK_FORMAT;
|
||||
<a name="l00074"></a><a class="code" href="classStk.html#p0">00074</a> <font class="keyword">static</font> <font class="keyword">const</font> STK_FORMAT STK_SINT8;
|
||||
<a name="l00075"></a><a class="code" href="classStk.html#p1">00075</a> <font class="keyword">static</font> <font class="keyword">const</font> STK_FORMAT STK_SINT16;
|
||||
<a name="l00076"></a><a class="code" href="classStk.html#p2">00076</a> <font class="keyword">static</font> <font class="keyword">const</font> STK_FORMAT STK_SINT32;
|
||||
<a name="l00077"></a><a class="code" href="classStk.html#p3">00077</a> <font class="keyword">static</font> <font class="keyword">const</font> STK_FORMAT STK_FLOAT32;
|
||||
<a name="l00078"></a><a class="code" href="classStk.html#p4">00078</a> <font class="keyword">static</font> <font class="keyword">const</font> STK_FORMAT STK_FLOAT64;
|
||||
00079
|
||||
00081 <font class="keyword">static</font> MY_FLOAT <a class="code" href="classStk.html#d0">sampleRate</a>(<font class="keywordtype">void</font>);
|
||||
00082
|
||||
00084
|
||||
00092 <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classStk.html#d1">setSampleRate</a>(MY_FLOAT newRate);
|
||||
00093
|
||||
00095 <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classStk.html#d2">swap16</a>(<font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> *ptr);
|
||||
00096
|
||||
00098 <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classStk.html#d3">swap32</a>(<font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> *ptr);
|
||||
00099
|
||||
00101 <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classStk.html#d4">swap64</a>(<font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> *ptr);
|
||||
00102
|
||||
00104 <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classStk.html#d5">sleep</a>(<font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> milliseconds);
|
||||
00105
|
||||
00106 <font class="keyword">private</font>:
|
||||
00107 <font class="keyword">static</font> MY_FLOAT srate;
|
||||
00108
|
||||
00109 <font class="keyword">protected</font>:
|
||||
00110
|
||||
00112 <a class="code" href="classStk.html#b0">Stk</a>(<font class="keywordtype">void</font>);
|
||||
00113
|
||||
00115 <font class="keyword">virtual</font> <a class="code" href="classStk.html#b1">~Stk</a>(<font class="keywordtype">void</font>);
|
||||
00116
|
||||
00118 <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classStk.html#e0">handleError</a>( <font class="keyword">const</font> <font class="keywordtype">char</font> *message, StkError::TYPE type );
|
||||
00119
|
||||
00120 };
|
||||
00121
|
||||
00122 <font class="comment">// Here are a few other useful typedefs.</font>
|
||||
00123 <font class="keyword">typedef</font> <font class="keywordtype">signed</font> <font class="keywordtype">short</font> SINT16;
|
||||
00124 <font class="keyword">typedef</font> <font class="keywordtype">signed</font> <font class="keywordtype">int</font> SINT32;
|
||||
00125 <font class="keyword">typedef</font> <font class="keywordtype">float</font> FLOAT32;
|
||||
00126 <font class="keyword">typedef</font> <font class="keywordtype">double</font> FLOAT64;
|
||||
00127
|
||||
00128 <font class="comment">// Boolean values</font>
|
||||
00129 <font class="preprocessor">#define FALSE 0</font>
|
||||
00130 <font class="preprocessor"></font><font class="preprocessor">#define TRUE 1</font>
|
||||
00131 <font class="preprocessor"></font>
|
||||
00132 <font class="comment">// The default sampling rate.</font>
|
||||
00133 <font class="preprocessor">#define SRATE (MY_FLOAT) 22050.0</font>
|
||||
00134 <font class="preprocessor"></font>
|
||||
00135 <font class="comment">// Real-time audio input and output buffer size. If clicks are</font>
|
||||
00136 <font class="comment">// occuring in the input and/or output sound stream, a larger buffer</font>
|
||||
00137 <font class="comment">// size may help. Larger buffer sizes, however, produce more latency.</font>
|
||||
00138
|
||||
00139 <font class="preprocessor">#define RT_BUFFER_SIZE 512</font>
|
||||
00140 <font class="preprocessor"></font>
|
||||
00141 <font class="comment">// The RAWWAVE_PATH definition is concatenated to the beginning of all</font>
|
||||
00142 <font class="comment">// references to rawwave files in the various STK core classes</font>
|
||||
00143 <font class="comment">// (ex. Clarinet.cpp). If you wish to move the rawwaves directory to</font>
|
||||
00144 <font class="comment">// a different location in your file system, you will need to set this</font>
|
||||
00145 <font class="comment">// path definition appropriately. The current definition is a</font>
|
||||
00146 <font class="comment">// relative reference that will work "out of the box" for the STK</font>
|
||||
00147 <font class="comment">// distribution.</font>
|
||||
00148 <font class="preprocessor">#define RAWWAVE_PATH "../../"</font>
|
||||
00149 <font class="preprocessor"></font>
|
||||
00150 <font class="preprocessor">#define PI (MY_FLOAT) 3.14159265359</font>
|
||||
00151 <font class="preprocessor"></font><font class="preprocessor">#define TWO_PI (MY_FLOAT) (MY_FLOAT) (2 * PI)</font>
|
||||
00152 <font class="preprocessor"></font>
|
||||
00153 <font class="preprocessor">#define ONE_OVER_128 (MY_FLOAT) 0.0078125</font>
|
||||
00154 <font class="preprocessor"></font>
|
||||
00155 <font class="preprocessor">#if defined(__WINDOWS_DS__)</font>
|
||||
00156 <font class="preprocessor"></font><font class="preprocessor"> #define __OS_WINDOWS__</font>
|
||||
00157 <font class="preprocessor"></font><font class="preprocessor"> #define __STK_REALTIME__</font>
|
||||
00158 <font class="preprocessor"></font><font class="preprocessor">#elif defined(__LINUX_OSS__) || defined(__LINUX_ALSA__)</font>
|
||||
00159 <font class="preprocessor"></font><font class="preprocessor"> #define __OS_LINUX__</font>
|
||||
00160 <font class="preprocessor"></font><font class="preprocessor"> #define __STK_REALTIME__</font>
|
||||
00161 <font class="preprocessor"></font><font class="preprocessor">#elif defined(__IRIX_AL__)</font>
|
||||
00162 <font class="preprocessor"></font><font class="preprocessor"> #define __OS_IRIX__</font>
|
||||
00163 <font class="preprocessor"></font><font class="preprocessor"> #define __STK_REALTIME__</font>
|
||||
00164 <font class="preprocessor"></font><font class="preprocessor">#endif</font>
|
||||
00165 <font class="preprocessor"></font>
|
||||
00166 <font class="comment">//#define _STK_DEBUG_</font>
|
||||
00167
|
||||
00168 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
49
doc/html/SubNoise_8h-source.html
Normal file
49
doc/html/SubNoise_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>SubNoise.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00011 <font class="comment">/***************************************************/</font>
|
||||
00012
|
||||
00013 <font class="preprocessor">#if !defined(__SUBNOISE_H)</font>
|
||||
00014 <font class="preprocessor"></font><font class="preprocessor">#define __SUBNOISE_H</font>
|
||||
00015 <font class="preprocessor"></font>
|
||||
00016 <font class="preprocessor">#include "Noise.h"</font>
|
||||
00017
|
||||
00018 <font class="keyword">class </font><a class="code" href="classSubNoise.html">SubNoise</a> : <font class="keyword">public</font> <a class="code" href="classNoise.html">Noise</a>
|
||||
00019 {
|
||||
00020 <font class="keyword">public</font>:
|
||||
00021
|
||||
00023 <a class="code" href="classSubNoise.html#a0">SubNoise</a>(<font class="keywordtype">int</font> subRate = 16);
|
||||
00024
|
||||
00026 <a class="code" href="classSubNoise.html#a1">~SubNoise</a>();
|
||||
00027
|
||||
00029 <font class="keywordtype">int</font> <a class="code" href="classSubNoise.html#a2">subRate</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00030
|
||||
00032 <font class="keywordtype">void</font> <a class="code" href="classSubNoise.html#a3">setRate</a>(<font class="keywordtype">int</font> subRate);
|
||||
00033
|
||||
00035 MY_FLOAT <a class="code" href="classNoise.html#a2">tick</a>();
|
||||
00036
|
||||
00037 <font class="keyword">protected</font>:
|
||||
00038 <font class="keywordtype">int</font> counter;
|
||||
00039 <font class="keywordtype">int</font> rate;
|
||||
00040
|
||||
00041 };
|
||||
00042
|
||||
00043 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
52
doc/html/Table_8h-source.html
Normal file
52
doc/html/Table_8h-source.html
Normal file
@@ -0,0 +1,52 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Table.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00015 <font class="comment">/***************************************************/</font>
|
||||
00016
|
||||
00017 <font class="preprocessor">#if !defined(__TABLE_H)</font>
|
||||
00018 <font class="preprocessor"></font><font class="preprocessor">#define __TABLE_H</font>
|
||||
00019 <font class="preprocessor"></font>
|
||||
00020 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00021
|
||||
00022 <font class="keyword">class </font><a class="code" href="classTable.html">Table</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00023 {
|
||||
00024 <font class="keyword">public</font>:
|
||||
00026 <a class="code" href="classTable.html#a0">Table</a>(<font class="keywordtype">char</font> *fileName);
|
||||
00027
|
||||
00029 <a class="code" href="classTable.html#a1">~Table</a>();
|
||||
00030
|
||||
00032 <font class="keywordtype">long</font> <a class="code" href="classTable.html#a2">getLength</a>() <font class="keyword">const</font>;
|
||||
00033
|
||||
00035 MY_FLOAT <a class="code" href="classTable.html#a3">lastOut</a>() <font class="keyword">const</font>;
|
||||
00036
|
||||
00038
|
||||
00042 MY_FLOAT <a class="code" href="classTable.html#a4">tick</a>(MY_FLOAT index);
|
||||
00043
|
||||
00045 MY_FLOAT *<a class="code" href="classTable.html#a4">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00046
|
||||
00047 <font class="keyword">protected</font>:
|
||||
00048 <font class="keywordtype">long</font> length;
|
||||
00049 MY_FLOAT *data;
|
||||
00050 MY_FLOAT lastOutput;
|
||||
00051
|
||||
00052 };
|
||||
00053
|
||||
00054 <font class="preprocessor">#endif // defined(__TABLE_H)</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
91
doc/html/TcpWvIn_8h-source.html
Normal file
91
doc/html/TcpWvIn_8h-source.html
Normal file
@@ -0,0 +1,91 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>TcpWvIn.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00027 <font class="comment">/***************************************************/</font>
|
||||
00028
|
||||
00029 <font class="preprocessor">#if !defined(__TCPWVIN_H)</font>
|
||||
00030 <font class="preprocessor"></font><font class="preprocessor">#define __TCPWVIN_H</font>
|
||||
00031 <font class="preprocessor"></font>
|
||||
00032 <font class="preprocessor">#include "WvIn.h"</font>
|
||||
00033 <font class="preprocessor">#include "Socket.h"</font>
|
||||
00034 <font class="preprocessor">#include "Thread.h"</font>
|
||||
00035
|
||||
00036 <font class="keyword">typedef</font> <font class="keyword">struct </font>{
|
||||
00037 <font class="keywordtype">bool</font> finished;
|
||||
00038 <font class="keywordtype">void</font> *object;
|
||||
00039 } thread_info;
|
||||
00040
|
||||
00041 <font class="keyword">class </font><a class="code" href="classTcpWvIn.html">TcpWvIn</a> : <font class="keyword">protected</font> <a class="code" href="classWvIn.html">WvIn</a>
|
||||
00042 {
|
||||
00043 <font class="keyword">public</font>:
|
||||
00045
|
||||
00048 <a class="code" href="classTcpWvIn.html#a0">TcpWvIn</a>( <font class="keywordtype">int</font> port = 2006 );
|
||||
00049
|
||||
00051 <a class="code" href="classTcpWvIn.html#a1">~TcpWvIn</a>();
|
||||
00052
|
||||
00054
|
||||
00057 <font class="keywordtype">void</font> <a class="code" href="classTcpWvIn.html#a2">listen</a>(<font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> nChannels = 1, Stk::STK_FORMAT format = STK_SINT16);
|
||||
00058
|
||||
00060
|
||||
00064 <font class="keywordtype">bool</font> <a class="code" href="classTcpWvIn.html#a3">isConnected</a>(<font class="keywordtype">void</font>);
|
||||
00065
|
||||
00067 MY_FLOAT <a class="code" href="classWvIn.html#a15">lastOut</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00068
|
||||
00070 MY_FLOAT <a class="code" href="classWvIn.html#a16">tick</a>(<font class="keywordtype">void</font>);
|
||||
00071
|
||||
00073 MY_FLOAT *<a class="code" href="classWvIn.html#a16">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00074
|
||||
00076 <font class="keyword">const</font> MY_FLOAT *<a class="code" href="classWvIn.html#a18">lastFrame</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00077
|
||||
00079 <font class="keyword">const</font> MY_FLOAT *<a class="code" href="classWvIn.html#a19">tickFrame</a>(<font class="keywordtype">void</font>);
|
||||
00080
|
||||
00082 MY_FLOAT *<a class="code" href="classWvIn.html#a19">tickFrame</a>(MY_FLOAT *frameVector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> frames);
|
||||
00083
|
||||
00084 <font class="comment">// Called by the thread routine to receive data via the socket connection</font>
|
||||
00085 <font class="comment">// and fill the socket buffer. This is not intended for general use but</font>
|
||||
00086 <font class="comment">// had to be made public for access from the thread.</font>
|
||||
00087 <font class="keywordtype">void</font> receive(<font class="keywordtype">void</font>);
|
||||
00088
|
||||
00089 <font class="keyword">protected</font>:
|
||||
00090
|
||||
00091 <font class="comment">// Initialize class variables.</font>
|
||||
00092 <font class="keywordtype">void</font> init( <font class="keywordtype">int</font> port );
|
||||
00093
|
||||
00094 <font class="comment">// Read buffered socket data into the data buffer ... will block if none available.</font>
|
||||
00095 <font class="keywordtype">int</font> readData( <font class="keywordtype">void</font> );
|
||||
00096
|
||||
00097 <a class="code" href="classSocket.html">Socket</a> *soket;
|
||||
00098 <a class="code" href="classThread.html">Thread</a> *thread;
|
||||
00099 Mutex mutex;
|
||||
00100 <font class="keywordtype">char</font> *buffer;
|
||||
00101 <font class="keywordtype">long</font> bufferBytes;
|
||||
00102 <font class="keywordtype">long</font> bytesFilled;
|
||||
00103 <font class="keywordtype">long</font> writePoint;
|
||||
00104 <font class="keywordtype">long</font> readPoint;
|
||||
00105 <font class="keywordtype">long</font> counter;
|
||||
00106 <font class="keywordtype">int</font> dataSize;
|
||||
00107 <font class="keywordtype">bool</font> connected;
|
||||
00108 <font class="keywordtype">int</font> fd;
|
||||
00109 thread_info threadInfo;
|
||||
00110
|
||||
00111 };
|
||||
00112
|
||||
00113 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
69
doc/html/TcpWvOut_8h-source.html
Normal file
69
doc/html/TcpWvOut_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>TcpWvOut.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00026 <font class="comment">/***************************************************/</font>
|
||||
00027
|
||||
00028 <font class="preprocessor">#if !defined(__TCPWVOUT_H)</font>
|
||||
00029 <font class="preprocessor"></font><font class="preprocessor">#define __TCPWVOUT_H</font>
|
||||
00030 <font class="preprocessor"></font>
|
||||
00031 <font class="preprocessor">#include "WvOut.h"</font>
|
||||
00032 <font class="preprocessor">#include "Socket.h"</font>
|
||||
00033
|
||||
00034 <font class="keyword">class </font><a class="code" href="classTcpWvOut.html">TcpWvOut</a> : <font class="keyword">protected</font> <a class="code" href="classWvOut.html">WvOut</a>
|
||||
00035 {
|
||||
00036 <font class="keyword">public</font>:
|
||||
00038 <a class="code" href="classTcpWvOut.html#a0">TcpWvOut</a>();
|
||||
00039
|
||||
00041
|
||||
00044 <a class="code" href="classTcpWvOut.html#a0">TcpWvOut</a>(<font class="keywordtype">int</font> port, <font class="keyword">const</font> <font class="keywordtype">char</font> *hostname = <font class="stringliteral">"localhost"</font>, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> nChannels = 1, Stk::STK_FORMAT format = STK_SINT16);
|
||||
00045
|
||||
00047 <a class="code" href="classTcpWvOut.html#a2">~TcpWvOut</a>();
|
||||
00048
|
||||
00050
|
||||
00053 <font class="keywordtype">void</font> <a class="code" href="classTcpWvOut.html#a3">connect</a>(<font class="keywordtype">int</font> port, <font class="keyword">const</font> <font class="keywordtype">char</font> *hostname = <font class="stringliteral">"localhost"</font>, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> nChannels = 1, Stk::STK_FORMAT format = STK_SINT16);
|
||||
00054
|
||||
00056 <font class="keywordtype">void</font> <a class="code" href="classTcpWvOut.html#a4">disconnect</a>(<font class="keywordtype">void</font>);
|
||||
00057
|
||||
00059 <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> <a class="code" href="classWvOut.html#a5">getFrames</a>( <font class="keywordtype">void</font> ) <font class="keyword">const</font>;
|
||||
00060
|
||||
00062 MY_FLOAT <a class="code" href="classWvOut.html#a6">getTime</a>( <font class="keywordtype">void</font> ) <font class="keyword">const</font>;
|
||||
00063
|
||||
00065
|
||||
00068 <font class="keywordtype">void</font> <a class="code" href="classWvOut.html#a7">tick</a>(MY_FLOAT sample);
|
||||
00069
|
||||
00071
|
||||
00074 <font class="keywordtype">void</font> <a class="code" href="classWvOut.html#a7">tick</a>(<font class="keyword">const</font> MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00075
|
||||
00077
|
||||
00080 <font class="keywordtype">void</font> <a class="code" href="classWvOut.html#a9">tickFrame</a>(<font class="keyword">const</font> MY_FLOAT *frameVector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> frames = 1);
|
||||
00081
|
||||
00082 <font class="keyword">protected</font>:
|
||||
00083
|
||||
00084 <font class="comment">// Write a buffer of length \e frames via the socket connection.</font>
|
||||
00085 <font class="keywordtype">void</font> writeData( <font class="keywordtype">long</font> frames );
|
||||
00086
|
||||
00087 <font class="keywordtype">char</font> msg[256];
|
||||
00088 <font class="keywordtype">char</font> *buffer;
|
||||
00089 <a class="code" href="classSocket.html">Socket</a> *soket;
|
||||
00090 <font class="keywordtype">int</font> dataSize;
|
||||
00091 };
|
||||
00092
|
||||
00093 <font class="preprocessor">#endif // defined(__TCPWVOUT_H)</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
88
doc/html/Thread_8h-source.html
Normal file
88
doc/html/Thread_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Thread.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00012 <font class="comment">/***************************************************/</font>
|
||||
00013
|
||||
00014 <font class="preprocessor">#if !defined(__THREAD_H)</font>
|
||||
00015 <font class="preprocessor"></font><font class="preprocessor">#define __THREAD_H</font>
|
||||
00016 <font class="preprocessor"></font>
|
||||
00017 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00018
|
||||
00019 <font class="preprocessor">#if (defined(__OS_IRIX__) || defined(__OS_LINUX__))</font>
|
||||
00020 <font class="preprocessor"></font>
|
||||
00021 <font class="preprocessor"> #include <pthread.h></font>
|
||||
00022 <font class="preprocessor"> #define THREAD_TYPE</font>
|
||||
00023 <font class="preprocessor"></font> <font class="keyword">typedef</font> pthread_t THREAD_HANDLE;
|
||||
00024 <font class="keyword">typedef</font> <font class="keywordtype">void</font> * THREAD_RETURN;
|
||||
00025 <font class="keyword">typedef</font> <font class="keywordtype">void</font> * (*THREAD_FUNCTION)(<font class="keywordtype">void</font> *);
|
||||
00026 <font class="keyword">typedef</font> pthread_mutex_t MUTEX;
|
||||
00027
|
||||
00028 <font class="preprocessor">#elif defined(__OS_WINDOWS__)</font>
|
||||
00029 <font class="preprocessor"></font>
|
||||
00030 <font class="preprocessor"> #include <windows.h></font>
|
||||
00031 <font class="preprocessor"> #include <process.h></font>
|
||||
00032 <font class="preprocessor"> #define THREAD_TYPE __stdcall</font>
|
||||
00033 <font class="preprocessor"></font> <font class="keyword">typedef</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> THREAD_HANDLE;
|
||||
00034 <font class="keyword">typedef</font> <font class="keywordtype">unsigned</font> THREAD_RETURN;
|
||||
00035 <font class="keyword">typedef</font> unsigned (__stdcall *THREAD_FUNCTION)(<font class="keywordtype">void</font> *);
|
||||
00036 <font class="keyword">typedef</font> CRITICAL_SECTION MUTEX;
|
||||
00037
|
||||
00038 <font class="preprocessor">#endif</font>
|
||||
00039 <font class="preprocessor"></font>
|
||||
00040 <font class="keyword">class </font><a class="code" href="classThread.html">Thread</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00041 {
|
||||
00042 <font class="keyword">public</font>:
|
||||
00044 <a class="code" href="classThread.html#a0">Thread</a>();
|
||||
00045
|
||||
00047 <a class="code" href="classThread.html#a1">~Thread</a>();
|
||||
00048
|
||||
00050
|
||||
00054 <font class="keywordtype">bool</font> <a class="code" href="classThread.html#a2">start</a>( THREAD_FUNCTION routine, <font class="keywordtype">void</font> * ptr = NULL );
|
||||
00055
|
||||
00057
|
||||
00063 <font class="keywordtype">bool</font> <a class="code" href="classThread.html#a3">wait</a>( <font class="keywordtype">long</font> milliseconds = -1 );
|
||||
00064
|
||||
00066 <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classThread.html#d0">test</a>(<font class="keywordtype">void</font>);
|
||||
00067
|
||||
00068 <font class="keyword">protected</font>:
|
||||
00069
|
||||
00070 THREAD_HANDLE thread;
|
||||
00071
|
||||
00072 };
|
||||
00073
|
||||
00074 <font class="keyword">class </font>Mutex : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00075 {
|
||||
00076 <font class="keyword">public</font>:
|
||||
00078 Mutex();
|
||||
00079
|
||||
00081 ~Mutex();
|
||||
00082
|
||||
00084 <font class="keywordtype">void</font> lock(<font class="keywordtype">void</font>);
|
||||
00085
|
||||
00087 <font class="keywordtype">void</font> unlock(<font class="keywordtype">void</font>);
|
||||
00088
|
||||
00089 <font class="keyword">protected</font>:
|
||||
00090
|
||||
00091 MUTEX mutex;
|
||||
00092
|
||||
00093 };
|
||||
00094
|
||||
00095 <font class="preprocessor">#endif // defined(__THREAD_H)</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
41
doc/html/TubeBell_8h-source.html
Normal file
41
doc/html/TubeBell_8h-source.html
Normal file
@@ -0,0 +1,41 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>TubeBell.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00031 <font class="comment">/***************************************************/</font>
|
||||
00032
|
||||
00033 <font class="preprocessor">#if !defined(__TUBEBELL_H)</font>
|
||||
00034 <font class="preprocessor"></font><font class="preprocessor">#define __TUBEBELL_H</font>
|
||||
00035 <font class="preprocessor"></font>
|
||||
00036 <font class="preprocessor">#include "FM.h"</font>
|
||||
00037
|
||||
00038 <font class="keyword">class </font><a class="code" href="classTubeBell.html">TubeBell</a> : <font class="keyword">public</font> <a class="code" href="classFM.html">FM</a>
|
||||
00039 {
|
||||
00040 <font class="keyword">public</font>:
|
||||
00042 <a class="code" href="classTubeBell.html#a0">TubeBell</a>();
|
||||
00043
|
||||
00045 <a class="code" href="classTubeBell.html#a1">~TubeBell</a>();
|
||||
00046
|
||||
00048 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00049
|
||||
00051 MY_FLOAT <a class="code" href="classFM.html#a14">tick</a>();
|
||||
00052 };
|
||||
00053
|
||||
00054 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
60
doc/html/TwoPole_8h-source.html
Normal file
60
doc/html/TwoPole_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>TwoPole.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00013 <font class="comment">/***************************************************/</font>
|
||||
00014
|
||||
00015 <font class="preprocessor">#if !defined(__TWOPOLE_H)</font>
|
||||
00016 <font class="preprocessor"></font><font class="preprocessor">#define __TWOPOLE_H</font>
|
||||
00017 <font class="preprocessor"></font>
|
||||
00018 <font class="preprocessor">#include "Filter.h"</font>
|
||||
00019
|
||||
00020 <font class="keyword">class </font><a class="code" href="classTwoPole.html">TwoPole</a> : <font class="keyword">protected</font> <a class="code" href="classFilter.html">Filter</a>
|
||||
00021 {
|
||||
00022 <font class="keyword">public</font>:
|
||||
00023
|
||||
00025 <a class="code" href="classTwoPole.html#a0">TwoPole</a>();
|
||||
00026
|
||||
00028 <a class="code" href="classTwoPole.html#a1">~TwoPole</a>();
|
||||
00029
|
||||
00031 <font class="keywordtype">void</font> <a class="code" href="classFilter.html#a3">clear</a>(<font class="keywordtype">void</font>);
|
||||
00032
|
||||
00034 <font class="keywordtype">void</font> <a class="code" href="classTwoPole.html#a3">setB0</a>(MY_FLOAT b0);
|
||||
00035
|
||||
00037 <font class="keywordtype">void</font> <a class="code" href="classTwoPole.html#a4">setA1</a>(MY_FLOAT a1);
|
||||
00038
|
||||
00040 <font class="keywordtype">void</font> <a class="code" href="classTwoPole.html#a5">setA2</a>(MY_FLOAT a2);
|
||||
00041
|
||||
00043
|
||||
00056 <font class="keywordtype">void</font> <a class="code" href="classTwoPole.html#a6">setResonance</a>(MY_FLOAT frequency, MY_FLOAT radius, <font class="keywordtype">bool</font> normalize = FALSE);
|
||||
00057
|
||||
00059
|
||||
00063 <font class="keywordtype">void</font> <a class="code" href="classFilter.html#a7">setGain</a>(MY_FLOAT theGain);
|
||||
00064
|
||||
00066 MY_FLOAT <a class="code" href="classFilter.html#a8">getGain</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00067
|
||||
00069 MY_FLOAT <a class="code" href="classFilter.html#a9">lastOut</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00070
|
||||
00072 MY_FLOAT <a class="code" href="classFilter.html#a10">tick</a>(MY_FLOAT sample);
|
||||
00073
|
||||
00075 MY_FLOAT *<a class="code" href="classFilter.html#a10">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00076 };
|
||||
00077
|
||||
00078 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
59
doc/html/TwoZero_8h-source.html
Normal file
59
doc/html/TwoZero_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>TwoZero.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00013 <font class="comment">/***************************************************/</font>
|
||||
00014
|
||||
00015 <font class="preprocessor">#if !defined(__TWOZERO_H)</font>
|
||||
00016 <font class="preprocessor"></font><font class="preprocessor">#define __TWOZERO_H</font>
|
||||
00017 <font class="preprocessor"></font>
|
||||
00018 <font class="preprocessor">#include "Filter.h"</font>
|
||||
00019
|
||||
00020 <font class="keyword">class </font><a class="code" href="classTwoZero.html">TwoZero</a> : <font class="keyword">protected</font> <a class="code" href="classFilter.html">Filter</a>
|
||||
00021 {
|
||||
00022 <font class="keyword">public</font>:
|
||||
00024 <a class="code" href="classTwoZero.html#a0">TwoZero</a>();
|
||||
00025
|
||||
00027 <a class="code" href="classTwoZero.html#a1">~TwoZero</a>();
|
||||
00028
|
||||
00030 <font class="keywordtype">void</font> <a class="code" href="classFilter.html#a3">clear</a>(<font class="keywordtype">void</font>);
|
||||
00031
|
||||
00033 <font class="keywordtype">void</font> <a class="code" href="classTwoZero.html#a3">setB0</a>(MY_FLOAT b0);
|
||||
00034
|
||||
00036 <font class="keywordtype">void</font> <a class="code" href="classTwoZero.html#a4">setB1</a>(MY_FLOAT b1);
|
||||
00037
|
||||
00039 <font class="keywordtype">void</font> <a class="code" href="classTwoZero.html#a5">setB2</a>(MY_FLOAT b2);
|
||||
00040
|
||||
00042
|
||||
00052 <font class="keywordtype">void</font> <a class="code" href="classTwoZero.html#a6">setNotch</a>(MY_FLOAT frequency, MY_FLOAT radius);
|
||||
00053
|
||||
00055
|
||||
00059 <font class="keywordtype">void</font> <a class="code" href="classFilter.html#a7">setGain</a>(MY_FLOAT theGain);
|
||||
00060
|
||||
00062 MY_FLOAT <a class="code" href="classFilter.html#a8">getGain</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00063
|
||||
00065 MY_FLOAT <a class="code" href="classFilter.html#a9">lastOut</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00066
|
||||
00068 MY_FLOAT <a class="code" href="classFilter.html#a10">tick</a>(MY_FLOAT sample);
|
||||
00069
|
||||
00071 MY_FLOAT *<a class="code" href="classFilter.html#a10">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00072 };
|
||||
00073
|
||||
00074 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
59
doc/html/WaveLoop_8h-source.html
Normal file
59
doc/html/WaveLoop_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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>WaveLoop.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00019 <font class="comment">/***************************************************/</font>
|
||||
00020
|
||||
00021 <font class="preprocessor">#if !defined(__WAVELOOP_H)</font>
|
||||
00022 <font class="preprocessor"></font><font class="preprocessor">#define __WAVELOOP_H</font>
|
||||
00023 <font class="preprocessor"></font>
|
||||
00024 <font class="preprocessor">#include "WvIn.h"</font>
|
||||
00025 <font class="preprocessor">#include <stdio.h></font>
|
||||
00026
|
||||
00027 <font class="keyword">class </font><a class="code" href="classWaveLoop.html">WaveLoop</a> : <font class="keyword">public</font> <a class="code" href="classWvIn.html">WvIn</a>
|
||||
00028 {
|
||||
00029 <font class="keyword">public</font>:
|
||||
00031 <a class="code" href="classWaveLoop.html#a0">WaveLoop</a>( <font class="keyword">const</font> <font class="keywordtype">char</font> *fileName, <font class="keywordtype">bool</font> raw = FALSE );
|
||||
00032
|
||||
00034 <font class="keyword">virtual</font> <a class="code" href="classWaveLoop.html#a1">~WaveLoop</a>();
|
||||
00035
|
||||
00037
|
||||
00043 <font class="keywordtype">void</font> <a class="code" href="classWaveLoop.html#a2">setFrequency</a>(MY_FLOAT aFrequency);
|
||||
00044
|
||||
00046 <font class="keywordtype">void</font> <a class="code" href="classWvIn.html#a13">addTime</a>(MY_FLOAT aTime);
|
||||
00047
|
||||
00049
|
||||
00054 <font class="keywordtype">void</font> <a class="code" href="classWaveLoop.html#a4">addPhase</a>(MY_FLOAT anAngle);
|
||||
00055
|
||||
00057
|
||||
00062 <font class="keywordtype">void</font> <a class="code" href="classWaveLoop.html#a5">addPhaseOffset</a>(MY_FLOAT anAngle);
|
||||
00063
|
||||
00065 <font class="keyword">const</font> MY_FLOAT *<a class="code" href="classWvIn.html#a19">tickFrame</a>(<font class="keywordtype">void</font>);
|
||||
00066
|
||||
00067 <font class="keyword">protected</font>:
|
||||
00068
|
||||
00069 <font class="comment">// Read file data.</font>
|
||||
00070 <font class="keywordtype">void</font> readData(<font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> index);
|
||||
00071
|
||||
00072 MY_FLOAT phaseOffset;
|
||||
00073
|
||||
00074 };
|
||||
00075
|
||||
00076 <font class="preprocessor">#endif // defined(__WAVELOOP_H)</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
43
doc/html/Wurley_8h-source.html
Normal file
43
doc/html/Wurley_8h-source.html
Normal file
@@ -0,0 +1,43 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>Wurley.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00031 <font class="comment">/***************************************************/</font>
|
||||
00032
|
||||
00033 <font class="preprocessor">#if !defined(__WURLEY_H)</font>
|
||||
00034 <font class="preprocessor"></font><font class="preprocessor">#define __WURLEY_H</font>
|
||||
00035 <font class="preprocessor"></font>
|
||||
00036 <font class="preprocessor">#include "FM.h"</font>
|
||||
00037
|
||||
00038 <font class="keyword">class </font><a class="code" href="classWurley.html">Wurley</a> : <font class="keyword">public</font> <a class="code" href="classFM.html">FM</a>
|
||||
00039 {
|
||||
00040 <font class="keyword">public</font>:
|
||||
00042 <a class="code" href="classWurley.html#a0">Wurley</a>();
|
||||
00043
|
||||
00045 <a class="code" href="classWurley.html#a1">~Wurley</a>();
|
||||
00046
|
||||
00048 <font class="keywordtype">void</font> <a class="code" href="classFM.html#a4">setFrequency</a>(MY_FLOAT frequency);
|
||||
00049
|
||||
00051 <font class="keywordtype">void</font> <a class="code" href="classInstrmnt.html#a2">noteOn</a>(MY_FLOAT frequency, MY_FLOAT amplitude);
|
||||
00052
|
||||
00054 MY_FLOAT <a class="code" href="classFM.html#a14">tick</a>();
|
||||
00055 };
|
||||
00056
|
||||
00057 <font class="preprocessor">#endif</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
136
doc/html/WvIn_8h-source.html
Normal file
136
doc/html/WvIn_8h-source.html
Normal file
@@ -0,0 +1,136 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>WvIn.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00037 <font class="comment">/***************************************************/</font>
|
||||
00038
|
||||
00039 <font class="preprocessor">#if !defined(__WVIN_H)</font>
|
||||
00040 <font class="preprocessor"></font><font class="preprocessor">#define __WVIN_H</font>
|
||||
00041 <font class="preprocessor"></font>
|
||||
00042 <font class="comment">// Files larger than CHUNK_THRESHOLD will be copied into memory</font>
|
||||
00043 <font class="comment">// in CHUNK_SIZE increments, rather than completely loaded into</font>
|
||||
00044 <font class="comment">// a buffer at once.</font>
|
||||
00045
|
||||
00046 <font class="preprocessor">#define CHUNK_THRESHOLD 5000000 // 5 Mb</font>
|
||||
00047 <font class="preprocessor"></font><font class="preprocessor">#define CHUNK_SIZE 1024 // sample frames</font>
|
||||
00048 <font class="preprocessor"></font>
|
||||
00049 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00050 <font class="preprocessor">#include <stdio.h></font>
|
||||
00051
|
||||
00052 <font class="keyword">class </font><a class="code" href="classWvIn.html">WvIn</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00053 {
|
||||
00054 <font class="keyword">public</font>:
|
||||
00056 <a class="code" href="classWvIn.html#a0">WvIn</a>();
|
||||
00057
|
||||
00059
|
||||
00063 <a class="code" href="classWvIn.html#a0">WvIn</a>( <font class="keyword">const</font> <font class="keywordtype">char</font> *fileName, <font class="keywordtype">bool</font> raw = FALSE );
|
||||
00064
|
||||
00066 <font class="keyword">virtual</font> <a class="code" href="classWvIn.html#a2">~WvIn</a>();
|
||||
00067
|
||||
00069
|
||||
00073 <font class="keywordtype">void</font> <a class="code" href="classWvIn.html#a3">openFile</a>( <font class="keyword">const</font> <font class="keywordtype">char</font> *fileName, <font class="keywordtype">bool</font> raw = FALSE );
|
||||
00074
|
||||
00076 <font class="keywordtype">void</font> <a class="code" href="classWvIn.html#a4">closeFile</a>(<font class="keywordtype">void</font>);
|
||||
00077
|
||||
00079 <font class="keywordtype">void</font> <a class="code" href="classWvIn.html#a5">reset</a>(<font class="keywordtype">void</font>);
|
||||
00080
|
||||
00082
|
||||
00088 <font class="keywordtype">void</font> <a class="code" href="classWvIn.html#a6">normalize</a>(<font class="keywordtype">void</font>);
|
||||
00089
|
||||
00091
|
||||
00097 <font class="keywordtype">void</font> <a class="code" href="classWvIn.html#a6">normalize</a>(MY_FLOAT peak);
|
||||
00098
|
||||
00100 <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> <a class="code" href="classWvIn.html#a8">getSize</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00101
|
||||
00103 <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> <a class="code" href="classWvIn.html#a9">getChannels</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00104
|
||||
00106
|
||||
00111 MY_FLOAT <a class="code" href="classWvIn.html#a10">getFileRate</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00112
|
||||
00114 <font class="keywordtype">bool</font> <a class="code" href="classWvIn.html#a11">isFinished</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00115
|
||||
00117
|
||||
00120 <font class="keywordtype">void</font> <a class="code" href="classWvIn.html#a12">setRate</a>(MY_FLOAT aRate);
|
||||
00121
|
||||
00123 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classWvIn.html#a13">addTime</a>(MY_FLOAT aTime);
|
||||
00124
|
||||
00126
|
||||
00132 <font class="keywordtype">void</font> <a class="code" href="classWvIn.html#a14">setInterpolate</a>(<font class="keywordtype">bool</font> doInterpolate);
|
||||
00133
|
||||
00135 <font class="keyword">virtual</font> MY_FLOAT <a class="code" href="classWvIn.html#a15">lastOut</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00136
|
||||
00138
|
||||
00141 <font class="keyword">virtual</font> MY_FLOAT <a class="code" href="classWvIn.html#a16">tick</a>(<font class="keywordtype">void</font>);
|
||||
00142
|
||||
00144
|
||||
00147 <font class="keyword">virtual</font> MY_FLOAT *<a class="code" href="classWvIn.html#a16">tick</a>(MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00148
|
||||
00150 <font class="keyword">virtual</font> <font class="keyword">const</font> MY_FLOAT *<a class="code" href="classWvIn.html#a18">lastFrame</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>;
|
||||
00151
|
||||
00153
|
||||
00156 <font class="keyword">virtual</font> <font class="keyword">const</font> MY_FLOAT *<a class="code" href="classWvIn.html#a19">tickFrame</a>(<font class="keywordtype">void</font>);
|
||||
00157
|
||||
00159
|
||||
00162 <font class="keyword">virtual</font> MY_FLOAT *<a class="code" href="classWvIn.html#a19">tickFrame</a>(MY_FLOAT *frameVector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> frames);
|
||||
00163
|
||||
00164 <font class="keyword">protected</font>:
|
||||
00165
|
||||
00166 <font class="comment">// Initialize class variables.</font>
|
||||
00167 <font class="keywordtype">void</font> init( <font class="keywordtype">void</font> );
|
||||
00168
|
||||
00169 <font class="comment">// Read file data.</font>
|
||||
00170 <font class="keyword">virtual</font> <font class="keywordtype">void</font> readData(<font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> index);
|
||||
00171
|
||||
00172 <font class="comment">// Get STK RAW file information.</font>
|
||||
00173 <font class="keywordtype">bool</font> getRawInfo( <font class="keyword">const</font> <font class="keywordtype">char</font> *fileName );
|
||||
00174
|
||||
00175 <font class="comment">// Get WAV file header information.</font>
|
||||
00176 <font class="keywordtype">bool</font> getWavInfo( <font class="keyword">const</font> <font class="keywordtype">char</font> *fileName );
|
||||
00177
|
||||
00178 <font class="comment">// Get SND (AU) file header information.</font>
|
||||
00179 <font class="keywordtype">bool</font> getSndInfo( <font class="keyword">const</font> <font class="keywordtype">char</font> *fileName );
|
||||
00180
|
||||
00181 <font class="comment">// Get AIFF file header information.</font>
|
||||
00182 <font class="keywordtype">bool</font> getAifInfo( <font class="keyword">const</font> <font class="keywordtype">char</font> *fileName );
|
||||
00183
|
||||
00184 <font class="comment">// Get MAT-file header information.</font>
|
||||
00185 <font class="keywordtype">bool</font> getMatInfo( <font class="keyword">const</font> <font class="keywordtype">char</font> *fileName );
|
||||
00186
|
||||
00187 <font class="keywordtype">char</font> msg[256];
|
||||
00188 FILE *fd;
|
||||
00189 MY_FLOAT *data;
|
||||
00190 MY_FLOAT *lastOutput;
|
||||
00191 <font class="keywordtype">bool</font> chunking;
|
||||
00192 <font class="keywordtype">bool</font> finished;
|
||||
00193 <font class="keywordtype">bool</font> interpolate;
|
||||
00194 <font class="keywordtype">bool</font> byteswap;
|
||||
00195 <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> fileSize;
|
||||
00196 <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> bufferSize;
|
||||
00197 <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> dataOffset;
|
||||
00198 <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> channels;
|
||||
00199 <font class="keywordtype">long</font> chunkPointer;
|
||||
00200 STK_FORMAT dataType;
|
||||
00201 MY_FLOAT fileRate;
|
||||
00202 MY_FLOAT gain;
|
||||
00203 MY_FLOAT time;
|
||||
00204 MY_FLOAT rate;
|
||||
00205 };
|
||||
00206
|
||||
00207 <font class="preprocessor">#endif // defined(__WVIN_H)</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
117
doc/html/WvOut_8h-source.html
Normal file
117
doc/html/WvOut_8h-source.html
Normal file
@@ -0,0 +1,117 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>WvOut.h</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************/</font>
|
||||
00034 <font class="comment">/***************************************************/</font>
|
||||
00035
|
||||
00036 <font class="preprocessor">#if !defined(__WVOUT_H)</font>
|
||||
00037 <font class="preprocessor"></font><font class="preprocessor">#define __WVOUT_H</font>
|
||||
00038 <font class="preprocessor"></font>
|
||||
00039 <font class="preprocessor">#include "Stk.h"</font>
|
||||
00040 <font class="preprocessor">#include <stdio.h></font>
|
||||
00041
|
||||
00042 <font class="preprocessor">#define BUFFER_SIZE 1024 // sample frames</font>
|
||||
00043 <font class="preprocessor"></font>
|
||||
00044 <font class="keyword">class </font><a class="code" href="classWvOut.html">WvOut</a> : <font class="keyword">public</font> <a class="code" href="classStk.html">Stk</a>
|
||||
00045 {
|
||||
00046 <font class="keyword">public</font>:
|
||||
00047
|
||||
00048 <font class="keyword">typedef</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> FILE_TYPE;
|
||||
00049
|
||||
<a name="l00050"></a><a class="code" href="classWvOut.html#p0">00050</a> <font class="keyword">static</font> <font class="keyword">const</font> FILE_TYPE WVOUT_RAW;
|
||||
<a name="l00051"></a><a class="code" href="classWvOut.html#p1">00051</a> <font class="keyword">static</font> <font class="keyword">const</font> FILE_TYPE WVOUT_WAV;
|
||||
<a name="l00052"></a><a class="code" href="classWvOut.html#p2">00052</a> <font class="keyword">static</font> <font class="keyword">const</font> FILE_TYPE WVOUT_SND;
|
||||
<a name="l00053"></a><a class="code" href="classWvOut.html#p3">00053</a> <font class="keyword">static</font> <font class="keyword">const</font> FILE_TYPE WVOUT_AIF;
|
||||
<a name="l00054"></a><a class="code" href="classWvOut.html#p4">00054</a> <font class="keyword">static</font> <font class="keyword">const</font> FILE_TYPE WVOUT_MAT;
|
||||
00055
|
||||
00057 <a class="code" href="classWvOut.html#a0">WvOut</a>();
|
||||
00058
|
||||
00060
|
||||
00063 <a class="code" href="classWvOut.html#a0">WvOut</a>( <font class="keyword">const</font> <font class="keywordtype">char</font> *fileName, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> nChannels = 1, FILE_TYPE type = WVOUT_WAV, Stk::STK_FORMAT format = STK_SINT16 );
|
||||
00064
|
||||
00066 <font class="keyword">virtual</font> <a class="code" href="classWvOut.html#a2">~WvOut</a>();
|
||||
00067
|
||||
00069
|
||||
00072 <font class="keywordtype">void</font> <a class="code" href="classWvOut.html#a3">openFile</a>( <font class="keyword">const</font> <font class="keywordtype">char</font> *fileName, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> nChannels = 1,
|
||||
00073 WvOut::FILE_TYPE type = WVOUT_WAV, Stk::STK_FORMAT format = STK_SINT16 );
|
||||
00074
|
||||
00076 <font class="keywordtype">void</font> <a class="code" href="classWvOut.html#a4">closeFile</a>( <font class="keywordtype">void</font> );
|
||||
00077
|
||||
00079 <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> <a class="code" href="classWvOut.html#a5">getFrames</a>( <font class="keywordtype">void</font> ) <font class="keyword">const</font>;
|
||||
00080
|
||||
00082 MY_FLOAT <a class="code" href="classWvOut.html#a6">getTime</a>( <font class="keywordtype">void</font> ) <font class="keyword">const</font>;
|
||||
00083
|
||||
00085
|
||||
00088 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classWvOut.html#a7">tick</a>(<font class="keyword">const</font> MY_FLOAT sample);
|
||||
00089
|
||||
00091
|
||||
00094 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classWvOut.html#a7">tick</a>(<font class="keyword">const</font> MY_FLOAT *vector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> vectorSize);
|
||||
00095
|
||||
00097
|
||||
00100 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classWvOut.html#a9">tickFrame</a>(<font class="keyword">const</font> MY_FLOAT *frameVector, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> frames = 1);
|
||||
00101
|
||||
00102 <font class="keyword">protected</font>:
|
||||
00103
|
||||
00104 <font class="comment">// Initialize class variables.</font>
|
||||
00105 <font class="keywordtype">void</font> init( <font class="keywordtype">void</font> );
|
||||
00106
|
||||
00107 <font class="comment">// Write data to output file;</font>
|
||||
00108 <font class="keyword">virtual</font> <font class="keywordtype">void</font> writeData( <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> frames );
|
||||
00109
|
||||
00110 <font class="comment">// Write STK RAW file header.</font>
|
||||
00111 <font class="keywordtype">bool</font> setRawFile( <font class="keyword">const</font> <font class="keywordtype">char</font> *fileName );
|
||||
00112
|
||||
00113 <font class="comment">// Write WAV file header.</font>
|
||||
00114 <font class="keywordtype">bool</font> setWavFile( <font class="keyword">const</font> <font class="keywordtype">char</font> *fileName );
|
||||
00115
|
||||
00116 <font class="comment">// Close WAV file, updating the header.</font>
|
||||
00117 <font class="keywordtype">void</font> closeWavFile( <font class="keywordtype">void</font> );
|
||||
00118
|
||||
00119 <font class="comment">// Write SND (AU) file header.</font>
|
||||
00120 <font class="keywordtype">bool</font> setSndFile( <font class="keyword">const</font> <font class="keywordtype">char</font> *fileName );
|
||||
00121
|
||||
00122 <font class="comment">// Close SND file, updating the header.</font>
|
||||
00123 <font class="keywordtype">void</font> closeSndFile( <font class="keywordtype">void</font> );
|
||||
00124
|
||||
00125 <font class="comment">// Write AIFF file header.</font>
|
||||
00126 <font class="keywordtype">bool</font> setAifFile( <font class="keyword">const</font> <font class="keywordtype">char</font> *fileName );
|
||||
00127
|
||||
00128 <font class="comment">// Close AIFF file, updating the header.</font>
|
||||
00129 <font class="keywordtype">void</font> closeAifFile( <font class="keywordtype">void</font> );
|
||||
00130
|
||||
00131 <font class="comment">// Write MAT-file header.</font>
|
||||
00132 <font class="keywordtype">bool</font> setMatFile( <font class="keyword">const</font> <font class="keywordtype">char</font> *fileName );
|
||||
00133
|
||||
00134 <font class="comment">// Close MAT-file, updating the header.</font>
|
||||
00135 <font class="keywordtype">void</font> closeMatFile( <font class="keywordtype">void</font> );
|
||||
00136
|
||||
00137 <font class="keywordtype">char</font> msg[256];
|
||||
00138 FILE *fd;
|
||||
00139 MY_FLOAT *data;
|
||||
00140 FILE_TYPE fileType;
|
||||
00141 STK_FORMAT dataType;
|
||||
00142 <font class="keywordtype">bool</font> byteswap;
|
||||
00143 <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> channels;
|
||||
00144 <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> counter;
|
||||
00145 <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> totalCount;
|
||||
00146
|
||||
00147 };
|
||||
00148
|
||||
00149 <font class="preprocessor">#endif // defined(__WVOUT_H)</font>
|
||||
</font></pre></div><HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
95
doc/html/annotated.html
Normal file
95
doc/html/annotated.html
Normal file
@@ -0,0 +1,95 @@
|
||||
<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"><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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>STK Compound List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<ul>
|
||||
<li><a class="el" href="classADSR.html">ADSR</a> (STK ADSR envelope class)
|
||||
<li><a class="el" href="classBandedWG.html">BandedWG</a> (Banded waveguide modeling class)
|
||||
<li><a class="el" href="classBeeThree.html">BeeThree</a> (STK Hammond-oid organ <a class="el" href="classFM.html">FM</a> synthesis instrument)
|
||||
<li><a class="el" href="classBiQuad.html">BiQuad</a> (STK biquad (two-pole, two-zero) filter class)
|
||||
<li><a class="el" href="classBlowBotl.html">BlowBotl</a> (STK blown bottle instrument class)
|
||||
<li><a class="el" href="classBlowHole.html">BlowHole</a> (STK clarinet physical model with one register hole and one tonehole)
|
||||
<li><a class="el" href="classBowed.html">Bowed</a> (STK bowed string instrument class)
|
||||
<li><a class="el" href="classBowTabl.html">BowTabl</a> (STK bowed string table class)
|
||||
<li><a class="el" href="classBrass.html">Brass</a> (STK simple brass instrument class)
|
||||
<li><a class="el" href="classChorus.html">Chorus</a> (STK chorus effect class)
|
||||
<li><a class="el" href="classClarinet.html">Clarinet</a> (STK clarinet physical model class)
|
||||
<li><a class="el" href="classDelay.html">Delay</a> (STK non-interpolating delay line class)
|
||||
<li><a class="el" href="classDelayA.html">DelayA</a> (STK allpass interpolating delay line class)
|
||||
<li><a class="el" href="classDelayL.html">DelayL</a> (STK linear interpolating delay line class)
|
||||
<li><a class="el" href="classDrummer.html">Drummer</a> (STK drum sample player class)
|
||||
<li><a class="el" href="classEcho.html">Echo</a> (STK echo effect class)
|
||||
<li><a class="el" href="classEnvelope.html">Envelope</a> (STK envelope base class)
|
||||
<li><a class="el" href="classFilter.html">Filter</a> (STK filter class)
|
||||
<li><a class="el" href="classFlute.html">Flute</a> (STK flute physical model class)
|
||||
<li><a class="el" href="classFM.html">FM</a> (STK abstract FM synthesis base class)
|
||||
<li><a class="el" href="classFMVoices.html">FMVoices</a> (STK singing <a class="el" href="classFM.html">FM</a> synthesis instrument)
|
||||
<li><a class="el" href="classFormSwep.html">FormSwep</a> (STK sweepable formant filter class)
|
||||
<li><a class="el" href="classHevyMetl.html">HevyMetl</a> (STK heavy metal <a class="el" href="classFM.html">FM</a> synthesis instrument)
|
||||
<li><a class="el" href="classInstrmnt.html">Instrmnt</a> (STK instrument abstract base class)
|
||||
<li><a class="el" href="classJCRev.html">JCRev</a> (John Chowning's reverberator class)
|
||||
<li><a class="el" href="classJetTabl.html">JetTabl</a> (STK jet table class)
|
||||
<li><a class="el" href="classMandolin.html">Mandolin</a> (STK mandolin instrument model class)
|
||||
<li><a class="el" href="classMesh2D.html">Mesh2D</a> (Two-dimensional rectilinear waveguide mesh class)
|
||||
<li><a class="el" href="classMessager.html">Messager</a> (STK input control message parser)
|
||||
<li><a class="el" href="classModal.html">Modal</a> (STK resonance model instrument)
|
||||
<li><a class="el" href="classModalBar.html">ModalBar</a> (STK resonant bar instrument class)
|
||||
<li><a class="el" href="classModulate.html">Modulate</a> (STK periodic/random modulator)
|
||||
<li><a class="el" href="classMoog.html">Moog</a> (STK moog-like swept filter sampling synthesis class)
|
||||
<li><a class="el" href="classNoise.html">Noise</a> (STK noise generator)
|
||||
<li><a class="el" href="classNRev.html">NRev</a> (CCRMA's NRev reverberator class)
|
||||
<li><a class="el" href="classOnePole.html">OnePole</a> (STK one-pole filter class)
|
||||
<li><a class="el" href="classOneZero.html">OneZero</a> (STK one-zero filter class)
|
||||
<li><a class="el" href="classPercFlut.html">PercFlut</a> (STK percussive flute <a class="el" href="classFM.html">FM</a> synthesis instrument)
|
||||
<li><a class="el" href="classPitShift.html">PitShift</a> (STK simple pitch shifter effect class)
|
||||
<li><a class="el" href="classPlucked.html">Plucked</a> (STK plucked string model class)
|
||||
<li><a class="el" href="classPluckTwo.html">PluckTwo</a> (STK enhanced plucked string model class)
|
||||
<li><a class="el" href="classPoleZero.html">PoleZero</a> (STK one-pole, one-zero filter class)
|
||||
<li><a class="el" href="classPRCRev.html">PRCRev</a> (Perry's simple reverberator class)
|
||||
<li><a class="el" href="classReedTabl.html">ReedTabl</a> (STK reed table class)
|
||||
<li><a class="el" href="classResonate.html">Resonate</a> (STK noise driven formant filter)
|
||||
<li><a class="el" href="classReverb.html">Reverb</a> (STK abstract reverberator parent class)
|
||||
<li><a class="el" href="classRhodey.html">Rhodey</a> (STK Fender Rhodes electric piano <a class="el" href="classFM.html">FM</a> synthesis instrument)
|
||||
<li><a class="el" href="classRtDuplex.html">RtDuplex</a> (STK realtime audio input/output class)
|
||||
<li><a class="el" href="classRtMidi.html">RtMidi</a> (STK realtime MIDI class)
|
||||
<li><a class="el" href="classRtWvIn.html">RtWvIn</a> (STK realtime audio input class)
|
||||
<li><a class="el" href="classRtWvOut.html">RtWvOut</a> (STK realtime audio output class)
|
||||
<li><a class="el" href="classSampler.html">Sampler</a> (STK sampling synthesis abstract base class)
|
||||
<li><a class="el" href="classSaxofony.html">Saxofony</a> (STK faux conical bore reed instrument class)
|
||||
<li><a class="el" href="classShakers.html">Shakers</a> (PhISEM and PhOLIES class)
|
||||
<li><a class="el" href="classSimple.html">Simple</a> (STK wavetable/noise instrument)
|
||||
<li><a class="el" href="classSitar.html">Sitar</a> (STK sitar string model class)
|
||||
<li><a class="el" href="classSKINI.html">SKINI</a> (STK SKINI parsing class)
|
||||
<li><a class="el" href="classSocket.html">Socket</a> (STK TCP socket client/server class)
|
||||
<li><a class="el" href="classStifKarp.html">StifKarp</a> (STK plucked stiff string instrument)
|
||||
<li><a class="el" href="classStk.html">Stk</a> (STK base class)
|
||||
<li><a class="el" href="classStkError.html">StkError</a> (STK error handling class)
|
||||
<li><a class="el" href="classSubNoise.html">SubNoise</a> (STK sub-sampled noise generator)
|
||||
<li><a class="el" href="classTable.html">Table</a> (STK table lookup class)
|
||||
<li><a class="el" href="classTcpWvIn.html">TcpWvIn</a> (STK internet streaming input class)
|
||||
<li><a class="el" href="classTcpWvOut.html">TcpWvOut</a> (STK internet streaming output class)
|
||||
<li><a class="el" href="classThread.html">Thread</a> (STK thread class)
|
||||
<li><a class="el" href="classTubeBell.html">TubeBell</a> (STK tubular bell (orchestral chime) <a class="el" href="classFM.html">FM</a> synthesis instrument)
|
||||
<li><a class="el" href="classTwoPole.html">TwoPole</a> (STK two-pole filter class)
|
||||
<li><a class="el" href="classTwoZero.html">TwoZero</a> (STK two-zero filter class)
|
||||
<li><a class="el" href="classWaveLoop.html">WaveLoop</a> (STK waveform oscillator class)
|
||||
<li><a class="el" href="classWurley.html">Wurley</a> (STK Wurlitzer electric piano <a class="el" href="classFM.html">FM</a> synthesis instrument)
|
||||
<li><a class="el" href="classWvIn.html">WvIn</a> (STK audio data input base class)
|
||||
<li><a class="el" href="classWvOut.html">WvOut</a> (STK audio data output base class)
|
||||
</ul>
|
||||
<HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
BIN
doc/html/ccrma.gif
Normal file
BIN
doc/html/ccrma.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.1 KiB |
58
doc/html/classADSR-members.html
Normal file
58
doc/html/classADSR-members.html
Normal file
@@ -0,0 +1,58 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
|
||||
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<CENTER>
|
||||
<img src="princeton.gif"> <img src="ccrma.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="tutorial.html">Tutorial</a></CENTER>
|
||||
<HR>
|
||||
<!-- Generated by Doxygen 1.2.8.1 -->
|
||||
<h1>ADSR Member List</h1>This is the complete list of members for <a class="el" href="classADSR.html">ADSR</a>, including all inherited members.<ul>
|
||||
<li><a class="el" href="classADSR.html#a0">ADSR</a>(void)
|
||||
<li><a class="el" href="classEnvelope.html#a0">Envelope</a>(void)
|
||||
<li><a class="el" href="classADSR.html#a13">getState</a>(void) const
|
||||
<code> [virtual]</code><li><a class="el" href="classStk.html#e0">handleError</a>(const char *message, StkError::TYPE type)
|
||||
<code> [protected, static]</code><li><a class="el" href="classADSR.html#a3">keyOff</a>(void)
|
||||
<code> [virtual]</code><li><a class="el" href="classADSR.html#a2">keyOn</a>(void)
|
||||
<code> [virtual]</code><li><a class="el" href="classEnvelope.html#a11">lastOut</a>(void) const
|
||||
<li><a class="el" href="classStk.html#d0">sampleRate</a>(void)
|
||||
<code> [static]</code><li><a class="el" href="classADSR.html#a11">setAllTimes</a>(MY_FLOAT aTime, MY_FLOAT dTime, MY_FLOAT sLevel, MY_FLOAT rTime)
|
||||
<li><a class="el" href="classADSR.html#a4">setAttackRate</a>(MY_FLOAT aRate)
|
||||
<li><a class="el" href="classADSR.html#a8">setAttackTime</a>(MY_FLOAT aTime)
|
||||
<li><a class="el" href="classADSR.html#a5">setDecayRate</a>(MY_FLOAT aRate)
|
||||
<li><a class="el" href="classADSR.html#a9">setDecayTime</a>(MY_FLOAT aTime)
|
||||
<li><a class="el" href="classEnvelope.html#a4">setRate</a>(MY_FLOAT aRate)
|
||||
<li><a class="el" href="classADSR.html#a7">setReleaseRate</a>(MY_FLOAT aRate)
|
||||
<li><a class="el" href="classADSR.html#a10">setReleaseTime</a>(MY_FLOAT aTime)
|
||||
<li><a class="el" href="classStk.html#d1">setSampleRate</a>(MY_FLOAT newRate)
|
||||
<code> [static]</code><li><a class="el" href="classADSR.html#a6">setSustainLevel</a>(MY_FLOAT aLevel)
|
||||
<li><a class="el" href="classADSR.html#a12">setTarget</a>(MY_FLOAT aTarget)
|
||||
<code> [virtual]</code><li><a class="el" href="classEnvelope.html#a5">setTime</a>(MY_FLOAT aTime)
|
||||
<li><a class="el" href="classADSR.html#a14">setValue</a>(MY_FLOAT aValue)
|
||||
<code> [virtual]</code><li><a class="el" href="classStk.html#d5">sleep</a>(unsigned long milliseconds)
|
||||
<code> [static]</code><li><a class="el" href="classStk.html#b0">Stk</a>(void)
|
||||
<code> [protected]</code><li><a class="el" href="classStk.html#p3">STK_FLOAT32</a>
|
||||
<code> [static]</code><li><a class="el" href="classStk.html#p4">STK_FLOAT64</a>
|
||||
<code> [static]</code><li><a class="el" href="classStk.html#p1">STK_SINT16</a>
|
||||
<code> [static]</code><li><a class="el" href="classStk.html#p2">STK_SINT32</a>
|
||||
<code> [static]</code><li><a class="el" href="classStk.html#p0">STK_SINT8</a>
|
||||
<code> [static]</code><li><a class="el" href="classStk.html#d2">swap16</a>(unsigned char *ptr)
|
||||
<code> [static]</code><li><a class="el" href="classStk.html#d3">swap32</a>(unsigned char *ptr)
|
||||
<code> [static]</code><li><a class="el" href="classStk.html#d4">swap64</a>(unsigned char *ptr)
|
||||
<code> [static]</code><li><a class="el" href="classADSR.html#a15">tick</a>(void)
|
||||
<code> [virtual]</code><li><a class="el" href="classADSR.html#a16">tick</a>(MY_FLOAT *vector, unsigned int vectorSize)
|
||||
<code> [virtual]</code><li><a class="el" href="classADSR.html#a1">~ADSR</a>(void)
|
||||
<li><a class="el" href="classEnvelope.html#a1">~Envelope</a>(void)
|
||||
<code> [virtual]</code><li><a class="el" href="classStk.html#b1">~Stk</a>(void)
|
||||
<code> [protected, virtual]</code></ul>
|
||||
<HR>
|
||||
|
||||
<table>
|
||||
<tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
|
||||
<tr><td>©1995-2002 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