Skip to content

stagehacks/Cue-View

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Cue View

A dashboard for everything in your show.

Screen Shot 2021-10-26 at 11 57 21 PM

Features

  • Tons of supported equipment
  • Auto discover devices on the network
  • Live updating
  • Configurable layout

Supported Devices

  • QLab 4 & 5
  • ETC Eos Consoles
  • Watchout
  • PJLink Projectors
  • X32 Audio Consoles
  • XAir Audio Consoles
  • Art-Net Universes
  • sACN Universes

Future Devices

  • ATEM Video Mixers
  • DiGiCo Consoles
  • d&b DS100, amps
  • Hog
  • Meyer Galileo Processors

Plugins

A Cue View "plugin" is a system for communicating with a type of device, for example QLab or Watchout. It consists of a JS file that describes how to communicate with the device, an HTML template for displaying the device's data, and a CSS file to style the HTML.

plugin.js

exports.config = {
	defaultName: 'Example Plugin',
	connectionType: 'osc' or 'TCPsocket' or 'UDPsocket',
	searchOptions: {
		type: 'Bonjour',
		bonjourNane: 'device'
	},
	searchOptions: {
		type: 'UDPsocket',
		searchBuffer: Buffer.from([0x00, 0x01, 0x02]),
		devicePort: 1234, // port the device receives messages on
		listenPort: 2345, // port Cue View should listen for responses on
		validateResponse: function(msg, info){
			// if this function returns true, Cue View adds the responding IP address to the list
		}
	},
	searchOptions: {
		type: 'TCPport',
		searchBuffer: Buffer.from('are you there'),
		testPort: 1234, // port the device receives messages on
		validateResponse: function(msg, info){
			// if this function returns true, Cue View adds the responding IP address to the list
		}
	},
	defaultPort: 1234, // only available for TCPsocket and UDPsocket devices
	heartbeatInterval: 5000 // how frequently, in ms, to send the heartbeat message
}

exports.ready = function (device){
	// runs when Cue View identifies a new device. send all data requests here
	device.send(); // method for sending a message to the device requesting more info. arguments change based on connectionType

	device.send(`/this/is/osc`); // osc
	device.send(`/this/is/osc`, [{ type: 'i', value: 20 }, { type: 's', value: 'foo' }]); // osc with arguments

	device.send(`hello`); // UDPsocket and TCPsocket

}

exports.data = function (device, buf){
	// runs when Cue View receives a message from the device.
	device.draw(); // flag for QLab to update the device's view
	device.send();
}

exports.heartbeat = function (device){
	// runs every n milliseconds, defined by exports.heartbeatInterval
	devide.send();
}