You are here

[SOLVED] Session view

First of all, thank you (Rui and all contributors) for making this and so much other magnificent software. You guys kick so much ass!

I am missing a session view akin to the one in Ableton Live. It looks like this:

As I suspect that this might not be the top priority for any of the main contributors, I intend to develop it myself. I am only asking for some pointers on how to get started.

For my proof of concept I would like to know 3 things:
- How would I create a clone of the "mixer" window and make it invokable through the "view" menu?
- What would be the best approach be for managing the MIDI clips? Could I borrow some logic from the "arrangment view"?
- Is anyone else interested in this feature and would like to collaborate?

rncbc's picture

hi, wholly thanks

let me tell you a very short story: back in mid-2005, Qtractor was thought as to have Live as an inspiration and a kind of wannabe for Linux... fast-forward one decade: it's still more like a Cakewalk (then Sonar), Cubase kind of clone than anything else in that regard. All that to tell that Qtractor has gone full-tick into the so called traditional timeline sequencer representation to music and diverged from the loop/clip launcher, spreadsheet-like kind of model that has been the true-hallmark of Live ever since its inception. Yes, that's exactly the session-view as you call it.

Now the fact is that these two session representation models--timeline vs. spreadsheet, so to speak--are not equivalent nor inter-changeable anymore. You can arrange, sequence and do way too many and different things in one format that cannot ever be mapped replicated on the other and vice-versa. You can mock one from the other but they are not just views into the same model. General speaking, there are information that gets lost when converting one into the other, either way or direction.

All that to say that you're welcome to the party :) Even though the above words may sound otherwise your proposal is of course welcome. Don't misunderstand me, please.

- How would I create a clone of the "mixer" window and make it invokable through the "view" menu?
Well, you probably have to think about the new session model first, the one that will paired with the spreadsheet-like, vertical track clip-launcher view. You may and probably wish to keep the Mixer as is or you can extend its layout vertically above to accommodate the tabular clip-launcher on tracks per column basis. Anyway, you'll have to seriously think about the model and controller parts first, before it may go into that kind of view.

- What would be the best approach be for managing the MIDI clips? Could I borrow some logic from the "arrangment view"?
I believe the you won't need the logic the from the "arrangement view" (aka. the timeline view) but rather have to come up with a quite different model and controller as a new playback engine; the ones in place are deeply committed with the timeline model. However you can certainly borrow and drink from mony other units or elements as infrastructure, like audio/MIDI tracks, clips and buses, etc.

All in all, it ain't that easy, it never is :)


Hey Rui,

I'm aware that this is going to be very nontrivial, a complete structural paradigm enclosed in another window.

Is your opinion actually that a completely separate project should be made instead, something like "qlive", that could then be routed to qtractor through jack for recording?

rncbc's picture

now you touched the brimstone :)

there's always two options rather directions if you wish:
1. add to current bloat on qtractor as an alternate model; yes, i've said bloat indeed ;)
2. do as a separate application or process, that possibly interfaces to qtractor via some kind of IPC; FYI. something quite similar has been proposed and implemented a few years ago, following jpmercury's freewheeling to which all live looping performance could get recorded via OSC messaging (as IPC); for all that meta/macro-recording kind of stuff there's--tada--the oscx branch still to play around.


Thanks, that perspective got me researching, and I think I've found a solution in sequencer64 connected through MIDI buses.

Add new comment