venue

command module
v0.0.0-...-77bde16 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 20, 2021 License: Apache-2.0 Imports: 13 Imported by: 0

README

venue

Golang API and server for TouchOSC to control Avid™ VENUE software

This software package enables audio engineers to control an Avid™ VENUE system using a mobile device. The initial version focuses on the workflow of a monitoring engineer needing to quickly set and maintain levels for multiple monitor mixes, while having the freedom to stand on the stage with the performers while doing so.

Although an engineer can always use a VNC client to perform this function, doing so is cumbersome due to the small UI elements and lack of design for mobile usage. This software should make that easier.

GoDoc Travis CI Coverage Status

Design doc: https://docs.google.com/document/d/1RZKLrLeaKxsrjHwHxDp2NOQgQHE1-Px-9bGcWrq0g6E/pub

Requirements

This software requires ONE of the following:

  • A real VENUE console, with remote access via Ethernet (e.g. via an add-on Ethernet card).
  • A Windows machine running the free Avid VENUE Software, and a VNC server to export the display. The Windows instance can easily be run as a virtual machine so that a separate physical machine is not required.

Software was tested on the following:

Setup

These instructions assume no knowledge of writing software with the Go language. If you have experience, feel free to follow your preferred standards.

Installation

This code is written in Golang (http://golang.org/).

  1. Install Golang. Follow the instructions at http://golang.org/doc/install.

  2. Setup environment. Note, the exports must either be run each time the software will be used, or they can be added to your ~/.bashrc file. (Examples are for OS X or Linux.)

    $ mkdir -p "${HOME}/opt/go/bin"
    $ export GOPATH="${HOME}/opt/go"
    $ export GOBIN="${GOPATH}/bin"
    $ export PATH="${PATH}:/usr/local/go/bin:${GOBIN}"
    
  3. Download software.

    $ go get github.com/kward/venue
    $ go get github.com/kward/go-osc
    $ go get github.com/kward/go-vnc
    $ go get github.com/golang/glog
    $ go get github.com/howeyc/gopass
    
  4. Test the client software. This will "randomly" select an input channel every few seconds. It is simply to test that a connection can be made and that the console can be controlled.

    $ cd "${GOPATH}/src/github.com/kward/venue"
    $ go run client/rand_inputs/main.go --venue_host <hostname/IP> --venue_passwd <passwd>
    Press CTRL-C to exit.
    
  5. Install the TouchOSC layout. TODO(kward): Document this.

  6. Test the server software. Configure TouchOSC to connect to the hostname/IP of your machine (not the host running VENUE).

    $ go run venue.go --venue_host <hostname/IP> --venue_passwd <passwd>
    

Notes:

  • If you are not using the default VNC port of 5900, the --venue_port option should be added.
  • If you are not using the default TouchOSC port of 8000, the --osc_server_port option should be added for venue.go.
Updates

To update the software, repeat Installation step 3, with slight modifications. Here's a simple script to do the updates.

$ for pkg in \
  github.com/howeyc/gopass \
  github.com/kward/{go-osc,go-vnc,venue}
  github.com/golang/glog
do
  go get -u ${pkg}
done

Avid™ is a registered trademark of Avid, Inc.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
client
Package codes defines the canonical error codes used by gRPC.
Package codes defines the canonical error codes used by gRPC.
The math package provides common math functionality.
The math package provides common math functionality.
Package router provides endpoint packet routing functionality.
Package router provides endpoint packet routing functionality.
actions
Package actions defines the supported endpoint actions.
Package actions defines the supported endpoint actions.
controls
Package controls defines the supported console controls.
Package controls defines the supported console controls.
signals
Package signals defines the supported types of console signals.
Package signals defines the supported types of console signals.
tools
lex takes an OSC string, and converts it into tokens according to the position of the elements.
lex takes an OSC string, and converts it into tokens according to the position of the elements.
multistates
Package multistates defines the states of a Multi UI element.
Package multistates defines the states of a Multi UI element.
The console represents the full known state of the console, including all signals that are not currently exposed by the UI.
The console represents the full known state of the console, including all signals that are not currently exposed by the UI.
encoders
Package encoders defines the supported types of encoders.
Package encoders defines the supported types of encoders.
meters
Package meters defines the supported types of meters.
Package meters defines the supported types of meters.
pages
Package pages defines the supported types of pages.
Package pages defines the supported types of pages.
switches
Packages switches defines different sizes, kinds, and states of switches.
Packages switches defines different sizes, kinds, and states of switches.
Package venuelib provides utility functions.
Package venuelib provides utility functions.
vnc
A workflow wraps a set of VNC requests together into a single object, allowing that object to be acted upon as a whole, rather than as individual requests.
A workflow wraps a set of VNC requests together into a single object, allowing that object to be acted upon as a whole, rather than as individual requests.
messages
Package messages defines the VNC Workflow messages used by Venue.
Package messages defines the VNC Workflow messages used by Venue.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL