Tempo and frame rate¶
You never have to think about tempo to use Marble Studio: it reads the timing straight from your MIDI. This page is for when you want every strike to feel perfectly even, and you're free to pick the frame rate, the song's BPM, or both.
Why tempo matters¶
Video is made of whole frames, so every strike has to land on one. Marble Studio puts each strike on the frame at or just before its note, counting from note 1. Each note is placed on its own, so nothing drifts over the length of the song: the last note is as close to its beat as the first.
When a beat is a whole number of frames long, every strike lands exactly on its beat and the rhythm looks perfectly even. When it isn't, some strikes land up to one frame early, in an uneven pattern. Most people will never see it, but on a slow, steady passage a sharp eye can catch the odd strike that feels a hair ahead.
If two notes fall on the same frame (very fast notes at a low frame rate), the later one moves to the next frame, and the Generate report tells you how many moved, for example "3 strikes moved one frame later because two notes fell on the same frame at 24 fps."
Frames per beat¶
One formula tells you how long a beat is in frames:
frames per beat = fps × 60 ÷ BPM
At 60 fps and 120 BPM: 60 × 60 ÷ 120 = 30 frames per quarter note, and 15 per eighth note. Whole numbers, so every quarter and eighth note lands exactly on a frame. At 30 fps and 128 BPM: 30 × 60 ÷ 128 = 14.06 frames, so the strikes wander a little against the beat.
For eighth notes, halve the result; for sixteenth notes, halve it again. The smaller the note values in your song, the more frames per beat you need for them all to land cleanly.
Pick a rate¶
- Posting to socials? 30 and 60 fps are the safe standards, and 60 gives fast passages twice as many frames to land on.
- Your song's BPM is fixed? Find it in the table below and pick a rate where it lands cleanly.
- You can change the BPM? Nudge your MIDI's tempo to the nearest BPM in the table for the rate you'll post at. A change of a few BPM is rarely noticeable to listeners.
- 23.98, 29.97, and 59.94 fps: these are not whole numbers, so no tempo lands every beat on a whole frame. Use them only when the video has to match footage shot at those rates.
Pick before you press Generate: once the course exists the frame rate is locked. See Frame rate.
Tempo table¶
BPMs from 60 to 200 where the beat lands on whole frames, computed with the formula above.
| Frame rate | Quarter and eighth notes land on whole frames | Quarter notes only |
|---|---|---|
| 24 fps | 60, 72, 80, 90, 120, 144, 180 | 96, 160 |
| 25 fps | 75, 125, 150 | 60, 100 |
| 30 fps | 60, 75, 90, 100, 150, 180 | 72, 120, 200 |
| 50 fps | 60, 75, 100, 125, 150 | 120, 200 |
| 60 fps | 60, 72, 75, 90, 100, 120, 150, 180, 200 | 80, 144 |
In the last column, quarter notes land on whole frames, but eighth notes fall half a frame off, so every other eighth note lands up to one frame early. For a song built mostly on quarter notes that is still a clean result.
This assumes a quantized song
The table assumes every note is quantized: it sits exactly on its beat and the MIDI's BPM is the song's real tempo. A song played in by hand, or one that doesn't quite line up with its BPM, always has some variation, and Marble Studio follows the notes as they are, not the grid.
Custom rates¶
The frame-rate list in the Generate section ends with Custom. It shows FPS and Base (the frame rate is FPS ÷ Base), the same pair as Blender's own Output settings, and the rate must be at least 12 fps. Use it when your tempo has no clean match in the table: for example, 128 BPM lands every eighth note on a whole frame at 64 fps (64 × 60 ÷ 128 = 30 frames per beat, so 15 per eighth note). Check that the place you'll post the video accepts the rate before you choose it.