DSP

Writing code that has to do with audio (and other signals).
jwatte's picture

FFT in XNA Content Pipeline for Beat Detection For The Win!

I worked a bit more on the FFT-based music visualizer program I started the other day, and it's doing great! A this point, I have a pretty solid rhythm extraction thing going, and I can use autocorrelation (through autoconvolution) of the extracted rhythm track to derive tempo. I'm assuming 4/4 beats here, but...

jwatte's picture

What can I do with music, really? FFT and the XNA content pipeline

I was unhappy with the low resolution of the visualization data that you get out of the XNA framework MediaPlayer. If you want to synchronize gameplay to music, the data you get is not sufficient.

jwatte's picture

Version 2.0 proposal (with code listings)

Various parts of the SAPS API are described as C++ pure abstract classes. These are similar to interfaces as used in some approaches (COM, .NET) in that the define the ABI and intended functionality of different entities, but do not define anything about the implementation.

jwatte's picture

Version 1.0 proposal (with sample application and plug-ins)

This proposal is now obsolete. but served to start the discussion.

jwatte's picture

The Simple Audio Plug-in Specification

The Simple Audio Plugin Specification
Preview release 2009-01-14
Jon Watte (jwatte @ kvr forums)

This book/forum intends to describe the development of the Simple Audio Plugin Specification (SAPS for short), which serves two purposes:

  1. It allows plug-in developers to develop for one API, and host in a number of different hosts. The target APIs for support are:
jwatte's picture

Wavemix -- a simple command-line wave file mixing tool for Windows

Wavemix is a command line WAVE file mixer. It is somewhat intelligent about mixing
multiple channels and might even be able to re-sample various sample rates. The
source code is included (requires STK to build).

Usage: wavemix [/SR 44100] [/16] [/GAIN g] infile1.wav ... outfile.wav

Supports at most 19 input files and one output file.

jwatte's picture

Memory bandwidth optimization

Note that what I'm saying is sort of x86-centric, with specific illustration for Pentium II/III, although it'll also work on AMD and even on other platforms (like PowerPC). The more PC/workstation like the platform, the more truth this holds. DSPs with SRAMs aren't anything like this, though -- programmer beware.

Syndicate content