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
Hey guys, first of all I must say I love Famitracker. Its simple and fun to use.
Now, I need some tips on how to make a proper cover in general. I got how to work the instruments and everything else but I need help on getting the right tempo and BPM. What do you guys do to determine the proper BPM and speed for a song you covered in the past or now cause I'm lost on how to get the 'right' timing and have no clue if i should adjust the speed for slow/fast hitting notes. I see some songs play 160 at speed 5 and some at speed 1 and I see why they did that but I don't know 'how' they figured this out if you get what im trying to say.
If there a video somewhere to help me with this? I dont need music theories but some quick tips on how to identify this before i even write my first notes.
Here's my process. Bear with me because it's a little obtuse at times (and requires a little math).
First, I visit this page -- http://www.all8.com/tools/bpm.htm -- to determine the BPM of the song I'm doing. I just listen to the song and tap its beats on this page, and it tells me the BPM.
([b][size=5]TL;DR[/b]: read this page on the wiki -- http://famitracker.com/wiki/index.php?title=Fxx -- and then use this page -- http://famitracker.com/wiki/index.php?title=Common_tempo_values -- to try to approximate the BPM you want. My long version lets you get more accurate with it.)
Now, I'm the kind of guy who prefers always to stay at Tempo 150, and then set my Speed with the Fxx command. So, you need to truly understand what the Speed of a song (and thus the Fxx command) does. Basically, at Tempo 150, the Speed of a song tells you how many ticks each row will take. The duration of a tick is traditionally 1/60 of a second, but it can be changed by using a custom engine speed (available under the Tracker menu in FT). If you change the speed regularly enough, you can make the song seem like it has pretty much any BPM you want, and that's where the Fxx command comes in.
Let's say you're trying to determine the proper Fxx sequence to get the desired BPM of, say, 155 BPM. Now, you could consult the wiki and see that repeating the pattern F06 F06 F06 F05 ... would get you 156.52 BPM, and that might be close enough for you. Then you're done. Otherwise, you need to convert BPM -- beats per minute -- into TPR -- ticks per row.
So, first you know that there are 3600 ticks in a minute, so you divide 3600 by your BPM -- 155 in this case, resulting in 23.23 ticks per beat. Then, you need to decide how many rows you want per beat. This will depend heavily on personal taste and the time signature of the song you're doing, but let's pretend right now that it's the default of four rows per beat. You take your 23.23 ticks per beat and divide by 4 rows per beat to get 5.81 ticks per row. This means that you're going to be alternating between F05 and F06, with more F06's appearing.
Well, the wiki already told us that, but we can get even closer, and we do that by determining the number of ticks per song frame. If you're using the default 64 rows per frame, you can multiply your 5.81 ticks per row by 64 rows per frame and learn that you will have 371.62 ticks per frame. Round to the nearest integer and that's 372. This means, basically, that the sum of all the Fxx commands in one frame should be equal to 372. You know you're going to be using F05 and F06 on 64 rows; it's just a matter of how many of each and evenly you can distribute them.
I usually go with a guess-and-check approach at this point. What if 32 rows got F05 and 32 got F06? That's 32 * 5 + 32 * 6 = 352. I could guess around a little more, but we can just see that 372 - 352 = 20, so I need my total to be 20 more than it would be with 32 of each. So, I just use twenty more F06's -- indeed, 12 * 5 + 52 * 6 = 372. So now we know that we'll need 12 F05's and 52 F06's. So far so good! Now we just need to distribute them as evenly as possible.
So most of the rows should have F06, but you need to throw twelve F05 commands in there. The 64 rows of the frame divide nicely into 16 groups of eight rows apiece, so you could stick a single F05 row in each group of eight rows, but for every three groups that get an F05, you should skip one. Then, you recall that the Fxx command doesn't need to be explicitly repeated for each row, so you can delete some of them. The end result looks something like this:
(Traditionally, I put this in the last column or so of the DPCM channel.)
Reversing your math reveals that this pattern actually nets you a tempo of about 154.84 BPM. You can get even closer if you like by using more beats per row or more rows per frame, but more often than not, this is close enough.
Here's my version of the explanation (I was typing this up at about the same time):
0 - The NES audio engine runs at the speed of a TV's screen refresh rate (60Hz for NTSC; 50Hz for PAL) and these are the only intervals in which it can update the audio output (notes/volume/etc). Later systems (e.g. SNES) had audio chips running on their own clock, but the NES does not.
1 - For the purpose of your song's stated Tempo, Famitracker defines a "beat" as [u]four rows[/u] of channel data. This means that the maximum tempo resolution you can get out of the NES audio engine is 900BPM for NTSC and 750BPM for PAL. If your desired song tempo doesn't multiply evenly into this value, the timing of some notes will get rounded to the nearest engine cycle possible (which may or may not be actually noticeable, depending on how complicated your song is). The default song tempo, 150, happens to be a value that multiplies evenly into the NTSC [u]and[/u] PAL engine speeds; that's why it's the default setting.
1a - 150BPM also allows triplets to fall exactly on NTSC engine cycles -- which is probably another reason why it's so common.
2 - The "Speed" of a song just multiplies your stated song tempo by (6 / [i]speed[/i]); the default setting of 6 is 100%. 12 is half tempo, 3 is double tempo, and so on.
3 - Now as for why some users adjust Speed instead of Tempo? It's basically just an alternate method of controlling your song speed. (I'm generally a fan of stating song tempo directly rather than manually controlling speed, but I do recognize the occasional perks of the other approach.) The default settings (tempo 150, speed 6) mean that every row of pattern data lasts for [u]exactly[/u] 6 NTSC engine cycles. Does that 6 sound familiar? WSell yes -- by leaving the tempo at 150 you can use song Speed to directly specify how long (in engine cycles) each row of channel data lasts.
3a - This is possibly more authentic to how NES music was actually coded into the actual games. NES games didn't process music in terms of beats-per-minute, they basically just called a music subroutine every certain # of refresh cycles.
3b - E.g. under the NTSC engine, a tempo-150 speed-5 song means the song progresses at a rate of 1 row every 5 engine cycles, and this produces an overall tempo of 180BPM. (You'd get the same results by specifying tempo 180, speed 6, btw.)
3c - Likewise, a tempo-150, speed-8 means the song advances one row every 8 engine cycles and the overall song tempo is 112[color=yellow].5. Notice the .5 on the end? Since your stated song Tempo must be an integer, you can't specify a tempo like this directly. Sure, you could keep the Speed at the default (6) and specify a tempo of 112 or 113, but those speeds don't line up exactly with the 60Hz NTSC engine speed, and you may (or not) notice the difference.
3d - You may have seen how some users constantly alternate their song Speed between two values. This allows you to get a greater range of tempos while still keeping the song's timing perfectly aligned with engine cycles. E.g. a repeating sequence of F06+F05 commands, for example, yields an average 5.5 engine cycles per row, a.k.a. ~163.6 BPM (because a tempo of 163 or 164 doesn't multiply evenly into the engine frequency).
4 - You see the Row Highlight settings on Famitracker's toolbar? Use this to specify the length of a beat / quarter note (measured in # of rows) in your song, then the BPM shown in the statusbar will reflect this. (The stated song Tempo still assumes a beat is 4 rows.)
4a - E.g. if you have a song with Tempo 150 and Speed 3, on the one hand we could say that your song is 300BPM with 4 rows per beat (which gives you a maximum resolution of 16th notes). [u]Or[/u] we could say the song is 150BPM with 8 rows per beat (max resolution: 32nd notes). [u]Or[/u] we could say the song is 200BPM at 6 rows per beat (which is useful for songs scored in 6:8 time; the max resolution is sixlets). The actual # rows per minute is the same in all cases here, we're just changing the definition of a 'beat'.
4b - Here's another trick: If your song's Speed and Famitracker's highlight 1 setting multiply together to make 24 (e.g. 6x4, 8x3, etc.) then the perceived tempo of your song (as shown in the statusbar) will match the stated song Tempo. (And this holds true regardless of what that tempo actually is, though it makes it difficult to estimate the # of engine cycles per row.)
_______________________
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/
It's worth noting that alternating the speed to compensate for tempo limitations will only work to a point...if you add a tick here and there, it won't so much affect the feel as it will simply correct a gradual drift. There will still be a limitation in achievable tempos where human perception is concerned.
The other use of speed (besides simulating more precise tempos) is to allow for more refined manipulation of pitch, timbre, etc. The instrument macros are limited to 256 ticks (60 ticks per second, so that's about 4 seconds), whereas manual changes in sound are limited only by the maximum number of patterns in a module. So, changing the speed to F01 temporarily will allow for greater flexibility in sound design (at the cost of module filesize, but this hardly matters unless you plan on playing your tracks on a NES).
Well Im glad to know the difference between PAL and NTSC tempos (was wondering why people wanted PAL support for other trackers). The Wiki page and your breakdown of tempos is a great eye opener as to how to figure out the 'right' tempo and speed!
Thanks for the explanation guys, I have free time this weekend and I'm gonna try to incorporate this info with a cover that I will try to setup to make sure I get the idea and maybe need some critiquing on my attempt.
I will be covering a Doom song : https://www.youtube.com/watch?v=fKuWyJ4Eckc
I'll be back to put what i read into Famitracker or at least try lol.
Okay modusponens so I'm doing the math of the song that's 203.5 BPM and I got the math right (well close as possible) but I don't know how to order them in the frames. I'm sure I'm over thinking this and not reading this 100% correct (gonna facepalm if I found out how easy this is lol)
Math:
Speed 6 @ Tempo 150
64 rows per frame
3600 Ticks per minute
Song is 203.5 BPM
3600 / 203.5 = 17.69 / 4 beats per row = 4.42 ticks per row
4.42 ticks per row
4.42 * 64 rows = 282.88 rounded to 283 ticks per frame
4*32 + 5* 32 = 128 + 160 = 288 (close but need closer)
so...I'm over by 5 and made the number even (4) so i went...
4 * 36 + 5 * 28 = 144 + 140 = 284 (close enough).
Now this is where I'm lost as to HOW to arrange them in the channel and what spacing i need for each Fxx.
Right now i figured its 9 F04s and 7 F05s for each frame.
If I'm lost or just about there let me know, thanks.
Okay, cool! So, basically, when you got it down to 4 * 36 + 5 * 28, that's your math's way of saying that of the 64 rows in each frame, 36 of them will be speed 4, and 28 will be speed 5 — so that's 36 F04's and 28 F05's. Another way of thinking about it, is that if you strictly alternated F04 with F05 every other frame, you would have four too many F05's, so four times in your frame pattern, you should leave out an F04 and you'll be good.
(Note that I've also removed a few redundant F04 commands that aren't needed.)
Also, cak is right — even if you leave out those few F05's, the song will still largely sound like a song that strictly alternates F04 and F05, except that every fourth beat will be a single tick shorter. You're basically correcting a gradual drift more than specifying a different-sounding tempo. But, in my opinion, it's still worth it because its effect, while subtle, is still real.
Also, you said that 283 ticks per frame was your goal number, but 284 was "close enough" — that is, of course, totally fine, but it's pretty easy to just take one more F05 out somewhere.
Another way to get close to 203.5 is to use tempo 178 speed 7 and change row highlight to 3, this results in 203.43 BPM. The drawback is that there is only 3 rows/beat though.