MPE with Hardware Synths

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

Post

Thanks a lot for that explanation. That also explains, why Halion loaded as VST 3 does polyphonic pitch bends, as VST 3 supports it in their specs (and no dev except for Steinberg seems to implement it...)
To make the long explanation short, if the script tells Bitwig ”I send MPE”, Midi is transformed into a different format, and when delivered to the synth its transformed back... Clearly a strategy with two points of failure, but with a lot of potential...; - )

Still, except for the internal synths, at least all VST 2 synths cannot interpret that other format, they can be set automatically to use MPE and it would not create any problem with non MPE synths, they still get the Midi you sent them in the first place, I would not have to think about it if that would be the standard. (That was the confusing part, why change the information that Midi carries)
As I know only of the Steinberg vst3 implementations which could deal with per not expression, it would be safe to turn it around and have to check “force vst3 expression” if necessary...

Is there any other dev who only supports vst 3?

Post

ThomasHelzle wrote:
BobDog wrote:Hi Tom,
Was I explaining something wrong then?
It would be good to know as I must admit I find the whole thing a little confusing.

Cheers

Andy
Yes:

"Force/Use MPE" does not change what is stored! It is a "Post Effect" so to say. What it does is translating the internal note expressions back to normal Midi, not the other way around as you wrote above. This is also why our Midi Plugin trick works, since after that, it's just normal Midi again.

Bitwig records either MPE data or pure Midi based on what kind of script you use. If there is
noteInput.setUseExpressiveMidi(true, 0, 48);
in the script, the input will be interpreted as MPE and recorded accordingly as note expressions.
In that case, one should use the "Use/Force MPE" settings to translate things back, if the plugin does not announce it's capability itself.

Cheers,

Tom

Hi Tom,

Thanks for the info, I had indeed got it wrong :)

Cheers

Andy
Bitwig, against the constitution.

Post

Tj Shredder wrote:Still, except for the internal synths, at least all VST 2 synths cannot interpret that other format, they can be set automatically to use MPE and it would not create any problem with non MPE synths, they still get the Midi you sent them in the first place, I would not have to think about it if that would be the standard. (That was the confusing part, why change the information that Midi carries)
As I know only of the Steinberg vst3 implementations which could deal with per not expression, it would be safe to turn it around and have to check “force vst3 expression” if necessary...

Is there any other dev who only supports vst 3?
That is an interesting question. What happens if there is no per note expression data but BWS tries to convert it back to Midi? May not be as simply as you assume, but yeah, in the long run I also hope this can be simplified. But 99% of the users do not have a MPE controller and don't care anyway.
BTW I'm not sure the Steinberg Cubase/VST3 Note Exrpessions are the the same as the Bitwig Note Expressions... AFAIK it is their own implementation, although it may be compatible in the meantime (It wasn't in the beginning and I do not have any Steinberg plugins).

And no, I don't think any other dev has much incentive to go VST3 only (Ableton Live AFAIK doesn't even support VST3 yet at all). Steinberg tries to force devs into using VST3 because they simply botched it. Instead of making the API better, they use pressure now by deprecating VST2. For most people and plugins, VST3 has absolutely no benefit. ATM I don't even know why I'm installing both versions...
For instance Native Instruments do not have any VST3 yet at all...
VST3 plugins can't even output proper Midi :roll: :dog: :x
So all Audio to Midi plugins, Sequencers, Arpeggiators, Midi Manglers etc. are forced to stay VST2.

Cheers,

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

Post

BobDog wrote:For anyone on OSX I have knocked up a VST that supports MPE midi passthrough.

With the existing midi plugins I noticed that you had to force MPE and then you could not set the PB range, this VST tells BitWig it supports MPE so you will get the proper MPE settings allowing you to set the range of the target.

There is one gotcha, if the plugin is defined as a pure midi plugin Bitwig ignores the MPE setting. To get around this the plugin has to be defined as a synth plugin and even though it tells bitwig that it supports midi out bitwig will not let you add a HW Instrument device after it in the chain.

So you need to add the HW Instrument device first, then add this plugin before the HW Instrument and everything works fine.

You can find it here: https://github.com/AndrewCapon/CADMidiPassthroughVST
Now I realize that plug-in might solve a lot of these problems. With it I could make Halion sorrt of a bit MPE compatible. First I thought it should be enough to place a Channel Map in front of Halion to make it expressive again (it was in 2.3, but with channelizing the note infos it was broken). But just the Channel Map cut off my cc74, which was passed before. Placing the PassThrough in front of the Channel Map, made cc74 work, though it destroyed the PB which was passing fine before (suddenly the bend range dropped down to 2...).
I mailed to support as well, transforming MPE to VST3 note expression should work without workarounds, I am constantly trying to find...

Post

Beta 3 has a bug that changes the midi channels when using Force MPE. Any single note is converted to channel 2, additional notes are then using consecutive channels. The killing part of the bug is, that not everything is changed, but only the MPE things. So for instance CC1 stays on the original channel while CC74 is converted.
And of course that breaks a lot of things since notes and CCs then arrive on different channels...

