Midi > Instrument triggering Routing

earlier I had ideas about how to have more MIDI devices controlling more instruments/VSTfx,
but they where incomplete and didn’t fit inside the Renoise format.
I had sleepless nights about thinking it trough, but here I hope, is the answer:

here you can see an extra tab inside the ‘instrument settings’ called ‘MIDI in properties’.
the ‘MIDI properties’ is renamed ‘MIDI out properties’ (since this is what it controls)

it’s self explanatory for most functions but I will explain the functions:

the device selection could work like the track audio routing:
you can select the devices within the device list, I can think of 2 options for the inputs like they are now (master keyboard A and B )

  1. we can list them and be selected by default (so if no other device is selected it should work like it does now)
  2. we can add a ‘none’ in the list, if another device is selected and the instrument is selected the masterkeyboard inputs of renoise overule this setting.

the channel selection is there to select MIDI channel 1 to 16 and all.
this because some will have more than one device on the same input.

like with the master keyboard settings, here are also the options to filter some midi input controllers.

This will allow you to ‘hardwire’ devices to instrument. And with the new feature even to VSTfx!

this is really interesting, but I would not limit it to MIDI, if this is what you meant: being able for example to avoid channel pressure for a synth which does not support it (or for which you simply do not want CP messages to be written) would be great

I don’t quite get what you mean by “but I would not limit it to MIDI”.
the thing I really want to state here is that it’s still only possible to control one VST/MIDI device/VSTfx at a time.
while there are many occasions to think of where you would need a dedicated controller for it.

examples:

Today I thought out a better solution for the behavior of the device selection:

The device list should have the Hardware MIDI inputs along with ‘none’ which is selected by default.
This way all should work like everyone is used to now.
When a MIDI input is selected this will control the instrument.
But when the instrument slot is selected, the current master keyboards A & B will overrule it.

This way you still have the wealth of controlling different instruments with the same master keyboard.
And there is no worry for weird side effects when your Master keyboards A & B has the same input as assigned to the instrument.

The only thing the user has to be aware of, is which instrument slot is selected.
(What also is the case with the master keyboards A & B input now but the other way around)

Just redrawn the mockup, I deleted it by accident.

Can such thing be done with scripting?

Specifying a MIDI input device is not enough. We will also have to setup where the instruments should be played → on which track.

Also the main problem I see, is how to mix the old behavior and the new one.

The ability to just play the currently selected instrument on the currently selected track is IMHO still whats used most of the time, so it should be the default, just like you said. But what happens when mixing both way of routing:

Instrument 1 uses “MIDI Input MY_KEYBOARD”, bound to Track 2 → MIDI port & track is explicitly mapped
Instrument 2 uses “Any MIDI Master Input (automatic)”, bound to Track 3 → only track is explicitly mapped
Instrument 3 uses “Any MIDI Master Input (automatic)”, bound to no track → nothing is explicitly mapped

When “MIDI Input MY_KEYBOARD” is also specified in the preferences as masterkeyboard, playing some notes with “MIDI Input MY_KEYBOARD” and selecting “Instrument 2” in Renoise. What should happen here?
Only instrument 2 plays. Only instrument 1 plays, or both?


Main problem why all this is so complicated in Renoise, is because we allow playing any instrument on any track. Other sequencers can solve such issues by simply only setting up input routings for a track. The track then feeds its instruments.

Yes and no. OSC can play any instrument on any track. But you then somehow need to send OSC messages from your keyboard to Renoise.

We should be able to solve this with a few options?
Don’t forget midi channels as part of the equation?
So even if you use the same “MIDI Input MY_KEYBOARD” as master keyboard and at the same time to a specific instrument, they can still use different channels (omni and 1-16).
Another thing to consider is a simple toggle for midi input on each instrument. So even master keyboard midi input can be ignored with just a press of a button.

And if you do not specify any track, then just play them all on the current track? I don’t see the problem here?

When you set a controller in the instrument MIDI in properties there could be 2 behaviours as far I see:

  1. It overwrites the masterkeaboard behaviour for that instrument. (this way the normal behaviour will stay the same if you don’t use this feature.
    you could make an extra option in the list of MIDI devices that says something like “masterkeyboard inputs”
  2. It can be applied together with the normal behaviour so you kan keep, an always working masterkeyboar,d that controls anything in your studio.
    Could be handy but I think it’s technically the more difficult choice I think while I can imagine this could create some weird side effects. But only the devs could know that.

The track assignment is no biggie I think. It should simply work as the “assigned to track” toggle in the VSTi properties.
or am I overlooking something?