Dotted note delay time calculator
At 120 BPM a dotted-eighth delay is 375 ms, with echoes landing at 750, 1125 and 1500 ms, between the straight beats. Enter your tempo and a dotted note to set a pedal or plugin that stays in time. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Bpm
- 120
- Subdivision
- Dotted eighth
- Delay label
- 1/8D ms
- Undotted note
- eighth
- Undotted beats
- 0.5
- Dotted multiplier
- 1.5
A dotted note lasts one and a half times its undotted sibling, so a delay set to a dotted eighth, dotted quarter, or dotted sixteenth lands echoes between the straight grid instead of on it. Producers, guitarists, and mix engineers punch that millisecond value into pedals and plugins so repeats lock to the session tempo instead of drifting. This dotted note delay time calculator takes a positive tempo in beats per minute and a named dotted subdivision, then returns the delay in milliseconds, the equivalent seconds and hertz, when the second, third, and fourth echoes fall, and a full dotted table at the same BPM.
Why a dotted delay is 1.5 times the undotted note
In common time the delay world treats one beat as one quarter note, so the quarter-note pulse in milliseconds is sixty thousand divided by the tempo in beats per minute. Every other value is a multiple of that pulse. A whole note is four beats, a half note two, a quarter one, an eighth one half, a sixteenth one quarter, and a thirty-second one eighth.
A dot written after a note adds half of that note’s own length, which is the same as multiplying the undotted duration by three halves. A dotted quarter is therefore one and a half beats, a dotted eighth is three quarters of a beat, a dotted sixteenth is three eighths of a beat, and a dotted half is three beats. The delay time you type into a pedal or a plugin that only accepts milliseconds is that product: delay milliseconds equals (60000 divided by BPM) times undotted beats times 1.5.
At 120 BPM the quarter pulse is 500 ms, so a dotted eighth is 375 ms and a dotted quarter is 750 ms; those two numbers are the ones guitarists and mixers reach for most often because they weave repeats through the backbeat instead of stacking on the same eighths. Hardware units label the same values 1/8D and 1/4D.
This calculator encodes the 1.5 rule once, multiplies by your tempo, and rounds to twelve decimal places so goldens stay stable across runtimes while still reporting a compact millisecond figure you can copy onto a delay knob.
Where a dotted-note delay calculator earns its keep
Guitarists setting analog or digital delay pedals that only take a time knob in milliseconds need the 1/8D number for the session tempo before the first chorus, or the repeats will walk against the drummer. Mix engineers tempo-syncing a send delay that lost its host clock, or matching an outboard unit that has no MIDI, convert the same way and write 375 ms next to the aux.
Songwriters who write a dotted-eighth guitar figure against a straight kick use the table to hear why that pattern feels like it is pulling forward: the echo is 50 percent longer than a straight eighth, so it lands between the grid. Educators teaching note values can show that a dot is not a mysterious extra symbol but a 3:2 stretch of the undotted length, and that delay time is just that stretch expressed in milliseconds. Failed validation does not consume balance.
What you can do with it
Delay pedal and outboard setup
Convert session BPM into the millisecond value for a dotted-eighth or dotted-quarter pedal when the unit has no tap tempo or the tap pad is unreliable on stage.
Teaching dotted values as 3:2 stretches
Show students that a dotted note is 1.5 times the undotted length, then hear it as a delay time so the 3:2 ratio is audible, not only written.
FAQ
What is the dotted eighth delay at 120 BPM?
375 milliseconds. At 120 BPM a quarter note is 500 ms, an eighth is 250 ms, and the dot adds half of that eighth, so 1/8D = 375 ms. That is the classic rhythmic guitar echo.
Why do delay pedals use dotted eighths instead of straight eighths?
A straight eighth echo lands on the next eighth and can smear the groove. A dotted eighth lands between the grid, weaving repeats through the backbeat so the part feels wider without doubling the same hits.
When do the repeats of a dotted-eighth delay land at 120 BPM?
The first repeat comes at 375 ms, the second at 750 ms, the third at 1125 ms and the fourth at 1500 ms. Each one falls off the straight beat grid, which creates the rolling effect.
How do I work out any dotted delay by hand?
Take the plain note length and multiply it by one and a half. At 120 BPM a plain eighth lasts 250 ms, so the dotted eighth lasts 375 ms.
Which dotted values does the table include?
The table lists every dotted value at the same tempo, from a dotted whole note, which lasts 3000 ms at 120 BPM, down to the short dotted sixteenth.
Related tools
For developers — API access
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.
API endpoint
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.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/hobby/music-dotted-delay \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"bpm":120,"subdivision":"dotted_eighth"}'const res = await fetch("https://api.kit.forhosting.com/hobby/music-dotted-delay", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"bpm": 120,
"subdivision": "dotted_eighth"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/music-dotted-delay",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"bpm": 120,
"subdivision": "dotted_eighth"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/music-dotted-delay", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"bpm":120,"subdivision":"dotted_eighth"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"bpm":120,"subdivision":"dotted_eighth"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/music-dotted-delay", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"bpm": 120,
"subdivision": "dotted_eighth"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.music_dotted_delay",
"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.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Input contract, response fields, and validation
Any strictly positive finite number within absolute limits is accepted so extreme click-track experiments work, but everyday songs live between about 60 and 180. An unknown subdivision fails the same way. Formula, message, and steps restate the arithmetic for display. POST a JSON body with two required fields. The field bpm is the session tempo: a finite positive number of beats per minute. Aliases such as tempo, beats_per_minute, and tempo_bpm map to the same value. The field subdivision is a closed enum of dotted names: dotted_whole, dotted_half, dotted_quarter, dotted_eighth, dotted_sixteenth, and dotted_thirty_second. Pedal-style aliases such as 1/8D, 1/4D, dotted_8th, and eighth_dotted normalize to the same keys so a form or a script can speak either language. Missing, non-positive, or non-finite bpm fails with invalid_input and is not billed. On success the body echoes bpm and the canonical subdivision, reports delay_label (1/8D and friends), the undotted note name and beat length, the 1.5 multiplier, dotted beats, beat_ms, undotted_ms, and the primary result delay_ms plus delay_seconds. frequency_hz is the reciprocal of the delay, useful when a modulation or LFO should cycle once per echo. repeats_per_bar is how many dotted notes fit in a 4/4 bar. echo_2_ms, echo_3_ms, and echo_4_ms tell you when later repeats land if feedback is high. dotted_delays_ms is the full dotted table at this tempo for comparing 1/8D against 1/16D without a second call. Example: bpm 120 and subdivision dotted_eighth yields 375 ms; bpm 90 and dotted_quarter yields 1000 ms exactly.
Integration use cases
Plugin and send delays that lost host sync
Type the printed delay_ms into a plugin or hardware send that only accepts time in milliseconds so rhythmic echoes stay locked after a tempo change.
Technical questions
How do I calculate a dotted note delay time from BPM?
Send a positive bpm and a subdivision such as dotted_eighth. The API returns delay_ms = (60000 / bpm) × undotted_beats × 1.5, where one beat is one quarter note.
Which dotted subdivisions can I request?
dotted_whole, dotted_half, dotted_quarter, dotted_eighth, dotted_sixteenth, and dotted_thirty_second. Aliases such as 1/8D, 1/4D, and dotted_8th are accepted and normalize to those keys.
What does the dotted note delay calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.