Song difficulty calculator - Something actually worth making

What would you like to see added or fixed in FOF?
Forum rules
This topic is 1 year and 3 months old. Instead of replying, please begin a new topic, or search for another related topic that may be more suitable.
The General
User avatar
Belisario93
Member
Posts: 255
Joined: November 13th, 2008
Location: Raleigh, NC
Reputation: 0

Re: Re:

Postby Belisario93 » Fri Nov 28, 2008 9:05 am

SinisterMinisterX wrote:
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


Wow, that is awesome! I'm definitely interested in seeing where this goes! If you need any help with anything for this, count me in! My python skills are extremely limited (as in I've never even touched python), but I might be able to help with the formula anyway.

What you need is a good FOF player (somebody that at least is able to get through Mors Certa and other really tough songs, aka not me) to help you test your formula's validity. There's already a good amount of songs to test the validity with, so really all that's left is getting the right formula.

While I'm waiting for you to get that source out I'll try and learn some python.
Born a leader.
700+ songs fretted!!
User avatar
Puppetz
Member
Posts: 8305
Joined: June 10th, 2007
Location: Finland
Reputation: 5
Contact:

Re: Song difficulty calculator - Something actually worth making

Postby Puppetz » Fri Nov 28, 2008 10:40 am

Well somehow it might work... but should somehow calculate same notes after each other should give "many" points... chords more points. And somehow calculate notes/minutes. So it doesn't give many points to a long song like "Gargoyles" which is easy...?!

And to SinisterMinisterX list... PH4 will blow that list away! xD
Image To support my work and help me get a new computer. Thanks!
ImageImageImageImageImage
The General
User avatar
Belisario93
Member
Posts: 255
Joined: November 13th, 2008
Location: Raleigh, NC
Reputation: 0

Re: Song difficulty calculator - Something actually worth making

Postby Belisario93 » Fri Nov 28, 2008 11:35 am

I think another solution to the length of song problem is to split the song into a bunch of different 30 or 45 second parts. What you do is use the formula on each part and then average the scores up. Either that, or just use the score from the highest scoring part. I would probably find a way to make it output both.

I probably would be of more help if I had a higher math education than just Algebra 1 :glare:
Born a leader.
A bit sleepy
User avatar
Kotti
Member
Posts: 2860
Joined: March 23rd, 2007
Location: Finland
Reputation: 0
Contact:

Re: Song difficulty calculator - Something actually worth making

Postby Kotti » Fri Nov 28, 2008 11:38 am

Belisario93 wrote:I think another solution to the length of song problem is to split the song into a bunch of different 30 or 45 second parts.
Or it could use existing sections marked in the song. Too bad most songs don't have those...
Image
Image
The General
User avatar
Belisario93
Member
Posts: 255
Joined: November 13th, 2008
Location: Raleigh, NC
Reputation: 0

Re: Song difficulty calculator - Something actually worth making

Postby Belisario93 » Fri Nov 28, 2008 12:15 pm

Kotti wrote:
Belisario93 wrote:I think another solution to the length of song problem is to split the song into a bunch of different 30 or 45 second parts.
Or it could use existing sections marked in the song. Too bad most songs don't have those...


the problem with using existing sections is that some of the sections could be really long and easy compared to the others and still get higher ratings even if they are easier. so basically using the existing section would take us back to where we were.
Born a leader.
fasteddy
Member
Posts: 26
Joined: October 29th, 2008
Reputation: 0

Re: Re:

Postby fasteddy » Fri Nov 28, 2008 1:50 pm

SinisterMinisterX wrote: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.

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.



As to the first caveat, perhaps we're overthinking this. Why not divide the total score by the number of seconds in the song? You'll be able to keep your current scoring schema by then further dividing by, say, 11.1 (your abitrary value of 2000 divided by average song length of, say, 3 minutes).

