Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comment
  • views

Audio Framework Update: Architecture

Sign in to follow this  


I've been trying to make some more progress lately on the general-purpose sound processing and IO library I'm developing (yet unnamed). Here are a few of the things I've been working on:

  • Filter Architecture: My engine is designed around audio processing objects called SoundFilters which act kind of like a VST or AU plugin. They provide a generic interface for processing input and output audio. I've recently reworked the class design to support multiple inputs and outputs per filter (which can themselves be any number of channels wide), and input and output names. Another addition has been an implementation of a generic parameter system. Filters subclass SoundFilter and override methods which provide an interface to generic-typed parameters. This allows filters to be used fully without knowing their actual type, similar to how generic parameters work on a VST or AU plugin. My system currently allows boolean, integer, float, and double-typed parameters.
  • Threaded Recording: One thing I've noticed in Apple's Logic is its tendency to halt recording if the destination disk is too slow. I have added capabilities to my engine which allows it to transparently buffer data to a separate encoding thread which then writes the data to disk as it can. This keeps the disk or blocking I/O from blocking the audio rendering thread and allows more robust recording than Logic can provide. I was able to record 100 mono 24/44.1 wave files to disk in real time on my 7200rpm laptop drive.
  • Digital Filter Design: I know very little about how to actually design IIR filters and implement them in DSP code, so I've been trying to learn all of the math that is necessary to understand filters. I'm working through a free online course at MIT: Signals and Systems. Hopefully I'll understand this stuff a lot more afterwards. I'm stuck on a few things in the library until I can get a good set of EQ filters done (HP, LP, HS, LS, Parametric).
Sign in to follow this  


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!