{"repo":"ZaneH/piano-trainer","free":true,"listed":false,"github":"https://github.com/ZaneH/piano-trainer","clone":"git clone https://github.com/ZaneH/piano-trainer.git","description":"🎹 Memorize piano scales with ease! A piano practice program w/ MIDI support. Consider it an interactive reference manual","language":"TypeScript","stars":2193,"topics":["midi","music-learning","music-theory","piano","tauri","trainer","audio","chords","midir","music"],"license":"MIT","category":"media-processing","readme_excerpt":"Piano Trainer Learn to play the piano at your own pace through various modes of practice. Watch the video Features - [x] MIDI compatible - [x] Home row keyboard input - [x] Cross-platform support - [x] Interactive scale practice - [x] Interactive chord practice - [x] Interactive fifths practice - [x] Interactive quiz - [x] Hard mode - [x] Shuffle mode Coming Soon - [ ] More scales - [ ] Settings - [ ] Toggle questions in quiz mode - [x] Change keyboard sound Releases Download for free on all platforms on itch.io/piano-trainer or download the latest build here Run Locally You'll need to setup Rust and Tauri CLI by following the Getting Started guide here. Build Target Binary Outputs to ./src-tauri/target/release/bundle Build and Install Flatpak For non-FHS distros, the Flatpak can be used as a self-contained runtime environment. Ensure these build dependencies are installed: flatpak , flatpak-builder , and appstream . After cloning the repo, use the following commands to install and run Piano Trainer: Contributions Contributions are more than welcome. Read the Technical Breakdown here to learn about the codebase. Create a PR pointing to the dev branch. Stable builds will be merged into main . Code formatting is automatically handled with Git Hooks. Credits Special thank you to ruohki/tauri-midi-example, kevinsqi/react-piano, and the Tauri Discord community.","default_branch":null,"files":null,"tree":[],"storefront":"/r/ZaneH","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ZaneH/piano-trainer/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}