midi

A lightweight Minecraft mod for sending MIDI-like actions from the client to the server via custom plugin messages.

871

Quick challenge

How far can you run before the mobs catch you?

midi

🎹 MIDI Plugin Message Mod

This Minecraft mod adds support for sending custom plugin messages from the client to the server using custom plugin messages. It can be used to control in-game instruments, sound systems, lighting effects, or other MIDI-reactive features.

📦 Plugin Message: `midi:action`

The plugin message is based on a custom payload called `MidiAction`, sent via the `CustomPayload` system.

`MidiAction` Payload Structure

```java record MidiAction( String name, int command, int channel, int data1, int data2 ) ````

| Field | Type | Description | | --------- | -------- | ------------------------------------------- | | `name` | `String` | Name of the MIDI device (e.g., "Launchpad") | | `command` | `int` | MIDI command (e.g., `144` = Note On) | | `channel` | `int` | MIDI channel (0–15) | | `data1` | `int` | First data value (e.g., note number) | | `data2` | `int` | Second data value (e.g., velocity) |

🛠 Example Usage

Sending from the Client

```java ClientPlayNetworking.send( new MidiAction("Launchpad", 144, 0, 60, 127) ); ```

Receiving on the Server

Register a global receiver in your server mod:

```java ServerPlayNetworking.registerGlobalReceiver( MidiAction.ID, (payload, context) -> { System.out.println("Received MIDI action from device: " + payload.name()); } ); ```

⚙️ Technical Details

* Minecraft Version: `midi:action` * Minecraft Version: Custom implementation using `FriendlyByteBuf` * Minecraft Version: 1.20.5+ (uses `CustomPacketPayload` API)

✅ Requirements

* Minecraft 1.20.5 or higher * Fabric (or another compatible mod loader) * A server mod that handles incoming `MidiAction` payloads

---

Got questions or suggestions? Feel free to open an issue or reach out directly!

ADS