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

Reply
 
Thread Tools Display Modes
Old 07-22-2016, 05:06 PM   #1
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default MPL Align takes 2 - audio takes RMS matching tool

Align takes is a Lua script for REAPER. Algorithm is based on matching RMS envelopes of dub takes and some reference take using stretch markers.

How to use it?
  • select reference and dub items
  • run script
  • move knob

Installation:
  • install ReaPack extension,
  • restart REAPER
  • go to ActionList -> ReaPack: Browse packages... -> navigate and install AlignTakes package
  • go to ActionList -> ReaPack: Browse packages... -> navigate and install Various_functions package

Last edited by mpl; 01-16-2023 at 11:10 AM.
mpl is offline   Reply With Quote
Old 07-22-2016, 06:15 PM   #2
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

WOW! will look at this properly in the morning but just wanted to say well done on another amazing script!
__________________
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 07-22-2016, 06:51 PM   #3
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,866
Default

Very cool ! It seems pretty advanced ! Can't wait to test it :P

Thanks for sharing
X-Raym is offline   Reply With Quote
Old 07-22-2016, 10:08 PM   #4
semiquaver
Human being with feelings
 
Join Date: Jun 2008
Posts: 4,923
Default

looks incredible - excited to test...
semiquaver is offline   Reply With Quote
Old 07-23-2016, 12:23 AM   #5
vanhaze
Human being with feelings
 
vanhaze's Avatar
 
Join Date: Jul 2012
Location: Netherlands
Posts: 5,247
Default

Amazing stuff mpl, thanks a million for your effort !
vanhaze is offline   Reply With Quote
Old 07-23-2016, 01:26 AM   #6
G-Sun
Human being with feelings
 
G-Sun's Avatar
 
Join Date: May 2010
Location: Norway
Posts: 7,318
Default

Looking awesome
__________________
Reaper x64, win 11
Composer, text-writer, producer
Bandcamp
G-Sun is offline   Reply With Quote
Old 07-23-2016, 03:00 AM   #7
vitalker
Human being with feelings
 
vitalker's Avatar
 
Join Date: Dec 2012
Posts: 13,333
Default

It's one of the greatest Reaper scripts. Applause for Michail.
vitalker is online now   Reply With Quote
Old 07-23-2016, 10:08 AM   #8
heda
Human being with feelings
 
heda's Avatar
 
Join Date: Jun 2012
Location: Spain
Posts: 7,217
Default

very good mpl!! Looks great!

Sometimes we don't want to have the reference one above the other. maybe you could create two buttons, one to get the reference one, and one for the others.

I've been testing it a bit, and I can't figure out how to update the parameters. I mean I move the knobs, but how can I then make it detect with the new parameters? It doesn't seem updating the detection here.. even if I press Get again.

Amazing script! or I should say.. REAPER App
heda is offline   Reply With Quote
Old 07-24-2016, 12:11 AM   #9
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

heda, updating parameters "on the fly" seems hard for CPU, so to update them you should press "Get" once again.
mpl is offline   Reply With Quote
Old 07-24-2016, 12:52 AM   #10
G-Sun
Human being with feelings
 
G-Sun's Avatar
 
Join Date: May 2010
Location: Norway
Posts: 7,318
Default

Trying it out a little.
Parameters are not familiar to me,
so a few well chosen presets could maybe be a good idea?

But, maybe if/when I understand it better,
I wont need any presets.
__________________
Reaper x64, win 11
Composer, text-writer, producer
Bandcamp
G-Sun is offline   Reply With Quote
Old 07-24-2016, 07:09 AM   #11
Jae.Thomas
Human being with feelings
 
Join Date: Jun 2006
Posts: 22,560
Default

i'd like this to "dig in" a little further and make more markers...
Jae.Thomas is offline   Reply With Quote
Old 07-25-2016, 04:33 PM   #12
barbaman
Human being with feelings
 
Join Date: Sep 2011
Posts: 46
Default does this work with vox?

is this good for quickly doubling vocal takes of a lead vocals for example.