As to using a particular song as a calibrtion point, nothing could be easier. Once you know the score for that song (let's use 87, as you did) just divide all scores by 100/87=.87. Now Freebird is rated at 100 (87/.87=100). Simple.
Ia! Cthulhu ftaghn!
User avatar
SinisterMinisterX
Member
Posts: 22
Joined: October 10th, 2008
Location: Denver, CO, USA
Reputation: 0

Re: Re:

Postby SinisterMinisterX » Fri Nov 28, 2008 2:41 pm

fasteddy wrote:As to the first caveat, perhaps we're overthinking this. Why not divide the total score by the number of seconds in the song? You'll be able to keep your current scoring schema by then further dividing by, say, 11.1 (your abitrary value of 2000 divided by average song length of, say, 3 minutes).

As to using a particular song as a calibrtion point, nothing could be easier. Once you know the score for that song (let's use 87, as you did) just divide all scores by 100/87=.87. Now Freebird is rated at 100 (87/.87=100). Simple.


I experimented with dividing the score by the number of seconds in the song, and found - to my great surprise - that it makes almost no difference to the ranks of the songs.
Sure, the difficulty ratings change, but the relative order of the songs doesn't change much at all.

One of the problems is finding the duration of the song. Remember, my program only uses the notes.mid file. It has no idea guitar.ogg even exists.
You'd think it would be a simple matter of keeping a counter going as I examine the duration of each note. But I tried that and it didn't work right.
However, the fact that it didn't work right is probably my sloppy programming - the idea is still solid.

There's also a small argument for not getting the duration involved. On a very long song, say over 10 minutes, the sheer length of it may be a part of the difficulty. But this would be a very small part, I admit.

As for calibration points - it was my plan to do an "adjustment" like you suggested. Just changing the final number I divide by (currently 2000) does the trick.
But I wanted to get the formula as good as possible first, or else I'm re-calibrating (and re-rating every song) after every formula change.

Last night I made a html table with all the ratings I've got so far. I'll have it up on the web within an hour and post the link here.

Thanks for your input, everyone!

---- EDIT ----

Puppetz wrote:Well somehow it might work... but should somehow calculate same notes after each other should give "many" points... chords more points. And somehow calculate notes/minutes. So it doesn't give many points to a long song like "Gargoyles" which is easy...?!

And to SinisterMinisterX list... PH4 will blow that list away! xD


First of all, with all due respect to all other fretters here, I take the opinion of Puppetz with a bit more weight if only because I've been using so many of his songs to develop the rating program.

I'm not sure I understand what you mean by "somehow calculate same notes after each other should give 'many' points".
Right now, here's what happens: the first note in series gets "full" value from the formula.
If the next note(s) are exactly the same, and all you have to do is pick again, then those notes are worth less (they're worth three-quarters of the first note).
This assumes the notes are at a steady pace; if they are different lengths, they will have different values (with notes after a short note being worth more, since it forces you to pick faster).
If this is not what you mean, how would you suggest I change it? I'm all ears. :biggrin:

Chords are worth more points than single notes right now - an easy multiplier, where (for example) a 3-note chord is worth roughly 3 times as much as a single note in the same position.

It's clear that notes/minute or song duration needs to be factored in somehow - see what I wrote above for something about that. I'll think about it some more, though.

As as for PH4 - I've looked at a handful of the preview videos, and I believe you're right about it blowing the current list away. :thumbup:

---- EDIT ----

Here it is!
The full listing of 368 rated songs.
http://www.sinisterministerx.net/fof/allsongs.php


Mostly from:
Puppetz (including most songs from PH1, PH2, PH3)
GH2
GH80s
GH3 DLC (but not the main GH3 songs, yet)
RB2

With this much data, it is easier to see where there are flaws in my rating program.
To me, it looks like most GH/RB songs are about right, and I certainly agree with the fact that most of Puppetz's songs are rated harder than most GH/RB songs.
Take a look if you like, provide suggestions for improving the ratings if you care to. :biggrin:

And now - I worked on this stuff for a bunch yesterday, so today is a fretting day.
After I finish a song or two, I'll come back to this and try to get more songs rated.
My song thread
Newest song: Prince, "Purple Rain"
Power Quest's #1 Fan
User avatar
omfgdrphl
Member
Posts: 4186
Joined: November 19th, 2007
Location: Brownsburg, Indiana
Reputation: 0

Re: Song difficulty calculator - Something actually worth making

Postby omfgdrphl » Fri Nov 28, 2008 4:14 pm

Why not have it tell you the total notes per second? That could work as well. Sorta.
Image
Ia! Cthulhu ftaghn!
User avatar
SinisterMinisterX
Member
Posts: 22
Joined: October 10th, 2008
Location: Denver, CO, USA
Reputation: 0

Re: Song difficulty calculator - Something actually worth making

Postby SinisterMinisterX » Fri Nov 28, 2008 5:36 pm

I tried looking at notes per second, but in my opinion it didn't correlate with difficulty very well. (Or at least not as well as my current formula.)

With pure notes per second, hitting the same note over and over (easy) gets the same score as if those notes are on different keys (harder).
So while it does examine one factor of difficulty (speed), it ignores other parts of what ought to go into the equation.

I appreciate all your suggestions, but that's the reason I'm looking for something beyond notes per unit of time.

So perhaps the question should be:
What are the things that make a chart difficult to play?
Where/how are those things recorded in notes.mid?
Given that I can extract all information about any note from notes.mid: What formula do I apply to that information to reflect the true difficulty?
My song thread
Newest song: Prince, "Purple Rain"
User avatar
Azzco
Member
Posts: 1307
Joined: August 15th, 2007
Location: Trelleborg, Scania, Sweden
Reputation: 0
Contact:

Re: Song difficulty calculator - Something actually worth making

Postby Azzco » Sat Nov 29, 2008 2:13 am

SinisterMinisterX wrote:So perhaps the question should be:
What are the things that make a chart difficult to play?
Where/how are those things recorded in notes.mid?
Given that I can extract all information about any note from notes.mid: What formula do I apply to that information to reflect the true difficulty?


Well for starters reversed tapping is harder than normal tapping (salieri strikes back intro vs TTFAF)
Maybe the movement factor, a chord with frets 3 and 5 followed by a 4,5 is quite simple comapred to 3,5 to 1,4. Are you using bpm as a factor as well? That can spice things up a ton while keeping the length between notes the same.

I think that you're doing a awesome job, and it would be great to have this supported once a good algorithm is in place.
Image
(k)Ubuntu 8.10 skyscraper 2.6.27-11-generic i686 GNU/Linux KDE 4.2.0
It's not like I dislike sleeping, I really do like it to be honest. It's the whole wake up/go to sleep business I don't like.
Ia! Cthulhu ftaghn!
User avatar
SinisterMinisterX
Member
Posts: 22
Joined: October 10th, 2008
Location: Denver, CO, USA
Reputation: 0

Re: Song difficulty calculator - Something actually worth making

Postby SinisterMinisterX » Sat Nov 29, 2008 3:45 pm

Good point about reversed tapping. Writing a script to detect that might be a little tricky, but possible.

As far as chord movements... Let's look at your examples.

a) The system I have now gives 1.33 as the move value for 3-5 to 4-5, and that should clearly be 1 (staying on the 5 shouldn't count towards the move).
I know how to fix this problem, and intend to implement that solution tomorrow as an experiment.
It happens whenever 2 consecutive chords share a note; I'll adjust the program to ignore shared notes, and only get the move from the changing notes.

b) 3-5 to 1-4 currently gets a move of 2. Problem: so does (for example) 3-5 to 1-3, or 4-5 to 2-3. While 2 is right for the latter examples, your example should probably be worth more.
When I try the experiment of not counting shared notes, 3-5 to 1-4 will remain at 2 (as will 4-5 to 2-3) - but then 3-5 to 1-3 gets 4 (!) because the shared 3 is ignored.
That's why I'm calling this fix an experiment: some chord changes will get better value, while others get incorrect inflated values.

The ultimate solution: list all possible chord changes in a hard-coded table, and look up the value.
It turns out there are 26 possible chords, and therefore 650 possible changes. (26 squared, minus the 26 cases of the chord not changing.)
Is anybody crazy enough to try and rank those 650 changes by difficulty? I don't think so.
Furthermore, the idea behind an objective rating is to do it all with math, not personal opinion (if possible).

The overall point being: I agree this is a minor problem with the current formula, and I am trying other ideas, but the "right" formula still eludes us.

Finally, you mention bpm. That is already covered in my formula, and is the one part I feel confident about.
I'll repeat that part of the formula...
General principle: A note is harder to hit when you have less time to prepare for it.
Implementation:
1. Look at the duration of the previous note, as a number of beats.
2. Invert that number. (2 beats become 1/2, while 1/4 beat becomes 4.)
3. Multiply that inverted number by the bpm. (A note following an 8th note is worth 240 points at 120 bpm, but worth 400 points at 200 bpm.)
This is the first part of the rating process: bonuses for larger chords and larger moves come after this base score.

I won't have time to work on the Python scripts today - got a gig with my band tonight, have to start getting ready for that.
But I intend to work on this for a while tomorrow, taking everyone's suggestions into account.
Thanks again for your help and input!
My song thread
Newest song: Prince, "Purple Rain"
I eat marbles
User avatar
klorjne
Member
Posts: 1080
Joined: July 1st, 2008
Location: Over the rainbow
Reputation: 0

Re: Song difficulty calculator - Something actually worth making

Postby klorjne » Sat Nov 29, 2008 7:24 pm

This is actually really cool. I'd like it if we could download and try this out, but I'm really not holding my breath, especially because I have a Mac
vedicardi wrote:I wonder how many more pages this thread will last before it gets locked like every other thread on here started by some idiot
amak11 wrote:(Oh no klorjne don't sig quote me again, i proved online gameplay on a portable gaming device will be slow)
GermanGTD65
Member
Posts: 62
Joined: October 27th, 2008
Reputation: 0

Re: Song difficulty calculator - Something actually worth making

Postby GermanGTD65 » Sat Nov 29, 2008 9:16 pm

Cool!!! :thumbup:


Google[Bot]
The General
User avatar
Belisario93
Member
Posts: 255
Joined: November 13th, 2008
Location: Raleigh, NC
Reputation: 0

Re: Re:

Postby Belisario93 » Sun Nov 30, 2008 6:57 am

SinisterMinisterX wrote:One of the problems is finding the duration of the song. Remember, my program only uses the notes.mid file. It has no idea guitar.ogg even exists.


Yes, but you still have the bpm and the beats, and the only duration that really needs to be calculated is how long the notes are up anyway.

Once I get my hands on this script I'm going to try out a lot of things.
Born a leader.
User avatar
ssjfulkon198
Member
Posts: 377
Joined: May 26th, 2008
Reputation: 0

Re:

Postby ssjfulkon198 » Sun Nov 30, 2008 11:41 am

NickGreen91 wrote:so

360/1(60)=6(1/5)... is only a 1.5


I'm sorry... but that REALLY made me laugh... :D Try 1.2... nice try though... :D


EITHER WAY! Being my lazy self, I haven't read the whole thread, just the first page. I think this would definitely be done best through the use of a seperate program. I mean, you could add it in MFH, but make it launch a seperate programm and then re enter the game, saving the difficulty somewhere within the song.ini file and displaying it when you want to play the ssong...

While the difficulty of a song is relative to the person playing it, this would still be useful. Let's say the rating wasout of 100 (like a % (% of max difficulty?)). Obviously, you couldn't get more than 100%. Let's say Some people (on expert) played songs at about 40% and thought they weer very hard. I might play the song and not think so, so I would try songs with a higher % of difficulty. I might eventually find that songs at about 80% are at my level. Puppetz, on the other hand, might get to songs at 97% and find that those are at his level... xD

Player who aren't as good would play songs with lower % of difficulty. Better players would play higher %'s respectively.

The use of a % could be achieved if we factored in the fact that FoF can only handle so many notes being hit in a certain frame of time. Anything over this amount in any way would be considered too difficult for FoF to process, or over 100%. Any song that FoF can't handle probably woudln't be too fun to play, but it could still be there to the program didn't spit out a # higher than 100%. Or it could, and then just put a notce that FoF will most likely lag while playing the song.

:2thumbsup: :2thumbsup: :2thumbsup: Either way, that's just m opinions and ideas on the subject. Great idea, and on of the FEW original ideas that have be proposed recently... :P :2thumbsup: :2thumbsup: :2thumbsup:

~Aaron
Image (Empty Link ATM)
W.I.P.! -The Fall of Ideals - All That Remains

#8 In the Best Guitar Frettings of December (2008)!
#9 In the Best Guitar Frettings of January (2009)!

Return to “Thoughts ?”

Who is online

Users browsing this forum: No registered users and 1 guest