Repository navigation
rViPER4Android v4.4.0: Per-channel EQ, Included apps, Processing per output, Smooth reverbs
LatestPer-channel parametric EQ
Every band in the parametric EQ now has an L+R button: tap for left only, again for right, again for both. It is for earphones whose two sides do not sound alike, which Balance cannot fix, since it moves the whole signal rather than one frequency on one side.
Import and export understand EqualizerAPO's Channel: lines, and ordinary presets save exactly as before. Rooted mode can only take one curve for both ears, so there it uses the left one. Asked for in #9.
Choose which apps are processed
The Excluded apps list can be flipped round to name the apps you do want processed, and it becomes Included apps. No more keeping a list of every app that misbehaves just to process your music player. An empty list processes as normal rather than silencing everything, and apps that forbid recording are left out automatically, since capturing them only gives silence. Asked for in #10.
Processing on or off per output
Device profiles can now switch processing off entirely for an output, say the phone speaker, and back on for headphones. Find it under Settings, Device profiles, "Switch processing by output". Off by default.
On the rootless build, off really stops capture, notification included. Restarting it without a popup needs the PROJECT_MEDIA permission granted once through Shizuku or ADB, plus Display over other apps; without them the option is greyed out and says why. With processing off, Android may close the app, and it then misses output changes until you open it again. Asked for in #11.
Smooth Concert hall and Room
Two new reverb types, Concert hall (smooth) and Room (smooth), rebuilt to get rid of the few strong early echoes at a repeating spacing that made the originals sound metallic. The tail is much denser, and Tank modulation now works on them. The originals stay exactly as they were, so presets sound the same, and the card now shows only the sliders the chosen type uses. From #6.
ViPER4Android-only mode gives your effects back
Turning the mode off used to leave your whole chain switched off. It now remembers what was on when you turn the mode on, and puts exactly that back when you turn it off. If you turned it on in 4.0.0, there is no record to restore from, so nothing is changed. Vinyl and Balance now hide in the mode too, and loading a preset or switching device profile there no longer switches hidden effects back on.
Rooted mode
The engine module is attached as RootfulViPER4Android-engine-module-v4.4.0.zip. Update it together with the rooted app, then reboot: several of the fixes below need both, and the smooth reverbs need the new module.
If the rooted app finds a different engine on the device, such as the stock JamesDSP module, it now says so and offers the download page, instead of showing every card as working while the ViPER ones do nothing. That is what was happening in #12.
Still untested on a real rooted device. Rooted devices on Android 15 or newer that use the AIDL audio effects HAL still cannot load the module, and multiband distortion and Liveprog slots 2 to 4 are not in rooted mode yet.
Fixes
Crashes and freezes while changing settings
- Changing compander settings or the crossfeed mode while playing could crash or freeze audio.
- EQ changes at the start of playback, a reorder mid song, or stopping the service during a Liveprog compile could all hit a timing crash or a pop.
- High echo feedback with resonance could grow into a howl and then go dead. Feedback is now capped just below that point, and settings that were fine before sound the same.
Sound that went silent or glitched
- One corrupt sample anywhere could silence the whole output until the service restarted. The output stage and the effects that held on to it now recover on their own.
- Revoking capture permission with the app open left every processed app silent until the service was stopped by hand or the phone restarted.
- Differential surround could tick every 0.37 s at common settings, and Smooth pitch drifted out of tune on long held notes.
- Switching the graphic EQ's phase could crash, and a malformed DDC file could corrupt memory.
After a sample rate change (every 44.1 kHz session, since the engine starts at 48)
- Echo, maximiser, surround, Clarity and many more kept old timings: a 350 ms echo played at 381 ms. On the rootless build every card is now set up again on a rate change.
- DDC sat about 9 % off in frequency and vinyl crackled about 8 % less.
- Bass boost and the older reverbs could overrun their buffers.
Rooted mode
- Plugging in headphones or connecting Bluetooth silently reset every effect to off, and leaked memory.
- The compander, EQ, crossfeed and DDC could not be switched off, Liveprog could not be switched on, and Reset processing order did nothing.
- The limiter mode, the spectrum extension and the graphic EQ's linear phase switch did nothing, and bass boost was rounded to whole dB.
- Impulse responses played at half speed on 96 kHz outputs, and true stereo ones were refused.
- Audio streams below 44.1 kHz could write past the engine's buffers.
Screen and layout
- Garbled characters in the English text, about 70 of them including the ViPER4Android section header, are fixed. Thanks for #16.
- Hidden cards no longer come back after switching apps or clearing a search, and new groups no longer land unreachable under the bottom bar.
Licence notices for borrowed code are restored, with credits in About.
Which file do I want?
rootlessis the normal one. No root needed.rootfulis the rooted build, to be installed with the module above.- There is now one file per build, and it works on every phone and tablet, so there is no need to pick a processor type any more.
Upgrading from 4.0.0 installs straight over the top.