Old 05-10-2019, 07:54 AM   #1
Ozman
Human being with feelings
 
Join Date: Feb 2015
Posts: 534
Default MIDI overlap to pitch bend (portamento)

Hey fam...

Is there currently a JSFX MIDI effect that can take overlapping MIDI notes and create a monophonic portamento glide (using pitch bend) from one note to the next?

If not, is that something that would be easy for someone to make?

This could be really useful for instruments which do not have portamento features (e.g. RS5K).
Ozman is offline   Reply With Quote
Old 05-12-2019, 04:47 PM   #2
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 863
Default

Just to clarify, if the notes are overlapping, portamento is on and if they are not overlapping, portamento is off?

I think this should be possible. You would need to input the pitch bend range for the target instrument as it can vary between instruments. I'm not sure how smooth it would be in practice.
__________________
ReaRack JSFX Modular Synth - Mostly harmless: https://stash.reaper.fm/v/28403/ReaR...dularSynth.zip
The Wasters of Time: https://soundcloud.com/thewastersoftime
Time Waster is offline   Reply With Quote
Old 05-13-2019, 03:46 AM   #3
todd_r
Human being with feelings
 
todd_r's Avatar
 
Join Date: Nov 2006
Posts: 549
Default

There is kawa_MIDI_PitchBendGlide.lua

http://kawa.works/reascript-midi-section
todd_r is offline   Reply With Quote
Old 05-21-2019, 06:47 AM   #4
Ozman
Human being with feelings
 
Join Date: Feb 2015
Posts: 534
Default

Quote:
Originally Posted by Time Waster View Post
Just to clarify, if the notes are overlapping, portamento is on and if they are not overlapping, portamento is off?

I think this should be possible. You would need to input the pitch bend range for the target instrument as it can vary between instruments. I'm not sure how smooth it would be in practice.
I was thinking that the pitch bend amount be a dynamic calculation of the pitch difference of the notes. And the speed be either a static value or a based on the time of overlap...

And ideally, the curve of the bend be specified:
1) Linear
2) Curve Preset
3) Dynamic Curve (bezier curve ends being directly or inversely proportional to velocity of notes).


Is that too much in regards to portamento?


Also, I've known about kawa's script, which generates curves.
I guess I was just hoping for a midi JSFX effect instead of a LUA script.
Something that can be inserted in the FX chain and simply enabled or disabled.
Ozman is offline   Reply With Quote
Old 05-21-2019, 04:50 PM   #5
woodslanding
Human being with feelings
 
woodslanding's Avatar
 
Join Date: Mar 2007
Location: Denver, CO
Posts: 391
Default

oooh,that would be cool!!!

and yes, JSFX, so it can be (crucially) used in real time

sounds mathy, though Not for me....
__________________
eric moon
Very Stable Genius
https://gogolab.com/
woodslanding is offline   Reply With Quote
Old 05-21-2019, 11:43 PM   #6
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 863
Default

Quote:
Originally Posted by Ozman View Post
I was thinking that the pitch bend amount be a dynamic calculation of the pitch difference of the notes. And the speed be either a static value or a based on the time of overlap...

And ideally, the curve of the bend be specified:
1) Linear
2) Curve Preset
3) Dynamic Curve (bezier curve ends being directly or inversely proportional to velocity of notes).


Is that too much in regards to portamento?
The portamento time would have to be a preset value. You can't use overlap because the note-off message will arrive in the future, so the overlap is indeterminate at the time you need to do the calculation.

Usually portamento is just linear AFAIK, but other curves could be interesting.
__________________
ReaRack JSFX Modular Synth - Mostly harmless: https://stash.reaper.fm/v/28403/ReaR...dularSynth.zip
The Wasters of Time: https://soundcloud.com/thewastersoftime
Time Waster is offline   Reply With Quote
Old 05-28-2019, 08:06 PM   #7
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 863
Default

I have added a portamento FX here: https://stash.reaper.fm/v/36457/MIDI-PB-Portamento.jsfx

Currently this is only a linear portamento, as a proof of concept. Portamento only occurs when notes are overlapping. Non overlapping notes will have a normal step change. You need to dial in the pitch bend range as set on your virtual instrument.

Note, the portamento note range will be limited by your instruments pitch bend range. If the note step change is greater than the pitch bend range, you will only get a partial portamento.

To do: Add an option to provide portamento for all notes including non overlapping notes. Add some other functions for the transition curve e.g. cosine; exponential; inverse exponential.
__________________
ReaRack JSFX Modular Synth - Mostly harmless: https://stash.reaper.fm/v/28403/ReaR...dularSynth.zip
The Wasters of Time: https://soundcloud.com/thewastersoftime
Time Waster is offline   Reply With Quote
Old 05-30-2019, 02:05 AM   #8
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 863
Default

I have now added the all notes option, and the transition curves. Updated in the stash.
__________________
ReaRack JSFX Modular Synth - Mostly harmless: https://stash.reaper.fm/v/28403/ReaR...dularSynth.zip
The Wasters of Time: https://soundcloud.com/thewastersoftime
Time Waster is offline   Reply With Quote
Old 06-04-2019, 07:15 AM   #9
Ozman
Human being with feelings
 
Join Date: Feb 2015
Posts: 534
Default

Time Waster, dude... you're the man.
This will be of use in sooo many cases!

Testing now.

Are you adding it to a ReaPack?
Ozman is offline   Reply With Quote
Old 06-05-2019, 04:29 AM   #10
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 863
Default

@Ozman, I'll add it to ReaPack eventually, along with a few others. Let me know how your testing goes.
__________________
ReaRack JSFX Modular Synth - Mostly harmless: https://stash.reaper.fm/v/28403/ReaR...dularSynth.zip
The Wasters of Time: https://soundcloud.com/thewastersoftime
Time Waster is offline   Reply With Quote
Old 07-15-2019, 12:05 PM   #11
msea
Human being with feelings
 
msea's Avatar
 
Join Date: Apr 2013
Location: Toronto ON
Posts: 951
Default

Quote:
Originally Posted by Time Waster View Post
I have added a portamento FX here: https://stash.reaper.fm/v/36457/MIDI-PB-Portamento.jsfx

Currently this is only a linear portamento, as a proof of concept. Portamento only occurs when notes are overlapping. Non overlapping notes will have a normal step change. You need to dial in the pitch bend range as set on your virtual instrument.

Note, the portamento note range will be limited by your instruments pitch bend range. If the note step change is greater than the pitch bend range, you will only get a partial portamento.

To do: Add an option to provide portamento for all notes including non overlapping notes. Add some other functions for the transition curve e.g. cosine; exponential; inverse exponential.
Very nice. Thanks!
msea is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 03:42 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.