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 with complete synthesizer example projects.
The book and accompanying SynthLab projects include scores of C++ objects and functions that implement the synthesizer building blocks as well as six synthesizer projects, ranging from virtual analog and physical modelling to wavetable morphing and wave-sequencing that demonstrate their use. You can start using the book immediately with the SynthLab-DM product, which allows you to compile and load mini-modules that resemble modular synth components without needing to maintain the complete synth project code. The C++ objects all run in a stand-alone mode, so you can incorporate them into your current projects or whip up a quick experiment. All six synth projects are fully documented, from the tiny SynthClock to the SynthEngine objects, allowing you to get the most from the book while working at a level that you feel comfortable with.
This book is intended for music technology and engineering students, along with DIY audio programmers and anyone wanting to understand how synthesizers may be implemented in C++.
Table of Contents
List of Figures
List of Tables
1 SynthLab Introduction
2 The Synth Engine
3 Synth Voices, Synth Modules, and Module Cores
4 Synth Operational Modes: Polyphony and Voice-Stealing
5 Learning and Using the SynthLab Objects & Projects
6 Modulation: Theory and Calculations
7 Envelope Generators and DCA
8 Low Frequency Oscillators
9 Wavetable Oscillators
10 Virtual Analog Oscillators
11 PCM Sample Playback Oscillators
12 Synthesizer Filters
13 Karplus-Strong Plucked String Model
14 The Modulation Matrix
15 Wave Morphing and Wave Sequencing
16 The SynthLab Synth Projects
Will C. Pirkle is a Staff Scientist at Audio Media Research, Inc. and Music Engineering Technology program director at the University of Miami Frost School of Music. He teaches a range of classes, from audio electronics to digital signal processing and audio programming. In addition to 16 years of teaching, Will has 20+ years of experience in the audio industry, working and consulting for such names as Korg Research and Development, XM Radio, and National Semiconductor Corporation. An avid guitarist and studio owner, Will enjoys projects that combine his skills.