Fret Calculator: Single Scale and Multiscale Layout

Calculate 12-TET fret spacing and exact fanned-fret geometry, with neutral fret, string spread, known compensation offsets, coordinate tables, and a calibrated drawing.

#12-TET #compensation #fanned frets #fret spacing #lutherie #multiscale necks

Use this fret calculator to lay out a new fingerboard, compare neck designs, or check a fret spacing rule. It covers conventional single-scale instruments and multiscale, or fanned-fret, necks in twelve-tone equal temperament (12-TET). Guitar builders, bass builders, engineering students, and instrument designers can inspect both the acoustic spacing rule and the two-dimensional construction geometry.

Choose the layout first. For a single-scale neck, enter the nominal centreline scale length. For a multiscale neck, enter the actual uncompensated lengths along the two outer strings. These are different conventions: diverging strings are longer than their longitudinal projections. This multiscale fret calculator includes that projection correction and locates every intermediate string between the nut and saddle lines. It does not simply treat two scale lengths as distances along parallel board edges.

Set the number of strings and frets, then enter the outer-string spreads at the nominal nut and saddle. Spreads and edge margins are measured perpendicular to the neck centreline, even when the nut is slanted. The remaining strings receive equal projected centre-to-centre spacing. Select a neutral fret to place that nominal fret perpendicular to the centreline; zero aligns the nominal nut. A neutral fret beyond the installed fret count is also allowed. The board extension is measured along the centreline past the last fret.

Read the first-fret distance, octave distance, nut and saddle fan angles, and string pitches. Positive fan means that the bass end lies farther toward the bridge than the treble end. The spacing chart shows why fret gaps shrink toward the bridge. Choose a string for its detailed fret spacing calculator table, or use the board-edge table to transfer the straight slot endpoints into a drawing. Coordinates use x toward the bridge and y toward the bass side. The longitudinal origin passes through the earliest nominal outer-string nut contact.

Optional compensation accepts known shifts along the strings. Positive nut shifts move contacts toward the first fret; positive saddle setbacks extend the strings beyond the nominal saddle. Intermediate offsets are interpolated by string order. The nominal fret grid stays fixed. This is a way to include a measured setup, not a prediction of the compensation needed for a particular string, action, or tuning.

The calibrated plan preserves equal horizontal and vertical scale. For a 1:1 paper template, set the complete graphic's physical width to the reported plan width, or adjust print scaling until BOTH 100 mm calibration bars measure exactly 100 mm. The on-screen view and the Report automatically fit their available space; neither guarantees actual size. Verify the bars after printing and tiling. Drawn slot lines locate fret centres, not saw-kerf edges.

This tool does not model string stiffness, fretting stretch, action, fretboard radius, fret crown shape, or alternative temperaments. Confirm the geometry, working tolerances, and intonation on the intended instrument before cutting the final board.

How it is calculated

The ideal 12-TET fraction from a nominal nut to fret n is fn=1−2−n/12f_n=1-2^{-n/12}. Mottola's Calculating Fret Positions, retrieved text page 2, gives the modern exponent rule and a 25.5 in worked example. The octave fraction is 1/2; the two-octave fraction is 3/4.

The two-dimensional construction follows the geometry described in Aaron Spike's FretFind2D documentation (attached text pages 1–2). Here x runs toward the bridge and y toward the bass side. Let d=(Ws−Wn)/2d=(W_s-W_n)/2. For a multiscale neck, the outer strings' longitudinal projections are At=Lt2−d2A_t=\sqrt{L_t^2-d^2} and Ab=Lb2−d2A_b=\sqrt{L_b^2-d^2}. In single-scale mode both projections equal the entered centreline scale.

At neutral fraction f0f_0, place each nominal nut at xN=x0−f0Ax_N=x_0-f_0A, with x0=f0max⁡(At,Ab)x_0=f_0\max(A_t,A_b); the nominal saddle is at xB=xN+Ax_B=x_N+A. This makes the chosen nominal fret transverse. The x origin is the earliest outer-string nominal nut contact, not the earliest board corner; some board-edge coordinates can therefore be negative.

