Logo

Stepmania Groove Radar help

Register Log In Back To Forums

Post #1 · Posted at 2014-04-19 03:59:38am 9.9 years ago

Offline denjinenmac
denjinenmac Avatar Member
221 Posts
Philippines
Reg. 2012-04-02

Game Center Nickname: denjinenmachina
"Ka-n-ko-re"
The Groove Radar in Stepmania seems to give wrong values to most boss songs (most of which having the max value). For example, Valkyrie Dimension's Challenge chart has the following Groove Radar Values in integers (I will use DDR 2013 Groove Radar values):

http://i.imgur.com/khU3j16.png

Stream: 145
Voltage: 143
Chaos: 154
Air: 71
Freeze: 55

http://i.imgur.com/QIGYoDr.png

While Magnetic's Challenge has:
Stream: 121
Voltage: 114
Chaos: 113
Air: 25
Freeze: 69

It seems like Stepmania Groove Radar calculations are based off the older mixes I want to change it to its current values. Is there a way to change the values?

Beofre I forget, I am using Stepmania 5 beta 3.

Post #2 · Posted at 2014-04-19 04:12:19am 9.9 years ago

Offline mf32892
mf32892 Avatar Member
858 Posts
United States
Reg. 2014-01-01

"hi"
I have no idea how to fix this, but the Groove Radar was bothering me, too.
I think there are completely different formulas in StepMania than the AC DDR games.

I've noticed that Freeze is especially off, for example Under the Sky's Heavy Freeze value is 100+ in AC DDR yet StepMania thinks its ~50. I'm guessing that in StepMania, Freeze is mainly based off of the numberof Freeze Arrows in the song, rather than the total length.

Maybe there's something in the coding that can be changed? Metrics ini. or something? Not really sure if there's something in that file for Groove Radars.




Check out my YouTube channel! (Playstyle DDR videos) : http://www.youtube.com/user/barrendon649?feature=watch

Post #3 · Posted at 2014-04-19 04:59:47am 9.9 years ago

Offline dbk2
dbk2 Avatar Member
332 Posts
Not Set
Reg. 2012-04-30


Last updated: 2014-04-19 05:03am
This is (probably) not the answer you're looking for, but hopefully it will help shed some light on this.

Most of SM's current/active development team is either unfamiliar with the particulars of DDR or is more interested in taking StepMania in completely new/different/unique directions. The future of SM currently looks something like this:
http://www.stepmania.com/wiki/devpages/roadmap/

"Currently" is really the keyword, however. StepMania is an open-source software project. Where it goes is largely up to the people that contribute to it. If you're interested in seeing a certain feature implemented, and know a little C++, you can play with the codebase, submit a pull request on GitHub, and directly impact the future of StepMania. Lots of people have done this already; nearly every single post beta 3 update has been submitted as a pull request!

A little bit of the existing GrooveRadar is documented here: http://kki.ajworld.net/wiki/Theme_Element_Library/GrooveRadar

The underlying source code that controls how the GrooveRadar works is here: https://github.com/stepmania/stepmania/blob/master/src/GrooveRadar.cpp

Finally, it may be worth noting that you will soon (as of beta 4) be able to create your own GrooveRadar themeside without touching the C++. (Lua is generally easier to learn than C++.) Mad Matt and Kyzentun have been working really hard at adding a new feature for beta4, ActorMultiVertex, which will allow themers to draw arbitrary polygons with Lua. I suspect this feature could effectively supplant the existing GrooveRadar with some appropriately thought out Lua.

If you think you would like to help contribute to making a new GrooveRadar, let me know. Between all of us here, we can probably figure something out. Smile

Post #4 · Posted at 2014-04-19 05:14:22am 9.9 years ago

Offline HealingDMax300
HealingDMax300 Avatar Member
696 Posts
United States
Reg. 2012-12-01

I have been wanting to know if this is possible too (if the GR calculations for SM can be can exactly like the official DDR 2013 calculations).

Post #5 · Posted at 2014-04-19 05:19:04am 9.9 years ago

Offline dbk2
dbk2 Avatar Member
332 Posts
Not Set
Reg. 2012-04-30

