Sliding notes - a pitch-bend odyssey

194 views
Skip to first unread message

Nick Kent

unread,
Jul 1, 2020, 6:16:45 AM7/1/20
to Midi Shape Shifter
Don't know if you are still here Rob.

I've been scouring the interwebs looking for something that does what I need (for several years now!). I think MSS comes the closest but I am seriously thinking of coding it myself (been watching a lot of C++, juice, wdl-ol vids recently).

FL Studio has, what I think is golden, slide notes in the midi piano roll.... ...but that are internal and can only effect native FL instruments. For quite some time, I and many have been doing tedious automation envelopes of the pitch-bend wheel to get the same effect in other VSTs and I have been thinking:-

I want to do my pitch bending in the piano roll where it makes sense.

OK, so I need something that will take midi data of one sort, do a bit of math and apply pitch bend. For instance, unless you are using a rompler or library that can have multiple instruments in one instance, you've got a whole other 15 midi channels that could be used to send data, have it converted and applied to midi 1.

I'm assuming here that both host and vst have been set to a PB range of 12 semitones and I'm pretty sure that PB is a -8000 to +8000 range IIRC

Play a C3 on midi channel 1, halfway through play a D3 on midi channel 2.

Hopefully the outcome would be that 

A) the plugin knows the length of the original C note and the length of the D note
B) Understand that notes on midi channel 2 are messages and not sounds.
C) can calculate a pitch-bend range for that and a timescale based on the length of the D note
D) send this PB envelope to the VST.

I can't see why it wouldn't work, the only dark side is, I've got no knowledge so far of what size blocks of midi data you get inside the coding environment from the host, so being able to see the 1st note and the 2nd note and deciding how to interpret the info.. I have my doubts.

Even so a 2nd simpler idea is to waive the note info, just have midi channel 2 notes cause PB to the VST based on note (C3 = nothing, C3# = up one semitone, B2 = down one semitone, D3 = up 2 semitones etc) with velocity being slide speed.

Any help before I begin the arduous task of coding this myself?

Cheers!

P.S. the same would be useful for the modulation wheel!

P.P.S. Yes, I've fiddled around a fair bit with MSS to see if it could do the above, but I couldn't make it so.

Rob

unread,
Jul 1, 2020, 12:19:55 PM7/1/20
to Midi Shape Shifter
Hmm interesting. I think it should be possible with MSS. So in your first scenario would it wait until you stop pressing D to start applying the pitch bend? Or if it starts applying pitch bend when you first press D how would it know how long the pitch bend should take?

Nick Kent

unread,
Jul 2, 2020, 7:21:19 AM7/2/20
to Midi Shape Shifter
Hi Rob, thanks for getting back to me. Indeed, in the first example I am somehow imagining that a vst can pre grab midi data from a piano roll so it knows how to process it before it's played. I don't know to what extent this is or is not possible, but obviously FL Studio can do it because of the presence of it's own slide notes for native plugins. I was looking at the FL SDK to see if I could glean some knowledge, but it's a little beyond my pay grade. here

So no, in the first example, just like the FL native slide notes, its already worked out it needs to slide from C to D over a time specified by the length of the D note. This would be the rolls royce solution but it all depends on what midi data a vst can get it's hands on and whether it can get it in advance.

This is why I posted a scenario B, which I believe is entirely doable.

BTW, either of these solutions would be a game changer IMHO. Lots of plugins these days use articulation key switches in the lower unused octaves - a plugin that let you map anything to anything could let a composer decide how to use modulation, pitchbend and other midi effects as they see fit in the piano roll. I can just imagine:  C4 on midi channel 16 = tremolo fade in, C#4 on midi channel 16 = tremolo main, D4 = tremolo fade to normal. As a composer, I'm always on the hunt for the easiest ways to add expression to my mouse created melodies. Having to do it all as automation envelopes in FL feels a bit.. medieval. 

If I end up having to learn enough to do this myself I shall call the resulting plugin "The Great Articulator";-)

As I said, I have tried in MSS to do this (scenario B) but it comes down to (and assuming host and vst both set to +/- 12 semitones and midi PB range is -8191 to +8191 :: 682 PB per semitone) capturing a midi note on channel 2 (easy enough to do in MSS) lets say C# which indicates we want to bend up a semitone (682) , capture note velocity and turn it into time (Im going to go arbitrary here and say 0= instant, 127= some seconds. Thinking about it, time based on host tempo sync might be better) and then send that PB over time T to the VST. Could MSS do this?

Rob

