mirror of
https://github.com/thestk/stk
synced 2026-01-11 20:11:52 +00:00
168 lines
7.6 KiB
Plaintext
168 lines
7.6 KiB
Plaintext
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
|
|
|
|
|
|- SingWave
|
|
|
|
|
|- Voicer
|
|
|
|
|
|- Messager
|
|
|
|
|
|- SKINI
|
|
|
|
|
|- ReedTabl, JetTabl, BowTabl
|
|
|
|
|
| .- FM - (HevyMetl, PercFlut, Rhodey, Wurley, TubeBell, BeeThree, FMVoices)
|
|
| |
|
|
| |- Modal - ModalBar
|
|
| |
|
|
| |- VoicForm
|
|
| |
|
|
| |- Sampler - Moog
|
|
| |
|
|
| |- Resonate
|
|
| |
|
|
| |- PluckedTwo - Mandolin
|
|
.- Instrmnt -|
|
|
|- Drummer
|
|
|
|
|
|- Clarinet, BlowHole, Saxofony, Flute, Brass, BlowBotl, Bowed, Plucked, StifKarp, Sitar
|
|
|
|
|
|- Shakers
|
|
|
|
|
|- BandedWG
|
|
|
|
|
|- Mesh2D
|
|
|
|
|
.- Whistle
|
|
|
|
|
|
*********** 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
|
|
SingWave.cpp Looping wave table with randomness: Modulate, WaveLoop, Envelope
|
|
|
|
|
|
********** 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
|
|
VoicForm.cpp 4 Formant Voice Synthesis FormSwep, SingWave, OnePole, OneZero, Envelope, Noise
|
|
BeeThree.cpp Cheezy Additive Organ 4 Oscillators Additive
|
|
Sampler.cpp Sampling Synthesizer 5 each ADSR, WvIn, WaveLoop, OnePole
|
|
Moog.cpp Swept Filter Sampler with Swept Filter
|
|
Resonate.cpp Filtered Noise ADSR, BiQuad, Noise
|
|
Drummer.cpp Drum Synthesizer Bunch of WvIns, and OnePole
|
|
Shakers.cpp PhISM statistical model for shakers and real-world sound effects
|
|
Mesh2D.cpp Two-dimensional, rectilinear digital waveguide mesh.
|
|
Whistle.cpp Hybrid physical/spectral model of a police whistle.
|
|
|
|
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
|
|
Voicer.cpp Multi-instrument voice manager
|
|
|
|
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
|
|
|
|
|