Go Back   Cockos Incorporated Forums > REAPER Forums > ReaScript, JSFX, REAPER Plug-in Extensions, Developer Forum

Reply
 
Thread Tools Display Modes
Old 07-08-2019, 01:40 PM   #1
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default MPL PitchEditor: melodyne-like editing take pitch envelope

Update: 24.05.2020 it is just a concept, there could be some limitations for detection source. And in global view - it is useless script at current stage comparing with melodyne.

-------
Since there is no ReaTune alternative for offline pitch tuning in REAPER, I`ve built something with ReaScript. Not sure I take into account everything correctly so for now use and try it on your own risk.



How to use:
1) select audio take (loops not supported, item length required to be up to 40 seconds)
2) click "Analyze take", it will trigger EEL script, depending on take length can freeze REAPER for couple of seconds. Thats normal. Once take is analyzed, it will load data immediately later (so data is cached inside RPP).
3) drag blocks, it will edit take pitch envelope.

I used https://stash.reaper.fm/v/30507/pitch-follower for pitch detection references with some modifications and adaptation.

Not really usable for now, but what do you think?


Todo:
blocks amp
blocks formant (Reapitch formant envelope)
display play cursor
convert to MIDI + pitchwheel
ghost selected MIDI item data

Requirements:
REAPER 5.97+
SWS Extension 2.9.7+
ReaPack 1.2+
Download: ReaPack.com (MPL`s repository is embedded into default ReaPack configuration)

Install:
  • run ActionList > ReaPack: Browse packages...
  • navigate and install PitchEditor and Various_functions packages

Last edited by mpl; 05-23-2020 at 11:07 PM.
mpl is offline   Reply With Quote
Old 07-08-2019, 02:22 PM   #2
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,875
Default

Really advanced script, well done ! Thanks for sharing
X-Raym is offline   Reply With Quote
Old 07-08-2019, 03:23 PM   #3
reapero
Human being with feelings
 
Join Date: Aug 2011
Posts: 517
Default

Wow! This los great!
reapero is offline   Reply With Quote
Old 07-08-2019, 04:48 PM   #4
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: Southern Vermont
Posts: 864
Default

Absolutely love the idea of having melodyne-like capabilities that could be micro-editing via envelopes.

Really hope this blossoms!
__________________

Support my feature request!
Dafarkias is offline   Reply With Quote
Old 07-09-2019, 04:09 AM   #5
hopi
Human being with feelings
 
hopi's Avatar
 
Join Date: Oct 2008
Location: Right Hear
Posts: 15,618
Default

interesting idea... still a long way from melodyne of course
__________________
...should be fixed for the next build... http://tinyurl.com/cr7o7yl
https://soundcloud.com/hopikiva
hopi is offline   Reply With Quote
Old 07-09-2019, 05:17 AM   #6
todd_r
Human being with feelings
 
todd_r's Avatar
 
Join Date: Nov 2006
Posts: 855
Default

WOW! Amazing!
todd_r is online now   Reply With Quote
Old 07-09-2019, 05:31 AM   #7
todd_r
Human being with feelings
 
todd_r's Avatar
 
Join Date: Nov 2006
Posts: 855
Default

I got the following error when first trying to move blocks...

...rious\mpl_PitchEditor_functions/mpl_PitchEditor_data.lua:241: bad argument #1 to 'DeleteEnvelopePointRange' (TrackEnvelope expected)

worked after re-launching
todd_r is online now   Reply With Quote
Old 07-09-2019, 06:58 AM   #8
cool
Human being with feelings
 
Join Date: Dec 2017
Location: Sunny Siberian Islands
Posts: 957
Default

Amazing!
cool is online now   Reply With Quote
Old 07-09-2019, 09:37 PM   #9
_TIP_
Human being with feelings
 
_TIP_'s Avatar
 
Join Date: Apr 2014
Location: NY
Posts: 175
Default

This is brilliant MPL, thank you so much for your hard work, i can't wait to start using it!!!
_TIP_ is offline   Reply With Quote
Old 07-09-2019, 10:00 PM   #10
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Amazing !!!!

As you are at such a level of expertise with scripting, you might consider something with a different functionality of melodyne's: generating a tempo map from an audio (say drum) track.

Recently there was a thread in the forum providing a script that allows for using one of two free tools for this. I did not have the time to check it out, but I definitively will ASAP.

But having this ability at your fingertips right within Reaper by a script of yours would be awesome !

