birdybirdonline / Linux-Arctis-7-Plus-ChatMix

A basic workaround for the lack of the proprietary Steelseries GG Software for the Arctis 7+ ChatMix modulator on Linux
GNU General Public License v3.0
10 stars 3 forks source link

Index list out of range #3

Open MsJeybs opened 3 weeks ago

MsJeybs commented 3 weeks ago

Successfully installed this but whenever I try to start the service I get an error that the list index is out of range.

birdybirdonline commented 3 weeks ago

Hi @MsJeybs please can you confirm:

Can you also please share the full traceback

MsJeybs commented 3 weeks ago

Hi upon further investigation I found that when the Arctis 7+ dongle is inserted, it is detected by the udev rules and dev-arctis7.device comes up, starting arctis7pcm.service .

Arctis_7_Plus_ChatMix.py then crashes because at line 93: arctis_sink = list(filter(arctis.match, pactl_short_sinks))[0] ...the filter fails to find the expected line.

Doing 'pactl list short sinks' on the system during normal operation gives this result: 63 alsa_output.pci-0000_2f_00.4.iec958-stereo PipeWire s32le 2ch 48000Hz SUSPENDED 2629 alsa_output.usb-SteelSeries_Arctis7-00.analog-stereo PipeWire s24le 2ch 48000Hz RUNNING 2842 alsa_output.usb-Focusrite_Scarlett_2i2_USB_Y8MPMZQ0536838-00.HiFi__hw_USB__sink PipeWire s32le 2ch 48000Hz SUSPENDED

...however, instrumenting Arctis_7_Plus_ChatMix.py reveals that it sees only: 63 alsa_output.pci-0000_2f_00.4.iec958-stereo PipeWire s32le 2ch 48000Hz SUSPENDED 2842 alsa_output.usb-Focusrite_Scarlett_2i2_USB_Y8MPMZQ0536838-00.HiFi__hw_USB__sink PipeWire s32le 2ch 48000Hz RUNNING

In other words, exactly the line it wants is missing.

Assuming some race condition, we tried putting a one-second sleep immediately before the os.popen("pactl list short sinks"). This changed the failure mode: it instead gave the "Artcis 7+ ChatMix shut down gracefully... Bye Bye!" which, by inspection of the source, implies that systemd sent SIGTERM. Maybe because of some timeout?

Let me know if you still need the traceback I just figured this might help!

birdybirdonline commented 3 weeks ago

Thank you for the additional info, please can you confirm if you installed with install-AllSound7P_ChatMix.sh or with install-a7pcm.sh?

Can you also please confirm which linux distro you're using?

--

There are a couple of known bugs we haven't patched yet relating to the udev rules, especially for the AllSound version. This may be a related issue.

A potential workaround is:

  1. use the install script uninstall option
  2. reinstall the install-a7pcm.sh version
  3. with the dongle already inserted, run python3 Arctis_7_Plus_ChatMix.py manually via shell

It may be worth testing this workaround straight away as this is definitely the most stable test right now.