kmatheussen / radium

A graphical music editor. A next generation tracker.
http://users.notam02.no/~kjetism/radium/
GNU General Public License v2.0
836 stars 36 forks source link

[Feature request]: Enable recording multiple different MIDI channels #1436

Open kramlie opened 3 weeks ago

kramlie commented 3 weeks ago

What & Why

Let's me first explain why I'm requesting this: I have a MIDI guitar which has small buttons instead of real strings. I've set it up so that each "string" is sent on a different channel. IOW, all buttons in the same row are on the same channel, while all buttons in the same column are on different channels. I do this so that each "string" can have a slightly different timbre. In addition I have six additional channels for the "string attack".

The issue I'm having is that this channel separation needs to be preserved in the Radium recording. Although Radium does preserve each note, it does not preserve which channel each one came from. And this causes the track to play very differently afterwards.

Simply splitting a polyphonic track into multiple tracks does not work, because the information about which note goes where is already lost.

Interface

In terms of interface, I do have an idea, but I'm also fairly new to Radium, so perhaps you have a better one.

My idea is to enable binding of certain MIDI instruments (MIDI In) and channels to specific tracks. It would be a bit like the inverse of the MIDI instruments, and how they bind a track to a specific MIDI Out and channel. MIDI In instruments and channels that are bound to specific tracks would only trigger events in that track, not the currently active one. I assume that this would be block specific. In other words, it would not have any effect for blocks that you are not currently editing.

I admit that this idea is heavily influenced by how Renoise does it. But I think it's a good approach, and I haven't come up with anything better.