Designing software synthesizer plug-ins in C++ with audio DSP

Designing Software Synthesizer Plugins in C++ provides everything you need to know to start designing and writing your own synthesizer plugins, including theory and practical examples for all of the major synthesizer building blocks, from LFOs and EGs to PCM samples and morphing wavetables, along wi...

Descripción completa

Detalles Bibliográficos
Otros Autores: Pirkle, William C., author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: New York, New York ; London : Routledge [2021]
Edición:Second edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009652816106719
Tabla de Contenidos:
  • Cover
  • Half Title
  • Title Page
  • Copyright Page
  • Dedication
  • Table of Contents
  • List of Figures
  • List of Tables
  • Preface
  • 1 SynthLab Introduction
  • 1.1 What You Need to Know to Use SynthLab Objects and Projects
  • 1.2 SynthLab Synth Projects
  • 1.3 Synth Components
  • 1.4 Basic Software Synth Architecture
  • 1.5 SynthLab Voice Architecture
  • 1.6 SynthLab C++ Implementation
  • 1.7 Why SynthLab Uses This Architecture
  • 1.8 SynthLab Object Operational Phases
  • Bibliography
  • 2 The Synth Engine
  • 2.1 Engine Behavior
  • 2.2 Engine Architecture
  • 2.3 Shared Data
  • 2.4 SynthEngine Constructor
  • 2.5 Audio and MIDI Block Rendering
  • 2.6 SynthEngine Operational Phases
  • Bibliography
  • 3 Synth Voices, Synth Modules, and Module Cores
  • 3.1 Voice Behavior
  • 3.2 SynthVoice Modules
  • 3.3 SynthVoice Parameters
  • 3.4 SynthModule Members
  • 3.5 SynthVoice Construction
  • 3.6 SynthVoice Operational Phases
  • 3.7 SynthModules and ModuleCores
  • 3.8 Module Cores
  • 3.9 SynthModule/ModuleCore Relationship
  • 3.10 Review
  • Bibliography
  • 4 Synth Operational Modes: Polyphony and Voice-Stealing
  • 4.1 The Note-Event Lifecycle
  • 4.2 SynthEngine MIDI Processing
  • 4.3 SynthEngine Unison Detuning
  • 4.4 Voice State and MIDI Event Storage
  • 4.5 Voice-Stealing
  • 4.6 Polyphony and Voice Timestamps
  • 4.7 Review
  • Bibliography
  • 5 Learning and Using the SynthLab Objects &amp
  • Projects
  • 5.1 Designing Modules with the SynthLab-DM Projects
  • 5.2 SynthLab-DM Modules Are Dynamic Linked Libraries
  • 5.3 Using SynthModules in Your Projects
  • 5.4 Using SynthEngines in Your Projects
  • 5.5 SynthEngine GUI Design and Parameter Update
  • 5.6 Programming the Modulation Matrix
  • 5.7 Getting WaveSequencer Status Meter Updates
  • Bibliography
  • 6 Modulation: Theory and Calculations
  • 6.1 SynthLab Mod Knob Mapping
  • 6.2 MMA Transforms &amp.
  • Calculations
  • 6.3 Sequential Circuits Vector Joystick Envelope Modulation
  • 6.4 Linear Frequency Modulation with LFO or EG
  • 6.5 BPM Sync
  • 6.6 Quantizing
  • 6.7 Ramp Modulation: Fade-in and Fade-out
  • 6.8 Pitch Calculation
  • 6.9 Pulse-Width Modulation (PWM)
  • 6.10 Phase Distortion
  • 6.11 Hard Sync
  • 6.12 Filter Key Track Modulation
  • Bibliography
  • 7 Envelope Generators and DCA
  • 7.1 Envelope Generator Fundamentals
  • 7.2 EG Implementation: Finite State Machine
  • 7.3 Digital EG Implementation: Rendering the Output
  • 7.4 Biased EG Output
  • 7.5 Analog EG Emulation
  • 7.6 Synth Module: EnvelopeGenerator
  • 7.7 EG Retrigger Modulation
  • 7.8 EG Core Programming Notes
  • 7.9 The Digitally Controlled Amplifier (DCA)
  • 7.10 Exercises
  • Bibliography
  • 8 Low Frequency Oscillators
  • 8.1 Noise Oscillators and Generators
  • 8.2 Oscillator Clocking
  • 8.3 LFO Waveforms and Rendering Equations
  • 8.4 Render Modes
  • 8.5 Waveform Shaping
  • 8.6 Delay and Fade-in Times
  • 8.7 Starting Phase
  • 8.8 DC Offset
  • 8.9 SynthLFO and Cores
  • 8.10 LFO Core Programming Notes
  • 8.11 Exercises
  • Bibliography
  • 9 Wavetable Oscillators
  • 9.1 Wavetable Fundamentals: Table Lookup
  • 9.2 Wavetable Objects and Database
  • 9.3 Wavetable Sources and Database
  • 9.4 WTOscillator and Cores
  • 9.5 Wavetable Core Programming Notes
  • 9.6 Exercises
  • Bibliography
  • 10 Virtual Analog Oscillators
  • 10.1 VA Oscillator Fundamentals
  • 10.2 Band Limited Impulse Train (BLIT)
  • 10.3 Band Limited Step (BLEP)
  • 10.4 Polynomial BLEP Approximation
  • 10.5 Choosing the BLEP sinc Source
  • 10.6 Other VA Algorithms
  • 10.7 BLEP Square Wave
  • 10.8 VAOscillator and Core
  • 10.9 VA Core Programming Notes
  • 10.10 Exercises
  • Bibliography
  • 11 PCM Sample Playback Oscillators
  • 11.1 PCM Sample Playback Modes
  • 11.2 PCM Sample Storage
  • 11.3 Loading PCM Samples.
  • 11.4 PCM Sources and Database
  • 11.5 PCMOscillator and Cores
  • 11.6 PCM Core Programming Notes
  • 11.7 Exercises
  • Bibliography
  • 12 Synthesizer Filters
  • 12.1 Design Summary
  • 12.2 Q and Self-Oscillation
  • 12.3 Analog Magnitude Matching at Nyquist
  • 12.4 Zavalishin's Virtual Analog Filters
  • 12.5 Resolving Delay-Free Loops in VA Structures
  • 12.6 VA Filters from Primitive Analog Block Diagrams
  • 12.7 VA Filters from Signal Flow Graphs
  • 12.8 VA Filters from Conceptual Signal Flow Graphs
  • 12.9 Nonlinear Processing and Self-Oscillation Control
  • 12.10 Synth Filter Objects
  • 12.11 Input Drive and Output Peak Limiter
  • 12.12 SynthFilter and Cores
  • 12.13 Synth Filter Core Programming Notes
  • 12.14 Exercises
  • Bibliography
  • 13 Karplus-Strong Plucked String Model
  • 13.1 The Exciter-Resonator
  • 13.2 The Plucked String
  • 13.3 The Karplus-Strong Model
  • 13.4 Pluck Position
  • 13.5 Karplus-Strong Algorithm Equations
  • 13.6 Karplus-Strong C++ Objects
  • 13.7 KSOscillator and KSOCore
  • 13.8 KSOCore Member Objects
  • 13.9 Core Programming Notes
  • 13.10 Extensions to the KS Algorithm
  • 13.11 Exercises
  • Bibliography
  • 14 The Modulation Matrix
  • 14.1 Modulation Inputs and Outputs
  • 14.2 Modulation Routings
  • 14.3 Mod Matrix Channel Routing
  • 14.4 ModSource and ModDestination for GUI Controls
  • 14.5 ModMatrixParameters
  • 14.6 The ModMatrix Object
  • 14.7 Initializing the ModMatrix
  • 14.8 Programming the ModMatrix
  • 14.9 Mod Matrix Transforms
  • 14.10 Running the ModMatrix
  • Bibliography
  • 15 Wave Morphing and Wave Sequencing
  • 15.1 Wave Banks
  • 15.2 Wave Morphing
  • 15.3 The MorphWTCore
  • 15.4 MorphWTCore Programming Notes
  • 15.5 Wave Sequencing 1.0
  • 15.6 SynthLab WaveSequencer
  • 15.7 The WSOscillator Object
  • 15.8 WSOscillator Programming Notes
  • 15.9 Exercises
  • Bibliography
  • 16 The SynthLab Synth Projects.
  • 16.1 SynthLab Modulation Matrix
  • 16.2 SynthLab Render Phase: Modulators
  • 16.3 SynthLab Render Phase: Quad Oscillator Mixing
  • 16.4 SynthLab Render Phase: Filtering
  • 16.5 SynthLab Render Phase: Global Volume and Delay FX
  • 16.6 SynthLab-DX: the FM Synthesizer
  • 16.7 FM/PM Rules
  • 16.8 FM Operator
  • 16.9 SynthLab-DX Voice Render Phase
  • Bibliography
  • Index.