Same CC on different Midi Channels

Post Reply New Topic
RELATED
PRODUCTS

Post

I have been building midi controllers for a while but am new to Bitwig. I plan on learning controller scripting in the very near future but have an urgent need to get a controller working on Bitwig, for an up coming demo.

Here is the problem:
My controllers use the same CC number to control different sliders and buttons in the DAW by using different midi channels. They work as intended in other DAWs ( Logic, Ableton, Cubase) but in Bitwig it appears that the midi channel is being ignored.

For Example:
1. I map Mixer Channel 1 Volume to CC34 and Midi Channel 1.
2. I map Mixer Channel 2 Volume to CC34 but use Midi Channel 2.

When I move the first Volume slider on my controller:
1. In Bigwig both Mixer Channel Volumes move together.
2. In the other DAWs only Mixer Channel 1 Volume moves.

I am hoping that in controller scripting this problem should be easy to resolve, but for my immediate need I have to do it with "auto-mapping". Can anybody help me with this problem or point me to a place in the manual where this is explained, I can't seem to find an answer.

Post

Bitwig ignoring Midi Channels is the most urgent (design) bug which has to be fixed. It also prevents MPE from functioning correctly. Please Bitwig, fix it! I will not upgrade until its fixed!!!
Controler scripting would only be a complicated work around...

Post

BUMPED this post because I have only seen one reply and feel this is an important issue.

I have created a number of custom controllers that use multiple midi channels to allow many more control options with fewer knobs.
I also had purchased Bitwig to replace my Ableton setup because Ableton has very poor support for MPE, and poor scripting support. It was not until I purchased Bitwig that I discovered this lack of midi channel support and has caused my controllers to stop working.

Post

TL;DR.. Try this:
  1. remove your old controller script from your settings
  2. delete your previous mappings (mappings panel, see screenshot)
  3. restart Bitwig (not just close the project but really close bitwig)
  4. get this midi passthru script and configure it for your controller in the Bitwig settings
    https://github.com/justlep/bitwig/blob/ ... control.js
  5. map your volumes or whatever to your CCs (again, it should look similar as in the screenshot)
The problem with most generic scripts is that they needlessly use the API's concept of UserControls, that is they define UserControls and then "translate" raw incoming MIDI messages into respective changes of those UserControls (which you can map to your Bitwig parameters, like Volume etc). Often the scripts simply ignore the channel information during that "midi -> usercontrol translation". Otherwise, for being generic and supporting all MIDI channels, they would have to define 16 * 128 UserControls, which is ugly as well.

However, if all you need is a 1:1 mapping of your controller's (absolute) CC values to some Bitwig parameters, you don't need the UserControl concept at all. All you need is a script that simply let's all MIDI pass through. You can then map the raw midi CCs (instead of usercontrols) to whatever inside Bitwig, and that mapping WILL BE channel-aware.

Hope this helps.
You do not have the required permissions to view the files attached to this post.

Post

Unfortunately I have been distracted from this project for the past couple of weeks because I needed to complete another project with a deadline. However, I do now have the time to try and resolve the problems I am having.

Being a total newbe I don't understand what you mean by "configure it for your controller in the Bitwig settings".

1. I created a file called MidiPassthruMulti.js with your code in it.
2. I put it in the PC/Documents/Bitwig Studio/Controller Scripts directory.

Here's my questions:
1.Was I suppose to modify the file somehow?
2. I don't understand how to make use of the file.

Post

