BPM to milliseconds
For working out things like delay lengths, it's useful to be able to convert BPMs into milliseconds. Here are some popular examples:
Simple metre
Tempo | 1/16 (♬) | 2/16 (♪) | 3/16 (♪.) | 4/16 (♩) |
---|---|---|---|---|
80 BPM | 187.50 ms | 375.00 ms | 562.50 ms | 750.00 ms |
85 BPM | 176.47 ms | 352.94 ms | 529.41 ms | 705.88 ms |
90 BPM | 166.67 ms | 333.33 ms | 500.00 ms | 666.67 ms |
95 BPM | 157.89 ms | 315.79 ms | 473.68 ms | 631.58 ms |
100 BPM | 150.00 ms | 300.00 ms | 450.00 ms | 600.00 ms |
105 BPM | 142.86 ms | 285.71 ms | 428.57 ms | 571.43 ms |
110 BPM | 136.36 ms | 272.73 ms | 409.09 ms | 545.45 ms |
115 BPM | 130.43 ms | 260.87 ms | 391.30 ms | 521.74 ms |
120 BPM | 125.00 ms | 250.00 ms | 375.00 ms | 500.00 ms |
125 BPM | 120.00 ms | 240.00 ms | 360.00 ms | 480.00 ms |
130 BPM | 115.38 ms | 230.77 ms | 346.15 ms | 461.54 ms |
135 BPM | 111.11 ms | 222.22 ms | 333.33 ms | 444.44 ms |
140 BPM | 107.14 ms | 214.29 ms | 321.43 ms | 428.57 ms |
Compound metre / triplets
Tempo | 1/12 (♪3) | 2/12 (♩3) | 3/12 (♩) |
---|---|---|---|
80 BPM | 250.00 ms | 500.00 ms | 750.00 ms |
85 BPM | 235.29 ms | 470.59 ms | 705.88 ms |
90 BPM | 222.22 ms | 444.44 ms | 666.67 ms |
95 BPM | 210.53 ms | 421.05 ms | 631.58 ms |
100 BPM | 200.00 ms | 400.00 ms | 600.00 ms |
105 BPM | 190.48 ms | 380.95 ms | 571.43 ms |
110 BPM | 181.82 ms | 363.64 ms | 545.45 ms |
115 BPM | 173.91 ms | 347.83 ms | 521.74 ms |
120 BPM | 166.67 ms | 333.33 ms | 500.00 ms |
125 BPM | 160.00 ms | 320.00 ms | 480.00 ms |
130 BPM | 153.85 ms | 307.69 ms | 461.54 ms |
135 BPM | 148.15 ms | 296.30 ms | 444.44 ms |
140 BPM | 142.86 ms | 285.71 ms | 428.57 ms |
Source code
I tabulated these using a simple C program, bpm-to-ms.c
:
/* BPM to MS converter, for ANSI C, by Zoe Blade, 2015-12-06 */ #include <stdio.h> #include <stdlib.h> void beatsPerMinuteToMilliseconds(int beatsPerMinute) { float millisecondsPerBeat; int sixteenths; /* * MS per beat = 60 seconds / BPM * 1000 MS in a second * = 60000 MS per minute / BPM */ millisecondsPerBeat = 60000.0 / beatsPerMinute; for (sixteenths = 1; sixteenths < 17; sixteenths++) { printf("%3d\t %2d\t%7.2f\n", beatsPerMinute, sixteenths, millisecondsPerBeat / 4 * sixteenths); } return; } int main(int argc, char *argv[]) { int beatsPerMinute; printf("BPM\t16ths\tMS\n"); printf("===\t=====\t=======\n\n"); if (argc == 1) { for (beatsPerMinute = 80; beatsPerMinute < 145; beatsPerMinute += 5) { beatsPerMinuteToMilliseconds(beatsPerMinute); } } else { beatsPerMinuteToMilliseconds(atoi(argv[1])); } return 0; }
To use compound instead of simple metre, replace 60000.0
with 80000.0
.
C programs: BPM to milliseconds
Electronic music making tables: BPM to milliseconds | DX21 guide | MicroVerb III guide | Pitched tempos | Pitches | S1000 page map | ST MIDI sequencer timeline