Renoise Doesn'T Separate Input From Different Midi Controllers

Here’s an example:

I have a synth plugged into the MIDI port of my audio interface, which is connected to the PC via USB. I also have a BCR2000 MIDI controller, which is also connected to the PC via USB. The synth transmits on channel 1 and lets me play instruments in Renoise.

Now if I make a button on the BCR send a Note On on channel 1, and assign it to a button in a VST, that button gets toggled on/off also when playing the same note on the synth.

Shouldn’t Renoise separate MIDI information coming in on completely different interfaces? So that the thing that gets mapped to the VST is represented by something like “BCR2000[1]/Ch1/Note46”. Currently it seems to be represented just by “Ch1/Note46”.

I guess this means that having 3 MIDI In ports does not give me 48 channels in total in Renoise, but rather only 16.

I’m sure 48 channels would be useful if I had 48 pairs of hands.

The 48 channel comment was mainly to clarify the question, but having more than 16 input channels available can be useful when setting up lots of different control layouts for different virtual instruments and you don’t want them to conflict with each other.

It would be nice if you could choose a midi input in the instrument section, so you could play a keyboard on the string parts and for instance use midi drumpads to record your drums…

or is this nonsens

it’s a drawback of midi.
Proper or common usage for triggering control elements is CC messages
so use cc instead of note on.
BTW, how did you get a note-on with the BCR2000?

I might be wrong but I don’t think it’s a drawback of MIDI. CC messages will also collide in Renoise since it doesn’t keep track of the interface a message is coming in on.

I use the BCManager editor to configure the BCR, it’s very easy to make it send Note On with that.

lolwut.
proper or common usage of triggering drums with MIDI is with note-on
Standards ref - scroll to “General MIDI Level 1 Percussion Key Map”

The MIDI spec itself does not specify a method to physically identify the various keyboards and controllers that you might be using, except for the 16 different channels, so Renoise is technically not doing anything wrong in this regard. You will just have to configure your synth to broadcast on channel 1, and your BCR to broadcast on channel 2. The messages will be handled separately this way, which should allow you to do what you want.

Edit: I do understand your point of view though, and the ability to treat each MIDI device as having its own set of 16 channels could be an interesting option. I do not have a great deal of experience with MIDI in other hosts, but can you provide any extra information or examples for how this situation is handled elsewhere? It would be interesting to find out how others are doing it.

It is surely a drawback of midi. open sound control does not have this issue, it refrences each as it’s own device, in clear hierarchical manner. (Renoise 2.6) :)

Question, is there a reason why you need to use a note-on instead of CC for a parameter switch?
I completely forgot about the BCmanager, Thanks.

drums are note specific. (“Key#”)

OK, understood. However, I would have thought this can be kept track of in the software itself, as it is aware of the different interfaces it has available.

Furthermore, by that token, also MIDI output ought to be interface-agnostic in Renoise, which it’s not. I just tested this with the following settings:

Instrument 1 Instrument Settings/MIDI Properties:
Device: BCR2000[1]-A
Channel: 01

Instrument 2 Instrument Settings/MIDI Properties:
Device: ESU1808 Midi
Channel: 01

These two MIDI Outs go to two different synths. And when putting notes for these two instruments in the pattern editor, Renoise only plays the relevant instrument despite them both being on channel 1. So why can’t the same apply for MIDI In?

I was sure that Ableton Live did this, but now when I went to test it out, I found to my surprise that it does not! However, it has an extra layer of MIDI settings which allow you to specify whether a specific interface should be used for “Track”, “Sync” or “Remote”, so by setting “Remote” off for the keyboard, I can avoid this particular collision problem. However, if I interpret this correctly, this still limits you to 16 channels for remote MIDI mapped control also in Ableton.

This gets my +1 as well.
Also assigning specific devices AND channels to specific instruments would greatly enhance multi-control in Renoise.

yes multi track midi recording would be teh awesoooooooome.

see, i get al excited just thinking about it.

;]

Examples from my 2 main hosts:

Buzz:
Since MIDI is being overhauled in Buzz at the moment I’ll write how it works in Buzz 1.2b (the last version at the infamous harddrive loss before the current redevelopment) then whatever I write won’t be wrong in a couple of days:

Buzz allows one MIDI input, whether machines support MIDI is up to the individual machines. Those that do can be bound to a MIDI channel - including the Omni “channel”. To use another input device a MIDI input machine is added which is bound to the device, then machines hooked up to that input machine are bound to channels on that device. Much simpler than it sounds, and very flexible for live use. Input machine manual/screnshot.

Reaper:
Add a track for a VSTi and arm it for recording. Next to the arm button is a dropdown input menu, the first level of which is Mono/Stereo/MIDI inputs.
The MIDI input menu, lists all the devices, including “All MIDI Inputs”, each of those leads to a sub menu listing channels, including “All Channels”.
It also has an option to “Bind input to channel” so you can, say, play keyboard set to channel 1 and play the VSTi on track 5, play you keyboard on channel 2, and play the VSTi on track 11 and have that VSTi think it’s receiving the notes on channel 7. Page 78 of this pdf for screenshots etc

Even so most software allows for selecting port(device)/channel.