Interpolate the string endpoints across the nut and saddle by string order. Each fret intersection is Pj,n=Nj+fn(Bj−Nj)P_{j,n}=N_j+f_n(B_j-N_j). Intermediate actual scales are the Euclidean lengths ∣Bj−Nj∣|B_j-N_j|, not an arithmetic interpolation of outer scale lengths. Equal fractions are collinear, so straight fret slots pass through every nominal string intersection. Intersect each fret line with the two straight board edges; edge margins are transverse at the nominal nut and saddle.

Before evaluating slot endpoints, certify both side edges over the continuous range from the nominal nut through the board end. Each edge must advance toward the bridge, remain on its proper side of the outer strings, and intersect the fret family in forward order. The oriented intersection denominator is affine in fret fraction, so checking its two endpoint values excludes an intervening zero. For a positive denominator, the numerator of the intersection-progress derivative is monotone; its two endpoint values therefore certify forward progress throughout the interval. Rejected geometry blocks the results and bypasses the endpoint divisions.

The board end uses fend=flast+eend/[(At+Ab)/2]f_{end}=f_{last}+e_{end}/[(A_t+A_b)/2]. Its centreline coordinate is the entered extension past the last fret. Its angle follows the fret-line interpolation at this extended fraction and usually differs from the last installed fret's angle.

Signed fan is αn=atan2⁡(xb,n−xt,n,Wn+fn(Ws−Wn))\alpha_n=\operatorname{atan2}(x_{b,n}-x_{t,n},W_n+f_n(W_s-W_n)), measured from the transverse direction. Positive means bass farther toward the bridge.

Known compensation offsets move contacts along each nominal string: Nj′=Nj+cN,j(Bj−Nj)/LjN'_j=N_j+c_{N,j}(B_j-N_j)/L_j and Bj′=Bj+cS,j(Bj−Nj)/LjB'_j=B_j+c_{S,j}(B_j-N_j)/L_j. The open length becomes Lj−cN,j+cS,jL_j-c_{N,j}+c_{S,j}; frets do not move. These offsets do not by themselves enforce ideal intonation after fretting. Mottola's compensation discussion distinguishes nominal fret scale from saddle setback.

The plan uses millimetres with identical x and y scales. Its 100 mm horizontal and vertical bars provide independent print calibration. The reported full-graphic width includes annotation space, at least a 50 mm coordinate border at each longitudinal end, and the renderer's additional margins. The drawing library uses 640 px across, 28 px padding on each side, and a maximum height of 460 px; the larger of the width- and height-limited physical extents determines the reported full-graphic width.

Assumptions

  • Twelve equal semitones per octave; ideal flexible strings define the nominal grid.
  • The neck centreline is straight. String spreads are centred on it and measured transversely.
  • Single scale means fundamental centreline length; multiscale inputs mean actual outer-string lengths before compensation.
  • String centres are equally spaced at each nominal end. Nut and saddle endpoints of intermediate strings lie on straight nominal end lines.
  • The board has straight side edges with equal transverse margins at the nominal nut and saddle. Its end follows the fret-line interpolation at the extended fraction, with the entered extension along the centreline; the end angle may differ from the last fret.
  • Compensation inputs are externally determined along-string distances, linearly interpolated between the two outer strings. This simple interpolation is a design assumption, not a universal string-set compensation pattern.
  • Row 0 denotes the nominal nut datum. Its shifted-nut offset is negative when a positive nut shift is applied; the real open string length appears in the string table.

Where it applies

For planar 12-TET layouts with 2–12 strings, 1–36 installed frets and positive input dimensions within the displayed ranges. Both outer multiscale lengths must exceed their transverse endpoint change, the shifted nut must remain behind fret 1, and the board must end before the nominal saddle. Both board sides must advance toward the bridge without a fold, and fret-edge intersections must remain nonsingular and forward-ordered throughout the entire board, including between installed frets. Invalid outlines block the results. A fan beyond 40° still prompts a separate playability warning; this is a design advisory rather than an intonation limit.

