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.
- Host: GitHub
- URL: https://github.com/KevAquila/WEBFISHING-Guitar-Player
- Owner: KevAquila
- License: mit
- Created: 2024-10-19T00:04:09.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-03T23:36:39.000Z (over 1 year ago)
- Last Synced: 2024-11-04T00:21:35.079Z (over 1 year ago)
- Language: C++
- Size: 396 KB
- Stars: 49
- Watchers: 2
- Forks: 4
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-webfishing - KevAquila's Guitar Player - Play MIDI's on WEBFISHING **without needing to mod your game, or setup loopMIDI**! (MIDI Tools / Players)
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.