// the find
timschneeb/RootlessJamesDSP
An implementation of the system-wide JamesDSP audio processing engine for non-rooted Android devices
RootlessJamesDSP brings the JamesDSP audio processing engine to non-rooted Android devices by using Android's internal audio capture API to intercept and process audio streams. It's for Android power users who want parametric EQ, convolution reverb, and scriptable effects (via EEL2/Liveprog) without flashing a Magisk module. The DSP feature set is serious — this isn't a bass booster slider app.
The EEL2/Liveprog scripting support is genuinely impressive: you get a real programmable DSP environment with example scripts covering everything from HRTF crossfeed to polyphase filterbanks, which puts it miles ahead of any Play Store audio effect app. The architecture is honest about its constraints — the README upfront lists which apps are blocked and why, rather than hiding the limitation in a FAQ. Dual distribution (Play Store + F-Droid with separate flavor builds) is handled cleanly with product flavors rather than a single APK with conditional code. The ReVanced patch path for DRM-restricted apps like Spotify is a practical workaround documented clearly instead of being pretended away.
The core limitation — apps using Android's `AUDIO_FLAG_NO_MEDIA_PROJECTION` or native AAudio bypass the capture entirely — is architectural and unfixable without root; Spotify, Chrome, and SoundCloud are permanently second-class unless patched, and patching requires ReVanced which has its own maintenance burden. Android 15 broke notification visibility during screen share and the fix requires enabling a developer option, which is a regression that shouldn't be the user's problem. The project is tagged as C but the app logic is Kotlin and the C layer is the upstream libjamesdsp submodule — the C tag is accurate but misleading about where you'd actually contribute. Increased audio latency is acknowledged but never quantified, which matters a lot if you're the kind of person who'd use a parametric EQ.