This is a geometric layout, not an automatic compensation or structural-strength model. It excludes string stiffness, gauge-dependent spacing, fretting stretch, action, fretboard radius, crown/contact geometry, zero-fret hardware details, tooling kerf and non-12-TET scales. The 12th-fret result remains a reference even if fewer than 12 frets are installed.

The viewer and its Report fit scenes to the available page. They are not automatically full size. Use the reported plan canvas width or both 100 mm bars to set physical scale. Confirm both axes after any printing, scaling or tiling. Numerical precision does not imply the same manufacturing accuracy.

References

  • R. M. Mottola, Calculating Fret Positions. Modern 12-TET formula, worked example, and nominal multiscale layout. https://www.liutaiomottola.com/formulae/fret.htm
  • Aaron Spike, FretFind2D documentation and original reference implementation. Two-dimensional line-segment method and perpendicular-distance table. Original source is GNU AGPL 3.0; this calc uses independently written formulas and drawings, with original code executed only as a numerical reference. https://github.com/acspike/FretFind2D ; https://www.projectguitar.com/fretfind2d/
  • R. M. Mottola, Fretted Instrument Bridge Saddle Compensation Calculator. Nominal scale, string stretching and saddle setback. https://www.liutaiomottola.com/formulae/compensation.htm

Inputs

InputSymbolUnitDefault
Neck layoutlayoutMultiscale — fanned frets
Single-scale centreline length
Nominal distance along the neck centreline, as in a conventional fret calculator. Outer strings are slightly longer when the string spread increases.
L_singlemm647.7
Treble outer-string scale
Uncompensated length measured along string 1, not projected along the neck.
L_tmm647.7
Bass outer-string scale
Uncompensated length measured along the last string. Either outer string may be longer.
L_bmm673.1
Neutral fret
This nominal fret is perpendicular to the centreline. Zero gives a perpendicular nominal nut; the neutral fret may be beyond the last installed fret.
n_neutral8
Number of fretsn_frets24
Number of stringsn_strings6
Outer-string spread at nominal nut
Centre to centre, measured perpendicular to the neck centreline, not along a slanted nut.
W_nmm35
Outer-string spread at nominal saddle
Centre to centre, perpendicular to the centreline. Intermediate strings have equal projected spacing.
W_smm52.5
String-to-board edge margin
Transverse margin on both sides, constant at nominal nut and saddle reference lines. Frets are extended to these straight board edges.
edgemm3
Board extension past last fret
Distance along the centreline past the last fret. The board-end angle follows the fret-line interpolation at that extended position, so it can differ from the last fret's angle.
end_extramm12
String for detailed spacing table
String 1 is the treble edge. Select a number no greater than the string count.
string_pick1
Apply known nut and saddle offsets
Move contact points along each string; retain the nominal 12-TET fret grid. These offsets must come from a measured setup, not from this geometry calculation.
compensatedfalse
Treble nut shift toward first fretC_ntmm0
Bass nut shift toward first fretC_nbmm0
Treble saddle setbackC_stmm0
Bass saddle setbackC_sbmm0

Results

With the default inputs above, the calc gives:

ResultValue
Treble first fret from nominal nut36.353 mm
Treble 12th fret from nominal nut323.85 mm
Nominal nut fan-15.03 deg
Nominal saddle fan16.95 deg
Nut string pitch (projected)7 mm
Saddle string pitch (projected)10.5 mm
Full graphic width for 1:1 printing848.05 mm

Checked against sources

Each case below was calculated by this calc and agrees with the value from its source (within the tolerance where one is shown).

Published 25.5 in first-fret example

Source: R. M. Mottola, Calculating Fret Positions, modern worked example: 25.5 in gives 1.431 in to fret 1; convert both to mm (25.5 in = 647.7 mm). The 0.0005 in tolerance accommodates the published three-decimal rounding and its rounded divisor 17.817. The exact 12-TET exponent is retained. Equal nut and saddle spreads isolate the published one-dimensional example. The octave is half scale, as stated on the same page. https://www.liutaiomottola.com/formulae/fret.htm

