Skip to content

PepperDash/epi-qsc-qsysdsp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QSC Q-Sys DSP Essentials Plugin (c) 2021

License

Provided under MIT license

Notes

Please refer to QSC Q-Sys plugin developer for questions and issues or use the "Issues" tab above.

Device Specific Information

Update the below readme as needed to support documentation of the plugin

Communication Settings

Update the communication settings as needed for the plugin being developed.

Setting Value
Delimiter "\n"
Default IP NA
Default Port 1702
Username NA
Password NA

Plugin Valid Communication methods

Reference PepperDash Core eControlMethods Enum for valid values, (currently listed below). Update to reflect the valid values for the plugin device being developed.

Tcpip

Plugin Configuration Object

Update the configuration object as needed for the plugin being developed.

{
  "devices": [
    {
      "key": "dsp-1",
      "name": "QSC Q-Sys Essentials Plugin",
      "type": "qscdsp",
      "group": "pluginDevices",
      "properties": {
        "control": {
          "method": "tcpIp",
          "endOfLineString": "\n",
          "deviceReadyResponsePattern": "",
          "tcpSshProperties": {
            "address": "172.22.0.101",
            "port": 1702,
            "username": "",
            "password": "",
            "autoReconnect": true,
            "autoReconnectIntervalMs": 5000
          }
        },
        "prefix": "",
        "levelControlBlocks": {},
        "presets": {},
        "dialerControlBlock": {},
        "cameraControlBlocks": {}
      }
    }
  ]
}

Plugin Level Control Configuration Object

"properties": {
	"levelControlBlocks": {
		"fader-room": {
			"label": "Room",
			"levelInstanceTag": "ROOM_VOL",
			"muteInstanceTag": "ROOM_MUTE",
			"disabled": false,
			"hasLevel": true,
			"hasMute": true,
			"isMic": false,
			"useAbsoluteValue": false,
			"unmuteOnVolChange": true
		},
		"fader-program": {
			"label": "Program",
			"levelInstanceTag": "PGM_VOL",
			"muteInstanceTag": "PGM_MUTE",
			"disabled": false,
			"hasLevel": true,
			"hasMute": true,
			"isMic": false,
			"useAbsoluteValue": false,
			"unmuteOnVolChange": true
		},
		"fader-speech": {
			"label": "Speech",
			"levelInstanceTag": "SPEECH_VOL",
			"muteInstanceTag": "SPEECH_MUTE",
			"disabled": false,
			"hasLevel": true,
			"hasMute": true,
			"isMic": false,
			"useAbsoluteValue": false,
			"unmuteOnVolChange": true
		},
		"fader-phone-call": {
			"label": "Phone Call",
			"levelInstanceTag": "AC_RX_VOL",
			"muteInstanceTag": "AC_RX_MUTE",
			"disabled": false,
			"hasLevel": true,
			"hasMute": true,
			"isMic": false,
			"useAbsoluteValue": false,
			"unmuteOnVolChange": true
		},
		"fader-video-call": {
			"label": "Video Call",
			"levelInstanceTag": "VC_RX_VOL",
			"muteInstanceTag": "VC_RX_MUTE",
			"disabled": false,
			"hasLevel": true,
			"hasMute": true,
			"isMic": false,
			"useAbsoluteValue": false,
			"unmuteOnVolChange": true
		},
		"fader-privacy": {
			"label": "Privacy",
			"levelInstanceTag": "PRIVACY_VOL",
			"muteInstanceTag": "PRIVACY_MUTE",
			"disabled": false,
			"hasLevel": false,
			"hasMute": true,
			"isMic": true,
			"useAbsoluteValue": false,
			"unmuteOnVolChange": true
		},
		"fader-wireless-mics": {
			"label": "Wireless Mics",
			"levelInstanceTag": "WLESS_VOL",
			"muteInstanceTag": "WLESS_MUTE",
			"disabled": false,
			"hasLevel": true,
			"hasMute": true,
			"isMic": true,
			"useAbsoluteValue": false,
			"unmuteOnVolChange": true
		},
		"fader-8": {
			"label": "Fader 8",
			"disabled": true
		},
		"fader-9": {
			"label": "Fader 9",
			"disabled": true
		},
		"fader-10": {
			"label": "Fader 10",
			"disabled": true
		},
		"sourceControl-1": {
			"comment": "When using a fader for source selection you must include useAbsoluteValue:true",
			"label": "Room A Audio",
			"levelInstanceTag": "SOURCE_SELECT",
			"disabled": false,
			"hasLevel": false,
			"hasMute": false,
			"isMic": false,
			"useAbsoluteValue": true,
			"unmuteOnVolChange": false
		}
	}
}

