Skip to content

Fix inverted ChatMix level for SteelSeries Arctis 7/Pro (#475)#480

Merged
Sapd merged 2 commits intomasterfrom
fix2
Feb 5, 2026
Merged

Fix inverted ChatMix level for SteelSeries Arctis 7/Pro (#475)#480
Sapd merged 2 commits intomasterfrom
fix2

Conversation

@Sapd
Copy link
Owner

@Sapd Sapd commented Feb 5, 2026

The chatmix level calculation had game and chat directions swapped: max game volume produced level > 64 (indicating chat), and vice versa.

This bug originated in the old C implementation (steelseries_arctis_7.c) and was carried over verbatim during the C++ rewrite (#443). It went unnoticed because the old code returned a plain int with no defined semantics for direction, users just saw a changing number. The bug became observable once ChatmixResult defined < 64 as game and > 64 as chat.

The chatmix level calculation had game and chat directions swapped:
max game volume produced level > 64 (indicating chat), and vice versa.

This bug originated in the old C implementation (steelseries_arctis_7.c)
and was carried over verbatim during the C++ rewrite (#443). It went
unnoticed because the old code returned a plain int with no defined
semantics for direction, users just saw a changing number. The bug
became observable once ChatmixResult defined < 64 as game and > 64 as
chat.
@TheBill2001
Copy link
Contributor

TheBill2001 commented Feb 5, 2026

That corrected the level value. But the percentages are still wrong. These lines:

int game_pct = (game == 0) ? 100 : map(game, 191, 255, 100, 0);
int chat_pct = (chat == 0) ? 100 : map(chat, 191, 255, 100, 0);

Need to be changed to:

int game_pct = (game == 0) ? 100 : map(game, 191, 255, 0, 100);
int chat_pct = (chat == 0) ? 100 : map(chat, 191, 255, 0, 100);

…475)

The map() output range was backwards: neutral position (255) mapped to
0% instead of 100%. Swap range so percentages correctly reflect volume.
@Sapd
Copy link
Owner Author

Sapd commented Feb 5, 2026

@TheBill2001 Can you please try again

@TheBill2001
Copy link
Contributor

Yep, everything is correct now.

@Sapd Sapd merged commit 593c825 into master Feb 5, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants