Skip to content

KevAquila/WEBFISHING-Guitar-Player

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

  • Plays guitar sounds while WEBFISHING runs in the background
  • Supports MIDI notes within the range of 40 to 79 (39-note range)
  • Processes MIDI files to fit the game's musical constraints
  • Automatically adjusts note scales to maximize playable notes

Getting Started

Prerequisites

  • WEBFISHING game installed
  • MIDI files you want to play (place them in the "songs" folder) (I have included a folder of already processed songs too)

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

  • The game only supports notes from 40 to 79. Notes outside this range will be adapted or omitted.
  • The MIDIProcessor will attempt to adjust note scales to maximize the number of playable notes within the supported range.
  • For the best experience, consider arranging your MIDI files to fit within the supported note range before processing.
  • Always start the guitar in WEBFISHING before selecting and playing a song in the Guitar Player.

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.