Plugin Preset Configuration Object

Presets can be handled two ways:

  1. Point directly to the snapshot name using the first method below. This will not provide feedback.
"properties": {
	"presets": {
		"preset-1": {
			"label": "System On",
			"preset": "PRESETS 1 0"
		},
		"preset-2": {
			"label": "System Off",
			"preset": "PRESETS 2 0"
		},
		"preset-3": {
			"label": "Default Levels",
			"preset": "PRESETS 3 0"
		}
	}
}
  1. Another option is to give each preset a named control in the DSP. This is done on the QSC side by opening the snapshot component and giving the "Preset Recall" button a named control. This allows for true and half-state feedback. Half-state feedback is when the preset was the last recalled preset in the grouping but the DSP state no longer matches the preset state. To define presets in this manner use the following config object. Note it is placed with the level control blocks.

To control from SIMPL, use the analog level input and output on the object. Triggering any analog value above 0 will active the preset. Feedback is 0=inactive, 1=half-state, 2=active.

    "levelControlBlocks":
    {
	"preset-1":
	{
	    "label": "Default Levels",
	    "levelInstanceTag": "DEFAULT",
	    "disabled": false,
	    "hasLevel": true,
	    "useAbsoluteValue": true
	}
    }

Plugin Dialer Control Blocks

"properties": {
	"dialerControlBlocks": {
		"dialer-1": {
			"ClearOnHangup": true,
			"incomingCallRingerTag": "VOIP_RINGING",
			"dialStringTag": "VOIP_DIALSTRING",
			"disconnectTag": "VOIP_DISCONNECT",
			"connectTag": "VOIP_CONNECT",
			"callStatusTag": "VOIP_STATUS",
			"hookStatusTag": "VOIP_OFFHOOK",
			"doNotDisturbTag": "VOIP_DND",
			"autoAnswerTag": "VOIP_AUTO_ANSWER",
			"keypadBackspaceTag": "VOIP_DIALSTRING_DEL",
			"keypadClearTag": "VOIP_DIALSTRING_CLEAR",
			"keypad1Tag": "VOIP_DTMF_1",
			"keypad2Tag": "VOIP_DTMF_2",
			"keypad3Tag": "VOIP_DTMF_3",
			"keypad4Tag": "VOIP_DTMF_4",
			"keypad5Tag": "VOIP_DTMF_5",
			"keypad6Tag": "VOIP_DTMF_6",
			"keypad7Tag": "VOIP_DTMF_7",
			"keypad8Tag": "VOIP_DTMF_8",
			"keypad9Tag": "VOIP_DTMF_9",
			"keypad0Tag": "VOIP_DTMF_0",
			"keypadStarTag": "VOIP_DTMF_*",
			"keypadPoundTag": "VOIP_DTMF_#"
		}
	}
}

Plugin Camera Control Blocks

"properties": {
	"cameraControlBlocks": {
		"camera-1": {
			"panLeftTag": "CAM01_LEFT",
			"panRightTag": "CAM01_RIGHT",
			"tiltUpTag": "CAM01_UP",
			"tiltDownTag": "CAM01_DOWN",
			"zoomInTag": "CAM01_ZOOMIN",
			"zoomOutTag": "CAM01_ZOOMOUT",
			"privacy": "CAM01_PRIVACY",
			"onlineStatus": "CAM01_STATUS",
			"presets": {
				"preset01": {
					"label": "Default",
					"bank": "CAM01_PRESETS",
					"number": 1
				},
				"preset02": {
					"label": "Tight",
					"bank": "CAM01_PRESETS",
					"number": 2
				},
				"preset03": {
					"label": "Wide",
					"bank": "CAM01_PRESETS",
					"number": 3
				},
				"preset04": {
					"label": "User",
					"bank": "CAM01_PRESETS",
					"number": 4
				}
			}
		}
	}
}

