Projet personnel
PianoLearn
Une appli Android pour apprendre le piano sur un vrai clavier : notes qui tombent, partition, cours, et un serveur sur mon Raspberry Pi qui transforme un enregistrement en morceau jouable.
- Période
- 2026
- Rôle
- Seul
- Technologies

Ce que fait l’appli
Le piano se branche au téléphone par un câble USB. En jeu libre, les notes jouées s’affichent en direct : nom, portée, accord reconnu, pédale. Le lecteur ouvre un fichier MIDI avec des notes qui tombent et la partition, de 25 à 150 % de la vitesse, en boucle sur un passage, main droite, main gauche ou les deux, avec un mode qui attend la bonne note.
À côté, quatorze modules de cours, du nom des notes jusqu’aux accords et aux rythmes avancés, avec des exercices joués sur le vrai clavier et des révisions espacées dans le temps.
Une seule horloge
Le piège d’une appli de piano, c’est le décalage entre ce qu’on entend et ce qu’on voit. Comme les applis dédiées, PianoLearn n’a qu’une horloge, celle du séquenceur. Sur Android, il tourne dans le fil audio natif, écrit en Kotlin : il joue les notes au moment exact où elles doivent être entendues et donne la position réelle, que l’écran affiche.
Le JavaScript ne s’occupe que des règles, comme le mode attente, la boucle ou le score. La même logique existe en TypeScript pour l’aperçu web et les tests, et les deux doivent rester identiques.
Ce module natif a une conséquence : l’appli ne tourne pas dans Expo Go, il faut construire un APK. Le SDK Android ne s’installe pas sur un Raspberry Pi, alors la compilation passe par le service cloud d’Expo.
Transformer un enregistrement en morceau
On peut envoyer un enregistrement de piano, en MP3, WAV, OGG ou FLAC. Un petit serveur sur mon Raspberry Pi le transcrit en notes avec Basic Pitch, un modèle open source de Spotify, en quelques secondes. Le serveur refuse toute adresse extérieure au réseau local.
Un assistant Gemini répond aux questions de théorie et cherche des morceaux sur des catalogues de fichiers MIDI, puis les adapte au niveau voulu : mélodie seule pour débuter, puis basse, puis seconde voix. Chacun utilise sa propre clé, stockée seulement sur le téléphone.