Closed cmuellner closed 4 months ago
This controller is wild lol. This is from their docs at https://www.swamp.net.au/images/otherimages/manuals/EASYPAD_USER_MANUAL.pdf
Very odd.
Yeah, the manual is a bit... But I don't care what's written in the manual, as long as the device serves my use-case.
FWIW, I ran aseqdump
to dump the SYSEX commands.
Slider:
F0 7F 7F 04 01 00 00 F7
F0 7F 7F 04 01 00 7F F7
Bank button:
F0 42 40 00 01 04 00 5F 4F 00 F7
F0 42 40 00 01 04 00 5F 4F 01 F7
F0 42 40 00 01 04 00 5F 4F 02 F7
F0 42 40 00 01 04 00 5F 4F 03 F7
I looked into the QLC+ and as far as I understood, there is not much support for SYSEX commands. However, when looking at the sent messages, it is obvious how mapping the slider and bank button to elements in the virtual console could be done. The issue here is, that having device-specific code in QLC+ does not make sense. But having generic SYSEX support that can be utilized by the .qxi files sounds like quite some work (e.g. this could be done by defining a message mask and a conversion method to extract the input value).
My use case is to control the lights in a theater and play audio effects. At the moment I have an external 6-channel DMX mixer for cross-fading (stepping through the cue list). The buttons of the pad are used for the audio effects. If the fader of this device could be used to control a slider on the virtual console, I could leave the 6-channel DMX mixer in the box.
@cmuellner thanks for the PR and your analisys. I am currently working on the topic raised in #1514 and trying to find a generic solution for devices with different needs. I might commit something more later today. SysEx is indeed supported by the MIDI plugin when it sends initialization messages. See https://github.com/mcallegari/qlcplus/blob/master/plugins/midi/src/common/midiplugin.cpp#L309
In the meantime I purchased a couple of these Worlde controllers to be able to make tests myself. The more QLC+ is flexible, the better. I'll keep you posted on the progress
@cmuellner thanks for the PR and your analisys. I am currently working on the topic raised in #1514 and trying to find a generic solution for devices with different needs. I might commit something more later today. SysEx is indeed supported by the MIDI plugin when it sends initialization messages. See https://github.com/mcallegari/qlcplus/blob/master/plugins/midi/src/common/midiplugin.cpp#L309
I've seen this, but this is the other direction (sending a custom message to the device and not receiving a SYSEX message from the device that will be further processed).
I could imagine to have SYSEX messages supported like this in the qxi:
<Channel Number="SYSEX">
<Name>Fader 1</Name>
<Type>Slider</Type>
<SysexMask>FF FF FF FF FF FF 00 FF</SysexMask>
<SysexVal>F0 7F 7F 04 01 00 00 F7</SysexVal>
<ExtractionType>SingleByte</ExtractionType>
<ExtractionTypeArgs>6</ExtractionTypeArg>
</Channel>
So whenever a SYSEX message is received the channel description in the qxi will be probed for:
This allows keeping the device-specific part in the qxi, while being extendable for other value extractors.
In the meantime I purchased a couple of these Worlde controllers to be able to make tests myself. The more QLC+ is flexible, the better. I'll keep you posted on the progress
Sounds good! Let me know if I can help.
At this point, I am curious if the channel numbers are equal on all devices on the market.
Independent of the SYSEX topic, I would be happy if the device support would be accepted with a slightly reduced feature set (i.e., what is covered in the PR).
@cmuellner merged, thanks. Please keep in mind that docs are not bundled anymore with QLC+. To add a supported device you need to submit a PR to the documentation repository, which is in sync with https://docs.qlcplus.org/v4
Ok, thanks for merging. I'll create the doc PR later today or tomorrow.
I looked at the docs repo, and there is no list of supported Midi devices. There is just a page describing Midi profiles (https://docs.qlcplus.org/v4/plugins/midi generated from pages/09.plugins/06.midi/default.v4.md). Since there are no changes to the Midi profiles (we just added support for a new device), no changes in the docs are needed.
Hey @cmuellner today I just received my easypad 12. In omni mode I can receive all the pads+buttons+fader as control change no issue at all. The bank button is the only one that doesn't send anything. Perhaps they changed the firmware and now it's much more standardized? I saw there might be firmware updates and configuration tools in their website. https://www.worlde.com.cn/list_17/
Good to know! I currently don't have it at home, but I will get my hands on it again later this week and try to update the FW.
Are the channel numbers the same odd values (e.g. 37031 for Pad 1)?
Yes, everything seems to be same as your mapping. I just added the XY fader
The Worlde Easypad.12 is a relatively cheap MIDI pad, that can be used as MIDI input. All controls that standard MIDI messages are supported here.
However, there are a few missing features:
I created this profile six years ago and forgot about it. When I recently stumbled over the pad, I wanted to add support but found the old profile in my
.qlcplus
folder. Enough reason to create a PR and see if it will be accepted.