GPL-3.0 License
Custom remote solution for a Allen&Heath dLive mixrack/director session using IP8 and Elgato Stream Deck controllers.
If you want to use this software, keep in mind that functions are strongly opinionated and neither support nor a BC promise for upcoming versions is given.
One of the large stream decks is used to display input channels (we call it "left" or "inputs" deck), the other is used to display AUX/FX buses (we call it "right" or "outputs" deck). The small stream deck (the "system" deck) is used to select modes, filters and custom scenes.
You can start the software without some/any stream deck connected - a simulator is then started showing the missing devices on the screen. Alternatively, use the command line interface for testing and debugging.
Make sure you have the following installed:
Python 3.8
+ pipenv
git
LibUSB HIDAPI
, see guide by abcminiuser's excellent python-elgato-stream library
pipenv sync
to install the requirementsconfig.yaml
file; use the provided dist file as a starting point: cp config.yaml.dist config.yaml
pipenv run python psurface.py
to start the application. If on Windows, execute run_loop.bat
instead.Make sure to at least adjust the mixrack IP and stream deck serial numbers in the config.yaml
.
You can use this basic showfile that already includes all needed scenes and IP-8 mappings as well as some other defaults. Be prepared for quite some magic due to the heavy use of virtualization…
The basic idea is: there is a "conventional" scene for each bank of inputs (the mixing layers) as well as a few special scenes that assign the 16 "virtual channels" (input channels read and controlled by the software) to the IP controllers. When then physically moving faders on one of these virtual channels, the software will read the data and - according to the currently selected mode - set levels/send-levels for the 'real' channels. Same goes for the mute button. This way we're saving a huge amount of scenes that would need to be created and can support things like dynamic filtering ("spill").
In case you are wondering why we are using 6 "virtual channel scenes" for the left IP8 and only one for the right IP8: This is, because you can use the left IP8's soft buttons to switch banks, and we want the LEDs to be lit accordingly. All 6 scenes basically contain the same data, including scene recall assignments for these 6 scenes on the soft buttons. So loading the 4th scene will make the 4th button lit and so on. The software will call the scene for the right IP8 and one for the left directly after each other when entering a virtual channel mode.
AUX/FX
button on theDCA
, AUX
, GRP
, …) - mostly for quickChannels that have a name set, that does not start with a !
are displayed on the decks. With "have a name set", we
mean a label that is not empty or only contains a number. Here are some examples:
→ not shown12
→ not shownSnare
→ shown!Snare
→ not shownChannels are grouped by color. You can configure the order for the left/right deck in the config.yaml
. Channels with
colors not mentioned in the config, won't be displayed.