v2.0.0
gotempo now supports two straps at once and works as a ITGmania arcade setup as well as a single-user desktop app.
ITGmania setup requires the gotempo-sl-module 2.0 or later.
Two players
Follow two heart-rate straps simultaneously, for a two-player cabinet or for
recording two people together. Off by default and free when unused. Each strap
gets its own outputs: gotempo-bpm-p2.txt for OBS, its own CSV, its own panel in
game. The first strap's filenames never change, so existing setups keep working.
Straps follow the player, not the machine
A player names their own strap in their ITGmania profile and gotempo follows it
while they play, on whichever side they join. Readings are gated on the strap
they named, so one person's heart rate can never be drawn as another's. Nothing
is written to config.json, so quitting hands every slot back to whatever the
tray is set to.
Two players may name the same strap. gotempo connects it once and feeds both
sides.
Connections outlive assignments
Straps are pooled and keyed by MAC rather than owned by a slot. Walking back to
the main menu, restarting ITGmania, or swapping from P1 to P2 no longer costs a
reconnect — previously each of those meant roughly 30 seconds with no readings.
A released strap keeps its connection so rejoining is instant, bounded by two
budgets: strap_hold_minutes (20) while it is still sending readings, and
strap_lost_minutes (5) once it has gone quiet. Pool caps at four.
In-game strap picker
Players pick their strap from a menu on the song wheel instead of finding a MAC
address at a terminal, and it is written into their own profile. Requires
gotempo-sl-module 2.0.
Cabinet behaviour
With itgmania_module set, the OBS and CSV controls are hidden — neither is what
that install is for. While a profile is driving a slot, no CSV is written, no
loss or reconnect notifications fire, and the tray controls the game has taken
over are greyed out with a line saying why.
New config keys
strap_hold_minutes, strap_lost_minutes, current_p2, two_player. All
optional, all defaulted; an existing config.json is upgraded in place.
Compatibility
Nothing breaks for an existing single-strap user. File names, the CLI and the
tray are unchanged.
Pair with module 2.0. An older module works with gotempo 2.0 minus the strap
picker. The new module with gotempo 1.2 shows "gotempo is not running" in the
picker, because 1.2 does not answer scan requests.