KevAquila / WEBFISHING-Guitar-Player

Tool to automate guitar playing using midi files.
MIT License
77 stars 9 forks source link

WEBFISHING Guitar Player

This project enhances the WEBFISHING game by providing a guitar-playing feature that runs in the background while you play. There is a discord server here for sharing MIDI files, feel free to join and contribute your own MIDIs.

Overview

WEBFISHING Guitar Player consists of two main components:

  1. Guitar Player: Plays processed MIDI files and .mid files as guitar sounds in WEBFISHING.
  2. MIDIProcessor: Converts and prepares MIDI files for use in the game. This is old and no longer required to use.

Key Features

Getting Started

Prerequisites

Installation

  1. Download the latest GuitarPlayer.zip from the Releases page.

Usage

Step 1: Process MIDI Files

  1. Run the MIDIProcessor executable.
  2. The program will create a "songs" folder containing the processed files.
  3. A conversion_stats.txt file will be generated, detailing how many notes were adapted or lost during processing.

Step 2: Play Guitar in WEBFISHING

  1. Start the WEBFISHING game.
  2. Launch the Guitar Player executable.
  3. In WEBFISHING, start playing the guitar.
  4. In the Guitar Player, select a song from the processed list and click "Play".

Linux

While this project does not officially support Linux, it is possible to use protontricks to run WEBFISHING Guitar Player inside of WEBFISHING's Proton prefix.

  1. Follow the normal Installation instructions above (clone/download, ensure you have a midi folder)
  2. Install protontricks (pipx install protontricks, or install via flatpak, see associated readme for more in depth instructions)
  3. cd into the folder where the .exe files are and run them like so:
    # 3146520 is WEBFISHING's steam app id
    protontricks-launch --appid 3146520 ./MIDIProcessor.exe # converts .mid files from ./midi/
    protontricks-launch --appid 3146520 ./GuitarPlayer.exe # main guitar player application; WEBFISHING must already be running

[!NOTE] When running MIDIProcessor.exe, the program wont actually exit when its done. Watch the log for it to mention writing conversion_stats.txt and then you're safe to kill it with ^C.

Important Notes

File Structure

WEBFISHING-Guitar-Player/
│
├── MIDIProcessor.exe
│
├── GuitarPlayer.exe
│
├── midi/
│   └── (Your original MIDI files)
│
└── songs/
    └── (Processed MIDI files - generated by MIDIProcessor)

MIDIProcessor Details

The MIDIProcessor is a crucial component of this project. It performs the following tasks:

  1. Reads MIDI files from the "midi" folder.
  2. Analyzes the note range of each MIDI file.
  3. Attempts to adjust the note scales to fit within the 40-79 range, maximizing the number of playable notes.
  4. Saves the processed files in the "songs" folder.
  5. Generates a conversion_stats.txt file with information about the processing results.

This processing ensures that your MIDI files are optimized for the best possible performance within WEBFISHING's limited note range.

Contributing

Contributions to improve the WEBFISHING Guitar Player are welcome. Please feel free to submit pull requests or open issues to discuss potential enhancements.