A MIDI to key player for Genshin Impact's Windsong Lyre made using C# and WPF using Windows Fluent design. If you enjoyed this project, consider contributing or 🌟 starring the repository. Thank you~
Check out yoroshikun's Flutter implementation of a Genshin Lyre Player written in Dart!
- 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 it should automatically switch to Genshin Impact.
- 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.
- The ability to change the key. By default, it is keyed to C major.
- You can play multiple tracks of a MIDI file at the same time.
- You can enable transposing of notes, otherwise it will skip the notes entirely.
- Written in C# WPF with modern fluent design.
- Change the keyboard layout (QWERTZ, AZERTY, DVORAK, etc.)
- You can test out MIDI files by playing through the speakers.
- History and Settings are now persisted even if you close the app.
- You can have the lyre auto play at a specified time. This can be found inside the settings page.
Filter tracks using the search box.
The first version of the Piano Sheet has been added, this 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.
You can now control the Lyre natively by using your media controls that some keyboards have as special function keys. This integrates with other music applications as well.
If you have your own MIDI instrument, this will let you play directly to the Genshin Lyre. This lets you play directly without using a MIDI file.
A playlist allows you to play songs continuously without having to open a new file after a song has finished.
- 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 (uses your system's theme by default.)
You can resize the player as small as you want and it should close the panels accordingly.
- Drag and drop MIDI files into the player.
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 the keyboard inputs in Genshin Impact. Currently it is tuned to C major.
The short answer is that it's uncertain. I have used this in development with my own account for a week now and so far, I have not gotten banned. But 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. Here is miHoYo's response to using 3rd party tools.
When contributing to this repository, please first discuss the change you wish to make via issue, email ([email protected]), or any other method with me or the maintainers of this repository before making a change.
This project has a Code of Conduct, please follow it in all your interactions with the project.
- 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/sabihoshi/GenshinLyreMidiPlayer.git
cd GenshinLyreMidiPlayer
dotnet publish GenshinLyreMidiPlayer.WPF -r win-x64 ^
-c Release --self-contained false -p:PublishSingleFile=true
For other runtimes, visit the RID Catalog and change the runtime value.
git clone https://github.com/sabihoshi/GenshinLyreMidiPlayer.git
cd GenshinLyreMidiPlayer
dotnet build
git clone https://github.com/sabihoshi/GenshinLyreMidiPlayer.git
cd GenshinLyreMidiPlayer
dotnet publish
If you want to build using the .Net Core 3.1 SDK, you need to make a few changes to the project files.
Change the TargetFramework
of both projects into netcoreapp3.1
.
- <TargetFramework>net5.0-windows10.0.19041.0</TargetFramework>
+ <TargetFramework>netcoreapp3.1</TargetFramework>
Change the Project SDK of GenshinLyreMidiPlayer.WPF.csproj
into Microsoft.NET.Sdk.WindowsDesktop
.
- <Project Sdk="Microsoft.NET.Sdk">
+ <Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
Change the LangVersion
of both projects into preview
.
- <LangVersion>latest</LangVersion>
+ <LangVersion>preview</LangVersion>
- Credits to ianespana and their project ShawzinBot where most of the inspiration comes from.
- Credits to yoroshikun and their project Flutter Genshin Lyre Auto Player for giving ideas such as history and fluent design.
- Lantua for explaining to me music theory; what octaves, transposition, keys, and scales are.
- This project is under the MIT license.
- All rights reserved by © miHoYo Co., Ltd. This project is not affiliated nor endorsed by miHoYo. Genshin Impact™ and other properties belong to their respective owners.
- This project uses third-party libraries or other resources that may be distributed under different licenses.