e58f06d9fa
Stripped upstream git history; starting point for replacing the native SWELL/Win32 mapping UI with something more suited to bulk editing. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
52 lines
2.6 KiB
Lua
52 lines
2.6 KiB
Lua
--- name: Console 1 mk2 - MIDI absolute mode
|
|
--- realearn_version: 2.16.12
|
|
--- author: helgoboss
|
|
--- device_manufacturer: Softube
|
|
--- device_name: Console 1 mk2
|
|
--- description: |
|
|
--- This controller preset implements support for the Softube Console 1 controller in MIDI mode, enabling absolute control.
|
|
---
|
|
--- Pros:
|
|
--- * LED feedback without glitches
|
|
--- * Button "On" is available and can be customized
|
|
---
|
|
--- Cons:
|
|
--- * Buttons can't be turned into momentary buttons (because Console1 doesn't send any message on release)
|
|
--- * True relative control is not possible (no user-defined step sizes and no wrap)
|
|
--- * Without pressing "Fine Adjust", encoder control is very coarse
|
|
--- * Button "Fine Adjust" can't be customized (it just switches to fine control on hardware side)
|
|
--- * In order to avoid parameter jumps with the encoders, feedback must be enabled (alternatively, you can use
|
|
--- ReaLearn's takeover modes)
|
|
---
|
|
--- setup_instructions: |
|
|
--- 1. Connect the controller
|
|
--- 2. Ensure that the Console 1 On-Screen Display software is **not** running!
|
|
---
|
|
--- provided_schemes: [softube/console1-mk2]
|
|
|
|
--!strict
|
|
|
|
-- Config
|
|
|
|
-- With this, we can simulate true relative control.
|
|
--
|
|
-- In MIDI mode, the encoders of the Console 1 send absolute control values, not relative ones. This is
|
|
-- not optimal because it means we can't define step sizes, wrap etc. However, as long as feedback is enabled, at least we don't
|
|
-- need to suffer from parameter jumps (a common disadvantage of absolute control).
|
|
-- This is because the Console 1 doesn't just use the feedback to set the LED ring, it also resets its internal encoder
|
|
-- value to the incoming feedback value.
|
|
--
|
|
-- If we simulate relative control, we get the advantages of relative control. However, it doesn't
|
|
-- work so nicely with feedback :( The "reset-internal-encoder-value" mechanism mentioned above interferes.
|
|
-- Without further treatment, this makes the control stuck. We can make control work by not sending echo feedback
|
|
-- but then the indicated LED ring value is incorrect when we turn the encoder (however, it is correct when changing the parameter
|
|
-- in REAPER itself - as long as we don't disable feedback completely).
|
|
-- The technique we use right now is to compare with the previously sent feedback value - if available - and otherwise the previously
|
|
-- sent control value. This sort of works, but there can be glitches because it's not always sure that the last-sent feedback value
|
|
-- has actually been received by the controller.
|
|
|
|
local commons = require("softube/console1-mk2-lib/preset-common")
|
|
return commons.create_compartment {
|
|
mode = "midi-absolute",
|
|
}
|