Cadence logo

Cadence

Behavioral signal from any video you're in — voice, gaze, facial dynamics, speech timing. Live capture from Zoom, Teams, Meet, an LMS-embedded session, or upload a past recording. All processing local on your Mac.

Read whitepaper

F₀ · pitch

142Hz

σ 18 · jitter 0.4% · HNR 14 dB

Gaze entropy

2.31bits

4 × 4 grid · max 4.00

Multimodal convergence

0.84

Pearson r · acoustic × visual × facial

Synthesizer 14:22 · gen 3

F₀ flattened in the 60 s before the 14:22 long-pause-end, with a parallel drop in gaze entropy and a tighter FACS-13 AU4 brow signature. Three signals converged in the same minute — consistent with a brief attentional dip, not stress. Citation: Stegmann 2020 §4.2.

Live indicators · 7

  • F₀ flattening0.91
  • Pause count spike0.78
  • Reduced gaze entropy0.74
  • AU4 (brow lowerer)0.67
  • Turn-taking latency ↑0.62

FACS-13 · action units

5/ 13 active

Anomaly capture

F₀ spike · 14:22

Pipeline status

AVAudioEngine16 kHz
Vision · 76 lmRev 3
SpeechAnalyzeropt-in
8 agentswave-parallel

Universal binary — Apple Silicon and Intel · macOS 26+. Extension works with Chrome, Brave, Arc, Edge, Opera.

Inside the app

What you're actually working with.

Open a session and the dashboard leads with the AI's read in plain English, with the receipts — confidence interval, repeatability, per-modality breakdown — one click away. Ask follow-ups in the chat panel; it's anchored to this session's data, so "What did the acoustic agent see at 1:20?" actually answers from the session.

What Cadence sees

YIN pitch detection at 16,000 samples per second. 76 face landmarks per frame. Per-word speech timing on every utterance. Distilled into 32 stable numbers per 30 seconds — none tell a story on their own; together they're a behavioral fingerprint.

Voice prosody

Pitch contour, jitter, shimmer, speaking rate, pause distribution.

Gaze patterns

Fixation duration, saccade frequency, time looking toward the camera.

Facial dynamics

FACS-13 action-unit intensities, expression entropy, head-movement RMS.

Speech timing

Turn-taking, latency to respond, balance of who is talking when.

Lexical content

Vocabulary diversity, repetition, sentence structure — never the words themselves.

Cross-session signal

The same 32 indicators extracted week after week, so trends are comparable.

Beyond the periodic capture

Six detectors that catch the moments worth re-watching.

The dashboard saves a frame every 10 seconds by default. On top of that, six perception-side detectors fire off-cycle and stamp an extra still on the timeline whenever the conversation does something a clinician would want to scroll back to. Each is independently toggleable; all share a global throttle so a single beat never produces six redundant frames.

Long pause

A thinking pause resolves — capture the moment of speech resumption.

Pitch jump

A voiced F0 sample spikes above the user's rolling baseline.

Head turn

Rapid yaw / pitch / roll change between adjacent Vision frames.

Gaze return

Eyes come back to the camera after a sustained look-away.

Blink burst

Five or more blink onsets land inside a three-second window.

Conversation flip

The dominant speaker just changed — the 30-second talk-time share crossed 50%.

Where it captures

Native meeting apps, browser meetings, and LMS-embedded sessions inside iframes.

Native macOS apps no extension needed

Zoom Microsoft Teams Webex FaceTime

Browser meetings Cadence Bridge

Zoom Web Google Meet Microsoft Teams Web Webex Web

LMS-embedded (iframe) Cadence Bridge

Canvas Conferences Blackboard Collaborate BigBlueButton Brightspace / D2L Moodle

Cadence Bridge

The browser is a blind spot. Bridge closes it.

macOS sees Zoom and Teams. It can't see Google Meet in a Chrome tab, or a classroom call inside a Canvas iframe. The Bridge does — and forwards nothing but the URL.

  • URL only. Never the audio, video, or transcript stream.
  • Local pipe. Browser → Cadence on your Mac. No server in the path.
  • LMS-aware. Canvas, Blackboard, Moodle, Brightspace.
Cadence
Cadence Bridge
Connected

Video session detected

Google Meet — quiet-meeting-room