Plugin Bridge Configuration Object

Update the bridge configuration object as needed for the plugin being developed.

{
  "devices": [
    {
      "key": "dsp-1-bridge",
      "name": "QSC Q-Sys Essentials Plugin Bridge",
      "group": "api",
      "type": "eiscApi",
      "properties": {
        "control": {
          "ipid": "1A",
          "tcpSshProperties": {
            "address": "127.0.0.2",
            "port": 0
          }
        },
        "devices": [
          {
            "deviceKey": "dsp-1",
            "joinStart": 1
          }
        ]
      }
    }
  ]
}

SiMPL EISC Bridge Map

The selection below documents the digital, analog, and serial joins used by the SiMPL EISC. Update the bridge join maps as needed for the plugin being developed.

When instantiating multiple dialers joins start @ 3100 and use digital/analog/serial joins in blocks of 50. For example, Dialer 2 would start @ 3150.

Digitals

dig-o (Input/Triggers) I/O dig-i (Feedback)
1 Is Online Feedback
Run Preset by Number 100 - 199
200 - 399 Fader [n] Visible Feedback
Fader [n] Mute Toggle 400 - 599 Fader [n] Mute Toggle Feedback
Fader [n] Mute On 600 - 799 Fader [n] Mute On Feedback
Fader [n] Mute Off 800 - 999 Fader [n] Mute Off Feddback
Fader [n] Level Increment 1000 - 1199
Fader [n] Level Decrement 1200 - 1399
3100 Dialer Incoming Call Feedback
Dialer 1 End Call 3107
Dialer 1 Keypad 0 3110
Dialer 1 Keypad 1 3111
Dialer 1 Keypad 2 3112
Dialer 1 Keypad 3 3113
Dialer 1 Keypad 4 3114
Dialer 1 Keypad 5 3115
Dialer 1 Keypad 6 3116
Dialer 1 Keypad 7 3117
Dialer 1 Keypad 8 3118
Dialer 1 Keypad 9 3119
Dialer 1 Keypad * (Start) 3120
Dialer 1 Keypad # (Pound) 3121
Dialer 1 Keypad Clear 3122
Dialer 1 Keypad Backspace 3123
Dialer 1 Dial/End Call 3124 Dialer 1 Dial Feedback
Dialer 1 Auto Answer On 3125 Dialer 1 Auto Answer On Feedback
Dialer 1 Auto Answer Off 3126 Dialer 1 Auto Answer Off Feedback
Dialer 1 Auto Answer Toggle 3127 Dialer 1 Auto Answer Toggle Feedback
Dialer 1 On Hook 3129 Dialer 1 On Hook Feedback
Dialer 1 Off Hook 3130 Dialer 1 Off Hook Feedback
Dialer 1 Do Not Disturb Toggle 3132 Dialer 1 Do Not Distrub Toggle Feedback
Dialer 1 Do Not Disturb On 3133 Dialer 1 Do Not Distrub On Feedback
Dialer 1 Do Not Disturb Off 3134 Dialer 1 Do Not Distrub Off Feedback

Analogs

an_o (Input/Triggers) I/O an_i (Feedback)
Fader [n] Level Set 200 - 399 Fader [n] Level Feedback
400 - 599 Fader [n] Type Feedback

Serials

serial-o (Input/Triggers) I/O serial-i (Feedback)
DSP IP Address 1
DSP Prefix 2
Run Preset by Name 100
100 - 199 Preset [n] Name Feedback
200 - 399 Fader [n] Name Feedback
3100 Dialer 1 Dial String Feedback
3104 Dialer 1 Caller ID Number Feedback