Video of the attached modules in action:
Included in this post are four modules and three scripts:
Matrix Orbital: https://www.matrixorbital.ca/manuals/vk-series/vk204-25-manual
The module was written and tested on a 4 line by 20 character VK204-25 display. The display I bought has a USB port, but shows up as a virtual COM port, so Premise can talk to it as if it was a serial port. The module will automatically rotate through what will not fit on each of the four lines. As a compromise to increase the number of characters to 60, this means that any spillage from line 1 will not go to line 2; instead it will go on line 1b where 1a/1b/1c lines are cycled through (if they are not empty) every three seconds. All lines work like this except for line 4 that is set to 20 characters max (as I used it for volume).
For example, the included JRiver module will send the following to each of the lines:
Line 1: Arist or Movie Title
Line 2: Album or Movie Chapter
Line 3: Song or Movie Progess HH:MM:SS
Line 4: Always Volume
Buttons were also implemented and act as keypads do in Premise. You can use these buttons to trigger whatever you like by creating a keypad under Home and linking it to the VK custom device's keypad. However, Dallas 1-wire and general purpose outputs are not supported (for now unless I need them in the future).
This is a first draft of a JRiver module and a companion perl script. I never added the capability to generate a media library in Premise to mirror the media in JRiver, but perhaps one day I will find the time. It does do basic control using HTTP Gets and also works with the included perl script to get updates of what is playing. The perl script polls JRiver every second, and sends any changes to Premise over TCP.
This module can also reference two other device modules such as the included MCE Controller module. This means when you use a JRiver transport command, it can use a referenced MCE Controller custom device to send the command. A JRiver custom device can also reference the above the Matrix Orbital custom device, automatically displaying volume or media metadata.
MCE Controller: http://www.kindel.com/products/mcecontroller/
This module is what I use for controlling my HTPC over TCP. I don't use the JRiver commands directly as they would only work for JRiver, and I wanted flexibility to pause Netflix with my HTPC remote by emulating a space bar press.
It uses the ingenious utility linked above and written by C. Kindel.
RME TotalMix OSC: http://www.rme-audio.de/en/index.php
RME TotalMix is powerful and low latency mixer software that came bundled with my 16 in/16 out digital AES RME HDPSe PCI-E sound card. TotalMix has an OSC option that lets external devices control it over UDP, so I wrote a perl script UDP/TCP bridge, and implemented a Premise module that uses the OSC protocol. All this was necessary so that Premise can control my RME sound card's volume! Actually it will control the volume of whatever is linked to Main in the mixer.
The included AHK script shows how to overwrite the windows volume key presses, and send these to Premise for processing. This means when I press volume up on my keyboard, Premise can turn up my soundcard mixer's volume, bypassing windows audio
altogether. It is also how the Griffin PowerMate knob is changing the volume in the video (since the Griffin utility uses windows virtual keys to control volume, it too works via this same AHK script.
If anyone is curious, this is the place that made the custom PC case for me; their craftsmanship is second to none: http://atechfabrication.com/
The attached modules are free for PERSONAL use only, and you are required to post any modifications here for others to use. For business use, you must contact me prior to distributing to establish commercial licensing terms.
Edited by etc6849, 04 April 2018 - 04:10 PM.