-
Notifications
You must be signed in to change notification settings - Fork 2
Home
A friendly 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.
Auto MIDI Player converts MIDI notes into keyboard input patterns that work with supported in-game instruments.
It is made for practical playback, song management, and configurable per-song behavior. The goal is to make MIDI playback easier to use, easier to control, and more flexible for different games.
MIDI files (.mid) are a set of instructions that play various instruments on what are called tracks.
In Auto MIDI Player, you can enable specific tracks that you want it to play. It converts the notes on the track into keyboard inputs for the game. For example, if you have a track with piano notes, it will convert those notes into the corresponding keys on your keyboard that play the piano in the game. This allows you to play songs automatically without having to press the keys yourself.
I've been playing games with instruments for a while, and I realized I wanted to play songs automatically. Let's be honest, there's something deep inside some of us players that doesn’t want to learn how to play songs manually... I’m definitely one of those 🤣. I wanted a tool that could automate this process while still giving me control over how songs are played.
As mentioned, I initially forked the original GenshinLyreMidiPlayer v4.0.5 because I found it really great, and I’ve been playing Genshin Impact for quite some time. But I wanted to expand it to support more games and instruments without being tied to the original codebase. So I built on top of it with a focus on multi-game support, per-song settings, and a more user-friendly interface... kind of like Spotify 😉.
Or simply put, what are other MIDI players missing that I wanted?
- Some tools are game-specific and don’t support multiple games or instruments.
- Many tools lack per-song settings, forcing users to reconfigure everything for each song.
- Some tools have limited track management or no queueing features at all.
- Usability can be poor due to clunky interfaces or unsafe playback behavior.
- Some tools don’t let you preview songs before playing them in-game.
- Some tools aren’t actively maintained or open to contributions.
- Some tools are closed source or paid, which limits accessibility and community involvement.
- Some tools have a steep learning curve or require technical setup, making them hard for casual users to use.
When building Auto MIDI Player, I focused on:
- Practical defaults while still giving users clear and explicit control.
- Per-song settings instead of relying on one global setup for everything.
- Multi-game support through configurable instrument and key layout definitions.
- Real-time feedback with responsive UI and playback controls.
- Safe and predictable behavior when handling window focus and active target context.
Auto MIDI Player works by:
- You, loading a MIDI file and exposing track-level controls.
- Applying per-song settings such as key, speed, transpose, and BPM.
- Translating playable MIDI notes into instrument-specific keyboard mappings.
- Scheduling note playback and sending keyboard input events to the target game window.
- Stopping or adapting playback when context changes.
If you want a deeper breakdown of how everything works under the hood, check out How it Works.
Alright, enough talk, let’s get you playing a song.
Head over to Getting Started.
Already have the app?
Skip ahead to How To Use for a full guide on playing songs.
And yeah—make sure to read the Disclaimer before using the app 👀
