Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required. Learn more
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
The Audio Programming Book (The MIT Press) Har/DVD Edition
An encyclopedic handbook on audio programming for students and professionals, with many cross-platform open source examples and a DVD covering advanced topics.
This comprehensive handbook of mathematical and programming techniques for audio signal processing will be an essential reference for all computer musicians, computer scientists, engineers, and anyone interested in audio. Designed to be used by readers with varying levels of programming expertise, it not only provides the foundations for music and audio development but also tackles issues that sometimes remain mysterious even to experienced software designers. Exercises and copious examples (all cross-platform and based on free or open source software) make the book ideal for classroom use. Fifteen chapters and eight appendixes cover such topics as programming basics for C and C++ (with music-oriented examples), audio programming basics and more advanced topics, spectral audio programming; programming Csound opcodes, and algorithmic synthesis and music programming. Appendixes cover topics in compiling, audio and MIDI, computing, and math. An accompanying DVD provides an additional 40 chapters, covering musical and audio programs with micro-controllers, alternate MIDI controllers, video controllers, developing Apple Audio Unit plug-ins from Csound opcodes, and audio programming for the iPhone.
The sections and chapters of the book are arranged progressively and topics can be followed from chapter to chapter and from section to section. At the same time, each section can stand alone as a self-contained unit. Readers will find The Audio Programming Book a trustworthy companion on their journey through making music and programming audio on modern computers.
- ISBN-100262014467
- ISBN-13978-0262014465
- EditionHar/DVD
- PublisherThe MIT Press
- Publication dateOctober 22, 2010
- LanguageEnglish
- Dimensions9.18 x 8.24 x 1.5 inches
- Print length889 pages
Customers who viewed this item also viewed
Editorial Reviews
Review
I particularly like the way in which the authors treat Csound both as a tool and as a computer program whose internals are worthy of study and understanding. Again, the material here should be useful to experienced programmers who are just beginning with digital audio, as well as to those with a good understanding of digital sound who want to learn more about C programming.
―Paul LaFollette, Computing ReviewsReview
This book represents the meeting point of divergent lines of study that young computer musicians are desperate for. There is an extrodinary demand for a book where computer science, digital signal processing, music synthesis, electronic music, and algorithmic composition all come together. This is the only book you'll ever need if you want to learn to make your own plug-ins. An essential read, at the perfect time.
―BT (aka Brian Transeau), composer/technologistAbout the Author
Victor Lazzarini is Senior Lecturer in the Music Department and Director of the Music Technology Laboratory at the National University of Ireland, Maynooth.
Product details
- Publisher : The MIT Press; Har/DVD edition (October 22, 2010)
- Language : English
- Hardcover : 889 pages
- ISBN-10 : 0262014467
- ISBN-13 : 978-0262014465
- Reading age : 18 years and up
- Grade level : 12 and up
- Item Weight : 3.65 pounds
- Dimensions : 9.18 x 8.24 x 1.5 inches
- Best Sellers Rank: #1,371,360 in Books (See Top 100 in Books)
- #70 in Speech & Audio Processing
- #178 in MIDI & Mixers
- #6,289 in Computer Science (Books)
- Customer Reviews:
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on Amazon-
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
A few warnings about this book though:
1) It is not, I repeat, NOT, for beginners. If you have just started learning C, or are switching over to C from a higher-level language that's not C++ or Objective-C, I HIGHLY recommend you read (or at least read the last half of) Kochan's "Programming in C" to get up to speed before you try to tackle this book. Chapter 1 claims to be an introduction to C , but having read through some of it to get a feel for the book's layout, I can tell you that if you do not have ample programming experience in C you will get very lost. Make especially sure that you have a thorough understanding of pointers and how they are used in all aspects of the language before diving into this book. But to be completely honest if you're a programming newbie why in the world would you want to start off learning SIGNAL PROCESSING, an advanced topic even for seasoned coders? Also, it might be important to note that you also have to have a solid understanding of sound and its basic principles, as well as some advanced composition knowledge (serial music, etc..) if you want to fully understand all the examples in the book.
2) This book is a bit dated. For a number of reasons. The first is that it is absolutely pre-C99. Variables aren't declared inside of loops anywhere (even where it would be more readable and more appropriate to do so). All of the comments have the /* text */ format, even the single-line comments. Furthermore, they tell you to install Gnuplot using Aquaterm, which has been deprecated since Snow Leopard was initially released (you have to now ./configure it using X11, google "Gnuplot in Snow Leopard" and click on the first link for a quick tutorial on how to do so). Finally, there is a whole Chapter dedicated to writing OpCodes for CSound. Now yes, CSound was invented at MIT and this book is published by the MIT Press, and yes, it is still a widely used program, however, my personal opinion is that this could have easily gone in the DVD section and been replaced with a section on writing GUIs, VSTs, Mobile Applications, or heck even programming external objects for MaxMSP (which to my knowledge is used more often than CSound nowadays).
All in all I absolutely love this book and will definitely keep it as a reference throughout my entire audio programming career; I just wish they would update it.
But there are some issues.
1. If you get the Kindle version you don't get the accompanying DVD data. However, if you contact MIT Press, like I did, they are pretty good at getting you a copy of the disc for free. And you must get the DVD, there is a lot of great information on it.
2. The book does start out on the right foot with an introduction to C. I think this is important because I think the bulk of people interested in this book are probably Digital Audio Production guys who are Power Users but might not have done real programming. But even if you are coming from an experienced C programmer angel I don't think it hurts. However, I believe it is important that the book starts off giving an introduction to C because it sets the tone for the book, and where the book should stand out. There are no GOOD intro to audio programming books. Most books for the audio programming are usually geared toward advanced programming or signal processing, or are so watered down the as you give a non-audio interested programer the basis to get a job done. This is a problem, because sure you can fine plenty of intro to programming books that are happy to teach you some graphics programming along the way, but never for audio. It is ambitious this book tries to take this route.
3. Unfortunately, the code style doesn't skill to that newbie-to-digital-audio style.
First, this is an edited anthology book and it seems that every author for every section decided to do their own coding style for each section. And not just for the code itself, but also for compiling the code [the book switches from MAKE to Scons and back and never explains why]. The problem is, as should as you understand the code from one section, you end up having to relearn everything for the next because the next author has changed the code style. I don't understand why the authors didn't try to correct for this. Plus the authors don't stick to proper code conventions. A good example of each of these problem is the change between chapter 5 to 6. The code from C to C++ without any reason, but what makes it extra annoying, is that that C++ in improperly formatted ( Example: All the headers for all the classes are in 1 file. ) It is hard to tell, if it was supposed to be poorly written C code in C++ files, or a C++ program poorly organized and written to act like C without making use of classes.
Second, the code style itself, doesn't stick to simple easy to read conventions. The authors get into a bad habit of using more advanced C/C++ tricks to write less code [highly abbreviated variable names, Ternary operations instead of true If/Else code blocks]. Sure it is good for them, bad for the learner when you are trying to learn everything step-by-step [ And for you 'advance programmers' who scoff at reading someone complaining about those things, remember you were a newbie once too] You should NEVER write optimized code in any form when you are trying to teach something! That is irresponsible, and disrespectful toward your students who are trying to learn.
Third the end goals seem to change, as they are teaching you. You first learn how to generate a simple realtime sound with PortAudio [the ultimate goal], but then everything become about generating a wave file for output and the reader is left pondering how to generated more then one sound at a time and keep it going. When they do get to how to make a realtime plug-in, you aren't taught how to create a simple synthesizer, you just end up making a delay line. Sure a delay line is important, but it doesn't teach me, how I need to manage MIDI and generate sound continuously...
Anyway, if you can deal with those 3 things then you will get a lot out of this book and don't get me wrong there in this book.
However, this book really needed a few more revisions to be everything it could be. Maybe someday that will happen.
Well, so far I'm on page 29 and on every code example so far in "Chapter 0: An Overview of the C Language" I've run into compiler errors. "scanf" is deprecated and unsafe, we should be using "scanf_s" I was completely blocked on the first couple examples until a Google search yielded that "scanf("%c", note)" really needed a space in front of the first argument t oread instead "scanf(" %c", note)" This subtle different in that space being there that book completely neglects was the different between my program compiling or not. I would expect these kinds of mistakes to have been caught somewhere in the book's editing process.
It's really discouraging to be running into so many problems with the first 4 code examples of the book. I started off excited but now I'm wondering if my entire time in the book is going to be spent debugging problems with the code examples.
I'm giving up for today and I just had to offer my review so far. I'll come back again soon but oof, not a promising start. This book so far is failing to live up to its high ideals for beginners, I feel like I really need to spend time to learn C, which is a real shame because this book's overview of C seemed so promising and was a selling point for me.
Top reviews from other countries
The topics covered are really fascinating, it covers such things as the format of audio files, how to generate simple syths, to how to generate complex audio software.
Truly unique, a must for serious (or seriously fanatical) audio software developers.
The book does spend some time trying to explain C programming to novices. However, being a veteran C programmer, I found this an enjoyable read: the examples focus on audio programming, not just C "Hello World" examples.
I do believe some programming concepts may be a bit tough for novices to grasp though: in which case some other introduction to C programming should also be sought, along with this excellent reference.
The Examples worked straight from the CD under linux.






