All projects
Personal product, installable app
Isola
Splits any song into vocals, drums, bass and other instruments with AI, and doubles as a practice studio for drummers.
- Django
- Celery
- Redis
- Demucs
- FFmpeg
- librosa
- Web Audio API
- AudioWorklet
- VexFlow
The problem
To learn a song by ear, a drummer needs to hear the drums alone, slow down without changing pitch and loop a section until it's right. That took three or four different apps, almost none on mobile.
What I built
One app: upload a song, AI separates the stems in the background, and the player lets you play along, isolate, slow down and loop. Around it, a practice area with rudiments, grooves and daily goals.
- Stem separation with Demucs in a background queue, with live progress
- In-browser multitrack player: solo, mute, independent pitch and speed, A–B loop
- BPM, key and chord detection synced to playback
- Drum transcription to sheet music, MIDI and MusicXML
- Practice routine with 40 rudiments, grooves, metronome and timing accuracy
Technical decisions
- Separation (Demucs) runs outside the request in Celery, saving stage and progress to the database for the page to follow.
- Mixing, time-stretching and the metronome run in an AudioWorklet on the audio thread, so pitch and speed stay independent without blocking the UI.
- Audio is served by a custom view with HTTP Range, which Safari requires, and only to the file's owner.
- BPM is estimated on the isolated drum stem, which gives a much cleaner onset signal than the full mix.
- Uploads are checked for extension, size and real audio content before entering the queue.
- PWA with a service worker and offline page, installable on the iPhone home screen.
Screens





Screens of personal products and Neri show sample data.