meet.google.com/abc-defg-hij

Bridging · live 12
session 4:32 last event 2s ago events 12
Forwarded9:24 PM
Channelnative-messaging
Daemon127.0.0.1:18047
Local Native Messaging only. The Bridge never captures audio, video, or transcript — the desktop app does.

Or after the fact

Analyze a recording you already have.

Drop in an interview, lecture, or any past recording.

Hand Cadence an audio or video file. It runs the same perception + reasoning pipeline a fresh session does — indicators, citations, repeatability, Synthesizer narrative, anomaly captures. Add video and the Vision pipeline runs on the frames too: landmarks, gaze, FACS-13 AUs, blink + head + gaze-away bursts.

WAV M4A MP3 AIFF MP4 MOV

Or hand it a whole stretch at once.

Months of weekly sessions, a research arm's full set, every interview with one subject — Cadence analyzes each the same way, then writes one read across the lot: what changed, what held, where the arc turned. Every recording keeps its own page; the batch sits on top.

How it reasons

Eight specialists. One verdict. Every claim sourced.

One model in a black box is a guess. Cadence fans the feature stream out to eight focused agents, then a Synthesizer reconciles them — with calibration anchors and a live citation trace on every indicator that reaches the dashboard.

AcousticAgent

F0, jitter, shimmer, pause structure.

GazeAgent

Fixation, saccade, camera-attention.

LinguisticAgent

Lexical diversity, disfluency, MLU.

TemporalAgent

Turn-taking, response latency.

BaselineAgent

Compares to your own calibration.

CitationAgent

Pulls supporting studies from the library.

CitationTruther

Validates every DOI against OpenAlex. Drops retractions, flags topic drift.

ClinicalFramingAgent

Keeps language correlational, never diagnostic.

Synthesizer

The closer. Reconciles every agent into the indicators you see, attaches citations + repeatability tiers, writes the session's narrative.

Grounded in literature

Every metric carries a citation. Every citation can be resolved to an open-access abstract.

47

peer-reviewed studies seed the on-device citation library on first launch

26

measurements in docs/METRICS.md feed 12 indicator kinds, each tied to its strongest support

250M+

live validation against OpenAlex — every cited DOI checked for retraction and topic grounding at persist time

No paraphrasing. CitationAgent pulls the actual abstract from the local library (47 seeded studies, extensible via OpenAlex), quotes the claim, links the DOI. Every citation then runs a truthing pass against OpenAlex's 250M-work graph: retractions dropped, off-topic resolutions flagged. Indicators below the Fleiss 0.75 clinical-decision threshold (Stegmann 2020) are chipped "low repeatability" — surfaced, not suppressed.

Fusaroli 2017 · ASD voice meta-analysis (30+ studies) Bone 2014 · jitter / shimmer / HNR Parish-Morris 2016 · pause structure Losh & Capps 2003 · lexical diversity Stegmann 2020 · repeatability priors

Live, grounded, on-device · Apple Intelligence

Citation-grounded reasoning, mid-session.

When several signals move together in the same window — pitch flattening, gaze drifting, sustained AU4 — Apple's on-device language model reads the convergence pattern and says what it's seeing, citing the actual papers from the local library. No cloud round-trip.

"F₀ variability flattened with a parallel drop in gaze-toward-camera and sustained AU4 — three signals converged in the same 90 s window. Fusaroli 2017's voice meta-analysis finds this pattern replicates across 30+ studies; Klin 2002 supports the gaze observation."

A card slides in. Dismiss it and the moment still gets preserved on the session timeline. The engine speaks rarely by design — three converging signals, five-minute cooldown, same-pattern suppression — and every threshold is yours to set.

On-device only · no API call, no egress Citation-grounded · cites only the library Cross-modal · patent's primary claim, live

Self-audit · runs every 30 days

The system reasons about its own grounding.

Cadence's interpretations rest on a curated baseline of peer-reviewed research. That baseline cannot be allowed to ossify — papers get retracted, methods get superseded, fields refine consensus over time. So Cadence audits its own corpus the way a working scientist would: periodically, with evidence, under adversarial review.

