MIDI note to frequency calculator
Type a MIDI note number from 0 to 127 and get its exact pitch in hertz: note 69 is A4 at 440 Hz, and each step is one semitone. You also see the note name, octave and distance from A4. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Midi note
- 69
- Frequency hz
- 440
- Reference hz
- 440
- Reference midi
- 69
- Semitones from a4
- 0
Every digital audio workstation, soft synth, and MIDI sequencer labels pitches with integers from zero through one hundred twenty-seven. Producers, instrument designers, and signal-processing students often need the exact hertz value of a given MIDI note number under twelve-tone equal temperament and the concert A four hundred forty hertz standard. This MIDI note number to frequency calculator takes a single integer, maps it through the industry formula that places note sixty-nine at four hundred forty hertz, and returns the frequency in hertz together with the scientific pitch name, pitch class, octave, and the semitone offset from A4.
How MIDI note numbers become hertz under equal temperament
The Musical Instrument Digital Interface encodes pitch as an integer note number rather than as a frequency. By long-standing convention, note sixty-nine is concert A4 at four hundred forty hertz, and each integer step is one semitone of twelve-tone equal temperament. That yields the closed formula frequency equals four hundred forty times two raised to the power of the MIDI note minus sixty-nine, all divided by twelve.
One step up multiplies frequency by the twelfth root of two; twelve steps (one octave) double it. Note sixty is middle C (C4) at approximately two hundred sixty-one point six two six hertz; note zero is C in octave minus one; note one hundred twenty-seven is G9. Because the mapping is pure exponential arithmetic, the same result appears in sample-rate converters, wavetable synths, and this calculator without calling any online tuning service.
What you can do with it
Sample map and root-note conversion
Convert root MIDI notes on disk samples to playback frequencies when building libraries or rate converters outside a full DAW.
FAQ
What frequency is MIDI note 69?
MIDI note 69 is concert A4 at exactly 440 Hz. That is the fixed reference used by this calculator; every other note is an equal-temperament semitone offset from it.
What range of MIDI notes is accepted?
Integers from 0 through 127 inclusive, the standard seven-bit MIDI note range.
What is the formula to convert a MIDI note to hertz?
Frequency equals 440 times 2 raised to the power of the note minus 69, divided by 12. Each step up is one semitone, and twelve steps, one octave, double the frequency.
Which MIDI note number is middle C?
Middle C is MIDI note 60, written C4 in scientific pitch notation. Enter 60 to see its frequency in hertz, its note name and octave, and how far it sits below A4, note 69.
Can I use a tuning other than 440 Hz for A4?
No. The calculator always takes A4 at 440 Hz as note 69. If your instrument or preset is tuned to a different A, scale the result yourself by the same ratio.
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/midi-note-to-frequency \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"midi_note":69}'const res = await fetch("https://api.kit.forhosting.com/optics/midi-note-to-frequency", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"midi_note": 69
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/optics/midi-note-to-frequency",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"midi_note": 69
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/optics/midi-note-to-frequency", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"midi_note":69}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"midi_note":69}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/optics/midi-note-to-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
{
"midi_note": 69
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "optics.midi_note_to_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
How MIDI note numbers become hertz under equal temperament
The capability always uses the four hundred forty hertz reference at MIDI sixty-nine; it does not accept alternate concert pitches, so DAW presets that re-tune A4 must scale the output themselves after the call.
Input contract, response fields, and validation errors
Values below zero or above one hundred twenty-seven are rejected with a clear range message matching the standard seven-bit MIDI note span used by keyboards and General MIDI. POST a JSON body with the required integer field midi_note in the inclusive range zero through one hundred twenty-seven. Aliases note, midi, n, midi_number, and note_number are accepted for the same value. The number may arrive as a JSON integer or as a whole-number string; floating values such as sixty-nine point five, missing fields, empty strings, and non-numeric text fail with invalid_input and are not billed. On success the body echoes midi_note and returns frequency_hz rounded to twelve decimal places for stable goldens, reference_hz of four hundred forty, reference_midi of sixty-nine, semitones_from_a4 as the signed integer offset, note_name and pitch_class for the chromatic class, octave and scientific_name in scientific pitch notation, temperament set to twelve-tone equal temperament, and a formula string restating the identity. Example: midi_note sixty-nine yields frequency_hz four hundred forty and scientific_name A4; midi_note sixty yields C4. Pair the numeric frequency with your own oscillator or filter design code; this endpoint does not synthesize audio or emit waveforms.
Where a MIDI-to-hertz API earns its keep
Plugin and firmware authors need deterministic frequency tables for every MIDI note when building oscillators, pitch-to-frequency LUTs, and envelope times that depend on pitch. Music technology courses assign homework that converts note numbers to hertz so students can verify equal-temperament ratios without a full DAW. Failed validation does not consume balance. Sample-library tools map root notes on disk to playback rates; a tiny parse API avoids embedding ad-hoc floating-point formulas in every script. Keep requests to a single integer, pin the rounded frequency_hz in tests, and you get reproducible concert-pitch frequencies for synth design, LMS plugins, and edge workers without standing up an audio engine of your own.
Integration use cases
Synth and plugin frequency tables
Generate a 128-entry hertz table from MIDI 0–127 for oscillators, wavetables, and pitch LUTs under A4=440 equal temperament.
Music technology homework checks
Let students submit a MIDI note number and verify frequency_hz and scientific pitch name against the standard concert formula.
Technical questions
How do I convert a MIDI note number to frequency in hertz?
Send integer midi_note from 0 to 127. The API returns f = 440 × 2^((midi_note − 69) / 12) under twelve-tone equal temperament with A4 at MIDI 69.
What is the frequency of MIDI note 60 (middle C)?
MIDI 60 is C4 (middle C). Under A4=440 equal temperament it is approximately 261.625565300599 Hz (returned as frequency_hz with stable rounding).
What does the MIDI note to frequency calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.