A MIDI to key player for in-game instruments made using C# and WPF with Windows Mica design. This project is originally forked from sabihoshi/GenshinLyreMidiPlayer and was later detached into its own repository to enable multi-game support and introduce features that don’t fit the original Genshin Impact–only use design.
- Genshin Impact - Windsong Lyre, Floral Zither, Vintage Lyre
- Heartopia - Piano
Image: Main player showing playlist and playback controls.
- Download the program and then run, no need for installation.
- Open a .mid file by pressing the open file button at the top left.
- Enable the tracks that you want to be played back.
- Press play and it will automatically switch to the target game window.
- Automatically stops playing if you switch to a different window.
If you get a SmartScreen popup, click on "More info" and then "Run anyway" The reason this appears is because the application is not signed. Signing costs money which can get very expensive.
- Multi-game support - Play on Genshin Impact (Lyre, Zither, Vintage Lyre) and Heartopia (Piano Variants)
- Spotify-style UI - Modern player interface with fixed bottom controls
- Per-song Settings - Key, speed, and transpose settings are saved per song
- Track Management - Enable/disable individual MIDI tracks with detailed statistics
- Transposition - Change the key with automatic note transposition
- Speed Control - Adjust playback speed from 0.1x to 4.0x
- BPM Control - Set a custom BPM for the song
- Written in C# WPF with Windows Mica design
- Play multiple tracks of a MIDI file simultaneously
- Test MIDI files through speakers before playing in-game
- Change keyboard layouts (QWERTY, QWERTZ, AZERTY, DVORAK, etc.)
- Auto-play at a scheduled time
- Find songs using the search box
The Piano Sheet allows you to easily share songs to other people, or for yourself to try. You can change the delimiter as well as the split size, and spacing. This will use the current keyboard layout that you have chosen.
GIF: Piano Sheet example demonstrating delimiter, split size, and spacing options.
If you have your own MIDI instrument, this will let you play directly to the in-game instrument. This lets you play directly without using a MIDI file.
A queue allows you to play songs without having to open or delete a song or file.
Screenshot: Playlist and history panel showing song queue.
- You can set the player to hold sustained notes (does not really make a difference. Off by default.)
- Some songs sound better when nearby notes are merged see #4 for an example
You can set the player to light mode/dark mode and change its accent color.
Image: Theming examples.
MIDI files (.mid) is a set of instructions that play various instruments on what are called tracks. You can enable specific tracks that you want it to play. It converts the notes on the track into keyboard inputs for the game. Currently it is tuned to C major.
The short answer is that it's uncertain. Use it at your own risk. Do not play songs that will spam the keyboard, listen to the MIDI file first and make sure to play only one instrument so that the tool doesn't spam keyboard inputs.
- For Genshin Impact, here is miHoYo's response to using 3rd party tools.
- For Heartopia, here is their Official Discord message about using 3rd party tools.
- Do not include the build itself where the project is cleaned using
dotnet clean. - Update the README.md with details of changes to the project, new features, and others that are applicable.
- Increase the version number of the project and the README.md to the new version that this Pull Request would represent. The versioning scheme we use is SemVer.
- You may merge the Pull Request in once you have the the approval of the maintainers.
If you just want to run the program, there are precompiled releases that can be found in here.
git clone https://github.com/Jed556/AutoMidiPlayer.git
cd AutoMidiPlayer
dotnet publish AutoMidiPlayer.WPF -r win-x64 ^
-c Release --self-contained false -p:PublishSingleFile=trueFor other runtimes, visit the RID Catalog and change the runtime value.
git clone https://github.com/Jed556/AutoMidiPlayer.git
cd AutoMidiPlayer
dotnet buildgit clone https://github.com/Jed556/AutoMidiPlayer.git
cd AutoMidiPlayer
dotnet publish- Will add demo videos and images soon.
- I don't have knowledge about music theory, if you find any issues with note mappings or transpositions, please open an issue or PR.
- This project is inspired by and built on top of sabihoshi/GenshinLyreMidiPlayer v4.0.5. Huge thanks for the original work!
- ianespana/ShawzinBot - Original inspiration for the concept
~GenshinLyreMidiPlayer - yoroshikun/flutter_genshin_lyre_player - Ideas for history and fluent design
~GenshinLyreMidiPlayer - Lantua - Music theory guidance (octaves, transposition, keys, scales)
~GenshinLyreMidiPlayer
- This project is under the MIT license.
- Originally created by sabihoshi. Modified by Jed556 for multi-game support and modernization.
- All rights reserved by © miHoYo Co., Ltd. and © XD Inc. This project is not affiliated nor endorsed by miHoYo or XD. Genshin Impact™, Heartopia™, and other properties belong to their respective owners.
- This project uses third-party libraries or other resources that may be distributed under different licenses.
