Skip to content
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

Closed
AngledLuffa opened this issue Sep 30, 2015 · 10 comments
Closed

Comments

@AngledLuffa
Copy link

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.

@kyzentun
Copy link
Contributor

Split timing is where different charts in a simfile have different timing data, such as warps.
.sm files do not support split timing. If you need split timing to work, do not use .sm files.

@AngledLuffa
Copy link
Author

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.

@kyzentun
Copy link
Contributor

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.
The timing data for the song runs at 100 bpm. (god knows why, people do weird stuff with simfiles for amusement)
Would the chart be considered broken if it were remapped to 100 bpm 24ths when saved to the .sm file?
If the 150 bpm chart uses 12ths, they can't be accurate when remapped to 100 bpm, because there isn't a quantization that occurs 4.5 times per beat. Approximating with 192nds puts half the steps 4-5ms off the correct time. Is that considered broken?

@AngledLuffa
Copy link
Author

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.

@kyzentun
Copy link
Contributor

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.

@AngledLuffa
Copy link
Author

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.

@wolfman2000
Copy link
Contributor

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.

@AngledLuffa
Copy link
Author

Not sure which one of us you're asking. Mine was 8 years ago... do not still have it :)

@wolfman2000
Copy link
Contributor

Well, that answers my question. Guess I'll have to wait for a new format.

@kyzentun
Copy link
Contributor

kyzentun commented Oct 2, 2015

Disabling saving the .sm file turned out to be pretty easy. 2d64694

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants