Pitch shift frequency ratio calculator
Raising A4 at 440 Hz by 12 semitones gives a ratio of exactly 2 and a new frequency of 880 Hz. Enter any positive, negative or fractional shift to get the multiplier and the shifted frequency for your oscillator, sampler or test. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Semitones
- 12
- Reference frequency hz
- 440
- Frequency ratio
- 2
- New frequency hz
- 880
- Direction
- up
This pitch shift frequency calculator converts a signed number of semitones into the exact equal-temperament frequency ratio, then applies that ratio to a reference frequency such as A4 at 440 Hz. Positive shifts raise the pitch, negative shifts lower it, and fractional semitones are supported for finer adjustments. The result gives both the reusable multiplier and the resulting frequency, making it useful for audio code, synthesizer controls, tuning exercises, and quick engineering checks without requiring note-name parsing.
Turn a musical distance into a frequency multiplier
Pitch-shifting systems often describe movement in semitones while oscillators, filters, analyzers, and playback engines work with frequencies in hertz. This calculator connects those two representations directly. Enter the signed semitone distance and, optionally, the frequency you are starting from.
A positive value moves upward, a negative value moves downward, and zero leaves the frequency unchanged. The new frequency applies that same ratio to the supplied reference. For example, twelve semitones always produce a ratio of two, whether the reference is 110 Hz, 440 Hz, or another valid positive frequency.
The default reference is 440 Hz, the familiar A4 tuning reference, but it is only a convenient starting value. You can provide any positive finite frequency required by your signal chain. Fractional semitone values are accepted as well, which is useful when a control exposes continuous pitch movement rather than keyboard-sized steps.
How equal-temperament pitch conversion works
The calculation uses the twelve-tone equal-temperament relationship: the frequency ratio equals two raised to the power of the semitone count divided by twelve. Dividing an octave into twelve equal logarithmic steps means each upward semitone multiplies frequency by the same factor, approximately 1.059463, while each downward semitone uses its reciprocal. Once the ratio is known, the calculator multiplies the reference frequency by it to obtain the shifted frequency.
This logarithmic rule matters because pitch intervals are multiplicative, not additive. Raising 220 Hz by an octave gives 440 Hz, while raising 440 Hz by the same octave gives 880 Hz; adding a fixed number of hertz would not preserve the perceived interval. Negative values work naturally because a negative exponent creates a ratio below one.
A shift of minus twelve semitones therefore halves the reference frequency. No sampling, resynthesis, temperament inference, or audio-file processing occurs: the capability performs only the stated mathematical conversion.
Use the ratio safely in audio and tuning workflows
Use the ratio when your application needs a scale factor, and use the new frequency when it needs one concrete oscillator or analysis target. A sampler can multiply its playback rate by the ratio, a synthesizer can update an oscillator frequency, and a test suite can compare a device's measured output with the predicted value. Because the same factor applies to every source frequency, keeping the ratio can be more useful than calculating only one destination pitch.
The input must contain a real finite number for semitones. The reference frequency must also be a finite number greater than zero because zero and negative hertz do not represent a usable reference pitch here. Extremely large shifts that overflow JavaScript's finite numeric range are rejected rather than returning infinity.
This tool assumes twelve-tone equal temperament; historical temperaments, just-intonation ratios, cents-based detuning, note spelling, and formant-preserving audio transformation require different calculations.
What you can do with it
Set a synthesizer oscillator
Convert a modulation amount in semitones into the exact oscillator frequency required by an equal-temperament synth voice.
Calculate sampler playback rate
Use the returned ratio as the playback-rate multiplier needed to transpose a sample without guessing an additive frequency offset.
FAQ
What reference frequency is used by default?
The default is 440 Hz, commonly used for A4. You may provide any finite frequency greater than zero.
Can semitones be negative or fractional?
Yes. Negative values lower the pitch, positive values raise it, and fractional values calculate intermediate equal-temperament shifts.
Does this process an audio file?
No. It calculates a mathematical ratio and target frequency only; it does not resample, stretch, analyze, or modify audio.
How many semitones make an octave?
Twelve. A shift of 12 semitones doubles the frequency, so 440 Hz becomes 880 Hz, while minus 12 semitones halves it. The ratio is the same whatever reference frequency you start from.
How much does one semitone change the frequency?
Each upward semitone multiplies the frequency by about 1.059463, and each downward semitone divides it by the same factor. That is why pitch steps are multiplied rather than added as a fixed number of hertz.
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/audio/pitch-shift-semitones \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"semitones":7}'const res = await fetch("https://api.kit.forhosting.com/audio/pitch-shift-semitones", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"semitones": 7
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/audio/pitch-shift-semitones",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"semitones": 7
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/audio/pitch-shift-semitones", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"semitones":7}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"semitones":7}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/audio/pitch-shift-semitones", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"semitones": 7
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.pitch_shift_semitones",
"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_mb | 200 |
max_minutes | 180 |
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
How equal-temperament pitch conversion works
Results are stabilized to fifteen significant digits so API examples and automated checks remain deterministic while retaining substantially more precision than ordinary audio controls require.
Use the ratio safely in audio and tuning workflows
Numeric-looking strings are rejected instead of being silently coerced, which catches malformed form submissions and ambiguous API payloads early. The browser version runs locally, while successful API requests use the published base price of $0.002 per item.
Integration use cases
Build deterministic audio tests
Generate expected shifted frequencies for regression tests covering positive, negative, zero, octave, and fractional-semitone controls.
Technical questions
What formula does the calculator use?
It uses frequency_ratio = 2^(semitones / 12), then multiplies the reference frequency by that ratio.
How much does an API calculation cost?
A successful API item uses the published base price of $0.002. The browser calculator runs locally for free.