Lightweight desktop piano you can play instantly with keyboard, mouse, or MIDI
OpenPiano is a Windows desktop piano instrument for practice, composition and sound design with SoundFonts, real-time controls, and MIDI recording/export
OpenPiano is a Windows desktop piano application that lets you play using your computer keyboard, mouse, or a connected MIDI device. It supports 61- and 88-key layouts, customizable keybindings, SoundFont routing, and MIDI recording/export.
OpenPiano's performance:
~0% CPU usage while idle.
~1% CPU usage during active use.
~90 MB memory footprint.
- Download and install from the latest release.
- Launch OpenPiano.
- Play with keyboard, mouse, or MIDI controller.
- Choose your play mode (
61 Keysor88 Keys). - Pick an instrument/program and optional MIDI input device.
- Record and export a
.midtake when needed.
- Keyboard, mouse, and MIDI input in one app session.
- 61-key and 88-key layouts with live visual key feedback.
- SoundFont instrument routing (
.sf2/.sf3) with bank/preset selection. - Custom keybind edit mode with Save, Discard, and undo (
Ctrl+Z). - Real-time controls for volume, velocity, sustain, transpose, animation speed, UI scale and more.
- Theme toggle and per-key color customization.
- Built-in tutorial.
- MIDI recording and
.midexport. - Runs entirely locally (no account or internet dependency required).
OpenPiano supports:
- keyboard play via the mapped piano layout.
- Mouse click/drag play directly on piano keys.
- External MIDI input device routing from the controls panel.
OpenPiano discovers and loads SoundFonts for playback through FluidSynth. You can switch instrument, bank, and preset live from the Controls panel.
The app includes a focused keybind editor (Save/Discard flow), UI scaling, theme switching, animation speed controls, and key color controls.
OpenPiano can capture note events during a live take and export a standard .mid file.
- Website project page (overview + gallery): https://www.justagwas.com/projects/openpiano
- Download page: https://www.justagwas.com/projects/openpiano/download
- Releases: https://github.com/Justagwas/openpiano/releases
For Developers
- Windows (primary target runtime).
- Python 3.11+.
- Dependencies in
OpenPiano/requirements.txt.
cd OpenPiano
py -m pip install -r requirements.txt
py OpenPiano.py- App constants and release endpoints:
OpenPiano/openpiano/core/config.py - Runtime settings serialization logic:
OpenPiano/openpiano/core/settings_store.py - Theme palette definitions:
OpenPiano/openpiano/core/theme.py - Tutorial step content:
OpenPiano/openpiano/services/tutorial_flow.py - Application entry point:
OpenPiano/OpenPiano.py
- Windows SmartScreen can show warnings for newer or unsigned binaries.
- Download from official links only:
- Security policy and private vulnerability reporting:
.github/SECURITY.md
Contributions are welcome.
- Start with
.github/CONTRIBUTING.md - Follow
.github/CODE_OF_CONDUCT.md - Use Issues for bugs, requests, and questions
- Wiki: https://github.com/Justagwas/openpiano/wiki
Licensed under the GNU General Public License v3.0 (GPL-3.0).
See LICENSE.
- Email: email@justagwas.com
- Website: https://www.justagwas.com/projects/openpiano
