New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Warps in a single chart in an .ssc file don't save correctly in a .sm file #810
Comments
Split timing is where different charts in a simfile have different timing data, such as warps. |
I know the split timing isn't supported, but when files are saved to both .sm and .ssc and the .sm files are broken, that can be confusing or aggravating. A friendly solution would be to map timing features in the .ssc to something playable in the .sm, such as my suggestion to remove the warped beats. A more blunt-force solution would be to simply not save a .sm file if it's going to be broken anyway. |
Remapping timing features leads to some things you might not expect, such as quantization and measure numbers changing radically. Imagine that one chart of a file runs at 150 bpm and uses 16ths everywhere. |
Hmm, I see your point. Perhaps the solution of not writing an .sm if it will be broken is better, whether or not it writes .sm files when a valid one can be created. I would say that an approximation which is 5ms off 50% of the time would be considered incorrect. It does segue into a feature request I had once (rejected years ago, but maybe opinions have changed) of making it so that the reader can handle notes of any width. The editor wouldn't have to support it, it would just be a hidden feature for hand edited files. An example of how that would be useful would be for "I'm Too Sexy" by Right Said Fred, which has 5th notes (40th notes in the StepMania parlance). But back to the topic at hand, I would say your example would be broken without the arbitrary note width feature, and any broken file would be saved without an .sm. |
Arbitrary note width would be nice, and I've written a noteskin format that supports it. The other obstacles I know of offhand are the simfile format and the internal data format. You can look at the new noteskin format in a thread I made on the stepmania forum. I'll see how much work it is to disable .sm saving for simfiles with split timing. Maybe it will be easy. |
The simfile format shouldn't be a problem. Both .sm and .ssc determine note width by counting the rows. There is a certain sanity checking in terms of only allowing certain note widths, so maybe a field/flag would be needed to turn on unusual widths. I do recall something about an enum being used for knowing which note width is being used. Perhaps that can just be replaced with an integer. I have no idea how complex that "replace" would be. |
Do you still have the PR for the arbitrary note-th position? I have a slight interest in that, but it was due to another song. I believe StepMix 4 had a song in 5/4 time, but using 5ths, 10ths, and 20ths is currently impossible with a rhythm based skin. I would like to see it changed, but I'm not sure how quickly that can happen. |
Not sure which one of us you're asking. Mine was 8 years ago... do not still have it :) |
Well, that answers my question. Guess I'll have to wait for a new format. |
Disabling saving the .sm file turned out to be pretty easy. 2d64694 |
To reproduce, make a normal stepchart with no warps. Then, on a single chart, add warps. Make sure to keep the other chart wart free. When saved to an .sm file, the charts without warps will be normal, and the chart with warps will have extra beats where the notes should have been warped over, making the chart broken.
My suggestion for a fix is that if an .ssc file has some charts with warps, and others without, then the charts with warps are treated as if the beats between the start and the end of the warp don't exist.
I can produce an example chart if that helps. Is linking to sites which provide unlicensed music discouraged? I don't want to get anyone in trouble, either on github or on the site in question.
The text was updated successfully, but these errors were encountered: