Designing Software Synthesizer Plug-Ins in C++ : For RackAFX, VST3, and Audio Units
Designing Software Synthesizer Plug-Ins in C++ : For RackAFX, VST3, and Audio Units
Click to enlarge
Author(s): Pirkle, Will
Pirkle, Will C.
ISBN No.: 9781138787070
Pages: 760
Year: 201501
Format: Trade Paper
Price: $ 124.77
Dispatch delay: Dispatched between 7 to 15 days
Status: Available (On Demand)

1 Synthesizer Fundamentals 1.1 Synth Components 1.2 Oscillators 1.3 Filters 1.4 Amplifiers 1.5 Envelope Generators 1.6 Basic Synth Architecture 1.7 Fundamental Goals of Synth Patch Design 1.


8 Audio Data Formats for Plug-Ins 1.9 Signal Processing Review 1.10 Continuous Signals 1.11 Discretized Signals 1.12 The LaPlace and z-Transforms 1.13 Aliasing 2 Writing Plug-Ins 2.1 Dynamic Link Libraries 2.2 C and C++ Style DLLs 2.


3 The Application Programming Interface (API) 2.4 API Function Comparisons 2.5 The RackAFXTMPhilosophy and API 2.6 Writing RackAFX Plug-Ins 2.7 Setting Up RackAFX 2.8 Designing the User Interface in Prototype Phase 2.9 Setting Up Continuous Controls 2.10 Setting Up Indexed Controls: Radio Buttons 2.


11 Setting Up Indexed Controls: Sliders 2.12 Placing Controls Inside the LCD Control 2.13 Using the RackAFX GUI Designer 2.14 The RackAFX Plug-In Object 2.15 Writing VST3 Plug-Ins 2.16 VST3: Processor and Controller 2.17 The Common Object Model: COM 2.18 VST3 Synth Plug-In Architecture 2.


19 Processor and Controller Declarations 2.20 The Class Factory 2.21 VST3 Conventions 2.22 Implementing a VST3 Plug-In: Controller 2.23 VST3 Controller Initialization 2.24 VST3 Controller Serialization 2.25 VST3 Controller MIDI Mapping 2.26 Implementing a VST3 Plug-In: Processor 2.


27 VST3 Processor Initialization 2.28 VST3 Processor Serialization 2.29 VST3 Note Events, Control Changes and Rendering 2.30 Implementing a VST3 Plug-In: GUI Design 2.31 Using the VSTGUI® Drag and Drop Interface 2.32 VSTGUI Design Example 2.33 Implementing a VST3 Plug-In: Debugging 2.34 Writing Audio Unit (AU) Plug-Ins 2.


35 AU XCode Projects 2.36 The Info.plist File 2.37 Managing AU Parameters 2.38: AU Conventions 2.39 AUSynth and AUInstrument Base Class 2.40 Implementing the AUSynth Object 2.41 Implementing the Cocoa View Objects 2.


42 WPRotaryKnob 2.43 WPOptionMenuGroup 2.44 The View Factory and CocoaSynthView.plist 2.45 The View Event Listeners 2.46 The View Interface and Initialization 2.47 Implementing an AU Plug-In: Debugging 3 MIDI 3.1 MIDI Messages 3.


2 Channel Voice Messages 3.3 Project: NanoSynth 3.4 NanoSynth: RackAFX 3.5 RackAFX Status Window 3.6 NanoSynth: VST3 3.7 MIDI Events in VST3 3.8 MIDI Controllers in VST3 3.9 NanoSynth: AU 4 Analog and Digital Signal Processing 4.


1 Analog and Digital Building Blocks 4.2 Analog and Digital Transfer Functions 4.3 Digital Delay 4.4 Digital Differentiation 4.5 Analog and Digital Integration 4.6 The Bilinear z-Transform 4.7 Virtual Analog Filters 4.8 Analog Block Diagrams 4.


