Forums » General Questions » Sort songs by worst grade?

1
I'm running StepMania 5. Is there an easy way for me to add a "worst grade" sort order?

The other thing I'd like is to be able to find *all* songs of difficulty 6 or whatever, regardless of what play level it occurs in.

Thanks.
Reply
So, sorting is complicated. Right now, it's kind of a pain to add new ways of sorting because of the way the music wheel is structured, and the structure can't be changed without breaking theme compatibility.
However, I have dumped a lot of time into building a custom theme that I started because I wasn't satisfied with the way song sorting works in Stepmania.
It has probably every sorting method you could want, and if I happen to think of a new way of sorting, it only takes a few minutes of writing lua to add.
Plus lots of other useful stuff. The downside is that I spend my time on features instead of graphics, so people tend to be driven away by the lack of fancy graphics.

Due to the theme compatibility problem and the amount of work involved, it will probably be a very long time before any advanced sorting finds its way into mainline Stepmania.
< cybik> til Kyzentun fixes bugs for breakfast
--
< maxvg1> shakesoda: then why do i still play lol
<@shakesoda> because you're an ITG player. And thus, a masochist
--
<@shakesoda> Kyzentun: I think you might need to put down the meshes for a bit
Reply
Wow, that's *lovely*! I don't care about the lack of graphics at all.

I'm totally fascinated by NPS (notes per second, right?). That's what I want when I search for high bpm songs, but way better. I love it.

Problems I've encountered; I may crack open the code later, but I thought I'd mention them anyways:

1. No "lowest score" sort, as mentioned. :)
2. Score -> Any Meter would be *super* useful to me, as in "show me all 4 foot songs", but:
(a) The options are 1..9, 10, 11, 12, 13..18. That is ... not helpful.
(b) When I select 1..9, the sub-menus are crazy/broken; there like like 10 "..b" options, for example, with slightly different numbers of songs in them
(c) With the way you have modes laid out, I assume that "any meter" would include singles, doubles, and 6k; that makes it far less useful. "show me all doubles 6 footers" is *SUPER* useful, "show me all doubles or singles or 6k 6 footers", much less so
3. It would be nice if the intro movie skipped when you hit a key. :)
Reply
Don't bother cracking open the code unless you're a lua expert and you're prepared to submit pull requests on github. I can deal with that stuff after 5.0.7 is stably released.

1. The entire song list is sorted, so you should be able to go from the bottom up after sorting by score.
2a/2b. Naming buckets with abstract sorting factors is complicated. It's trying to show the range of things inside the bucket.
2c. The meter sorts go by the currently selected style. So if you're currently on a double chart, they sort by double charts.
< cybik> til Kyzentun fixes bugs for breakfast
--
< maxvg1> shakesoda: then why do i still play lol
<@shakesoda> because you're an ITG player. And thus, a masochist
--
<@shakesoda> Kyzentun: I think you might need to put down the meshes for a bit
Reply
Don't bother cracking open the code unless you're a lua expert and you're prepared to submit pull requests on github.

Not a lua expert but been programming for ages, and yes I can submit pull requests if I come up with anything.

1. The entire song list is sorted, so you should be able to go from the bottom up after sorting by score.

But if it's sorting by the *highest* grade in each song, that doesn't help. If a song has an A and a C, I want to fix the C; if it's sorting by highest grade, it'll be sorted as though it was an A.

(This is where I figured I could poke at the code: cloning highest_score() and reversing the sense of it doesn't seem obviously hard.)

2a/2b. Naming buckets with abstract sorting factors is complicated.

I imagine.

It's trying to show the range of things inside the bucket.

Yes, I get that part, but (1) grouping all songs from 1 foot to 9 foot in one bucket is useless if I want to find, say, all 4 foot songs and (2) it was literally showing the same groups of songs ("b..") a dozen or more times. I can post some video if you want; I'm really pretty sure the behaviour I'm seeing is wacky.

To put it another way: how do I find all 6-foot doubles songs, regardless of what difficulty the 6-foot is on?

2c. The meter sorts go by the currently selected style. So if you're currently on a double chart, they sort by double charts.

Oh, *neat*.

Overall I really love this theme, thank you so much!
Reply
1. It's going by a single difficulty slot, on a single style.
Each Song has multiple Steps objects. Each Steps has its own high score list in a profile. So the current high score sorting looks at the style you're currently playing, and the difficulty you pick, to find the Steps in each song that is the same style and the same difficulty, then sorts by the score at the top of the high score list for that Steps.
You're imagining a sorting method that looks at scores on all styles and difficulties, which is not what the current method does.

Grouping:
Buckets with less than 32 things inside them get joined with other buckets. Buckets with more than 64 get broken up. So if everything from 1 to 9 was put into one, you have very little of each.
The joining and splitting is meant to minimize the amount of scrolling needed to find a known song when searching.

Thanks for the comments, I rarely get any feedback on it from people who have spent more than a couple minutes.
< cybik> til Kyzentun fixes bugs for breakfast
--
< maxvg1> shakesoda: then why do i still play lol
<@shakesoda> because you're an ITG player. And thus, a masochist
--
<@shakesoda> Kyzentun: I think you might need to put down the meshes for a bit
Reply
I get what you mean about the difficulty now. Yeah, I'm afraid that for right now my experience of Consensual is "this would be fantastic for me if I sat down with it for a few hours and coded the bits I actually need". Which it's quite likely that I will do at some point. The exception is NPS, which is fantastic and seems to work exactly as I'd expect. I'm going to probably keep it as my default theme in the meantime, just to encourage myself to contribute. :D

WRT the grouping, I'm really almost certain there's a bug there; here's video (PLEASE play with sound off; my phone has issues):


https://www.youtube.com/watch?v=BTEpgpJSdlk&feature=youtu.be

Note how ".59" and "A Little Bit Of Ecstasy" (and others) show up over and over and over. I do *not* have 5 copies of ".59" (I have exactly one).

Reply
.59 has 4 charts: 1, 4, 6, and 7. So it goes into the bucket for 1s, the bucket for 4s, the bucket for 6s, and the bucket for 7s. Then the buckets for 1 through 9 got combined for having too few things inside them.
This is probably one of the cases where I should change the sort factor to not allow combining the buckets.

Some of the stuff on the music wheel might make more sense if it had an advanced mode that used a smaller font and gave more info on the items, like telling you which sort factor made the bucket.

Last edited: 30 March 2015 5:58pm

< cybik> til Kyzentun fixes bugs for breakfast
--
< maxvg1> shakesoda: then why do i still play lol
<@shakesoda> because you're an ITG player. And thus, a masochist
--
<@shakesoda> Kyzentun: I think you might need to put down the meshes for a bit
Reply