Monday, 27 June 2016

Audio Programming discoveries

As part of looking for digital audio solutions, I've come across a number of people who've implemented their own multi-way system, using their own code to construct the filtering, EQ and crossover features. Cool. So I lashed out on a few books, in an attempt to understand the principles of digital audio a bit better, not least, to see if there's any chance that I could emulate the heroes who have already "rolled their own"!

  • Understanding Digital Signal Processing 3/e
    • Heavyweight! Came from an Indian bookseller, really quickly, so certain impressed with the service
  • Signals & Systems For Dummies
    • More useful, because reasonably well-structured and intended to be slightly more practical
    • However, the maths is very daunting, because I'm not sufficiently practised with series manipulation etc.
  • The Audio Programming Book
    • Now this is interesting! 
    • It's entirely practical, intended to support a course on digital music making, so it's based on using C and Csound to create and manipulate digital audio, which allows one to look at exactly what implementing a lot of this otherwise theoretical stuff involves
    • Of course it covers the maths to some extent, but it's kept to simple stuff that allows one to address using digital techniques to create and process audio, which along with the concrete implementations available to look at, really brings home the concepts
    • Example: I've had many explanations of FIR vs. IIR filter principles, but this book says, very simply, 
      • FIR is based on feed forward i.e. input delay so that future signals can be used to transform the current signal; this explains why a filter with a large number of poles (pole = number of future signals used) will require a significant delay in the eel-time audio signal
      • IIR is based on feed back i.e. output delay so that past signals are used to transform the current signal
      • And a filter can in principle use both techniques as required. Marv!
So now I'm bashing away at some simple C programs that might form the basis of my own digital processing capability.

Meanwhile, I've also been playing around with the Apple AudioUnit based mechanisms, in order to implement a simple 2-way crossover for the Boston A100. The plugins available include 
  • Graphic Equalizer - nice, but no info on its phase relationship
  • Parametric Equalizer - likewise
  • Sample Delay - now this is interesting! It allows a 1 - N sample delay to be dialled in, allowing granularity of ~ 1/50000 sec... i.e. the sample rate of the digital audio. Nice.

No comments:

Post a Comment