Skip to content

How It Was Built Part 4

baddo edited this page Sep 28, 2026 · 1 revision

Part of How OpenShaker was built

Part 4: what is still open

OpenShaker itself

  • Its live end-to-end delay, from game to shaker, has not been measured (Timing that wandered).
  • A physical unplug-and-replug test is on the testers' checklist; none is recorded yet.
  • It was tuned on one rig (a ButtKicker PRO) and a handful of drives. Other shakers and amplifiers "should work", but are untested.

HaptiConnect questions we couldn't settle

  • The slow drift the maintainer felt on Forza Motorsport wasn't reproduced: the recordings are too short.
  • The cause of HaptiConnect's silent stretches is unknown.
  • HaptiConnect was checked in September 2026. If it gets an update, parts of Part 1 may change.

Per-game gaps

HOW_IT_WAS_TUNED, Chapter 5 and CALIBRATION's known gaps have the sizes; DEVELOPMENT has the code side.

  • Forza Motorsport: the acceleration feel is one tone where HaptiConnect's is a spread-out rumble, and the road rumble in metres waits for it.
  • Forza Horizon: laps play 0 to 1.3 dB quieter, very rough ground is weaker, and Horizon 5 and 6 share one profile although HaptiConnect treats them differently.
  • BeamNG: Motion Sim was checked on one drive; the crash, bump and wheel-lock levels have no clean reference; and the rev-limiter sound is not played yet.

Assetto Corsa EVO

  • One clean single-copy recording would settle its loudness, cornering and deep slides.
  • Assetto Corsa and Assetto Corsa Competizione are not tested.

Trackmania

  • The loose-surface grip limits are first guesses.
  • The levels were felt before the left-channel fix (about 6 dB too strong) and are due for another check.

Ideas saved for later

  • Notice when a game is running but sending no data, and show the exact in-game setting it needs: "something that detects that the game is running but it doesn't get data".
  • A Trackmania plugin of our own (Trackmania has no telemetry setting).

Glossary

  • Telemetry: the numbers a game shares about the car, such as speed, rpm, gear and g-forces.
  • Port: a numbered mailbox on the PC that one program listens on. Two programs can't share one.
  • Shared memory: a block of memory a game publishes under a name, for other programs to read.
  • Device ID: how Windows names and remembers an audio output. It can change when a USB device is re-plugged.
  • Shared vs exclusive audio: shared lets many programs play at once; exclusive locks the device to one.
  • Loopback recording: capturing exactly what is sent to an output, digitally, with no microphone.
  • dB and dBFS: steps of loudness. +6 dB is about twice the amplitude, and 0 dBFS is the loudest a digital signal can be.
  • Spectrogram: a picture of sound: time runs left to right, pitch goes up, and brightness shows strength.
  • Limiter: an automatic volume control that turns everything down briefly when a peak would be too loud.
  • Held-out drive: a lap kept out of the tuning and used only to check the result.
  • Python environment: a private copy of Python and its libraries for one app.
  • Claude's sandbox: the protected space the Claude desktop app runs in on Windows. Some of its writes are hidden from the user.

Tell us how it feels

OpenShaker was built on one rig, so real-world reports are the most useful thing you can send: how it feels on your shaker, your amplifier and your games, what is too strong, too weak or missing, and what just feels right. Bug reports and fixes are welcome too.


<- Part 3: the problems, chapter by chapter | Contents

Clone this wiki locally