MPE with Hardware Synths

Official support for: bitwig.com
Post Reply New Topic
RELATED
PRODUCTS

Post

BobDog wrote:Hi Hez, thanks for that.

Are you on a PC, Mac or Linux?

Do you have Max/MSP by any chance, I have a patch I have been using for testing that you could try?

Cheers

Andy
PC and unfortunately no Max/MSP on this box : (. Does that patch definitely work with previous versions of Bitwig?

Post

I tested it in other DAWs (live and Logic) and it worked as expected.

I'm thinking this may be an OSX/PC difference. I will try in an older version of BW...
Bitwig, against the constitution.

Post

Just tried in 2.2.3 and 2.3.4 and it worked perfectly.

So its just a problem in the Beta, something must be broken. I will email them.
Bitwig, against the constitution.

Post

Heard back from BW, they can replicate the half range on recording and it will be fixed.

Concerning the old pitchbend being left behind after deleting the clip they say this is normal, I have emailed back about the issues with treating data like pitchbend as track automation data rather than data that is connected to the notes/clip.

Concerning the Linnstrument only working correct at 24 I have heard nothing back, on the linnstrument forum Roger Linn is dealing with this one.
Bitwig, against the constitution.

Post

BobDog wrote:Heard back from BW, they can replicate the half range on recording and it will be fixed.

Concerning the old pitchbend being left behind after deleting the clip they say this is normal, I have emailed back about the issues with treating data like pitchbend as track automation data rather than data that is connected to the notes/clip.

Concerning the Linnstrument only working correct at 24 I have heard nothing back, on the linnstrument forum Roger Linn is dealing with this one.
cool... thanks for keeping after it!

the Linnstrument only working correctly at 24 may be a script issue?

Post

I tried with the Roli scripts as well, same issue. So I think it might be something general in their MPE stuff.

I also heard back about this issue from BW again saying that I was doing it all wrong and it works perfectly!

So I think I will let Mr Linn deal with it, they may listen to him more than me!
Bitwig, against the constitution.

Post

Thanks for the words of encouragement and all the testing that others have been doing whilst I have been too ill to complete the next set of tests and attempts at workarounds that I had planned.

I'm not exactly sure what there is left for me to do now, because the following parts of Hez's message which I am quoting is pretty much in alignment with what I was suggesting the situation probably is with 2.4 beta at the moment.
Hez wrote: At the moment it appears there's no conversion between MPE recorded data (recorded into Bitwig as pitch expression) & "standard multichannel" MIDI with a single channel per note with pitch bend. I swear in the past that Bitwig had an option to convert its proprietary pitch expression messages to standard pitch bend, but I can't find that option anymore - only the opposite way round, i.e. convert pitch bend to pitch expression.
Hez wrote:Given that we already have the PB -> Expression toggle and the interface element below (once the toggle is clicked), all we'd really need is to convert that toggle to a drop down which gives another option, Expression -> PB, and use the same interface element below to set our expected pitch expression limit. Bitwig should then handle the pitch expression/pitch bend conversion stuff behind the scenes and allow us to output whatever we need.
Hez wrote:At the moment, I believe the pitch expression -> multichannel pitch bend conversion happens when you tick the "Use MPE" option which appears when you select a VST container. Actually perhaps that "Use MPE" just needs to be added to the HW Instrument device?

EDIT: All of the above is assuming we record MPE as Bitwig intends, i.e. to their pitch expression messages. I think this is the method that should be pursued, as it keeps it clean with the interface and you can simply map to/from 'regular MIDI' whenever you need to at an output. We shouldn't need to do what BobDog is valiantly attempting above (i.e. skip the proper controller script and try to force MIDI input to 8+ channels of ugly pitch bend messages) to be able to use MPE both with internal and external synths.
Hez wrote:- I think all we need is for this "Use MPE" option to be enabled on the Hardware Instrument device. This solution is probably cleaner than my suggested track level solution above, as it means you could have a hardware instrument layered with e.g. a Bitwig internal instrument and send the appropriate data to each one.
Final thoughts and questions based on the above quotes and some of the other recent posts in this thread:

Has anyone asked them about adding "Use MPE' to Hardware Instrument yet?

If they dont get round to adding "Use MPE' for the Hardware Instrument in 2.4, then I will want to try the method of bypassing the bitwig expression stuff. I've not got much experience of using generic scripts in bitwig (been using Roli and Linnstrument hardware and the proper scripts for those with it so far) - any pointers for how I can try the generic stuff myself? I am happy to figure most of the technical aspects of this out myself, just need a pointer in the right direction to get me started, eg which script to use instead of the Roli/Linnstrument ones?

Anything else I need to test, ie any obvious gaps left after the recent flurry of testing and posts? I have both mac and windows so if anything is still left to check on that front, let me know. I am still a bit unwell so I probably wont do anything for one more day, but maybe I will have the brain energy later today to begin.

Cheers!

Post

SteveElbows wrote: Has anyone asked them about adding "Use MPE' to Hardware Instrument yet?
You should ask them... regardless of whether someone else has. The more people that ask the more likely it gets done.

And when you are feeling better, make a test and send them your results.

Post

BobDog wrote:I also heard back about this issue from BW again saying that I was doing it all wrong and it works perfectly!
Did they elaborate on how you should do it instead?
I really hate it that there is no beta forum this time around. That usually was the place to learn about such things and discuss them with the devs for everybody else to read.

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
ScreenDream Instagram Mastodon

Post

They basically said leave everything at the default 48 and it will all work.

It doesn't though :)

To me it looks like the conversion from Midi PB to their internal format is stuck at 24 semitones whatever your MPE PB range.
Bitwig, against the constitution.

Post

I just had a quick look at the Roli Rise and the LinnStrument controller scripts.

The Roli has the option to set the PB range in the script preferences:
There are two things that get set - one is the BWS note input:

Code: Select all

noteInput.setUseExpressiveMidi(true, 0, 48);
Where the last number is the PB-range.
and the other thing is the data sent to the controller:

Code: Select all

sendChannelController(channel, 100, 0); // Registered Parameter Number (RPN) - LSB*
sendChannelController(channel, 101, 0); // Registered Parameter Number (RPN) - MSB*
sendChannelController(channel, 38, 0);
sendChannelController(channel, 6, range);
Where the "range" in the last line is the same range as for the noteInput above which is taken from the preference setting.

Now in the LinnStrument script, you can't set the PB range in prefs (although it would be trivial to transplant that part from the Roli), it is hardcoded to 24 semitones in the script.

Now I wonder: has anybody experimented with that setting?
Could that be the thing that leads to the values being wrong?
If 48 semitones is the "norm", it's not clear to me why the Linn script has it set to 24?

May be worth checking out.

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
ScreenDream Instagram Mastodon

Post

Probably because in terms of the 'norm', ie the defaults for the roli and linnstrument hardware/what most users of those devices may expect from software that is fully & easily compatible with them without fiddling with settings, 48 is the default for roli and 24 is the default for linnstrument.

Personally since Linnstrument issues with 2.4 have been acknowledged/have been worked on during 2.4 beta/Roger is aware, I am less worried about those being fixed. The MPE hardware out is more of a concern, but since I do intend to poke around at those scripts to improve my understanding of Bitwigs handing of expression parameters and these controllers in general, maybe I will still have something to add to the pitch part of the discussion in future.

Post

I today bought a Roli Seaboard Block so I may finally be able to add more useful information from now on from my own experience.
But first I have to set it all up... :-)

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
ScreenDream Instagram Mastodon

