Stage musicians and producers, 2026
PadLab for Android
PadLab is a live music performance app that already existed for iPhone, iPad and Mac. MS Labs built the Android version, in Kotlin on a custom C++ audio engine, with musical and visual parity with the Apple app.
Stack: Kotlin, C++ (audio engine), SoundFont, MIDI, Android
The problem
PadLab was already on stage for iPhone and iPad users: infinite harmonic pads, drums, MIDI and an eight-channel environment. Android was missing, and a simplified version wouldn't do. Musicians switch devices and expect the same sound, the same gesture and the same result.
What we built
The complete Android version, from a detailed specification of the Apple app:
- PadLab: pads by chord and key, drum pads, metronome, set list, arpeggiator and sequencer;
- StageLab: an eight-channel mixer and instrument with SoundFont (SF2) sounds, splits, sets and MIDI;
- Store: unlockable features and sounds;
- Dedicated phone and tablet layouts.
The engineering decisions that matter
- Native C++ audio engine, separate from the Kotlin UI: sound survives any screen recomposition or open menu.
- No heavy work on the audio thread: lock-free queues for notes and MIDI, and buffers released outside the audio callback.
- A custom musical clock for the arpeggiator, sequencer and metronome, independent of UI timers.
- Denormal protection, avoiding CPU spikes in reverb tails and envelopes.
- Safe set changes: old notes end properly, with no stuck sounds.
- 1:1 parity with the Apple version: same function, same state, same musical result.
Platforms
| Platform | Built by |
|---|---|
| Android | MS Labs |
| iPhone, iPad and Mac | original version (reference) |
This is the kind of app where on-device performance really matters. See how we approach mobile app development.