ksseq consists of many different applications which communicate over OSC(liblo).
The ksserver saves the ip and port of every client, which connects to the framework.
A client could be a sequencer or the gui.
A sequencer is a module, that sends notes via midi and receives commands via OSC.
They all stay in sync via a timer which sends midi clock and receives it(sync, too).
So you can interact with external gear, too.
The gui is the same for every app.
It creates widgets via osc commands.
So every app(server, timer, sequencer) handles the gui itself( keyboard and midi-in control.
As you can recognize, you can work together via LAN, as OSC supports it.
So there is no single user production, but a multiuser network session.
Now to the heart of the framework.
The sequencer offers you 16 parts with 16 tracks with 16 steps.
Every step sends note, velocity, release velocity, 4 midi controllers .
It can be skipped, muted, note disabled(only midi controls will be sent), triggered two time(faster than the grid speed, i.e. 1/32 in a 16/16 grid, or gated together with the next steps to get longer notes.
Every track has it's own grid length, resolution, scale, shuffle, can be chained with another track( you can make longer tracks) or muted.
Every part has it's own tracks, midi output device and channel.
Now to the second important thing:
You will operate this sequencer via an external midi device and your keyboard.
It doesn't matter which device it is(but it has to work under linux) or if it sends midi cc or nrpn.
You simply need 8 controllers which send data from 0-127 or +-1.
So you select the edit fields, mute steps etc. via keyboard and every visible element will be configured via the midi controls.
This enables really fast handling.
These details are provided for information only. No information here is legal advice and should not be used as such.