diff --git a/client/public/version.js b/client/public/version.js index 0ad09f1..d01df17 100644 --- a/client/public/version.js +++ b/client/public/version.js @@ -1,5 +1,5 @@ // Maintainer-controlled web client version. // Format: YYYY.MM.DD Rn (example: 2026.02.20 R2) -window.CHGRID_WEB_VERSION = "2026.02.23 R218"; +window.CHGRID_WEB_VERSION = "2026.02.23 R219"; // Optional display timezone for timestamps. Falls back to America/Detroit if unset/invalid. window.CHGRID_TIME_ZONE = "America/Detroit"; diff --git a/client/src/main.ts b/client/src/main.ts index 9762de7..3e41bbb 100644 --- a/client/src/main.ts +++ b/client/src/main.ts @@ -1070,6 +1070,7 @@ function playLocalPianoNote( keyId: string, midi: number, config: ReturnType, + sourceGroupId?: string, ): void { const ctx = audio.context; const destination = audio.getOutputDestinationNode(); @@ -1078,7 +1079,7 @@ function playLocalPianoNote( const sourceY = item.carrierId === state.player.id ? state.player.y : item.y; pianoSynth.noteOn( keyId, - `local:${itemId}`, + sourceGroupId ?? `local:${itemId}`, midi, config.instrument, config.voiceMode, @@ -1149,7 +1150,7 @@ function startPianoDemo(item: WorldItem, itemId: string): void { if (event.on) { if (activePianoDemoNotes.has(logicalKey)) return; activePianoDemoNotes.set(logicalKey, { runtimeKey, midi: event.midi }); - playLocalPianoNote(liveItem, itemId, runtimeKey, event.midi, config); + playLocalPianoNote(liveItem, itemId, runtimeKey, event.midi, config, `demo:${itemId}`); } else { const active = activePianoDemoNotes.get(logicalKey); if (active) {