Note:
D7 here means to place the recipe json at the same relative directory as the other mod's file. So if the other mod's ID is "createcraft" then you'd place the recipe at /src/main/resources/data/createcraft/recipes not at /src/main/resources/data/yourmod/recipes
Not sure why you didn't just make the music mod have a server half to do the networking, but whatever.
Look at using IMC messages or a static field reference on your music player that holds the music player's mod instance.
You can't use static methods and fields like this. Those should all be instance methods.
You want to set a default value? Supply it in the constructor.
This is also wrong
While I haven't checked, I do believe that the player is part of the LootParameters, so the entire generated drops could be inserted into the player's inventory, and then cleared so nothing actually drops.
Not what the modifiers were intended for, but it might work.
GlobalLootModifiers are most likely the solution you're looking for. You are not required to actually modify the drops if you're only interested in knowing what dropped.
You need to listen for the PlayerEvent.Clone event, which is fired upon changing dimensions, because entities don't actually move between dimensions. They're destroyed and recreated on the other side.