Using the /music command to play a song localizes the music in the world at the location the command was run. The song becomes quieter as the player moves away and stops beyond its normal attenuation distance (64 for music discs, 16 for other tracks).
This makes the /music command useless for custom maps because the /music songs do not actually act like ambient music.
Expected Result
Music played with /music should be heard by all players in the executing dimension, regardless of their current location.
Observed Result
Music played with /music is localized to a certain location, so it fades after 16 blocks (64 for music discs).
To Reproduce
Create a flat world in Creative mode.
Run the command "/music play record.wait 1".
Move 64 blocks away. This matches the attenuation distance of the record.wait sound event.
The music can no longer be heard.
I have discovered the exact same issue, but I have found a solution using a custom resource pack.
In the sound_definitions.json file, you can define a sound effect or music to have a max-distance. Looking at existing sounds, effects have a distance of 16.0 and music has a distance of 64.0, which matches your observations.
You can create your own resource pack with a custom sound_definitions.json file that gives alternative options for each sound you want to play without fading.
This gives 2 options, either you can set the category to “music” which defines it as an ambient sound. This is ideal if you want all players to hear the sound. For example:
Or, for each sound, set the max_distance to a higher number. This is better if you only want players in the region to hear the sound. For example:
Use the option that best suits your world. Once you have loaded this resource pack into your world, you can use "/music play record.wait_custom 1" to play it and it will sound equally.
See https://learn.microsoft.com/en-us/minecraft/creator/documents/addcustomsounds?view=minecraft-bedrock-stable for more detailed instructions.
If you don’t want to use a custom resource pack, then I would suggest using multiple /playsound commands, each using locations are 16 (ir 64) blocks apart. This should give an even sound between these locations.
Mojang - despite this solution, I don’t think this command is working perfectly as expected. The sound always emits from the player’s location at the time the command was set. If the music is on loop then it plays from the new location of the player at the point the music restarts, meaning the music will suddenly startup again on full volumne. In reality, I have no control where to make the sound emit from. It only works ideally when using a sound that is specifically designated as “music”
I would expect that /music should always ignore the settings in the sound and play evenly to all players. I would use /playsound if I wanted it pinpointed to a location.