ForHosting KIT · Home, food & hobbies

Song duration calculator

A 32-bar chorus in 4/4 at 120 BPM lasts 64 seconds, or 1:04 on the clock. Enter the tempo, the meter and the measures to know whether a piece fits a set list, a cue sheet or an advert. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Bpm
120
Measures
32
Beats per bar
4
Beat unit
4
You get
Time signature
4/4
Seconds per beat
0.5
Seconds per measure
2
Beats total
128

A song duration calculator turns tempo, meter, and form into a wall-clock length you can put on a set list, a cue sheet, or a DAW region. Enter beats per minute, the time-signature numerator and denominator, and how many measures the piece occupies; the tool multiplies beats per bar by measure count, scales by sixty over BPM, and returns whole minutes plus leftover seconds together with a compact M:SS clock string. Composers checking whether a thirty-two-bar chorus still fits a sixty-second advert, teachers marking form assignments, and developers writing sequencer tests all need the same deterministic arithmetic without opening a spreadsheet.

How BPM, time signature, and measures become minutes and seconds

Beats per minute is how many conducting pulses occur in sixty seconds. Song duration then follows a closed product that every conductor already uses when counting bars against a metronome: total seconds equal measures times beats per bar times sixty divided by BPM. A thirty-two-bar chorus in four-four at one hundred twenty BPM therefore lasts thirty-two times four times sixty over one hundred twenty, which is sixty-four seconds, or one minute and four seconds on the clock.

The same form in three-four at ninety BPM lasts forty-eight times three times sixty over ninety, which is ninety-six seconds. Six-eight at one hundred BPM with sixteen bars lasts sixteen times six times sixty over one hundred, which is fifty-seven point six seconds. The denominator is part of the written meter and is echoed as a canonical string such as 4/4 or 6/8 so cue sheets stay unambiguous, but the wall-clock length is fully determined by how many beats you actually count and how fast those beats go.

Zero or negative tempo would divide by a non-physical pulse and is rejected; a zero or negative measure count would describe a piece with no bars and is rejected the same way.

Set lists and radio edits

Songwriters enter chorus and verse bar counts at session BPM to see whether a thirty-two-bar radio edit still fits a one-minute slot before printing the set list.

Cue sheets and film spotting

Composers convert a spotted cue of N bars in 3/4 or 6/8 at a locked tempo into minutes and seconds for the editor without opening a DAW.

How do you compute song duration from BPM, time signature, and measures?

Minutes are the whole-minute part of that length; leftover seconds fill the clock string (for example 1:04).

What happens if BPM or the measure count is zero or negative?

Duration is undefined for a non-positive tempo or a non-positive bar count, and the failed task is not billed.

Can I send a fractional number of measures?

Yes. Pickup bars and fades that do not land on a downbeat may use a positive fractional measures value. Zero and negative bar counts are still rejected.

Is the song duration calculator free?

The browser tool is free and runs locally.

How long is a 32-bar chorus at 120 BPM in 4/4?

64 seconds, shown as 1:04. Thirty-two bars of four beats make 128 beats, and each beat lasts half a second at 120 BPM.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/hobby/music-duration

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/hobby/music-duration \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"bpm":120,"measures":32,"beats_per_bar":4,"beat_unit":4}'
{
  "bpm": 120,
  "measures": 32,
  "beats_per_bar": 4,
  "beat_unit": 4
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "hobby.music_duration",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_abs1000000000000
min_pos1e-12
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Non-positive tempo or a non-positive measure count is rejected with invalid_input so a script never treats a zero-BPM sketch as an infinitely long track.

How BPM, time signature, and measures become minutes and seconds

Time signature writes two numbers: the numerator, sent as beats_per_bar, says how many of those pulses fill one measure, and the denominator, sent as beat_unit, names the written note that receives the pulse — four for a quarter, eight for an eighth, two for a half, and one, sixteen, or thirty-two for the remaining legal note values.

How to call the API and what comes back

Send a JSON body with four required finite numbers. The field bpm is the tempo in beats per minute; aliases tempo, beats_per_minute, and tempo_bpm are accepted. The field measures is the bar count; aliases bars, measure_count, num_measures, and n_measures map to the same value, and a fractional count is legal for a pickup or a fade that does not land on a downbeat. The field beats_per_bar is the time-signature numerator (four in 4/4, three in 3/4, six in 6/8). The field beat_unit is a closed enum of written note values that may sit on the bottom of a meter: one, two, four, eight, sixteen, or thirty-two. Absolute values must stay within the published limit of one trillion, and bpm and measures must be strictly greater than zero; missing fields, non-numeric strings, non-finite numbers, and non-positive tempo or bar count return invalid_input and are never charged. On success the response echoes the rounded inputs, sets time_signature to the canonical numerator-slash-denominator string, reports seconds_per_beat, seconds_per_measure, beats_total, total_seconds, and total_milliseconds, then splits the same length into hours, minutes, and leftover seconds with a duration clock such as 1:04 or 0:57.6. Formula restates total_seconds equals measures times beats_per_bar times sixty over bpm. Pricing is a flat $0.002 per successful request with unit item.

Practical tips, limits, and related searches

Prefer sending numbers rather than pre-formatted strings when you control the client; string numbers are accepted only when they match a strict finite numeric pattern. Common studio checkpoints are easy to memorize: thirty-two bars of four-four at one hundred twenty BPM is one minute four seconds; sixteen bars of four-four at sixty BPM is the same length because half the bars at half the tempo cancel; a waltz chorus of forty-eight bars in three-four at ninety BPM is one minute thirty-six seconds. Prefer this capability when the grid is already known; if your source is a free-time recording without a click, detect or tap BPM first, then count bars. Keep BPM and measure count inside the published absolute range so the reciprocal beat duration stays finite in IEEE double precision on the Worker and in the browser. When teaching, pair a positive happy path with a deliberate zero or negative tempo and a zero bar count to demonstrate the hard invalid_input path. This landing targets people searching for a song duration calculator, a music duration calculator from BPM and bars, or total song length from time signature and measures; it is not a delay-time table, not a MIDI ticks-per-quarter converter, and not a real-time metronome audio generator. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when learners deliberately probe edge cases. Round-trip checks are straightforward: recompute measures times beats_per_bar times sixty divided by bpm and confirm it equals total_seconds within twelve-decimal rounding, then confirm that minutes and leftover seconds reassemble to the same total and that the duration string matches the clock split.

Sequencer and lesson tests

Developers and teachers feed known BPM, meter, and bar counts and assert total_seconds plus the M:SS clock against golden fixtures without wall-clock timers.

Does the time-signature denominator change the length?

BPM counts the written beat named by beat_unit, so the numerator (beats per bar) is what scales the duration. The denominator is required so the echoed time_signature string (4/4, 6/8, 2/2) matches the score.

Read the full KIT documentation →