This book serves as a general introduction to Pd, though as the title suggests, the focus is on visual/multimedia apps rather than audio processing. This suits me just fine, as this is a side of Pd I knew almost nothing about.
The first chapter of the book is a general intro to getting started with Pd. The information is pretty good, though I noticed minor differences between how the program's interface looks in the book diagrams and how it looks in my copy of Pd (text size, the contents of the main Pd window). For example, a quick note that you can go to Edit -> Font to change the font size would be very helpful here. Overall, though, things are well explained, with a good balance between text and screenshots. I like that it moves pretty quickly beyond super-basic material. It moves from "here is how to add two numbers" right into "here is how to build a push-button counter"; a simple patch but one that already shows some clever routing potential.
Chapter 2 is an overview of basic graphics rendering with the GEM (Graphics Environment for Multimedia) library -- how to set up a GEM canvas, how to draw basic primitive shapes and do simple transforms (rotating / scaling / moving a shape), and how to do simple animation. This is all likely to be super familiar territory to anybody who has done any graphics programming. This chapter is a little on the overly verbose side, it's not ponderously so, and it does highly the necessary GEM-specific stuff (like how the coordinate system and color space using floating point numbers, rather than a typical pixel grid and hexadecimal color identifiers). It would have been nice if the material were presented in a more engaging / interactive way (rather than just "here's a rectangle, now here's a triangle"), but overall it moves through things at an okay pace.
I DID have difficulties getting a couple of the examples (the polygon and curve objects) to work as written, which turned out to be I needed to send a loadbang message to initialize the object data. This is eventually described near the end of chapter 2, but it should have been prominently discussed earlier on, as I imagine many newer users might get stopped in their tracks following even simple examples.
The later chapters explore image processing (in 2D and 3D), interactivity with mouse & keyboard, motion tracking with a webcam, particle animation, and interfacing Pd with other devices via TCP/IP, OSC, MIDI, and even Arduino microcontrollers.
Overall this is a great book, I really enjoyed working through it and it's definitely shown me large sections of Pd I wouldn't have known about otherwise. It's a good blend between theory and hands-on examples, and the code samples provide good jumping-off points for a lot of creative experimentation. There are a couple of places where the book could use a little better editing, especially in the first couple of chapters -- nothing major, but there were a couple of times (as I mentioned earlier) when I had to spend a while tracking down answers on the web, that could have been avoided with a bit more clarification in the text.
I also would have liked to have seen a brief introduction to libPd -- the toolkit which allows Pd patches to be bundled as code objects for use in other (non-Pd) programs. Admittedly, this is borderline outside the scope of the book, and it would have been hard to quickly provide any useful hands-on examples, but even a two or three page blurb of "here's libPd, this is what it can do" might be of value.
The book strikes a good balance in content and tone. There's a lot of information here, but anybody who is motivated enough to explore Pd in the first place should find it accessible. There's enough "personality" to the writing that it doesn't come off like reading dry documentation, while still being nicely focused on delivering information. I learned a lot from this book and I'd happily recommend it to others interested in Pd specifically, or multimedia / creative programming in general.