Timed fades, mute-style matrix sends, meters on matrix send knobs
- Every set-level action (input, bus, matrix and control group faders, aux and matrix sends) has a fade time and a curve: fader travel (natural), fader travel with ease in/out, or linear in dB. Fades step at 20 Hz, land exactly on the target, never overshoot, and are cancelled by any new move on the same fader; new "Stop all fades" action, fades_running variable and fade_running feedback. Verified on the S31 with a switched-off matrix send: 20 writes in 1 s, ending exactly on target, then restored. - Matrix sends now look like mutes in the presets: red when the send is off, black when it is on (new matrix_send_off feedback, true only when the send is known to be off). - Matrix send knobs carry a meter column on the right. The S31 has no meter for matrix inputs, so it shows the destination output's meter. Meter gauges use a faint track so an empty meter reads as empty. - Test fixes: the meter-resubscribe check no longer depends on a silent channel changing value, plus back-to-back /Meters/clear coverage. npm test: 504 checks pass on Node 25 and on Companion's Node 22. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+21
-5
@@ -94,13 +94,29 @@ is not known yet.
|
||||
| Graphic EQ | in/out, band gain set/adjust (bands 1-32) |
|
||||
| Channel strip | per input and per buss: phantom, phase, pad, EQ in, compressor in, gate in, high-pass in, low-pass in, delay in, insert A/B in (on/off); trim (-40 to +40 dB), analog gain (0 to 60 dB), filter frequencies (20 to 20000 Hz) (set/adjust; trim also on matrix outputs and matrix inputs, phase also on matrix inputs) |
|
||||
| Snapshots | fire (pick from the list or type an index), next, previous |
|
||||
| Console | reload, raw OSC, relay: forget all iPads |
|
||||
| Console | reload, raw OSC, relay: forget all iPads, stop all fades |
|
||||
|
||||
The channel-strip values are what the console reports (trim and gain in dB, filters in Hz). In the console's
|
||||
own naming `lo_filter` is the high-pass filter and `hi_filter` the low-pass filter; the actions are named for
|
||||
what they do. Delay times and the send pre/post fader switch are not offered: their units and meaning were
|
||||
never verified.
|
||||
|
||||
**Fades.** Every *set level* action (input, buss, matrix output and control group faders, aux send level, matrix send
|
||||
level) has a **Fade time (ms, 0 = instant)**, 0 to 60000 ms. With 0 the level jumps to the target at once, as before; above 0
|
||||
the module moves the level there smoothly, starting from where it is now (it reads the level first when it is not known
|
||||
yet; if the console does not answer, the target is set at once and a warning is logged). A new level is written 20 times a
|
||||
second at most (every 50 ms, steps that would change the level by less than 0.05 dB are left out), and the last write is
|
||||
exactly the target. The **Fade curve** (shown once the time is above 0) is *Fader travel (natural)*, which moves the way a
|
||||
fader's travel does (the same taper as the gauges, so the level change sounds even; the default), *Fader travel, ease in/out*
|
||||
(the same with a slow start and a slow end), or *Linear in dB* (the same number of dB every step; a fade from or to −∞ runs between −90 dB, where sound
|
||||
stops, and the target, so no part of it is a silent stretch; a fade to −∞ still ends at exactly −∞). A matrix send never goes below −90 dB.
|
||||
There is one fade per level: starting another fade, a plain *set* or an *adjust* on the same level ends the running one
|
||||
where it is, and the new one takes over from that level. The action returns at once and the fade runs on in the
|
||||
background; the **Stop all fades** action ends every fade where it is. Fades end too when the connection to the console is
|
||||
closed or reconfigured, and while one runs the module keeps writing its level, so a fader moved at the console in the
|
||||
meantime is overwritten. The variable `fades_running` is the number of fades running and the feedback **A fade is
|
||||
running** is on while there is one.
|
||||
|
||||
**Encoders and writes.** Every write updates the module's state at once, so a fast encoder turn accumulates. For
|
||||
0.4 seconds after the last write to a value, a different value arriving for it is treated as a late echo of an
|
||||
earlier step and ignored; then one query confirms what the console has. The snapshot *Fire* action sends the
|
||||
@@ -117,8 +133,8 @@ graphic EQ bands, channel-strip values) is loaded the first time one is shown, a
|
||||
own value changes.
|
||||
|
||||
* Boolean (button colour): input muted / solo; aux send on; group assigned; buss muted / solo; matrix output muted /
|
||||
solo; control group muted / solo; **matrix send on**; **graphic EQ in**; snapshot is current; fader level above/below
|
||||
a threshold; aux send level above/below; console link alive; relay has an iPad; every channel-strip switch
|
||||
solo; control group muted / solo; **matrix send on**; **matrix send is off** (red like a mute; false while the state is not yet known); **graphic EQ in**; snapshot is current; fader level above/below
|
||||
a threshold; aux send level above/below; console link alive; relay has an iPad; a level fade is running; every channel-strip switch
|
||||
(phantom, phase, pad, EQ in, compressor in, gate in, high-pass in, low-pass in, delay in, insert A/B in; phase also
|
||||
per matrix input); and the meter feedbacks (signal present, peak hold) for inputs, busses and matrix outputs.
|
||||
* Value (put live numbers in button text with a preset's local variable): input fader and pan; aux send level, On/Off
|
||||
@@ -163,7 +179,7 @@ To add a gauge to your own button in Companion 5.1:
|
||||
|
||||
`input_N_name|fader|mute|pan`, `buss_N_name|mode|stereo|fader|mute`, `matrix_N_name|fader|mute`, `matrix_in_N_name`,
|
||||
`cg_N_name|fader|mute` (only for entities that exist), `snapshot_index|name|cue|count`, `console_name`,
|
||||
`session_name`, `connected`, `relay_clients`, `relay_client_ips` and `last_change`. Use them as
|
||||
`session_name`, `connected`, `relay_clients`, `relay_client_ips`, `fades_running` (number of level fades running) and `last_change`. Use them as
|
||||
`$(label:input_1_name)` with the connection's label. There are no per-send variables: use the value feedbacks.
|
||||
|
||||
## Presets
|
||||
@@ -181,7 +197,7 @@ buttons.
|
||||
| Sends to *aux name* | One section per named aux buss: per input an **On/off** button (green when on, shows the level) and a **Level (knob)** (turn = send level, press = on/off, with a gauge) |
|
||||
| Group *group name* | One section per named group buss: per input an **Assign** toggle, green when assigned |
|
||||
| Matrix, Control groups | Mute and fader knob (with a gauge) per output / group |
|
||||
| Matrix sends to *output name* | One section per matrix output: per matrix input an **On/off** button (green when on; shows the matrix input's name and the level) and a **Level (knob)** (turn = send level, press = on/off, with a gauge) |
|
||||
| Matrix sends to *output name* | One section per matrix output: per matrix input an **On/off** button (black when the send is on, red when it is off, like a mute; shows the matrix input's name and the level) and a **Level (knob)** (turn = send level, press = on/off, turns red when the send is off, with a level gauge along the bottom and a meter column on the right; the S31 has no meter for matrix inputs, so that column shows the destination matrix output's meter) |
|
||||
| Graphic EQs | One **In/out** toggle per graphic EQ, green when in |
|
||||
| Snapshots | **Fire** per snapshot (green when current), next, previous, current (display) |
|
||||
| Input meters | Level, gate gain reduction and compressor gain reduction buttons per input, each with a vertical gauge at the right edge (green below 70, amber 70-90, red above 90) |
|
||||
|
||||
Reference in New Issue
Block a user