This mod adds musical instruments that allow you to play music in MML format. This is a format already used in some popular online games so there are many tunes available or you can create your own. You can play solo or in groups of up to eight players.
Java Profiler provided by ej-technologies GmbH
If you experience a crash, PLEASE open an issue and include crash logs.
1.16.5 port is in progress.
I've released a 1.7.10 version named mcJammer. It is the precursor to mxTune but it's very far behind in terms of features. There are no recipes for any of the items for the mcJammer version.
Videos
Basic Usage
mxTune Spotlight by LeKoopa
Demo of the new MML Simple Editor Dialog
Recipes
1.12.2-0.8.0-beta.10+ version Recipes
Pre 1.12.2-0.8.0-beta.10 Recipes.
How to use it
Grab some Music Paper from Creative mode or craft it from four pieces of paper and one ink sack.
Hold the Music Paper in your main hand and right click air to open the dialog. If you hold an entire stack you will create a stack of the same piece of music. Enter a title in the upper text box and paste or type well formed MML into the center text box. The Done button will not activate if the MML entered does not contain a proper header "MML@" and and ending semi-colon ";". The MML is parsed in real time and it cannot be saved it there are errors. Errors will be displayed in red. Click on an error and the cursor in the editor will move to the error. If the MML parses without error the Play button on the left can be used to play the MML. A choice of instruments is listed on the left.
GUI appearance depends on the version you are using.
Click OK and the item changes into a piece of Sheet Music.
Play Solo
To play the enclosed MML, the Sheet Music must be placed into the inventory of an instrument. Hold an instrument, then SNEAK and Right Click. Place the Sheet Music into the slot and close the inventory.
To play the instrument, hold it in your main hand and simply Right Click to activate. While playing you will be unable to move. If you want to stop playing you can press the ESC key. While holding an instrument the HUD will display the title and status in the upper left hand corner of the screen. This is currently hardcoded, but I intend to make if possible to configure the HUD layout.
Piano Usage
Piano Interactions. The piano does not have a inventory GUI like the handheld instrument. Once it's placed into the world it works like this
- To place Sheet Music on the Piano Rack, hold a piece of Sheet Music in your main hand and right click the the piano.
- To sit at the piano, right click it with your main hand. Note you can't sit at a piano unless there is a piece of Sheet Music on the rack. To dismount press the left shift key. To REMOVE a piece of Sheet Music SNEAK and right click the piano.
- To play the piano there must be Sheet Music on the rack and your must be sitting at the piano, then right click the piano to begin playing.
This is going to be a bit buggy since I just added this new block instrument recently. It made me realize I need to review the current system and refactor it to make it cleaner. There are blatant holes in various interactions. See if you can find them.
Music Options
Latest development release - Mute Options added. Currently on the "P" keybind.
Intended for multiplayer mode of course. At the moment players must be online for you to move them to the desired list.
Here's a run down of the Mute options (Changes with each click of the button):
- Mute Off - You can hear everything.
- Mute Others - Just hear yourself. Others can still hear you though. You can't JOIN a JAM.
- Mute Blacklist - Hear everyone except members on the Blacklist. You can still hear them if they are a member of a JAM, but not if they are the leader of the JAM.
- Allow Whitelist - Only hear yourself and music from players on the Whitelist. If a member is the leader of the JAM then you will hear ALL the members of the JAM.
- Mute All - effectively disables all MML Music.
None of the options will STOP currently playing music, but they will prevent you from hearing newly launched tunes.
Other controls:
- Arrow Buttons ">", "<" - Situated between the lists, these are used to move players between the lists. Click on a player to select them, then click the appropriate arrow button.
- Adjust HUD - Change the location of the on-screen status widget.
- Done - Make sure to click this to save your changes.
- Cancel - Abort changes and return to the game.
Once again I expect there will be some missed cases. I'm already aware of a few and will keep working to fill in the gaps.
Parties
A basic party system was created that does not rely on the vanilla teams system. A party can have up to eight players. Members can be removed or promoted to leader. A member may leave at will. If a member dies or they leave the game they are ejected from the party automatically. Members of a party cannot sleep.
Create a Party
Press "J" to create or open an existing party. If it's a new party you are the leader and your name will be at the top of the list once you click Create.
Join a Party
Parties are not secure at this time so anyone can join. Security will be added later. To join a party look for a player with music note placard over their head and Right Click on them. You will be presented with a dialog that gives you the options to join the leaders party
To Join the party Right-Click the leader.
Click Yes to join the party.
Welcome to the Group!
Group Members. Note the Party HUD upper left. The leaders placard has a star.
Leaders Party Dialog (J to open). Note the small buttons to the right of the 2nd member. The leader can (D)elete, or promote the member to (L)eader.
Members Party Dialog (J to open)
Playing Music while in a Party (Jam Session)
The purpose of the group play is to ensure players are synchronized when they play. The leader initiates the start of the session, but before that can happen all the other members need to queue up their parts. The process is the same as playing solo: Place the music in the instrument inventory, then while holding the instrument right-click the air. While in a group as a non-leader your placard will turn green, but you will not begin to play. Once everyone is ready, the leader just starts to play the usual way and all the member start to play.
Re: Uploaded a new jar with crash fix. mxtune-1.16.5-2.0.0-alpha-2023-03-17.29988232.jar
Here's few of the WIP features in the snapshot besides the NPE fix.
---- The Sheet Music item has been around for a long time, but I wanted an item that holds an entire score. You can now choose to write a Music Score item. It will contain all the instrument parts. It will consume one piece of Music Paper per part. Currently you can't use the Music Score for anything. It's Right-Click and Shift-Right-Click actions are: Right-Click: create a group; and add a summoned chicken to it. Pretty silly, but it's just a dev test; Shift-Right-Click will remove yourself from the group. When grouped a placard will appear above your head as shown in Post 254 below. Please ignore my ugly textures for now. They will be improved.
---- I added an optimization where the server will send the client the actual MML once per play ID. The client generates a MDI sequence and caches it until the duration of the tune expires. This can potentially save some bandwidth and CPU time since the MML only has to sent and parsed once. So moving between venues and the open world where other mxTune are playing should be less taxing on the client and server. Groups for JAMS are WIP.
---- There are no GUIs for managing groups yet.
---- The Sheet Music items you have will probably break with this snapshot. The NBT has changed to include more metadata related to the recommended instrument and how it's displayed in the tooltip. Sorry, but you will have to recreate your sheet music if you upgrade from the previous snapshot.
(I really hate the fact that bullet point don't display after you post a comment. I'm not too happy with the CF beta pages at this point. I've started looking into modrinth)
Hey there, Aeronica.
Are the plans to update to a 1.16+ version still imposible?
In reply to JedY_BoY:
The differences between 1.12.2 and 1.16.5 are significant. I've been working on the 1.16.5 port for over 2 years. Please remember this is a hobby for me. Mojang keeps many developers and artists busy and current java edition is racing. I will probably never port to 1.19.x. Many large modding groups have pro-level coders. I'll plug along at my pace. Group JAM will be available soon.
Uploaded a new jar with crash fix. mxtune-1.16.5-2.0.0-alpha-2023-03-17.29988232.jar
Fix NPE in MusicVenueRenderer (First attempt)
Re: "hello. music venue tool crashes if used by users. after logging in and clearing the inventory the tool crashes the game simply by dragging and dropping into the inventory."
java.lang.NullPointerException: Unexpected error at aeronicamc.mods.mxtune.render.MusicVenueRenderer.lambda$null$2(MusicVenueRenderer.java:41) ~[mxtune:2.0.0-alpha-2022-10-02.26788435] {re:classloading} at java.util.stream.ReferencePipeline$2$1.accept(Unknown Source) ~[?:1.8.0_331] {} at java.util.stream.SortedOps$SizedRefSortingSink.end(Unknown Source) ~[?:1.8.0_331] {} at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:1.8.0_331] {} at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:1.8.0_331] {} at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source) ~[?:1.8.0_331] {} at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source) ~[?:1.8.0_331] {} at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:1.8.0_331] {} at java.util.stream.ReferencePipeline.forEach(Unknown Source) ~[?:1.8.0_331] {} at aeronicamc.mods.mxtune.render.MusicVenueRenderer.lambda$render$4(MusicVenueRenderer.java:41) ~[mxtune:2.0.0-alpha-2022-10-02.26788435] {re:classloading} at java.util.Optional.ifPresent(Unknown Source) ~[?:1.8.0_331] {}
There are other changes in this new jar that I'll discuss when they are in a more complete form in a later update.
Working on groups (JAM sessions) for 1.16.5. Here I grouped with a chicken. Hehe! Short on members to play your masterpiece? Summon a creature or mob to fill in perhaps :D

