Any way to crossfade music?

[BACK]
Any way to crossfade music?
Posted On: April 2, 2024

I would like to be able to create a music crossfade in an adventure map that I'm creating. The idea is to overlap two versions of the same song, one the "chill" version, another the "fight" version, and when a player gets in a fight with enemies, crossfade over to the fight version, as well as being able to nicely fade out music in general.


My original idea was to have 2 invisible armor stands act as the source for each of the tracks, then move the armor stands away/towards the player, slowly fading in/out each track. This actually works pretty well, but when the crossfade is over, I make the armor stand emitting the now faded-in song ride the player, so it just sticks with them. This also works, and when the player is running straight ahead, it sounds correct, but when the player strafes, it does like a sawtooth effect on the panning, and is REALLY distracting sounding. Any other ideas for a way to make this kind of thing work?


I've also tried messing with setting the attenuation_distance very high in the resource pack, but that doesn't change anything, though I suspect that it's because it only affects certain entity types anyways.


I am writing a server plugin, so I can do anything available in bukkit/paper, and am even perfectly fine doing things with ProtocolLib or other version specific hacks, but I am not expecting players to have to download a client side mod for this map.


Question from user LadyCailin at gaming.stackexchange.com.


Answer:

So, I ended up with a situation that works good enough for my purposes, but still has some drawbacks. Essentially, I place 4 entities (item displays) at the cardinal directions of the player, 10 blocks out, 5 blocks above, and start the music with each of the 4 in the same tick. This seems to reliably sync up the music. Then, every so often (4 times a second) I move the entities into the correct location again, so they are again 10 blocks out, 5 blocks up. This has a strange effect when the player spins around quickly, but actually, that strange effect happens with the rain and other sounds too, so I can live with that.


For the crossfade, this is simple, and just does the same as , I have the other set of 4 entities far enough away from the player that they can't hear them, but then move the first song's "speakers" down, while moving the fade in song's speakers up. This has a very nice fade effect, and while it is a bit jumpy, I could fix that with a higher frame rate.


Speaking of frame rates, because my "adjust position" logic only runs every .20 seconds, this method is pretty bad with flight and falling from high distances. However, you can turn the volume up, and this works well enough, since this decreases the amount of attenuation per unit moved. However, this means that the distance of the "fade out" state needs to be higher before it drops to 0. If you set that too high, this introduces a new problem with the "stowed away" speakers, which is that if the player gets too far away, they stop playing music, presumably because the client unloads them, and so also forgets that they were playing music. Thus, I have settled on just living with the fact that if a player moves fast enough, this system gets a bit janky. I may continue to improve on this later.


All in all though, this works surprisingly well, though I am excited to see how it performs with load testing.


Answer from user LadyCailin at gaming.stackexchange.com.


[BACK]
Any way to crossfade music?
Posted On: April 2, 2024

I would like to be able to create a music crossfade in an adventure map that I'm creating. The idea is to overlap two versions of the same song, one the "chill" version, another the "fight" version, and when a player gets in a fight with enemies, crossfade over to the fight version, as well as being able to nicely fade out music in general.


My original idea was to have 2 invisible armor stands act as the source for each of the tracks, then move the armor stands away/towards the player, slowly fading in/out each track. This actually works pretty well, but when the crossfade is over, I make the armor stand emitting the now faded-in song ride the player, so it just sticks with them. This also works, and when the player is running straight ahead, it sounds correct, but when the player strafes, it does like a sawtooth effect on the panning, and is REALLY distracting sounding. Any other ideas for a way to make this kind of thing work?


I've also tried messing with setting the attenuation_distance very high in the resource pack, but that doesn't change anything, though I suspect that it's because it only affects certain entity types anyways.


I am writing a server plugin, so I can do anything available in bukkit/paper, and am even perfectly fine doing things with ProtocolLib or other version specific hacks, but I am not expecting players to have to download a client side mod for this map.


Question from user LadyCailin at gaming.stackexchange.com.


Answer:

So, I ended up with a situation that works good enough for my purposes, but still has some drawbacks. Essentially, I place 4 entities (item displays) at the cardinal directions of the player, 10 blocks out, 5 blocks above, and start the music with each of the 4 in the same tick. This seems to reliably sync up the music. Then, every so often (4 times a second) I move the entities into the correct location again, so they are again 10 blocks out, 5 blocks up. This has a strange effect when the player spins around quickly, but actually, that strange effect happens with the rain and other sounds too, so I can live with that.


For the crossfade, this is simple, and just does the same as , I have the other set of 4 entities far enough away from the player that they can't hear them, but then move the first song's "speakers" down, while moving the fade in song's speakers up. This has a very nice fade effect, and while it is a bit jumpy, I could fix that with a higher frame rate.


Speaking of frame rates, because my "adjust position" logic only runs every .20 seconds, this method is pretty bad with flight and falling from high distances. However, you can turn the volume up, and this works well enough, since this decreases the amount of attenuation per unit moved. However, this means that the distance of the "fade out" state needs to be higher before it drops to 0. If you set that too high, this introduces a new problem with the "stowed away" speakers, which is that if the player gets too far away, they stop playing music, presumably because the client unloads them, and so also forgets that they were playing music. Thus, I have settled on just living with the fact that if a player moves fast enough, this system gets a bit janky. I may continue to improve on this later.


All in all though, this works surprisingly well, though I am excited to see how it performs with load testing.


Answer from user LadyCailin at gaming.stackexchange.com.


[BACK]

Sheathe wand Sheathe wand

Posted On: September 15, 2023
If there are going to be any dlc or a second game , i beg you game developers to make a button to sheathe the wand or to have it in your hand until you manually put it back . It is a nice little detai...[More]


Attention to detail is awesome! Attention to detail is awesome!

Posted On: September 6, 2023
I’ve spent a lot of time in the Middle East/Africa. There is a non spin-able globe in the headmasters office. Given that the game takes place in 1890, while it’s not 100% perfect, the glob...[More]


How do I disable radiant quests in Skyrim? How do I disable radiant quests in Skyrim?

Posted On: April 27, 2024
I'm a completist. I like to finish EVERYTHING. Skyrim creates a problem for me; it never ends.Is there a way to disable radiant quests, perhaps in the console?Is there a downside to disabling radiant ...[More]


BG3 Mod Path to Menzoberranzan demo aims for Nautiloid size BG3 Mod Path to Menzoberranzan demo aims for Nautiloid size

Posted On: March 23, 2026
Question from user Wargulf at BaldursGate3 at reddit.com.Answer:This looks so cool .Answer from user Snoo-28829 at BaldursGate3 at reddit.com....[More]


Quest for Glory 3 honey issues Quest for Glory 3 honey issues

Posted On: June 12, 2023
I'm playing Quest for Glory 3 (fully patched) in Dosbox but I'm a bit stuck. I discovered the location with the bees but had no honey at that stage. I left and the bee map marker appeared o...[More]


Change skin in cloned minecraft Change skin in cloned minecraft

Posted On: April 5, 2024
I have not really cloned my Minecraft, but kinda. On my laptop I run my Minecraft with command file (.bat) instead of the usual launcher, and on my gaming computer I run it as usual. This is so I can ...[More]


What blocks Barbarian spell casting? What blocks Barbarian spell casting?

Posted On: August 29, 2023
I have been experimenting with Karlach and a Heat build, as she has innate fire resistance. However I often encounter this when trying to use the Heat for extra fire damage. Casting spells is block...[More]


Most efficient way to tile budding amethyst? Most efficient way to tile budding amethyst?

Posted On: March 5, 2024
While it isn't possible to place, craft, or move budding amethyst in vanilla, many mods allow the player to do one or more of these things. Assuming that the player is able to freely place budding ame...[More]


How to complete the Dodgeball goal in Asphalt7Heat? How to complete the Dodgeball goal in Asphalt7Heat?

Posted On: June 23, 2023
I've completed all of the career events and all of the goals in Asphalt 7 except for "Dodgeball". The goal is:. DODGEBALL. Complete 20 Near Misses in a single event. A "nea...[More]


Why do my kneazles have the triangle at the top of their box in Hogwarts Legacy? Why do my kneazles have the triangle at the top of their box in Hogwarts Legacy?

Posted On: March 5, 2023
Why do my kneazles have the triangle at the top of their box in Hogwarts Legacy? Question from user elliebeans90 at HogwartsLegacyGaming at reddit.com. Answer: Its the part of thier tail. ...[More]