Post

Okay, my first findings:

If I use the Roli Rise script with my Roli Block and the midi input is therefore set to MPE in the script, I also need to enable "Use MPE" for the instrument (or the Midi Monitor) on the track.
If I instead use my own generic script which doesn't set the input to MPE but simply is sending everything that comes in to BWS 2.4, I do not need to set the instrument in the track to "Use MPE", nor convert Pitchbend to expression and it works as expected (minus the convenient WYSIWYG Pitch editing).
That is actually what I thought should be the case now with 2.4, since MPE in it's basic form is just standard Midi with channels.

Now more related to this thread:
If I use above generic script and put a Hardware Instrument device on a track, send the Midi to a virtual "Loop Midi" port, set it to "Preserve" the Midi channel and then on another track receive that Midi through Loop Midi with another generic script set to the same Loop Midi port (used as a virtual Midi cable), I can play polyphonic MPE through that chain as expected. This would be exactly the same with an external MPE-enabled synth which I do not have.
This again is what I would have expected and the Hardware Instrument works correctly in that scenario.

What doesn't work is, if I use the Roli Rise script with the Block and send it's input to a track with the HW Instrument device on it. In that case, the MPE data isn't translated back to Midi for the output.
BUT.
By accident I found a funny workaround/solution:
As I wrote above, I needed to set my Midi Monitor (I use http://www.rs-met.com/freebies.html and scroll to the bottom) to "Use MPE". Doing that, it sees all the Midi data normally. And since a Midi Monitor is sending out what it gets, it sends out the converted Midi to it's output!
So with the Midi Monitor in front of the HW Instrument device and set to "Use MPE" the whole thing works and we can use the Bitwig pitch editing like expected, since the track records the Midi before it goes through the devices (and instead of the monitor, any Midi plugin should work that does not change the data received).

So, what's needed to make even this workaround unnecessary is a "Use MPE" setting for the HW Instrument device and all other such devices that send out Midi, like somebody already said above.

Recording the data also seemed to work correctly.

This is after texting the Block for about an hour, more thorough testing will come, but for now, I seem to be able to use everything as I expected to. :party: :love:

I hope this helps,

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
ScreenDream Instagram Mastodon

Post

Excellent work Thomas! I will be sure to test that workaround tomorrow but of course I expect to get the same results you did, well done.

Now enjoy your seaboard block :)

Post Reply

Return to “Bitwig”