Skip to content
mdr
All work
planning2026·personal

VR Guitar Tuner

Hands-free spatial tuner for Quest 3 passthrough. Tune a real guitar without breaking VR immersion. Rust + DSP, SDK pitch to VR music apps.

Screenshot of VR Guitar Tuner

TL;DR

  • VR-native spatial tuner — anchored to the guitar via passthrough + hand-tracking, head-locked fallback.
  • Real-time pitch DSP (autocorrelation + cents), Rust audio path for low-latency analysis.
  • Dual model: standalone app + embeddable SDK for third-party VR music apps.
  • 10-document strategy stack (BMC, UX, UI, technical, QA, GTM, branding) — planning depth as deliverable.
  • Agent-driven dev workflow: scoped skills + hooks in a structured .agents/ directory.

Architecture

Flow
DEVICEDSPSPATIAL UISDK SURFACEHeadset micsQuest 3 · Vision ProHand + passthroughtrackingPitch engineautocorrelation + centsRustWasm corecross-platformHeadstock anchorhead-locked fallbackSpatial tunerin-world readoutEmbeddable SDKpitch feed3rd-party VR appsjam rooms · lessons

Intended architecture (pre-development). Headset mics → Rust DSP pitch detection → spatial UI anchored to the headstock. The same pitch engine is exposed as an SDK for third-party VR music apps.

data · read / writesync · HTTP / RPCasync · event

Problem

VR music apps (Paradiddle, Unplugged, Virtuoso, jam-rooms) are great until a string drifts. Then you pause the experience, lift the headset, find your phone or a clip-on tuner, tune, put the headset back on, re-orient, and lose flow. The whole point of immersion is broken by a 30-second hardware errand. No spatial tuner exists for Quest 3 yet — the gap is obvious once you've tried.

Approach

A standalone Quest 3 / Vision Pro app, plus an SDK third-party VR music apps can embed. The headset's microphones drive a DSP pitch-detection pipeline (autocorrelation + cents-deviation); a 3D spatial tuning interface anchors to the guitar headstock via passthrough hand-tracking, or floats head-locked if the user prefers. Built in Rust for the audio path (latency-sensitive), Wasm for the cross-platform parts, and the Quest SDK on top.

Deep dive

Real-time pitch DSP in Rust

Tuning is a latency problem before it is anything else — the readout has to track the string as it settles, or the player second-guesses it. The intended audio path is native Rust: autocorrelation to lock the fundamental, then cents-deviation for the in-tune/flat/sharp verdict, with the cross-platform pieces compiled to Wasm. Putting the hot loop in Rust rather than a scripting layer is the design choice that keeps analysis responsive enough to trust mid-strum.

Anchoring the UI in passthrough

The whole reason to build this in VR rather than ship another phone app is that the tuner can live on the guitar. Passthrough hand-tracking locates the headstock and pins the tuning readout there, so you glance down at the instrument the way you would with a clip-on tuner — no menu, no context switch. For players who find a world-anchored panel fiddly, a head-locked fallback keeps the readout in view instead. Both modes are specified; neither is built yet.

Standalone app + SDK

There are two deliverables sharing one pitch engine: a standalone Quest 3 / Vision Pro tuner, and an SDK that third-party VR music apps embed so their users never have to leave the experience to tune. The engine is the same code path in both; the surface differs. Right now, though, the honest status is pre-development — the deliverable is a 10-document strategy stack (BMC and financials, project-goal report, UX, UI, technical architecture, QA, GTM, branding, and a master document) plus a scaffolded agent-driven dev workflow. The diagram above is the intended architecture, not a shipped one; the planning depth is the current work product and the binary follows.

Outcome

Pre-development. The deliverable so far is a 10-document strategy stack — BMC + financials, project goal report (W5H, OODA, Pareto), UX (personas, journeys, pre-mortem), UI (mood boards, design system, screen specs), technical architecture, QA strategy, marketing/sales plans, branding, and a master document. The codebase scaffolds an agent-driven dev workflow (Cargo + .agents/ directory of scoped tools per phase). Surfaced here as a strategic R&D case: the planning depth is the work product right now; the binary follows.

Related

More in tools.