macOS · PhysioNet WFDB · research use
A microscope and a telescope for ECG waveform data.
Open a PhysioNet/WFDB recording and range from the whole record down to a single heartbeat on calibrated ECG paper. The free viewer renders the signal with its annotation layers and a confirm/dismiss review workflow; a single Murmur Pro purchase unlocks the analysis instruments — beat calipers, whole-record trend lanes, variability metrics, a ranked arrhythmia review queue, and morphology clustering.
Requires macOS 26.5 or later · one-time in-app purchase for Pro
Every surface shares one viewport, so nothing ever falls out of time-lock.
Record sidebar
Every record in the folder — signal count, sample rate, duration. The first import decodes and builds the pyramid; later visits load from cache.
Bedside stage
Variability metrics, whole-record overview and hour bands, and Metal-rendered paper pinned to 25 mm/s · 10 mm/mV.
Review queue
Ranked VT/VF candidates and rhythm events, each with score, span, and model provenance. Confirm, dismiss, reset.
How it holds up
Three layers, one time axis.
Decode and pyramid
WFDB decoder, min/max pyramid, manifest writer. Multi-frequency records feed straight in — no separate ingest step.
Draw at any scale
An LOD selector and zero-copy GPU buffers keep pan and zoom smooth across multi-hour records.
Calibrate and review
Gain and speed presets, the calibration lock, annotation layers, and dispositions that persist in the bundle.
The viewer
FREE- Import WFDB records —
.hea+.dat, multi-frequency included - Calibrated ECG paper with the gain / speed seam
- The record’s own annotator layer, on trace and in queue
- Confirm / dismiss / reset review dispositions
- Low-rate trend strips: vitals, alarms, signal quality
- Exports — WFDB annotations and citable reports
Murmur Pro
ONE PURCHASE- Beat calipers — PR, QRS, QT, QTc against the patient’s own template
- Variability metrics: time domain, frequency domain, QT variability
- Computed trend lanes on one shared 72 h axis
- Ranked arrhythmia scan — VT/VF, AF, pauses, with provenance
- Morphology clustering with representative shapes
- Annotation authoring and portable session documents
Every instrument marked (Murmur Pro) unlocks together, current and future. The viewer stays free.
Documentation
Getting started
Open a record, read the bedside view, review findings, and what Murmur Pro adds.
02Reviewing a PhysioNet corpus
A worked pass over a 45,000-record dataset: open it, search it by header metadata, bring a model in as a producer, adjudicate, export.
03Reviewing a Holter database
The same loop on MIT-BIH: two channels, free-text comments, the reference beats already there as a producer — and where the fit is poor.
04What Murmur asserts
The boundary between the record, the producer, the analyst, and the app — and why the viewer never interprets a producer's vocabulary.
05Architecture
The three-layer Data Engine / Waveform Canvas / Control Overlay split and the key invariants.
06Annotation JSON schema
The wire format external producers can emit as <recordName>.annotations.json.
Performance notes
How the pyramid, LOD selector, and zero-copy GPU buffers keep pan/zoom smooth on multi-hour records.
08Citing Murmur Studio
DOI-stable citation for published work, straight from the in-app Copy citation action.
09Interaction coverage
Every gesture, key, and control surface in the window, and what each one does.