|
- STK: A ToolKit of Audio Synthesis Classes and Instruments in C++
-
- By Perry R. Cook and Gary P. Scavone, 1995--2017.
-
- STK Classes - See the HTML documentation in the html directory for complete information.
-
-
- .- Generator - (Modulate, Noise, SingWave, Envelope, ADSR, Asymp, SineWave, Blit, BlitSaw, BlitSquare, Granulate)
- |
- |- Function - (BowTable, JetTable, ReedTable)
- |
- |- FileRead, FileWrite
- |
- |- WvIn - (FileWvIn, RtWvIn, InetWvIn)
- | |
- | FileLoop
- |
- |- WvOut - (FileWvOut, RtWvOut, TcpWvOut)
- |
- |- Filter - (OnePole, OneZero, TwoPole, TwoZero, PoleZero, Biquad, FormSwep, Delay, DelayL, DelayA, TapDelay)
- |
- |- RtAudio, RtMidi, Socket, Thread, Mutex
- | |
- Stk -| UdpSocket
- | TcpServer
- | TcpClient
- |
- |- StkFrames
- |
- |- Effect - (Echo, Chorus, PitShift, LentPitShift, PRCRev, JCRev, NRev, FreeVerb)
- |
- |- Voicer, Message, Skini, MidiFileIn, Phonemes, Sphere, Vector3D
- |
- |- Messager
- |
- |- Twang, Guitar
- |
- | .- FM - (HevyMetl, PercFlut, Rhodey, Wurley, TubeBell, BeeThree, FMVoices)
- | |
- | |- Modal - ModalBar
- | |
- | |- VoicForm
- | |
- | |- Sampler - Moog
- | |
- | |- Resonate
- | |
- | |- 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: Generator.h Abstract base class for various source signal classes
- Function.h Abstract base class for various input/output mapping classes
- Envelope.cpp Linearly goes to target by rate
- ADSR.cpp ADSR envelope
- Asymp.cpp Exponentially approaches target
- Noise.cpp Random number generator
- SineWave.cpp Sinusoidal oscillator with internally computed static table
- Blit.cpp Bandlimited impulse train
- BlitSaw.cpp Bandlimited sawtooth generator
- BlitSquare.cpp Bandlimited square wave generator
- Granulate.cpp Granular synthesis class that processes a monophonic audio file
- FileRead.cpp Audio file input class (no internal data storage) for RAW, WAV, SND (AU), AIFF, MAT-file files
- WvIn.h Abstract base class for audio data input classes
- FileWvIn.cpp Audio file input interface class with interpolation
- FileLoop.cpp Wavetable looping (subclass of FileWvIn)
- RtWvIn.cpp Realtime audio input class (subclass of WvIn)
- InetWvIn.cpp Audio streaming (socket server) input class (subclass of WvIn)
-
- Sinks: FileWrite.cpp Audio file output class (no internal data storage) for RAW, WAV, SND (AU), AIFF, MAT-file files
- WvOut.h Abstract base class for audio data output classes
- FileWvOut.cpp Audio file output interface class to FileWrite
- RtWvOut.cpp Realtime audio output class (subclass of WvOut)
- InetWvOut.cpp Audio streaming (socket client) output class (subclass of WvOut)
-
- Filters: Filter.h Filter master class
- Iir.h General infinite-impulse response filter
- Fir.h General finite-impulse response filter
- 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
- DelayA.cpp Allpass interpolating delay line
- TapDelay.cpp Multi-tap non-interpolating delay line class
-
- Non-Linear: JetTabl.h Cubic jet non-linearity
- BowTabl.h x^(-3) Bow non-linearity
- ReedTabl.h One breakpoint saturating reed non-linearity
-
- Derived: Modulate.cpp Periodic and random vibrato: WvIn, Noise, OnePole
- SingWave.cpp Looping wave table with randomness: Modulate, FileLoop, Envelope
-
-
- ********** INSTRUMENTS AND ALGORITHMS **************
-
- Each class is listed either with some of the unit generators it uses,
- or in terms of the algorithm it implements. All inherit from Instrmnt,
- which inherits from Stk.
-
- Simple.cpp Simple Instrument Pulse oscillator + resonant filtered noise
- Plucked.cpp Basic Plucked String DelayA, OneZero, OnePole, Noise
- Twang.cpp Not So Basic Pluck DelayL, DlineA, Fir, allows commuted synthesis
- Mandolin.cpp Commuted Mandolin 2 Twangs
- Guitar.cpp N-String Guitar N Twangs, bridge coupling, allows feedback and body filter
- StifKarp.cpp Plucked String with Stiffness DelayA, DelayL, OneZero, BiQuad, Noise
- Bowed.cpp So So Bowed String DelayL, BowTabl, OnePole, BiQuad, WaveLoop, ADSR
- Brass.cpp Not So Bad Brass Instrument DelayA, BiQuad, PoleZero, ADSR, WaveLoop
- Clarinet.cpp Pretty Good Clarinet DelayL, ReedTabl, OneZero, Envelope, Noise, WaveLoop
- BlowHole.cpp Clarinet w/ Tone & Vent Holes DelayL, ReedTabl, OneZero, Envelope, Noise, WaveLoop, PoleZero
- Saxofony.cpp A Faux Saxophone DelayL, ReedTabl, OneZero, Envelope, Noise, WaveLoop
- Flute.cpp Pretty Good Flute JetTabl, DelayL, OnePole, PoleZero, Noise, ADSR, WaveLoop
- BlowBotl.cpp Blown Bottle JetTabl, BiQuad, PoleZero, Noise, ADSR, WaveLoop
- BandedWG.cpp Banded Waveguide Meta-Object Delay, BowTabl, ADSR, BiQuad
- Modal.cpp N Resonances Envelope, WaveLoop, BiQuad, OnePole
- ModalBar.cpp Various presets 4 Resonance Models
- FM.cpp N Operator FM Master ADSR, WaveLoop, TwoZero
- HevyMetl.cpp Distorted FM Synthesizer 3 Cascade with FB Modulator
- PercFlut.cpp Percussive Flute 3 Cascade Operators
- Rhodey.cpp Rhodes-Like Electric Piano 2 Parallel Simple FMs
- Wurley.cpp Wurlitzer Electric Piano 2 Parallel Simple FMs
- TubeBell.cpp Classic FM Bell 2 Parallel Simple FMs
- FMVoices.cpp 3 Formant FM Voice 3 Carriers Share 1 Modulator
- VoicForm.cpp 4 Formant Voice Synthesis FormSwep, SingWave, OnePole, OneZero, Envelope, Noise
- BeeThree.cpp Cheezy Additive Organ 4 Oscillators Additive
- Sampler.cpp Sampling Synthesizer 5 each ADSR, WvIn, WaveLoop, OnePole
- Moog.cpp Swept Filter Sampler with Swept Filter
- Resonate.cpp Filtered Noise ADSR, BiQuad, Noise
- Drummer.cpp Drum Synthesizer Bunch of WvIns, and OnePole
- Shakers.cpp PhISM statistical model for shakers and real-world sound effects
- Mesh2D.cpp Two-dimensional, rectilinear digital waveguide mesh.
- Whistle.cpp Hybrid physical/spectral model of a police whistle.
-
- Effect.h Effects Processor Base Class
- JCRev.cpp Chowning Reverberator 3 series allpass units, 4 parallel combs, 2 stereo delays
- NRev.cpp Another famous CCRMA Reverb 8 allpass, 6 parallel comb filters
- PRCRev.cpp Dirt Cheap Reverb by Cook 2 allpass, 2 comb filters
- FreeVerb.cpp Jezar at Dreampoint's FreeVerb 4 allpass, 8 lowpass comb filters
- Flanger.cpp Flanger Effects Processor DelayL, WaveLoop
- Chorus.cpp Chorus Effects Processor DelayL, WaveLoop
- PitShift.cpp Cheap Pitch Shifter DelayL
- LentPitShift.cpp Pitch Shifter based Lent Algorithm
-
-
- *********** 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
- SKINImsg.h #defines for often used and universal MIDI/SKINI symbols
- SKINItbl.h Table of SKINI messages
-
|