Simple RNN for Speech Denoising

I recently built a lightweight speech denoiser using a GRU-based recurrent neural network that operates directly on raw audio frames. What I did: Implemented a SimpleDenoiserRNN with a single GRU layer and a linear output […]


Neural Audio Codec

This is a basic neural audio codec implementation using a convolutional encoder and decoder, along with a quantizer. The encoder compresses raw audio into a low-dimensional latent vector. A simple scalar quantizer then rounds the […]


Arc-Length-Based Sampling in Latent Space

Here, I morph between two points (A to B), through an optional control point, and compare arc-length based sampling to linear interpolation. Main idea comes from my implementation for curve point distribution in 2D latent […]


Pretrained Mono CNN in JUCE Plugin

—*Testing Stage* — I tried adding a pretrained mono CNN into a JUCE plugin to experiment with real-time audio processing, mainly thinking about a vocal denoiser. The process turned out simpler than I expected, and […]


Local Extremas and Nesterov Accelerated Gradient

To find a global minimum for a selected function, I compared brute force sweeping with Nesterov Accelerated Gradient (NAG) optimisation technique. By applying a small deltaX increments, I obtained local extremas in the range of […]


Arc Length by Simpson’s Rule

Simpson’s Rule is a classical numerical integration technique used to approximate definite integrals, especially when the integrand is difficult or impossible to integrate analytically. While it is a fundamental tool in numerical analysis and calculus, […]


Data Augmentation for MIDI: Transposing

One of data augmentation techniques for music dataset is transposing. In my opinion, it is quite useful for OMR training – image to notation process (score to music notation) like stem directions and clusters. However, […]


Rhythm As Effect

This excerpt is from the track Broken Heart, released on the EP Life as a Routine. It features only piano, violas, and contrabasses, creating a musical echo effect. I used a specific rhythmic repetition, combined […]


Syncopated Rhythm

A syncopated rhythm is a rhythmic technique in which the expected pattern of beats is intentionally disrupted to create surprise, tension, or groove. Instead of emphasizing the strong beats, syncopation shifts the focus to weak […]


Isorhythm – Color and Talea

Isorhythm is a compositional technique in which a rhythmic pattern (talea) and a melodic pattern (color) repeat — but not necessarily in sync. It was mainly used in Medieval music, especially in 14th-century motets. The […]


French 6th Chord

The French sixth chord is a type of augmented sixth chord used in classical harmony. It is named after French composers who popularized its use. Its typical resolution is to the dominant (V) chord. However, […]


Textural Cluster Pedal

This piece starts with a textural cluster pedal in the low strings, using the notes D and F played simultaneously. They are repeated as 16th notes at 135 BPM in 4/4, creating a measured tremolo. […]


Forging the Rhythmic Backbone

This excerpt is taken from the track Sultan’s Revenge, featured on the EP Defending the Line. Here, I aimed to forge a rhythmic flow led by the strings, gradually reinforced by horns and trumpets with […]


Interactive Music with Wwise

I made an interactive music demonstration for video games by using Wwise. I composed 11 music segments for 3 different game states. To synchronise two states, I used the same tempo and chord progression. It […]




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, […]


1 2 3