aboutsummaryrefslogtreecommitdiffhomepage
path: root/backends/maweb.md
diff options
context:
space:
mode:
authorcbdev <cb@cbcdn.com>2019-08-22 21:13:48 +0200
committercbdev <cb@cbcdn.com>2019-08-22 21:13:48 +0200
commit8b016f61a4b3d3be0c7b1e311209ab991276af0c (patch)
tree714561238a6be8df79bdbd98c042ec7fabc28307 /backends/maweb.md
parent5dcbae830db5289b4e269c1913511b890e3e1d5d (diff)
downloadmidimonster-8b016f61a4b3d3be0c7b1e311209ab991276af0c.tar.gz
midimonster-8b016f61a4b3d3be0c7b1e311209ab991276af0c.tar.bz2
midimonster-8b016f61a4b3d3be0c7b1e311209ab991276af0c.zip
Implement input for the maweb backend (with a few limitations)
Diffstat (limited to 'backends/maweb.md')
-rw-r--r--backends/maweb.md36
1 files changed, 22 insertions, 14 deletions
diff --git a/backends/maweb.md b/backends/maweb.md
index d713d82..fe430db 100644
--- a/backends/maweb.md
+++ b/backends/maweb.md
@@ -2,8 +2,7 @@
This backend connects directly with the integrated *MA Web Remote* of MA Lighting consoles and OnPC
instances (GrandMA2 / GrandMA2 OnPC / GrandMA Dot2 / GrandMA Dot2 OnPC).
-It grants read-write access to the console's playback faders and buttons as well as write access to
-the command line buttons.
+It grants read-write access to the console's playback controls as well as write access to the command line.
#### Setting up the console
@@ -16,7 +15,9 @@ Web Remote. Set a web remote password using the option below the activation sett
#### Global configuration
-The `maweb` backend does not take any global configuration.
+| Option | Example value | Default value | Description |
+|---------------|-----------------------|-----------------------|---------------------------------------------------------------|
+| `interval` | `100` | `50` | Query interval for input data polling (in msec) |
#### Instance configuration
@@ -28,39 +29,44 @@ The `maweb` backend does not take any global configuration.
#### Channel specification
-Currently, three types of channels can be assigned
+Currently, three types of MA controls can be assigned, with each having some subcontrols
+
+* Fader executor
+* Button executor
+* Command line buttons
##### Executors
* For the GrandMA2, executors are arranged in pages, with each page having 90 fader executors (numbered 1 through 90)
and 90 button executors (numbered 101 through 190).
- * A fader executor consists of a `fader`, two buttons above it (`upper`, `lower`) and one `flash` button below it.
- * A button executor consists of a `button` control.
+ * A fader executor consists of a `fader`, two buttons above it (`upper`, `lower`) and one `button` below it.
+ * A button executor consists of a `button` control and a virtual `fader` (visible on the console in the "Action Buttons" view).
* For the dot2, executors are also arranged in pages, but the controls are non-obviously numbered.
* For the faders, they are numerically right-to-left from the Core Fader section (Faders 6 to 1) over the F-Wing 1 (Faders 13 to 6) to
F-Wing 2 (Faders 21 to 14).
* Above the fader sections are two rows of 21 `button` executors, numbered 122 through 101 (upper row) and 222 through 201 (lower row),
in the same order as the faders are.
* Fader executors have two buttons below them (`upper` and `lower`).
- * The button executor section consists of six rows of 18 buttons, divided into two button wings. Buttons on the wings
+ * The button executor section consists of six rows of 16 buttons, divided into two button wings. Buttons on the wings
are once again numbered right-to-left.
- * B-Wing 1 has `button` executors 308 to 301 (top row), 408 to 401 (second row), and so on until 808 through 801 (bottom row)
+ * B-Wing 1 has `button` controls 308 to 301 (top row), 408 to 401 (second row), and so on until 808 through 801 (bottom row)
* B-Wing 2 has 316 to 309 (top row) through 816 to 809 (bottom row)
When creating a new show, only the first page is created and active. Additional pages have to be created explicitly within
-the console before being usable.
+the console before being usable. `fader` controls, when mapped as outputs from the MA, output their value, `button` controls
+output 1 when the corresponding executor is running, 0 otherwise.
These controls can be addressed like
```
mw1.page1.fader5 > mw1.page1.upper5
-mw1.page3.lower3 > mw1.page2.flash2
+mw1.page3.lower3 > mw1.page2.button2
```
A button executor can likewise be mapped using the syntax
```
-mw1.page2.button103 > mw1.page3.button101
+mw1.page2.button103 > mw1.page3.fader101
mw1.page2.button803 > mw1.page3.button516
```
@@ -99,10 +105,12 @@ Since this may be a problem on some platforms, the backend can be built with thi
to set arbitrary passwords. The backend will always try to log in with the default password `midimonster` in this case. The user name is still
configurable.
+Data input from the console is done by actively querying the state of all mapped controls, which is resource-intensive if done
+at low latency. A lower input interval value will produce data with lower latency, at the cost of network & CPU usage.
+Higher values will make the input "step" more, but will not consume as many CPU cycles and network bandwidth.
+
This backend is currently in active development. It therefore has some limitations:
* It outputs a lot of debug information
-* It currently is write-only, channel events are only sent to the MA, not generated by it
-* Fader executors (and their buttons) seem to work, I haven't tested button executors yet.
* Command line events are sent, but I'm not sure they're being handled yet
-* I have so far only tested it with GradMA2 OnPC
+* For the dot2, currently only the Core & F-Wings are supported for input from the console, not the B-Wings