{"id":50782725,"url":"https://github.com/quentin-piot/piano-pro","last_synced_at":"2026-06-12T05:01:26.640Z","repository":{"id":349610946,"uuid":"1203081599","full_name":"Quentin-Piot/piano-pro","owner":"Quentin-Piot","description":"Professional piano learning and MIDI visualization tool","archived":false,"fork":false,"pushed_at":"2026-05-16T17:15:51.000Z","size":75162,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-16T19:31:06.063Z","etag":null,"topics":["ai","audio","audio-processing","linux","macos","midi","music","music-tool","piano","python","rust","sheet-music","wgpu","windows"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Quentin-Piot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-06T17:46:54.000Z","updated_at":"2026-04-09T10:18:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Quentin-Piot/piano-pro","commit_stats":null,"previous_names":["quentin-piot/piano-pro"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Quentin-Piot/piano-pro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quentin-Piot%2Fpiano-pro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quentin-Piot%2Fpiano-pro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quentin-Piot%2Fpiano-pro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quentin-Piot%2Fpiano-pro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Quentin-Piot","download_url":"https://codeload.github.com/Quentin-Piot/piano-pro/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quentin-Piot%2Fpiano-pro/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34229624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","audio","audio-processing","linux","macos","midi","music","music-tool","piano","python","rust","sheet-music","wgpu","windows"],"created_at":"2026-06-12T05:01:25.780Z","updated_at":"2026-06-12T05:01:26.623Z","avatar_url":"https://github.com/Quentin-Piot.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/logo.png\" alt=\"PianoPro\" width=\"220\" /\u003e\n\u003c/p\u003e\n\n# PianoPro\n\n**Open the web app:** [quentin-piot.github.io/piano-pro/app](https://quentin-piot.github.io/piano-pro/app/)\n\n**Documentation:** [quentin-piot.github.io/piano-pro](https://quentin-piot.github.io/piano-pro/)\n\nPianoPro is a professional piano learning and MIDI visualization tool, inspired by Guitar Pro but designed specifically for piano.\n\nIt extends [Neothesia](https://github.com/PolyMeilex/Neothesia), a great open-source MIDI visualizer written in Rust, with the features that serious learners actually need: sheet music display, auto-transcription, structured practice tools, and more.\n\nThe goal is a focused, no-nonsense workspace for piano practice and analysis — something closer to what Guitar Pro is for guitarists.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/screenshots/screenshot2.png\" alt=\"PianoPro playback screen\" width=\"100%\" /\u003e\n\u003c/p\u003e\n\n## What this version adds\n\nNeothesia is GPU-accelerated, fast, and clean. This fork keeps all of that and builds the learning layer on top:\n\n| | Neothesia | PianoPro |\n|---|---|---|\n| MIDI playback \u0026 visualization | ✅ | ✅ |\n| Track mute / visibility in playback | Partial | ✅ |\n| MIDI library with persistence | ❌ | ✅ |\n| Audio → MIDI transcription | Partial | ✅ |\n| Sheet music display | ❌ | 🚧 Planned |\n| Hands-separate practice mode | ❌ | 🚧 Planned |\n| Loop section (A/B repeat) | Partial | 🚧 Improving |\n| Performance scoring | ❌ | 🚧 Planned |\n| Fingering suggestions | ❌ | 🚧 Planned |\n\n## Current Features\n\n- MIDI file import and playback with synchronized piano visualization\n- Audio file import with automatic transcription to MIDI (Basic Pitch model)\n- MIDI library with persistent storage and piece renaming\n- Continue button to instantly resume last played piece\n- Per-track controls during playback (mute, auto, human-play modes)\n- Track visibility toggle — hides notes from both waterfall and keyboard\n- Transport bar always visible: speed control, progress scrubbing, loop markers\n- Countdown before playback starts\n- Play-along mode with required key detection\n- Light-mode UI designed for extended practice sessions\n\n## Web Version\n\nPianoPro also runs directly in the browser:\n\n- **Web app:** [quentin-piot.github.io/piano-pro/app](https://quentin-piot.github.io/piano-pro/app/)\n- Uses the same core scenes and playback flow as the desktop app\n- Includes MIDI import, playback, browser-persisted library, and built-in audio output\n\nCurrent web limitations:\n\n- Audio-to-MIDI import is desktop-only\n- Custom SoundFont selection is desktop-only\n- The browser build is currently best suited to recent desktop browsers\n\n## Roadmap\n\nFeatures planned or in progress, roughly by priority:\n\n**Sheet music**\n- Standard notation display synchronized with MIDI playback\n- Scrolling score that follows the current position\n- Chord symbol overlay\n- Fingering number annotations\n\n**Auto-transcription (in progress)**\n- ✅ Audio file → MIDI conversion (WAV, MP3 via Basic Pitch)\n- 🚧 Microphone input for real-time note detection and feedback\n- 🚧 Chord recognition from audio\n\n**Practice tools**\n- Hands-separate mode (left hand / right hand isolation)\n- Fine-grained loop control with visual A/B markers\n- Practice tempo ramp (auto-increase speed as you hit targets)\n- Configurable lead-in and countdown\n\n**Analysis \u0026 feedback**\n- Performance scoring: timing accuracy, missed notes, early/late statistics\n- Session history and progress tracking over time\n- Difficulty estimation per section\n\n**Other**\n- Fingering suggestion engine\n- Metronome with subdivisions\n- Export performance replay as video\n- Custom color themes per track\n\n## Screenshots\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/screenshots/screenshot1.png\" alt=\"PianoPro main menu\" width=\"100%\" /\u003e\n\u003c/p\u003e\n\n## Building\n\n```bash\n# Run the app\ncargo run --release --bin neothesia\n\n# Build\ncargo build --release --bin neothesia\n```\n\nRequires a `default.sf2` soundfont in the project root or a system-installed one for audio playback.\n\n## Credits\n\nBased on [Neothesia](https://github.com/PolyMeilex/Neothesia) by PolyMeilex — a GPU-accelerated MIDI visualizer written in Rust.\n\n## License\n\nGNU GPL v3 — same as the original Neothesia project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquentin-piot%2Fpiano-pro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquentin-piot%2Fpiano-pro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquentin-piot%2Fpiano-pro/lists"}