PepperDash.Essentials.Plugin.QscQsysDspPlugin
2.1.1-hotfix-20
dotnet add package PepperDash.Essentials.Plugin.QscQsysDspPlugin --version 2.1.1-hotfix-20
NuGet\Install-Package PepperDash.Essentials.Plugin.QscQsysDspPlugin -Version 2.1.1-hotfix-20
<PackageReference Include="PepperDash.Essentials.Plugin.QscQsysDspPlugin" Version="2.1.1-hotfix-20" />
paket add PepperDash.Essentials.Plugin.QscQsysDspPlugin --version 2.1.1-hotfix-20
#r "nuget: PepperDash.Essentials.Plugin.QscQsysDspPlugin, 2.1.1-hotfix-20"
// Install PepperDash.Essentials.Plugin.QscQsysDspPlugin as a Cake Addin #addin nuget:?package=PepperDash.Essentials.Plugin.QscQsysDspPlugin&version=2.1.1-hotfix-20&prerelease // Install PepperDash.Essentials.Plugin.QscQsysDspPlugin as a Cake Tool #tool nuget:?package=PepperDash.Essentials.Plugin.QscQsysDspPlugin&version=2.1.1-hotfix-20&prerelease
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:
- 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"
}
}
}
- 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 |
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET Framework | net35 is compatible. net40 was computed. net403 was computed. net45 was computed. net451 was computed. net452 was computed. net46 was computed. net461 was computed. net462 was computed. net463 was computed. net47 is compatible. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.1.1-hotfix-20 | 166 | 8/21/2023 |
2.1.1-hotfix-14 | 153 | 6/14/2023 |
2.1.1-hotfix-13 | 148 | 6/14/2023 |
2.1.1-alpha-22 | 77 | 8/2/2024 |
2.1.1-alpha-21 | 54 | 8/2/2024 |
2.1.1-alpha-19 | 148 | 8/18/2023 |
2.1.1-alpha-18 | 152 | 7/25/2023 |
2.1.1-alpha-17 | 161 | 7/25/2023 |
2.1.1-alpha-16 | 154 | 6/27/2023 |
2.1.1-alpha-15 | 146 | 6/15/2023 |
2.1.0 | 424 | 6/6/2023 |
2.0.1-hotfix-12 | 150 | 6/6/2023 |
2.0.0 | 193 | 6/5/2023 |
1.1.4-alpha-9 | 144 | 5/31/2023 |
1.1.4-alpha-11 | 141 | 6/5/2023 |
1.1.4-alpha-10 | 148 | 5/31/2023 |
1.1.3 | 194 | 5/17/2023 |
1.1.3-hotfix-7 | 160 | 5/17/2023 |
1.1.3-beta-8 | 130 | 5/17/2023 |
1.1.3-beta-6 | 209 | 1/21/2023 |
1.1.2 | 346 | 1/21/2023 |
1.1.2-hotfix-5 | 154 | 1/20/2023 |
1.1.1 | 331 | 1/20/2023 |
1.1.1-hotfix-3 | 177 | 1/20/2023 |
1.1.1-beta-4 | 176 | 1/20/2023 |
1.1.1-alpha-2 | 145 | 11/30/2022 |