Distance for target sound level
Find the distance at which a sound drops to the level you need: a source measuring 100 dB at 10 m falls to 80 dB at 100 m, because every 20 dB quieter means ten times the distance. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Level
- 100
- Distance from
- 10
- Target level
- 80
- Distance
- 100
- Delta db
- -20
- Distance ratio
- 10
- Precision
- 10
This distance for target sound level calculator answers a practical free-field question: if a source measures a known level at a known range, how far away will the level equal a chosen target? Under spherical spreading, intensity falls as one over distance squared, so the distance that realises a target decibel value follows a closed form: r two equals r one times ten raised to the power of L one minus L target, all over twenty. Classic checks include one hundred decibels at ten metres dropping to eighty decibels at one hundred metres (exactly minus twenty decibels, a tenfold range), and a target about six decibels quieter at roughly twice the reference range. The engine is pure finite arithmetic with no network calls, no sampling, and no date-dependent shortcuts.
Where target-level distance estimates fit in study, events, and software
Students meet inverse-square sound levels when a physics or acoustics unit asks how far a listener must stand for a source to fall below a limit, when a lab starts from a measured level at one metre and wants the quiet setback, or when a contest problem demands a tenfold range for a twenty-decibel drop without inventing room corrections.
Event planners and safety coordinators use the same closed form as a first estimate of how far a PA, generator, or traffic source must be from a property line before measuring on site. Teachers can pre-generate answer keys for modest level and target pairs without trusting opaque apps that silently mix pressure and intensity formulas.
Developers call the same contract from scripts to seed deterministic test vectors for outdoor-noise widgets, to convert a noise ordinance threshold into a map radius before overlays, or to satisfy programming-challenge statements that demand r two rather than a hand-waved sketch. Product and education tools use the solve when a learner types ninety decibels at one metre and a target of seventy, and the UI must show ten metres with a clean formula reminder.
Pair it with level-at-distance or intensity helpers when you are building a small lab of free, deterministic acoustic calculators.
What you can do with it
Event and outdoor noise setbacks
Roughly estimate the free-field range at which a PA, generator, or traffic source reaches a permit or ordinance level before on-site measurements.
FAQ
What does the distance for target sound level calculator cost?
It is free in your browser on this page.
What happens if the reference distance is zero?
Zero distance is undefined under the inverse-square intensity model (division by zero at the source).
Does this account for walls, wind, or absorption?
No. It only applies free-field inverse-square transfer. Reflections, barriers, and atmospheric absorption are outside this tool.
How is this different from a sound level at a given distance calculator?
That tool fixes two ranges and returns the level at the second range. This tool fixes the known level and a target level and returns the distance where that target is reached.
How much farther away do I need to be for a 6 dB drop?
Roughly twice the reference distance. In open air the level falls by about 6 dB each time the distance doubles, and by exactly 20 dB each time it grows tenfold.
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/optics/distance-for-target-sound-level \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"level":100,"distance_from":10,"target_level":80}'const res = await fetch("https://api.kit.forhosting.com/optics/distance-for-target-sound-level", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"level": 100,
"distance_from": 10,
"target_level": 80
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/optics/distance-for-target-sound-level",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"level": 100,
"distance_from": 10,
"target_level": 80
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/optics/distance-for-target-sound-level", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"level":100,"distance_from":10,"target_level":80}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"level":100,"distance_from":10,"target_level":80}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/optics/distance-for-target-sound-level", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"level": 100,
"distance_from": 10,
"target_level": 80
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "optics.distance_for_target_sound_level",
"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.
Limits
max_abs_level | 1000000 |
max_distance | 1000000000000000 |
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
What target-level distance means and what the response contains
Sound intensity from an ideal point source in free field spreads over a sphere whose surface area grows with the square of radius, so intensity is proportional to one over r squared. Sound pressure level in decibels is ten times the log of intensity over a reference intensity. The familiar transfer L two equals L one plus twenty log ten of r one over r two rearranges when the unknown is the range at a chosen level: r two equals r one times ten to the power of L one minus L target over twenty. That identity assumes spherical spreading, no ground reflections, no atmospheric absorption, and a source small compared with the distances involved; real rooms, barriers, and wind will shift the result, but the free-field estimate remains the standard first-order check for setbacks, permits, and textbook drills. This calculator returns the input level, reference distance, and target level; the solved distance; the signed delta_db from known level to target; the distance_ratio r two over r one; the precision used; a method tag inverse_square_target_distance; a short formula string; and a unit note that distance uses the same length unit as the reference. There is no Monte Carlo path and no weather model: the engine either evaluates the closed form inside the supported ranges or rejects the input with invalid_input. Rejected cases include missing level, reference distance, or target level; non-finite values; magnitudes above the documented ceilings; and any reference distance that is zero or negative, because the inverse-square intensity model is undefined at the source.
How levels and reference distance are read and how results stay reproducible
Distances must share a consistent length unit; metres are the usual choice, but any positive scale works because only the ratio with the reference enters the power-of-ten form. Optional leading plus signs and scientific notation on numeric strings are allowed when they parse as finite decimals; embedded spaces, hex prefixes, and non-numeric tokens are rejected with a clear message so a bad cell does not become a wrong setback. The preferred fields are level for the known sound pressure level in decibels, distance_from for the reference range r one, and target_level for the desired level at the unknown range, but aliases L1, spl, db, sound_level, and reference_level for level; r1, from, d1, distance1, and reference_distance for the reference; and L2, target, L_target, and desired_level for the target are accepted so spreadsheets, query strings, and typed forms can reuse the same contract. Zero or negative distance_from fails with invalid_input because zero distance is undefined under the inverse-square law. An optional precision field, with aliases decimals and dp, chooses how many decimal places to expose for all numeric fields, defaulting to ten and capped at fifteen so JSON goldens stay stable. Pair the free browser run on this page with the priced API when you need the identical mathematical result inside an automated pipeline without re-implementing ten to the power of delta L over twenty yourself.
Where target-level distance estimates fit in study, events, and software
On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split — free interactive exploration and a priced, identical API — matches the rest of the KIT tier-A catalog and lets you move from a classroom demo to an automated pipeline without changing the mathematical result.
Integration use cases
Homework and inverse-square setback drills
Check textbook problems that ask how far a listener must stand for a known source level to fall to a target dB using r2 = r1 · 10^((L1 − L_target)/20).
Deterministic acoustic fixtures
Generate reproducible distance and distance_ratio values for unit tests, CI assertions, and teaching demos that fix a target level rather than a second range.
Technical questions
What formula is used?
Free-field spherical spreading solved for range: r2 = r1 · 10^((L1 − L_target)/20). Intensity is assumed proportional to 1/r².