9 1st Order VA Lowpass Filter 4.10 1st Order VA Highpass Filter 4.11 2nd Order VA Filters 4.12 Series and Parallel VA Filters 4.13 Resolving Delay-Less Loops: Modified Härmä Method 4.14 Resolving Delay-Less Loops: Zavalishin''s Method 4.15 Analog Signal Flow Graphs 4.16 Wave Shaping 4.


17 Challenges 5 Synthesizer Oscillator Design 5.1 Trivial Oscillator Algorithms 5.2 Trivial Sawtooth Oscillator 5.3 Trivial Square Wave Oscillator 5.4 Trivial Triangle Wave Oscillator 5.5 Quasi Bandlimited Oscillator Algorithms 5.6 Bandlimited Impulse Trains (BLIT) 5.7 Bandlimited Step Functions (BLEP) 5.


8 Wider Window BLEP 5.9 Polynomial BLEP (PolyBLEP) 5.10 Coding the BLEP and PolyBLEP Algorithms 5.11 Wave Shaped BLEP Sawtooth Oscillator 5.12 BLEP Square Wave Oscillator 5.13 Differentiated Parabolic Waveform Oscillators 5.14 DPW Triangle Wave Oscillator 5.15 Other Non-Sinusoidal Oscillators 5.


16 White Noise Oscillator 5.17 Pseudo Random Noise (PN Sequence) Oscillator 5.18 Random Sample and Hold Oscillator 5.19 Exponential Decay Oscillator 5.20 Wavetable Oscillators 5.21 Bandlimited Wavetable Oscillators 5.22 Sinusoidal Oscillators by Approximation 5.23 Pitched Oscillator Calculation 5.


24 Sources of Modulation 5.25 Pitched Oscillator Starting Phase Consideration 5.26 LFO Features 5.27 Designing the Oscillator Objects 5.28 The COscillator Base Class 5.29 NanoSynth: OscackAFX Plug-Ins 2.7 Setting Up RackAFX 2.8 Designing the User Interface in Prototype Phase 2.


9 Setting Up Continuous Controls 2.10 Setting Up Indexed Controls: Radio Buttons 2.11 Setting Up Indexed Controls: Sliders 2.12 Placing Controls Inside the LCD Control 2.13 Using the RackAFX GUI Designer 2.14 The RackAFX Plug-In Object 2.15 Writing VST3 Plug-Ins 2.16 VST3: Processor and Controller 2.


17 The Common Object Model: COM 2.18 VST3 Synth Plug-In Architecture 2.19 Processor and Controller Declarations 2.20 The Class Factory 2.21 VST3 Conventions 2.22 Implementing a VST3 Plug-In: Controller 2.23 VST3 Controller Initialization 2.24 VST3 Controller Serialization 2.


25 VST3 Controller MIDI Mapping 2.26 Implementing a VST3 Plug-In: Processor 2.27 VST3 Processor Initialization 2.28 VST3 Processor Serialization 2.29 VST3 Note Events, Control Changes and Rendering 2.30 Implementing a VST3 Plug-In: GUI Design 2.31 Using the VSTGUI® Drag and Drop Interface 2.32 VSTGUI Design Example 2.


33 Implementing a VST3 Plug-In: Debugging 2.34 Writing Audio Unit (AU) Plug-Ins 2.35 AU XCode Projects 2.36 The Info.plist File 2.37 Managing AU Parameters 2.38: AU Conventions 2.39 AUSynth and AUInstrument Base Class 2.


40 Implementing the AUSynth Object 2.41 Implementing the Cocoa View Objects 2.42 WPRotaryKnob 2.43 WPOptionMenuGroup 2.44 The View Factory and CocoaSynthView.plist 2.45 The View Event Listeners 2.46 The View Interface and Initialization 2.


47 Implementing an AU Plug-In: Debugging 3 MIDI 3.1 MIDI Messages 3.2 Channel Voice Messages 3.3 Project: NanoSynth 3.4 NanoSynth: RackAFX 3.5 RackAFX Status Window 3.6 NanoSynth: VST3 3.7 MIDI Events in VST3 3.