Sure, thats more poweful, but also makes things a lot harder when your setup changes a bit.
If Renoise memorizes, recognize MIDI mappings by name, like “BCR2000” in your example, you always have to use the very same MIDI controller to make your mappings work. If your MIDI controllers change over time your old songs won’t work anymore.

By using only Input “A” or “B”, no device names as its show in Rneoises prefs, this problem is solved. But then again you already can change your controllers MIDI channels, so its already possible to easily get around this problem?

If it differentiated between A and B in the OPs example, he wouldn’t have a problem it seems.
(and if it were 0x0-0xF instead of A or B… :ph34r:!!! )

This is a good point. But this is already so for MIDI out. I recently switched my physical connections around a bit and then I obviously had to go through and change the MIDI Instrument settings in Renoise. So I guess my question is, why is it differentiated for output but not for input?

Also, if you buy a new MIDI controller, I’d wager a guess that you almost always will have to redo your mappings anyway, due to the different layouts of different controllers.

Yep, that would be even better.

Indeed. It works for now, and really, I don’t think this is the most pressing issue in Renoise at all, I was mainly just curious about this behaviour.

But to give a bit of background, this whole thing came about through my wish of being able to have permanently set up presets on my BCR2000 for many different VSTs and devices. The common way of mapping up a controller, would be to just have the BCR send standard CCs on channel 1 e.g., and then Ctrl-M in Renoise and map these whatever way makes sense for the current project.

But there’s a few VSTs I tend to use on almost every track. And I thought it’d be nice to make a dedicated preset for each on the BCR. And if I make many such presets, I have to make sure that no CCs or Note Ons in them collide (in case I use all VSTs in one track), or that any temporary mappings I make steal any mappings from the presets. The easiest way of handling this would be to dedicate a MIDI channel to each preset/VST on the BCR2000.

Now, I might end up using quite a few channels and therefore I have to start worrying about not using the same channel as any other MIDI gear, and therefore it might be useful to have more than 16 channels.

On a slightly different note, this STILL doesn’t address the issue of what do to when having several instances of the same VST in one project. Has anyone figured out a good way of setting this up with MIDI control?

You select the instrument in the midi control device that you have to use for it, the device relies on the midi channel set in the VST instrument properties for the instrument you select in the midi control device for signalling CC messages to the instrument. There should be no problems in getting this stuff to work. Yes you have to map the functionality to the parameter sliders of each MIDI control device pointing to the instrument rather than selecting the instrument. It is another way of controlling parameters of multiple instruments using one MIDI controller. The Midi channel selection for input from your external gear is done in the mapping menu.

Sorry, maybe I wasn’t clear. I’m only talking about input here. How to best manage controlling two or more instances of, say, a VST compressor sitting on two different tracks from the BCR with as little manual remapping per project as possible.

Well, assuming you are going to use the same device multiple times, you can simply do generic mapping on the first device, then copy the device and paste the xml data into a text editor.
If you simply want to use the same controls on different channels, it is a simple matter of changing the channel-number in the channel-tag and then copy the xml snippet and paste it back on the dsp rack.
Here a simple snippet.

<?xml version="1.0" encoding="UTF-8"?>  
<FilterDeviceClipboard doc_version="0">  
 <DeviceSlot type="MidiControlDevice">  
 <IsActive>true</IsActive>  
 <IsSelected>true</IsSelected>  
 <SelectedPresetName>Init</SelectedPresetName>  
 <SelectedPresetIsModified>true</SelectedPresetIsModified>  
 <IsMaximized>true</IsMaximized>  
 <ControllerValue0>  
 <Value>70.255317687988281</Value>  
 <Visualization>Device only</Visualization>  
 </ControllerValue0>  
 <ControllerNumber0>0</ControllerNumber0>  
 <ControllerName0>Untitled</ControllerName0>  
 <ControllerType0>PB</ControllerType0>  
 <ControllerValue1>  
 <Value>127</Value>  
 <Visualization>Device only</Visualization>  
 <MidiMappings>  
 <MidiMapping>  
 <MappingMode>Controllers</MappingMode>  
 <ControllerMode>Absolute 7 bit</ControllerMode>  
 <NoteMode>Trigger</NoteMode>  
 <Channel>1</Channel>  
 <CCNumberOrNote>1</CCNumberOrNote>  
 <Min>0.0</Min>  
 <Max>1.0</Max>  
 </MidiMapping>  
 </MidiMappings>  
 </ControllerValue1>  
 <ControllerNumber1>-1</ControllerNumber1>  
 <ControllerName1>Untitled</ControllerName1>  
 <ControllerType1>CP</ControllerType1>  
 <ControllerValue2>  
 <Value>0.0</Value>  
 <Visualization>Device only</Visualization>  
 </ControllerValue2>  

Not the most convenient way yet, i hope with the scripting part this turns out to be done easier, but for the time being, being able to adjust the XML snippets is likely better than nothing, if you don’t like to manually reconfigure the same controls over and over.

Ah, hadn’t thought of that. Yeah, that could work.

When you say “paste it back on the DSP rack”, you don’t mean that it’s possible to somehow copy and paste within Renoise, do you? As I understand it, I would have to edit the mappings xrnm file outside of Renoise and then go into MIDI Mappings and hit Load, right?