Apparently these books aren't high frequency.
March 24, 2012 5:47 AM Subscribe
Is there a great book on software audio filter programming?
I'm hacking audio right now. I understand, on a mathematical level, what I need to be doing for most of the effects and filters I want to implement. However, I don't know efficient implementations of any of them. I'm just sort of throwing generic programming good practices at them. But, I'm about to start programming them on cellphones, where the wiggle room is not so great.
So, I'd like a book.
This book should be about programming filters, not digital filters built from block diagrams, and not mathematical analysis of generic electrical filters. The block diagrams are useful for a high level view, but that isn't what I want. I need to know whether it's advised to use a 2-pointer ring buffer or a 3-pointer ring buffer. Or that a half-sampling-frequency low pass can be built by simply averaging every subsequent pair of samples. Well, I mean, I already know those now, but that's the kind of details I'm talking about.
Basically, I want the book that a smart programmer could use to produce smart, low-level audio software.
Bonus points if it has a chapter on synthesis, too.
Double bonus points if I can get it for my Nook.
I'm hacking audio right now. I understand, on a mathematical level, what I need to be doing for most of the effects and filters I want to implement. However, I don't know efficient implementations of any of them. I'm just sort of throwing generic programming good practices at them. But, I'm about to start programming them on cellphones, where the wiggle room is not so great.
So, I'd like a book.
This book should be about programming filters, not digital filters built from block diagrams, and not mathematical analysis of generic electrical filters. The block diagrams are useful for a high level view, but that isn't what I want. I need to know whether it's advised to use a 2-pointer ring buffer or a 3-pointer ring buffer. Or that a half-sampling-frequency low pass can be built by simply averaging every subsequent pair of samples. Well, I mean, I already know those now, but that's the kind of details I'm talking about.
Basically, I want the book that a smart programmer could use to produce smart, low-level audio software.
Bonus points if it has a chapter on synthesis, too.
Double bonus points if I can get it for my Nook.
I don't have a book to recommend, but perhaps looking through the source code of various projects might give you some ideas / pointers. I'm thinking things like SoX, LAME and the xiph.org projects; FLAC, vorbis, CELT, Speex, Opus, etc. all of which do some filtering along with the encoding.
It's probably also worthwhile to search the Hydrogen Audio forums, and ask the guys there for recommendations.
Happy hacking.
posted by dirm at 2:15 PM on March 24, 2012
It's probably also worthwhile to search the Hydrogen Audio forums, and ask the guys there for recommendations.
Happy hacking.
posted by dirm at 2:15 PM on March 24, 2012
Response by poster: So, I managed to track this down: Introduction to Digital Filters. It looks like it has lots of the bare basics of implementation, applied to mostly not-real-time stuff. Hopefully by the time I've inhaled this, I can extrapolate to doing higher-order, real-time stuff.
A little short on software engineering, though.
posted by Netzapper at 5:42 PM on March 24, 2012
A little short on software engineering, though.
posted by Netzapper at 5:42 PM on March 24, 2012
The only other decent thing I've come across is the free "The Scientist and Engineer's Guide to
Digital Signal Processing". It has pseudocode, which is nice, but it's pseudocode. Also, the style is sort of insane but it is generally pretty easy to understand what the programs are supposed to be doing. So pretty much a wash on real software engineering advice. And nothing about synthesis. It's weird how hard it is to track this info down, right?
posted by jeb at 12:28 PM on March 25, 2012
Digital Signal Processing". It has pseudocode, which is nice, but it's pseudocode. Also, the style is sort of insane but it is generally pretty easy to understand what the programs are supposed to be doing. So pretty much a wash on real software engineering advice. And nothing about synthesis. It's weird how hard it is to track this info down, right?
posted by jeb at 12:28 PM on March 25, 2012
This thread is closed to new comments.
posted by RustyBrooks at 1:44 PM on March 24, 2012