The filename must be "MidiPassthruMulti.control.js" (the ".control"-part is important, otherwise Bitwig won't recognise it as controller script).

You don't need to modify the content.

With "configure" I just meant..
  • Go to your settings -> Controllers -> Add controller manually
    => choose Generic -> MidiPassthruMulti
  • the added script shows a single dropdown where you need to choose your MIDI device

Post

BufoBufo... thanks that works great for midi learn items.

However when I tried to record enable a track there is not midi learn option. So I went to the Shortcuts over in settings. What I found was you can "Toggle Arm" a track, which I assume that would mean you need to select the track first when using a midi controller.

Maybe if I step back a little and explain my controller it might help.

My controller is setup in groups of 8 channel strips. Each channel strip has two rotary encoders and three button that can be used to do things. There are another 4 buttons that I call bank buttons. Each of these buttons changes the midi channel that the CC for the above buttons and rotary encoders. In the end that gives me direct access to 32 channels.

So with midi learn I can setup of the volume and pan for each channel, but now I need to record arm various tracks, using a channel button, but don't see a way I can do that.

Post

@BufoBufo

Thank you for sharing this information. I wish I had found this post earlier....

Do you have any idea how I could adapt this script so that it is bi directional? The context is, I would like to use it with BCR2000, which is a bidirectional midi device and, which allows you to have multiple presets configured to different midi channels, potentially giving you access to 32 x 32 rotaries.

Thank you!

Adrienne

Post

I'm afraid bi-directionality is a completely different shoe than what the "stupid" PassThru script does. So no, that script can't be adapted for that purpose, sorry.

Also, if you plan on writing a script for your BCR, I'd advise you not to use the approach with different channel-presets on BCR-side. Imagine you have 2 presets on the device, preset A using channel 5, and B using channel 6. The first problem you have is that the BCR doesn't "report" to your controller script when you switch between A and B, so your script may try to update some LED rings by sending midi messages to channel 5 while all knobs are currently "listening" on channel 6. And problem #2 is that the BCR won't "remember-for-later" such messages when you select preset A again and all knobs then listen to channel 5. The previous messages to channel 5 are lost and your LED rings are out of sync.

Post

Dang...

This is exactly what I was hoping to be able to do. I have a controller that sends the same CC/note numbers on one of four different MIDI channels. There is a button that cycles through the MIDI channels. It has pads and rotary/endless encoders with LED rings (it's the CMD PL-1) and I was hoping to use it on four different tracks in the mixer view. Each track would listen to a different MIDI channel. The MIDI channel selected on the controller would control that track and that track's settings would display on the controller.

I hadn't really contemplated the updating of the LED feedback... but this does work with other software... so.....

Post

hmm.. I just did some more MIDIox testing and the rotary encoders are always on MIDI ch1, while the rest of the controller toggles through the MIDI channels.

Post

Thanks for this BufoBufo! It saved the setup I was working towards

Post

I've loaded this up, ignoring the LED ring feedback for now, and it doesn't work for me at all. :-(

The script loads, and I select my midi controller (CMD PL-1) and then in the track, I select "MIDIpassthroughMulti-Channel 1". nothing does anything. When I click the midi Map finger, I can map knobs on the controller to the virtual knobs in bitwig, but that's it. Turning the controller knob after that does nothing in bitwig.

I tried omni mode, different channels, etc... nothing works.

dang it!!!!!!

Post

chromatest wrote: Tue Feb 26, 2019 10:21 pm I've loaded this up, ignoring the LED ring feedback for now, and it doesn't work for me at all. :-(

The script loads, and I select my midi controller (CMD PL-1) and then in the track, I select "MIDIpassthroughMulti-Channel 1". nothing does anything. When I click the midi Map finger, I can map knobs on the controller to the virtual knobs in bitwig, but that's it. Turning the controller knob after that does nothing in bitwig.
If you're referring to endless encoders of the Behringer CMD series, the encoders do not send absolute but differential values (diff value = received data value *minus* 64 in that case). So when mapping encoders, you need to set them to "Relative (Bin offset)" instead of "Absolute" in Bitwig's mapping panel.
The LED rings are controlled by sending values between 1-15. That's at least what the LC1 was like, and it's not configurable at all. Values for button colors were very individual, too. But the MidiPassThru script doesn't send any MIDI feedback to the controller, anyway. IMO there's no way to get the CMD controllers well integrated to Bitwig without some dedicated scripting.
You do not have the required permissions to view the files attached to this post.

Post Reply

Return to “Controller Scripting”