Native FL Studio Porta/Legato Incorperation

Hello,
First, I would like to address that I am not entirely sure if FL Studio can use its built in Porta/Legato controls in the piano roll with 3rd party VSTs, but I was wondering if we could have an implement in vital for this that would not be as painful as having to make a MIDI route to an internal controls, such as a master pitch macro. This would make the EDM slide note integration so much easier, instead of having to incorporate a sound I made in Vital, and then trying to replicate the sound in, for instance, Harmor, with its very powerful but confusing interface.

The answer is yes and no.

I am not entirely sure if FL Studio can use its built in Porta/Legato controls in the piano roll with 3rd party VSTs

No, unfortunately. Only FL native generators can do that. The VST spec takes note control data as MIDI information and that’s what FL sends out; MIDI information does not support the bends. The reason is that an FL Piano Roll bend is nonrealtime; it reads the note duration to compute the bend duration. But true MIDI notes can be triggered in real-time so they can’t specify duration information at the outset.

Having said that, it IS possible to use an FL native generator to send MIDI information out to a VST, as long as it translates note slides into MIDI pitchbend CC data. And there is a generator that can do this (albeit a third party one): BENDY

BENDY reads piano roll slides and computes CC information changes based on note duration and sends that information to a VST of your choice on a MIDI port; it can do pitch bends of course, but it can also use note parameters (Mod X, Mod Y, and Pan) and send MIDI CCs for those as well. Of course, BENDY is using MIDI CC so it isn’t sending pitch-bend information per NOTE, but as a global message, which is not quite how FL slides work, but if all you want is an easier way of drawing in pitch bend automation data, there you go.

Beyond that, you CAN do more, but it requires a bit of setup.
See, the FL spec supports sending, in addition to velocity and release velocity, several other parameters per note, and bending them (along with pitch) via slides. It supports one slide per channel color, and there are 16 channel colors.
The MPE spec supports sending, in addition to velocity and release velocity, several other parameters per note, and bending them (along with pitch). It supports one slide per MIDI channel, and there are 16 MIDI channels.

Do you see where we’re going? Because Vital is MPE capable, you can configure FL to communicate its per-note piano roll information as MPE data. It’s a goddamn shame that IL doesn’t allow you to do this natively but with Bendy and Patcher, you can.

If you want to do this, start with this link:

https://onedrive.live.com/?authkey=!ADoVbOkWgo-bzIU&id=E18696FC9F0450DF!106&cid=E18696FC9F0450DF&parId=root&parQt=sharedby&o=OneUp

This is version 0.9.1 of Bendy; version 0.9.2 will not work in Patcher due to a fix for something related to global pitch messages (Patcher cannot see its MIDI outs), and the project is long-abandoned by its developer. So you need 0.9.1, but it works fine for this use case.

Once you have this installed, you can drag the following .fst into your project:

This is a patcher which uses a VFX color mapper to map the 16 Piano Roll colors to 16 separate instances of BENDY, each of which is calculating slide data on its own channel, and feeding them to a single instance of Vital (which should be in MPE mode, though I think that’s saved at the plugin level not the preset level, so double check)

You should now be able to send per-note bends on all 16 channels as simultaneous bends.

This will ALSO allow you to use Mod X and Mod Y in the piano roll, and bend them using slides. Mod Y can be linked in Vital using the “Slide” parameter in the bottom right. Mod X can be linked in Vital using the “ModWhl” parameter in the bottom left.

Note that technically, MPE does not use MIDI CC1 as a per-channel expression, it uses Poly Aftertouch, but BENDY cannot send Poly Aftertouch, it can only send CC messages, so I picked CC1 because Vital supports it as an MPE message. This patch will NOT accept realtime aftertouch (poly or channel) messages from your controller, and your controller’s Modwheel will be fighting the values sent by note Mod X.

It will send note Pan on the default channel (CC7 I believe) but Vital does not accept pan as an MPE message and by default it isn’t mapped to any parameter. This patch also does not support release velocity, even though the piano roll can technically send it, because BENDY doesn’t understand release velocity and so just ignores that message. I could fix this with something like MCC but I didn’t want to introduce yet another dependency to the patch.

Anyway, this is clunky as heck to set up the first time, and it’s a stupid shame that IL refuse to make the obvious connection between their own Piano Roll and the MPE spec and implement this behavior at a native level (here’s hoping they bother when MIDI 2.0 starts to see wider implementation), but once you have it running, it will work. And it’s really nice to have that piano roll functionality in Vital.

Final note: you will sometimes see those Flagrant Error messages from FL when running Vital inside Patcher, I believe this is a GUI thing, but I’ve never lost a project to them or had any issue getting Vital to open or run correctly, even after seeing the message and closing it. It seems like the errors are mostly meaningless.

Any chance you can post the bendy zip on dropbox ? there is no way I seem to get it from the onedrive or 1drve links. Thanks in advance.

NVRM found one :