HomeJavaModsNotematic Player
Notematic Player
ModsJava

Notematic Player

by Cayde26 · on Modrinth

A companion Minecraft audio player plugin and API that plays custom note block music sequences exported from Notematic Studio with offline sync…

⬇ Download on Modrinth
Notematic Player — screenshot 1

Notematic Player

Modrinth Downloads Minecraft Version Support Server Software

Notematic Player is a Minecraft Java plugin designed as the companion player for Notematic Studio. It plays custom note block music sequences exported from the studio in .json or .mcfunction formats directly to players or positionally in the world. Beyond standard note block sounds, it can also play any in-game /playsound audio (including custom resource pack sounds) directly.

Features


Official Addons

Notematic Vocoder

An official sub-addon built on top of Notematic Player's engine. It uses Digital Signal Processing (DSP) to analyze Text-to-Speech audio, extract formant frequencies, and dynamically map them to Minecraft's sound system, allowing note blocks to "talk" in real-time.


Commands & Permissions

Command Permissions Short Description
/notematic [help] notematic.use Displays plugin info, status, and commands menu.
/notematic play <song> [target] [loop] notematic.use
notematic.play.location (for at ...)
notematic.play.loop (for loop)
Plays a song for yourself, a target player, everyone, positionally at a 3D location, or via a moving radio.
/notematic stop [#ID | song | player] [at <x> <y> <z>] notematic.use Stops active playbacks (by ID, song, player, or coordinate).
/notematic seek <#ID | song | player> <value> notematic.use Seeks forward, backward, or to an absolute time in a playback.
/notematic pause [#ID | song | player] [at <x> <y> <z>] notematic.use Pauses active playbacks.
/notematic resume [#ID | song | player] [at <x> <y> <z>] notematic.use Resumes paused playbacks.
/notematic volume <value> notematic.use Sets your own personal listening comfort volume (0-100%).
/notematic volume #ID <value> notematic.use Sets a temporary volume multiplier for a specific active playback instance.
/notematic volume song <name> <value> notematic.admin Sets a song's global volume multiplier (Admin only).
/notematic list notematic.use Lists all loaded public (and private if admin) songs (names are clickable to play).
/notematic active notematic.use Shows all currently playing songs with real-time status.
/notematic commands [true | false] notematic.admin Toggles or sets player command usage globally (Admin only).
/notematic reload notematic.admin Stops all active songs and reloads the song folder (Admin only).
/notematic create <name> <url> [opts] notematic.create Downloads and converts a MIDI file asynchronously.
/notematic rename <old> <new> notematic.admin Renames a song file on disk and in the cache (Admin only).
/notematic admin <action> ... notematic.admin Manages pseudo-admins (Admin only).
/notematic blacklist <action> ... notematic.admin Manages player command blacklist (Admin only).
View Detailed Command Instructions & Examples

Play Command

Starts playing a song. Playback can target yourself, other players, all online players, a physical 3D location, or as a portable radio following you.

Stop Command

Stops active playbacks. Resolved dynamically in search order:

  1. Unique ID (#ID): Stops a specific instance (e.g. /notematic stop #3).
  2. Song Name: Stops active playbacks of that song.
  3. Player Name: Stops playbacks listening on that player.

Seek Command

Seeks playbacks forward, backward, or to an absolute time.

Volume Control

MIDI Creation

Downloads and converts a MIDI file asynchronously. It defaults to the stitching (Makeshift Hack) approach and nolimit (no ticking speed limit), saving files to the public directory.

Finding & Hosting MIDI Links:

  • BitMidi: Find free MIDI files on BitMidi.com (e.g., https://bitmidi.com/scotsong-mid). Right-click the Download MIDI button and copy the link address.
  • Google Drive: Upload your MIDI file to Google Drive and share it so "Anyone with the link can view". Copy the shareable link (e.g., https://drive.google.com/file/d/FILE_ID/view), and use a direct link generator like Lonedev's Google Drive Direct Link Generator to get a direct download link (e.g., https://drive.google.com/uc?export=view&id=FILE_ID).
  • GitHub: Upload your MIDI to a public repository. Navigate to the file on GitHub and click the Raw button (or right-click it) and copy the link to get the direct raw URL.

Rename Songs

Renames a song file on disk (both public and private directories) and updates all memory and base volume mappings. (Requires Admin).

Pseudo-Admins Management

Grants administrative privileges for Notematic Player commands to standard players without needing server-level operator status (OP). (Requires true Admin).

Command Blacklist

Blocks specific players from using any Notematic commands. The blacklist persists across server restarts. (Requires Admin).


Compatibility & Platforms

Notematic Player runs entirely server-sided, meaning vanilla clients do not need to install any mods to hear the music. It is natively compatible with 1.20.6 and 1.21 - 26.2.x on:


Music File Formats & Organization (.json / .mcfunction)

Place your music files in plugins/NotematicPlayer/songs/.

JSON Format

{
  "tempo": 1.0,
  "notes": [
    {
      "instrument": "harp",
      "note": 1.4142,
      "volume": 0.8,
      "when": 0
    },
    {
      "instrument": "bass",
      "note": 0.7071,
      "volume": 0.6,
      "when": 5
    }
  ]
}

Datapack Format

If you drop an .mcfunction file into the songs folder, the plugin scans for storage modifications to parse the JSON:

data modify storage music sheet set value {"tempo":1,"notes":[{"instrument":"harp","note":1.4142,"when":0}, ...]}
Developer API Reference

Retrieve the plugin instance from Bukkit's plugin manager:

import me.cayde26.notematicPlayer.NotematicPlayer;
import org.bukkit.Bukkit;

NotematicPlayer api = (NotematicPlayer) Bukkit.getPluginManager().getPlugin("NotematicPlayer");
if (api != null && api.isEnabled()) {
    // Play a song positionally for a player without chat messages
    api.playSong(player, "mysong", false, true);

    // Stop active playbacks for a player
    api.stopSong(player);

    // Get/set a player's personal volume multiplier
    double playerVol = api.getPlayerVolume(player);
    api.setPlayerVolume(player, 0.85);
}

Available API Methods

Playback Control

Status & Query

Volume Adjustments

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more