-Michael (if it works I will write a Reascript "about" for it )
mschnell is offline   Reply With Quote
Old 07-10-2019, 07:19 AM   #11
MEMFIS_AKA
Banned
 
Join Date: Jul 2017
Posts: 192
Default

radical
MEMFIS_AKA is offline   Reply With Quote
Old 07-10-2019, 07:55 AM   #12
Jae.Thomas
Human being with feelings
 
Join Date: Jun 2006
Posts: 22,567
Default

are you fucking kidding me? this is amazing
Jae.Thomas is offline   Reply With Quote
Old 07-10-2019, 08:06 AM   #13
MEMFIS_AKA
Banned
 
Join Date: Jul 2017
Posts: 192
Default

Quote:
Originally Posted by mpl View Post
Can you share example?
Михаил, я добавил сэмпл в "проект"..почему-то изменился плейрейт. Я не понимаю почему.
Как только я его сбросил, скрипт заработал.
С изменённым плейрейтом короче не работает. Может это поможет как то доработать скрипт.
MEMFIS_AKA is offline   Reply With Quote
Old 07-10-2019, 01:00 PM   #14
Stevie
Human being with feelings
 
Stevie's Avatar
 
Join Date: Feb 2015
Location: Ukraine, Russia
Posts: 255
Default

awesome, totlly shoked

can i not request but offer maybe?

1. Playback cursore
2. Simple way to RESET note position (double click or so)
3. Key tonality snaping / or just highlight the note in current key
4. The way to glide notes

and again, im not asking for it, just saying,
i understand that u are working for free.
i'm so happy to see your scripts, it is amazing
and thanks for sharing, god bless you.
Stevie is offline   Reply With Quote
Old 07-10-2019, 01:01 PM   #15
Stevie
Human being with feelings
 
Stevie's Avatar
 
Join Date: Feb 2015
Location: Ukraine, Russia
Posts: 255
Default

ps. one of that things that should be in R. by default
Stevie is offline   Reply With Quote
Old 07-10-2019, 01:26 PM   #16
bwsd
Human being with feelings
 
Join Date: May 2011
Location: KZ ALA
Posts: 110
Default

Миша, ну супер. Дождались. Я был уверен что это будешь ты.
Замечание: на малых регионах не срабатывает детект.
Как поделить один длинный "кирпич" на два?

MPL, well, super. I was sure it would be you.
Note: in small regions the detector does not work.
How to divide one long "brick" into two small ones?
bwsd is offline   Reply With Quote
Old 07-10-2019, 08:03 PM   #17
lachinhan
Human being with feelings
 
lachinhan's Avatar
 
Join Date: Nov 2014
Location: Can Tho - Viet Nam
Posts: 305
Default

Quote:
Originally Posted by mpl View Post
Note separation: coming soon.
Awesome! I can't wait any longer

Thank you! Thank you so much!
__________________
NK Recording Studio
Email: lachinhan@gmail.com or admin@thuamninhkieu.com
Website:nkpro.top and ntmusicpro.com
lachinhan is offline   Reply With Quote
Old 07-15-2019, 04:22 AM   #18
Indiscipline
Human being with feelings
 
Indiscipline's Avatar
 
Join Date: Apr 2016
Posts: 143
Default

Getting lots of this on analyzing:
Code:
str_insert: will not grow string since it is already 65540 bytes
Indiscipline is offline   Reply With Quote
Old 07-21-2019, 02:03 AM   #19
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

Quote:
Originally Posted by Indiscipline View Post
Getting lots of this on analyzing:
Code:
str_insert: will not grow string since it is already 65540 bytes
Seems like a EEL limitation, for now I added 64000 string length limit.
mpl is offline   Reply With Quote
Old 07-30-2019, 03:34 PM   #20
xinky
Human being with feelings
 
Join Date: Apr 2016
Posts: 68
Default

wooow
please continue developing that shit, it's awesome
really heavy coding behind it :O
xinky is offline   Reply With Quote
Old 07-30-2019, 09:02 PM   #21
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

Quote:
Originally Posted by xinky View Post
wooow
please continue developing that shit, it's awesome
really heavy coding behind it :O
This was requested by friend of mine, but for now it is useless for him, too many bad working things, it is easier for him to just use Melodyne. Not sure I can make it better than it is.

Last edited by mpl; 07-30-2019 at 10:26 PM.
mpl is offline   Reply With Quote
Old 07-31-2019, 12:27 AM   #22
Phazma
Human being with feelings
 
Join Date: Jun 2019
Posts: 2,872
Default

Wow if this gets developed a little further I might not even need to buy Melodyne for my uses.

