Pirkle to be identified as author of this work has been asserted by him in accordance with sections 77 and 78 of the Copyright, Designs and Patents Act 1988. An avid guitarist and studio owner, Will enjoys projects that combine his skills.ĭesigning Software Synthesizer Plugins in C++ With Audio DSPįirst published 2021 by Routledge 605 Third Avenue, New York, NY 10158 and by Routledge 2 Park Square, Milton Park, Abingdon, Oxon, OX14 4RN Routledge is an imprint of the Taylor & Francis Group, an informa business © 2021 Will C. 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. He teaches a range of classes, from audio electronics to digital signal processing and audio programming. and Music Engineering Technology program director at the University of Miami Frost School of Music. Pirkle is a Staff Scientist at Audio Media Research, Inc. 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++. 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. 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. 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 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. 1.1 What You Need to Know to Use SynthLab Objects and Projectsģ Synth Voices, Synth Modules, and Module CoresĤ Synth Operational Modes: Polyphony and Voice-Stealingĥ Learning and Using the SynthLab Objects & Projectsĥ.1 Designing Modules with the SynthLab-DM Projectsĥ.2 SynthLab-DM Modules Are Dynamic Linked Librariesĥ.5 SynthEngine GUI Design and Parameter Updateĥ.7 Getting WaveSequencer Status Meter UpdatesĦ.3 Sequential Circuits Vector Joystick Envelope ModulationĦ.4 Linear Frequency Modulation with LFO or EGĦ.7 Ramp Modulation: Fade-in and Fade-outħ.2 EG Implementation: Finite State Machineħ.3 Digital EG Implementation: Rendering the Outputħ.9 The Digitally Controlled Amplifier (DCA)Ĩ.3 LFO Waveforms and Rendering Equationsġ2.3 Analog Magnitude Matching at Nyquistġ2.5 Resolving Delay-Free Loops in VA Structuresġ2.6 VA Filters from Primitive Analog Block Diagramsġ2.8 VA Filters from Conceptual Signal Flow Graphsġ2.9 Nonlinear Processing and Self-Oscillation Controlġ2.11 Input Drive and Output Peak Limiterġ2.13 Synth Filter Core Programming Notesġ4.4 ModSource and ModDestination for GUI Controlsġ6.3 SynthLab Render Phase: Quad Oscillator Mixingġ6.5 SynthLab Render Phase: Global Volume and Delay FXĭesigning Software Synthesizer Plugins in C++ĭesigning 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.