Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /storage/content/49/145849/famitracker.com/public_html/forum/classes/dbHandler.php on line 29
This is a bit of an advanced topic, pertaining to the use of Fxx commands to manually control a song's tempo on a frames-per-row basis.
Take [url=http://famitracker.com/forum/attachments/59080/nevergonnagive.ftm]this song for example and notice the alternating F03/F04 commands, which creates an overall tempo of 257 BPM. Meanwhile, FamiTracker's status bar can't decide whether it should display "300 BPM" (F03) or "225 BPM" (F04).
So how about an option to average the BPM over the last two (or four?) rows and display that instead of trying to display whatever the at-the-moment value is? (Note that this only makes a difference for songs that constantly issue Fxx commands to customize the tempo; for the other 99% where you just specify a given tempo and not worry about the frames-per-row, there's no visible difference.)
_______________________
Where to find me:
YouTube: [url=http://youtube.com/user/stratelier]http://youtube.com/user/stratelier
DeviantArt: [url=http://stratadrake.deviantart.com/]http://stratadrake.deviantart.com/
Thanks for your suggestion, but I think the way it's displayed right now should be good enough.
The user will get an idea of how tempo and speed interacts with each other, and if someone wants to use alternating speed commands (instead of using the tempo control) then I'm sure that user already is aware of the desired target BPM.
I would actually love this feature =D But I suppose it is true...
_______________________
"im going to continue making this crazy stuff then after a while my style will be so sick that you will be like damn suuun that shit is so sick i dont even get it. i will be like bro its ok.. you dont have to." -omgdonut
[quote=jsr]if someone wants to use alternating speed commands (instead of using the tempo control) then I'm sure that user already is aware of the desired target BPM.[/quote]
Yes, it's just one of those little things that would be nice to see the interface giving accommodation for sometime.
_______________________
Where to find me:
YouTube: [url=http://youtube.com/user/stratelier]http://youtube.com/user/stratelier
DeviantArt: [url=http://stratadrake.deviantart.com/]http://stratadrake.deviantart.com/
When trying to find the tempo, I usually just add the two BPM values and divide by two. However, jsr, I think that if there's absolutely nothing else you can think of to add (e.g. in the very distant future), this would be something to consider. But really, it's not useful enough to take priority over, say, 5B. xD
Also, wouldn't this cause issues in songs like this, where there's swing?
Some other places I've tried to conquer:
[url=http://chipmusic.org/ch3dd4r]Le Chipmusic
[url=http://battleofthebits.org/barracks/Profile/CH3DD4R/]Le BattleOfTheBits
You would add the two frame counts and divide by two, then use that to calculate BPM. Averaging the BPMs directly would be incorrect (it has a reciprocal relationship, not a linear one).
Also, Fxx patterns might be in 2s, or 3s or 4s or some other sized group. Really, the average speed should be accumulated over several rows, not just two. Unfortunately, it would only be stable if the length of the averaging window was a multiple of the group size (e.g. a window of size 4 would give a jittery BPM if used with a group of size 3 or 6). Maybe 12 rows would be a good window, since it would fit 2,3,4,6 and 12.
Or a more complex approach: Code in a pattern recognizing algorithm. I've once coded one myself in my informatics class.
It would at first collect the Fxx-commands along the way and then compare them to the ones that are coming up. So, if the algorithm relocates the beginning of the sequence it has stored up until this moment, it will test the following Fxx commands (that will create a new sub-sequence) and if the new sequence of data matches the old one, a pattern is found. If the beginning of the sequence is interrupted by a non-matching Fxx - the pattern is not complete - the subsequence is added to the main sequence and the following Fxx are going to become the new sub-sequence that has to fit in order to find a pattern.
Of course, this overly complicated and advanced for such a minor feature, but one can dream, right?
_______________________
The purpose of a programming language is to protect the computer against the programmer.
So it would work like this:
Main Seq - Comapre Seq
F03
F03, F04
F03, F04, F04
F03, F04, F04 - Start of sequence relocated: F03
F03, F04, F04 - F03, F04
F03, F04, F04 - F03, F04, F04
Pattern found and confirmed!
I don't know how this algorithm would stand up against more complex sequences (but things like F07, F05, F06, F05 would probably work). In every case you'd have to keep checking if the sequence is still correct and if not - scrap it and make a new one.
And one minor inconveniance would be that it takes the length of two patterns to recognize and display it correctly. Maybe have one window "Raw BPM: [...]" and another one "PATTERN: x, y, y - BPM: [...]"
_______________________
The purpose of a programming language is to protect the computer against the programmer.
I'm a little versed in C based languages ... but not enough to just dive in and write [i]actual[/i] code on demand.
_______________________
Where to find me:
YouTube: [url=http://youtube.com/user/stratelier]http://youtube.com/user/stratelier
DeviantArt: [url=http://stratadrake.deviantart.com/]http://stratadrake.deviantart.com/