Right now you may be better off using a generic script and ignore the whole MPE enchilada until it's fixed.

Cheers,

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

Post

I am in the trap, I can’t ignore the enchilada, it tastes too good...

Post

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

Post

Thanks very much for that lucid explanation Tom - really useful!

Post

Great it helps.
But be aware that I am not having inside information and it's totally possible that I got some details wrong.
I have my MPE capable Roli Seabord only for a couple of days now and am still experimenting and investigating, but what I wrote above is what I gathered so far.
Bitwig Support told me they plan to do a special MPE Tutorial/PDF with all the details, I hope this will be done as soon as 2.4 is more mature, ATM this part is still rather buggy/incomplete...

But even with all the irritations and problems, I am superhappy that this stuff is finally there. I remember having long email conversations with @technobear back when I did my little stint at Bitwig HQ including controller support (BWS v1.0x times that was) and I am still as convinced as back then that better modulation capabilities are the most important thing for electronic instruments to allow us to get out of that piano-key-on-off valley of despair that basically only makes sense for a very limited number of instruments (piano mostly). Even the most primitive sine wave can be played very very expressive with something like the Seaboard or LinnStrument etc. Just sliding one of two notes in and out of tune slightly on the Block is so much more interesting than a Mod- or Pitchwheel.

I also hope that these currently available controllers are not the end of the matter, there is so much more that could be done and that humans can control with their limbs.
Together with the Seaboard Block I also bought an Akai EWI USB, which even with all it's limitations (and brutally outdated software) is a thousand times better for wind instruments than any standard keyboard could ever be. If it had more modulation capabilities, it could be killer.

Well, let's see what the future holds for us :-)

Cheers,

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

Post

I would, love to get that tecontrol breath & bite controller. I want 7 dimensions of expression...
http://tecontrol.se/products/usb-midi-b ... ntroller-2
Its a bit pricey though...

Post

Yeah, I looked at it too but found it quite steep for what it does. The EWI USB at around 300.-€ of course can't be comfortably used as an additional "dimension" but otherwise allows for much more (and I used to play the recorder back in school for years so it feels instantly comfortable...).
Would be interesting if something like that breath controller can't be built from parts much cheaper.
Not a maker yet though... ;-)

Cheers,

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

Post

Tj Shredder wrote:I would, love to get that tecontrol breath & bite controller. I want 7 dimensions of expression...
http://tecontrol.se/products/usb-midi-b ... ntroller-2
Its a bit pricey though...
Do you have an expression pedal? cheap and useful...

You may want 7 dimensions of expressions... but I am really doubtful one can actually make use of them. We've barely made use of the 5 in the Rise or Linnstrument at this point.

It is a whole new level of building presets to take advantage of the 5... and of course to effectively play various techniques while using these different control vectors.

Post

Just get the Cypher 2 demo, wonderfully crafted ready to play 5D presets....
As you mention the footpedal, I want 9 dimensions and add 2 pedals...
I am suffering from CAS (controller aquisition syndrom) I have definitely more than fingers and toes...
If I look at my controller park, with another pedal and the Tecontrol I should approach more than 20 dimensions, including 3 Myos (at least 4 per Myo) and Leap Motion, though the latter is hard to play at the same time as the LinnStrument...

Post

Well, I have 3 Expression pedals + one Sustain, I built myself a two octave organ pedal from a Doepfer kit a while ago to play bass notes while playing guitar (those are totally non-dimensional though and don't even have velocity - although I wrote a Controller Script that uses one Expression pedal to set a velocity for them), I created a cool Processing script for my Leap Motion (still work in progress though, exploring the best ways to deal with it)...
I don't think it's so much about the sheer number of "dimensions" or that every preset needs a dozen different modulation parameters, but sometimes a certain motion/action feels just wrong for a specific sound change but right for another, so it's cool to have different options.
Breath is super intuitive for me for certain things and easily controlled on top of other stuff, while I personally find expression pedals not always as intuitive to use - probably a training issue.
Imitone can be amazing for certain things too, directly controlling pitch and volume with your voice...

In so called "reality", humans are able to control a lot of things at the same time if they are laid out well, so I hope we'll see things other than spiced up keyboards in the future. MPE so far is just the first glimpses IMO.

As for Cypher: Somehow I do not really gel with FXpansion GUIs...

Cheers,

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

Post

BobDog wrote:I have found possible bug that also makes testing this quite hard.

Record a clip with PB info in it, then delete the clip.

PB (And CC) automation data is left on the track.

The next time you record a new clip onto the track the existing automation is also played as well as the new automation being recorded, this leads to garbage being sent out.

Is this a bug or am I missing some setting somewhere?
I heard from BW about this, the playing back of the previously recording data while recording new data is a bug and will be fixed.
Bitwig, against the constitution.

Post Reply

Return to “Bitwig”