Quote: HealingDMax300
I have been wanting to know if this is possible too.

Quote: Mad Matt
If you want to modify the code then Stepmania can do anything that any other piece of software can do.

Can you provide details on how you want the GrooveRadar to behave in your theme? The more details, the better; numbers and algebraic representations are better yet.

Post #6 · Posted at 2014-04-19 06:38:55am 9.9 years ago

Offline mf32892
mf32892 Avatar Member
858 Posts
United States
Reg. 2014-01-01

"hi"
I have some formulas, hopefully they can be implemented since some of the variables include "number of beats (4th beats) in song", "song length (in seconds)" , "number of notes", "number of jumps", "total length of Freeze Arrows" (this one can get a little confusing.).

Here's a few links that help explain the formulas and the calculations involved:
Stream: http://dancedancerevolutionddr.wikia.com/wiki/Stream_%28Groove_Radar%29#How_to_Calculate_Stream
Voltage: http://dancedancerevolutionddr.wikia.com/wiki/Voltage_%28Groove_Radar%29#How_to_Calculate_Voltage
Air: http://dancedancerevolutionddr.wikia.com/wiki/Air_%28Groove_Radar%29#How_to_Calculate_Air
Freeze: http://dancedancerevolutionddr.wikia.com/wiki/Freeze_%28Groove_Radar%29#How_to_Calculate_Freeze
Chaos: http://dancedancerevolutionddr.wikia.com/wiki/Chaos_%28Groove_Radar%29#How_to_Calculate_Chaos

I even created a whole spreadsheet dedicated to calculating these Groove Radar Values for the different games. waterdraik 346 helped a lot with this.
https://docs.google.com/spreadsheet/ccc?key=0AjQ9M9k92kJCdHU4SVkxTzJoMElRQzA4VW81c0tKMmc&usp=drive_web

I really hope this helps!

Check out my YouTube channel! (Playstyle DDR videos) : http://www.youtube.com/user/barrendon649?feature=watch

Post #7 · Posted at 2014-04-19 08:39:04am 9.9 years ago

Offline denjinenmac
denjinenmac Avatar Member
221 Posts
Philippines
Reg. 2012-04-02

Game Center Nickname: denjinenmachina
"Ka-n-ko-re"
Hmm . . Are you saying that I could create my own Groove Radar code the way I wanted the GR polygon to behave like in DDR 2013? I really like the code that was given in C++ but I am not so sure how to implement this for the entire game (and in other themes since most themes have the well-known Groove Radar polygon while others have bars to measure the chart's stats. ). Plus, the GrooveRadar section in the metrics.ini seems to be confusing to understand, which is why it's harder to change the code without understanding the logic of the game's GR.

Post #8 · Posted at 2014-04-20 04:31:36am 9.9 years ago

Offline dbk2
dbk2 Avatar Member
332 Posts
Not Set
Reg. 2012-04-30

Here's something to get this conversation started: http://codepad.org/jWSvJO8P

If you really want to make this happen, there's a lot of work to go, yet.

Post #9 · Posted at 2014-04-20 02:00:32pm 9.9 years ago

Offline mf32892
mf32892 Avatar Member
858 Posts
United States
Reg. 2014-01-01

"hi"
That seems pretty accurate, for what we have there.
Chaos, by far is going to be the most time consuming or the most challenging to figure out how to put into a formula.

It can get really annoying to calculate manually.
You have to calculate the intervals (in beats) between all non-4th notes and the notes before each of them, and then multiply each interval by a certain number , depending on what kind of note it is (8th, 16th, 12th, etc), and then finally add all the values together.

Also, is there a way to create a different scale on the Groove Radar, like how DDR has it from 1-200 with the values between 0 and 100 have a different formula than the values from 100 - 200?

For example, Stream's equation for certain values below a certain number is
=IF(G2>300,(G2-139)*100/161,G2/3)
where G2 is the Number of notes per minute.
If G2 is greater than or equal to 300, use the first equation: (G2-139)*100/161
If G2 is less than 300, use the second equation: G2/3

So as a result, the scale differs on the higher end of the Radar and the lower end.

If this doesn't make sense, I can explain it more.
Check out my YouTube channel! (Playstyle DDR videos) : http://www.youtube.com/user/barrendon649?feature=watch

Post #10 · Posted at 2014-04-20 10:17:31pm 9.9 years ago

Offline dbk2
dbk2 Avatar Member
332 Posts
Not Set
Reg. 2012-04-30

Quote: mf32892
For example, Stream's equation for certain values below a certain number is
=IF(G2>300,(G2-139)*100/161,G2/3)
where G2 is the Number of notes per minute.
If G2 is greater than or equal to 300, use the first equation: (G2-139)*100/161
If G2 is less than 300, use the second equation: G2/3

Calculating notes per minute and adjusting the equation would be easy, currently. Using the script I provided above, you could do
Quote
local notesPerMinute = 60 * (counts.TapsAndHolds / duration)

if notesPerMinute >= 300 then
stream = ((notesPerMinute -139) * 100)/161;
elseif notesPerMinute < 300 then
stream = notesPerMinute/3;
end

The bigger issue is going to be parsing the note data from the .ssc files, which will be necessary to calculate things like Total Freeze Length, Maximum Note Density, and pretty much every internal aspect of Chaos. Since StepMania's current backend doesn't have C++ code to do such parsing, I see two routes:

1. Do parsing on the fly with Lua. I suspect it will be slow and cause lag.
2. Enhance the existing API by writing new C++ to do the work for you, and then call those new methods from Lua.

Either way, it's going to be very challenging conceptually, it's going to require a fairly solid knowledge of the language(s) at hand, and it's going to require some working knowledge of the existing codebase. I am definitely not up to the task (I barely know C++ and perfectly emulating DDR just doesn't interest me that much.).

