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 <> 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 <> 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 <> FM4Op.cpp 4 Operator FM Master ADSR,RawWvIn,TwoZero FM4Alg3.cpp 3 Cascade w/ FB Mod. <> FM4Alg4.cpp Like Alg3 but diff. <> FM4Alg5.cpp 2 Parallel Simple FMs <> FM4Alg6.cpp 3 Carr. with 1 Mod. <> FM4Alg8.cpp 4 Osc. Additive <> HeavyMtl.cpp Distorted Synth <> PercFlut.cpp Perc. Flute <> Rhodey.cpp Rhodes-Like Elec. Piano <> Wurley.cpp Wurlitz. Elec. Piano <> TubeBell.cpp Classic FM Bell <> FMVoices.cpp 3-Formant Voice Synth. <> BeeThree.cpp Cheezy Organ for Paul <> Sampler.cpp Sampling Synth. 4 each ADSR, RawWvIn (att), RawWvIn (loop), OnePole SamplFlt.cpp Sampler with Swept Filter <> Moog1.cpp Swept filter flavor of <> 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