Skip to content

aamn09/piano-adapt

Repository files navigation

🎹 Piano Adapt

Piano adapt est une application permet de convertir des partitions PDF en format interactif pour apprendre le piano de manière ludique, soit via un navigateur, soit via le logiciel desktop (Electron).

Logiciel à télécharger avant tout : https://github.com/Audiveris/audiveris/releases

Architecture du Système

  • Frontend : React + Tailwind CSS (Interface de jeu & Rendu SVG)
  • Backend : FastAPI + SQLite (Gestion des partitions & API Eye-tracking)
  • OMR Engine : Audiveris (Conversion PDF vers MusicXML)
  • IA Logic : Music21 (Analyse de la structure musicale)
  • Desktop : Electron (Encapsulation logicielle)

Pour Tom : Intégration Eye-Tracking

Le frontend interroge le backend toutes les 150ms. Ton script doit envoyer les états en POST à l'adresse suivante : http://localhost:8000/api/update-eye-data

Format attendu :

{
  "looking_at_keyboard": boolean,
  "is_distracted": boolean,
  "is_fixation": boolean
}

Tu peux changer mais faudra adapter à toi de voir


Guide d'Installation

Pour Windows

1. Prérequis système

  • Node.js (v18 ou +)
  • Python (3.9 ou +)
  • WSL2 (Ubuntu) installé
  • Audiveris installé sur Windows (Chemin par défaut : C:\Program Files\Audiveris\Audiveris.exe)

2. Lancement du Backend (Terminal WSL)

Note : Ce terminal gère le serveur API et la conversion des partitions.

    cd piano-adapt/backend
    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
    uvicorn main:app --reload

3. Lancement du Frontend & Electron (Terminal Windows)

À la racine du projet :

npm install # (si c'est pas installé)
npm start

Attendre que l'application s'ouvre dans le navigateur sur le port 3000.

Si vous souhaitez la version desktop Electron :

À la racine du projet, une fois le frontend lancé

npm run electron

Pour macOS

2. Adaptation du Code

Comme Mac n'utilise pas WSL, il faut modifier ces deux points dans backend/main.py :

  1. Il faut modifier AUDIVERIS_BIN pour pointer vers : /Applications/Audiveris.app/Contents/MacOS/Audiveris.

  2. et remplacer la fonction de conversion de chemin WSL par une fonction qui retourne le chemin absolu :

def wsl_path_to_windows(linux_path: str) -> str:
    return os.path.abspath(linux_path)

3. Lancement pareil que windows (Terminal macOS)

Terminal 1 (Backend) : cd backend && source venv/bin/activate && uvicorn main:app --reload Terminal 2 (Frontend) : npm install (que la premiere fois) && npm start Terminal 3 (Logiciel) : npm run electron

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors