Skip to content
/ midi Public

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

License

Notifications You must be signed in to change notification settings

uebliche/midi

Repository files navigation

BANNER.png License: Non-Commercial MIT Modrinth Downloads

🎹 MIDI Plugin Message Mod

This Minecraft mod adds support for sending MIDI actions 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

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

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

Receiving on the Server

Register a global receiver in your server mod:

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

⚙️ Technical Details

  • Packet ID: midi:action
  • Codec: 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!

About

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

Resources

License

Stars

Watchers

Forks

Sponsor this project

Languages