8 MIDI Controllers in VST3 3.9 NanoSynth: AU 4 Analog and Digital Signal Processing 4.1 Analog and Digital Building Blocks 4.2 Analog and Digital Transfer Functions 4.3 Digital Delay 4.4 Digital Differentiation 4.5 Analog and Digital Integration 4.6 The Bilinear z-Transform 4.


7 Virtual Analog Filters 4.8 Analog Block Diagrams 4.9 1st Order VA Lowpass Filter 4.10 1st Order VA Highpass Filter 4.11 2nd Order VA Filters 4.12 Series and Parallel VA Filters 4.13 Resolving Delay-Less Loops: Modified Härmä Method 4.14 Resolving Delay-Less Loops: Zavalishin''s Method 4.


15 Analog Signal Flow Graphs 4.16 Wave Shaping 4.17 Challenges 5 Synthesizer Oscillator Design 5.1 Trivial Oscillator Algorithms 5.2 Trivial Sawtooth Oscillator 5.3 Trivial Square Wave Oscillator 5.4 Trivial Triangle Wave Oscillator 5.5 Quasi Bandlimited Oscillator Algorithms 5.


6 Bandlimited Impulse Trains (BLIT) 5.7 Bandlimited Step Functions (BLEP) 5.8 Wider Window BLEP 5.9 Polynomial BLEP (PolyBLEP) 5.10 Coding the BLEP and PolyBLEP Algorithms 5.11 Wave Shaped BLEP Sawtooth Oscillator 5.12 BLEP Square Wave Oscillator 5.13 Differentiated Parabolic Waveform Oscillators 5.


14 DPW Triangle Wave Oscillator 5.15 Other Non-Sinusoidal Oscillators 5.16 White Noise Oscillator 5.17 Pseudo Random Noise (PN Sequence) Oscillator 5.18 Random Sample and Hold Oscillator 5.19 Exponential Decay Oscillator 5.20 Wavetable Oscillators 5.21 Bandlimited Wavetable Oscillators 5.


22 Sinusoidal Oscillators by Approximation 5.23 Pitched Oscillator Calculation 5.24 Sources of Modulation 5.25 Pitched Oscillator Starting Phase Consideration 5.26 LFO Features 5.27 Designing the Oscillator Objects 5.28 The COscillator Base Class 5.29 NanoSynth: Oscion 2.


25 VST3 Controller MIDI Mapping 2.26 Implementing a VST3 Plug-In: Processor 2.27 VST3 Processor Initialization 2.28 VST3 Processor Serialization 2.29 VST3 Note Events, Control Changes and Rendering 2.30 Implementing a VST3 Plug-In: GUI Design 2.31 Using the VSTGUI® Drag and Drop Interface 2.32 VSTGUI Design Example 2.


33 Implementing a VST3 Plug-In: Debugging 2.34 Writing Audio Unit (AU) Plug-Ins 2.35 AU XCode Projects 2.36 The Info.plist File 2.37 Managing AU Parameters 2.38: AU Conventions 2.39 AUSynth and AUInstrument Base Class 2.


40 Implementing the AUSynth Object 2.41 Implementing the Cocoa View Objects 2.42 WPRotaryKnob 2.43 WPOptionMenuGroup 2.44 The View Factory and CocoaSynthView.plist 2.45 The View Event Listeners 2.46 The View Interface and Initialization 2.


47 Implementing an AU Plug-In: Debugging 3 MIDI 3.1 MIDI Messages 3.2 Channel Voice Messages 3.3 Project: NanoSynth 3.4 NanoSynth: RackAFX 3.5 RackAFX Status Wind.


To be able to view the table of contents for this publication then please subscribe by clicking the button below...
To be able to view the full description for this publication then please subscribe by clicking the button below...