SNR Maximization and Wiener Filtering

In digital audio processing, one of the most common tasks is reducing background noise while keeping the original signal as clear as possible. This balance is typically expressed as maximizing the Signal-to-Noise Ratio (SNR) — […]


Interactive Multi-State Engine

Key Features: Done with FMOD API, diagram shows class dependency and interactive class state structure State containers and segments can be set by order, loop, and randomness Interactive music class uses an open nested loop […]


Stereo Correlation

When mixing in stereo, one of the most overlooked but critical checks is stereo correlation — how “in phase” your left and right channels are. This single number tells you whether your mix will hold […]


Second Order Butterworth Filter

The Laplace transform and z-transform are mathematical ways of breaking an impulse response into sinusoids and decaying exponentials. This is done by expressing the system’s characteristics as one complex polynomial divided by another complex polynomial. […]


Schroeder Reverb

This is an experimental Schroeder reverberator implementation. I applied three combo filters and then two all pass filters without any buffer. Reverb tail was added to the end of input signal in a simple way, […]


Recursive Moving Average Filter

I implemented a recursive moving average filter to reduce background noise in some test audio files. It works in the time domain, which makes it faster than FFT-based algorithms when the number of points is […]


Hamming, Blackman, and Blackman-Harris

This is my implementation for some of windows used in audio applications. I chose Hamming, Blackman, and Blackman-Harris window functions. Instead of using FFT pack, I directly applied DFT since the DFT size is not […]


Discrete Fourier Transform

This is my DFT implementation to test a wav file. It only accepts mono wav files with 44100 Hz sample rate. I used 32 floating point (with max 23 mantissa) in the range -1 and […]