Can it work with many vox at a time meaning many back ground vocal tracks aligned to one reference?

what special add-ons do I need to make this work? (or does this work with only reaper as it is?)
barbaman is offline   Reply With Quote
Old 07-25-2016, 08:48 PM   #13
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

barbaman, yes, you can try doubling by setting "search area" to minimum and slightly move slider (I guess there will be some difference even between same takes).

You can works on any count of takes. I pointed this in first post.

To get this works, you need last official releases of REAPER and SWS extension.
mpl is offline   Reply With Quote
Old 07-26-2016, 12:43 AM   #14
G-Sun
Human being with feelings
 
G-Sun's Avatar
 
Join Date: May 2010
Location: Norway
Posts: 7,318
Default

Quote:
Originally Posted by mpl View Post
To get this works, you need last official releases of REAPER and SWS extension.
Exactly what are the requirements?
__________________
Reaper x64, win 11
Composer, text-writer, producer
Bandcamp
G-Sun is offline   Reply With Quote
Old 07-26-2016, 01:01 AM   #15
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

I'm testing and developing under current fresh releases, but it should works under Reaper 5.20+ / sws 2.7.3+
mpl is offline   Reply With Quote
Old 07-26-2016, 03:43 AM   #16
G-Sun
Human being with feelings
 
G-Sun's Avatar
 
Join Date: May 2010
Location: Norway
Posts: 7,318
Default

Quote:
Originally Posted by mpl View Post
I'm testing and developing under current fresh releases, but it should works under Reaper 5.20+ / sws 2.7.3+
Ok, pitty me then
__________________
Reaper x64, win 11
Composer, text-writer, producer
Bandcamp
G-Sun is offline   Reply With Quote
Old 08-04-2016, 10:08 PM   #17
DANunconcious
Human being with feelings
 
Join Date: Apr 2016
Posts: 4
Default

Quote:
Originally Posted by mpl View Post
Align takes is a Lua script for REAPER. Its algorithm based on matching RMS envelopes of dub takes and some reference take using stretch markers.

since I stopped developing Warping Tool (which "Align takes" was part of) I decided to create dedicated thread for this part

So how to use it?
  • select takes
  • press 'Get'
  • move slider



You need to have at least 2 items placed on different tracks one under another. The reference item/take is upper take. You can also simultaneously work with any count of takes. The upper take will be also reference item/take for them. "Can I give to this script any audio?" No. You need to prepare item/takes manually OR just click "Get" button and see what special "prepare" function will do.
Perfect situation:
  • ref. and dub takes with takerate = 1
  • ref. and dub takes without stretch markers
  • ref. and dub takes without snap offset
  • ref. and dub takes are not loop sourced
  • reference take edges over dub takes edges (so every point of dub take is beetween ref.take position and ref.take end)
After you pressed "Get" button, you should see ugly waveforms in script window. If you see vertical lines on syllables/transients, then congratulations - your takes ready to match each other. Move slider and see what happen. If you didn`t see then - try to play with settings, which are explained further. Press "+" button to extend window and change preferences.

Green knobs are parameters for detection syllables and transients start/end positions (I call them 'points' further, they represented as vertical lines on the waveform graph). RMS envelope ('envelope' further) of course have some window, so aligning non-macro stuff like drums is not a good example for this tool. Basically points added when envelope rise/fall (envelope always rising/falling so green knobs let you define WHEN exactly to add points, i.e. define conditions for adding).
  • Scaling. Let you define how much do you wanna compress signal for detection. It is NOT compress actual take audio. More compression = rise/fall settings more sensitive. No compression = better for transients detection.
  • Threshold is linear "noise floor" for detected points. It is represented on the graph. Lower threshold = more points.
  • Rise area. If signal rise/fall by value defined with Rise/Fall and Rise/Fall2 in this area, point will be added. Short time = more points.
  • Rise/Fall - linear gain/attenuation factor when checking Rise area for scaled envelope. Lower value = more points.
  • Rise/Fall2 - linear gain/attenuation factor when checking Rise area for original envelope. Lower value = more points.
  • Filter area - minimal space beetween detected points. Long time = less points.

Red knob is a parameter for main algorithm.
  • Search area means how far possible stretch markers can be moved. Short time = tiny alignment.

Blue knobs are parameters for building envelope
  • First selector allow to change type envelope beetween RMS envelope and FFT (sum of spectrum bins values) envelope.
  • Second selector allow to change algorithm. First algo get every block beetween 3 closest points and find best fit by moving center point. Second algo use same technique, but get blocks one-by one and calculate best fit potential stretch markers position relative to previously stretched blocks.
  • RMS window is how much samples taken to calculate average for every envelope point.
  • FFT size is number of FFT bins.
  • HP and LP control FFT edges.
  • Smooth knob control smoothing final envelope.

With version 1.110+ you can also save your presets and share them to others (configuration is stored within script path).

Don`t forget it is totally FREE "native" alternative to SyncroArts ( Vocalign / RevoicePro ) $150+ software. So please donate if you use it and like it. Donate button open www.paypal.me/donate2mpl in your default browser.