Inputs: Neck layout = Single scale — parallel frets; Outer-string spread at nominal saddle = 35 mm; the others as above.

ResultSourceThis calc
Treble first fret from nominal nut36.347 mm36.353 mm
Treble 12th fret from nominal nut323.9 mm323.9 mm

Published FretFind2D perpendicular-distance table

Source: Aaron Spike, FretFind2D documentation, table of perpendicular-distance fractions. Fret 8: 0.37004; fret 12: 0.50000; fret 24: 0.75000. Fret 8 tolerance is half the last published decimal. Fractions are dimensionless and independent of the outer scales. https://github.com/acspike/FretFind2D/blob/master/src/fretfind.html

Inputs: the default inputs above.

ResultSourceThis calc
Neutral fret fraction0.370.37
12-TET fraction from nominal nut [9]0.370.37
12-TET fraction from nominal nut [13]0.50.5
12-TET fraction from nominal nut [25]0.750.75

Independent FretFind2D multiscale implementation

Source: Reference values were generated by executing Aaron Spike's original unmodified getGuitar() and fretGuitar() with form readers stubbed for the inputs listed here; this is a cross-check against an independent implementation, not a published measurement or table. Retrieved 2026-10-28 from https://github.com/acspike/FretFind2D/blob/master/src/fretfind.html and https://github.com/acspike/FretFind2D/blob/master/src/fretfind.js (GNU AGPL 3.0). Coordinates are rotated so x points along the neck, y toward bass, and translated to the earliest nominal outer-string nut contact. No implementation code is incorporated into this calc.

Inputs: String for detailed spacing table = 3; the others as above.

ResultSourceThis calc
Nominal treble nut x9.4 mm9.4 mm
Nominal treble saddle x657 mm657 mm
Actual nominal string scales [3]657.8 mm657.8 mm
Nominal nut-to-fret along selected string [13]328.9 mm328.9 mm
Treble string fret x [2]45.749 mm45.749 mm
Bass string fret x [25]504.8 mm504.8 mm
Treble board-edge fret x [13]333 mm333 mm
Treble board-edge fret y [13]-24.873 mm-24.873 mm
Bass board-edge fret x [13]336.7 mm336.7 mm
Bass board-edge fret y [13]24.877 mm24.877 mm

Reject the reviewer's folded-board regression

Source: Regression supplied by the independent review of this calc: L_t=150 mm, L_b=1500 mm, W_n=120 mm, W_s=10 mm, neutral fret 36, margin 12 mm, and 36 frets. The unguarded treble endpoints jump from approximately (-2440, 1053) mm at fret 27 to (4169, -930) mm at fret 28, crossing a singular fret-edge intersection. Expected outcome is rejection (geometry_ok=0), not a numerical slot coordinate. The blocking valid_geometry condition uses the same geometry_ok flag.

Inputs: Treble outer-string scale = 150 mm; Bass outer-string scale = 1,500 mm; Outer-string spread at nominal nut = 120 mm; Outer-string spread at nominal saddle = 10 mm; Neutral fret = 36; String-to-board edge margin = 12 mm; Number of frets = 36; the others as above.

ResultSourceThis calc
Board geometry valid (1 = yes)00

Reject the mirrored folded-board regression

Source: Mirror of the independently reviewed folded-board regression. Swapping the treble and bass scales must also reject the backward/folded side and singular fret-edge family. This is an analytic symmetry regression, not a published measurement.

Inputs: Treble outer-string scale = 1,500 mm; Bass outer-string scale = 150 mm; Outer-string spread at nominal nut = 120 mm; Outer-string spread at nominal saddle = 10 mm; Neutral fret = 36; String-to-board edge margin = 12 mm; Number of frets = 36; the others as above.

ResultSourceThis calc
Board geometry valid (1 = yes)00

Related Resources

Responses

Your email address will not be published. Required fields are marked *

L ading...