Working on some drawing primitives for the information panel. Lines, borders . . .
Begin work on the music venue information panel. It's based on the vanilla painting.


Another testing using color bars and full bright lighting
Working on the text overlay. Test worlds get rather messy.
Started work to add a "Music Score" item. It will store a multi-part song of up to 16 parts.

It is SOOOOOOOOOOOO great so that I could create music easier in MC
2022-10-02 snapshot mxtune-1.16.5-2.0.0-alpha-2022-10-02.26788435

No new snapshot yet. I've been making some minor fixes and optimizations to the 1.16.5 mxTune code while considering how I want to handle group playing. Looking over the 1.12.2 version code to remind myself how it works.
Hey, can you maybe add some more wave instruments? its kinda hard to recreate anything that isnt SNES related musically
In reply to devintheundertalefan:
What version of mxTune are you referring to. The sound font used has changed over time. The 1.12.2+ versions use a sound font I made based on the "GeneralUser GS v1.44" found at http://www.schristiancollins.com. That was modified to add Mabinogi instrument types (note ranges, breaks, etc.). It was mostly made to work okay with Mabinogi, Maple Story 2, and ArcheAge instruments.
In reply to Aeronica:
I'm talking about the 1.12.2 version
Snapshot today: mxtune-1.16.5-2.0.0-alpha-2022-08-07.46813887
Twitter Video.
Is there any plans for a feature where you can loop/repeat a music once it ends and/or have the music play where it was stopped if you switched what you're holding?
Is there any plans for a feature where you can loop/repeat a music once it ends and/or have the music play where it was stopped if you switched what you're holding?
In reply to Zukane2:
Swapping between playing instruments on the hot-bar and continuing where they left off. Not impossible, but what is the use case?
The Music Block is pretty crude at the moment. The 1.12.2 Band Amp allowed external inventory operations using the Vanilla Hopper. I tried using that to swap out all the instruments, but it was rather difficult to use. You can arrange a series of Music Blocks to play in sequence using the red-stone input and output options. Not
ideal. I take it you are more interested in a placed and/or portable MML boombox. Perhaps more alone the lines of Etched
Playlists of mxTunes mxt and midi files are possible.
Before I move on to implementing automated playlist I need re-implement to group JAM playing.
In reply to Aeronica:
Sorry I wasn't being clear with what I said. I mainly use the instrument on-hand like harp since I play "bard" character in our sevtech ages session even though theres no buff with me just playing. When playing the music and getting attacked by a mod I have to switch to a weapon, kill it then switch back to the instrument but I have to start from the start again which is the reason for the suggestion. I tried using the instrument on the off-hand so I can have a weapon ready while playing the music but seems like playing on off-hand is not supported.
For repeat/loop I was suggesting if its possible to have the instrument at hand to repeat the music sheet thats being used so we don't have to keep playing it after it ended (useful if MML file is setup for a perfect loop). Just a nice to have feature.
In reply to Zukane2:
It's a reasonable request to add party effects to instruments. Not sure what sort of way I could associate particular MML sheet music with party effects at this point. A future project for a new mod dedicated to that. But I think there was an Ocarina mod that allowed a player to play tunes to affect the weather and such.
In reply to Zukane2:
ive actually made a system that does exactly this, I used a trapdoor placed on the top part of a block with an observer facing it with a redstone line going into the back of the amp