PotatoMidi
Configurable MIDI playback however you see fit! Like, singing notes, playing drums with a boxing glove...
模組介紹 作者原文
🎸Potato🥔Midi🎤
This mod takes MIDI input and allows you to configure it to output through not only guitar but in-game sounds, _however you see fit..._
Like, singing, or playing drums with a boxing glove, and more...
It's for power users who want to experimenting and enjoy playing around with a configuration file to make more noises than just guitar notes!
[!WARNING]
If you are not comfortable with editing
--or learning how to edit--
a.json config file, you should use something like MidiStrummer instead.
Project
Changelog
Contributing - pull requests welcomed
Known Issues
Report an issue / Feedback
Roadmap and feature requests
Configuration
Any changes made to the configuration file will take effect immediately!
Issues with the configuration file will be logged to the log file and the player warned, if in-game (and so the chat window is visible).
_If you want to reset your configuration file to default, delete the file and it'll be recreated!._
%AppData%\Godot\app_userdata\webfishing_2_newver\PotatoMidi.json
Structure
The configuration file has the following structure:
- version: The PotatoMidi configuration-scheme version number
- channel_mappings: A dictionary mapping your chosen instrument names to MIDI channel numbers.
- instruments: A list of your instrument configurations
Version
- Type: int
- Description: The version of the configuration file.
- Current version: 1
- Example:
"version": 1
Channel mappings
These are named references, for you convenience, to map to channel numbers- you can name them _whatever you want_.
- Type: Dictionary
- Description: A dictionary mapping user-defined names to MIDI channel numbers.
- Example:
"channel_mappings": {
"acoustic_grand_piano": 0,
"bright_acoustic_piano": 1,
"banana": 2,...
}
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
- _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
]
MIDI Percussion Conventions
For MIDI Channel 10, each MIDI KEY number ("NOTE#") corresponds to a
different drum sound, as shown below. While many current instruments
also have additional sounds above or below the range show here, and
may even have additional "kits" with variations of these sounds, only
these sounds are supported by General MIDI Level 1 devices.
| Key# | Note | Drum |
| ---- | ---- | ------------------ |
| 36 | C1 | Bass Drum 1 |
| 35 | B0 | Acoustic Bass Drum |
| 37 | C# | 1 Side Stick |
| 38 | D1 | Acoustic Snare |
| 39 | Eb1 | Hand Clap |
| 40 | E1 | Electric Snare |
| 41 | F1 | Low Floor Tom |
| 42 | F# | 1 Closed Hi Hat |
| 43 | G1 | High Floor Tom |
| 44 | Ab1 | Pedal Hi-Hat |
| 45 | A1 | Low Tom |
| 46 | Bb1 | Open Hi-Hat |
| 47 | B1 | Low-Mid Tom |
| 48 | C2 | Hi Mid Tom |
| 49 | C# | 2 Crash Cymbal 1 |
| 50 | D2 | High Tom |
| 51 | Eb2 | Ride Cymbal 1 |
| 52 | E2 | Chinese Cym
安裝與使用 安裝:按包內說明操作
- 解壓本站下載的壓縮包,先讀包內的 readme / 說明檔案。
- 多數模組依賴遊戲的模組載入器:常見做法是用社群模組管理器(如 r2modman)選中本遊戲安裝,由管理器自動處理載入器與依賴。
- 手動安裝時,把模組檔案放進遊戲目錄下對應的 Mod / plugins 資料夾。
- 啟動遊戲確認載入成功;帶「前置依賴」的模組需要把依賴一併安裝。
不同模組的安裝位置差異較大,包內說明是最可靠的依據。 WEBFISHING 的模組多數需要 GDWeave 載入器,包內 readme 會說明具體位置。
下面這些內容需要先安裝,否則該模組不會生效: