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]

I totally just got this Hogwarts Legacy joke I totally just got this Hogwarts Legacy joke

Posted On: July 20, 2023
I have been rewatching the movies and in HP and the Chamber of Secrets, Ron goes, “Follow the spiders!? Why couldn’t it be, ‘Follow the butterflies?’” And then the reason...[More]


What *exactly* is the action - event that fixes your choice of Grimm Troupe quest? What *exactly* is the action - event that fixes your choice of Grimm Troupe quest?

Posted On: February 16, 2023
I recently found out that there are 2 options of the final portion of the Grimm Troupe content. Fight the Nightmare King. Help Brumm banish the Troupe. My wife and I have 2 saves, we've b...[More]


This is why people ship them This is why people ship them

Posted On: January 27, 2025
Question from user OCDurge at BaldursGate3 at reddit.com.Answer:At the epilogue party, Dammon writes her a letter saying he thinks about her often and basically begs her to write him back!.Answer from...[More]


Cosmoen Evolution Cosmoen Evolution

Posted On: September 10, 2023
If I evolve a Cosmoen into a Solgaleo, is there a way to get Lunala? Because my goal is to complete the Pokedex, if I evolve my Cosmoen into Solgaleo, what are the ways to get a Lunala? Question fr...[More]


After searching for demiguise statues in Hogwarts, I’m beginning to hate them After searching for demiguise statues in Hogwarts, I’m beginning to hate them

Posted On: June 19, 2023
They’re so hard to find. Question from user growinwithweeds at HogwartsLegacyGaming at reddit. Answer: If you hover over the town or area youre looking in it will tell you if youve foun...[More]


Outpost liasion simply wont go away. It has been years already! Outpost liasion simply wont go away. It has been years already!

Posted On: November 12, 2023
I've been visited once by my Outpost Liason. Nevermore any civilization traded with me. I just found the Merchant stuck on a place of my Fortress. I already broadened the way for it to go...[More]


Can you cast a Patronus Charm in Hogwarts Legacy? Can you cast a Patronus Charm in Hogwarts Legacy?

Posted On: July 19, 2023
Is it possible to use the Patronus Charm in Hogwarts Legacy? If yes, then where and how? Question from user Shaun Roselt at stackexchange. Answer: No. According to an article on videogamer...[More]


How to join distant stations in OpenTTD on Android? How to join distant stations in OpenTTD on Android?

Posted On: September 19, 2023
On desktop, if the feature is enabled and you place a station with Ctrl, the game will ask you if you want to connect it to an existing station nearby. How to do this on Android version of the game...[More]


Why does the Pokémon count show one more than the actual Pokémon I have? Why does the Pokémon count show one more than the actual Pokémon I have?

Posted On: June 17, 2023
I have 11 Pokémon, none duplicate. But the count at the top shows 12. Is this a bug, or does it count the Pokémon in the egg, too? Question from user Shaunak D at stackexchange. ...[More]


What to know for first playthrough in Hogwarts Legacy? What to know for first playthrough in Hogwarts Legacy?

Posted On: August 18, 2023
Hey, just looking for some pointers that would help me for my first time playing - mostly what decisions have a later impact on gameplay, or quality of life tips :) no spoilers would be appreciated! T...[More]