Vibrating string fundamental frequency
A string 1 m long at 100 N with 0.01 kg/m sounds at 50 Hz: enter the speaking length, tension and linear density of a guitar, violin or piano string and get its pitch and nearest note. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Length
- 1
- Tension
- 100
- Mass per length
- 0.01
- Length unit
- M Hz
- Tension unit
- N
- Density unit
- Kg per m
- Length m
- 1
A vibrating string fundamental frequency calculator answers the question luthiers, guitar techs, violin makers, and piano technicians actually type: given this speaking length, this tension, and this mass per unit length, what pitch does the string speak? The closed relation is the first standing-wave mode of an ideal thin string fixed at both ends: frequency equals one over twice the length times the square root of tension over linear density. When length is in metres, tension in newtons, and mass per unit length in kilograms per metre, the result is exactly in hertz. Optional unit selectors accept centimetres, millimetres, inches, kilogram-force, pounds-force, and workshop density units so a scale-length drawing and a string-pack table can be posted without a pre-conversion spreadsheet.
What the vibrating-string fundamental is and why musicians compute it
An ideal string fixed at both ends supports standing waves whose wavelengths fit an integer number of half-wavelengths into the free speaking length L. The lowest mode, called the fundamental, has wavelength two L and frequency equal to wave speed divided by two L. The transverse wave speed on the string is the square root of tension over mass per unit length, so the closed form is f equals one over two L times the square root of T over mu.
Physically, a tighter string or a lighter string raises the pitch; a longer vibrating segment lowers it. That is why a guitarist who shortens the speaking length with a capo hears a higher note, why a heavier wound string at the same tension and scale speaks lower, and why a piano technician changing speaking length or core mass must retune.
Frequency here is how many cycles the string completes each second in its lowest standing-wave mode, not a spectral peak estimated from a plucked recording and not a MIDI note guessed from a tuner app.
Instrument setup, limits, and how this landing differs from nearby searches
Typical shop checks include one metre, one hundred newtons, and one hundredth of a kilogram per metre, which speak at fifty hertz; a guitar scale around six hundred forty-eight millimetres with a mid-set tension and a wound-string density for a bass or baritone pitch; and a violin speaking length with gut or steel mu for an open-string target. Prefer SI when you control the client; workshop units exist so a drawing dimensioned in inches and a tension listed in pounds-force can be posted without a pre-conversion step.
Zero tension is valid and simply yields zero frequency and zero wave speed, with the nearest-note fields omitted because a slack string has no pitch. A zero speaking length is rejected because division by two L is undefined. This landing targets people searching for a vibrating string fundamental frequency calculator, a guitar or violin string pitch from length tension and mass per unit length, or an instrument-string frequency from scale length.
It is not a classroom-only harmonic worksheet that stops at SI f-one, not a frequency-from-tension-change tool that scales an already known pitch, not a wave-speed-only calculator, and not a note-to-hertz table that ignores the physical string.
What you can do with it
Guitar and bass string design
Convert scale length, target tension, and published linear density into the open-string fundamental so a string set or custom winding lands near the intended pitch.
Violin, cello, and piano shop cards
Turn speaking length, hanging mass or gauge tension, and mass per unit length into hertz and a nearest note before you cut, wind, or seat a string.
FAQ
How is the vibrating-string fundamental defined here?
For speaking length L > 0, tension T ≥ 0, and mass per unit length μ > 0, f = (1/(2L)) · √(T/μ). With SI inputs (m, N, kg/m) the result is in hertz.
What units can I send?
Length defaults to metres and also accepts cm, mm, and in. Tension defaults to newtons and also accepts kgf and lbf. The response always includes the SI conversions.
What happens if length is zero or mass per unit length is not positive?
A zero speaking length makes f = (1/(2L))√(T/μ) undefined, and μ ≤ 0 makes wave speed √(T/μ) undefined. Those failures are not billed.
What pitch does a 1 m string at 100 N and 0.01 kg/m give?
It sounds at 50 Hz, with a wave speed of 100 m/s and a wavelength of 2 m. At the usual A4 of 440 Hz, the nearest equal-tempered note is G1.
Why does a capo or a heavier string change the pitch?
A shorter vibrating length raises the pitch, which is what a capo does. A heavier string at the same tension and length sounds lower, and a tighter string sounds higher.
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/hobby/music-string-frequency \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"length":1,"tension":100,"mass_per_length":0.01}'const res = await fetch("https://api.kit.forhosting.com/hobby/music-string-frequency", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"length": 1,
"tension": 100,
"mass_per_length": 0.01
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/music-string-frequency",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"length": 1,
"tension": 100,
"mass_per_length": 0.01
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/music-string-frequency", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"length":1,"tension":100,"mass_per_length":0.01}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"length":1,"tension":100,"mass_per_length":0.01}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/music-string-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
{
"length": 1,
"tension": 100,
"mass_per_length": 0.01
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.music_string_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.
Limits
max_abs | 1000000000000 |
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 the vibrating-string fundamental is and why musicians compute it
This calculator takes length, tension, and mass_per_length, converts optional workshop units into SI, builds the wave speed, divides by twice the speaking length, and maps a positive frequency onto the nearest twelve-tone equal-tempered note at your concert pitch. Higher harmonics are integer multiples of this fundamental if you need them after a successful call.
How to call the API, which units are accepted, and what comes back
Optional a4 sets the concert pitch used for the nearest-note mapping and defaults to four hundred forty hertz; common alternatives are four hundred thirty-two, four hundred fifteen, and four hundred forty-two. A short formula string, unit Hz, message, and steps array let you recompute the square root and the division by hand. Send a JSON body with three required finite numbers: length for the vibrating speaking length, tension for the axial force, and mass_per_length for linear density mu. Aliases include L, string_length, speaking_length, scale_length, and len for length; T, force, F, and string_tension for tension; and mu, linear_density, linear_mass_density, mu_kg_m, and mass_density for mass per unit length. Optional length_unit is one of m, cm, mm, or in and defaults to metres. Optional tension_unit is one of N, kgf, or lbf and defaults to newtons. Optional density_unit is one of kg_per_m, g_per_m, g_per_cm, or lb_per_in and defaults to kilograms per metre. Missing fields, empty strings, non-numeric text, non-finite values, a zero or negative length, a non-positive mass per unit length, negative tension, unknown unit tokens, and an a4 that is not strictly positive all return invalid_input and are never charged. On success the response echoes the inputs and units, reports the SI conversions length_m, tension_n, and mass_per_length_kg_m, then gives wave_speed_m_s, frequency_hz, wavelength_m, and, when frequency is positive, period_s plus nearest_note, midi, and cents_offset. Pricing is a flat $0.002 per successful request with unit item.
Instrument setup, limits, and how this landing differs from nearby searches
Keep every magnitude inside the published ceiling of one trillion so the square root stays finite in IEEE double precision. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when learners deliberately probe edge cases. Round-trip checks are straightforward: recompute the square root of tension over mu, divide by twice the speaking length, and confirm the published frequency_hz field within twelve-decimal rounding.
Integration use cases
Deterministic fixtures for instrument software
Seed unit tests and lutherie calculators with reproducible f₁, wave speed, and nearest-note values instead of hand-derived square roots.
Technical questions
Does the calculator name the nearest musical note?
Yes, when frequency is positive. It maps f onto 12-TET at your a4 concert pitch (default 440 Hz) and returns nearest_note, midi, and cents_offset. A slack string (T = 0) omits those fields.
What does the vibrating string fundamental 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.