generated from sindresorhus/electron-boilerplate
-
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
9d95760
commit 286c54b
Showing
10 changed files
with
1,737 additions
and
1,618 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,190 +1,196 @@ | ||
# Presentation Bridge Client | ||
|
||
This software is designed to work with your presentation lyrics software, accessing slide data in real time and then performing custom actions. It integrates with PresentationBridge, a free server program that allows you to send lyric data to end devices such as phones, tablets, and tv sticks through the built in web browser on those devices. | ||
This software is designed to work with your presentation lyrics software, accessing slide data in real time and then performing custom actions. It integrates with PresentationBridge, a free server program that allows you to send lyric data to end devices such as phones, tablets, and tv sticks through the built in web browser on those devices. | ||
|
||
The Settings window is used to configure the software for ProPresenter, PresentationBridge, midi-relay, Vista, Companion and HTTP. | ||
The Settings window is used to configure the software for ProPresenter, PresentationBridge, midi-relay, Vista, Companion and HTTP. | ||
|
||
Text on slides is sent to the bridge for display on devices that are connected. | ||
Text on slides is sent to the bridge for display on devices that are connected. | ||
|
||
Text will be converted to upper case if the 'Upper Case' switch is set. This is used to match text display if a ProPresenter upper case theme is being used. | ||
|
||
Images of the slides will be sent if the 'Send Images' switch in settings is on. | ||
Images of the slides will be sent if the 'Send Images' switch in settings is on. | ||
|
||
The stage display shows the slide text and notes for both the current slide and next. | ||
|
||
In addition, using the notes section of a slide, this Client can also send commands using midi-relay, HTTP and Companion: | ||
* Send MIDI voice messages, using the free program [midi-relay](http://github.com/josephdadams/midi-relay) | ||
* Make HTTP Requests (GET and POST, with JSON data if needed) | ||
* Press Companion Buttons using the TCP protocol | ||
|
||
- Send MIDI voice messages, using the free program [midi-relay](http://github.com/josephdadams/midi-relay) | ||
- Make HTTP Requests (GET and POST, with JSON data if needed) | ||
- Press Companion Buttons using the TCP protocol | ||
|
||
In general, the format is as follows: | ||
|
||
`[command type]:[parameter 1],[parameter 2][etc.];` | ||
|
||
Each parameter is separated by a comma and a command should be terminated with a semicolon if there are other text notes or commands on the same notes page. A single command on the notes page does not need the terminating semicolon (for backwards compatibility). | ||
|
||
The program works by listening to the "current slide notes" data within ProPresenter. If the text contains valid commands then these will be processed. Other text is sent to the stagedisplay bridge. | ||
The program works by listening to the "current slide notes" data within ProPresenter. If the text contains valid commands then these will be processed. Other text is sent to the stagedisplay bridge. | ||
|
||
## Sending MIDI Relay Messages | ||
|
||
### Supported MIDI Relay Types | ||
* Note On | ||
|
||
Format: `noteon:[channel],[note],[velocity];` | ||
|
||
* `channel` should be a integer between 0 and 15. | ||
* `note` should be an integer of the MIDI Number value that represents the note, between 0 and 127. | ||
* `velocity` should be a integer between 1 and 127. A value of 0 is considered a Note Off message. | ||
|
||
Example: `noteon:0,55,100;` | ||
|
||
* Note Off | ||
|
||
Format: `noteoff:[channel],[note],[velocity];` | ||
|
||
* `channel` should be a integer between 0 and 15. | ||
* `note` should be an integer of the MIDI Number value that represents the note, between 0 and 127. | ||
* `velocity` should be 0. | ||
- Note On | ||
|
||
Format: `noteon:[channel],[note],[velocity];` | ||
|
||
- `channel` should be a integer between 0 and 15. | ||
- `note` should be an integer of the MIDI Number value that represents the note, between 0 and 127. | ||
- `velocity` should be a integer between 1 and 127. A value of 0 is considered a Note Off message. | ||
|
||
Example: `noteon:0,55,100;` | ||
|
||
- Note Off | ||
|
||
Format: `noteoff:[channel],[note],[velocity];` | ||
|
||
- `channel` should be a integer between 0 and 15. | ||
- `note` should be an integer of the MIDI Number value that represents the note, between 0 and 127. | ||
- `velocity` should be 0. | ||
|
||
Example: `noteoff:0,55,100;` | ||
|
||
- Polyphonic Aftertouch | ||
|
||
Format: `aftertouch:[channel],[note],[value];` | ||
|
||
Example: `noteoff:0,55,100;` | ||
- `channel` should be a integer between 0 and 15. | ||
- `note` should be an integer of the MIDI Number value that represents the note, between 0 and 127. | ||
- `velocity` should be a integer between 0 and 127. | ||
|
||
* Polyphonic Aftertouch | ||
Example: `aftertouch:0,55,100;` | ||
|
||
Format: `aftertouch:[channel],[note],[value];` | ||
|
||
* `channel` should be a integer between 0 and 15. | ||
* `note` should be an integer of the MIDI Number value that represents the note, between 0 and 127. | ||
* `velocity` should be a integer between 0 and 127. | ||
- CC (Control Change) | ||
|
||
Example: `aftertouch:0,55,100;` | ||
Format: `cc:[channel],[controller],[value];` | ||
|
||
* CC (Control Change) | ||
- `channel` should be a integer between 0 and 15. | ||
- `controller` should be a integer between 0 and 127. | ||
- `value` should be a integer between 0 and 127. | ||
|
||
Format: `cc:[channel],[controller],[value];` | ||
|
||
* `channel` should be a integer between 0 and 15. | ||
* `controller` should be a integer between 0 and 127. | ||
* `value` should be a integer between 0 and 127. | ||
Example: `cc:0,32,100;` | ||
|
||
Example: `cc:0,32,100;` | ||
|
||
* PC (Program Change) | ||
- PC (Program Change) | ||
|
||
Format: `pc:[channel],[value];` | ||
Format: `pc:[channel],[value];` | ||
|
||
* `channel` should be a integer between 0 and 15. | ||
* `value` should be a integer between 0 and 127. | ||
- `channel` should be a integer between 0 and 15. | ||
- `value` should be a integer between 0 and 127. | ||
|
||
Example: `pc:0,100;` | ||
Example: `pc:0,100;` | ||
|
||
* Channel Pressure / Aftertouch | ||
- Channel Pressure / Aftertouch | ||
|
||
Format: `pressure:[channel],[value];` | ||
|
||
* `channel` should be a integer between 0 and 15. | ||
* `value` should be a integer between 0 and 127. | ||
Format: `pressure:[channel],[value];` | ||
|
||
Example: `pressure:0,100;` | ||
- `channel` should be a integer between 0 and 15. | ||
- `value` should be a integer between 0 and 127. | ||
|
||
* Pitch Bend / Pitch Wheel | ||
Example: `pressure:0,100;` | ||
|
||
Format: `pitchbend:[channel],[value];` | ||
|
||
* `channel` should be a integer between 0 and 15. | ||
* `value` should be a integer between 0 and 16,383. | ||
- Pitch Bend / Pitch Wheel | ||
|
||
Example: `pitchbend:0,100;` | ||
Format: `pitchbend:[channel],[value];` | ||
|
||
* MSC (MIDI Show Control) | ||
- `channel` should be a integer between 0 and 15. | ||
- `value` should be a integer between 0 and 16,383. | ||
|
||
Format: `msc:[device id],[command format],[command],[cue],[cuelist],[cuepath];` | ||
Example: `pitchbend:0,100;` | ||
|
||
* `deviceid` should be an integer between 0 and 111. It can also be a string 'g1' through 'g15' to represent groups, or it can be `all`. | ||
- MSC (MIDI Show Control) | ||
|
||
* `commandformat` should be a string with one of the following values: | ||
* lighting.general | ||
* sound.general | ||
* machinery.general | ||
* video.general | ||
* projection.general | ||
* processcontrol.general | ||
* pyro.general | ||
* all | ||
* Any other value for _commandformat_ will default to `all`. | ||
|
||
* `command` should be a string with one of the following values: | ||
* go | ||
* stop | ||
* gojam | ||
* gooff | ||
* resume | ||
* timedgo | ||
* load | ||
* set | ||
* fire | ||
* alloff | ||
* restore | ||
* reset | ||
* opencuelist | ||
* closecuelist | ||
* startclock | ||
* stopclock | ||
Format: `msc:[device id],[command format],[command],[cue],[cuelist],[cuepath];` | ||
|
||
* Values for `cue`, `cuelist`, and `cuepath` are all optional strings. If you don't want to include them, just include the `,` delimiter. | ||
|
||
Example: `msc:0,lighting.general,go,1,12,,;` | ||
- `deviceid` should be an integer between 0 and 111. It can also be a string 'g1' through 'g15' to represent groups, or it can be `all`. | ||
|
||
* Sysex MIDI Message | ||
- `commandformat` should be a string with one of the following values: | ||
|
||
Format: `sysex:[message];` | ||
|
||
* `message` should contain the actual MIDI message in bytes. Bytes can be either in hexadecimal or decimal, separated by commas. | ||
* A response of `{result: 'sysex-sent-successfully'}` indicates the SysEx MIDI message was successfully sent. | ||
- lighting.general | ||
- sound.general | ||
- machinery.general | ||
- video.general | ||
- projection.general | ||
- processcontrol.general | ||
- pyro.general | ||
- all | ||
- Any other value for _commandformat_ will default to `all`. | ||
|
||
- `command` should be a string with one of the following values: | ||
|
||
- go | ||
- stop | ||
- gojam | ||
- gooff | ||
- resume | ||
- timedgo | ||
- load | ||
- set | ||
- fire | ||
- alloff | ||
- restore | ||
- reset | ||
- opencuelist | ||
- closecuelist | ||
- startclock | ||
- stopclock | ||
|
||
- Values for `cue`, `cuelist`, and `cuepath` are all optional strings. If you don't want to include them, just include the `,` delimiter. | ||
|
||
Example: `msc:0,lighting.general,go,1,12,,;` | ||
|
||
- Sysex MIDI Message | ||
|
||
Format: `sysex:[message];` | ||
|
||
- `message` should contain the actual MIDI message in bytes. Bytes can be either in hexadecimal or decimal, separated by commas. | ||
- A response of `{result: 'sysex-sent-successfully'}` indicates the SysEx MIDI message was successfully sent. | ||
|
||
Example: `sysex:0xF0,0x41,0x10,0x00,0x00,0x00,0x20,0x12,0x71,0x00,0x08,0x00,0x07,0xF7;` | ||
|
||
Example: `sysex:0xF0,0x41,0x10,0x00,0x00,0x00,0x20,0x12,0x71,0x00,0x08,0x00,0x07,0xF7;` | ||
|
||
All values for `channel` are zero-based. (e.g., Channel of `1` should be sent as `0`.) | ||
|
||
## Additional MIDI Notations | ||
|
||
In addition to the primary MIDI voice message notations, the following notations are also available: | ||
|
||
* Chroma-Q Vista Lighting MSC Message (the Vista console must be running midi-relay) | ||
- Chroma-Q Vista Lighting MSC Message (the Vista console must be running midi-relay) | ||
|
||
Format: `vista:[cue list],[cue];` | ||
Format: `vista:[cue list],[cue];` | ||
|
||
* `cue list`: The cue list you want to control | ||
* `cue`: The cue to play | ||
- `cue list`: The cue list you want to control | ||
- `cue`: The cue to play | ||
|
||
Example: `vista:1,2.5;` : This would run Cue 2.5 on Cuelist 1. This assumes a `device id` of `0`, `command format` is `lighting.general`, and the `command` is `go`. | ||
Example: `vista:1,2.5;` : This would run Cue 2.5 on Cuelist 1. This assumes a `device id` of `0`, `command format` is `lighting.general`, and the `command` is `go`. | ||
|
||
## HTTP Requests | ||
|
||
HTTP Requests to perform actions or send data can also be easily performed. | ||
|
||
Format: `http:[url];` | ||
|
||
* `url`: The URL to perform an HTTP GET request | ||
- `url`: The URL to perform an HTTP GET request | ||
|
||
You can also use the following notations to perform specific HTTP request types: | ||
|
||
* `http:get,[url];` | ||
* `http:post,[url];` | ||
* `http:post,[url],[json];` | ||
- `http:get,[url];` | ||
- `http:post,[url];` | ||
- `http:post,[url],[json];` | ||
|
||
Example: `http:get,http://www.techministry.blog;` : This would perform an HTTP GET request to the URL, `http://www.techministry.blog`. | ||
|
||
## Companion Button Press | ||
|
||
Format: `companion:[bank],[button];` or `cbp:[bank],[button];` | ||
|
||
* `bank`: The page in Companion where the button is | ||
* `button`: The button on the page that you wish to press | ||
- `bank`: The page in Companion where the button is | ||
- `button`: The button on the page that you wish to press | ||
|
||
Example: `companion:1,2;` : This would press Button 2 on Page 1. | ||
|
||
## Turn bridge logo on or off | ||
|
||
Format: `logo:[switch];` | ||
|
||
* `switch`: Either `on` or `off` | ||
- `switch`: Either `on` or `off` | ||
|
||
Example: `logo:on;` : To turn the logo on. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.