Conversion Lab

Inspect the evidence, not just the claim.

Reproducible PDF benchmarks and audio reference findings, published with synthetic inputs, measured outputs, source provenance, hashes, and explicit limitations.

Audio v1 reference corpus

Four workflows, measured against deterministic signals.

These results come from recorded FFmpeg CLI reference commands over CC0 synthetic PCM fixtures. They test duration, frequency, join-boundary attenuation, echo-tail energy, and sample alignment. They do not establish performance or fidelity for every source file or device.

Generated
September 3, 2026
Corpus
audio-v1
Source commit
e11eef48f52df732e0ef32d69f7ea10635b150bc

01 · ffmpeg-cli-reference

Audio Joiner

Ordered tones, joined with an attenuated boundary.

Output
2.25 s
First tone
440 Hz
Second tone
660 Hz
Boundary RMS
0.004157 FS

02 · ffmpeg-cli-reference

Audio Speed Changer

A 0.75x tempo reference with pitch preservation.

Input
2.4000 s
Output
3.1934 s
Dominant tone
523.2 Hz

03 · ffmpeg-cli-reference

Slowed and Reverb

Tape-style slowdown with a measurable echo tail.

Input
2.0000 s
Output
3.0625 s
Dominant tone
264 Hz
Echo-tail RMS
0.031474 FS

04 · ffmpeg-cli-edit-reference

Voice Recorder edit

A deterministic trim of a synthetic voice-like signal.

Input
2.2000 s
Output
1.8 s
Alignment RMS
0 FS
Bar chart comparing measured input and output duration for four synthetic audio workflows.
Bar chart comparing target and measured dominant frequencies for audio join, speed, and slowdown references.
Chart showing passing boundary, echo-tail, and sample-alignment RMS checks against declared thresholds.

FFmpeg CLI reference

Deterministic commands and signals establish the published reference outcomes above.

Browser release gate

Chromium, Firefox, and Playwright WebKit run the shipped workflow as a separate exact-candidate gate. That evidence does not certify Safari or archive the built artifact.

User-device behavior

Hardware, memory, source media, browser versions, and permissions vary. Users should review important exports on their own device.

Review status and limitations

Automated evidence contracts passed when this corpus was generated. Independent technical review and native-language review remain pending. The corpus is synthetic, narrow, and designed to expose specific semantic outcomes. It does not demonstrate arbitrary-source fidelity, cross-device equivalence, browser speed, microphone capture, or room acoustics.

PDF benchmark corpus

Shipped converter functions on seeded synthetic PDFs.

FileMorf's local PDF tools use pdf-lib and JSZip. The benchmark harness calls the shipped converter functions against a fixed corpus so releases remain comparable. Reference timings were produced in a server-class JavaScript runtime, not on a representative phone or laptop.

Last measured July 28, 2026 · build 4ef6888

Merging

BenchmarkInputMedianp95Output
Merge 2 PDFs
mergePdfs() over 2 three-page documents.
2 PDFs × 3 pages2.4 ms5.7 ms9.95 KB
Merge 10 PDFs
mergePdfs() over 10 three-page documents.
10 PDFs × 3 pages6.3 ms9.1 ms45.94 KB
Merge 50 PDFs
mergePdfs() over 50 three-page documents.
50 PDFs × 3 pages30.4 ms32.7 ms226.95 KB

Splitting & extraction

BenchmarkInputMedianp95Output
Split a 20-page PDF into single pages
splitPdf() with no range — one output document per page.
1 PDF × 20 pages5.9 ms8.1 ms45.16 KB · 20 files
Extract pages 1–5 from a 100-page PDF
extractPages() with the range "1-5".
1 PDF × 100 pages7 ms7.3 ms8.65 KB

Page tools

BenchmarkInputMedianp95Output
Number every page of a 100-page PDF
addPageNumbers() with the "page n of total" format.
1 PDF × 100 pages32.3 ms36.9 ms177.4 KB
Watermark every page of a 100-page PDF
watermarkPdf() drawing diagonal "DRAFT" text on each page.
1 PDF × 100 pages29.9 ms31.5 ms183.16 KB

Packaging

BenchmarkInputMedianp95Output
Package 50 PDFs into a ZIP
JSZip generateAsync with the same defaults the site's batch download uses.
50 PDFs × 3 pages5.5 ms10.1 ms277.63 KB

PDF methodology

  • Each benchmark runs 1 warm-up pass, then 7 timed runs. The table reports the median and 95th percentile.
  • The code under test is src/lib/converters/pdf.ts, with pdf-lib 1.17.1 and JSZip 3.10.1.
  • The corpus contains seeded pseudo-random text, no customer or third-party files. Every file's SHA-256 is in the manifest.
  • Reference environment: Node.js v23.7.0 on Apple M2 Pro (arm64, 10 cores).

PDF limitations

  • User devices run the same PDF functions, but these timings come from reference hardware and should not be read as a promise for a particular browser or device.
  • The corpus is text-only. Scanned, image-heavy, encrypted, unusually large, or malformed documents can behave differently.
  • Canvas image conversion and interactive browser timings are outside this PDF timing table. Audio reference findings and the separate browser release gate are documented above.

Download and inspect

The measurements, fixtures, manifests, and generator are public. Use the hashes in the manifests to verify local copies before comparison.

Audio evidence

Show all WAV fixtures

PDF benchmark data

Found a methodology issue or want a correction? Email support@filemorf.com. The harness and source are available at github.com/jddelia/filemorf-lab. Product context is on the about page.