Seat-tagged messages from your section, starting before puck drop.
The building's voice in real time — gold pushing against blue.
Measures the fan's real shout volume and feeds it into the meter.
Cheer & Boo stingers plus a live crowd bed — mute it from the meter.
The roar meter, cheer/boo counts, and whole-building crowd numbers are powered by the SportsTalk telemetry API. Push samples from any client; read one synchronized aggregate back to drive every meter.
import { Services } from 'sportstalk-sdk';
// One client — your app id + API key from the SportsTalk dashboard.
const telemetry = new Services.TelemetryService({ appId: 'YOUR_APP_ID', apiToken: 'YOUR_API_KEY' });
const game = 'game:bruins-leafs'; // any context id you choose
const user = 'fan-8417';
// 1 · Mic roar → push the live loudness (0..1) as a gauge sample
onRoarLevel(v => telemetry.sample(game, 'roar', { userid: user, value: v }));
// 2 · Cheer / Boo buttons → bump a counter metric
cheerBtn.onclick = () => telemetry.increment(game, 'cheer', { userid: user });
booBtn.onclick = () => telemetry.increment(game, 'boo', { userid: user });
// 3 · Read the live, whole-building aggregate (~1s) to drive the meters
setInterval(async () => {
const { signals } = await telemetry.getSnapshot(game);
signals.forEach(s => meter(s.key, s.intensity)); // intensity: 0..1, ready for a bar
}, 1000);
npm sportstalk-sdk · Services.TelemetryService · same calls work from web, mobile, or server.