Conflution

Made for Fundamentals of Digital Signal Theory at NYU Steinhardt

Compiled for Flash Player 11 (Should work on 10.1). Click on the purple buttons try stuff out.

Description below

Get Adobe Flash player

Description

This was made for a little final project in the Fundamentals of Digital Signal Theory class at NYU Steinhardt. It's a stupid implementation of convolution (non-realtime, precomputed...cut me some slack, I had to finish this all in a night!) and a peak compressor in Actionscript 3. It's designed to serve as of a proof-of-concept of doing basic DSP in Flash, rather than being anything legitimately useful. The graphics are drawn with Flashpunk.

One interesting implementation note is that the sample buffers are stored as a linked list of sample values. This seems counterintuitive, but it actually improves performance when iterating through the buffer. I can only assume that actionscript arrays are really just linked lists under the hood, or have so much overhead in bounds checking that it becomes useless to treat them as a fast sequential collection of objects.

If you're looking to do advanced DSP in Flash, you will probably need to look into using FlasCC, which is the C++ compiler for AVM bytecode. Word on the street says that you can allocate raw buffers and iterate through them in your C++ code gaining the cache coherency benefits you were originally hoping to get from AS3 arrays.