After upgrading from version 5 beta to version 6 build 147, some .OGG files used as background music no longer loop correctly. In beta 5, all songs would play fully and loop as expected except with a small (100-300ms) jog of silence at the end, but in version 6 the same songs will play only the first 1 to 2 seconds and then start over, like a record skipping.
The tracker site won’t let me upload files, so hopefully links are okay. I will leave these files up.
Here is one of the BGM files having the issue in-game, cut to loop at 1 minute 36 seconds:
See also this video. The inside of the building has music playing normally, the outside demonstrates the looping problem:
(Also Sorry for the miserable video quality, one thing I’m not is a good video editor)
The .OGG files used were rendered in a digital audio workstation’s loop mode, with the remainder of the song “wrapped” to the beginning, so in a typical audio player they should loop seamlessly and contain no silence or space at the beginning or end. I tested the problem with versions of the songs that didn’t have the ends wrapped for looping too (the song fades out instead), and it still occurred. Song tempo and song length do not appear to matter as far as which songs are affected.
The issue seemed to begin on its own after successfully upgrading my game files from version 5 to version 6 and patching to build 147. The maps and corresponding song files which behaved normally in version 5 were not altered in any way after upgrading the game and the looping issue began immediately.
If the player logs out and restarts their client while in one of the maps that is having the problem, the BGM for that map will be fixed and it will play normally again when they log back in. However it will resume the quick looping behavior once the player leaves the map, logs out while in a map that uses a different song, restarts the game client, logs back in, and finally re-enters the map that had the problem. If the player logs in while in a map that is not having the issue, any map they travel to that is affected by this problem will ‘reset’ and have the looping problem again until it is ‘fixed’ by logging out and back in there. Note that the ‘fix’ requires the client to restart as well as logging out and in.
Initially only two songs (covering a total of three maps) were showing this problem. When I removed them from the game’s ‘music’ folder and set the maps using them to have no music, a third song started having the problem in another map. When I removed that song file, three song files remained in the game and none of them were having the problem. Rendering new versions of the same song files, with different file names, to replace the ones having the issue didn’t help - the game wrong-looped them like it had with the others. I tried replacing a few of the songs having the problem with completely random music files, and the remaining songs/maps which hadn’t been having the problem started having it too.
Two other player testers used the game files on their PCs and the problem behaved identically on both of their machines.
Are there any other sources of sound on those maps?
Does it require going from a different map playing a different (or the same) song in order to trigger it?
The way you described it, particularly that restarting the client fixed “that map” makes me think this is an interaction between multiple audio sources, and depending on the answer to the two questions above it might be a failure to cleanup currently playing audio tracks.
Thanks for the response! In answering your questions, some of the maps having this problem have looping sounds (two of them use a loop of birds singing), and all of them have at least one event that triggers a short sound (a beep) to play when the player uses the action button (as do all the other maps in the game, including the ones I haven’t seen this problem on).
Unfortunately some of the other maps having this problem do -not- have any looping sound so I’m not sure if there’s any consistency across those things. One of the maps that hasn’t ever had the problem has the same looping background sound as the others that have had it.
For whatever it’s worth to know, the looping problem happens as soon as the player enters the map. I haven’t observed it starting after any player interactions with events or such. Also, I tested this out on a map having the problem, and the looping sounds always loop the way they are supposed to even when the music doesn’t. Not sure what that tells us but there it is.
As for going to a different map/different song, yes, to the best of my reckoning. The player has to travel from a map with one song to a map with a different song, and if it’s one of the maps having the issue it will trigger it as soon as the player enters the map. -Maybe-. Frustratingly enough, which songs/maps decide to have this problem on any given boot-up of the game client is really hard to nail down. I’ll start the game one time and the ‘overworld’ maps won’t be having the problem but the ‘dungeon’ map will, next time I start it up and it’s both. And this can be back to back, without changing anything in the game files.
I can also tell you that there are two contiguous maps with the same song and background sound, and they will always act in unison, so if one of them has the loop problem, the other one will too. And if the player ‘fixes’ the problem by logging back in, the connected map will be ‘fixed’ as well.
The problem isn’t totally random though: the two connected ‘overworld’ maps, and a map that serves as the entry to a dungeon, are the most likely to have the problem. There are 3 maps with other songs that almost never have the problem - two of them didn’t start having it until I started removing songs from the game’s file folders, as I described above. I tried to detail above the commonalities and differences of the songs in these maps, because in practice I can’t find anything all the ‘problem songs’ have in common that isn’t also shared with songs that don’t have the problem. Two of the songs in the game have identical BPMs, beats, lengths, and instrumentation, and one of them never has the problem, for instance.
EDIT: For reference, here’s a song that very commonly has the looping problem: https://drive.google.com/file/d/1fBWK_4vSODKd_f5qkcAl6KenZi9m3Pf5/view?usp=sharing
And here’s a song that never has it: https://drive.google.com/file/d/1MGrfsh0S7mnACZ-o4d3L_hJMDE3TZ7ly/view?usp=sharing
Same tempo, very close to same instrumentation, exact same length.
I haven’t been able to reproduce it even with your tracks so I’m thinking there’s more to this.
I added some logging into build 158 so if you could get logs from the client when this gets reproduced that would be much appreciated.
Sure thing. Although I don’t know how helpful it will be. Here’s the entire contents of a log for a session where I logged in, got the sound error to trigger, and logged back out:
2020-01-15 21:55:49.767 [Info] Connecting to localhost:5400…
2020-01-15 21:55:50.384 [Info] Connection approved [00000000-0000-0000-0000-000000000000].
2020-01-15 21:55:50.414 [Info] Connected [00000000-0000-0000-0000-000000000000].
2020-01-15 21:56:10.759 [Warn] ‘Me’ is null.
I’m not sure what the significance of the [Warn] line is, but it appeared in the same spot in a log from a session just prior to this one, where the error wasn’t happening. It didn’t trigger in any of the usual maps so I quit the game, logged back in, and there it was again.
If it would help, I wouldn’t be averse to sending a .zip of my game files so you could try it yourself. I’m fairly confident you’ll be able to reproduce it then, because several of my friends playtested the game files for me and the error happened for them too. Let me know if you’d like to try that and I’ll put it in google drive.
@PrincessNoodlelimbs You can send a zip of your game files, but do so via PM on the forum rather than here.
Also the logs needed to be specifically from build 158 or later, the logging for what I’m trying to look at didn’t exist before then.
oops. I actually remember reading that part now, but I must’ve forgotten when I sat down to open the game and get the log. My mistake.
Here’s the log from a session after patching to Build 159: https://pastebin.com/ALB96bMk
In the play session from this log, the map music I encountered looped correctly until I got to the map that was using ‘dungeon_level_1’, so that’s the one that was having the problem.
Uploaded it to our filehost just to make sure it can’t get deleted by Pastebin.
@PrincessNoodlelimbs Build 161 is currently being built (should be ready in a minute or two), with a change to the queue logic. Please let me know if this fixes the issue or if the issue is still present (and if it is still present please give me the new logs).
Patched to Build 161. On first startup, all the songs seemed to be looping correctly. On second startup, the outdoors_song.ogg one had the problem (same loop as it’s been doing, FWIW)
Here’s the log of that session: https://www.ascensiongamedev.com/resources/filehost/dc1dac6e1e5ad4d63814594de7f17aab.log
By the way, thanks for all your help on this so far. I realize this is a project shouldered by relatively few people, so the effort is all the more appreciated.
@PrincessNoodlelimbs can you check some of the maps that had the dungeon level tracks to see if those might also have an issue after multiple startups?
Also can you send a copy of the logs where nothing looped incorrectly? I’d like to compare the logs to see if I notice any patterns.
As of today I’ve patched to Build 163, and unless there’s any reason not to I’ll be trying to stay up to date - but here is the log from the previously mentioned play session from first startup when things appeared to all be looping correctly: https://www.ascensiongamedev.com/resources/filehost/a02f1204a9be7c15970d126c49c3fdae.log
From today, here’s my first bootup after patching to 163, session in which the ‘dungeon_level_1.ogg’ file wasn’t looping correctly: https://www.ascensiongamedev.com/resources/filehost/9ea092dd498fcb35236777a6c9e1e694.log
My character logged in on the ‘outdoors_song.ogg’ map, which was looping correctly. ‘dungeon_level_2.ogg’ looped correctly as well, which it pretty much always does for whatever reason.
And the next session after that, in which my character logged in on the ‘dungeon_level_1.ogg’ map, so that one played correctly. ‘outdoors’ and ‘dungeon 2’ looped correctly this time too: https://www.ascensiongamedev.com/resources/filehost/45dce28319f7c3b4b1fd2d2982aef04e.log
Next session, each of the songs plays normally again: https://www.ascensiongamedev.com/resources/filehost/4f38fd0bfb1803ca22ea2f8d05037feb.log
…And next one after that, ‘dungeon_level_1.ogg’ is back to looping incorrectly: https://www.ascensiongamedev.com/resources/filehost/f9769c9221f741b918dc901ab62042a3.log
@PrincessNoodlelimbs I made some changes in build 164 if you could try that one too.
When I started up 164, I was in the ‘dungeon_level_2.ogg’ map, but when I touched an event meant to warp the player to the map that plays ‘dungeon_level_1.ogg’, which I’ve been using to go between two of these maps since before the issue started, the client crashed.
Here’s the log with the error message in it: https://www.ascensiongamedev.com/resources/filehost/7bbd7d96800fd25672d9b1392b44877b.log
Started the client again, and when I logged in I was in the map I was supposed to warp to, the one ‘dungeon_level_1.ogg’. Music was looping correctly, but when I tried touching the event that warps back to ‘dungeon_level_2.ogg’ the game crashed again.
And the log from that: https://www.ascensiongamedev.com/resources/filehost/b4575a5c6ee2415ced201dcf91036caf.log
I tried it again with a third warp event, and it crashed again.
@PrincessNoodlelimbs I didn’t realize I had inadvertently caused an NRE in some code I changed via the IDE -- I fixed it and started a new build.
Please check in Build 166.
The warp crash seems fixed now.
Here’s the first play after patching to 166, where everything seemed to be looping correctly: https://www.ascensiongamedev.com/resources/filehost/99f3abfa94ec4b85376b69ae400878e2.log
Second bootup, though, ‘dungeon_level_1.ogg’ is back to looping wrong: https://www.ascensiongamedev.com/resources/filehost/355b8891340c721e17f65c512c6a148c.log
Third try, which was weird. The song files were looping correctly, although once when entering the ‘outdoors_song.ogg’ map from ‘dungeon_level_1.ogg’, dungeon 1 cut off abruptly instead of fading out. And when re-entering dungeon 1 from dungeon 2, one time dungeon 1 faded in, got past the point where it would loop when having the error, and then abruptly restarted itself. Log from that: https://www.ascensiongamedev.com/resources/filehost/ec8d8dea978a4f343ca6b2ebb77d311b.log
I just kicked off Build 167 with some changes to the logging because I wanted to get some more information because you mentioned the song cut off abruptly (the logs told me what is being played but not what requested it to get played, that’s been added), and some changes to generally make it easier to read (my fault for not doing this before).
I want to try something slightly differently than before though:
Follow the same route in the game each time, at as close to the same pacing as you can get it each time.
The rationale I’m going with for following the same route is that based on all of my changes so far, if you follow the same path and the logs are noticeably different (different audio calls), it should be clearer as to where the issue is. If the logs are (nearly) identical (same audio calls in the same order), this may not be an issue in Intersect, but in Monogame itself.
Gave this a try after patching to 167. I tried to walk the same path without any pauses, from the ‘outdoors’ map to ‘dungeon 1’ to ‘dungeon 2’ and then back to the starting position.
Some things to note: When I clicked the options menu to quit the game after each run, the BGM abruptly started itself over when the menu popped up. Also one of the previous things I mentioned, where the music for the previous map would fade out but the music for the subsequent map would cut in suddenly instead of fading, happened when transitioning from the ‘dungeon 1’ map to the ‘outdoors’ map.
During each of these runs, the ‘dungeon 1’ map was the only one having the looping issue, which is consistent with what I’ve observed so far, since I was starting and stopping in the ‘outdoors’ map and logging in there would prevent the problem from happening on that map.
…Also, I just now noticed that the logs after patching to 167 no longer have the song queue information. All three of them are just this: https://www.ascensiongamedev.com/resources/filehost/1a20e26f348b245f7dc9f9f8fd34c748.log
I should’ve probably checked after the first one. Oops.
:disappointed: I always forget the logging settings are different when running from Visual Studio vs running directly.
In build 170 I made it so the logs will output traces (which is what I am using to get the “where” information).
This time I tried running it as you would and verified that the expected logs are written to the file, so it should work for you. I apologize for being an idiot and wasting your time today. @PrincessNoodlelimbs
Don’t worry about it! Stuff happens.
So I patched to Build 172 for this one, and did my best to get 3 close-to-the-same routes over 3 game sessions. I did the same path I described in the above message.
Log 1: https://www.ascensiongamedev.com/resources/filehost/e292089564a7508a50bc570ca33f858c.log
Log 2: https://www.ascensiongamedev.com/resources/filehost/07021318e35f03516148cf0d9cbe729a.log
Log 3: https://www.ascensiongamedev.com/resources/filehost/38b1fef772e3704e032fa029eebbc6b6.log
UPDATE: Nevermind the “It’s not doing the short loop anymore” thing. It still is, but only with dungeon_level_1.ogg. It’s still doing it a lot less often.
Hey, I wanted to post a small update on this issue - I have been patching to later builds of the game intermittently as I’ve been working on it, and as of Build 179, the looping problem isn’t doing the same thing it did before, for myself or for a couple play testers either.
It’s actually a lot better, but there’s still a problem with the looping, it’s just harder to nail down what it is. Instead of a loop a few seconds long, it will restart the BGM abruptly at times that are spaced much farther apart but I haven’t been able to figure out if there’s any pattern to when it does or whether my character’s movement in the game is triggering it. At least once I’ve noticed the abrupt restarting happened when my character moved from one map to a contiguous one with the same BGM, so, I dunno. Here’s the log from that, it occurs near the end and it’s the ‘outdoors.ogg’ file: https://www.ascensiongamedev.com/resources/filehost/6cbb1e1b86754413e38b6cf6c4e0257e.log
Is it possible it has something to do with the fact that I’ve now added two BGMs to the game files? I say that based off the notion that the loop bug started affecting different song files when I tried removing the problematic ones.
Worth noting, I haven’t changed any of the existing maps’ songs as I added the 2 new ones to maps that were unfinished and had no BGMs assigned previously. Both of the new songs have this occasional ‘new’ loop problem. Also worth noting if I do nothing in the game for a while, the intermittent looping issue seems to stop.
@panda Look this. version 0.6.0.179
The bug still continues to repeat 2 seconds in a loop in some places.
And now there is another bug, it starts and after about 20 - 30 seconds and starts again. For this restart the music will play normally.
@PrincessNoodlelimbs In this video that I posted, it shows the opposite. The player is stopped on the map while showing images and the music abruptly restarts, so there is no need for the player to be moving from one map to another for the bug to happen as you will see in the video.
Same problem here, did you find any solution?
When cleaning up the audio code you added a ~MonoMusicInstance() method to MonoMusicSource to catch any missed Disposes. That dispose method called the static MediaPlayer.Stop() function. In the event that GC ran the Dispose after a new song had started the song would stop and then start the next time GameAudio was updated.
Also fixed is the delay between song loops, should be much closer to seamless now as opposed to a 200-300ms delay.
This is fixed in 0.6.0.185.
Forgot to add.. thanks so much for the super detailed report, with audio files, and continued feedback @PrincessNoodleLimbs! It’s not often we get such incredible bug reports and I wanted to make sure you knew that it does not go unappreciated.
So @Weylon Santana says this isn’t fully fixed:
“185 version the music bug is still in a 2-second loop, for some songs, I asked a player in my game to test it too and he reported, on my client there were different songs that entered in a loop, that were not already in his, and in his client, songs entered in a loop that my client did not enter. What’s more, every bug tracker link results in that.”
Is it working better for you @PrincessNoodleLimbs?
Well I can’t speak to different songs looping wrong, unfortunately it looks like one of the songs that’s been having the problem the most (dungeon_level_1) is still having it. Everything else seems to be okay. Which is, actually, an improvement, since I can’t get the other songs to have the problem anymore. When the song loops properly, the loop is a lot closer to seamless now, so that part is working!
(And as for the bug reporting, you’re welcome! Hopefully we’re close to having this figured out once and for all, but in the meantime I’ll do my best to keep helping)
@jcsnider If you want, I can give you a link to my game, it’s online and then you can test it for yourself, I can accompany you and tell you which songs are looping on my client so you can see which ones are looping on your client.
I havent been able to recreate this yet, but I am working on it.
We’re gonna get beta 6.1 out so we can start getting bug reports from that and I’ll continue working on this.
@Weylon Santana I’d like to take you up on that offer for a walkaround in your game.. Can you PM me a link at your convenience?
No due date set.
This issue currently doesn't have any dependencies.
Deleting a branch is permanent. It CANNOT be undone. Continue?