Multiband transient detection

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

I’ve already implemented this with some success, but it was a very rough and quick implementation. One thing I’ve been researching a lot recently is transient preservation in limiting or compression. I was inspired by the comparison someone made with FL Studio’s default limiter vs Pro-L. In my own comparisons, I labeled Pro-L as the best in the limiters I was testing, and I labeled FL’s limiter as one of the worst.

One of the biggest differences was transients, and it makes complete sense. If I compressed the transients “channel” separate from the channel with no transients (input-transients), perhaps I could get a cleaner sound. This is all speculation and I apologize if this sounds stupid.

So what would be the best way to detect the transients using a multiband approach? I choose to use multiband because transients don’t necessarily occur on the entire frequency spectrum. My current method analyzes transients (uses a slow envelope and fast envelope and finds the difference plus a little extra) on a given band and generates a “score” for how much it thinks the given sample is part of a transient. I can then add all of the scores from the bands up and average them, giving a normalized score of 0 -> 1 that can be used as a mixing variable (input * score = separated transients).

This algorithm yields ok-ish results. I tested it on a drum loop with transients of varying volume, found some things of interest:
- Loud transients were detected pretty much perfectly
- Quiet transients had trouble being detected

Any suggestions on improving this?

Return to “DSP and Plugin Development”