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

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 underlying theory of each synthesizer component, and moving on to the theory of how these components combine to form fully working musical instruments that function on a variety of target digital audio workstations (DAWs). Containing some of the latest advances in theory and algorithm development, this book contains information that has never been published in textbook form, including several unique algorithms of the author’s own design.

The book is broken into three parts: plug-in programming, theory and design of the central synthesizer components of oscillators, envelope generators, and filters, and the design and implementation of six complete polyphonic software synthesizer musical instruments, which can be played in real time. The instruments implement advanced concepts including a user-programmable modulation matrix. The final chapter shows you the theory and code for a suite of delay effects to augment your synthesizers, introducing you to audio effect processing.

The companion website, www.focalpress.com/cw/pirkle, gives you access to free software to guide you through the application of concepts discussed in the book, and code for both Windows and Mac platforms. In addition to the software, it features bonus projects, application notes, and video tutorials. A reader forum, monitored by the author, gives you the opportunity for questions and information exchange.

Details

  • Paperback: 760 pages
  • Publisher: Focal Press (November 24, 2014)
  • Language: English
  • ISBN-10: 1138787078
  • ISBN-13: 978-1138787070
  • Product Dimensions: 8.5 x 1.3 x 11 inches
  • Shipping Weight: 4 pounds (View shipping rates and policies)
  • Average Customer Review: 4.8 out of 5 stars See all reviews (9 customer reviews)
Download Now

5 comments

  1. As the title suggest, this book is about writing Software Synthesizers in C++, so this really implies that this book is not for the weak hearted only from reading the title. So far for the other review, only giving it 3 stars, it’s completely useless and has absolutely nothing to do with what this book is about in the first place, and does not assess the quality of the writings in any way.

    This book is a god send for me, I have been waiting for this for many years! I am only half through so far (will update this review after I have worked it through) but I can already tell that this is a total quality product as it does not often happen with computer books. I would even go as far as to say that it is stroke of genius. Let me explain.

    I am “flitring” with DSP since years, but without a deep academic background, I always faced some hurdles that were very difficult to overcome. First there is the math, and then if you want to do stuff like synthesizers containing a plethora of different objects acting together to form a quite complex network. Sure, all the information found in this book can be found elsewhere online (if you are willing to dig hard enough and bang your head against the wall for many months), but how it is present here in a concise manner is almost too good to be true. You get in depth and current information on how it is done the right way. Oscillator design, filters, envelopes, all explained with cross-references to all the great synthesizers made in the last few decades. Many a nice detail of the history can be found in the texts, e.g. i didn’t know that Dave Smith was involved in designed Korgs Wavestation.Read more ›

  2. This is a very advanced book about designing software synthesizers that mimic existing hardware synths.

    Since synthesizer design books are really rare, this is a great addition. It contains a lot more info than the other synth book I own: “BasicSynth”.

    However, the author seems to be moving more towards research than teaching, which makes this synth book a lot less accessible than BasicSynth and his previous book “Designing Audio Effect Plug-Ins in C++”.

    To fully understand this book, you’ll need to study or already know about analog filters and the role of the Laplace transform for handling such dynamical, continuous systems. Some info about converting analog filters to digital is available in “Designing Audio Effect Plug-Ins in C++” but that book doesn’t cover analog filters.

    The code that comes with the book is of high quality. It contains the right level of abstractions for teaching this topic.
    It is pretty amazing that the author is able demonstrate how to write synthesizer plugins for three different APIs (VST, AU and RackAFX).

    I think that the book should have included more info about code optimization since that is very important for software synths. Maybe an appendix (or online chapter) demonstrating how to make it run faster by avoiding deep call stacks, using table lookups for expensive functions, strategies for making a much faster modulation matrix and possibly some hints how to run a profiler on a system like this.

    To summarize, this book contains a lot of useful info about how to design software synths. It is the best and most detailed I’ve found, but it could have been a lot more accessible and also a bit more practical.

  3. In addition to explaining the theory and practice behind each part of a synthesizer (filters, oscillators, envelope generators, etc), the author provides the math formulae, DSP theory, extensive graphs and diagrams, AND source code, if that isn’t clear enough.

    From there, the book creates 4 kinds of software synths: virtual analog, wavetable, FM, and sample playback.

    This might not be an ideal book if you have never tinkered with audio code or C++. But if you know the basics, this will absolutely set you on the right path. I had so many “a-ha!” moments just skimming through it, it paid for itself in the first hour.

    I’ve found Focal Press books to be uniformly excellent, so I suppose I shouldn’t have been surprised. It’s also somewhat massive, in a large format and clocking in at over 700 pages.

    Pirkle’s effects book is next on my list.

  4. Wow, just wow! This book contains everything you need to write your own softsynths. It gives example code for everything and is super comprehensive. As you progress through the book, you program several synths, which show the basic principles of how things are done!

    Please ignore the 3-star review, it’s kind of unfair. Of course this doesn’t read like a novel, but regarding the topic it’s covering I found it very easy to get my head around the principles.

  5. As a person who had to deal with the horrible VST SDK documentation, this book totally opened my eyes to VST programming.
    I can’t thank the author enough for his work here. With just reading 3 chapters the whole VST skeleton was clear to me.
    Now I can finally realize my projects that I have always been thinking about. Thank you, Will.

Comments are closed.