# LiveMusicalInstruments
## 关于
一个允许你在游戏中实时演奏电子乐器并将表演广播给其他玩家的Minecraft插件。
**注意:**
此插件**不适用于大多数共享Minecraft主机提供商**,可能需要一些基本的计算机技能(运行Python脚本、配置路由器、编辑JSON文件)。
该插件最初是为个人使用而开发的,现在已公开并可配置为您的设备(目前仅支持鼓),以及您的音频设备。
由于电子设备将信息传输到Minecraft服务器,因此在演奏和听到音频之间可能会出现一些延迟。
由于Minecraft不允许音频流媒体,因此**使用MIDI代替**,并结合资源包内的音频套件(已包含默认的鼓套件)。
未来的更新可能会根据用户的要求添加对其他乐器的支持。
## 下载
`LiveMusicalInstruments.jar` 插件 [[在Modrinth上下载](https://modrinth.com/plugin/live-musical-instruments)] [[在GitHub上下载](https://github.com/TheoDgb/LiveMusicalInstruments/releases/tag/v1.0.0)]
为了正常工作,此插件需要:
- 一个 `LiveMusicalInstrumentsPack.zip` 服务器资源包 [[下载](https://github.com/TheoDgb/LiveMusicalInstruments/releases/download/v1.0.0/LiveMusicalInstrumentsPack.zip)]
- 一个 `ListDevices.py` 脚本,用于检测你的MIDI连接模块的确切名称 [[下载](https://github.com/TheoDgb/LiveMusicalInstruments/releases/download/v1.0.0/ListDevices.py)]
- 一个 `LiveMidiToMinecraft.py` 脚本,用于捕获和将MIDI数据发送到插件(已在Windows 10上测试) [[下载](https://github.com/TheoDgb/LiveMusicalInstruments/releases/download/v1.0.0/LiveMidiToMinecraft.py)]
- 用于运行这两个脚本的Python [[下载](https://www.python.org/downloads/)]
## 安装
该插件会打开一个 **WebSocket服务器** 来接收脚本发送的MIDI数据。因此,您需要在路由器上配置一个 **NAT/PAT FTP数据规则** 在 **3000 TCP** 端口。
1. 通过MIDI将您的设备连接到您的电脑。
2. 运行脚本 `ListDevices.py` 以检查您的设备是否被检测到并获取其确切名称。
3. 在您的路由器上创建一个 **3000 TCP** 端口的NAT/PAT FTP数据规则。
4. 使用文本编辑器打开脚本 `LiveMidiToMinecraft.py` 并配置以下内容:
- 你的Minecraft服务器的公共IP地址和 `:3000`
- 你的Minecraft用户名(以便声音从你在游戏中的玩家处传播)
- 你在步骤 2 中检索到的MIDI设备名称
> 默认情况下,该插件配置为Alesis Crimson II鼓组。 您可以通过编辑 `NOTE_MAP` (仅修改数字,不要修改名称)来配置您自己的设备。如果需要,还可以自定义其他参数。
5. 将 `LiveMusicalInstruments.jar` 安装到Minecraft服务器的 `plugins` 文件夹中,并启动服务器一次以在 `plugins/LiveMusicalInstruments/` 中生成配置文件。
编辑(更改后重启服务器)。
6. 将 `LiveMusicalInstrumentsPack.zip` 资源包下载到你的 `.minecraft/resourcepacks/` 文件夹中。
已经有一个默认套件,
对于自定义套件:
- 在你的资源包中,在 `assets/minecraft/sounds/drums/` 下,创建一个与 `drum_kit_default` 相同结构和命名规则的文件夹。
- 然后,在 `assets/minecraft/sounds.json` 中,按照 `drum_kit_default` 示例添加你的自定义音频文件。
- 在 `config.yml` 中配置你的自定义套件。
7. 在Minecraft中运行 `/live start drums`,然后启动 `LiveMidiToMinecraft.py`。
Minecraft聊天中应该会出现一条消息,确认你已连接并且准备好演奏。
(所有玩家必须在他们的`.minecraft/resourcepacks/`文件夹中安装资源包,才能听到你的演奏。)
`/live stop drums` 停止。
如果出现WebSocket服务器仍在运行的错误,请重启服务器并正确关闭WebSocket。