Skip to content
Self / Open Source · Personal Project

Tactic — Native macOS App with Per-Device Sound Suppression

A keyboard sound app that actually feels native — sub-10ms latency, per-device mute, brutalist UI

macOS Native DevelopmentSwift / SwiftUIAudio EngineeringBrand & UI

Tactic — live demo

type · click · hear

Type for 15 seconds. Hear it.

Pick a switch + a mouse — your choice applies site-wide. Mouse clicks fire on every tap; keyboard sounds fire inside the typing test below and inside form fields (book + audit pages). Mute via the badge bottom-right.

Switch

Mouse

time15.0swpm0raw0acc100%consduration

press any key to begin the typing test

sounds: black/brown PBT/ABS — mechvibes (MIT). orochi v2 — Sadiquecat (CC0). pixabay click — MatthewVakaliuk73627 (Pixabay).

≈6–10ms

Audio latency64-frame AudioQueue at 48kHz on Apple Silicon

3 built-in

Bundled soundpacks+ 20+ installable; Cherry MX, Razer, custom

Phase 1 shipped

Per-device controlMute Tactic per specific keyboard/mouse

What is it

Tactic is a macOS menu-bar app that plays a chosen mechanical-keyboard or mouse sound on every keystroke and click. It's not a UI gimmick — the goal is latency low enough that the synthetic sound feels mechanically attached to your fingers, plus a brutalist editorial UI that doesn't look like every other utility on the Setapp store.

What's interesting under the hood

  • Custom AudioToolbox pipeline. Three-buffer AudioQueue at the hardware sample rate, 64-frame buffer (≈1.3ms at 48kHz), Float32 stereo mix via vDSP for zero per-keystroke allocations.
  • Per-device suppression (Phase 1, shipped 2026-05-22). IOHIDManager enumerates connected keyboards/mice; a registry layers user toggles on top. When a flagged device is connected, Tactic mutes that input source's sounds. Designed so loud mechanical keyboards don't double-sound when Tactic is on.
  • CGEventTap for keyboard, separate listen-only tap for mouse — different TCC permission requirements, which surfaced an interesting failure mode where Secure Input only blocks keyDown/keyUp but lets flagsChanged through.

Status

Phase 1 (per-device mute) is shipped to my daily-driver install. Phase 2 (floating typing visualizer) and Phase 3 (built-in typing test) are queued.

Source is private for now; if you want to try the native build, request access.

Need a similar engagement?

Book a call →
tactic