ForHosting KIT · Home, food & hobbies

Music transposition calculator

Move C up 2 semitones and you get D. Type a note or chord such as F#m7 or C/E, choose how many half steps to shift, and get the new chord with its quality and bass kept. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Semitones
2
You get
Input
C
Root
C
Quality
Direction
up

Transposing music means moving every pitch by the same number of half steps so a song sits higher or lower while intervals and chord qualities stay the same. Singers ask for keys that match their range, guitarists capo up or down, and arrangers move lead sheets between concert and transposed instruments without rewriting theory by hand. This capability takes a note or chord symbol such as C, F sharp minor seven, or B flat major, plus an integer semitone offset, and returns the transposed symbol with quality suffixes and optional slash bass preserved. Non-integer semitone counts fail with a clear invalid input error so fractional half steps never produce ambiguous spellings. The path is pure modular arithmetic on twelve pitch classes with no network and no random seed.

How note and chord transposition works in twelve tones

Western equal temperament divides the octave into twelve semitones, so raising a pitch by twelve half steps returns the same letter name one octave higher and lowering by twelve does the reverse. This calculator maps the root of your symbol to a pitch class from zero for C through eleven for B, including common enharmonic spellings such as D flat for C sharp and B flat for A sharp.

It then adds your integer semitone offset modulo twelve to obtain the new root and rebuilds the full symbol by reattaching any quality text you sent, such as minor, seven, major seven, suspended four, or diminished. Optional slash bass notes, written after a solidus as in C slash E, are shifted by the same amount so inverted chords stay inverted relative to the new key. Positive offsets move up, negative offsets move down, and zero returns the normalized input for identity checks.

Accidentals may be written with ASCII hash or b, or with Unicode sharp and flat signs; double accidentals resolve enharmonically to a simple name.

Reading the result and choosing sharps or flats

Direction is up, down, or unison so user interfaces can label the shift without recomputing the sign. Octaves in the shift and residual semitones split large moves into full octaves plus a remainder within one octave, which is useful when explaining that plus fourteen is one octave plus a major second. Root pitch class and transposed root pitch class are integers zero through eleven for pipelines that already speak MIDI-style pitch classes.

Transposed root and optional transposed bass are the new letter names; transposed is the full chord or note string ready to paste into a chart. Method is always pitch class mod twelve so clients can branch without sniffing shapes. Spelling prefers flats when the original root used flats and sharps when it used sharps; natural roots prefer sharps when moving up and flats when moving down so common key signatures stay readable.

Use transposed alone for display; use the pitch-class fields when feeding sequencers or theory drills that need numbers instead of names.

Live sets and vocal range

Shift every chart symbol up or down by a fixed semitone count so a singer can perform in a comfortable key without rewriting each chord by hand.

Web chart and capo tools

Guitar and ukulele apps apply capo-style offsets to chord libraries, preserving qualities and slash bass so diagrams stay consistent with the sounding pitch.

What happens if semitones is not an integer?

Only whole numbers of half steps are allowed; fractional values such as 1.5 are rejected and not charged.

Are chord qualities and slash bass preserved?

Yes. Text after the root (m, 7, maj7, sus4, and similar) is kept, and bass notes after a slash are transposed by the same semitone offset.

Is the music transposition calculator free?

The browser tool runs free on your device.

Does this use key-signature respelling for whole songs?

No. It transposes individual note or chord symbols by pitch class modulo twelve with practical sharp or flat preferences. Full-score key analysis is a different product intent.

How far can I transpose a note or chord?

Up to 48 semitones up or down, which is four octaves. Large moves are split into whole octaves plus a remainder, so plus 14 reads as one octave plus a major second.

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.

POSThttps://api.kit.forhosting.com/hobby/transpose

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.

curl -X POST https://api.kit.forhosting.com/hobby/transpose \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"note":"C","semitones":2}'
{
  "note": "C",
  "semitones": 2
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "hobby.transpose",
  "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.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

How note and chord transposition works in twelve tones

Unrecognized roots, missing fields, and non-integer semitone values all raise invalid_input and are not charged. Identical inputs always produce identical JSON because the path uses no wall clock and no external services.

Reading the response fields and choosing accidentals

On success the response echoes the original input string, a lightly normalized note field, the parsed root, quality, and bass, and the integer semitones you requested. Extremely large shifts are clamped to the published integer range so Worker isolates stay bounded while still covering multi-octave reharmonizations.

API usage, pricing, studio workflows, and practical limits

Call the free in-browser music transposition calculator when you are checking a lead sheet, moving a set list for a guest singer, or verifying homework on interval arithmetic without installing a notation program. The algorithm does not re-spell entire diatonic keys with key-signature rules beyond root accidentals, does not transpose MIDI note numbers, and does not rewrite Roman-numeral analysis; those are different product intents. Authors shipping SDKs can map the transposed field into UI labels and the pitch-class integers into internal tables without reimplementing modular note math in every language. Send a JSON body with required string note or chord and required integer semitones; aliases such as chord, steps, interval, and shift are accepted when documented on the parameter contract. Use the prepaid API when a web chart tool, ear-training app, live-set helper, or curriculum generator needs a stable contract under KIT balance at $0.002 per successful item; validation failures never consume balance after the engine rejects the request. Pair this endpoint with a note frequency calculator when you need hertz after the new name is known, or keep it alone when only the symbol matters for print and screen.

Teaching intervals and homework checks

Students submit a root or chord plus an integer half-step offset; graders compare the transposed name and reject non-integer semitone answers with invalid_input.

How do I transpose a note or chord with this calculator?

Send JSON with note set to a symbol such as C, Am, or F#m7 and semitones set to an integer (for example 2 to raise by a whole step). The response includes the full transposed string.

Read the full KIT documentation →