From 219355d047d35c77eadd727cf665a40cd627e3c9 Mon Sep 17 00:00:00 2001 From: Frank <91616163+softhack007@users.noreply.github.com> Date: Tue, 18 Nov 2025 23:57:44 +0100 Subject: [PATCH] AR audio sync: improved sequence check for audio packet handling currently just a comment so I don't forget about it :-) needs some testing but very sure this will work. --- usermods/audioreactive/audio_reactive.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/usermods/audioreactive/audio_reactive.h b/usermods/audioreactive/audio_reactive.h index 406ae316..9a9a4e7d 100644 --- a/usermods/audioreactive/audio_reactive.h +++ b/usermods/audioreactive/audio_reactive.h @@ -1754,7 +1754,15 @@ class AudioReactive : public Usermod { // add info for UI if ((receivedPacket.frameCounter > 0) && (lastFrameCounter > 0)) receivedFormat = 3; // v2+ else receivedFormat = 2; // v2 - // check sequence + + // Simpler 8-bit rollover-safe sequence check: + // (int8_t)(cur - prev) > 0 => cur is ahead of prev by 1..127 + // 0 => duplicate, + // < 0 => older + // bool sequenceOK = !audioSyncSequence || receivedPacket.frameCounter == 0 || // always accept legacy "0" + // ((int8_t)(receivedPacket.frameCounter - lastFrameCounter) > 0); + + // check sequence bool sequenceOK = false; if(receivedPacket.frameCounter > lastFrameCounter) sequenceOK = true; // sequence OK if((lastFrameCounter < 12) && (receivedPacket.frameCounter > 248)) sequenceOK = false; // prevent sequence "roll-back" due to late packets (1->254)