KaossEffect is a high-performance Android audio application that enables real-time effects processing on MP3 tracks. Inspired by the Korg Kaoss Pad, it features an intuitive XY Pad interface that allows users to manipulate two effect parameters simultaneously using touch gestures.
Main interface with XY pad and effect controls
The app includes four custom DSP effects, implemented in high-performance C++ using the Oboe audio library:
- Filter (Low-Pass): Controls Cutoff Frequency (X-axis) and Resonance (Y-axis).
- Chorus: Adds richness and width with Mod Rate (X-axis) and Depth (Y-axis).
- Bitcrusher: Creates lo-fi digital distortion by reducing Bit Depth (X-axis) and Sample Rate (Y-axis).
- Flanger: Produces a sweeping jet-plane sound via LFO Rate (X-axis) and Depth (Y-axis).
- XY Pad: Smooth, responsive touch surface for dynamic sound manipulation.
- Dual Effect Slots: Chain two effects (A → B) with per-slot wet mix and slot-focused XY control.
- Effect Toggling: Tap an effect to enable it. Tap the active effect again to bypass that slot.
- Transport Controls: Play, Pause, Stop, and a precision Seekbar with time display (mm:ss).
- Audio Focus: Automatically pauses playback when interrupted (e.g., by a phone call).
- Soft Clipper: Integrated tube-like soft clipper on the master output to prevent digital distortion.
- Language: Kotlin (UI) + C++17 (Audio Engine)
- UI Framework: Jetpack Compose (Material3)
- Audio Engine: Google Oboe (Low-latency audio streams)
- Decoding: Android NDK MediaCodex + MediaExtractor (Native MP3 decoding)
- Architecture: MVVM with unidirectional data flow
- Android Studio
- Android Device or Emulator (API 26+)
- Clone the repository.
- Open the project in Android Studio.
- Sync Gradle project.
- Run on a connected device or emulator (
Shift + F10). - Note: The native C++ library (
native-lib) will automatically build via CMake.
- Load a Track: Tap the folder icon in the top-right corner to open the system file picker and select an MP3 file.
- Play: Tap the Play button at the bottom.
- Apply Effects:
- Select an effect from the mode selector (Filter, Chorus, Crush, Flange).
- Drag your finger on the central pad to change parameters in real-time.
- Tap the currently active effect button to turn it OFF (Bypass).
- Seek: Drag the slider to jump to a specific part of the track.
MIT

