Could you help me to understand this? I’m not sure what routing is being described here
To receive midi on a channel you select a midi source, either a controller, or a midi receiver. Controllers correspond to devices your OS perceives as a midi source. A typical setup might be as follows:
- I setup a USB midi synth as a controller.
- I create an instrument track.
- I add a HW instrument device with a midi target port and channel corresponding to that synth.
- I set the midi input on that track to the synth/controller I created previously.
- I turn local control off for the synth (optional depending on intent)
In this state I can record and playback automation or notes from the synth panel (i.e CCs are captured). In this state, I can’t play the keys on my controller without changing the midi source for the track. I could resolve this by setting the input to all ins (which includes my controller). In this state I can play my controller or my synth. The problem is that if I have N synths, adjusting and parameter on any synth sends the generated CC to whatever midi channels are monitoring. This is equally problematic when recording if, for example, I tweak a midi enabled effect: it’s automation gets recorded onto the synth’s midi track.
This type of situation was actual very common for me when using my MPC in live situations before they implemented the “master controller” concept alongside the USB midi support. The solution back then was discipline: always change the track from the MPC (I added foot pedals to do this) before touching anything. A mistake would mean touching one device might inadvertantly alter the sound (in unpredictable and hard to reverse) ways on another device.
I see, I think I understand now. So pretty much the issue is that the current options are “all”, “one” or “none” of the attached controllers, and you’d like to be able to either:
- Nominate a second controller as master so it will also send control data along with the one selected as the track input
- Select more than one device as the MIDI input for a given track
If this is correct, then I think there is a workaround using stock devices:
- Create one instrument track for the actual instrument
- Create one additional instrument track for each of the MIDI sources you need
- Set each of the instrument tracks you created in (2) to their corresponding device inputs
- On the instrument track you created in (1), put a Note FX Layer as the first device in the chain
- In that Note FX Layer, add one Note Receiver for each of the MIDI source tracks you created in (2)
- On each of the Note Receivers you created in (5), set their note source to one of the instrument tracks you created in (2)
- Arm the instrument tracks created in (2) and start recording
You should then find that the individual instrument tracks will have all of their MIDI routed to the Note FX Layer, mixed together and then fed to the instrument itself. They will even be recorded separately because they are on separate instrument tracks. If you want you can group all of the tracks so they can be tidied away.
This looks pretty arduous when written down but it’s actually pretty quick to set up. However it would definitely be easier if you could just select multiple sources as the input. If you think the workaround is too inconvenient, or if I’ve misunderstood somehow, please feel free to edit with OP with the information you added above and we can then look at getting this moved to #features
This works, and I’ve used variations on it in the past. The main frustration in setting it up is the number of extra tracks I need hanging around. In reality I have 3 controllers (a keyboard, a launchpad and a midi foot controller) so I make a midi track with each as input, then a fourth with a note receiver to aggregate (all with monitor on, then group). Similarly for each device the midi track receives from the the controller group and add a note receiver (with input mute off). Then the instrument receiving from that track; grouping these isn’t that convenient because I need to open/close the group to record, and they appear in the clip launchers (including on the launchpad). I therefore have to push all these routing channels to the bottom of the track list. For a setup with 9 synths, and 3 controllers I have to add 13 extra tracks (which I can group to hide from view).
This seems like a fairly complicated configuration, even if I save it in a template. Where I’m not using a template, new tracks default to all midi inputs, which would be okay, if I’d only use my controllers, but my effect units are also midi enabled meaning adjusting those (as part of mixing) sends in midi too. In contrast, if I could select multiple inputs per track, and create a default set, I could just create a track, then add any hardware devices I want midi from to the list of inputs: one step, no extra tracks or devices.
@chalkwalk I agree, it’s a bit overcomplicated. The workaround could be added (perhaps a bit more succinctly than I wrote it) to the OP and once ready this can me moved over to #features. I like the way you worded the workaround in terms of making a MIDI track with each controller as input and then aggregating them using note receivers in a group (i.e. Note FX Layer). If we can get some of this written up into the OP then we can get this moved over to #features
I updated the description; I think it could still need some work, so I’m commenting to avoid it being auto closed.
I made a few edits to the OP to make it a bit more concise and in 3rd person/passive voice. What do you think?
I have the impression that this description is still very complex, when the problem you want to address is not. Part of the problem might be that there are four distinct pieces of information that are being mixed (if I’m reading this properly):
- Currently you can select one MIDI source per track, or all of them.
- You want to route only the controllers you select. The main use case is to use one controller for notes and another one for modulation/automation.
- One way to do this would be to allow the selection of specific MIDI sources in each track.
- Another way to do this would be a master controller (a concept that I haven’t understood after reading the description, but maybe it’s just me)
The examples you are providing read (to me) also a bit complex when, again, I believe they are not. I still am not very clear about what specifically you want to do that Bitwig is not allowing you to do. Because of this, I still wonder whether there is a “Bitwig way” to achieve what you want to achieve.
I hope this makes sense. This feature request has been in Drafts for quite a bit and I’m happy to clarify it so we can promote it to #features .
The reason for the complex description is I’m trying to pose it in terms of the problem I am trying to solve. What you’ve identified are proposed solutions. Fundamentally what I want to do is:
- Create a track corresponding to a hardware synth (to capture and playback midi and route returned audio into the DAW); moreover one per hardware synth I’m using.
- To be able to, when recording or when the track is in monitor mode, play either that synth or a master controller (a midi controller I want to be usable when playing any hardware or software synth).
- While recording, or when monitor is enabled, I don’t want midi sent from any device other than the synth in question, or the master controller, routed to the track.
As a concrete example: imagine I have 2 synths, a poly and a mono (both with a keyboard) and a controller keyboard. I make two tracks in the DAW, one corresponding to each. I wish to be and to play any of the 3 keyboards and record with the following constraints:
- Whatever I play on the controller will record to whichever track I have selected.
- Whatever I play on the poly will only be recorded to the poly synth track (when record enabled)
- Whatever I play on the monosynth will only be recorded to the mono synth track (when record enabled).
Circling back on the master controller concept. In the above scenario, the controller would be a “master controller”. I believe you have an “MPC One”; this behaviour corresponds to setting a device to “master” mode in the USB midi settings.
Ok, now I understand. @chalkwalk I don’t want to stand in the way. Please check the description and after you are happy with it, I will promote this draft to #features . The only things I will look at is that the problem statement is explained in the “What problem…” section and that sentences in first person have been rephrased.
I have done minimum edits to the description, and I will promote this request to #features in 24h unless someone stops me before.
Sounds good to me: thanks.