Designing software synthesizer plug-ins in C++ for RackAFX, VST3, and Audio Units

Bridging the gap from theory to programming, Designing Software Synthesizer Plug-Ins in C++ For RackAFX, VST3 and Audio Units contains complete code for designing and implementing software synthesizers for both Windows and Mac platforms. You will learn synthesizer operation, starting with the underl...

Descripción completa

Detalles Bibliográficos
Otros Autores: Pirkle, William C., author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: New York ; London : Focal Press 2015.
Edición:1st edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009628706506719
Tabla de Contenidos:
  • Cover; Half Title; Title; Copyright; Dedication; Contents; Preface; Foreword; Chapter 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 Th e Laplace and z-Transforms; 1.13 Aliasing; Chapter 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 Comparisons2.5 The RackAFX Philosophy and API; 2.6 Writing RackAFX Plug-ins; 2.7 Setting Up RackAFX; 2.8 Designing the User Interface in the 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 Factory2.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 File2.37 Managing AU Parameters; 2.38 AU Conventions; 2.39 AUSynth and AUInstrumentBase 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; Chapter 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 VST33.9 NanoSynth: AU; Chapter 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 First Order VA Lowpass Filter; 4.10 First Order VA Highpass Filter; 4.11 Second 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