Equal temperament note frequency calculator
Turn a reference pitch and a number of semitones into a frequency: 440 Hz moved up 12 semitones is 880 Hz, one octave higher, and every step multiplies by the twelfth root of two. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Reference frequency
- 440
- Semitones
- 12
- Reference frequency hz
- 440
- Frequency ratio
- 2
- Frequency hz
- 880
- Temperament
- 12-TET
This equal temperament note frequency calculator converts a known reference frequency and a signed semitone distance into the frequency of another note. It uses the standard twelve-tone equal-temperament ratio, so twelve semitones double the frequency, minus twelve semitones halve it, and every intermediate step follows the twelfth root of two. The calculator is useful when a note name is unnecessary or unavailable and your application already knows the interval as a number of semitones.
Enter a reference frequency and a signed distance
Start with any positive reference frequency measured in hertz. This could be concert A at 440 Hz, middle C from a tuning table, an oscillator frequency measured in a lab, or a custom pitch used by an instrument. Then provide the signed number of semitones separating the desired note from that reference.
A positive offset moves upward in pitch, while a negative offset moves downward. Zero returns the reference unchanged. The offset must be an integer because this capability computes note positions in twelve-tone equal temperament rather than arbitrary cent detuning.
For example, an offset of twelve selects the note one octave above the reference, seven selects a perfect fifth above it, and minus twelve selects the note one octave below it. The accepted range spans twenty octaves in either direction, which is broad enough for musical, acoustic, and software-testing work while keeping inputs bounded. Values must remain finite, positive, and within the published field limits.
Understand the twelve-tone equal-temperament formula
Twelve-tone equal temperament divides every octave into twelve equal steps on a logarithmic frequency scale. Equal does not mean that adjacent notes differ by the same number of hertz. Instead, each upward step multiplies the current frequency by the same ratio: two raised to the power of one twelfth.
After twelve multiplications the accumulated ratio is exactly two, producing the octave. The calculator applies the compact equation f equals reference frequency multiplied by two raised to semitones divided by twelve. Negative offsets naturally create a ratio below one, so a separate downward formula is unnecessary.
Numeric output is normalized to fifteen significant digits to suppress insignificant floating-point noise while preserving far more precision than typical tuning or audio hardware can use. Because the computation is a closed-form power operation, it has no lookup-table gaps and works equally well from unusual references such as historical concert pitch, calibration tones, or measured resonances.
Use the result in instruments, audio systems, and tests
In instrument setup, begin with a measured string, pipe, or resonator frequency and calculate the ideal equal-tempered targets around it. In educational software, show how each semitone changes by a constant ratio even though the difference in hertz grows at higher pitches. For automated tests, the explicit formula string and echoed values make failures easier to diagnose.
Remember that this calculator models twelve-tone equal temperament only. It does not identify note names, infer octaves, convert cents, compensate for stretched piano tuning, model historical temperaments, or judge whether a physical instrument is in tune. Those jobs require additional musical context.
Here, the deliberately small contract answers one question reliably: given this reference and this integer semitone displacement, what frequency follows from 12-TET?
What you can do with it
Build oscillator tuning tables
Generate exact 12-TET frequencies above and below a device-specific reference without maintaining a hard-coded note table.
Check musical interval calculations
Verify octave, fifth, and chromatic-step frequency calculations in lessons, spreadsheets, and automated software tests.
Scale from a measured acoustic reference
Use a measured resonance or calibration tone as the starting point and calculate equal-tempered targets at signed semitone offsets.
FAQ
What happens at twelve semitones?
Twelve semitones produce a ratio of 2, so the resulting frequency is exactly one octave above and twice the reference frequency.
Can the semitone offset be negative?
Yes. Negative integers move below the reference. For example, minus twelve returns half the reference frequency.
Can I enter fractional semitones or cents?
No. This capability accepts integer note steps. Convert cents separately or use a detuning calculator when fractional pitch movement is required.
Why don’t semitones differ by the same number of hertz?
Because each semitone multiplies the frequency by the same ratio, the twelfth root of two, rather than adding a fixed amount. The ratio stays constant while the gap in hertz grows as the pitch rises.
Can I use a reference other than 440 Hz?
Yes. Any positive frequency works: middle C from a tuning table, a historical concert pitch, a calibration tone or a resonance you measured. The semitone steps are then counted from that pitch.
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/equal-temperament-frequency \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"reference_frequency":440,"semitones":12}'const res = await fetch("https://api.kit.forhosting.com/optics/equal-temperament-frequency", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"reference_frequency": 440,
"semitones": 12
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/optics/equal-temperament-frequency",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"reference_frequency": 440,
"semitones": 12
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/optics/equal-temperament-frequency", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"reference_frequency":440,"semitones":12}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"reference_frequency":440,"semitones":12}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/optics/equal-temperament-frequency", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"reference_frequency": 440,
"semitones": 12
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "optics.equal_temperament_frequency",
"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
Enter a reference frequency and a signed distance
The reference may also be supplied through the documented reference_hz or frequency aliases, and the semitone distance through semitone_offset or steps, which helps clients adapt existing data without changing the underlying calculation.
Understand the twelve-tone equal-temperament formula
The response reports frequency_ratio as well as frequency_hz, making the arithmetic easy to audit. It also echoes the validated reference and offset and identifies the temperament as 12-TET. Identical JSON inputs always produce identical JSON results because the algorithm uses no network, clock, random value, or external state.
Use the result in instruments, audio systems, and tests
Use frequency_hz as the oscillator target, filter marker, tuning-table value, or label displayed to a musician. The returned frequency_ratio is useful when another quantity must scale with pitch or when a test needs to verify the interval independently of the chosen reference. In a synthesizer, calculate offsets from a key or MIDI mapping and apply this endpoint to a project-specific reference. Browser use is free, while each successful API item costs $0.002; validation errors are returned as invalid input instead of producing a misleading frequency.
Technical questions
What formula does the calculator use?
It uses f = reference_frequency × 2^(semitones / 12), the standard frequency relation for twelve-tone equal temperament.
How much does an API calculation cost?
A successful API item costs $0.002. The same deterministic calculation can be run free in the browser.