Code Monkey home page Code Monkey logo

narakamidiplayer's Introduction

【 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~

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

  • 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 W11 Mica 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.

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

  • 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

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

  • Drag and drop MIDI files into the player.

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 ([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.

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

  • 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.

narakamidiplayer's People

Contributors

sabihoshi avatar davg25 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.