Source. Script accessible via ReaPack extension also.

Michael.

-----------------------------

HEllo! I'm new to Reaper, I just downloaded and install Reapack but can't figure out how to use this script or plugin like the video? Where is it located? how can I access it? Can someone please help me with this.... Thx!
DANunconcious is offline   Reply With Quote
Old 08-05-2016, 12:28 AM   #18
G-Sun
Human being with feelings
 
G-Sun's Avatar
 
Join Date: May 2010
Location: Norway
Posts: 7,318
Default

Quote:
Originally Posted by DANunconcious View Post
-----------------------------

HEllo! I'm new to Reaper, I just downloaded and install Reapack but can't figure out how to use this script or plugin like the video? Where is it located? how can I access it? Can someone please help me with this.... Thx!
Please have a look here:
http://www.reaper.fm/videos.php#tzg9fifza0s
__________________
Reaper x64, win 11
Composer, text-writer, producer
Bandcamp
G-Sun is offline   Reply With Quote
Old 08-05-2016, 08:52 AM   #19
DANunconcious
Human being with feelings
 
Join Date: Apr 2016
Posts: 4
Default

Quote:
Originally Posted by G-Sun View Post
Thx for replaying but my question is: where do I open this plugin (or at least that's what it looks like in the video)? I know how to setup custom actions and run them, and I see the script align takes.lua in the action list but when I select 2 items, one on top of each other and hit run it gives me and error and I can't see the GUI like in the video with the knobs, Get button, etc.
DANunconcious is offline   Reply With Quote
Old 08-05-2016, 12:13 PM   #20
G-Sun
Human being with feelings
 
G-Sun's Avatar
 
Join Date: May 2010
Location: Norway
Posts: 7,318
Default

Quote:
Originally Posted by DANunconcious View Post
Thx for replaying but my question is: where do I open this plugin (or at least that's what it looks like in the video)? I know how to setup custom actions and run them, and I see the script align takes.lua in the action list but when I select 2 items, one on top of each other and hit run it gives me and error and I can't see the GUI like in the video with the knobs, Get button, etc.
Ok, sorry. Then it's some sort of installation-error.
Do you have SWS installed?
Maybe reinstall the mpl-script(s) from ReaPack.
__________________
Reaper x64, win 11
Composer, text-writer, producer
Bandcamp
G-Sun is offline   Reply With Quote
Old 08-06-2016, 05:15 AM   #21
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

DANunconcious, I guess you don`t have SWS extension installed.
You need at least Reaper 5.20+ and SWS 2.7.3+
I added this req to first post.
mpl is offline   Reply With Quote
Old 08-06-2016, 01:02 PM   #22
DANunconcious
Human being with feelings
 
Join Date: Apr 2016
Posts: 4
Default

Thank you guys so much, yeah I had Sws install but then I reset Reaper to factory defaults! I'm going to install Sws again and it should be able to use this amazing tool!
DANunconcious is offline   Reply With Quote
Old 08-11-2016, 07:43 AM   #23
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

Just added to ReaPack version without GUI, so it acts like an single action (get/prepare takes on start > calculate points > calculate best fit > add points as stretch markers)
mpl is offline   Reply With Quote
Old 08-21-2016, 12:27 AM   #24
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 3,714
Default

Wow, this is the most beautiful, professional ReaScript GUI that I have ever seen.
juliansader is offline   Reply With Quote
Old 08-21-2016, 05:43 AM   #25
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 3,714
Default

I suggest that you move this thread, as well as the announcement threads for your other flagship scripts, to the General Discussion forum so that they can get the larger audience they deserve.
juliansader is offline   Reply With Quote
Old 08-21-2016, 06:54 AM   #26
Jae.Thomas
Human being with feelings
 
Join Date: Jun 2006
Posts: 22,560
Default

Quote:
Originally Posted by mpl View Post
Just added to ReaPack version without GUI, so it acts like an single action (get/prepare takes on start > calculate points > calculate best fit > add points as stretch markers)
really neat

calculate best fit?
Jae.Thomas is offline   Reply With Quote
Old 08-21-2016, 08:30 AM   #27
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

Quote:
calculate best fit?
It is like if you manually move every stretch marker to get takes RMS same at every moment

Quote:
I suggest that you move this thread, as well as the announcement threads for your other flagship scripts, to the General Discussion forum so that they can get the larger audience they deserve.
Is this ok with forum rules?
mpl is offline   Reply With Quote
Old 08-21-2016, 02:03 PM   #28
heda
Human being with feelings
 
heda's Avatar
 
Join Date: Jun 2012
Location: Spain
Posts: 7,217
Default

Quote:
Originally Posted by mpl View Post
Is this ok with forum rules?
I think it would be totally ok.
In fact, we could always create two threads per script. One in the general forum to announce it once a stable version is ready to be used, and one in the JSFX Reascript forum while it is being developed, pre-release beta versions, or as support thread for coding questions etc.
heda is offline   Reply With Quote
Old 10-14-2016, 03:20 AM   #29
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,093
Default

Hi mpl, thank you for this tool.

I'm currently trying it for vocal doubles and initial results are quite good. I have to get familiar with all the parameters...

I have a suggestion:

Quote:
Originally Posted by mpl View Post
  • reference take edges over dub takes edges (so every point of dub take is beetween ref.take position and ref.take end)
Would it also be possible to process sections based on time selection ? Similar as Eugen did with his alligning tool.
http://forum.cockos.com/showthread.php?t=180982

When working with longer recordings (items) I'd find it more practical to make processing phrases based on time selection than having to split items.

Thanks for considering.
nofish is offline   Reply With Quote
Old 10-19-2016, 11:01 AM   #30
LugNut
Human being with feelings
 
Join Date: Jun 2013
Location: So Florida
Posts: 1,424
Default

Hi,

Should this script work w xp32 sp2? I keep getting an error when I run it. It says Lua error wrong character at something.
I can't use repack so what would be the correct way to DL and install it?
Sorry for such basic questions.

Edit..I was trying to run it on a multi take item set to play all takes as reference and a simililar item as destination if that could make a difference.
Thanks for all your efforts improving Reaper mpl.
LugNut is offline   Reply With Quote
Old 10-19-2016, 11:30 AM   #31
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,093
Default

Quote:
Originally Posted by LugNut View Post
Hi,

Should this script work w xp32 sp2? I keep getting an error when I run it. It says Lua error wrong character at something.
I can't use repack so what would be the correct way to DL and install it?
Sorry for such basic questions.

Edit..I was trying to run it on a multi take item set to play all takes as reference and a simililar item as destination if that could make a difference.
Thanks for all your efforts improving Reaper mpl.
When you download the script from the link in the first post via rightclick, Save as... you get an html-ized version.

Try with this link:
https://raw.githubusercontent.com/Mi...gn%20takes.lua
nofish is offline   Reply With Quote
Old 10-19-2016, 12:30 PM   #32
LugNut
Human being with feelings
 
Join Date: Jun 2013
Location: So Florida
Posts: 1,424
Default

Quote:
Originally Posted by nofish View Post
When you download the script from the link in the first post via rightclick, Save as... you get an html-ized version.

Try with this link:
https://raw.githubusercontent.com/Mi...gn%20takes.lua
Thanks no fish. I think that's the way I did it. Will try your link when I'm in studio.
LugNut is offline   Reply With Quote
Old 01-18-2017, 10:00 AM   #33
G-Sun
Human being with feelings
 
G-Sun's Avatar
 
Join Date: May 2010
Location: Norway
Posts: 7,318
Default

Tried this now with varying results for vox + 2 b.vox.
Thanks!
__________________
Reaper x64, win 11
Composer, text-writer, producer
Bandcamp
G-Sun is offline   Reply With Quote
Old 01-23-2017, 10:35 PM   #34
illsoulprod259
Human being with feelings
 
Join Date: Feb 2013
Posts: 30
Default

I need a walk through on how to set this up please
illsoulprod259 is offline   Reply With Quote
Old 01-24-2017, 02:52 AM   #35
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

install latest SWS extension > install ReaPack extension > search action list for mpl_Align takes.lua > see gif at first post
mpl is offline   Reply With Quote
Old 01-30-2017, 02:28 PM   #36
xenofil
Human being with feelings
 
Join Date: Nov 2013
Posts: 3
Default

A very good idea and nicely executed!

Unfortunately it cannot replace vocalign/revoice
at this point in efficiency and accuracy because much of
the job has to be done manually (before or after) anyway.

Will keep an eye on the development though
xenofil is offline   Reply With Quote
Old 01-30-2017, 04:46 PM   #37
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Quote:
Originally Posted by xenofil View Post
A very good idea and nicely executed!

Unfortunately it cannot replace vocalign/revoice
at this point in efficiency and accuracy because much of
the job has to be done manually (before or after) anyway.

Will keep an eye on the development though
A lot cheaper though! Even after a generous donation (that MPL massively deserves)

It's not that bad as after the first time you set your "dynamic split" function up in reaper, the 2nd time becomes a lot faster.
__________________
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 03-20-2017, 09:43 AM   #38
mb945
Human being with feelings
 
Join Date: Jan 2017
Posts: 113
Default

Wow, just saw this script and so far it's awesome after the first try. Thanks so much MPL!
mb945 is offline   Reply With Quote
Old 09-24-2017, 08:05 PM   #39
zacman
Human being with feelings
 
Join Date: Sep 2017
Posts: 1
Default Error when trying to open Align Takes

I'm a new Reaper owner - be gentle.

Do I bring up the GUI window by choosing Align Takes from the Actions menu, or is there another method? When I do this, I am shown the following error message: "mpl_Align takes.lua:2201: attempt to call a nil value (field 'BR_Win32_WritePrivateProfileString')".

I have Reaper 5.5c (64 bit), ReaPack 1.1, and SWS 2.9.6 (64 bit).

What am I doing wrong?
zacman is offline   Reply With Quote
Old 09-24-2017, 11:15 PM   #40
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

Quote:
Originally Posted by zacman View Post
Do I bring up the GUI window by choosing Align Takes from the Actions menu
Yes.
Quote:
Originally Posted by zacman View Post
When I do this, I am shown the following error message: "mpl_Align takes.lua:2201: attempt to call a nil value (field 'BR_Win32_WritePrivateProfileString')".

I have Reaper 5.5c (64 bit), ReaPack 1.1, and SWS 2.9.6 (64 bit).
It looks like you haven`t installed SWS, or something wrong with this function. So I tried to prevent this issue for v1.132 (Actions/ReaPack: Synchronize packages)

Please discuss my stuff here, I`m following only that thread currently.
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 04:23 AM.


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