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

Reply
 
Thread Tools Display Modes
Old 09-17-2019, 03:09 AM   #1
amagalma
Human being with feelings
 
amagalma's Avatar
 
Join Date: Apr 2011
Posts: 3,458
Default Better "dynamic split items".. Anyone good at maths or the devs?..

Hello to all!


I don't know about you, but I have never been happy with the Dynamic Split Items of Reaper. It works good with drum signals but fails miserably with bass or strummed guitar, no matter what settings I try.


I always wanted a better transient detection algorithm, but my math and coding skills are way too limited for such a work.. I was googling and found these two very interesting papers:
1) A Transient Detection Algorithm For Audio Using Iterativeanalysis Of Stft
2) Separation Of Transient Information In Musical Audio Using Multiresolution Analysis Techniques


Is any programmer of you, or even better the devs, able to tell if any of these methods (or a combination of both) would give better results than the algorithm we currently have in Reaper?
__________________
Most of my scripts can be found in ReaPack.
If you find them useful, a donation would be greatly appreciated! Thank you! :)

Last edited by amagalma; 09-17-2019 at 01:40 PM.
amagalma is offline   Reply With Quote
Old 09-17-2019, 03:57 PM   #2
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,293
Default

Correct me if I’m wrong, but I always thought that dynamic split was basically just like a noise gate except it splits the item when the gate would open or close. I didn’t think there was any real transient detection happening.

In general, transient detection is about finding the instantaneous or short term slope of the signal. When it exceeds some certain threshold, we call it a transient. In calculus it’s called differentiation, and in audio it’s basically a high-pass filter.

If you take a look at the JS Transient Shaper, it actually differentiates the signal over two periods, one longer than the other, and when the short one is bigger than the long, they call it a transient. I built a JS transient splitter (sends transient to separate audio channel from sustain, not splitting items and not what you really want) based on that same principle. You should be able to take that basic idea, and split an item every time a transient happens.
ashcat_lt is online now   Reply With Quote
Old 09-29-2019, 12:28 PM   #3
amagalma
Human being with feelings
 
amagalma's Avatar
 
Join Date: Apr 2011
Posts: 3,458
Default

Quote:
Originally Posted by ashcat_lt View Post
Correct me if I’m wrong, but I always thought that dynamic split was basically just like a noise gate except it splits the item when the gate would open or close. I didn’t think there was any real transient detection happening.
No, there are two different modes. One of them is what you described.

Quote:
In general, transient detection is about finding the instantaneous or short term slope of the signal. When it exceeds some certain threshold, we call it a transient. In calculus it’s called differentiation, and in audio it’s basically a high-pass filter.

If you take a look at the JS Transient Shaper, it actually differentiates the signal over two periods, one longer than the other, and when the short one is bigger than the long, they call it a transient. I built a JS transient splitter (sends transient to separate audio channel from sustain, not splitting items and not what you really want) based on that same principle. You should be able to take that basic idea, and split an item every time a transient happens.
Yes, but this is a very basic way. It is what we currently have in Reaper. Works fine with drums and percussion, but not with strummed guitar or bass guitar.

I just saw that there's a new dev build with improved dynamic split. I am pretty excited! Unfortunately, I am away and cannot test it for the time being. I wonder how it behaves with strummed guitar and bass guitar...
__________________
Most of my scripts can be found in ReaPack.
If you find them useful, a donation would be greatly appreciated! Thank you! :)
amagalma is offline   Reply With Quote
Old 10-02-2019, 10:17 AM   #4
amagalma
Human being with feelings
 
amagalma's Avatar
 
Join Date: Apr 2011
Posts: 3,458
Default

I had the chance to test the new dev build. Unfortunately, it still misbehaves with guitars. But it is a lot faster than the previous algorithm.
__________________
Most of my scripts can be found in ReaPack.
If you find them useful, a donation would be greatly appreciated! Thank you! :)
amagalma 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 10:50 PM.


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