Skip to content

Repository files navigation

TapDeck Studio

Turn the table around a Windows laptop into invisible shortcut buttons. TapDeck listens for calibrated surface impacts, separates tap zones using a laptop microphone array, and maps recognized locations to websites, apps, screenshots, hotkeys, or commands.

Download

Download the latest TapDeck-...-windows-x64.exe from the repository's Releases page, then double-click it. Python is not required.

TapDeck is currently an unsigned independent application. Windows SmartScreen may show Windows protected your PC on the first launch. If you obtained the file from this repository's official Releases page, select More info → Run anyway. Code signing is planned for a future release.

Requirements:

  • Windows 10 or 11, 64-bit
  • A built-in or external microphone
  • A hard desk surface; soft mats absorb useful vibration

First setup

  1. Allow microphone access when Windows asks.
  2. Select Train beside the left zone and make 12 natural light taps in one small area.
  3. Train the right zone in the same way, ideally 25–40 cm from the first zone.
  4. Select Train ignore sounds and record 12 sounds that must never trigger an action: coughs, short loud words, claps, keyboard bumps, or similar noises.
  5. Verify each action with Test, then select Start listening.

Packaged-app settings and numerical calibration fingerprints are stored in %LOCALAPPDATA%\TapDeck. Audio is processed in memory and is not saved or uploaded.

Features

  • Up to four synchronized microphone channels
  • GCC-PHAT timing and cross-channel energy features for left/right separation
  • An impact gate that measures attack, duration, decay, crest factor, and spectral shape
  • A calibrated RBF support-vector classifier with an explicit learned ignore class
  • Configurable URLs, apps, files, screenshots, hotkeys, and commands
  • Live microphone meter, confidence feedback, animated surface map, and model-health display
  • Local-only audio processing

Run from source

Python 3.13 is recommended.

python -m pip install -r requirements.txt
python app.py

Development runs store config.json beside the source. This personal file is ignored by Git.

Tests

python -m unittest -v

Build the Windows executable

Install the build tool once:

python -m pip install "pyinstaller>=6.17,<7"

Then run:

powershell -ExecutionPolicy Bypass -File .\build_release.ps1

The versioned executable and SHA-256 checksum are written to release\. The GitHub Actions workflow also builds and publishes this executable when a v* tag is pushed.

Reliability notes

Built-in laptop microphone arrays are processed by their audio drivers, and some channels may be duplicated or beamformed. Desk material, laptop placement, finger choice, and ambient noise all affect recognition. Recalibrate after moving the laptop or changing desks.

For a future high-precision hardware edition, two to four inexpensive piezo/contact microphones attached beneath the desk will suppress airborne speech and produce much cleaner surface-arrival timing.

The sensing research and architecture decisions are documented in RESEARCH.md.

License

MIT

About

Turn the table around a Windows laptop into acoustic shortcut buttons.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages