Skip to content
Switch branches/tags
Go to file


Failed to load latest commit information.
Latest commit message
Commit time
Mar 7, 2018
Mar 7, 2018


A web app for slicing and dicing audio files as demonstrated at
This is a purely front-end app that requires no server or special installation.

Attempts to detect the beats of, say, a drum loop, decompose the file into separate 'hits' and export the individual hits as WAV files, together with a MIDI file describing the timing of the original loop and an SFZ file for compatible software samplers. You can optionally apply various WebAudio DSP processes to the edited audio file.

Complete operating instructions are in the index.html file. The GUI is based on a highly modified version of wavesurfer.js. This app was conceived of and made in early 2016; somehow I hadn't got round to posting it up here till now, 2018.

Building: It's all ready to go as-is. The emscripten folder has a makefile for producing an asm.js file at js/fft/FFTExtAsm.js; you'll need the LLVM and Emscripten compilers to make any updated versions of this file (run 'emmake make').

Somehow various JS concatenators/minifiers did not work for me so I made one big master JS file by hand! This is the version referenced on my site.

Thanks: to, inter alia, Mario ( et seq) for showing a nice way to get started with note-onset detection

Chris Cannam ( for demonstrating some FFT implementations in javascript, and how to cross-compile some native FFT libraries of note to asm.js The FFT is used at the file-loading phase in an attempt to detect note onsets with which to demarcate the audio

Matt Diamond ( for reminding me how a WAV file header was constructed

Ollie: for playing the drum loop that is our application's default soundfile, ol2.wav.

and katspaugh the originator of the aforementioned wavesurfer.js, for providing the best HTML5 audio visualisation tools.


A web app for slicing and dicing audio files




No releases published


No packages published