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 FamiTracker
Login:
Menu:
Post: Author:
FamiTracker > General > Bug Reports & Feature Requests > Fxx latency? Owner: Stratelier New post
Page 1 of 1 Sort:  
Fxx latency? Posted: 2014-07-07 20:29 Reply | Quote
Stratelier



Member for: 2954 days
Status: Offline

#59175
[tested against 0.4.3]

Attached is a simple testcase, examine and play. The 'Tempo 150' song is the control group: you can clearly hear each note being struck three times.

Now play the other songs in the file (the only difference is tempo) and notice the difference - when FamiTracker hits the F06 command, the new speed doesn't seem to take effect immediately, and as a result (because it's still playing at F01 speed) several following notes get blurred together into one.

This is not due to a tempo 160 being a non-integral tempo (~5.6 frames per row) because the tempo 180 (=5 frames per row) version is also affected, in fact more so.

And this only seems to happen when the current speed setting is F01 -- if you change the F01's to F02's then it takes effect immediately and all three songs play the same (at their respective tempos, of course).

_______________________
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/
Attachments:
testing.ftm (1 Kb)
Posted: 2014-07-07 21:10 Reply | Quote
Xyz_39808

Avatar

Member for: 4180 days
Location: South Texas
Status: Offline

#59177
Very odd bug. Was present in 0.4.2 as well it seems. It also seems to have the same effect when keeping the file tempo at 150 and using FB4.
Workaround for the meantime would be to avoid using tempo != 150


Posted: 2014-07-08 15:36 Reply | Quote
jsr
Administrator

Avatar

Member for: 5925 days
Location: Sweden
Status: Offline

#59208
This problem occurs because you are trying to play at a rate above 900BPM, which is the max allowed speed. It is possible to play at a rate above that, but then famitracker would have to skip rows and that is not added.

Easiest solution to this problem is to stay below 900BPM, and if faster speed is required then try to write the song in a different way.

I'll add this to the documentation, I don't think this is written anywhere. Thanks for your report!

_______________________
Programmer and developer
Posted: 2014-07-09 21:06 Reply | Quote
Stratelier



Member for: 2954 days
Status: Offline

#59262
[quote=jsr]This problem occurs because you are trying to play at a rate above 900BPM, which is the max allowed speed. It is possible to play at a rate above that, but then famitracker would have to skip rows and that is not added.[/quote]
Okay, I see. It makes sense that FamiTracker can't play anything faster than the raw engine speed (and if you try it will logically cap out at the engine speed, e.g. 900BPM), but what doesn't make sense is why when FamiTracker hits the F06 command it doesn't appear to take effect immediately. The display and audio are in sync here -- when it hits the F06 it should return to normal (below 900BPM) speed, but it doesn't.

I'm aware this is a somewhat unusual case; I was experimenting with a pickup note and wanted to see if I could align it at the end of the pattern and just skip straight to it (instead of having it at the front and cutting the frame off with a D00). In one case the pickup was literally half a beat so I was easily able to squeeze it into the pattern it precedes (using an F12 / F06 to keep the rest of the pattern in time).

_______________________
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/
Posted: 2014-07-11 02:05 Reply | Quote
jsr
Administrator

Avatar

Member for: 5925 days
Location: Sweden
Status: Offline

#59302
That happens because of the way speed and tempo calculation is implemented: an internal speed/tempo counter keeps accumulating when running on a speed too fast, and going back to normal speed makes it consume some extra rows until the counter is back to normal values.

I agree it appears a bit strange though so I'll see if I can prevent it.

_______________________
Programmer and developer
Page 1 of 1 Sort: