Can something meaningfull be done without the learn taking channel into account???
There are several ways to approach Rapture without MIDI Learn. One might be to set up your controller templates generically, and use the control parameters available to the MIDI Matrix in conjunction with MIDI Learn. Another would be to use the DX Automation parameters exposed in your host application, and use that distinct type of MIDI Learn (if featured) to set up RP/DP external control. In my hosts, that will override and intercept anything that's configured in the synth's MIDI Learn.
It's also possible to set up several Rapture MIDI Learn configurations, and fly them in alongside your templates. This would be a manual swap, however, involving multiple MidiCfg
XX.bin files under the MIDI folder, and renaming to MidiCfg00.bin. It's not an automatic approach.
There's something to consider when designing for public use, though. For your own control setup, you can make it as exotic as you want. To distribute, you have to take into account what everyone else might/might not have at their disposal. Even channel aftertouch or release velocity are risky propositions in this light. I've been using common controls (mod & pitch wheels), note-related messages (velocity, alternate, keyboard, KB gate), or internally generated random controls.
In the MIDI Matrix, multiple Sources can control a single Destination, or the reverse, so that's become my approach for per-patch design. Beyond that, there's .sfz editing (with a bit of a learning curve). And remember that Volume, Expression, Sustain, Sostenuto, Global Attack, and Global Release [CC#s 7, 11, 64, 66, 73, and 72] are "hardwired". MIDI Learn doesn't apply to CC#s 0, 32, 120, 121, and 123 for across-the-board compatibility.
I can turn things off with a button on the midi controller but cannot turn things on. I was expecting buttons to toggle between on and off when they received the control sequence.
Button behavoir is configured in your controller itself. (Usually) anything with a value over 63 [0-127 limits] is On. There may be a Normal, Toggle, Momentary, or Step-type of button in your controller. It sounds like you have a Normal (one-shot high value) on that button; Toggle would act in the expected way.