sabihoshi / GenshinLyreMidiPlayer

Genshin Impact Windsong Lyre, Floral Zither, & Vintage Lyre MIDI auto player in Modern Mica UI. Supports MIDI instruments & Playlist controls.
MIT License
253 stars 44 forks source link
csharp floral-zither genshin-impact genshin-lyre midi midi-instrument music-player vintage-lyre windsong-lyre

【 Genshin 原神 Windsong Lyre MIDI Auto Player 】

A MIDI to key player for Genshin Impact's Windsong Lyre, Floral Zither, and Vintage Lyre made using C# and WPF using Windows Mica design. If you enjoyed this project, consider contributing or 🌟 starring the repository. Thank you~

Download latest version GitHub all releases GitHub release (latest by date)

2022-09-14_04-24-19

How to use

  1. Download the program and then run, no need for installation.
  2. Open a .mid file by pressing the open file button at the top left.
  3. Enable the tracks that you want to be played back.
  4. Press play it should automatically switch to Genshin Impact.
  5. 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.

Features

GenshinLyreMidiPlayer WPF_2022-09-14_04-20-22

Piano Sheet

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.

GenshinLyreMidiPlayer WPF_2022-09-14_04-27-50

Media Controls

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.

2021-05-04_13-25-52

Play using your own MIDI Input Device

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.

Playlist Controls & History

A playlist allows you to play songs continuously without having to open a new file after a song has finished.

2022-09-14_04-28-38

Hold notes & Merge nearby notes

Light Mode

You can set the player to light mode/dark mode (uses your system's theme by default.)

GenshinLyreMidiPlayer WPF_2022-09-14_04-29-00

Mini Mode

You can resize the player as small as you want and it should close the panels accordingly.

GenshinLyreMidiPlayer WPF_2022-09-14_04-21-55

Upcoming

About

What are MIDI files?

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.

Can this get me banned?

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.

Contributing

When contributing to this repository, please first discuss the change you wish to make via issue, email (sabihoshi.dev@gmail.com), 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.

Pull Request Process

  1. Do not include the build itself where the project is cleaned using dotnet clean.
  2. Update the README.md with details of changes to the project, new features, and others that are applicable.
  3. 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.
  4. You may merge the Pull Request in once you have the the approval of the maintainers.

Build

If you just want to run the program, there are precompiled releases that can be found in here.

Requirements

Publish a single binary for Windows

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.

Build the project (not necessary if you published)

git clone https://github.com/sabihoshi/GenshinLyreMidiPlayer.git
cd GenshinLyreMidiPlayer

dotnet build

Publish the project using defaults

git clone https://github.com/sabihoshi/GenshinLyreMidiPlayer.git
cd GenshinLyreMidiPlayer

dotnet publish

Notes

If you want to build using the .Net Core 3.1 SDK, you need to make a few changes to the project files.

Target Framework

Change the TargetFramework of both projects into netcoreapp3.1.

- <TargetFramework>net6.0-windows10.0.22621.0</TargetFramework>
+ <TargetFramework>netcoreapp3.1</TargetFramework>

Project SDK

Change the Project SDK of GenshinLyreMidiPlayer.WPF.csproj into Microsoft.NET.Sdk.WindowsDesktop.

- <Project Sdk="Microsoft.NET.Sdk">
+ <Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

Language Version

Change the LangVersion of both projects into preview.

- <LangVersion>latest</LangVersion>
+ <LangVersion>preview</LangVersion>

Special Thanks

License