unread,
Jul 3, 2020, 10:27:22 PM7/3/20
to Midi Shape Shifter
Gotcha. Yeah so a VST only sees the midi as it plays in real-time. But it should be possible to use the velocity or sequencer tempo to control the length it f the pitch bend. I've been super busy the last couple days but I'll look into setting up a prototype for this in MSS tomorrow.

Rob

unread,
Jul 4, 2020, 9:54:03 PM7/4/20
to Midi Shape Shifter
Try out the attached program. Probably needs some tweaking. The slide speed is just hard coded it 1 quarter note right now. Would you want the pitch bend to reset back to neutral when the note on channel 2 ends?
dynamicBend.mssp
Message has been deleted

Nick Kent

unread,
Jul 5, 2020, 6:45:44 AM7/5/20
to Midi Shape Shifter
Rob,

I did write a long reply to this, but it seems it was deleted, can you see deleted messages in grp?

Rob

unread,
Jul 5, 2020, 11:00:10 AM7/5/20
to Midi Shape Shifter
Hey Nick,

For some reason google groups marked your message as spam but I can see it. I tried to mark it as not spam but it just e-mailed it to me and didn't repost it.

Anyway I'm not totally sure why the pitch bend is off by a few cents. Seems like a bug in MSS but I don't have the dev environment setup anymore and I'm not sure how to fix it. I put in a hacky fix in the attached program that seems to be working for me.

Do you want the pitch bend to reset when the note ends on channel 2? I put that into the attached program.

Ah interesting, I didn't know about the named note thing. Those other two plugins look promising. But yeah I agree that there's nothing out there that quite does everything. Definitely some things about MSS I would change if I did it over again
dynamicBend v2.mssp

Nick Kent

unread,
Jul 5, 2020, 2:12:16 PM7/5/20
to Midi Shape Shifter
Greets Rob,

Top notch! Everything working as expected. - I think you may not realise how revolutionary your "hack" is. I know FL users that wish they could use FL slide notes for 3rd party VST's. And no one has up until now apart from me (sort of) . The first person in the world to be able to slide notes in the piano roll using midi notes on channel 2.

And whats brill is.. ..all the underlying mechanics are there - I can set up channel 3 to do the same thing, but with 1/8 notes, channel 4 to do 1/2 notes etc.

Cheers Rob. You ever had that feeling when someone did something, mundane for them but magical for you. I have that feeling. Knowing that something can be done is 80% of the battle and you just won 80% of the battle.

Nick Kent

unread,
Jul 5, 2020, 2:27:18 PM7/5/20
to Midi Shape Shifter
..and yes.. I did reply in the deleted post that the PB needed to be set to neutral when the note ends, but you've done it anyways, so all good!


On Sunday, 5 July 2020 17:00:10 UTC+2, Rob wrote:

Rob

unread,
Jul 5, 2020, 6:21:03 PM7/5/20
to Midi Shape Shifter
Hey Nick,

That's great to hear it's working. And great to hear it's something others might find useful. I'm glad people are still using MSS and glad I could help.

All the best

YoZIPP

unread,
Feb 5, 2025, 4:26:30 AMFeb 5
to Midi Shape Shifter
hi , i was just curious . Ive seen a tutorial about this (specifically  : https://www.youtube.com/watch?v=WLumfB7GURs&t=228s) and i was wondering , i got the BRSO to work on my articulations as desired but i was also trying to understand how to make more timings for pitch shifting inside MSS , and how to use BRSO to implement it in the piano roll colour code midi thing so i can have different sliding timings. The preset link from tutorial is dead so i was curious if anyone can explain it to me how to make those multiple sliding timings , maybe give me a preset for it and explain to me how to use BRSO to implement it inside the piano roll so i can colour code the specific timings so i can choose which one i want to use just by changing the note colour.( i know i repeated myself but i was trying to make everything clear)

YoZIPP

unread,
Feb 5, 2025, 4:59:07 AMFeb 5
to Midi Shape Shifter
and follow up question, if i have a slide note,  can i slide 2 notes with different articulations somehow? i mean i suppose that would imply having the articulation and the 1/4 slide for example on the same midi channel . But then if i want the same articulation with a 1/8 i cant since its the same midi channel as the 1/4 . Or can i just make another colour code link inside BRSO with the note trigger for articulation but now since its a new midi channel  i can have the same articulation with a different slide time ? .
i suppose that  i can tehnically have 2 colour codes for the same keyswitch but one be mapped inside MSS with 1/4 slide and the other 1/8 for example

Rob

unread,
Mar 16, 2025, 11:42:39 AMMar 16
to Midi Shape Shifter
Hey, sorry I lost track of this. Let me know if you're still trying to figure it out and I can take a look.
Reply all
Reply to author
Forward
0 new messages