The bare stem
A plain upright without an entry flag or foot. The ink meets cap and baseline.
A geometric sans built for precise labels, lucid figures and the small rhythms of an instrument display. Two widths; one coherent stroke system.
Private typeface / created for David Sargent Wood’s personal use only
Edit the text, choose a width and weight, and inspect the design at your intended size.
The width selection also updates the design samples and complete glyph grid. All six fonts load from the site’s /fonts/ directory.
Measured arcs, deliberate elbows and continuous joins preserve the character of the supplied drawings.
A plain upright without an entry flag or foot. The ink meets cap and baseline.
The upper construction meets the lower bowl through a continuous contour. The junction is part of the drawing, not a coincident pair of endpoints.
A closed upper counter, connected elbow and projecting crossbar. Each junction is unified before font export.
A long upper-left stem meets the lower bowl, whose returning arc gives the figure its distinctive gait.
0123456789 / 06:38:45
The Standard design opens the letter and figure architecture. Condensed keeps a narrower rhythm. Stroke width stays constant within each weight.
BPM RHYTHM
0123456789
HAMBURG
BPM RHYTHM
0123456789
HAMBURG
Each diagram uses actual Regular outlines. Cap height is 700; baseline is 0. Reflection, uniform stems and unified joints govern the construction.
Extra Thin uses a 22-unit nominal stem, Thin 34 and Regular 58. Each width is drawn at its final proportions; the Standard face keeps the stroke mass of the corresponding Condensed face.
Core capitals and figures align exactly to their cap and baseline guides. Accents, descenders and connected box-drawing borders have their own deliberate extents.
| Metric / units | Standard | Condensed |
|---|---|---|
| Units per em | 1000 | 1000 |
| Cap height | 700 | 700 |
| x-height | 510 | 510 |
| Ascender | 800 | 800 |
| Descender | -240 | -240 |
| Line gap | 160 | 160 |
| Tabular figure advance | 680 | 500 |
Latin, Greek and Cyrillic are joined by technical signs, media controls, arrows, currency, music and connected box drawing.
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ÀÁÂÃÄÅ Æ Ç ÈÉÊË Ð Ñ Ö Ø Œ ß
0123456789 34 43 3344
!?.,:; '" () [] {} / \ & @ # %
$ € £ ¥ + − × ÷ = ≠ ≤ ≥ ± ∞
ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ
αβγδεζηθικλμνξοπρστυφχψω
ΆΈΉΊΌΎΏ άέήίόύώ
АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
абвгдеёжзийклмнопрстуфхцчшщъыьэюя
↶ ↷ ↺ ↻ ⇄ ⇆ ∿ ⌇ ⌕ ⌖ ⎅ ⎓ ⏏ ⏚ ⏛ ⏩ ⏪ ⏫ ⏬ ⏭ ⏮ ⏯ ⏸ ⏹ ⏺ ⏻ ⏼ ⏽ ⏾ ▢ ▣ ▪ ▫ ▬ ▭ ▮ ▯ ▰ ▱ ◈ ◉ ◎ ◐ ◑ ◒ ◓ ◦ ◫ ◯ ☐ ☑ ☒ ⟲ ⟳ ⬡ ⬢ ⬣ 🎚 🎛 🎤 🎧 🎹 📶 🔀 🔁 🔂 🔃 🔄 🔅 🔆 🔇 🔈 🔉 🔊
┌──────┐
│ 120 │
└──────┘
Every character below is present in both widths. Search by character, Unicode name or code point, then select a tile for its identity.
Set concise labels, keep tracking modest, and let tabular figures carry the timing.
Install six TTFs for both widths and all weights. For the web, select family BPM or BPM Condensed, and weight 100, 200 or 400.
@font-face {
font-family: "BPM Condensed";
src: url("/fonts/BPMCondensed-Thin.woff2") format("woff2");
font-weight: 200;
font-style: normal;
}
.tempo {
font-family: "BPM Condensed", sans-serif;
font-weight: 200;
font-synthesis: none;
}Use Regular for small labels. Proof the thinnest strokes on the intended screen before committing.