Audio and font fingerprinting
Two quieter tracking signals — the Web Audio API and installed fonts — and how to keep both consistent with a profile's platform.

TL;DR
Audio fingerprinting hashes tiny differences in how your device processes sound. Font fingerprinting detects exactly which fonts you have installed. Both leak your platform. A consistent profile ships a platform-matched font set and stable audio output.
Canvas and WebGL get the attention, but two quieter signals — audio and fonts — are just as useful to trackers, and just as easy to get wrong when spoofing.

Audio fingerprinting
The Web Audio API can generate and process a signal entirely offline with
OfflineAudioContext. The exact floating-point output depends on the device's audio
stack, so hashing it yields a stable identifier.
const ctx = new OfflineAudioContext(1, 44100, 44100);
const osc = ctx.createOscillator();
osc.type = "triangle";
osc.frequency.value = 10000;
osc.connect(ctx.destination);
osc.start(0);
const buffer = await ctx.startRendering();
// hash the samples in `buffer`As with canvas, the fix is a stable value per profile that matches the platform — not per-request noise.
Font fingerprinting
Sites detect installed fonts by measuring the width and height of text rendered in each candidate font, comparing against a fallback. The set of fonts that render differently reveals which are installed — and font sets are strongly tied to the operating system.
The danger for spoofing: if a profile claims Windows but exposes the macOS system fonts (or a Linux server's font set), the mismatch is obvious. This is a common way headless automation on Linux gets flagged.
Keeping both consistent
A believable profile:
- Ships a platform-matched font pack so a Windows profile exposes Windows fonts, even when the browser runs on Linux.
- Produces a stable audio hash per profile, consistent with the platform.
- Keeps these aligned with the canvas, GPU and user-agent.
VeilBrowser bundles platform font packs and controls audio at the browser level so host fonts never leak during cross-OS operation. See the platform docs.
FAQ
Try it
Run cross-platform profiles without leaking host fonts or audio traits. Start free or read about profiles.