- Gebundene Ausgabe: 889 Seiten
- Verlag: The Mit Press; Auflage: Har/DVD (7. Dezember 2010)
- Sprache: Englisch
- ISBN-10: 0262014467
- ISBN-13: 978-0262014465
- Größe und/oder Gewicht: 20,3 x 3,2 x 22,9 cm
- Durchschnittliche Kundenbewertung: 2 Kundenrezensionen
- Amazon Bestseller-Rang: Nr. 12.319 in Fremdsprachige Bücher (Siehe Top 100 in Fremdsprachige Bücher)
The Audio Programming Book (Englisch) Gebundene Ausgabe – 7. Dezember 2010
|Neu ab||Gebraucht ab|
Wird oft zusammen gekauft
Kunden, die diesen Artikel gekauft haben, kauften auch
Es wird kein Kindle Gerät benötigt. Laden Sie eine der kostenlosen Kindle Apps herunter und beginnen Sie, Kindle-Bücher auf Ihrem Smartphone, Tablet und Computer zu lesen.
Geben Sie Ihre E-Mail-Adresse oder Mobiltelefonnummer ein, um die kostenfreie App zu beziehen.
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 Reviews
Über den Autor und weitere Mitwirkende
Richard Boulanger is Professor of Electronic Production and Design at the Berklee College of Music and editor of The Csound Book: Perspectives in Software Synthesis, Sound Design, Signal Processing, and Programming (MIT Press, 2000). Victor Lazzarini is Senior Lecturer in the Music Department and Director of the Music Technology Laboratory at the National University of Ireland, Maynooth.
Welche anderen Artikel kaufen Kunden, nachdem sie diesen Artikel angesehen haben?
In diesem Buch(Mehr dazu)
I ended up skipping everything up to chapter 5 (almost half the book), because the "Signal-to-Noise ratio" of actual audio programming knowledge vs. things that everyone who has ever programmed a computer knows already, was way too high in the first chapters. The later chapters are pretty good and the price is still reasonable even for only half the book, so I don't regret buying it.
Overall, I'd strongly recommend the book for people who start audio programming from scratch without a programming background. However, software engineers may be better off with a DSP book (e.g. Digital Signal Processing - A Practical Guide for Engineers and Scientists) and reading the documentation of their audio library of choice and the source code of related open source projects.
Die hilfreichsten Kundenrezensionen auf Amazon.com (beta)
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.
That said I would not recommended this book to someone who is unfamiliar with coding. The authors do try to give an introduction to c programming, however I found that the examples in this book would be very difficult for a new programmer to be able to follow, let alone compile, given that there are many libraries which must be linked etc. Personally though, I loved that upon opening the book for the first time I could flip through the pages gingerly and see tons and tons of straight c code. The theory is there, but more importantly so is it's practical application, and that's what makes this book awesome.
I don't have a background in either C, engineering or mathematics. Still, I was able to get a whole lot out of the first couple of chapters from this book. There is a conceptual level of the topics that are transferable to other languages that I really appreciate. And more importantly, I got a great sense of what I need to get a grip on, other than the C language, to really grasp the topics on a deeper level.
Having said that, I did have issues with the code included. I don't know why one would, in an introductory text, not use sensible variable names? Using camel-case and full variable names would have made it a so much easier read. I constantly had to remind myself of abbreviations while simultaneously trying to grasp a concept, which needless to say isn't optimal. For instance; fpamp, bps_tick and brkampSize (note the odd camel case) is not a nice read. But hey, maybe this is the C way of doing things?
Also worth noting is that every chapter (with a few exceptions) are written by different authors and are not built upon each other. For instance, chapter 3 - "working with audio streams" references programs and concepts that has not been included in the text before reading that chapter (provided you read the book in a linear fashion). So one has to keep a "fuzzy logic" mindset.