How can I make the keyboard and the line going through the blocks (showing the tracked pitch) appear? I guess there is a way to also have the notes snap to semitones?

I have never actually used Melodyne but here just a few ideas for handles inspired by Logic's Flex Pitch.. you might or might not consider some of these, probably depending also on what is possible through scripting in Reaper and the preferences of other users used to industry-standard Melodyne:
- handle for modifying fine pitch (in case dragging blocks snaps to semitones, otherwise the other way around obviously)
- handle to boost or attenuate vibrato
- handle for shifting formants
- handle for controlling pitch drift at the start of the note-block
- handle for controlling pitch drift at the end of the note-block
- handle for setting the gain of the individual blocks (perhaps via creating a take volume envelope)
Phazma is online now   Reply With Quote
Old 07-31-2019, 02:49 AM   #23
todd_r
Human being with feelings
 
todd_r's Avatar
 
Join Date: Nov 2006
Posts: 855
Default

Quote:
Originally Posted by mpl View Post
This was requested by friend of mine, but for now it is useless for him, too many bad working things, it is easier for him to just use Melodyne. Not sure I can make it better than it is.
Please keep developing, this is one of the most amazing scripts I've seen!

Plus not everyone has Melodyne and I like the extra options of the different pitch shifters to make more unusual effects that you couldn't do in Melodyne.
todd_r is online now   Reply With Quote
Old 07-31-2019, 09:33 AM   #24
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

Quote:
Originally Posted by Phazma View Post
- handle for modifying fine pitch (in case dragging blocks snaps to semitones, otherwise the other way around obviously)
- handle to boost or attenuate vibrato
- handle for shifting formants
- handle for controlling pitch drift at the start of the note-block
- handle for controlling pitch drift at the end of the note-block
- handle for setting the gain of the individual blocks (perhaps via creating a take volume envelope)
Everything is possible, I just have near zero time to do this.

Snap and fine: try mouse modifiers
mpl is offline   Reply With Quote
Old 07-31-2019, 11:47 AM   #25
Phazma
Human being with feelings
 
Join Date: Jun 2019
Posts: 2,872
Default

Quote:
Originally Posted by mpl View Post
Everything is possible, I just have near zero time to do this.

Snap and fine: try mouse modifiers

Oh ok, no Problem! Was just some ideas, maybe some day in future if you have time
Phazma is online now   Reply With Quote
Old 08-01-2019, 08:20 AM   #26
Ozman
Human being with feelings
 
Join Date: Feb 2015
Posts: 753
Default

Actually, this can be used in the background of a bigger workflow, maybe...
forcing audio items to conform to the notes of chord track.
----
Also, possibly, use the information inside to create ghost (2-way) midi items to enable working with audio items as midi.
----
Continued development of these tools can assist multiple workflows.
Ozman is offline   Reply With Quote
Old 08-01-2019, 03:53 PM   #27
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

wow! this is impressive! will try when time and donate if it's right for me!


