An open API service indexing awesome lists of open source software.

https://github.com/KevAquila/WEBFISHING-Guitar-Player

Tool to automate guitar playing using midi files.
https://github.com/KevAquila/WEBFISHING-Guitar-Player

Last synced: 10 months ago
JSON representation

Tool to automate guitar playing using midi files.

Awesome Lists containing this project

README

          

# 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](https://discord.gg/7WtemYDazb) 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](#installation) instructions above (clone/download, ensure you have a `midi` folder)
2. Install [`protontricks`](https://github.com/Matoking/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:
```bash
# 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.
5. Saves the processed files in the "songs" folder.
6. 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.