Synthesia removes previous scores sometimes after 10.8 update

Trouble with Synthesia, your keyboard, or adapter? Think you found a bug?
When describing problems, always mention your OS and game version (shown at the bottom of the title screen).

If your keyboard has USB or MIDI ports, there is a tremendously high chance (>99%) it will work with Synthesia. See what you'll need on the keyboards page.
Post Reply
Pessi
Posts: 6

Post by Pessi »

So basically just what the title says, I have been using synthesia for a long time over 6 six years now. And I have some scores that go way back to that point, and for some reason now those previous scores have been disappearing sometimes when I open those songs to play them. Previously this only happened when I edited the midis, which makes sense because editing the midi actually changes the song so it makes sense to reset the scores. But now this has been happening with songs I am certain I haven't edited. Synthesia still has the data of how many times I have played each song and of course all the correct notes from those too but the actual scores of those playthroughs are sometimes disappearing now.
Nicholas
Posts: 13135

Post by Nicholas »

For years and years we've reported an error message when a data file became corrupt and could no longer be read correctly from disk. Something changed on Android recently (since around Android 10?) that has ramped up how often the data files seem to randomly become corrupt there. It's around 1% of sessions now (which is crazy).

To "fix" this (while we're still looking for the underlying cause and migrating our data storage over to a more robust solution), I just switched it over to failing to load silently and starting with a blank file instead. Now instead of a crash 1% of the time, the app at least continues to run for everyone, even if some information ends up missing. It's the lesser of two evils, I suppose.

What you're describing sounds like the scores.xml file had some trouble at some point and was reset to a blank file. Some of the other information you're describing is stored in separate files (which presumably didn't become corrupt), so it can be a little strange looking that some information is there but some isn't.

Sorry for the inconvenience! We've never been able to track it down. My hypothesis has always been something like a laptop being put to sleep or powered off while the app is running. Recently we've seen some of this happen when there is no free space left on a device (which also happens on Android all the time).

The "more robust solution" I mentioned above should prevent this type of problem outright and with any luck--after 15 years of trying to track it down--it should finally be gone forever.
Pessi
Posts: 6

Post by Pessi »

So does it create a new file for that given song and starts it as a blank. Or does it write over the previous data of that song? Or is the old data still there somewhere and could be potentially harvested back? I am definitely somewhat nervous about playing (aka opening) some of my oldest midi songs because I really would hate to lose all those scores for my playthroughs over the years. I have made back ups of the data so even if it ended up erasing all of those scores eventually I would still have those saved in another folder but I would like to avoid that anyway.
Nicholas
Posts: 13135

Post by Nicholas »

It's the worst case: the data is already all gone, but it takes loading the song and clicking through to see that it's missing. Synthesia itself doesn't provide any way to recover it, unfortunately, but if you've got backups, that would do nicely:

1. Hold your Shift key while launching the app to show the configuration window.
2. Click the "Open Data Folder" button.
3. Find the file (usually scores.xml or tracks.xml) that is suspiciously small compared to the size of your backed up version, and simply overwrite it with the backed up copy.
Pessi
Posts: 6

Post by Pessi »

Fair enough, well that does make it simple enough, it really isn't that big of a deal. Now I will just know to make sure to keep my older back up data too in case I wish to go view some of those older scores for the corrupted files. Either way the new features added in this new patch are more than enough to make up for this. I especially love that it can be put to show the performances in the order of mistakes instead of the score.
I suppose this is not really related, but is there any way to get the total amount of time played instead of total time notes held? Since Synthesia has all the data of each playthrough and how long it took you to finish each play.
Nicholas
Posts: 13135

Post by Nicholas »

Pessi wrote: 11-12-21 7:17 amEither way the new features added in this new patch are more than enough to make up for this.
To be clear, the only thing that changed in 10.8 is that the corruption is now ignored silently. It's always been there--very rarely--but it used to complain loudly and prevent the app from running. So hopefully it doesn't feel like there was a "lost data for new features" trade-off. :) I suspect the lost data was more of a coincidence near the time of your upgrade to 10.8.
Pessi wrote: 11-12-21 7:17 am... is there any way to get the total amount of time played instead of total time notes held?
This is actually something Synthesia can't easily do today. :? The length of the song is not stored by Synthesia (because it's an invariant of the song itself), so once you load something else, that length is gone. (There is also the problem of tracking how many times you rewound/looped the song, etc. but that also isn't tracked today with the "total time held" statistic, either.)

If we wanted to add a "total time played" metric, you'd have to go back through and re-load each song in turn so Synthesia could grab (and now store) that song duration. Really, an easier (and more accurate) way to do it might be to track how long the play screen has been visible and not paused. That would start the timer over from scratch though.
Pessi
Posts: 6

Post by Pessi »

Oh I suppose I had managed to avoid any corrupted files until now then, sorry for the confusion.
The reason I thought it might not be such a big task to get the total time because there is the column "time spent" after each playthrough, which takes into account the % speed which you performed the song. I suppose I could manually put in all those times together but that would probably take me tens of hours. I would just like to know if that number is anywhere close to the "notes held" time. Of course that wouldn't include all the loopings that I have done in the past and the other stuff you listed but just the total of "time spent" would be nice to know.
Nicholas
Posts: 13135

Post by Nicholas »

Ah ha, I understand what you were talking about now. The "time spent" column is shown for a particular song (not for a user profile as a whole). That makes more sense. It's because in the context of a loaded song, the song's length is available (like I'd described last time).

This isn't a perfect solution, but it's a workaround: there is a hidden/secret feature. If you double-click anywhere inside that song data table, Synthesia will copy the entire table to the clipboard in a tab-separated format that is ready to be pasted into any spreadsheet app you like. Then, you can just highlight that column and get the sum immediately.
Post Reply