convert to MIDI + pitchwheel
I really can't wait for you to get that in at some point as I've not found a decent replacement for an old 32bit plugin that did this and would love to have a fast method of extracting not just notes but vibrato (something melodyne midi export doesn't do yet)
__________________
subproject FRs click here
note: don't search for my pseudonym on the web. The "musicbynumbers" you find is not me or the name I use for my own music.
musicbynumbers is offline   Reply With Quote
Old 10-05-2019, 06:58 AM   #28
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: Southern Vermont
Posts: 864
Default ?

For some reason this script has never worked for me. I felt the itch to try it today, so I went into ReaPack and updated/reinstalled the script and your variousFunctions script, but it's still not loading any block-data after clicking the Analyze take button. The script does a little pause after pressing the Analyze take button, but after it's done, no block data is loaded into the GUI.

No error messages are shown during any point.

I'm using Windows 10, REAPER 5.983, SWS 2.10.0, MPL Pitch Editor 1.11, and Various_functions 1.26.
__________________

Support my feature request!
Dafarkias is offline   Reply With Quote
Old 05-23-2020, 06:46 PM   #29
Delucci
Human being with feelings
 
Join Date: May 2017
Posts: 325
Default

Quote:
Originally Posted by Dafarkias View Post
For some reason this script has never worked for me. I felt the itch to try it today, so I went into ReaPack and updated/reinstalled the script and your variousFunctions script, but it's still not loading any block-data after clicking the Analyze take button. The script does a little pause after pressing the Analyze take button, but after it's done, no block data is loaded into the GUI.

No error messages are shown during any point.

I'm using Windows 10, REAPER 5.983, SWS 2.10.0, MPL Pitch Editor 1.11, and Various_functions 1.26.
Same.
Delucci is offline   Reply With Quote
Old 05-23-2020, 09:43 PM   #30
lachinhan
Human being with feelings
 
lachinhan's Avatar
 
Join Date: Nov 2014
Location: Can Tho - Viet Nam
Posts: 305
Default

Quote:
Originally Posted by Dafarkias View Post
For some reason this script has never worked for me. I felt the itch to try it today, so I went into ReaPack and updated/reinstalled the script and your variousFunctions script, but it's still not loading any block-data after clicking the Analyze take button. The script does a little pause after pressing the Analyze take button, but after it's done, no block data is loaded into the GUI.

No error messages are shown during any point.

I'm using Windows 10, REAPER 5.983, SWS 2.10.0, MPL Pitch Editor 1.11, and Various_functions 1.26.
Long time no see you update Custom Toolbar ?? I Like it.
__________________
NK Recording Studio
Email: lachinhan@gmail.com or admin@thuamninhkieu.com
Website:nkpro.top and ntmusicpro.com
lachinhan is offline   Reply With Quote
Old 05-23-2020, 11:03 PM   #31
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

There could be some limitations like item length up to 40 seconds and I remember it doesn't work well for takes with any touches like start offset, stretch markers, non1-x playrate.
mpl is offline   Reply With Quote
Old 03-27-2021, 04:43 PM   #32
gapalil001
Human being with feelings
 
gapalil001's Avatar
 
Join Date: May 2016
Location: Kyiv, Ukraine
Posts: 544
Default Thank You!

Thank you for the great job! your script very useful advanced and works really fast! also i will say that design part was created with awesome and modern taste. looks like honey for my eyes.

but one critical thing is totally disappoint me. without cursor (like in MK Slicer) i can't identify the point i'm works in, and again, without cursor i can't change cursor position in the script interface. i know that's it's possible because MK Slicer does it exactly good. i will grope at random pieces i need to change

second moment not critical but may be helpful - show grid. i know that it's may can destruct your design

third moment and its last. is it possible to make shortcut to align mouse-clicked item to chromatic grid? please tell me if exist

прошу прощения за кривой английский, если в кратце - вещь потрясающая, выглядит и работает удивительно хорошо (по крайней мере у меня) но без курсора как в MK Slicer, который показывает что воспроизводится, и который можно с самого скрипта поставить в нужное место и воспроизвести с него пользоваться очень трудно мне по крайней мере. приходится много двигаться и много угадывать.

спасибо огромное за скрипт!
gapalil001 is offline   Reply With Quote
Old 06-20-2021, 01:02 PM   #33
LucasMeneguette
Human being with feelings
 
Join Date: Mar 2019
Posts: 8
Default

Quote:
Originally Posted by gapalil001 View Post
third moment and its last. is it possible to make shortcut to align mouse-clicked item to chromatic grid? please tell me if exist
About the "chromatic grid": I found that if you hold Cmd (maybe Ctrl on Windows) after clicking the note, you can move it snapping chromatically. If you click once (holding Cmd), you would separate notes. And Alt+click removes separations.

Incredible script! I wonder if MPL did some advances in it. For vocals, the Elastique 3.3.3 Soloist [Monophonic] sometimes gives a best result (i.e., most natural sounding) in comparison even with Melodyne 5.

Last edited by LucasMeneguette; 06-20-2021 at 01:12 PM.
LucasMeneguette is offline   Reply With Quote
Old 07-08-2021, 09:22 AM   #34
JonLinnarson
Human being with feelings
 
JonLinnarson's Avatar
 
Join Date: Jul 2020
Posts: 724
Default Great editor, but not yet there

Quote:
Originally Posted by LucasMeneguette View Post
About the "chromatic grid": I found that if you hold Cmd (maybe Ctrl on Windows) after clicking the note, you can move it snapping chromatically. If you click once (holding Cmd), you would separate notes. And Alt+click removes separations.
Tried it, but it only works from the notes original starting position! So if you tune it to correct pitch first, then try to snap it chromatically, it goes back to the notes starting position first and then goes chromatically from there. Not a big deal for my though.

I really like this editor, but I have one big problem. While trying to edit a whole lead vocal part that is longer than 40s, it starts to mess up at around 50 seconds and beyond. I tried to cut the part up in ~40s slices, which I thought could work out nicely, but it only seems to work on the first 40s slice. When selecting the next one and clicking analyze take, it won't analyse it :/ I tried splitting up the parts on different tracks, but Pitch Editor would still be stuck on the first slice I analyzed. I guess that means you can only use it on one ~40s part on just one track in the project.

If this editor can be fixed to work for longer parts and on multiple tracks/items in one project I would definitely donate/buy it! It feels easier to run than Melodyne, and when you're done, everything is written into the tracks pitch envelope, which I think feels very neat.

I also feel like this could be a great stock plug-in for Reaper in the future! Maybe a replacement for ReaTune? ReaTune sound good, but the editor is just awful tbh. This would be a incredible update!

Last edited by JonLinnarson; 07-08-2021 at 09:30 AM.
JonLinnarson is offline   Reply With Quote
Old 07-08-2021, 10:05 AM   #35
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

Quote:
Originally Posted by JonLinnarson View Post
Tried it, but it only works from the notes original starting position! So if you tune it to correct pitch first, then try to snap it chromatically, it goes back to the notes starting position first and then goes chromatically from there. Not a big deal for my though.

I really like this editor, but I have one big problem. While trying to edit a whole lead vocal part that is longer than 40s, it starts to mess up at around 50 seconds and beyond. I tried to cut the part up in ~40s slices, which I thought could work out nicely, but it only seems to work on the first 40s slice. When selecting the next one and clicking analyze take, it won't analyse it :/ I tried splitting up the parts on different tracks, but Pitch Editor would still be stuck on the first slice I analyzed. I guess that means you can only use it on one ~40s part on just one track in the project.

If this editor can be fixed to work for longer parts and on multiple tracks/items in one project I would definitely donate/buy it! It feels easier to run than Melodyne, and when you're done, everything is written into the tracks pitch envelope, which I think feels very neat.

I also feel like this could be a great stock plug-in for Reaper in the future! Maybe a replacement for ReaTune? ReaTune sound good, but the editor is just awful tbh. This would be a incredible update!
This is only concept. 40ms is a technical limitation I described somewhere above. I think, I'll try to make some updates on this. I'll post news here when it will be ready enough

Last edited by mpl; 07-08-2021 at 10:14 AM.
mpl is offline   Reply With Quote
Old 07-10-2021, 06:19 AM   #36
JonLinnarson
Human being with feelings
 
JonLinnarson's Avatar
 
Join Date: Jul 2020
Posts: 724
Default

Quote:
Originally Posted by mpl View Post
This is only concept. 40ms is a technical limitation I described somewhere above. I think, I'll try to make some updates on this. I'll post news here when it will be ready enough
Yes, that's why I thought it could work if I split the vocal track into 40s slices. Great concept though! If ReaTune looked like this, it would probably one of the best parts about Reaper!
JonLinnarson is offline   Reply With Quote
Old 07-10-2021, 06:40 AM   #37
lexaproductions
Human being with feelings
 
Join Date: Jan 2013
Posts: 1,126
Default

Quote:
Originally Posted by JonLinnarson View Post
Yes, that's why I thought it could work if I split the vocal track into 40s slices. Great concept though! If ReaTune looked like this, it would probably one of the best parts about Reaper!
Probably, if you glue your 40s splices separately you’ll be able to do the whole thing.
lexaproductions is offline   Reply With Quote
Old 10-21-2021, 11:36 AM   #38
JonLinnarson
Human being with feelings
 
JonLinnarson's Avatar
 
Join Date: Jul 2020
Posts: 724
Default

Quote:
Originally Posted by lexaproductions View Post
Probably, if you glue your 40s splices separately you’ll be able to do the whole thing.
Nope. That's exactly what I tried to do. It could maybe work if the 40s slices are all on different tracks, but it would be impossable to do this in a real project. The only other way would maybe be to edit one 40s slice, render it to a new take, then do the next slice and so on. This would be incredibly time consuming.
JonLinnarson is offline   Reply With Quote
Old 10-23-2023, 08:31 AM   #39
bwsd
Human being with feelings
 
Join Date: May 2011
Location: KZ ALA
Posts: 110
Default

Quote:
Originally Posted by mpl View Post
Everything is possible, I just have near zero time to do this.

Snap and fine: try mouse modifiers
MPL Hi!
How to divide one long "brick" into two small ones?
bwsd is offline   Reply With Quote
Old 10-26-2023, 11:04 AM   #40
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

Quote:
Originally Posted by bwsd View Post
MPL Hi!
How to divide one long "brick" into two small ones?
If I remember right it is ctrl+click
mpl 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 05:56 AM.


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