Song difficulty calculator - Something actually worth making
Forum rules
- Before submitting a new idea please make sure it is not already in this thread: What ideas have already been pronounced here?
This topic is 6 months and 1 week old. Instead of replying, please begin a new topic, or search for another related topic that may be more suitable.
I'd love to know what difficulty a song is, out of, say, 10. Or maybe just give it a number based on this:
- lenght of songs
-total number of notes in song
And of course you give "points" to everything, for instance, let's say that any note tapped once is worth 1 point.
But every note that is right next to another note ( i.e. less than X fraction of a second ) is worth 1 more for every note behind it, up to say 5.
So:
(1) ==== 1 point
(1)=1
(1)=3
(1)=6
(1)=10
(1)=15
(1)=20
(1)=25
total = 25
Of course the faster is would go, the higher the mutliplier, so that this same streak played in 2 seconds would be worth almost nothing, while played in 1 second would be worth so much more.
Then you could add more points for these:
(0)
....(0)
........(0)
............(0)
(0)
....(0)
........(0)
............(0)
(0)
....(0)
........(0)
............(0)
(0)
....(0)
........(0)
............(0)
or these:
(0)
....(0)
........(0)
............(0)
............(0)
........(0)
....(0)
(0)
(0)
....(0)
........(0)
............(0)
............(0)
........(0)
....(0)
(0)
Anyways this would basically be it, so the longer a song, the bigger the "difficulty", or maybe the difficulty could be a points/lenght ratio instead.
I'd love to see that.
- lenght of songs
-total number of notes in song
And of course you give "points" to everything, for instance, let's say that any note tapped once is worth 1 point.
But every note that is right next to another note ( i.e. less than X fraction of a second ) is worth 1 more for every note behind it, up to say 5.
So:
(1) ==== 1 point
(1)=1
(1)=3
(1)=6
(1)=10
(1)=15
(1)=20
(1)=25
total = 25
Of course the faster is would go, the higher the mutliplier, so that this same streak played in 2 seconds would be worth almost nothing, while played in 1 second would be worth so much more.
Then you could add more points for these:
(0)
....(0)
........(0)
............(0)
(0)
....(0)
........(0)
............(0)
(0)
....(0)
........(0)
............(0)
(0)
....(0)
........(0)
............(0)
or these:
(0)
....(0)
........(0)
............(0)
............(0)
........(0)
....(0)
(0)
(0)
....(0)
........(0)
............(0)
............(0)
........(0)
....(0)
(0)
Anyways this would basically be it, so the longer a song, the bigger the "difficulty", or maybe the difficulty could be a points/lenght ratio instead.
I'd love to see that.
dsfds
crazy.neo wrote:This ponctuation should be given by the author in the song.ini instead, or by the online charts (by the user reviews)...
Nah that's crap. People can't even write down if something is "amazing" or "medium" properly, I constantly find songs that are in "medium" and "easy" having 5th frets and double frets.
Idiots.
And hell I don't trust peer-review. Plus it would be so much cooler to have an actual real score for each song.
And I'm sure there's a way, maybe with that freetar editor thing or whatever. If the game can convert that notes into points and graphics, I'm sure it can count them, that's just a combination of the game features. I don't know how long it would take to calculate the song difficulty. Maybe you'd have make the entire song play for it to work, I have no idea how programming works, but in my experience you can do anything you can imagine if you want to spend the time.
Also there should totally be a "replay" because I want to see what the hell I did wrong some times. I know the replay would probably slow down the game a lot, so maybe it could just be limited to the last 5-10 secs so you'd have to quit the song to re-watch, but that would still be worth it because seriously, some times, it pisses me off to have weird "misses" when I'm pretty sure I nailed it.
Also totally make a little animation that goes "LOL STEALED UR NOTE" when you get a note and the computer cheats you out of it, for instance when you miss a couple in high bpm songs and need to miss like 3 to restart properly even though you CLEARLY got them.
Anyways, one can dream, right?
And while we're at it, might want to fix the stupid-ass multiplier to make it less swingy, i.e. if you miss one note, you just go down by one level ( from 4x to 3x ) and one level for each note, because, COME THE HELL ON. It just makes the game take away 4000 points for idiot mistakes. You never just miss one random note in hard songs, you either miss a chunk of them, or miss pretty often. Only in less difficult songs are you prone to make tiny mistakes that just cost you way too many points IMO.
Blah points aren't that important anyways. Though if there was a difficulty thing, the 5-star rating could be based on points instead of percentage of notes, or there could even be two 5-star ratings.
IIIIIIIIII dunno
dsfds
I guess that someone (that knows what he/she's doing) could make a separate program, that would analise the .midi files and then write all the information in the song.ini
like
[difficulty]
amazing = 10
hard = 7
medium = 2
easy = 2
and the calculation would be based upon difficulty, not only number of notes, since people may find jordan on hard really hard, but I don't really care
so... each difficulty would have it's own calculation
nice idea I think!
like
[difficulty]
amazing = 10
hard = 7
medium = 2
easy = 2
and the calculation would be based upon difficulty, not only number of notes, since people may find jordan on hard really hard, but I don't really care
so... each difficulty would have it's own calculation
nice idea I think!
-
- Member
- Posts: 47
- Joined: September 27th, 2007
- Location: GP, Alberta, Canada
- Reputation: 0
-
- Member
- Posts: 114
- Joined: February 17th, 2007
- Reputation: 0
It could be done on a 1-15 scale, like StepMania.
Of course, the built-in editor in that game also has a calculation algorithm to give you an estimated difficulty, and then you have to manually input the difficulty. Often, the calculation will give me something like:
Estimated Steps: 7.68935 (The game gives difficulty in "Steps")
Just my two cents. Carry on...
Of course, the built-in editor in that game also has a calculation algorithm to give you an estimated difficulty, and then you have to manually input the difficulty. Often, the calculation will give me something like:
Estimated Steps: 7.68935 (The game gives difficulty in "Steps")
Just my two cents. Carry on...
Last edited by Jonathan_Antillies on Fri Oct 26, 2007 3:25 pm, edited 1 time in total.
- NickGreen91
- Member
- Posts: 948
- Joined: June 11th, 2007
- Location: Orange, CA
- Reputation: 0
- Contact:
Thats a cool idea.
You'd have to make an algorhythm or formula to caclulate it perfectly.
I'm a nerd so I'll make one...
this will be easy. To get a scale between 1 and 10
simply take (number of notes) / [(minutes)x60] = 2(avg)
So a REALLY tough song would be...
2000/4(60)= (2)8.3... 16.6... past 10... beyond hard!
8.3 notes per second is nearly impossible
A really EASY song would be...
200/3(60)= (2)1.1... 2.2... really really easy!
1 note per second... pretty easy.
Thats a simple way to do it, without a program.
You'd have to make an algorhythm or formula to caclulate it perfectly.
I'm a nerd so I'll make one...
this will be easy. To get a scale between 1 and 10
simply take (number of notes) / [(minutes)x60] = 2(avg)
So a REALLY tough song would be...
2000/4(60)= (2)8.3... 16.6... past 10... beyond hard!
8.3 notes per second is nearly impossible
A really EASY song would be...
200/3(60)= (2)1.1... 2.2... really really easy!
1 note per second... pretty easy.
Thats a simple way to do it, without a program.
Last edited by NickGreen91 on Fri Oct 26, 2007 4:40 pm, edited 1 time in total.
omgyouredead
- ryanpanties
- Member
- Posts: 1208
- Joined: September 12th, 2007
- Reputation: 8
NickGreen91 wrote:Thats a simple way to do it, without a program.
It would be nice if it took into account...
-hopo (a hopo note should be worth more difficult points)
-buttons used (all 5 is higher difficulty than 3 or 4)
...but if you can work those into it i think you're off to a good start.
how to chart pitched vocals with Feedback+notepad (tutorial).
I support the Minus The Bear Discog Thread.
I support the Minus The Bear Discog Thread.
- NickGreen91
- Member
- Posts: 948
- Joined: June 11th, 2007
- Location: Orange, CA
- Reputation: 0
- Contact:
well.
as for buttons used you just multiply the answer by n/5
"n" being the number of buttons used.
HOPO's are really easy to factor in.
I'd say without HO/PO's the game is problably 50% harder, that is depending on how many notes you need to hit lol.
So lets say theres an average song but is uses 3 buttons only...
500/2.5(60)=3.333333(2)... which is a 6.6 HOWEVER!
you only used 3 buttons so you multiply by 3/5
it comes out to only 3.9
lets say you did use HO/PO's, so assuming its 50% easier,
take 3.9(.5)=1.95
So the truth is, the more things you throw in like Jurgen Power, HOPO's, ect... the lower the numbers are gonna get.
as for buttons used you just multiply the answer by n/5
"n" being the number of buttons used.
HOPO's are really easy to factor in.
I'd say without HO/PO's the game is problably 50% harder, that is depending on how many notes you need to hit lol.
So lets say theres an average song but is uses 3 buttons only...
500/2.5(60)=3.333333(2)... which is a 6.6 HOWEVER!
you only used 3 buttons so you multiply by 3/5
it comes out to only 3.9
lets say you did use HO/PO's, so assuming its 50% easier,
take 3.9(.5)=1.95
So the truth is, the more things you throw in like Jurgen Power, HOPO's, ect... the lower the numbers are gonna get.
- MichallusTG
- Member
- Posts: 786
- Joined: December 14th, 2006
- Reputation: 0
- Contact:
- NickGreen91
- Member
- Posts: 948
- Joined: June 11th, 2007
- Location: Orange, CA
- Reputation: 0
- Contact:
MichallusTG wrote:This does not make any sense. If you have for example 360 GR notes next to themselves in a really monotonous song, you are surely going to get Amazing. Everyone can push the first two frets and simply move her hands up and down to pick the notes.
not true.
You didn't read my most recent post.
I said depending on the buttons used you factor in x/5
if it is COMPLETELY monotonous then you multiply the answer by 1/5
so
360/1(60)=6(1/5)... is only a 1.5
Ia! Cthulhu ftaghn!
- SinisterMinisterX
- Member
- Posts: 22
- Joined: October 10th, 2008
- Location: Denver, CO, USA
- Reputation: 0
Re:
Dan1lo wrote:I guess that someone (that knows what he/she's doing) could make a separate program, that would analise the .midi files and then write all the information in the song.ini
First of all, my apologies for bumping this ancient thread. I searched on this topic, and this was the most appropriate thread I found - and I figured adding to the old thread was better than creating a new one for the same idea.
Second, this is a long post - grab a cup of joe and settle in.
Anyway ... I have indeed written such a program to analyze the notes.mid files and rate the difficulty of a song. My program comes up with separate ratings for Amazing/Medium/Easy on both guitar and bass, if it's in the .mid file.
Allow me to explain the scoring system I use...
It is based on the following principles:
1. A note is harder to play when you have less time to prepare. So the shorter a note is, the more points the next note is worth.
2. A single note is easiest, and difficulty increases as you add more notes to the chord.
3. Repeating the same note/chord (so all you have to do is pick again) is easiest. Difficulty increases the more you have to move (e.g. 1 to 5 is harder than 1 to 2).
The exact formula looks like:
1. Find the number of midi ticks between the previous note and the note you're scoring. It's 96 ticks to the beat in midi, regardless of tempo.
2. Divide 96 by the number of ticks. This inverts the beat value: 2 beats to prepare for the note are worth 1/2 point, while 1/4 of a beat is 4 points.
3. Multiply the number from step 2 by the current tempo. So for example: eighth notes at 120 bpm are worth 240 each, and triplets at 180 bpm are worth 540.
4. Multiply the number from step 3 by the number of notes in the chord. If those triplets at 180 bpm were each 2 note chords, they're now worth 1080 each.
5. Calculate how much movement is needed from the previous note/chord. This gets a little tricky...
5a) If the current and previous notes are both single notes, simple subtraction gets the movement number. (Staying on the same note gets no credit here.)
5b) If the previous note was a single, and the current is a chord, do all the subtractions and take the largest. (So 1 to a 2-5 chord is worth 4, not 1 ... or 2 to 2-4 is worth 2.)
5c) If the previous note was a chord, and the current note is a single, do all the subtractions and take the smallest. (So 2-5 to 1 is worth 1, and 2-4 to 2 is worth nothing.)
5d) If it's chord to chord, do all the possible subtractions and average the numbers. Not totally perfect, but it gives reasonable results. (3-4 to 2-3 gives 1, 1-3 to 2-5 gives 2, etc.)
6. Multiply the movement number from step 5 by 0.25, and then add 0.75. So staying on the same note is worth 0.75, while the greatest possible movement (1 to 5) is worth 2.
7. Multiply the score from step 4 by the movement bonus from step 6. Now if the triplet 2-note chords at 180 bpm have movement numbers of 2, they're worth 1350 each.
8. Add all the scores, and divide that final sum by 2000 to reduce the rating to a reasonable number.
Known problem with this algorithm:
Since every note adds to the score, a long but easy song can wind up with a higher rating than a short but difficult song.
I've written a Python script to do all this, and analyzed a few hundred files - mostly GH2, GH80s and all 3 Puppetz Hero editions, plus a few extra Puppetz songs.
Not all songs from those games have been analyzed, as about 25% of the midi files have oddities that the Python script can't interpret (yet).
In particular, GH1 and GH3 songs have been tried but didn't work.
Results:
1. VERY IMPORTANT: The "difficulty" of a song is a subjective thing to any one player. Any objective difficulty rating, like I'm trying to make, will seem wrong to someone, somewhere for any given song. In my playing experience, they make a good approximation of difficulty. A song rated 20 will almost always be easier than one rated 50, but 20 vs. 30 may not be a big difference (the 30 could even be easier to some people.)
2. For reasons I haven't been able to figure out yet, the process seems to be somewhat unreliable for the hardest songs. When the difficulty rating gets over 200, the ranking of those hardest songs seems to be off. Is Puppetz's "The Art Of Shredding" on Amazing really only ranked 39th hardest? I doubt it should be.
So here's the top 10 of the 397 songs I have rated so far. They're all fretted by Puppetz.
(Artist, "Title" - Difficulty rating for Guitar/Amazing)
1. Puppetz, "Mors Certa" - 1065
2. Dragonforce, "Revolution Deathsquad" - 681
3. Metallica, "Fight Fire With Fire" - 652
4. Dream Theater, "The Glass Prison" - 616
5. Rhapsody, "Gargoyles, Angels Of Darkness" - 494
6. Cacophony, "Speed Metal Symphony" - 480
7. Sepultura, "Inquisition Symphony" - 468
8. Iron Maiden, "Rime Of The Ancient Mariner" - 424
9. Sodom, "Agent Orange" - 423
10. Iced Earth, "Travel In Stygian" - 419
Some other Puppetz notables (or at least, a few of my faves)...
14. Paul Gilbert, "Gilberto Concerto" - 386
16. Warmen, "Salieri Strikes Back" - 375
20. Angra, "The Temple Of Hate" - 334
34. Metallica, "Master Of Puppets" - 271
39. Pantera, "The Art Of Shredding" - 237
Comparing some songs from GH2...
25. Suicidal Tendencies, "Institutionalized" - 309 (the highest rated GH song I've found so far)
161. Lynyrd Skynyrd, "Free Bird" - 87
The latter of these is close to what I originally intended - I wanted Free Bird on Amazing to be rated 100 as a "calibration point" for the rating scale.
Or to compare easy songs: Nirvana's "Heart-Shaped Box" from GH2 is rated 12 on Guitar/Easy, and Skid Row's "18 And Life" from GH80s is rated 5 on Guitar/Easy.
I'm working on making a web page with all the ratings I have so far. Link coming within a day or two. That web page will include my Python source code, once I work out a few remaining bugs.
If you've made it this far...
1. Is anybody really interested in this besides me? I'll keep going with this project for my own amusement at any rate, but if everyone else thinks it's dumb I won't waste more time posting about it here.
2. If you are interested, do you have suggestions for how to improve my formula? Or any other related ideas?
Thanks for taking the time to read this monster post!
Cheers, SMX
My song thread
Newest song: Prince, "Purple Rain"
Newest song: Prince, "Purple Rain"
A bit sleepy
- Kotti
- Member
- Posts: 2860
- Joined: March 23rd, 2007
- Location: Finland
- Reputation: 2
- Contact:
Re: Song difficulty calculator - Something actually worth making
That's just awesome. I didn't read all that because I know I wouldn't understand it anyway, but based on what I did understand, it seems great though it has it's flaws (AoS). Nice work !
Who is online
Users browsing this forum: No registered users and 2 guests