"Auditor flagged Wang 2008 — citation velocity down 89% from peak, primary topic re-classified by OpenAlex. Advocate found one recent recitation (2023, indirect). Judge proposes replacement with Patel 2024 meta-analysis (n = 31 studies, confidence 0.82). Skeptic could not falsify. Quarantining Wang 2008 for 30 days."

Four passes — Auditor, Advocate, Judge, Skeptic — each with a required evidence shape and a structured-output schema the model cannot drift past. The Judge must name the superseding work and quote its abstract; the Skeptic must try to falsify. Anything that gets through both lands in a shadow seed with a 30-day quarantine before becoming permanent. Foundational papers are protected by a hard allowlist the model cannot override. Every change is git-tracked, reversible, and recorded with the verdict that proposed it.

Read-only Phase 1 · signals visible in the Audit tab today Careful-LLM verdicts · evidence schema + adversarial review Shadow seed + quarantine · 30-day undo on every change Reproducible · every finding tagged with the seed version it ran against

The grounding corpus, live

Every peer-reviewed citation Cadence reasons against. Bundled with every install.

Static by design. Every install ships with the same baseline so a finding from one machine and a finding from another can be compared against the same evidence. The audit arc above runs against this list inside the app; verdicts land in a per-account overlay (quarantine + 30-day veto window) and never silently mutate this file. The list below is fetched live from research_seed.json at the repo root, so what you see is exactly what your Mac would load on first launch.

47 citations 8 cohorts Static · ships with the app Last reviewed … history →

Loading the corpus…

Source: Sources/CadenceCore/Resources/research_seed.json · Audit pipeline: Auditor → Advocate → Judge → Skeptic

Security — defense in depth

