[Book] Will Pirkle - Designing Audio Effect Plug-Ins in C++ (2nd edition)

The 2nd edition of this book is out
https://books.google.com.ec/books?id=rVKWDwAAQBAJ&dq=Will+Pirkle+-+Designing+Audio+Effect+Plug-Ins+in+C%2B%2B+2nd&source=gbs_navlinks_s

Did someone around here buy and read it? Thoughts?

Best,
Paulo

I picked up a copy. Disclaimer: I’m a former student of his and took his plugin/synth design courses with the first editions, many many moons ago.

The book layout is straightforward, the first chunk is implementation details on the AU, VST3, and AAX plugin APIs, while the second chunk is a walk through of basic DSP theory and algorithms, with some cool additions not available in the first edition. I really like it as a quick reference and have bookmarked several algorithms to use in real projects (in particular his approach for dealing to frequency warping).

The code quality for the DSP is much better, but it may be a little opaque to some folks more familiar/comfortable with OOP. What he does is handle state/parameters by indexing into coefficient and state arrays in a DSP structure using hard coded indices, as opposed to doing raw field access.

If you’re not very familiar with DSP, it’s an excellent way to get your feet wet.

The new plugin wrapping code is on github too.

I’m about halfway through, and my own disclaimer – Will and I were in school at the same time, but traveled in different circles.

This book is a big upgrade from the first edition, largely in terms of structure and depth, presumably based on a few years of him using that edition as a textbook.

Something that I really like about this book as compared to most (if not all) of the other DSP books I’ve read is that it reverses its explanations in a way that makes more sense to me – instead of topics being presented as “math math math math and because of these equations we can see that it’s intuitively obvious that concept,” he builds up a conceptual layer first and then backs it up with the math.

@bgporter, You do a hell of a lot of reading it seems. I’ve got Meyers effective C++ and effective modern C++ (basically because I’ve seen you recommend them elsewhere on the forum, but I haven’t started them yet) I’m almost half way through Soustroup’s Tour of C++, I started Thinking in C++, I’ve attempted the Core Guidelines, and have started working through a ton of others, but had to put most of them on hold because they would race through at a pace that was a little bit too advanced, or I later found out was teaching me WAAAY outdated stuff.

I want to do this right, and I’m willing to read anything.

What is in your must read list, and importantly, in what order would you recommend them?

Many thnaks.

I’d also be happy about any reviews especially compared to the first book.
I learned both C++ and DSP while coding my first synth with the FX and Synth book some years back. Recently I found out I managed to lose the FX book (as if it was possible to lose a 600page, brown book with a footprint ~0.5m²).

Anyway I always considered the synth book to be superior, but if the second FX edition comes to the same level, I’d buy again!

EDIT: To any readers, is it still geared towards RAFX as much?

Actually, I don’t have a lot of recommendations of modern C++ books past what’s here. I’m also going through the latest edition of “C++ Concurrency in Action” because my understanding of this topic in a multi-core world is less solid than I thought it was. Most of the C++ books on my shelf are either out of print or C++98-era and would need to be read through a filter of “no, that detail is no longer how we do things…”

Maybe follow Herb Sutter’s website.

A good cheatsheet on what’s been added to 11/14/17/20 that I keep bookmarked.

1 Like

I went to the github repo for the book to see if the code looked better than the last edition, but I’m afraid that I only lasted a few seconds before having to leave… All the files I looked at contained a random mixture of tabs and spaces, so when viewed in github (or presumably any editor other than whatever the author uses), it’s just a total mess to look at. Unfortunately, I’m too OCD to ignore that and judge the content on its merits… sorry!

I really enjoyed this book: Modern C++ Programming Cookbook

1 Like

I haven’t checked out the new addition, but I did learn a lot from the first addition when I was in college. I learned c++ mostly through coding the examples from that book in JUCE. It took me a while of coding with more senior people to undo a lot of the bad habits code wise I had picked up from the book, but, the DSP theory and explanations were invaluable to me at the time.

If you separate the code quality for the quality of the DSP explanations, like @bgporter said, it’s really a terrific way at looking at things from a more intuitive perspective. Especially when you consider a lot of time domain audio processors can be coded intuitively.

1 Like

I haven’t seen the new book, but I also checked out the framework and find it incredibly verbose and fiddly compared to the alternatives. Even though the topics and DSP stuff covered look great I imagine it would be quite confusing and frustrating to deal with all of that boilerplate framework code as a beginner. It would be better IMHO if it just taught the algorithms via portable C++ code.

2 Likes

Well the code will look fugly in the end, but all of the GUI code is generated by RackAFX. So it’s actually the other way around - you as a beginner don’t have to worry about connecting sliders and stuff other than drag’n’dropping one in and setting limits and can focus on the DSP part entirely.

I’m also curious about the 2nd edition. I owe most of what I know about DSP to the first edition of this book. I would even go as far as to say that the first edition is my favorite book that I’ve > ever owned.

Even though the topics and DSP stuff covered look great I imagine it would be quite confusing and frustrating to deal with all of that boilerplate framework code as a beginner.

IMO the DSP and explanation of the algorithms are written clearly enough to make up for the boilerplate. When I was first learning DSP I used the book along with wdl-ol and later Dplug to write the examples and experiment. RackAFX didn’t look like what I wanted since I was interested in making nice looking UIs as well.

The thing I’m wondering is if anyone who has read both editions thinks that the second edition is a large enough improvement over the first to justify owning both copies. I’m currently on the fence about buying it since I’m not sure if it is just the same algorithms and examples from the first edition.