Skip to content

About

Learn the 40 PAS drum rudiments on Android: notation, listen mode and tap practice with timing feedback. Free software (GPL-3.0).

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Paradiddle icon

Paradiddle

CI License: GPL v3+ Android 8.0+

A free, open source Android app for learning the 40 PAS drum rudiments.

  • Notation and sticking for every rudiment (accents, flams, drags, buzz strokes)
  • Listen mode: hear the rudiment at any tempo over a metronome
  • Practice mode: tap two on-screen pads (left/right hand) while notes fall toward a hit line; timing and sticking are scored live (perfect / good / ok / wrong hand / missed)
  • Real drums: play on a practice pad (heard by the microphone) or on an electronic kit connected by USB-MIDI (such as the Alesis Nitro Mesh, with a USB OTG adapter); timing and accents are scored, and on the electronic kit also which pad you hit
  • Results with rushing/dragging tendency and a suggested next tempo
  • Local progress: best clean tempo (≥ 90 %), accuracy, practice time, daily log
  • One-time latency calibration so scoring is fair on every phone
  • Styles: 20 named beats of rock, pop, punk, metal, bossa nova, songo, reggae and cumbia, shown on a drawing of the Alesis Nitro Mesh kit that lights up the pads to hit, plus a drum grid, looping playback at any tempo with a drum sound for each style, a recommended kit setup and songs that use each beat; practise any beat on real drums and get a score
  • Song lessons: for 11 songs, a page that maps every section to the beat it uses, gives a learning path and plays the whole song (or any section) with the kit lighting up
  • My kit: how to set up an Alesis Nitro Mesh kit to practise with the app
  • English and Spanish · no ads, no tracking, no network; the only permission is the microphone, asked for only if you choose to play on a pad heard by it

Install on your phone

Paradiddle isn't on F-Droid yet, so for now you install the APK by hand ("sideloading"). Android 8.0 or newer is needed.

  1. On your phone, open https://github.com/rdiecv/paradiddle/releases and download the latest paradiddle-<version>.apk (under Assets).
  2. Open the downloaded file (from the browser's downloads or the Files app).
  3. Android will say it can't install apps from this source. Tap Settings, turn on Allow from this source, then go back and tap Install.
  4. If Google Play Protect warns about an unknown app, tap More details → Install anyway. The app doesn't use the internet. It asks for the microphone only if you choose to play on a practice pad heard by it.
  5. Open Paradiddle and do the calibration first (it takes 15 seconds).

Updating: download the newer APK and install it over the old one. Your progress is kept.

Test builds vs F-Droid: the test APKs on GitHub are signed with a different key than the future F-Droid version, so to switch to F-Droid you'll need to uninstall the test version first (this deletes your practice history).

Instalar en el móvil (español)

  1. En el móvil, abre https://github.com/rdiecv/paradiddle/releases y descarga el último paradiddle-<versión>.apk (en Assets).
  2. Abre el archivo descargado (desde las descargas del navegador o la app Archivos).
  3. Android dirá que no puede instalar apps de este origen: pulsa Ajustes, activa Permitir de esta fuente, vuelve atrás y pulsa Instalar.
  4. Si Google Play Protect avisa de una app desconocida, pulsa Más detalles → Instalar de todas formas. La app no pide permisos ni usa internet.
  5. Abre Paradiddle y haz primero la calibración (tarda 15 segundos).

Para actualizar, instala el APK nuevo encima del anterior: se conserva tu progreso.

Build

Requirements: JDK 17 and the Android SDK (platform 35).

./gradlew test lint assembleDebug      # tests, lint, debug APK
./gradlew assembleRelease              # unsigned release APK (F-Droid signs its own)

The debug APK ends up in app/build/outputs/apk/debug/. Install it with adb install app/build/outputs/apk/debug/app-debug.apk.

Project layout

Module What it contains
core/ Plain Kotlin, no Android: rudiment model and notation parser, timeline builder, scorer, calibration, sound synthesis and mixer. Unit tested.
app/ Android app: low-latency audio engine (AudioTrack), Room database, settings, Jetpack Compose UI.

The design is described in docs/superpowers/specs/2026-10-13-paradiddle-design.md.

Rudiment data

All rudiments live in app/src/main/assets/rudiments.json, written in a compact sticking notation:

Token Meaning
R / L stroke with the right / left hand (1 grid slot)
> accent, e.g. R>
z buzz stroke, e.g. Rz
l / r prefix grace notes, e.g. lR = flam, llR = drag
:n lasts n slots, e.g. R>:4
- rest

grid is the number of slots per beat (1, 2, 3, 4, 6 or 8). Patterns are written in their usual open (slow) form. If you spot a pattern that doesn't match the PAS sheet, corrections are very welcome: ./gradlew :core:test checks the file is valid.

Style data

The styles live in app/src/main/assets/styles.json. Each style has a recommended Alesis Nitro Mesh preset kit (kit, 1–24), a synthesised drum sound (standard, rock, pop, punk, metal, bossa, songo, reggae or cumbia), setup tips and a list of named beats. Texts (setup, a beat's name and how) are given per language ({"en": …, "es": …}). Each track of a beat has one character per 16th note (16 per 4/4 bar, one or two bars):

Symbol Meaning
. rest
x / X hit / accented hit
g ghost note
o open hi-hat (hi-hat track only)

A beat can list songs that use it (id, title, artist and an optional per-language note). The app never ships recordings or transcriptions, and a song is added only when a source confirms the beat. A song can have a lesson: its tempo (bpm), its sections in order and a learning path (steps). Each section has a name, a number of bars, an optional note and either the beat it uses (the id of any beat in the file), its own short tracks (a pattern only that song uses) or neither (the drums rest; the app counts along). A lesson is written only from published drum guides and bar-by-bar song charts, which are listed in the song's sources; songs without a reliable source keep only the listen button.

Instruments: crash, hihat, ride, cowbell, snare, cross_stick, tom, kick. The songo and cumbia beats are simplified drum-kit versions; corrections and new beats are welcome, and ./gradlew :core:test checks the file.

Contributing

Bug reports, rudiment corrections, translations and code are all welcome. Start with CONTRIBUTING.md. Everyone taking part follows the Code of Conduct. To report a security problem, see SECURITY.md.

Changes between versions are listed in the CHANGELOG.

License

Paradiddle is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License, version 3 or (at your option) any later version.

About

Learn the 40 PAS drum rudiments on Android: notation, listen mode and tap practice with timing feedback. Free software (GPL-3.0).

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages