r/linuxaudio • u/titaniusanglesmith1 • 3d ago
Browser-based open-source DJ mixer for Linux and Chromebooks. Looking for audio-DSP help with key-lock.
Spindle DJ runs in Chrome and installs on Debian and Ubuntu as a .deb. Its DSP is written as small self-contained modules that are easy to test and could later be ported to Rust for a native PipeWire/JACK edition.
The biggest open problem is pitch-preserving time-stretch (key-lock) inside an AudioWorklet on low-end hardware. If you've implemented WSOLA or a phase vocoder, I'd value your input.
Code: https://github.com/mjpredator403-ship-it/spindle-dj .deb download: https://github.com/mjpredator403-ship-it/spindle-dj/releases/latest
Full transparency: I designed and directed this, and built it with an AI coding assistant. Every feature is covered by automated tests that measure the actual audio output.
3
u/Accomplished_Dot4192 2d ago
this looks neat, but please make sure you understand the programing, or at least consult a programmer and ask them if they would be as kind to try spot out any bugs
6
u/deaddyfreddy 3d ago
built it with an AI coding assistant
no way! /s
5
1
u/grandmastermoth 2d ago
I'm not against this but why oh why build it in the browser? You want rust or c++ for respons8ve real-time audio
2
u/titaniusanglesmith1 2d ago
It was a quick and easy was for my son to have something to practice on that achieved this function while not needing any additional resource. He has an old Chromebook with limited hard-disk and memory expansion options. I built it this way so that the community is able to contribute and improve upon this present version.
1
1
u/javiercplusmax 1d ago
realtime en navegador es medio xd...
dependería mas del sistema en este caso que ya tenga las optimizacions rt activadas en el kernel... o que lance dicha aplicación con pw-jack lo cual no creo que lo tenga la Chromebook
1
u/danja 2d ago
For time stretching I got pretty good results with a VST by passing this paper to Claude : https://github.com/heavylight-industries/dafx26-paper
Incidentally, on the offchance it might be suitable for your kit, I've been working on a Web-native plugin format : https://danja.github.io/jigdaw/
1
u/VlrmPrjct 1d ago
I don't understand why Linux and Chromebooks are specifically mentioned when “browser” means that it runs on any platform. So it's cross-platform.
1
u/titaniusanglesmith1 1d ago
Correct, it was designed with the limitations of my Chromebook in mind. But now works across all platforms that we’ve tried it on, as long as you have a Chrome Browser installed.
9
u/anne-so 3d ago
whats the point of your app when we have mixxx that is already working?