ScoreHero
Home | Forum | Wiki
Inbox [ Login ]Inbox [ Login ]
SearchSearch MemberlistMemberlist
ProfileProfile Log inLog in
SlowHero Charts Project
Goto page Previous  1, 2, 3 ... , 18, 19, 20  Next
 
Post new topic   Reply to topic    ScoreHero Forum Index -> Technique, Style, and Gameplay -> Guitar/Bass
View previous topic :: View next topic  
Author Message
Pas26  





Joined: 04 Oct 2008
Posts: 3664
Location: Québec, Canada

PostPosted: Wed May 23, 2012 3:04 am    Post subject: Reply with quote

But the glitch is part of the game and no one can avoid it; every single calibration settings has different whammy value, so someone who perfers to play on a 0 video settings ALWAYS have an advantage over someone who prefers 10. This is how it is, and the ONLY WAY to EVER compete with someone who has a 0 video setting if I normally play on 80 is to change my calibration. It is not a glitch, it is an error on the devs part (calibration only move the note's timing window, not the sustain event). This is also present in GH2, but it's calibration never goes under 0, so 0 calibration has optimal whammy.

However, it would be incredibly complicated to implement, as currently the programs arent even taking into account dropped ticks from early whammy (afaik). However, calibration allows for easier access to upperbound whammy, and even beyond in some cases. I broke a few upperbounds with it and I am very proud of it. It adds a new layer of complexity to squeezing, kinda like extended sustains. Except you now have to think about strategic use of it (FCing the song may become more difficult, fighting for every ticks at the end of every sustains etc).

Calling it bullshit is a very ignorant stance imo. Not whining about people using a lower calibration on purpose for comfort, cant whine about people using a lower calibration for scoring issue. /rant
_________________
Back to top
View user's profile Send private message XBL Gamertag: Qc Pas26
tma  





Joined: 03 May 2007
Posts: 1414
Location: Australia

PostPosted: Wed May 23, 2012 5:01 am    Post subject: Reply with quote

I believe that an unintentional design flaw by the developer is, by definition, a glitch, or just a plain old bug. That said, I don't think the developers intended that abusing the note window to get extra notes under star power (in other words, plain vanilla squeezing) was intended either, and this is an acceptable form of score boosting. It's definitely arguable.

I'll re-consider it when/if I get to tweaking the optimiser code. For now though it's out of scope.
Back to top
View user's profile Wiki User Page Send private message XBL Gamertag: zzUrbanSpaceman
Bj0rn  





Joined: 31 Aug 2007
Posts: 522
Location: Stockholm, Sweden

PostPosted: Sun May 27, 2012 4:01 pm    Post subject: Reply with quote

So I haven't figured out yet how to make an efficient algorithm for GH:WT+ path optimizing. But I thought I would share the idea I have for games before that. Not that spopt isn't already doing that well, just throwing some ideas out there.

So, while a memoized brute-force kind of approach could always work, there will be a trade-off between preciseness and efficiency, since there are non-discrete factors like sustains, whammy and timing. You can go through the song considering what to do each millisecond, or for each note whether to hit it early, late or somewhere in-between. I would rather avoid discretizising time.

Not that I've done a whole lot of pathing by hand, but what I've found is that it is a lot easier to path once you have a set path configuration to go by. I mean a numerical configuration like 1-2-2-2-S1-1-S1-2-2 (Avalancha upper bound). Given such a configuration, the job would be easy for a path optimizer. No backtracking needed, it could probably be done in O(n) where n is the number of notes in the song. Now, clearly you don't know this configuration ahead of time and sometimes a couple of them are very tight score-wise. So my first thought was to consider all possible configurations and use some dynamic programming to reuse activations where you ended up in the same place with the same amount of preceding SP phrases. The problem is that the amount of possible configurations grows at roughly O(2.6^p) where p is the number of phrases in the song. So that's a bit much to loop through on a song like TTFAF, even if most activations can be reused in many paths.

Finally I came up with this algorithm (again, for old GH engines, something in this vein might be useful for later games though). Mostly it's a sort of divide and conquer approach that splits up path optimizing to a simpler sub problem. This sub problem is, given a starting point and an end point, finding which way to play is optimal between these points such that SP is used at most once and the SP bar is fully depleted before the end point. This is not very complex and should be easy enough to do in O(n) (n = note count) time. Given an algorithm, let's call it "Optimize", for that you can optimize the path like this:

* Call Optimize from start to first phrase.
* Call a function "OptimizeFromPhrase" for the first phrase.
* OptimizeFromPhrase takes a phrase p1 and for each following phrase p2, or the end of the song, it calculates the sum of Optimize from p1 to p2 and OptimizeFromPhrase p2. Then it keeps the sum that was highest.

When I say from a phrase or to a phrase I mean from or to right before the first note of the phrase. Every call to OptimizeFromPhrase assumes empty SP which will always be the case. Every call is also memoized. This means that OptimizeFromPhrase will only be called once per phrase and Optimize will be called once for every pair of phrases. My guess was that Optimize can be done in O(n) time, so the upperbound complexity of this algorithm would be O(n*p^2) where n is the note count and p is the phrase count.

I don't think you can really wish for a better worst case time complexity than that. This is a bit simplified though. In this form it has the same shortcomings as spopt seems to have. That is, it doesn't take into account dropped ticks because of early whammying, nor can it handle the reset of the multiplier in case of a miss/overstrum, which can after all be useful, at least in theory. But there's a way to accommodate for these things too. But this post is already long enough. Hope some of it was interesting to someone. But anyway, it would be nice to get the discussion going.


Continuing on my long post:

Tma, I know you're working on the bot right now, but can you elaborate a bit more on the idea you mentioned? You're finding the highest-scoring sections that would fit in the window of a minimal activation, but how is that useful if you get whammy and end up at something that is not a multiple of half a bar of SP? I mean local maximums don't have to be part of a global maximum, so a part that could be good when you have half a bar of SP might not be close to the best part for a 3/4 SP bar activation. Overlapping phrases increases the confusion.

The reason that my algorithm would probably not be that great for this kind of engine is because suddenly SP can end somewhere in the middle of a phrase, possibly after some SP sustains, and it's still fine. That means that in e.g. a 2-2-3 path the first activation doesn't have to end before the first note of the 3rd phrase. So while my approach ends up actually testing all useful configurations for old engines, it wouldn't for new engines. What I could do is change the meaning of "SP must deplete before the first note of phrase x" to "SP must deplete before the last note of phrase x". But then different amounts of whammy can be taken from the phrase depending on how you got there, so the memoization can't be used anymore which was the whole point.

So that's where I'm at, idea-wise. I'm still pretty sure that optimizing a path even for new engines would be easy (maybe O(n)) if you were given a configuration. But trying all possibilities would be just as bad as any other brute-force approach. Maybe in practice, the number of possible configurations is far smaller than the theoretical maximum? And maybe you can find a fast way to rule bad ones out quickly... I'll keep thinking
_________________
My accomplishment thread
Champion of 6 ScoreHero leagues:
S7: GH3X AAA-2
S10: GH3X AAA-1, GHAX
S11: GH3X AAA, GH5X AAA
S16: GH3X
My youtube channel
Back to top
View user's profile Send private message XBL Gamertag: BurningThunder
tma  





Joined: 03 May 2007
Posts: 1414
Location: Australia

PostPosted: Mon May 28, 2012 12:36 am    Post subject: Reply with quote

Without going into too much depth (my brain hasn't processed enough of the problem to really think about it too deeply yet!) the basic aim was:

* manually analyse all paths that the optimizer is currently assessing and see if rules can be created that could cull a large percentage of these before they are processed at all.

and/or

* take a 2 pass approach, using lower sensitivity on the first pass then narrowing down to a smaller subset of paths to try with higher sensitivity.

Incidentally, I'm fairly comfortable with just putting this out there for anyone to play with now:

https://github.com/tarragon/spopt

If you have any questions, feel free to ask here or in PM or email me on spopt@moto-coda.org. Yes, I know it's poorly documented, I got it that way. You'll need to provide your own game files, there's a list of them in the assets/gamefiles/gamefilelist.txt file.
Back to top
View user's profile Wiki User Page Send private message XBL Gamertag: zzUrbanSpaceman
codemann8  





Joined: 10 Apr 2007
Posts: 1048
Location: Oshkosh, WI

PostPosted: Thu May 31, 2012 5:59 pm    Post subject: Reply with quote

Ah, its been a long time since I've looked at spopt. I may or may not have an adjustment for the spopt code for users trying to run this on a Windows box...I remember having issues early on when I used it

I'll post back when I find it

...Also, if you want to pick my brain for an algorithm as well, you may. Over the years, I've developed a strategic way to calculate optimals in a manual fashion (on pencil and paper, however, I never got around to coding it as I really intended to) and the only true flaw with the way I did it was that every once and awhile I'd miss a case that a computer certainly wouldn't have missed. But I can certainly explain the logical process I used. It's not a brute force approach and like Bjorn said, the number of possibilities grow exponentially as sustains and whammying are introduced but my method incorporates that by using ranges (minimum vs maximum SP gained per phrase, minimum always being 2 measures). The best way to explain my process is to show you an example of one of my pencil and paper paths. I'll have to dig one up and show you. Again, I'll post back on that.
_________________
Frets and Fireworks GH:A Expert Tourney Winner
AAA-2 Season 5 Overall Points Champ & Playoff Runner-Up!!!
My FCs



Back to top
View user's profile Wiki User Page Send private message Send e-mail Visit poster's website XBL Gamertag: codemann8 PSN Name: codemann8
tma  





Joined: 03 May 2007
Posts: 1414
Location: Australia

PostPosted: Thu May 31, 2012 11:41 pm    Post subject: Reply with quote

codemann8 wrote:
Ah, its been a long time since I've looked at spopt. I may or may not have an adjustment for the spopt code for users trying to run this on a Windows box...I remember having issues early on when I used it

I'll post back when I find it


Appreciate it. If you have a github account I can give you write access to the code, if you like.

codemann8 wrote:
...Also, if you want to pick my brain for an algorithm as well, you may. Over the years, I've developed a strategic way to calculate optimals in a manual fashion (on pencil and paper, however, I never got around to coding it as I really intended to) and the only true flaw with the way I did it was that every once and awhile I'd miss a case that a computer certainly wouldn't have missed. But I can certainly explain the logical process I used. It's not a brute force approach and like Bjorn said, the number of possibilities grow exponentially as sustains and whammying are introduced but my method incorporates that by using ranges (minimum vs maximum SP gained per phrase, minimum always being 2 measures). The best way to explain my process is to show you an example of one of my pencil and paper paths. I'll have to dig one up and show you. Again, I'll post back on that.


Sounds very interesting, I'm looking forward to seeing your logic!
Back to top
View user's profile Wiki User Page Send private message XBL Gamertag: zzUrbanSpaceman
codemann8  





Joined: 10 Apr 2007
Posts: 1048
Location: Oshkosh, WI

PostPosted: Sun Jun 03, 2012 6:15 am    Post subject: Reply with quote

tma wrote:
codemann8 wrote:
Ah, its been a long time since I've looked at spopt. I may or may not have an adjustment for the spopt code for users trying to run this on a Windows box...I remember having issues early on when I used it

I'll post back when I find it


Appreciate it. If you have a github account I can give you write access to the code, if you like.

Perfect, same username and everything.

tma wrote:
Sounds very interesting, I'm looking forward to seeing your logic!

Hope you're ready for an obscenely long post
_________________
Frets and Fireworks GH:A Expert Tourney Winner
AAA-2 Season 5 Overall Points Champ & Playoff Runner-Up!!!
My FCs



Back to top
View user's profile Wiki User Page Send private message Send e-mail Visit poster's website XBL Gamertag: codemann8 PSN Name: codemann8
codemann8  





Joined: 10 Apr 2007
Posts: 1048
Location: Oshkosh, WI

PostPosted: Sun Jun 03, 2012 6:16 am    Post subject: Reply with quote

Alright, I got some examples on my FTP site: http://pathhero.codemann8.com/ftp
-Under this directory: \codemann8\paths\

Go ahead and just take a glance at Assassin (as this is probably one of the easiest examples to explain the basic rules to my logic, because there is no whammy). It would probably be best if you try to see if you can understand what I'm doing before I explain it just so then maybe as I explain it, it may start to make sense.

This would have probably been easier to explain via a video, that way I could walk-thru exactly what I did to get to the final solution but...eh, I don't have sufficient equipment/setup for that. Get ready for a long post.

*When you hear this noise *~*~*~*~* turn the page*

*~*~*~*~*
(*Waits for you to look at his example paths)

First, I'll explain how to interpret looking at the final product first (in case you're totally lost), then I'll go into detail on how I actually do it. Ok, so the basic idea I was trying to convey was to separate possibilities by using a tree structure to help keep track as the song progresses. Each level of the tree indicates an SP phrase in which you gain some amount of SP and the number of nodes at each level represents the number of possible states your SP gauge can possibly have when you complete that phrase. I then simulate different activations, counting the number of notes I can fit into an activation and write that number in parenthesis. And as I simulate activating SP from different states, I see which one is the best choice by adding up the number of notes from each possible path since the beginning of the song, and I eliminate the inferior possibilities by marking it with an A and putting an X thru it (A for Activation, showing that I simulated an activation there and found it to be not as good as another). I believe the technical term for this is called "pruning", as we're pruning the tree and not pursuing a path that we already know is bad. At the end, I sum up the number of notes for each path, whichever is highest wins, and I draw a squiggly line marking the best path. I multiply the total by 200 (200 points per note under 4x) and add that to the final green number in the last measure, and determine the estimated score.

Make sense so far?

That's the nutshell version, I'll start from the top, explaining the process I use in the order that I do it. I will use Assassin as this tutorial's main example and refer to The Middle when trying to explain complicated cases.

The first thing I do is go thru each activation and determine the maximum amount of SP is to be gained there. Assassin is easy, there is no whammy during SP phrases so they are all 2's...as in 2 measures of SP. The Middle will show more interesting cases. Now of course, each game has been known to have a varying whammy rate, but I honestly never knew exactly what each was but I just used the "1 measure of whammy = 1 measure of SP" rule of thumb...and it is quite close. So I take that number and write it above each SP phrase. For The Middle, you'll notice these aren't all 2's, I find the decimal number of measure each phrase is. And for the charts that show the correct info, the blue SP numbers under each phrase that has whammy will assist in this calculation, I remember some of the earlier charts calculated this wrong, something like it always chopped off 1/4 of a beat off each sustain, something weird like that.

After I have the SP phrase values, I can begin the simulation. First I start with writing the root node, which is the value of the first SP phrase. We can't activate with just 2 measures so the only possible thing to do is to wait until the next phrase. I then write a 4 right under the 2, and draw a line from the root node to this one, signifying that after completing this phrase, you will have a 4 measures of SP in the hopper.

Moving onto the 3rd SP phrase, we have two possibilities, we can use the existing 4 measures of SP before we obtain the 3rd SP phrase or we can absorb the extra 2 measures into the existing 4. I then draw two lines coming out of the "4" node, one showing that there will be 2 measures of SP after completing the 3rd SP phrase, and the other showing 6 measures of SP. Now, the one showing 2 will need to indicate how many notes we got using the 4 measures of SP. This is very much a manual process I do, almost brute force-like but there's really no way around it if you want the guarantee it's the best path. But for this specific activation, the earliest we can activate is the first green note in measure 24 and the latest is the last green note in measure 31, we can't run over the 3rd phrase because that would be like activating 6 measures worth of SP, which is a case which will be covered in the next level of the tree. But, given our earliest and latest activation limits, we can adjust this accordingly to find the best possible spot to activate given that we "have" to activate within this range. This is easy though, really you can just assume the earliest note as the default and move along note by note and counting the notes that enter the activation and subtracting the notes that drop off. After doing this, you will find that the best place to activate is on the first blue note of measure 26. I draw a small tick mark, marking the start and end and writing a 4 next to each, so that if this does end up being the correct path, we don't have to re-figure out the start and end for this activation. It's also important to mark it with a 4 to show that this was the activation for 4 measures, later on it gets crazier and you have multiple activations happening near the same places and it's easy to confuse them. I counted the number of notes and found there to be 69 notes in this activation, I write this number in parenthesis in between the two nodes where the activation is taking place.

Moving onto the 4th phrase, this one is just as the 3rd phrase except that now there are 3 cases; one carrying on from the previous "2" node (which would now be 4 measures) and the other two come from the 6 (one is 8 measures, and the other is activating and collecting the 2 measures). Like the last round, this one only has one activation possibility, from the 6. Referring back to the 3rd phrase we said the latest activation was the last green note of measure 31, which means the earliest activation point of the 4th is the NN (next note) which is the first note of 32, the yellow note. The latest activation is halfway between the two green notes in measure 41. The reason for the odd timing is because of the 6/4 time signature. I don't show this activation but I can clearly see that the best place here is the 3rd blue note in measure 36, ending on the 3rd blue in measure 42, resulting in 101 notes in this activation. We make the note and move onto the 5th SP phrase.

This one gets interesting, by the end of the 4th phrase we have 3 possibilities: 4, 2, and 8 measures. Two of these have activation possibilities which means one of these are going to be eliminated or pruned from our tree, because no matter the amount of SP you have prior to activation, the end state is the same, and one will yield a higher note count. So without explaining again the earliest and latest activation points for the "4" and "8" nodes and also without telling where exactly each of the activation start/ends, I will just tell you that the 4 yields 65 notes and the 8 yields 129 notes. Now, to see which one is better is simple, you take the 65 and move up the tree adding up the other parenthesized note counts until you reach the top (or until the first intersection of the activation you're competing against, in this case the topmost "4" node). So 65 + 69 = 134 which is greater than 8's sum of 129. 4's activation then becomes the local maximum. So I mark 8's activation with an A and X it out as a dead end. The "4" node then show two possibilities, a 2 and also a 6. The "2" node has one (4 measures). But, we're not quite done with that 8 just yet, we also can activate and run over the next phrase, successfully utilizing 10 full measures of SP. One of my favorite things, I know we all tried to do when GHWT came out and discovered we could now run over SP AND collect from it, was to see what the longest activation we could get. So the 5th level has 2, 6, 4, and 10 as possible states by the end of it.

Everything up until this point is about 95% of what you need to know so as I go from here I'm going to only focus on what's unique. This next level as three competing activations, the 6, the 4, and the 10. Long story short, the 10's activation is eliminated, but 4's and 6's both are equal in note counts. Usually when these things result in ties, I show both as valid scenarios and have a line coming from each to the next "2" note. Although, if the optimal solution ever ends up being a case with 2 possibilities, the tie goes to the one with the highest squeeze opportunity. If you look at The Middle, there's a "2" node near the middle where this happens, in this case, of the 2 possibilities there, I'd give it to the 9 activation because the 9 activation allows for up to 4 notes to squeeze while the 4 activation only allows for 1 and looking up the tree, the previous activation only allows for ticks-worth of squeezing, not much. But, I still show that both tie so I can choose to defer that decision until I'm absolutely sure that either one of those activations could be the optimal, it ends up not being optimal so it doesn't matter anyways.

Another interesting thing too about this level, on Assassin, that is, again, just because the 10 was eliminated, it still has a chance to survive because it is possible for there to be an activation lasting a whopping 12 measures. This specific case actually only allows for one single possible activation point, however, due to the perfect spacing in between the last 2 SP phrases at the end. This activation starts at the first note of measure 58, blue note, and ends on the first note of measure 70, blue note. It eventually gets beaten out by the "4" node but it is a case we must try.

Moving along to the end, you'll notice that the last level shows a 0 for a node, that is simply showing that this case results in ending the song with SP still in the hopper, because we can't activate with just 2 measures of SP.

And as we end, we come to find that a 2-2-2-2 is the optimal solution with 289 notes. To calculate the estimated score, take 289 * 200 = 57800. And add it to the last green number, which is 336886 + 57800 = 394686. This assumes a 20% squeeze, I believe a 0% squeeze meant that if an activation started and ended exactly on a note, that you could only get one or the other, not both. But I wanted to include those because those are easy to hit so I marked this as a 20% squeeze, but I really only considered it to be what I call an "even squeeze".

What I considered to be a 100% squeeze path really wasn't too accurate, I really only took the current 20% path I found and widened the activation starts and ends by 1/16th of a measure on each side and count how many "extra" notes could be squeezed out of it and added up the final point total for the 100% squeeze. Using the 1/16th method isn't accurate since the BPM does factor in the timing window but I've found it to be close enough for the pencil/paper method. But, I would assume that if you were to write a program to factor in different squeezing tolerances, I'd assume you'd run a separate tree for that instead of inheriting from an inferior-squeezable path.

Another aspect to consider, and this is something I've always just kept in the back of my head when doing paths, as it is rare but possible case, is to consider the pre-4x activation cases, activating somewhere during the first 30 notes. Clearly, the double multiplier isn't as effective to the overall points when activating in <4x areas. So in those cases, I adjust the number in parenthesis in a relative manner so that when I multiply it by 200, it equates to what it would be if you actually playing the game. Maybe if systematically doing it, you may be better off keeping track of points rather than notes like I do on paper. War Pigs is an example of this off the top of my head.

Now, everything I've explained so far hasn't had anything to do with whammy or ticks, which we all know is the tough part. So I have a few side-notes to explain some things.

I want to direct you to the first activation of The Middle, notice the "4" node has two activations coming out of it. ??? What's interesting here is that when a phrase has whammying involved, you can always borrow a part of it for the previous activation, as long as the activation ends before it hits the last star note of the phrase. Well, that's what I've done here, I notated the difference by putting a +1 on the activation that is borrowing 1 measure worth of SP. Notice that the one that borrows the 1 measure results in 2 measures of SP to be left while the other retains the full 3. I actually could have had more than two possible activations, but I could clearly see that those weren't worth it because had we left the last sustain of the phrase, we would have had to activate one beat earlier resulting in gaining one note worth of ticks while losing 10 notes worth of points and only adding 1/4 measures of SP on to the next activation. I felt that was a losing battle so I didn't even pursue it, it very well could have been the optimal but I made a human decision to not waste my time calculating that possibility and the many possibilities that would have resulted further down the tree. I remember this exact path marked a milestone in my pathmaking history, this was pre-PathHero days but during this time I was in leagues and no one else thought of this possibility of borrowing SP until I ran thru my process and discovered it by mistake, but it changed and ended up adding to the development of this pencil/paper process I used. I ended up with the #1 score of the AAA league for this song and was also 2,000+ points above the 1st place overall leaderboard for about a week until I released the path and people like Bjorn out-squeezed me :P

I mentioned in the previous post I posted that I also considered ranges when dealing with SP phrases with >2. This really only comes into play when we are forced to consider the possibility of not whammying some or all SP sustains. This is rare, but of course happens, but only happens when SP phrases are too close to each other. If you have widely spaced out SP phrases, there's absolutely no reason why you'd want to NOT whammy. But, if you have a SP phrase that is within 2, or even 4 measures of another, this may be a case where you need to consider the no whammy (or partial whammy) case. Basically rule of thumb is, you always want to attempt to activate in between every SP phrase where possible (by simulating multiple quantities of SP going into it). I couldn't find an example of a path where I did this, I know I have one, but I couldn't remember. But, the way I notated it was by instead of writing down say 2.875 for a node, I'd write 2-2.875...and let's say the next SP phrase was 2.5, the the next node coming out of the 2-2.875 would be 4-5.375. And so if when we get to the SP phrase after this node and notice that there is lets say 5 measures in between the SP phrases, then we know that at least .375 worth of whammying must be avoided when simulating activating during that level. But, good news about this, is rather than requiring a brute force method, we really can find out easily how much extra SP we have, so we know exactly how much whammy to avoid.

The other thing I do when counting the number of notes in an activation, I also consider ticks from sustains. I remember some games calculated this differently. If I'm not mistaken, the GHWT and beyond series of games always was 50 points per beat of sustains, regardless if it's a single note sustain or a chord, but the GH1/GH2/GH80s/GH3/GHA era did 25 points per beat per single sustain, so a double note (chord) sustain was 50 points per beat and a triple was 75 points per beat. I'm not sure which games it is exactly but I know there was a difference. But either way, I incorporated points from ticks by counting a full beat of ticks as 1 note and pro-rating the remainder. Again, another reason why you might want to keep track of points rather than notes.

Another consideration is another that varies from game to game, I remember the earlier GH games there was a gap in time that you had to wait until you could activate SP. If my memory serves me right, I think Bark At The Moon had a case where it would've been more optimal to activate somewhere immediately upon gaining enough SP to activate, but you had to wait a slight amount of time first before you could thus it resulted in a less optimal path, but the correct one due to the game's rules.

So, if you have decided that your brain hasn't melted by now and you have any questions, by all means, ask. I think I covered just about everything I've run into when pathmaking, but I went over a lot so it's hard to tell what I've missed if anything. If I think of anything else, I'll post back. Also, if you want a specific example of a path from a song I probably have it. The folder I've been keeping all my paths is starting to bulge and tear as I just have an obscene amount of paths that I've generated over the years for leagues or tournaments or the like.

Just think, if every paragraph of this post was a separate post, I'd make Mascot status by now, but surprisingly not Freebird status.
_________________
Frets and Fireworks GH:A Expert Tourney Winner
AAA-2 Season 5 Overall Points Champ & Playoff Runner-Up!!!
My FCs



Back to top
View user's profile Wiki User Page Send private message Send e-mail Visit poster's website XBL Gamertag: codemann8 PSN Name: codemann8
tma  





Joined: 03 May 2007
Posts: 1414
Location: Australia

PostPosted: Thu Jun 07, 2012 7:03 am    Post subject: Reply with quote

Just a quick note: codemann, I have seen and read your post, but am still digesting it. Also I have given you write access to the spopt project on github.

The missing 1/4 note of whammy that you mention was a product of the GH3 engine I believe, it chopped the last 1/4 note of sustain (and thus, whammy) off every sustain note. Apparently this was fixed in later versions. I do recall making changes to the code relating to this when making the blank charts for later games, but I don't remember the specifics any more.
Back to top
View user's profile Wiki User Page Send private message XBL Gamertag: zzUrbanSpaceman
yksi-kaksi-kolme  





Joined: 22 Jun 2008
Posts: 2803
Location: philly skramzzzz

PostPosted: Fri Jun 08, 2012 12:15 am    Post subject: Reply with quote

Would there be a way to test whammy rates? I know that in GHWoR, sustains behave differently than ever before; if you let a sustain go near the very end of it, the sustain will still hold (I believe this is a way to fix GH5's stupid tick engine). Try it out. I'm not sure what the allowed window is for dropping, but it is decently large. Anyway, the point is, I wonder if whammy is affected in the same way - is the last part of a sustain, during the allowed drop window, automatically whammied?
_________________


My Accomplishments - GH | RB || My Youtube Channel || My Customs
Back to top
View user's profile Wiki User Page Send private message Send e-mail XBL Gamertag: YksiKaksiKolme
tma  





Joined: 03 May 2007
Posts: 1414
Location: Australia

PostPosted: Fri Jun 08, 2012 12:21 am    Post subject: Reply with quote

yksi-kaksi-kolme wrote:
Would there be a way to test whammy rates? I know that in GHWoR, sustains behave differently than ever before; if you let a sustain go near the very end of it, the sustain will still hold (I believe this is a way to fix GH5's stupid tick engine). Try it out. I'm not sure what the allowed window is for dropping, but it is decently large. Anyway, the point is, I wonder if whammy is affected in the same way - is the last part of a sustain, during the allowed drop window, automatically whammied?


It can definitely be tested, you'll just need to find an appropriate song. I don't know the WoR song list or even own the game though, so I can't test or make any suggestions on that front.
Back to top
View user's profile Wiki User Page Send private message XBL Gamertag: zzUrbanSpaceman
Naruto42  





Joined: 13 Dec 2008
Posts: 1289

PostPosted: Fri Jun 08, 2012 6:45 am    Post subject: Reply with quote

If whammy rates are found, it would be awesome to include them in Pathhero, then you just say where you activate and the duration of SP and when it ends is automatically calculed, and no more activations off !
_________________
632/660 - Best: One GH3 (PC) - My acc. thread - My Youtube


Back to top
View user's profile Send private message Send e-mail MSN Messenger XBL Gamertag: Naruto92250 Wii Friend Code: 7287116137472646
codemann8  





Joined: 10 Apr 2007
Posts: 1048
Location: Oshkosh, WI

PostPosted: Fri Jun 08, 2012 4:03 pm    Post subject: Reply with quote

Naruto42 wrote:
If whammy rates are found, it would be awesome to include them in Pathhero, then you just say where you activate and the duration of SP and when it ends is automatically calculed, and no more activations off !

PathHero is FAR away from having things automatically calculated. Although, this was the direction I originally planned for it to go...but the problem is, paths right now store the pixel locations, not the measure numbers, so it'll be nearly impossible to convert everyone's path to a newer concept like this....if I did, I'd pretty much have to delete every path out there, which I'm not willing to risk.
tma wrote:
Just a quick note: codemann, I have seen and read your post, but am still digesting it. Also I have given you write access to the spopt project on github.

The missing 1/4 note of whammy that you mention was a product of the GH3 engine I believe, it chopped the last 1/4 note of sustain (and thus, whammy) off every sustain note. Apparently this was fixed in later versions. I do recall making changes to the code relating to this when making the blank charts for later games, but I don't remember the specifics any more.
Haha, I knew it'd be a lot to take in, just wanted to get everything out in one post instead of scattered throughout. As soon as I get time to do a compare against the code I have, I'll commit the appropriate changes. And yes, I do remember that GH3 engine glitch now that you mention it.
_________________
Frets and Fireworks GH:A Expert Tourney Winner
AAA-2 Season 5 Overall Points Champ & Playoff Runner-Up!!!
My FCs



Back to top
View user's profile Wiki User Page Send private message Send e-mail Visit poster's website XBL Gamertag: codemann8 PSN Name: codemann8
Bj0rn  





Joined: 31 Aug 2007
Posts: 522
Location: Stockholm, Sweden

PostPosted: Fri Jun 08, 2012 9:26 pm    Post subject: Reply with quote

yksi-kaksi-kolme wrote:
Would there be a way to test whammy rates? I know that in GHWoR, sustains behave differently than ever before; if you let a sustain go near the very end of it, the sustain will still hold (I believe this is a way to fix GH5's stupid tick engine). Try it out. I'm not sure what the allowed window is for dropping, but it is decently large. Anyway, the point is, I wonder if whammy is affected in the same way - is the last part of a sustain, during the allowed drop window, automatically whammied?

With customs you can definitely test whammy. I've tried to do it with GH3, but GHTCP readjusts the length of sustains, so it can't be done with that. I don't know how much control you can get over sustain lengths and where to put SP in GHTunes, maybe that's usable in the later games.

I'd be interested in a custom that has a single sustain SP phrase that is precisely the length needed to get half a bar of SP. You would basically have to remake the custom a number of times to narrow it down perfectly. Like, begin with a sustain that's 8 beats long. If that's enough, change it to 7 beats. If that's too little, try 7.5. Then keep going like that. Of course you might never be fully able to deem a whammy impossible, just look at Psychobilly Freakout.

That's one interesting thing to try in each engine. You may also want to try different tempos and even sustains where tempo and time signatures change while the sustain is still going. All engines will work a bit differently. In HMX engines there's early whammy. That means that a really proficient squeezer would be needed in order to figure out the whammy rate. I guess you could start the sustain at a 1 BPM tempo or something to make the impact of squeezing negligible.

Making those really extreme test customs with near-zero tempo or thousands of beats per second would probably reveal a lot about the way both ticks and whammy accumulate. The weird way ticks seem to accumulate in NSFT games would be interesting to see at those slow speeds.

One thing I did try, using GHTCP, was a sustain that started at an extremely high tempo but then the tempo was changed to extremely low before the end. That way I could hit the sustain multiple measures late, then see how the ticks started accumulating slowly until the end when I got a thousand-point burst! Interestingly, if I recall correctly, even if the sustain was hit early, i got a few hundred points in the burst. That's still maybe a thousand points less than when I hit it late, so the timing had a big impact. I wasn't able to determine some kind of "burst formula" though; more testing would be needed.

If somebody has the tools to try something like that, for any engine really, I would be interested in testing on some of these test charts. Can anybody point me to a GH3PC tool that doesn't modify sustains like GHTCP does?
_________________
My accomplishment thread
Champion of 6 ScoreHero leagues:
S7: GH3X AAA-2
S10: GH3X AAA-1, GHAX
S11: GH3X AAA, GH5X AAA
S16: GH3X
My youtube channel
Back to top
View user's profile Send private message XBL Gamertag: BurningThunder
elScarecrow  





Joined: 22 Apr 2008
Posts: 1404
Location: Raleigh

PostPosted: Sat Jun 09, 2012 10:55 am    Post subject: Reply with quote

Bj0rn wrote:
math/cs stuff


ask me about post GHA SP
_________________
Smaller dreams get pushed aside
For larger ones that change my life
Back to top
View user's profile Send private message Visit poster's website XBL Gamertag: ESC57
Display posts from previous:   
Post new topic   Reply to topic    ScoreHero Forum Index -> Technique, Style, and Gameplay -> Guitar/Bass All times are GMT
Goto page Previous  1, 2, 3 ... , 18, 19, 20  Next
Page 19 of 20

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum




Copyright © 2006-2024 ScoreHero, LLC
Terms of Use | Privacy Policy


Powered by phpBB