Hopefully this helps shed some light on it.


Post #11 · Posted at 2014-04-20 11:46:53pm 9.9 years ago

Offline Kyzentun
Kyzentun Avatar Member
3,209 Posts
United States
Reg. 2008-02-20

"I'm honestly pissed off."
Quote: dbk2
1. Do parsing on the fly with Lua. I suspect it will be slow and cause lag.
Please don't write Lua that loads a .sm or .ssc file through the RageFile functions and parses it into a useful note data structure. It makes me cry. It's really not something any themer should have to do, and it's not worth the effort just to get your groove radar to look exactly like Konami's.

Any C++ code that is submitted with the sole intention of emulating Konami's idiosyncratic groove radar calculations is likely to be rejected on the basis that that kind of calculation belongs in the theme.

There is currently no Lua API for examining the note data. Keep discussing how to analyze a chart though, because the page that was linked to is rather hard to interpret. The discussion might be useful if the Lua API ever supports examining the note data.

In conclusion, it's not practical to change the way groove radar is calculated right now, but that may change in the future.

Side note:
Perfectly emulating DDR doesn't interest me either. Chart analysis in general does.
silenttype01: Kyzentun is never harsh. He says it how it is.

GENERATION 24: The first time you see this, copy it into your sig on any forum and add 1 to the generation. Social experiment.

Post #12 · Posted at 2014-04-20 11:53:16pm 9.9 years ago

Offline Mad Matt
Mad Matt Avatar Member
65 Posts
United States
Reg. 2011-10-26

Quote: Kyzentun
Quote: dbk2
1. Do parsing on the fly with Lua. I suspect it will be slow and cause lag.
Please don't write Lua that loads a .sm or .ssc file through the RageFile functions and parses it into a useful note data structure. It makes me cry. It's really not something any themer should have to do.
That was literally the first thing I did in SM5. The parsing of it is an iterative process, and can be split into multiple updates to avoid lag.
Register Log In Back To Forums

0 User(s) Viewing This Thread (Past 15 Minutes)

©2006-2024 Zenius -I- vanisher.com -5th style- IIPrivacy Policy
Web Server: 3% · Database: 4% · Server Time: 2024-03-28 13:20:09
This page took 0.008 seconds to execute.
Theme: starlight · Language: englishuk
Reset Theme & Language