Well, Spark2 should send MIDI out from the pads and the sequencer.
There's a "Send MIDI from..." Yes/No setting in Prefs to turn that on/off.
Running as Standalone, you'll have to set its Setup, Audio MIDI Settings, MIDI Output
and running as VST/AU, your DAW will have to allow MIDI out from it to be directed to other MIDI in instruments or MIDI output ports.
Problem is... this isn't working in 2.1, at least I'm currently unable to make it work either as Standalone or Live 8.
(TBH, I've never been able to understand properly if it was me doing something wrong, if I understood it wrong and expected something it wasn't meant to do or if this was/is something that never worked and I was unable to explain it properly for this "bug" to be fixed).
EDIT: Just tried this again with Live 8 and it works, as long as Live's own sequencer is running along with Spark 2's own sequencer. If Live is stopped but Spark 2 is running, no MIDI is passed out from it by Live.
Regarding the controller, it uses regular but a special set of MIDI CC's and Notes to mirror the software state and to send the user actions on the controller to the software.
Both Spark and SparkLE have a user-configurable "Generic MIDI Controller" mode, like any other MIDI controller, to allow it to control other software, while in this "Generic" mode.