Song difficulty calculator - Something actually worth making

What would you like to see added or fixed in FOF?
Forum rules
poxpower
Member
Posts: 8
Joined: October 3rd, 2007
Location: kanada
Reputation: 0
Contact:

Postby poxpower » Thu Oct 04, 2007 5:16 am

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.
dsfds
Playin' bongos mofo!
User avatar
gebbss
Member
Posts: 1282
Joined: November 1st, 2006
Location: Finland
Reputation: 0

Postby gebbss » Thu Oct 04, 2007 9:51 am

Hmm... If anyones up to that, it might be pretty nice.

And a thumbs-up to you. An ORIGINAL idea. Whoah.. I feel dizzy.
Image
User avatar
crazy.neo
Member
Posts: 2601
Joined: January 11th, 2007
Location: Portugal
Reputation: 0

Postby crazy.neo » Thu Oct 04, 2007 10:33 am

Very good idea... however, I don't think it's possible for the engine to preload the midi file and take all those conclusions in a reasonable amount of time (if at all)...
This ponctuation should be given by the author in the song.ini instead, or by the online charts (by the user reviews)...
poxpower
Member
Posts: 8
Joined: October 3rd, 2007
Location: kanada
Reputation: 0
Contact:

Postby poxpower » Thu Oct 04, 2007 1:49 pm

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
User avatar
Dan1lo
Member
Posts: 1236
Joined: December 19th, 2006
Reputation: 0

Postby Dan1lo » Thu Oct 04, 2007 5:28 pm

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!
infectedsanity
Member
Posts: 47
Joined: September 27th, 2007
Location: GP, Alberta, Canada
Reputation: 0

Postby infectedsanity » Mon Oct 08, 2007 2:29 pm

Calculating the difficulty of a song out of 10 would really just be a matter of opinion. Or it would depend on the skill of the player. Or both.
~Adam~ \m/_(-_-)_\m/
Jonathan_Antillies
Member
Posts: 114
Joined: February 17th, 2007
Reputation: 0

Postby Jonathan_Antillies » Fri Oct 26, 2007 3:24 pm

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... :cool:
Last edited by Jonathan_Antillies on Fri Oct 26, 2007 3:25 pm, edited 1 time in total.
Image
Got RF Mod?
User avatar
NickGreen91
Member
Posts: 948
Joined: June 11th, 2007
Location: Orange, CA
Reputation: 0
Contact:

Postby NickGreen91 » Fri Oct 26, 2007 4:36 pm

Thats a cool idea.
You'd have to make an algorhythm or formula to caclulate it perfectly.
I'm a nerd :D 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.
My 'Band Site' -- ReverbNation
Karate Joe - Nick Green AMAZING ONLY! -- View Topic
Image
omgyouredead
User avatar
ryanpanties
Member
Posts: 1208
Joined: September 12th, 2007
Reputation: 8

Postby ryanpanties » Sat Oct 27, 2007 12:40 pm

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.
User avatar
NickGreen91
Member
Posts: 948
Joined: June 11th, 2007
Location: Orange, CA
Reputation: 0
Contact:

Postby NickGreen91 » Sat Oct 27, 2007 6:19 pm

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.
My 'Band Site' -- ReverbNation

Karate Joe - Nick Green AMAZING ONLY! -- View Topic

Image
User avatar
MichallusTG
Member
Posts: 786
Joined: December 14th, 2006
Reputation: 0
Contact:

Postby MichallusTG » Sun Oct 28, 2007 2:57 am

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.
Image
User avatar
poison
Member
Posts: 2458
Joined: June 5th, 2007
Location: My room
Reputation: 0

Postby poison » Sun Oct 28, 2007 12:29 pm

i guess its a nice idea, but i wouldn't use it. i know what i can and can't play usually by whats said in the song thread.
blah blah blah...
Songs Made: 3
Latest:
Good Charolette - Keep Your Hands off my Girl
User avatar
NickGreen91
Member
Posts: 948
Joined: June 11th, 2007
Location: Orange, CA
Reputation: 0
Contact:

Postby NickGreen91 » Sun Oct 28, 2007 8:53 pm

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
My 'Band Site' -- ReverbNation

Karate Joe - Nick Green AMAZING ONLY! -- View Topic

Image
Ia! Cthulhu ftaghn!
User avatar
SinisterMinisterX
Member
Posts: 22
Joined: October 10th, 2008
Location: Denver, CO, USA
Reputation: 0

Re:

Postby SinisterMinisterX » Fri Nov 28, 2008 2:25 am

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"
A bit sleepy
User avatar
Kotti
Member
Posts: 2860
Joined: March 23rd, 2007
Location: Finland
Reputation: 2
Contact:

Re: Song difficulty calculator - Something actually worth making

Postby Kotti » Fri Nov 28, 2008 9:36 am

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 :thumbup: !
Image
Image

Return to “Thoughts ?”

Who is online

Users browsing this forum: No registered users and 10 guests