Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/qmsk/e2

E2 Client, Tally output
https://github.com/qmsk/e2

presets tally video-mixer

Last synced: about 1 month ago
JSON representation

E2 Client, Tally output

Awesome Lists containing this project

README

        

[![Build Status](https://travis-ci.org/qmsk/e2.svg?branch=master)](https://travis-ci.org/qmsk/e2)

# qmsk-e2
E2 Client, Tally system. Web UI with Presets.

Pre-built release packages can be found under the [Releases](https://github.com/qmsk/e2/releases).

Please refer to the [Wiki](https://github.com/qmsk/e2/wiki) for more detailed documentation, including development and feature guides.

You can also try submitting a [GitHub Issue](https://github.com/qmsk/e2/issues/new?labels=question) for support, which may or may not receive an answer.

## Supported Devices

This implementation has been tested with the following device software versions:

* E2 version 3.2
* S3 version 3.2

This implementation supports the following device APIs:

* TCP port 9876 XML (read-only, live streaming)
* TCP port 9999 JSON-RPC (read-mostly, includes preset recall)
* TCP port 9878 "telnet" (write-only, preset recalls and program cut/autotrans)
* UDP port 40961 discovery

## Install

### Docker

Docker images for `amd64` are available from Docker Hub: https://hub.docker.com/r/qmsk/e2/

```
docker pull qmsk/e2
docker run --rm --net=host --name=e2-test qmsk/e2 tally --discovery-interface=eth0 --http-listen=127.0.0.1:8001 --http-static=/opt/qmsk-e2/static
```

### Raspberry PI

Pre-built debian packages for ARM are available from GitHub releases: https://github.com/qmsk/e2/releases

```
wget https://github.com/qmsk/e2/releases/download/v0.6.0-dev.5/qmsk-e2_0.6.0-dev.5_armhf.deb
sudo dpkg -i qmsk-e2_0.6.0-dev.5_armhf.deb
sudo edit /etc/default/qmsk-e2-tally
sudo systemctl restart qmsk-e2-tally
```

The package installs the binaries at `/opt/qmsk-e2`, creates a `qmsk-e2` user and configures the systemd `qmsk-e2-tally.service` to run using `/etc/default/qmsk-e2-tally` for configuration.

## Building

The project consists of a set Go applications, and a Javascript web frontend. Once built, the binary Go applications + Javascript assets can be distributed and executed without needing to install the development tools and instructions listed here.

Release binaries are built using the Docker-based setup under [build](/build)

### Backend

Load vendored dependencies using [godep](https://github.com/golang/dep):

$ git clone github.com/qmsk/e2
e2 $ dep ensure

Building the backend code requires [Go version 1.10](https://golang.org/dl/).

The Go binaries can also be cross-compiled for different platforms, such as building Linux ARM binaries on your laptop for use on a RaspberryPI:

GOOS=linux GOARCH=arm go build -o bin/linux_arm/server -v github.com/qmsk/e2/cmd/server

### Frontend

cd static && npm install

Building the frontend code requires:

* [NPM](https://www.npmjs.com/)

# Tally

Tally implementation for following the state of inputs on program, preview and active destinations.

## Sources

Supports the following input sources:

* E2
* S3

## Drivers

Supports the following output drivers:

* [HTTP REST JSON API](https://github.com/qmsk/e2/wiki/Tally#web-api)
* [Web UI](https://github.com/qmsk/e2/wiki/Tally#web-ui)
* [GPIO](https://github.com/qmsk/e2/wiki/Tally#gpio)
* [SPI RGB LED](https://github.com/qmsk/e2/wiki/Tally#spi-led)
* [Universe UDP](https://github.com/qmsk/e2/wiki/Universe-Tally)

## Usage

Run the tally software using a network interface connected to the same network as the E2 device:

$GOPATH/bin/tally --discovery-interface=eth0

Tag the relevant inputs in EMTS with `tally=ID` in their Contact details field:

![EMTS Contact field](https://raw.githubusercontent.com/qmsk/e2/master/docs/tally-emts-contact.png)

Referr to the [Wiki](https://github.com/qmsk/e2/wiki/Tally) for further documentation.

# Server

Web API + frontend for following the E2 state and controlling presets.

server --discovery-interface=eth0 --http-listen=:8284 --http-static=./static

The server will connect to the first discovered E2 system.

![Server Presets UI](https://raw.githubusercontent.com/qmsk/e2/master/docs/server-presets.png)

Using the server Web UI requires the static assets for the web frontend (see [Building](#building)).

Referr to the [Wiki](https://github.com/qmsk/e2/wiki/Server) for further documentation.

# Client

go install ./cmd/client

Useful for testing the client library:

$GOPATH/bin/client --e2-address=192.168.0.100 listen

### Usage:

client [OPTIONS]

E2 JSON-RPC:
--e2-address=HOST
--e2-jsonrpc-port=PORT
--e2-xml-port=PORT
--e2-timeout=

Help Options:
-h, --help Show this help message

Available commands:
aux-list List Aux destinations
config-dump Dump XML config
discover Discover available E2 systems
list-destinations List destinations
listen Listen XML packets
preset-list List presets
preset-show Show preset destinations
screen-list List Screen destinations
screen-show Show screen content
source-list List sources