Old 04-10-2021, 07:04 PM   #1
JamesPeters
Human being with feelings
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 3,943
Default Harmonic/Percussive Source Separation as a plugin?

Info with some demo clips:

https://learn.flucoma.org/algorithms/hpss/

James Bradbury already made this functionality (and the rest of the FluCoMa functionality) as an extension for Reaper:

https://www.reacoma.xyz/

I've tried this HPSS aspect on some drum sounds that are "ringy" and it works very well. I notice there's a realtime library for this, and it's the one in particular that's used with the extension James Bradbury made (but since what he made is a script, it doesn't run "realtime" in the sense that a JS plugin runs realtime). If I can get good results with this script using that library, and it could also run realtime as a JS plugin, that could make for a very useful tool for various audio sources.

I'm nowhere near intelligent enough to make such a plugin (or any plugin at all) so I'm just pitching the idea to anyone here whose brain is larger than mine. I'm not even sure this could be a plugin. I found the Github for the source:

https://github.com/flucoma

I see under flucoma-cli, the fluid-hpss "realtime" tool is there in the src folder. And it seems to refer to this (as the "client"):

https://github.com/flucoma/flucoma-c...HPSSClient.hpp

And from there, refers to this as the algorithm:

https://github.com/flucoma/flucoma-c...ublic/HPSS.hpp

Last edited by JamesPeters; 04-10-2021 at 07:28 PM.
JamesPeters is offline   Reply With Quote
Old 04-12-2021, 02:27 AM   #2
junh1024
Human being with feelings
 
Join Date: Feb 2014
Posts: 240
Default

You can try "FFT Multi Tool (L).txt", as part of my suite with:

-Noise or Transient mode
-Amount 0%
-Difference Yes

The algorithm is a completely different, simple, and fast one. It might do what you want (or not). Try changing the other parameters.

Install instructions in my sig v
__________________
REAPER 2D/3D Surround suite: Instructions & Download | Discussion | Donate
junh1024 is offline   Reply With Quote
Old 04-12-2021, 10:30 AM   #3
JamesPeters
Human being with feelings
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 3,943
Default

Thank you! However it doesn't perform what I'm trying to achieve, and it has a significant latency. But I suppose HPSS also uses FFT calculation, so it also might not be capable of working with no latency.

I may just end up using the HPSS offline via the reascript, and making multiple versions of the drum samples, as a workaround.

Last edited by JamesPeters; 04-12-2021 at 11:44 AM.
JamesPeters is offline   Reply With Quote
Old 04-12-2021, 12:36 PM   #4
sai'ke
Human being with feelings
 
sai'ke's Avatar
 
Join Date: Aug 2009
Location: NL
Posts: 1,453
Default

Quote:
Originally Posted by JamesPeters View Post
Thank you! However it doesn't perform what I'm trying to achieve, and it has a significant latency. But I suppose HPSS also uses FFT calculation, so it also might not be capable of working with no latency.

I may just end up using the HPSS offline via the reascript, and making multiple versions of the drum samples, as a workaround.
Just reading the description, it would seem you need several STFT frames to take the median over, which would incur latency, yes. You could lower the latency by taking coarser FFTs, but this would likely negatively impact the sound quality quite a lot.
__________________
[Tracker Plugin: Thread|Github|Reapack] | [Routing Plugin: Thread|Reapack] | [More JSFX: Thread|Descriptions|Reapack]
sai'ke is offline   Reply With Quote
Old 04-12-2021, 12:45 PM   #5
JamesPeters
Human being with feelings
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 3,943
Default

It would still be a handy tool to have as a plugin even with significant latency, but it would limit how I'd use it.

I'd probably still want to use such a plugin to dial in the settings I want before editing a file. As it is, I'm dialing in settings "blindly" using the script, and listening to each version before trying different settings. It's quite time consuming.

I intend to make changes to a bunch of drum kit samples, and I want to dial in the best settings I can for each kit piece (then apply them to all the velocity layer / round robin samples for that kit piece). I'd probably also choose to leave a bit more harmonic content in drum hits with higher velocity (a stronger hit would generate more resonance), so it could mean different settings for different velocity layers.

Last edited by JamesPeters; 04-24-2021 at 06:45 PM.
JamesPeters is offline   Reply With Quote
Old 04-12-2021, 05:16 PM   #6
junh1024
Human being with feelings
 
Join Date: Feb 2014
Posts: 240
Default

Quote:
Originally Posted by JamesPeters View Post

I've tried this HPSS aspect on some drum sounds that are "ringy" and it works very well.
Well, have you tried reaFIR in EQ or compress mode?
__________________
REAPER 2D/3D Surround suite: Instructions & Download | Discussion | Donate
junh1024 is offline   Reply With Quote
Old 04-12-2021, 08:51 PM   #7
JamesPeters
Human being with feelings
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 3,943
Default

Yes. The results are far better with HPSS. You should listen to the examples given in the first link of my first post. That's not something I can match with any other effect. Multi-band dynamic EQ and compression can tame some resonance, but it affects the sound in a significant way. This is quite different.
JamesPeters is offline   Reply With Quote
Old 04-13-2021, 02:47 AM   #8
Vagelis
Human being with feelings
 
Vagelis's Avatar
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 3,797
Default

Not sure technically what you're looking for, but maybe take a look on this vst ?

https://github.com/dozius/DtBlkFx
Vagelis is online now   Reply With Quote
Old 04-13-2021, 08:03 AM   #9
JamesPeters
Human being with feelings
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 3,943
Default

I don't think so. It looks as though it might be capable of something similar to a degree (a portion of the functionality I want)...if it were complete and able to be built. Plus it seems as though the development is in limbo.

Check the first link in the first post for an example of what I'm talking about. There are audio examples there. It's fairly specific.
JamesPeters is offline   Reply With Quote
Old 04-13-2021, 12:45 PM   #10
eq1
Human being with feelings
 
Join Date: Sep 2011
Location: PNW, USA
Posts: 655
Default

Quote:
Originally Posted by JamesPeters View Post
That's interesting. I was just working with some acoustic guitar tracks (and others) that often had too much attack/'percussiveness'. Seems like this tool might be good for dealing with that sort of thing. Is that so, would that be the type of thing it's used for?
eq1 is offline   Reply With Quote
Old 04-13-2021, 01:11 PM   #11
JamesPeters
Human being with feelings
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 3,943
Default

That's one use.

The output of the HPSS script I mentioned makes additional takes for a given item, or set of selected items. It creates new wave files automatically saved to the source directory, named with the original (source) file's filename plus "hpss-h" and "hpss-p" appended to the filenames for "harmonic" and "percussive" respectively. Switch between takes to hear the original, percussive, and harmonic content. You can explode the takes from the item and mix the content (including using pitch shifting or other effects on the harmonic or percussive content separately).

Note: for maskingmode 2, there's another output of "hpss-r" (for "residual"). I haven't found maskingmode 1 and 2 to be useful for me so far though. The documentation mentions something about the output having more artifacts and that it's planned to have some smoothing for them, but it's "in development".

With the right settings it's quite something. I've used various methods to deal with percussive aspects or "ringy" harmonic content, but this sounds more natural. It's not based on compression of one frequency band, or a few bands, of signal that exceeds a certain level threshold; nor is it a static EQ. It analyzes what's percussive and what's harmonic about a sound, and separates them according to the parameters you set. The only thing that bothers me is how I have to keep trying over and over to get the best settings. The script doesn't save presets either, or allow an audition of the settings.

There are other algorithms too, aimed at transients specifically. I haven't used those yet.

See that "reacoma" link in the first post (the second link) for adding this functionality to Reaper as scripts.

Last edited by JamesPeters; 04-13-2021 at 01:23 PM.
JamesPeters is offline   Reply With Quote
Old 04-13-2021, 02:50 PM   #12
junh1024
Human being with feelings
 
Join Date: Feb 2014
Posts: 240
Default

Quote:
Originally Posted by JamesPeters View Post
I don't think so. It looks as though it might be capable of something similar to a degree (a portion of the functionality I want)...if it were complete and able to be built. Plus it seems as though the development is in limbo.

Check the first link in the first post for an example of what I'm talking about. There are audio examples there. It's fairly specific.
Ive used dtblkfx in the past for various tasks, it doesn't need to be updated if it works & is complete. If you did a web search, you would find builds https://rekkerd.org/dtblkfx/
__________________
REAPER 2D/3D Surround suite: Instructions & Download | Discussion | Donate
junh1024 is offline   Reply With Quote
Old 04-13-2021, 03:39 PM   #13
JamesPeters
Human being with feelings
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 3,943
Default

My mistake! I didn't see that there was a single 64-bit Windows binary release on that Github page. (Better than using the one from Rekkerd which is 32-bit.) It works with Yabridge in Linux (which is what I use), so I was able to test it.

Well it's interesting, and it uses FFT, but I don't see how this will help me achieve the goal of the HPSS functionality. Maybe it's my lack of understanding of the tool, but I've tried all the presets, then messed around with the various algorithms, and none seem to lead me in that direction.

If you can find a setting that performs something like the example of HPSS in the first link of my first post, I'd like to know what that setting is.
JamesPeters is offline   Reply With Quote
Old 04-13-2021, 03:54 PM   #14
Vagelis
Human being with feelings
 
Vagelis's Avatar
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 3,797
Default

Yes github hosts a 64 bit version, i didn't post the releases section before, but even if it doesn't fit your purpose, it's a little gem for many creative uses

Btw when you turn a fader it shows up fine and coarse controls, you can move each one by moving the mouse above them. Also try messing around with the bands and the amount of each function.
Vagelis is online now   Reply With Quote
Old 04-13-2021, 04:18 PM   #15
JamesPeters
Human being with feelings
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 3,943
Default

Yeah I figured out the fine/coarse thing after a couple seconds of it seeming jarring. It's clever. I adjusted a lot of settings of various algorithms, and the bands. Mostly I got weird sounds. Nothing like what I was doing with HPSS though.
JamesPeters is offline   Reply With Quote
Old 04-13-2021, 04:18 PM   #16
eq1
Human being with feelings
 
Join Date: Sep 2011
Location: PNW, USA
Posts: 655
Default

Quote:
Originally Posted by JamesPeters View Post
That's one use. The output of the HPSS script...
Thanks, that's a great description. Sounds worth looking into...
eq1 is offline   Reply With Quote
Old 04-13-2021, 05:28 PM   #17
junh1024
Human being with feelings
 
Join Date: Feb 2014
Posts: 240
Default

Quote:
Originally Posted by JamesPeters View Post
Well it's interesting, and it uses FFT, but I don't see how this will help me achieve the goal of the HPSS functionality.
Probably not, since HPSS seems quite sophisticated, but you can try the reducing contrast in contrast mode but will prolly change other things too.
__________________
REAPER 2D/3D Surround suite: Instructions & Download | Discussion | Donate
junh1024 is offline   Reply With Quote
Old 04-13-2021, 05:52 PM   #18
JamesPeters
Human being with feelings
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 3,943
Default

Yeah I think I'll just use HPSS. Even when I choose "bad settings", it does the job it's intended for. When I choose better settings, it does a very good job.
JamesPeters is offline   Reply With Quote
Old 04-15-2021, 09:48 AM   #19
tspring
Human being with feelings
 
tspring's Avatar
 
Join Date: Jan 2007
Location: Eastern shore of Maryland, USA
Posts: 1,484
Default

James,the Reacoma suite really seems to me to have a lot of potential. In its currrent incarnation, is it stable and time efficient enough for periodic use in a commercial studio, based on your experience? I am thinking especially of the case where the studio receives tracks to be mixed and/or mastered that were recorded under suboptimal conditions that result in unpleasant overtones and ringing in drums need to be tamed.

T
tspring is offline   Reply With Quote
Old 04-15-2021, 11:51 AM   #20
JamesPeters
Human being with feelings
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 3,943
Default

Quote:
Originally Posted by tspring View Post
James,the Reacoma suite really seems to me to have a lot of potential. In its currrent incarnation, is it stable and time efficient enough for periodic use in a commercial studio, based on your experience?
¯\_(ツ)_/¯

I mean, it does work without any problems that I've noticed. But it works in a fairly specific way, requiring you to try different parameters and make new files each time. You'll notice the goal of my original post was to be able to have a way of hearing this "realtime" while adjusting parameters. I'm guessing, after reading more about it and watching some videos, that plugins with these specific algorithms won't be feasible. The next best thing: I added a request on the ReaComa Github page for a way of previewing the effect before committing to creating new files/takes (or at least the possibility of saving presets).

Also with Reaper's ability to make custom actions, I'm sure I could use HPSS in a somewhat friendlier way for my desired workflow.
JamesPeters 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 08:13 AM.


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