Home
Softono
piano-trainer

piano-trainer

Open source MIT TypeScript
2.2K
Stars
66
Forks
2
Issues
12
Watchers
1 month
Last Commit

About piano-trainer

🎹 Memorize piano scales with ease! A piano practice program w/ MIDI support. Consider it an interactive reference manual

Platforms

Web Self-hosted

Languages

TypeScript

Piano Trainer - Memorize piano scales and chords with ease | Product Hunt

Piano Trainer

Learn to play the piano at your own pace through various modes of practice. Watch the video

Piano Trainer screenshot Piano Trainer screenshot #2

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.

$ git clone https://github.com/ZaneH/piano-trainer.git
$ cd piano-trainer
$ yarn tauri dev

Build Target Binary

Outputs to ./src-tauri/target/release/bundle

$ yarn tauri build

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:

$ flatpak-builder --force-clean --user --install-deps-from=flathub --install builddir flatpak/com.zane.piano-trainer.yaml
$ flatpak run com.zane.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.