Re: Audio programming books to recommend?
Re: Audio programming books to recommend?
- Subject: Re: Audio programming books to recommend?
- From: Richard Dobson <email@hidden>
- Date: Wed, 02 Feb 2011 22:27:49 +0000
On 02/02/2011 20:49, Morgan Packard wrote:
Hello knowledgeable people.
Where should I go to read up on audio programming, synthesis,
optimization, etc. I'd like to move from being an almost total
novice/dilettante to being only a partial novice/dilettante.
I have The Computer Music Tutorial, which I like quite a lot, but that's
pretty much the extent of my library. What I'm most interested in is
looking at approaches to creating flexible and efficient unit generator
graphs. I'd like to have a system which is reasonably modular, which I
can reconfigure quickly, but which is also reasonably efficient.
So, is this the sort of thing a book can help me with? Which book?
While I'm on the subject of creating unit generator graphs, I should
mention that I'm often wondering whether I would be better off just
using something like PD in my app. I like the idea of getting my hands
dirty with the raw audio signal, but wonder if for my purposes, an
already-built, widely used patching system might be better.
http://noisepages.com/groups/pd-everywhere/ I'd rather have something
code-based, but I'm not really sure how much effort it's going to take
to build my own system which I'm happy with.
Thanks for you thoughts.
<plug>
"The Audio Programming Book", ed. Richard Boulanger and Victor Lazzarini:
http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=12283
The book (~900 pages) is focussed on C and C++ (with a little
Objective-C when needed) and comes with a DVD packed with lots more
chapters and full projects with code, instructions for building and so
on, and goes from material for raw beginners to some substantial and
advanced projects, including discusison of VST and AU plugins, Csound
opcodes and API, the iPhone, etc.
Disclaimer: I am one of the contributing authors.
</plug>
On a more general point: designing a modular flexible generator graph
system is not really something the "novice/dilettante" should be
looking at in the first instance. It involves heavy work with data
structures such as lists and trees, and lots of critical architectural
design decision-making. A better approach would be to take advantage of
the many open-source examples out there that have done all the difficult
stuff for you. PD is indeed one of them, Csound is another, and very
possibly preferable - it comes with (only) dynamic libraries that can be
directly linked into programs, and a comprehensive host API which can
drive the UG graph at whatever level you need.
The Synthesis Toolkit (STK) from Perry Cook is also worth a mention.
While not a UG graph system as such (it is a C++ library of U.G classes)
it can be statically linked into an app, and has a very handy "Voicer"
class for dealing with polyphonic voice handling under MIDI control etc.
It is very easy to use once you are au fait with basic C++. It can be
compiled as a static library for IOS apps pretty much out of the box.
No doubt others on this list will suggest their own favourite packages.
My suggestion is to pick one according to your taste and instinct, and
get used to it. The book above will certainly get you a long way into
audio programming, but as soon as you feel it appropriate it will need
to be supplemented by at least one general programming book that deals
with the nitty-gritty of linked lists, binary trees, sorting, threading,
memory managers, and so on. As you were - probably more than one book!
General reference books on C and C++ are pretty much essentials. You
will then be in a position to decide what (if anything) your chosen
framework doesn't do that you need, which will in turn lead you to how
you might implement things for yourself. But even advanced programmers
would not lightly embark on such a project, nor expect it to be
accomplished quickly.
Csound is LGPL of course, and that will exclude it if you want to make
closed-source commercial plugins and apps. There are commercially
licenceable "audio engine" libraries around, but I have never used one
and can't think of any names offhand. And (to state the very obvious)
the CoreAudio graph framework is there to be used. STK is fully free and
unrestricted; they just suggest that "if you make a million dollars with
it, it would be nice if you would share".
Richard Dobson
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden