| Date uploaded | a year ago |
| Version | 0.0.3 |
| Download link | toes-PotatoMidi-0.0.3.zip |
| Downloads | 1583 |
| Dependency string | toes-PotatoMidi-0.0.3 |
This mod requires the following mods to function
toes-Socks
Socks is a library to facilitate joy in Webfishing mod development
Preferred version: 0.4.0README
Potato Midi
Unofficial mirror of Potato Midi release
This package exists solely for convenience of installation with mod managers. So, please -under no circumstances- do NOT contact Potato for support or file frivolous issues in their repo.
This mod takes MIDI input and allows you to configure it to various in-game sounds.
It's for power users who want to play around with a configuration file to play more than just guitar.
If you are not a power user, you should use MidiStrummer instead.
Usage
- Connect your MIDI input device before starting WebFishing.
- Launch WebFishing with GDWeave.
- Open the MIDI settings within the mod (if available) to configure your preferred instrument and vocal settings.
Configuration
Any changes made to the configuration file will take effect immediately.
Any issues with the configuration file will be logged to the console/log file.
If you want to reset the configuration file, delete the file and it'll be regenerated.
Logs are written to:
%AppData%\Godot\app_userdata\webfishing_2_newver\logs\godot.log
File location
%AppData%\Godot\app_userdata\webfishing_2_newver\PotatoMidi.json
Structure
The configuration file has the following structure:
version: The version of the configuration file.channel_mappings: A dictionary mapping logical instrument names to MIDI channel numbers.instruments: A list of dictionaries, each representing an instrument with specific properties and parameters.
Version
- Type:
int - Description: The version of the configuration file.
- Current version:
1 - Example:
"version": 1
Channel mappings
- Type:
Dictionary - Description: A dictionary mapping logical instrument names to MIDI channel numbers.
- Example:
"channel_mappings": {
"ACOUSTIC_GRAND_PIANO": 0,
"BRIGHT_ACOUSTIC_PIANO": 1,
...
}
Instruments
- Type:
Array of Dictionaries - Description: Each dictionary defines an instrument with unique properties and specific parameters.
- Keys:
instrument: The name of the instrument.- Type:
String - Description: The name of the instrument.
- Example:
"instrument": "guitar_strummer"- Type:
channels- Type:
Array of Strings - Description: A list of MIDI channel names for the instrument.
- Example:
"channels": [ "ACOUSTIC_GRAND_PIANO", "BRIGHT_ACOUSTIC_PIANO", "ELECTRIC_GRAND_PIANO", "HONKY_TONK_PIANO", "RHODES_PIANO", "CHORDS", "SYNTH_PAD" ]- Type:
- Pitch Requirement
- One of the following:
pitch_range- Type:
Dictionary - Description: A dictionary with the minimum and maximum pitches for the instrument.
- Keys:
min: The minimum pitch for the instrument.- Type:
int - Description: The minimum pitch for the instrument.
- Example:
40
- Type:
max: The maximum pitch for the instrument.- Type:
int - Description: The maximum pitch for the instrument.
- Example:
80
- Type:
- Example:
"pitch_range": { "min": 40, "max": 80 }
- Type:
pitch- Type:
int - Description: The pitch of the instrument.
- Example:
"pitch": 40- Type:
pitch_list- Type:
Array of ints - Description: An array of pitches for the instrument.
- Example:
"pitch_list": [ 40, 45, 50, 55, 59, 64 ]- Type:
- One of the following:
Instrument specific parameters
- Type:
Dictionary - Description: A dictionary of parameters specific to the instrument.
- guitar_strummer
- Guitar can only do 40-80 pitch
apply_velocity- Type:
bool - Description: Whether to apply velocity to the strum.
- Default:
true - Example:
"apply_velocity": true- Type:
- talk_effect
apply_pitch- Type:
bool - Description: Whether to apply pitch to the talk effect.
- Default:
true - Example:
"apply_pitch": true- Type:
base_pitch- Type:
int - Description: The base pitch for the talk effect. (The talk effect has been clamped between 0.5-2.0)
- Default:
53 - Example:
"base_pitch": 53- Type:
letter- Type:
String - Description: The letter to use for the talk effect.
- Default:
a - Example:
"letter": "a"- Type:
- SFX
apply_pitch- Type:
bool - Description: Whether to apply pitch to the SFX.
- Default:
true - Example:
"apply_pitch": true- Type:
base_pitch- Type:
int - Description: The base pitch for the SFX.
- Default:
80 - Example:
"base_pitch": 80- Type:
face_emote- Type:
String - Description: The face emote to use for the SFX.
- Default:
null - Example:
"face_emote": "bark"- Type:
sfx_sound- Type:
String - Description: The name of the SFX sound to play. See Valid SFX Sounds for a list of valid SFX sounds.
- Default:
bark_cat - Example:
"sfx_sound": "bark_cat"- Type:
- Example instrument configuration:
{
"instrument": "guitar_strummer",
"channels": [
"ACOUSTIC_GRAND_PIANO",
"BRIGHT_ACOUSTIC_PIANO",
"ELECTRIC_GRAND_PIANO",
"HONKY_TONK_PIANO",
"RHODES_PIANO",
"CHORDS",
"SYNTH_PAD"
],
"pitch_range": {
"min": 40,
"max": 80
},
"parameters": {
"apply_velocity": true
}
},
{
"instrument": "talk_effect",
"channels": [
"ACOUSTIC_GRAND_PIANO",
"BRIGHT_ACOUSTIC_PIANO",
"ELECTRIC_GRAND_PIANO",
"HONKY_TONK_PIANO",
"RHODES_PIANO",
"CHORDS",
"SYNTH_PAD"
],
"pitch_range": {
"min": 12,
"max": 40
},
"parameters": {
"apply_pitch": true,
"base_pitch": 53,
"letter": "a"
}
},
{
"instrument": "sfx",
"channels": [
"DRUMS",
"PERCUSSION"
],
"pitch": 35,
"parameters": {
"apply_pitch": false,
"sfx_sound": "punch"
}
},
{
"instrument": "sfx",
"channels": [
"DRUMS",
"PERCUSSION"
],
"pitch_list": [
48,
54
],
"parameters": {
"apply_pitch": false,
"sfx_sound": "tambourine"
}
},
{
"instrument": "sfx",
"channels": [
"ACOUSTIC_GRAND_PIANO",
"BRIGHT_ACOUSTIC_PIANO",
"ELECTRIC_GRAND_PIANO",
"HONKY_TONK_PIANO",
"RHODES_PIANO",
"CHORDS",
"SYNTH_PAD"
],
"pitch_range": {
"min": 72,
"max": 100
},
"parameters": {
"base_pitch": 80,
"face_emote": "bark",
"apply_pitch": true,
"sfx_sound": "bark_cat"
}
}
CHANGELOG
Changelog
v1.0.1 - Fixes
- Fixed crash when configuration file was totally invalid (#2)
- Fixed initial default configuration generation not loading until game restart (#3)
- Made it more obvious that you can click on the chat message to open your config file
- Made successful configuration reload more distinguished from error notifications (green vs red)
v1.0.0
- Documentation overhaul - check it out
- The default configuration has been supercharged and now includes most drum channel pitch assignments (by convention) - check out the new documentation regarding that
- Major changes:
- base_patch no longer defaults to a static value
- This will always default to the lowest value in your instrument's pitch range
- Omitting an instrument's pitch range will now default it to "all pitches"
- A warning will be emitted in case this was unintentional
- Your instrument names are no longer case-sensitive!
talk_effectcan now receive a list of letters["a", "b", ..., "z"]to choose from randomly when 'playing' a note!talk_effectnow defaults to randomly choosing between "a", "o", and "i"
- base_patch no longer defaults to a static value
0.0.6
- You can now put comments in your
PotatoMidi.jsonconfig without breaking the parser
0.0.4
- Swapped out BBApi for Socks
- Players will now be notified if an error occurs when loading their config.json file