Privacy is the architecture (Cadence doesn't send data worth contracting over). Security is the second layer — every cloud hop, every credential, every privileged surface gated.

App Attest

Every cloud-reasoner call is signed with Apple's App Attest — proves the request came from a verified build of the Cadence app on a verified Apple device. The server rejects anything that isn't.

HIPAA BAA path

Eleplan ⇄ AWS + Eleplan ⇄ Anthropic BAAs signed; OpenAI ZDR in force. The cloud reasoner proxies through our infrastructure — provider API keys never touch the client.

Admin lock

The Admin panel is gated by a password tied to your Eleplan account, verified server-side. Same password across every Mac you sign in on; not resettable by physical access. Grants expire automatically (default 30 days).

Keychain storage

Sensitive credentials (Cognito tokens, admin-access grant, bridge token) live in the macOS Keychain with WhenUnlockedThisDeviceOnly — strictest tier. Never backed up, never migrated, locked while the screen is locked.

k-anonymous federation

Cohort aggregates suppress any value below k = 5 contributors. The math forces anonymity — it's not a policy you have to trust us on. Optional and opt-in regardless.

Signed updates

Every release is Developer-ID signed + notarized; in-app updates run through Sparkle with an EdDSA signature verified against a key bundled in the .app. A tampered appcast can't ship to your machine.

Where it lives

All of this happens on your Mac. Raw audio, video, and transcripts never leave the device.

Cadence captures and processes video locally — both live sessions and uploaded recordings — with macOS permission prompts you can revoke at any time. The only thing that ever ships to a server — and only if you opt in — is a small numeric fingerprint of the features above. No recordings. No transcripts. No third-party SDKs or analytics.

Other participants' voices, when the system-audio tap is on, are used in-memory only — they feed the talk-time split and turn-taking latency, then drop. Never recorded, never transcribed, never sent.

Cadence is not a diagnostic device. Indicators are correlational with published research findings, not predictions about any individual. Built for opt-in deployment with diagnosed families, consenting adults, and supervised clinical / research use.

Changelog

What's shipping in Cadence.

Notable changes per release. Rendered live from CHANGELOG.md at the repo root — same file the Mac app bundles for its in-app "What's new" surface.

Loading changelog…

Source: CHANGELOG.md

The full rundown

Everything Cadence is actually running.

Per session — live capture or uploaded recording. On your Mac. In real time. Every bullet is a real path in the codebase, not a roadmap item.

01

Audio DSP

Frame-rate, on-device

  • AVAudioEngine input tap at 16 kHz, vDSP-accelerated RMS per frame.
  • YIN pitch detection (Cheveigné & Kawahara 2002) with parabolic refinement.
  • Jitter (period-perturbation) and shimmer (amplitude-perturbation) per voiced window.
  • Harmonic-to-noise ratio (HNR) on the F0 series.
  • Voiced-onset counting → speaking-rate proxy (no transcript required).
  • Cross-stream VAD on mic vs remote-tap → turn-taking latency in milliseconds.
  • Rolling F0-spike detector: 2σ above the last 50 voiced samples, 10 Hz SD floor to suppress stable-speech false positives.
  • Long-pause-end detector fires the moment a ≥1.5 s silence resolves.
02

Computer Vision

Apple Vision framework + on-device Core ML, per frame

  • Two bundled Core ML models ported from Google MediaPipe (Apache-2.0): FaceMeshV2 (478 3D facial landmarks from a 256×256 face crop) → BlendshapesV2 (52 ARKit-vocabulary blendshape coefficients). On-device, ~3.8 MB combined, no pixels leave the Mac.
  • VNDetectFaceLandmarksRequest, constellation76Points, Revision 3 — used as the face-detection front end and as a fallback when the Core ML pipeline is disabled.
  • Yaw / pitch / roll head pose extracted frame by frame.
  • 52 ML-derived blendshapes (browInnerUp, eyeBlinkLeft/Right, cheekSquintLeft/Right, mouthSmileLeft/Right, jawOpen, …) → mapped onto FACS-13 action units (AU1, 2, 4, 5, 6, 9, 10, 12, 15, 17, 20, 25, 26). The handwritten landmark-geometry heuristics stay as a fallback when admins disable the ML path.
  • I-DT fixation detection + velocity-based saccade-rate computation.
  • Shannon gaze entropy over a 4×4 grid (max 4 bits, uniform scanning).
  • Per-session running max eye openness baseline → user-adaptive blink detection.
  • Head-burst detector: L2-norm of yaw/pitch/roll deltas above 0.5 rad.
  • Gaze-away-end state machine: sustained look-away ≥2 s then return.
  • Blink-burst detector: 5+ blinks inside a 3-second sliding window.
03

Language

macOS 26 SpeechAnalyzer, opt-in

  • SpeechAnalyzer + SpeechTranscriber on-device transcription.
  • Per-word timings with speaker tags.
  • MATTR (Moving Average Type-Token Ratio), window = 50 words.
  • Trigram repetition score over the transcript.
  • Mean length of utterance + disfluency-marker count.
04

Reasoning

Multi-agent, citation-grounded

  • 8 specialist agents fan out wave-parallel: Acoustic / Gaze / Linguistic / Temporal / Baseline / Citation / ClinicalFraming / Synthesizer.
  • Deterministic rule-based prior fed to the LLM as a structured anchor — the model can't hallucinate past it.
  • Multimodal convergence: mean pairwise Pearson r across acoustic × visual × facial signals.
  • ICC(C,1) + WSCV repeatability against literature priors (Stegmann 2020); Fleiss 0.75 clinical-decision threshold.
  • RAG over a peer-reviewed corpus with auto-tagged indicator-aware retrieval.
  • Rolling synthesis: a real LLM call every 60 seconds during a live session.
  • 6 anomaly detectors drop off-cycle JPEGs at the moments worth re-watching.
  • FoundationModels (Apple Intelligence) on-device or Claude through a HIPAA-BAA proxy.
05

Privacy & infrastructure

On-device first, BAA-backed everywhere else

  • All processing on-device by default; cloud reasoner is opt-in and proxied.
  • Remote audio used-and-discarded: drives the talk-time split + turn-taking latency, then drops. Never recorded, never transcribed, never sent.
  • HIPAA-eligible AWS infra + signed BAA; OpenAI zero-data-retention BAA for cloud reasoning.
  • Salted SHA-256 fingerprints with k-anonymized cohort federation.
  • LaunchAgent daemon + local HTTP API on 127.0.0.1:18047 with SSE event stream.
  • Chrome / Brave / Arc / Opera / Chromium native-messaging bridge for browser meetings; LMS iframes (Canvas, Blackboard, BigBlueButton, Brightspace, Moodle) supported.
  • Session reprocessor: rerun the perception + reasoning pipeline over persisted audio/video with generation-tagged indicators (compare old vs new analysis).