voctomix
voctomix copied to clipboard
Remove Party Mode
Pressing multiple keys at the same time can bring up the party mode where core and GUI end up in a endless loop of communication and buttons to flicker states.
This is a problem of the communication sequence that needs redesign.
My suggestion to deal with this, at least on the long run, is switching the communication between core an gui to MQTT. By using e.g. https://pypi.org/project/paho-mqtt/ . By using the communication paradigm of this message bus the complexity of state handling can by broken down in a well readable call back structure.
Besides solving this issue, it would also make thing like tally light much more robust in terms of communication.
This is still the case. Angels where able to reproduce this issue during training.
This is apparently an issue with out-of-order processing of messages from the core:
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG Connection: got line: 'best transition slides cam2'
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG Connection: re-starting on_loop scheduling
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG Connection: got line: 'best cut cam2 cam1'
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG Connection: re-starting on_loop scheduling
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG Connection: on_loop called
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: INFO PreviewToolbarController: Changing new composite to 'fs(cam2,cam1)'
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG PreviewToolbarController: current command is 'fs(cam2,cam1)
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: INFO PreviewToolbarController: Selected 'slides' for preview source A
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: INFO PreviewToolbarController: Testing transition to 'fs(slides,cam1)'
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG PreviewToolbarController: current command is 'fs(slides,cam1)
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG PreviewToolbarController: current command is 'fs(slides,cam1)
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: INFO PreviewToolbarController: Selected 'cam2' for preview source B
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: INFO PreviewToolbarController: Testing transition to 'fs(slides,cam2)'
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG PreviewToolbarController: current command is 'fs(slides,cam2)
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: INFO PreviewToolbarController: Testing transition to 'fs(slides,cam2)'
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG PresetController: >on_best best='transition' targetA='slides' targetB='cam2' self.current_state=None
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG PresetController: <on_best best='transition' targetA='slides' targetB='cam2' self.current_state=None
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG Connection: on_loop called
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: INFO PreviewToolbarController: Changing new composite to 'fs(slides,cam2)'
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG PreviewToolbarController: current command is 'fs(slides,cam2)
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG PreviewToolbarController: current command is 'fs(slides,*)
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: INFO PreviewToolbarController: Selected 'slides' for preview source B
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG PreviewToolbarController: current command is 'fs(slides,slides)
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: INFO PreviewToolbarController: Selected 'cam2' for preview source A
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: INFO PreviewToolbarController: Testing transition to 'fs(cam2,slides)'
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG PreviewToolbarController: current command is 'fs(cam2,slides)
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG PreviewToolbarController: current command is 'fs(cam2,slides)
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: INFO PreviewToolbarController: Selected 'cam1' for preview source B
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: INFO PreviewToolbarController: Testing transition to 'fs(cam2,cam1)'
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG PreviewToolbarController: current command is 'fs(cam2,cam1)
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: INFO PreviewToolbarController: Testing transition to 'fs(cam2,cam1)'
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG PresetController: >on_best best='cut' targetA='cam2' targetB='cam1' self.current_state=None
Sat 2024-05-18 15:15:49 CEST mixer96.lan.c3voc.de voctogui.py[6295]: DEBUG PresetController: <on_best best='cut' targetA='cam2' targetB='cam1' self.current_state=None
fixed in https://github.com/voc/voctomix/commit/3c7bde8b7ae75d0c9e7dee79ca850c9facb582a9