You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The capability syntax is now much more versatile: Every capability defines a
type and some type-specific (machine readable) properties. This enables us to
write better export plugins, e.g. with information for 3D previews.
Copy file name to clipboardexpand all lines: docs/fixture-format.md
+51-7
Original file line number
Diff line number
Diff line change
@@ -76,14 +76,56 @@ All channels that are used in one or more modes are listed in `availableChannels
76
76
77
77
A channel's `defaultValue` is the DMX value that this channel is set to without the user interacting (most often, this will be `0`, but e.g. for Pan and Tilt channels, other values make more sense). Likewise, `highlightValue` specifies the DMX value if a user *highlights* this channel (defaults to the maximum DMX value). This is not available in every software.
78
78
79
-
`invert` is used to mark a descending value (e.g. Speed from fast to slow). If `constant` is `true`, the channel cannot be changed. Set `crossfade` to `true` if you want to allow smooth transitions between two DMX values being output by the software. This is e.g. not recommended for Gobo wheels, as there can be no *smooth* transition to another Gobo; the wheel will always rotate.
80
-
81
-
`precedence` specifies to which value the channel should be set if there are two conflicting active cues containing this channel: *HTP* (Highest takes precedence) or *LTP* (Latest (change) takes precedence).
79
+
If `constant` is `true`, the channel cannot be changed. `precedence` specifies to which value the channel should be set if there are two conflicting active cues containing this channel: *HTP* (Highest takes precedence) or *LTP* (Latest (change) takes precedence).
82
80
83
81
84
82
#### Capabilities
85
83
86
-
A channel can do different things depending on which range its DMX value currently is in. Those capabilities can be triggered manually in many programs, and the `menuClick` property defines how: `start` / `center` / `end` sets the channel's DMX value to the start / center / end of the range, respectively. `hidden` hides this capability from the trigger menu.
84
+
A channel can do different things depending on which range its DMX value currently is in. Those ranges, that can be triggered manually in many programs, are called capabilities. Choose a `type` to declare which property of the fixture is changed by this capability, e.g. `ShutterOpen`, `Intensity` or `Pan`. Depending on the type, there exist more properties that further describe the capability, like the pan angle, the strobe rate or the gobo wheel index. Most of these are physical entities that require to be entered using specific units (like `"10.5Hz"` or `"100%"`). Some entities offer keywords to replace specific percentage values, e.g. Distance: `"near"` = `"1%"`, `"far"` = `"100%"`. See the [full list of units, entities and capability types with their properties](capability-types.md). Example:
85
+
86
+
```js
87
+
"availableChannels": {
88
+
"Shutter": {
89
+
"capabilities": [
90
+
{
91
+
"dmxRange": [0, 20],
92
+
"type":"ShutterStrobe",
93
+
"shutterEffect":"Closed",
94
+
"comment":"Blackout"
95
+
},
96
+
{
97
+
"dmxRange": [21, 255],
98
+
"type":"ShutterStrobe",
99
+
"shutterEffect":"Open"
100
+
}
101
+
]
102
+
}
103
+
}
104
+
```
105
+
106
+
If a channel consists of a single 0-255 capability, one should use the `capability` property (instead of `capabilities`), which only needs a single object instead of an array of objects. The `dmxRange` is implicit in this object (see example below).
107
+
108
+
Capabilities may be _steps_, which means that the whole DMX range has the same effect (e.g. "Gobo 1"), or _proportional_, which means that the effect is increasing / decreasing from the start to the end of the DMX range (e.g. "Intensity 0-100%"). A proportional capability can define a start and an end value of its type-specific properties. Example:
109
+
110
+
```js
111
+
"availableChannels": {
112
+
"Pan": {
113
+
"capability": {
114
+
"type":"Pan",
115
+
"angleStart":"0deg",
116
+
"angleEnd":"530deg"
117
+
118
+
// DMX value 0 -> 0°
119
+
// DMX value 127 -> 264°
120
+
// DMX value 255 -> 530°
121
+
}
122
+
}
123
+
}
124
+
```
125
+
126
+
Please note that some properties don't allow start/end values, for example `hold`.
127
+
128
+
The `menuClick` property defines which DMX value to use if the whole capability is selected: `start` / `center` / `end` sets the channel's DMX value to the start / center / end of the range, respectively. `hidden` hides this capability from the trigger menu. This is one of those special features that are supported only by some lighting programs.
87
129
88
130
89
131
#### Fine channels
@@ -173,9 +215,11 @@ To reuse similar channels for each pixel or pixel group (like "Red 1", Red&
0 commit comments