toes-PotatoMidi icon

PotatoMidi

Unofficial mirror of PotatoMidi

Last updated a month ago
Total downloads 990
Total rating 0 
Categories Mods Client Side
Dependency string toes-PotatoMidi-0.0.3
Dependants 0 other packages depend on this package

This mod requires the following mods to function

NotNet-GDWeave-2.0.14 icon
NotNet-GDWeave

Mod loader & runtime script patching for Godot

Preferred version: 2.0.14
BlueberryWolfi-BlueberryWolfiAPIs-1.0.2 icon
BlueberryWolfi-BlueberryWolfiAPIs

Comfy APIs for Webfishing Mods

Preferred version: 1.0.2

README

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"
      
    • 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"
      ]
      
    • 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
            • max: The maximum pitch for the instrument.
              • Type: int
              • Description: The maximum pitch for the instrument.
              • Example: 80
            • Example:
            "pitch_range": {
                "min": 40,
                "max": 80
            }
            
        • pitch
          • Type: int
          • Description: The pitch of the instrument.
          • Example:
          "pitch": 40
          
        • pitch_list
          • Type: Array of ints
          • Description: An array of pitches for the instrument.
          • Example:
          "pitch_list": [
              40,
              45,
              50,
              55,
              59,
              64
          ]
          

Instrument specific parameters

  • Type: Dictionary
  • Description: A dictionary of parameters specific to the instrument.
  1. 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
      
  2. talk_effect
    • apply_pitch
      • Type: bool
      • Description: Whether to apply pitch to the talk effect.
      • Default: true
      • Example:
      "apply_pitch": true
      
    • 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
      
    • letter
      • Type: String
      • Description: The letter to use for the talk effect.
      • Default: a
      • Example:
      "letter": "a"
      
  3. SFX
    • apply_pitch
      • Type: bool
      • Description: Whether to apply pitch to the SFX.
      • Default: true
      • Example:
      "apply_pitch": true
      
    • base_pitch
      • Type: int
      • Description: The base pitch for the SFX.
      • Default: 80
      • Example:
      "base_pitch": 80
      
    • face_emote
      • Type: String
      • Description: The face emote to use for the SFX.
      • Default: null
      • Example:
      "face_emote": "bark"
      
    • 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"
      
  • 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"
    }
}