I'm working on an open source Python module genlc (Genelec Loudspeaker Control) to (automatically/manually) control Genelec SAM range of monitors/subwoofers:
https://github.com/markbergsma/genlc
So far the genlc module supports just some of the basics; discovery of all devices, wakeup & shutdown, volume setting, mute/unmute and LED on/off/colors. The binary protocol Genelec is using for GLM is proprietary, so without information available on it I've had to reverse engineer it (mostly by sniffing what GLM is sending on the wire). The Genelec GLM adapter is still required for this (it translates between USB and Genelec's serial protocol, amongst its other functions), but the software application GLM is not, at least not for the tiny subset of functionality that genlc implements.
My main use case was to integrate my Genelecs into my home automation software; I use the very popular and powerful Home Assistant open source project to automate and control everything in my home, including my home theater. Likely I will soon start work on integrating the main functionality (volume control, on/off, mute, input selection, etc...) of a HA media player with this module. I'm considering for example of making it my main (digital) volume control, which I can hook up to arbitrary virtual and physical input controls.
But this Python module could be used or extended in many different ways perhaps. Is this useful to anyone else? If so, what would you like use it for, or what functionality would you like to see added to it? Please let me know.
It should run on the main platforms; I've tested on MacOS and Linux, with Python 3.7+. It's very much experimental code still, and much can change in incompatible ways. I've also only tested with my Genelec SAM hardware; my pair of 8330 monitors (came with differing firmware versions interestingly) and a 7350 subwoofer. I see Genelec implementing some model-specific code so there may be surprises.
https://github.com/markbergsma/genlc
So far the genlc module supports just some of the basics; discovery of all devices, wakeup & shutdown, volume setting, mute/unmute and LED on/off/colors. The binary protocol Genelec is using for GLM is proprietary, so without information available on it I've had to reverse engineer it (mostly by sniffing what GLM is sending on the wire). The Genelec GLM adapter is still required for this (it translates between USB and Genelec's serial protocol, amongst its other functions), but the software application GLM is not, at least not for the tiny subset of functionality that genlc implements.
My main use case was to integrate my Genelecs into my home automation software; I use the very popular and powerful Home Assistant open source project to automate and control everything in my home, including my home theater. Likely I will soon start work on integrating the main functionality (volume control, on/off, mute, input selection, etc...) of a HA media player with this module. I'm considering for example of making it my main (digital) volume control, which I can hook up to arbitrary virtual and physical input controls.
But this Python module could be used or extended in many different ways perhaps. Is this useful to anyone else? If so, what would you like use it for, or what functionality would you like to see added to it? Please let me know.
It should run on the main platforms; I've tested on MacOS and Linux, with Python 3.7+. It's very much experimental code still, and much can change in incompatible ways. I've also only tested with my Genelec SAM hardware; my pair of 8330 monitors (came with differing firmware versions interestingly) and a 7350 subwoofer. I see Genelec implementing some model-specific code so there may be surprises.