|
|
|
10-05-2010, 08:45 PM
|
#1
|
Human being with feelings
Join Date: Apr 2008
Location: Cambridge, Ontario
Posts: 2,644
|
AutoPocket: New Beat Detective clone for Reaper (demo video)
Alright so after fumbling around struggling to get the proper "edit smoothing" behavior in Reaper, I resorted to coding some actions myself to get the behavior I missed from Beat Detective in Pro Tools, while adding a ton of functionality people have been asking for in Beat Detective for years.
The bulk of it is this action:
SWS/AdamWathan: Fill gaps between selected items (advanced)
It's purpose is to intelligently fill the gaps between items that have been cut up and repositioned in the timeline, usually for drum editing purposes (ie. cutting all the hits and snapping them to the grid.) It does this by trimming the starts of items left to fill gaps, time stretching items if the gap is too big, etc. all according to preferences laid out by the user in the initial dialog.
Here's a YouTube video demonstrating my entire drum editing workflow using what I've added to Reaper. Skip to about 6:00 for the details about the action itself:
https://www.youtube.com/watch?v=KTfnp5W4peg
Trigger Pad: This is a leading pad added to the beginning of each chunk and subtracted from the end of the previous chunk. The snap offset is adjusted to compensate so that your media will still snap to the transient. It is a sort of safety buffer. Imagine you have a section where the snare and ride hits at the same time, but the ride is a tiny bit early. Dynamic split cut at the snare transient though for one of a variety of reasons. This buffer would ensure that the ride transient is preserved directly before the snare and that it is cut out of the previous item. It basically just lets you be lazier when checking the quality of your splits
Crossfade Length: This is the length of the crossfade created between the tail of any item and the beginning of the next item. It is always placed to the left and is in addition to any trigger pad (ie. a trigger pad of 5ms and a crossfade length of 5ms will result in a minimum of 10ms between the start of the crossfade and the transient in the next item.)
Maximum Gap: This is the maximum allowable gap before the code attempts to time stretch the previous item. If you set a max gap of 20ms and the code detects a gap of 50ms, it will timestretch the previous item until either a) the gap has been reduced to 20ms, or b) the Maximum Stretch value has been reached. If the detected gap is less than the Maximum Gap, the following item is simply trimmed back to fill it with no stretching applied whatsoever.
Maximum Stretch: This is the maximum amount that an item will stretch. The value corresponds with the "Rate" value displayed in a media item when timestretching it, so 0.85 means the item will stretch to a maximum rate of 0.85 In my experience, it usually sounds better to allow more stretching than it does to allow a larger Maximum Gap, so don't be afraid to set this value low. A value of 0 will let the item stretch as much as it needs to while a value of 1 will disable stretching entirely.
Preserve Transient: This is the amount of the item you want to prevent from stretching no matter what. Stretching the initial attack of a media item usually sounds poor, so this will prevent that initial attack from stretching and only stretch the tail of the item. If this is set to 35ms for example, a split is placed 35ms after the transient and only the item to the right of the split will be stretched, leaving the initial attack untouched. A value of 0 disables this function completely. The default value of 35ms is usually pretty good.
Transient Crossfade Length: This is simply the length of the crossfade used when splitting at the "Preserve Transient" point.
Fade Shape: This determines the shape of the fades used when performing any crossfades. It is an integer from 0 to 5, the following chart explains which is which.
Mark possible artifacts?: This is a value of 0 (no) or 1 (yes). If 1 is entered, the action will insert a marker everywhere that the gap exceeded the maximum allowable gap AND the maximum stretch value was reached, which means it had to trim the start of the following item more than expected. This allows you to easily identify areas where there might be an audible glitch so you can listen to them with special attention and either time stretch more to fix it, or copy and paste a better hit from a different part of the song.
Last edited by AdamWathan; 10-23-2010 at 01:13 PM.
|
|
|
10-05-2010, 09:55 PM
|
#2
|
Human being with feelings
Join Date: Jul 2009
Posts: 18
|
sick, fuck yes sick
|
|
|
10-05-2010, 10:03 PM
|
#3
|
Human being with feelings
Join Date: Jul 2009
Location: Ljubljana, Slovenia
Posts: 3,801
|
nice job dude
|
|
|
10-05-2010, 10:15 PM
|
#4
|
Human being with feelings
Join Date: Jun 2007
Location: Northern Michigan
Posts: 6,919
|
Nice one, definitely.
__________________
Peace...
bluzkat
|
|
|
10-05-2010, 10:57 PM
|
#5
|
Human being with feelings
Join Date: Mar 2007
Location: Wellington, New Zealand
Posts: 2,261
|
looks awesome!
|
|
|
10-05-2010, 11:12 PM
|
#6
|
Human being with feelings
Join Date: Nov 2009
Posts: 976
|
Ingenious stuff !
|
|
|
10-06-2010, 12:30 AM
|
#7
|
Human being with feelings
Join Date: Mar 2010
Location: El Cajon, CA (San Diego)
Posts: 593
|
Very nice, Adam! Will look forward to testing it.
If transient detection was more consistent and predictable this would work well on other rhythmic instruments as well, such as bass and some guitar tracks. Even some vocals.
One thing really nice about Pro Tools Elastic Audio is its transient detection. With just a sensitivity control it gets 99% right, and the rest you can touch up manually before you apply. In Reaper I usually have to do all this sort of thing with slip editing and time-stretching per bar (or whatever) to suit.
I notice in all your methods you rely on cross-fading quite heavily. Is there a particular length or slope that is especially effective? I find that for the most part I can cut cleaner that most of the cross-fades produced. They're always noisy in one way or another.
--Bill
|
|
|
10-06-2010, 08:55 AM
|
#8
|
Human being with feelings
Join Date: Apr 2008
Location: Cambridge, Ontario
Posts: 2,644
|
Alright so I've added a feature that makes this surpass Beat Detective and puts it in a league of it's own...
Basically what I did was add a timestretching component. I know I know, it's blasphemy, but hear me out. A lot of the time if two hits are played too close together and you pull them apart and backfill in between, you will hear a noticeable little snit. What I usually do in these situations, is if the gap is too big and I know I'm going to get a noticeable artifact, I will time stretch the first item a little bit in order to shrink the gap, and then backfill.
So the way it works is as follows. You are prompted for a "Max Gap" time, and a "Max Stretch Factor" value. The Max Gap is in seconds, and you just set this to whatever you think the maximum allowable gap is in your material where backfilling it won't sound glitchy. The Max Stretch Factor is how much you want to allow the items to stretch if the gap is too big. So say you set it to 0.85, the most it will stretch the item is down to 0.85 playrate (making the item 1/0.85 longer). 0.5 is half for example.
If you have 2 items with a 50ms gap, and you set the max gap to 25ms, it will stretch the first item until the gap is only 25ms or the max stretch factor is reached, then backfill the rest of the gap from the other item.
So a stretch factor of 1 means no time stretching will ever occur and it will function exactly like Beat Detective. The other extreme is a stretch factor of 0 and max gap of 0, which means it will stretch as much as necessary to fill the space between the items. It is very flexible and with the elastique 2 Pro algorithm in Reaper, it sounds great!
The problem with Elastic Audio has always been that it always stretched items in both directions. So even if doing it BD style would result in no gap and sound great, EA would still compress the first item. The problem with BD, is that if the gap is too big, it will still backfill it which results in a duplication of too much material and creates an audible glitch.
AutoPocket combines the best of both worlds by never compressing audio, and only stretching it when necessary to avoid the glitches you would get in Beat Detective.
Here's a quick demonstration, ignore how bad my commentary is!
http://www.adamwathan.com/reaper/AutoPocketPro.swf
|
|
|
10-06-2010, 09:29 AM
|
#9
|
Human being with feelings
Join Date: Apr 2010
Location: South West Michigan
Posts: 256
|
Looks great, Adam! Thanks a lot for this tool.
__________________
ADK Laptop Intel i7 2860QM, 8 GB RAM, Avid MBOX Pro 3 (BLA Modified), Novation Remote SL37, DSI Mopho, DSI Tempest, Trilian, Aether 1.5.1, Valhalla, Nerve, Komplete 7
|
|
|
10-06-2010, 09:30 AM
|
#10
|
Human being with feelings
Join Date: Oct 2008
Location: Right Hear
Posts: 15,618
|
nice one Adam.... is there a place for us to download your work on this?
|
|
|
10-06-2010, 09:55 AM
|
#11
|
Human being with feelings
Join Date: Oct 2008
Posts: 270
|
im definitely diggin this, awesome work
__________________
Drugs are bad. Brains are good.
|
|
|
10-06-2010, 10:10 AM
|
#12
|
Human being with feelings
Join Date: May 2006
Location: NA - North Augusta South Carolina
Posts: 4,294
|
It would be even cooler if there were a couple of preset/macro buttons you could set split/quantize/etc. actions to, to make it go in one pass.
Too bad there isn't a way to automate selecting the drum tracks prior to that step - 1-click bad drumming fix....
|
|
|
10-06-2010, 10:14 AM
|
#13
|
Human being with feelings
Join Date: Jun 2006
Location: Finland, Kuopio
Posts: 911
|
This is some serious Reaper rules-stuff, way to go Adam!
|
|
|
10-06-2010, 10:40 AM
|
#14
|
Human being with feelings
Join Date: Jun 2009
Posts: 300
|
Now this is really cool! Wow!
|
|
|
10-06-2010, 11:01 AM
|
#15
|
Human being with feelings
Join Date: Jul 2006
Posts: 952
|
Very cool, thanks! I won't say that I prefer this to BD, because of how integrated BD is and because with Reaper, you still have to split everything(PT lets you do these types of edits without splitting). But this definitely adds to the value of Reaper, and is absolutely useful. I'm more nit-picking than anything, so thanks for doing the work on this!
Brent
|
|
|
10-06-2010, 11:07 AM
|
#16
|
Human being with feelings
Join Date: Apr 2008
Location: Cambridge, Ontario
Posts: 2,644
|
Quote:
Originally Posted by koolkeys
Very cool, thanks! I won't say that I prefer this to BD, because of how integrated BD is and because with Reaper, you still have to split everything(PT lets you do these types of edits without splitting). But this definitely adds to the value of Reaper, and is absolutely useful. I'm more nit-picking than anything, so thanks for doing the work on this!
Brent
|
Well you can't quantize anything with Beat Detective without splitting it first... In Elastic Audio you can, but that's not the functionality I'm going for! Glad you like it, hoping to have it up for everyone to check out today. Working on a sort of instruction/workflow manual first so there is at least a clear cut resource explaining how to use it.
|
|
|
10-06-2010, 11:12 AM
|
#17
|
Human being with feelings
Join Date: Jul 2006
Posts: 952
|
Quote:
Originally Posted by AdamWathan
Well you can't quantize anything with Beat Detective without splitting it first... In Elastic Audio you can, but that's not the functionality I'm going for! Glad you like it, hoping to have it up for everyone to check out today. Working on a sort of instruction/workflow manual first so there is at least a clear cut resource explaining how to use it.
|
Correct, which is why I was saying that it was nit-picking since a combination of the PT features lets you do it without splitting.
I hope it didn't sound like complaining! I am thankful for your work, and look forward to trying it out. I do use PT and love it, but Reaper is better all the time, in part because of people putting forth effort like you!
Brent
|
|
|
10-06-2010, 11:12 AM
|
#18
|
Human being with feelings
Join Date: Jul 2010
Location: Denmark
Posts: 465
|
Looking forward to try it out myself. Looks very interesting.
__________________
Reaper 5, latest release, 64-bit w SWS |GA Z270 UD5|Intel i7 K7700|32 GB RAM|Fireface 800|500GB SSD sys, 1TB SSD Rec, 4TB HDD samples|Win 10 64bit|Dynaudio BM6A|Softube Console 1|Sonnox|Waves|Melda|Superior 3|Komplete 12U|Melodyne|Slate|Izotope.
|
|
|
10-06-2010, 11:47 AM
|
#19
|
Human being with feelings
Join Date: Feb 2009
Location: Portland, OR, USA
Posts: 1,057
|
Brilliant, Adam!
Looks like you're on a Mac. Will there be a PC version, or does it even matter?
__________________
"A fly was very close to being called a land, 'cause that's what they do half the time."
-Mitch Hedberg
|
|
|
10-06-2010, 11:49 AM
|
#20
|
Human being with feelings
Join Date: Apr 2008
Location: Cambridge, Ontario
Posts: 2,644
|
Quote:
Originally Posted by nfpotter
Brilliant, Adam!
Looks like you're on a Mac. Will there be a PC version, or does it even matter?
|
It's a Python ReaScript, should be cross platform as long as you have Python installed!
|
|
|
10-06-2010, 12:22 PM
|
#21
|
Human being with feelings
Join Date: Feb 2009
Location: Portland, OR, USA
Posts: 1,057
|
Is there a way to install it WITHOUT having Python?
__________________
"A fly was very close to being called a land, 'cause that's what they do half the time."
-Mitch Hedberg
|
|
|
10-06-2010, 12:26 PM
|
#22
|
Mortal
Join Date: Dec 2008
Location: France
Posts: 1,969
|
very, very cool, AdamWathan! when you'll be happy with it give us a ring to add it to the SWS extensions (as "SWS/AdamW", of course )
|
|
|
10-06-2010, 01:44 PM
|
#23
|
Human being with feelings
Join Date: Apr 2008
Location: Cambridge, Ontario
Posts: 2,644
|
Quote:
Originally Posted by Jeffos
very, very cool, AdamWathan! when you'll be happy with it give us a ring to add it to the SWS extensions (as "SWS/AdamW", of course )
|
That would be killer, would love to have it compiled in C instead of via ReaScript so that people can use it without installing Python! Thanks.
|
|
|
10-06-2010, 01:48 PM
|
#24
|
Human being with feelings
Join Date: Apr 2008
Location: Cambridge, Ontario
Posts: 2,644
|
Here's a video of it running on Windows...
http://www.adamwathan.com/reaper/autopocket_windows.swf
Seems there are still a lot of performance optimization issues to sort out on the OSX end. Both my videos were made on the same machine (2009 MacBook Pro 2.53ghz 4gb ram) and on Windows the script runs like lightning, you can't even see it happen, whereas on OSX you have to watch it crawl through every single step :/
|
|
|
10-06-2010, 01:50 PM
|
#25
|
Human being with feelings
Join Date: Jun 2008
Location: Whales, UK
Posts: 6,009
|
ooh, v. cool. even more so if can be a part of sws.
showing folk (perhaps not the drummer in question...) that little smooth script in action will get them very excited.
maybe can inspire devs to sort that whole area out for next V too.
|
|
|
10-06-2010, 02:31 PM
|
#26
|
Code Monkey
Join Date: Sep 2007
Location: Madison, WI
Posts: 857
|
Yeah, let's definitely get this into SWS for ease of use/speed/etc.
|
|
|
10-06-2010, 02:45 PM
|
#27
|
Human being with feelings
Join Date: Jun 2007
Location: Northern Michigan
Posts: 6,919
|
Adam,
Thought this was a good idea, then I watched the demo video...
This is a freakin' GREAT idea!!
__________________
Peace...
bluzkat
|
|
|
10-06-2010, 02:45 PM
|
#28
|
Human being with feelings
Join Date: Feb 2007
Location: Sydney Oz
Posts: 8,480
|
Awesome Adam, that's some great work! And way cool it's going to be part of the sws extension, congrats.
|
|
|
10-06-2010, 03:23 PM
|
#29
|
Human being with feelings
Join Date: Aug 2006
Location: Berlin
Posts: 11,817
|
Fine job indeed.
Everyone take hard looks at it too. It should be as close to what you need as possible before the C-madness begins.
|
|
|
10-06-2010, 04:04 PM
|
#30
|
Human being with feelings
Join Date: Apr 2008
Location: Cambridge, Ontario
Posts: 2,644
|
Quote:
Originally Posted by TexasFury
On a more practical tech note, would it be safe to assume that with a drummer that gets out of time with THEM-SELF (yes, very possible) and is overhead miked, the overheads would have to be scrapped using any kind of "Beat Fixer"? After all, you can't uncook the omelet that is overhead miking.
However, very nice work, Adam.
|
Yeah drums have to be edited as a group to maintain the correct phase relationships between mics, so if he is out of time with himself you are sort of SOL. Most drummers usually at least play their hands in time with each other though, and with some highpass filtering on the overheads you can usually edit the kick separately when left with no other option.
|
|
|
10-06-2010, 04:14 PM
|
#31
|
Human being with feelings
Join Date: Mar 2007
Location: Vancouver
Posts: 2,279
|
Quote:
Originally Posted by AdamWathan
Alright so I've added a feature that makes this surpass Beat Detective and puts it in a league of it's own...
|
Killer! Hit me up on Skype tonight and give me a demo.
Quote:
Originally Posted by sws
Yeah, let's definitely get this into SWS for ease of use/speed/etc.
|
A big +1 on this!!
Shane
__________________
"Music should be performed by the musician not by the engineer."
Michael Wagener 25th July 2005, 02:59 PM
|
|
|
10-06-2010, 07:17 PM
|
#32
|
Human being with feelings
Join Date: Mar 2007
Location: Vancouver
Posts: 2,279
|
Thanks for the killer demo on Skype!! Add that "Preserve Transient" field we discussed, and this will be a HUGE hit for the editors. Well done!
Shane
__________________
"Music should be performed by the musician not by the engineer."
Michael Wagener 25th July 2005, 02:59 PM
Last edited by Shan; 10-06-2010 at 08:33 PM.
|
|
|
10-06-2010, 07:30 PM
|
#33
|
Human being with feelings
Join Date: Mar 2010
Posts: 1,572
|
|
|
|
10-06-2010, 08:01 PM
|
#34
|
Human being with feelings
Join Date: Mar 2008
Location: In a van, down by the river
Posts: 3,574
|
Adam, you've turned into a Reaper super hero, bro. Good job on this!
|
|
|
10-06-2010, 08:39 PM
|
#35
|
Human being with feelings
Join Date: Oct 2008
Location: Right Hear
Posts: 15,618
|
Quote:
Originally Posted by Jeffos
very, very cool, AdamWathan! when you'll be happy with it give us a ring to add it to the SWS extensions (as "SWS/AdamW", of course )
|
Amen.... how great
|
|
|
10-06-2010, 09:34 PM
|
#36
|
Human being with feelings
Join Date: Mar 2007
Location: Vancouver
Posts: 2,279
|
Quote:
Originally Posted by Shan
Thanks for the killer demo on Skype!! Add that "Preserve Transient" field we discussed, and this will be a HUGE hit for the editors. Well done!
Shane
|
Now that you just got the Preserve Transient feature implemented we discussed on Skype, this is gonna be pretty huge and popular. It's everything I ever wanted to see in the Edit Smoothing section of Beat Detective 2.0. This one has to go in natively. Hurry up and post that new vid.
Well done Adam!
Shane
__________________
"Music should be performed by the musician not by the engineer."
Michael Wagener 25th July 2005, 02:59 PM
Last edited by Shan; 10-06-2010 at 09:44 PM.
|
|
|
10-06-2010, 09:55 PM
|
#37
|
Human being with feelings
Join Date: Apr 2008
Location: Cambridge, Ontario
Posts: 2,644
|
Here's the updated video demonstration including the new "Preserve Transient" feature:
http://www.adamwathan.com/reaper/AutoPocket_beta3.swf
Remember, the timestretching and preserve transient functions can be completely disabled by setting the Max Stretch to "1" and Preserve Transient to "0", so if you want to stick to doing everything the old school Beat Detective way, AutoPocket is more than capable of doing it for you
|
|
|
10-06-2010, 11:00 PM
|
#38
|
Human being with feelings
Join Date: Jan 2006
Location: Australia
Posts: 1,668
|
Great stuff Adam. The Preserve Transient feature is particularly impressive.
Cheers,
Malcolm.
|
|
|
10-06-2010, 11:18 PM
|
#39
|
Human being with feelings
Join Date: Feb 2007
Location: Sydney Oz
Posts: 8,480
|
Just watched it Adam, awesome man. Dumbass question from someone who uses your drum slip-editing method (and loves it!) but has never used beat detective, what situation would you use this instead of slip-editing manually?
I have to say, you are proving extremely valuable to Reaper users. Well done!
|
|
|
10-06-2010, 11:22 PM
|
#40
|
Human being with feelings
Join Date: Aug 2006
Location: USA
Posts: 55
|
Kudos!
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 06:00 AM.
|