View Single Post
Old 01-12-2018, 03:59 AM   #1
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,457
Default Tracking interface for MIDI blocks.

Hello everyone,
apologies for repeating a question I've seen asked before on the forums. I'm a tracker. I migrated from Jeskola Buzz to REAPER for its superior audio quality and dealing with live input. I want to love Reaper and certainly love many aspects of it, but while I have used it for quite some time now, I just can't get around the frustration that I have to enter MIDI notes by mouse or be forced to use the keyboard step sequencer mode.

I'd love to have the ability to view MIDI blocks in both a tracked representation and the current piano roll format, being able to enter notes as I would in a tracker but without losing the option to make notes slightly longer or shorter in MIDI representation later. I've looked at ReViSiT, but it is cumbersome to add this extra layer to the workflow.

Renoise looks great, but other than the tracking interface, it doesn't seem to suit my workflow very well. I'd also like to shuffle the MIDI blocks around, like I already can in REAPER.

The idea would be to have a tracked representation as an alternative for looking at MIDI blocks. The tracked representation would simply round the MIDI notes to which row they belong as good as possible given a chosen row length. Manipulations would be done by row size, so a delete would trigger a shift by the row size (preserving any offset w.r.t. the row that is in the MIDI block).

Now the question, I am wondering whether the reaper extension system is flexible enough that this could somehow be achieved. Is the MIDI data exposed to the extension API somehow? Can you commit data to a MIDI block? Would it be possible to attach extra information to the individual data that goes into a note that would allow such an interface to keep track of which column the note used to be part of in the tracked representation (I would have no issue with randomly assigning a column the first time a MIDI object is opened if it wasn't created in the tracked representation)?

Just to make it clear, I am not looking for a plugin that can render tracked info to MIDI, or one that can give MIDI output. These exist and add cumbersome steps to the workflow. I would really want to build a transparent interface to the MIDI block directly (if this is possible).

Is there a good reference manual for the extension system? Where would I get started?

I am reasonably proficient in coding C/C++ and I wouldn't mind a challenging project but I am unsure whether this is even remotely possible at all, or where to find more info on the API involved.

Any help would be greatly appreciated!

Last edited by sai'ke; 01-12-2018 at 05:36 AM.
sai'ke is offline   Reply With Quote