MCMidi

Quick rating

MCMidi

No reviews yet

MCMidi is a Minecraft Fabric mod that allows you to play MIDI files in-game with high-quality sound and real-time visualization.

QoL & Tweaks
Mod Loaders
Fabric
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

Compatibility

Supported Environments

Dev Environment
Client Required
Server Unsupported

About

Project Details

Type
Mod
License
MIT License
Latest Version
karasu-lab-mcmidi-fabric 2.1.2 for MC 1.21.7
Authors
CurseForge
Modrinth

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID
Modrinth ID

Resources

External Links

Source Issues Wiki Discord

About

Description

MCMidi

MCMidi is a Minecraft Fabric mod that allows you to play MIDI files in-game with high-quality sound and real-time visualization.

Features

  • MIDI Playback: Play .midi or .mid files directly within your Minecraft client.
  • Custom SoundFonts: Support for .sf2 SoundFont files to customize your instrument sounds.
  • Real-time Visualization: A dedicated "Midi Control Center" with multiple visualization tabs:
    • Detail: Real-time MIDI message log, BPM, and playback position.
    • Nodes: Visual representation of active MIDI nodes. (Not implemented.)
    • Piano: A virtual piano roll showing active notes.(Not implemented.)
    • Waveform: Dynamic waveform visualization. (Not implemented.)
  • In-Game Configuration: Integrates with Mod Menu and Cloth Config for seamless setting adjustments.
  • Client-Side Commands: Quick control over playback using console commands.

Command Usage

Manage your MIDI playback using the following client-side commands:

  • /midi play <filename>: Plays a MIDI file from your local library.
  • /midi stop: Stops the current MIDI playback.

How to Use

  1. Prepare your files:
    • Place your .midi or .mid files in the midi/musics/ directory within your Minecraft instance folder.
    • (Optional) Place your .sf2 SoundFont files in the midi/soundfonts/ directory.
  2. Launch Minecraft: Open the Midi Control Center by pressing , (default keybind).
  3. Configure Settings: Open the Mod Menu from the main menu, find MCMidi, and click the gear icon to adjust volume or select a custom SoundFont.

Implemented Architecture

MCMidi is built with a focus on modularity and maintainability:

  • Dependency Injection: Uses an abstracted IConfigManager to handle configuration without global static state.
  • Abstracted Tab System: Leverages KarasunikiLib's ITabBar and ITabContent interfaces to provide a flexible and extensible UI.
  • Decoupled MIDI Engine: Uses the IMidiEngine interface, allowing the mod to support different MIDI drivers or external devices in the future.

Dependencies

This mod requires the following libraries:

  • Fabric API
  • KarasunikiLib
  • Cloth Config API
  • Mod Menu (Optional, recommended for configuration UI)

Contribution

Contributions are welcome! If you have suggestions, bug reports, or would like to submit a pull request, please follow these steps:

  1. Fork this repository and create your branch from master.
  2. Make your changes with clear commit messages.
  3. Ensure your code builds and passes any existing checks.
  4. Submit a pull request with a description of your changes.

For major changes, please open an issue first to discuss what you would like to change.

License

This project is licensed under the MIT License. See LICENSE for details.

MCMidi

MCMidi is a Minecraft Fabric mod that allows you to play MIDI files in-game with high-quality sound and real-time visualization.

Features

  • MIDI Playback: Play .midi or .mid files directly within your Minecraft client.
  • Custom SoundFonts: Support for .sf2 SoundFont files to customize your instrument sounds.
  • Real-time Visualization: A dedicated "Midi Control Center" with multiple visualization tabs:
    • Detail: Real-time MIDI message log, BPM, and playback position.
    • Nodes: Visual representation of active MIDI nodes. (Not implemented.)
    • Piano: A virtual piano roll showing active notes.(Not implemented.)
    • Waveform: Dynamic waveform visualization. (Not implemented.)
    • In-Game Configuration: Integrates with Mod Menu and Cloth Config for seamless setting adjustments.
    • Client-Side Commands: Quick control over playback using console commands.

Command Usage

Manage your MIDI playback using the following client-side commands:

  • /midi play <filename>: Plays a MIDI file from your local library.
  • /midi stop: Stops the current MIDI playback.

How to Use

  1. Prepare your files:
    • Place your .midi or .mid files in the midi/musics/ directory within your Minecraft instance folder.
    • (Optional) Place your .sf2 SoundFont files in the midi/soundfonts/ directory.
  • Launch Minecraft: Open the Midi Control Center by pressing , (default keybind).
  • Configure Settings: Open the Mod Menu from the main menu, find MCMidi, and click the gear icon to adjust volume or select a custom SoundFont.

Implemented Architecture

MCMidi is built with a focus on modularity and maintainability:

  • Dependency Injection: Uses an abstracted IConfigManager to handle configuration without global static state.
  • Abstracted Tab System: Leverages KarasunikiLib's ITabBar and ITabContent interfaces to provide a flexible and extensible UI.
  • Decoupled MIDI Engine: Uses the IMidiEngine interface, allowing the mod to support different MIDI drivers or external devices in the future.

Dependencies

This mod requires the following libraries:

  • Fabric API
  • KarasunikiLib
  • Cloth Config API
  • Mod Menu (Optional, recommended for configuration UI)

Contribution

Contributions are welcome! If you have suggestions, bug reports, or would like to submit a pull request, please follow these steps:

  1. Fork this repository and create your branch from master.
  2. Make your changes with clear commit messages.
  3. Ensure your code builds and passes any existing checks.
  4. Submit a pull request with a description of your changes.

For major changes, please open an issue first to discuss what you would like to change.

License

This project is licensed under the MIT License. See LICENSE for details.

Screenshots

Gallery

  • Options screen
    Options screen
  • Playing a midi file in world
    Playing a midi file in world
  • Command example
    Command example

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

<1,000
Total Downloads
CurseForge
<1,000
Modrinth
<1,000
Last Updated
CurseForge
Created
CurseForge
Modrinth
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works