[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.

1 Like

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.

1 Like

@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.

3 Likes

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

2 Likes

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.

I’m reading through this book now. I’m on about the 14th chapter now and finding the explanations very thorough and clear, along with the coding examples & exercises its certainly helping me sharpen up my DSP.

The main problem I have with it though & its really starting to get alarming is the number of mistakes littered through the book. (this is the 2nd edition btw). Perhaps I’m just quite alert to them based on how closely & carefully I’m reading the book, but the mistakes seem to be littered everywhere. From incorrect equations, wrong chapter reference numbers, sentences which seem to contradict other statements… my word. I’m kind of worried that I’m just picking up on the obvious errors and missing more fundamental errors which could hinder my learning as a result.

I think Will, the author, has been quite upfront about the number of errors in discussions on his forum and has published an errata. But still, it undermines an otherwise good book in my opinion, I’m quite shocked that it managed to get to print in this state to be honest. Kind of feel a bit short changed as the book ain’t cheap either… Just a word of warning

I read the first edition and the code was so bad that I will give a pass on any books he writes, unless it’s a pure theoretical book. But then, there is DAFX for that.