Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Restoring transients/loud parts on loud recordings, my method (Read 7379 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Restoring transients/loud parts on loud recordings, my method

...or dynamic range expansion if you want to make it shorter.

If TL;DR, the direct link to my how-to is here: [Moderation: link removed]

You might think I'm a clueless guy who just discovered both this forum and a magical VST plugin which pretends to fight the loudness war by performing some impenetrable magic and want to brag about it, like when you're a child and just found out something you think is really cool and want to show your find to your friends/parents/relatives/whatever.

But that's not the case. I'm actually concerned by the loudness war since 2008, which is roughly the time I became really aware of it.

I also followed with interest restoration attempts made by enthusiasts using VST plugins such as Dominion or declippers, with rather mixed results and limited success. But those attempts are starting to feel dated by now and I'm quite surprised nobody ever tried again since (or I didn't search well). I even visited the Justice For Audio forums at some point (but rarely came back due to laziness). Too bad they don't exist anymore.

That's why I'm here. During all those years, I tried to understand how I could use transient shapers like Dominion and still minimize any kind of artefact or unwanted effect a transient shaping or expansion would be responsible of.

The key is in fact in reversing the process of multi-band compression by... performing multi-band transient restoration (which purpose is indeed increasing the resulting dynamic range of the recording).

Basically, you create multiple instances of your audio material where you band-pass carefully selected frequency ranges. You try to target the ones which actually contain transients. In fact, the purpose is to isolate where transients are and trying to perform restoration there. This can be done using a spectrum analyser (nothing new here) or by doing some trial and error, like I do.

After performing transient shaping, you subtract the transient shaped audio with the unshaped one, so you get some sort of "expansion matrix". You do that for each frequency range. Also, band-passing your isolated transient shaped instances a second time is particularly useful in order to minimize any kind of audible artefact. The final process consists in mixing all your isolated transients instances back to the original audio (which has been previously reduced a certain amount of dB indeed).

I've basically summed up my process. If you want it more complete and detailed, it's here: [Moderation: link removed]

To me, this process had the opportunity of giving me very pleasing results on countless songs (of any genre), whether mildly or severely affected by hyper-compression and limiting. The example I chose for my process here might not sound that good to you (I linked to a second attempt I made earlier which sound a bit better to my tastes) but I'm really sure you can produce wonders if used carefully and properly. I'm sure this process gives the most transparent results to this day.

However, as I'm not perfect and probably missed a lot of things, it's possible that I'm a bit overconfident and look somewhat disconnected from reality. I'm aware of that. So if anyone has high-end equipment and can still pick up artefacts, pleas let me know. I'm sure my method is one of the best, but I may be terribly mistaken in fact.

Even if my method isn't the best, I hope it can at least pave the way to more efficient transient restoration. Of course, I'm aware you can't recover anything that's been lost, but what I do is approximating how a particular songs sounded prior to limiting or aggressive compression.

Re: Restoring transients/loud parts on loud recordings, my method

Reply #1
Obviously the proof of the pudding is what the results sound like. Unfortunately I was unable to download any of your files without installing potential malware on my computer.  I tried to skip it, but I ended up with nothing.

Re: Restoring transients/loud parts on loud recordings, my method

Reply #2
Well it looks like 4shared isn't what it used to be anymore and even requires registration now! (I didn't set any restrictions to the files)

I may host the files elsewhere later. I'll notify this post and update the links present on my blog article (I can't post them here directly due to possible copyright infringement).

Re: Restoring transients/loud parts on loud recordings, my method

Reply #3
I may host the files elsewhere later. I'll notify this post and update the links present on my blog article (I can't post them here directly due to possible copyright infringement).
You won't be able to post links to files hosted elsewhere for the same reason.

https://hydrogenaud.io/index.php/topic,3974.html

See #9, but know you'll be held accountable to all the rules, in the event that they were glossed-over.

Re: Restoring transients/loud parts on loud recordings, my method

Reply #4
I'm not anyone on how to download copyrighted material (I know that might count even for a small doujin circle such as this one). I'm only using this song as an example. However, I can post shorter excerpts if it is permitted.

Edit: posting 30s excerpts is apparently tolerated, so I'll probably revert to doing that instead

Re: Restoring transients/loud parts on loud recordings, my method

Reply #5
Our forum is capable of hosting these files.  It is always preferable to do this than use some 3rd party commercial site, especially those who employ dubious practices.

Re: Restoring transients/loud parts on loud recordings, my method

Reply #6
I updated my links to shorter 30s excerpts emphasizing some parts of the song.

Attached are respectively the expansion example using the method of my how-to, the original audio reduced by 6dB and an earlier expansion attempt I did which sounds a bit better to my ears.

However, it's a bit stupid to remove the link to my article as I edited the download links in the meantime (forget that, I now perfectly understand the potential trouble it may run into on a general use forum such as this one). Please tell me if it's OK to repost it now (my blog isn't about sharing anything illegal) and/or if I can edit my first post.


Re: Restoring transients/loud parts on loud recordings, my method

Reply #7
However, it's a bit stupid to remove the link to my article as I edited the download links in the meantime.
It's a bit stupid to:
1) post without reading the rules
2) assume moderators are going to review your article to make sure it complies with this forum's rules.

Please tell me if it's OK to repost it now (my blog isn't about sharing anything illegal).
I'll take you at your word since you went through the trouble to complain that your link was removed after you made an effort to conform to fair-use practices.



Re: Restoring transients/loud parts on loud recordings, my method

Reply #8
I concede forums aren't my cup of tea. Since I can't see any other method of sharing this method efficiently, I tried to find some places where I could do so. If there are any loudness war or dynamic range specialized forums, that's fine, I'll go there. For the moment, I can't find any. I posted here since I thought it was worthwhile. However, I can be mistaken.

My apologize for the trouble caused. By the way, I wasn't complaining. I might not have used the appropriate term.

Re: Restoring transients/loud parts on loud recordings, my method

Reply #9
Discussion of your methods and providing samples are welcome.  Posting in violation of the terms you agreed to follow when registering is not.

I might not have used the appropriate term.
Referring to an effort to protect this forum from punitive action as "a bit stupid" might not be the most appropriate term, that is correct.

Re: Restoring transients/loud parts on loud recordings, my method

Reply #10
I perfectly agree. Now that the article is clean of any suspicious external link source, I'm reposting the original article, as it was in my first post, if you want to read my complete method:
http://dioxaz.free.fr/?p=232

Re: Restoring transients/loud parts on loud recordings, my method

Reply #11
...and new expansion and -6db original sound the same to me.
Maybe I'm too old :)
Error 404; signature server not available.

Re: Restoring transients/loud parts on loud recordings, my method

Reply #12
Here's a more drastic example. Damnaku Advisory by Tokyo Active Neets. I had to reduce the volume by 10dB (!) for this one.

I did it when I was trying to perfect my method and started to discover about isolating transients further and noise-gating them. That's why I only focused on drums here and left the rest (all musical instruments still sound pretty flat and tinny).

First sample is dynamic expansion. Second one is the original song turned down by 10dB (edit: in order to level-match them indeed). Unlike what the file names say, they're both 16-second continuous excerpts.

Also, for those who want to compare, those excerpts are sample-aligned, unlike the ones I made earlier, in a relative hurry.

Re: Restoring transients/loud parts on loud recordings, my method

Reply #13
They should also be level-matched, though in this case efforts should be taken to ensure levels are matched for the portions of the audio that are unaffected (or least affected) by processing.

Re: Restoring transients/loud parts on loud recordings, my method

Reply #14
Indeed they are. Since the first thing I do is reducing the overall volume to something that I think is suitable.

Some of the older of you might remember those early restoration attempts done by some members circa 2007-2008 when Dominion was pretty new.

Here's one of them:
https://hydrogenaud.io/index.php/topic,60616.msg542224.html#msg542224

In the first post, there's a sample on Keane's Somewhere Only We Know. I never really liked that attempt since it revealed many distracting and jumpy artefacts, typical of Dominion operating on unfiltered audio (since it's made for short isolated samples originally, not long complex songs).

I decided to take care of that same song and see what I can do with my method. Here's a summed up but detailed description of what I did:

First is reduction by 6dB. Then I proceed to creating several band-passed instances (I'm only fully detailing the bass one here):

Bass (band-passed to 0-173Hz)
1. Copy band-passed audio still untouched to the clipboard
2. Apply Dominion with following settings: attack volume -1.5dB, attack level 50, attack length 5ms
3. Delete 101 samples at the beginning to compensate for its VST delay
4. Paste-mix with inverted phase what has been copied in 1.
5. Noise-gate (GGate VST) with threshold -18dB, attack 5ms and fade 0.01s
6. Band-pass a second time to 0-173Hz

Lower midrange (173-428Hz)
Steps 1, 3 and 4 are identical to bass
2. Apply Dominion with following settings: attack volume -1.5dB, attack level 50, attack length 5ms
5. Noise-gate (GGate VST) with threshold -18dB, attack 5ms and fade 0.01s
6. Band-pass a second time to 173-428Hz

Upper midrange (428-2020Hz)
Steps 1, 3 and 4 are identical to bass
2. Apply Dominion with following settings: attack volume -1.5dB, attack level 23, attack length 5ms
5. Noise-gate (GGate VST) with threshold -18dB, attack 5ms and fade 0.01s
6. Silence out portions that match the quietest parts of the song and therefore don't need to be touched (generally, bits that are lower in level than actual loud parts and may introduce unwanted jumps on those parts)
7. Band-pass a second time to 428-2020Hz

Highs (after 2020Hz):
Steps 1, 3 and 4 are identical to bass
2. Apply Dominion with following settings: attack volume -1.5dB, attack level 25, attack length 5ms
5. Noise-gate (GGate VST) with threshold -30dB, attack 10ms and fade 0.15s
6. Silence out portions that match the quietest parts of the song and therefore don't need to be touched (generally, bits that are lower in level than actual loud parts and may introduce unwanted jumps on those parts)
7. Band-pass a second time to after 2020Hz

The final step is paste-mixing all those treated instances back to the original audio that has been reduced by 6dB before.

This is an interesting example because it has heavy limiting on it and thus sounds very tinny. Even my attempts weren't enough at restoring everything. What was successful however was all short transients. Longer transients and loud portions were apparently harder to pick-up for Dominion, even with several band-passing (in fact, band-passing makes Dominion work much easier and makes it more efficient). Some flat-topped areas still remain.

I'm providing 3 15s excerpts of my transient restoration work. Both match the section used in that 2008 thread I linked above. First is the original, reduced by 6dB. Second is my expansion attempt. Third is actually the difference between the 2. Indeed, they're all sample-aligned and level-matched. I'm also adding the original attempt of that thread (30s sample with first audio untouched then expanded) as a reference since it's not available anymore.

Indeed, this is only my method and my settings. Probably better can be done for that song, with more careful settings (there are some parameters that I'm always overlooking and not touching at). Now you can train yourself with another song (or the sample I'm providing) if you want to have fun.

Re: Restoring transients/loud parts on loud recordings, my method

Reply #15
...and new expansion and -6db original sound the same to me.
Maybe I'm too old :)
I find the differences to be too subtle to be worth the effort that was put into the files.
After all that it still sounds compressed to me. I guess I'm too old too.


Re: Restoring transients/loud parts on loud recordings, my method

Reply #16
It also depends on how the song was mixed originally. When doing that kind of restoration, I tend to preserve the original texture of the song as much as I can and don't want to introduce loud boosts when there weren't any to begin with (that's the most difficult and challenging part of the exercise). Sadly, songs may sound too compressed today and it affects almost every genre. We unfortunately can't do much about that.

Also, this was more about suggesting a protocol and I'm sure one can do miracles if more careful and involved than I am (indeed I'm aware I may have come 6 years too late and all this might not interest like it did in the past).

But I still suggest to listen to my other samples, notably the Keane one, when I actually made a sample highlighting the difference between the original and the expansion attempt.

I'll continue anyway to provide samples and suggested settings.

Re: Restoring transients/loud parts on loud recordings, my method

Reply #17
Yes the drums are more dynamic the differences are obvious. I did such things with Waves Trans-X in the past. Glad to see how you achieve similar effects with freeware.

Code: [Select]
foo_abx 2.0.2 report
foobar2000 v1.3.11
2016-12-16 16:08:39

File A: Somewhere Only We Know (expansion attempt - 15s).flac
SHA1: 54c9d729f95cc9b485818795b7a1d448276aaed2
File B: Somewhere Only We Know (minus 6dB - 15s).flac
SHA1: 88ed9405f4ef0c72c85e55eda7f5d2ff4c49c6ec

Used DSPs:
Resampler (SoX) mod, Convert mono to stereo

Output:
ASIO : Creative ASIO
Crossfading: NO

16:08:39 : Test started.
16:09:21 : 01/01
16:10:46 : 02/02
16:11:07 : 03/03
16:11:57 : 04/04
16:12:16 : 05/05
16:12:49 : 06/06
16:13:07 : 07/07
16:13:34 : 08/08
16:13:52 : 09/09
16:15:20 : 10/10
16:15:51 : 11/11
16:17:14 : 12/12
16:17:47 : 13/13
16:18:12 : 14/14
16:18:57 : 15/15
16:19:22 : 16/16
16:19:22 : Test finished.

 ----------
Total: 16/16
Probability that you were guessing: 0.0%

 -- signature --
b69acf686988da0116a90f9d10c9cf973464daae

Re: Restoring transients/loud parts on loud recordings, my method

Reply #18
Thank you for the feedback. There must be plenty of transient shapers available at the moment and probably some of them can actually operate on separate frequency bands at once (I'm not sure if Trans-X can work this way). I'm mainly sticking to Dominion because of habit. I'm under the impression of having more control (isolated and gated transients can then be tweaked individually and independently, some can be increased, some decreased, some can be copied and pasted elsewhere, etc). This method looks tinkered and clumsy for sure but has given me excellent results during years after perfecting it.

I attempted another case, and a severely affected one this time. It's Illusion by Benassi Bros. I'll do a very short sum up of what I did. Method is the same as for the Keane example.

The frequency bands I isolated are 0-173 (bass), 173-735 (lower mid), 735-2023 (higher mid).

The Dominion settings are the following:
- bass: attack level -1.5, attack volume 50, attack length 5
- low mid: attack level -1.5, attack volume 35, attack length 5
- high mid: attack level -1.5, attack volume 35, attack length 5

The GGate settings are the following:
bass: threshold -21dB, attack 5ms, release 0.01s
low mid: threshold -32dB, attack 3ms, release 0.1s
high mid: threshold -30dB, attack 2ms, release 0.1s

If you want to try for yourself, don't forget all the intermediate steps (copying band-passed instance before applying Dominion, deleting 101 samples at beginning of audio after applying Dominon, paste-mixing previously copied band-passed instance before applying GGate). Then you'll be able to paste-mix all your treated instances back to the original (and volume-reduced) song.

Here are screenshots of waveforms highlighting the differences between the 2 samples I'm providing (15s of original turned down by 10dB and my expansion attempt -- samples will come later as file attachment appears broken at the moment, or I might not have sufficient rights):


First is zoomed out and second is a close up on a nicely "restored" transient.

Notice how the quietest parts are almost virtually untouched. There's a slight EQ shift with this attempt, I acknowledge it. This might be because I mixed my treated instances at 130% instead of the 100% in order to make the changes more obvious. Sometimes, expansions attempts like this one might need EQing afterwards. There's also a pumping effect, but it was already there on the original to some extent.

Probably better can be done by balancing more carefully as usual, but this method actually works really well with dance music, bacause of the predictability of transients (electronic sounds, mainly drums, and especially TR-909 ones, often have their transients one the same frequencies).

For some reason, I can't upload any sample for the moment, as I'm getting the following error:
Quote
There was a problem during the uploading of XXXX
Your attachment couldn't be saved. This might happen because it took too long to upload or the file is bigger than the server will allow.

Please consult your server administrator for more information.
I'll probably do it later. In the meantime, have fun trying to perform the same thing yourself, if you happen to own the album (Benassi Bros - Pumphonia, 2004) or have a copy of song.


Re: Restoring transients/loud parts on loud recordings, my method

Reply #20
The slope is a side effect (I'm not focussed on declipping here). I'm indeed aware of the fact that flat slopes instead of flat tops don't remove clipping, as it's just a some kind of frequency shift I presume (although you won't have what's on the second picture).

There was also huge clipping on that song and indeed Dominion didn't do better than this on large clipped areas, as it can't recover a typically clipped area (on short clipped areas, the illusion of declipping can work to some extent). However, transients were indeed made louder.


Re: Restoring transients/loud parts on loud recordings, my method

Reply #22
Trans-X has full-band version and multi-band version. The multi-band version works somewhat similar to your method. A google search will show some screenshots and some poorly made demo videos.

I visited your homepage and found that you should be using Adobe Audition 1.5, so I should correct my previous post since not all of your tools are freeware. I see you used the FFT filter to separate different frequency bands and use the mix paste command to combine them after applying individual tweaks in different frequency components.

There are simpler ways to do such things. For example, get Reaper (not free, but much cheaper than Audition):
http://reaper.fm/

and use a crossover plugin like this (free):
https://www.kvraudio.com/product/crossover_by_rs_met

Reaper supports multichannel output from stereo input with VST plugins so you don't need to manually split the source into multiple files, you can apply multiple instances of Dominion and gate plugins, for example, in a non-destructive way (insert) at different output buses.

Anyway, tools are only tools, the important thing is the human who operates it. If you are comfortable with your workflow and results there is no reason to change. However I personally prefer a simpler workflow.

By the way, I would say these things as enhance/tweak/remaster rather than restore.

Re: Restoring transients/loud parts on loud recordings, my method

Reply #23
bennetng: Thank you for your infos. The method should work with any tools, not just Audition (I'm simply using it because of habit, I will try if I can have an easier workflow). In Audacity for example, you can use a combination of high and low pass filters (with rollofs set to 48dB). Ideally, the sound editor used should have a bandstop/bandpass filter.

greynol: Probably. Dominion introduces a bass shift of some kind (phase or delay) which gives you those slopes. So you have to be careful when dealing with bass. I try to minimize this by putting a higher threshold on gating but sometimes it's not enough. In theory, clipped areas should remain flat, even after transient shaping (and no, damaged audio by clipping requires a bit more than just transient shaping).

In fact, performing Dominion with all default settings on non-filtered audio will give you those slope-like clipped areas and simply make the waveform look better when zoomed out. When seeing that, many people may think that there is some improvement where there is in fact none (they're only imitating the signal chain typical of recording vinyl to digital).

Re: Restoring transients/loud parts on loud recordings, my method

Reply #24
Okay, back from my usual laziness. I naively thought all filters were more or less the same, big mistake!! In fact, a standard bandpass is simply not enough for this task. So I took the time to look for a freeware equivalent of Adobe's FFT filter. Or at least something that produces similar results.

The best VST I found for this task, if you want to go the freeware route, is the Dual Linkwitz-Riley filters:
http://www.pcjv.de/vst-plugins/effect-plugins/eqs-filter/

That is unless you have other suggestions (for the moment, I didn't fid any delay-less VST filter).

It can work as both bandpass, lowpass and highpass and can have very deep slopes (although I never go higher than 96dB). My only gripe is that it adds a variable delay, depending on the frequency band you're working on. So you'll have to always find out the delay by yourself if performing what I described in this thread.

In the meantime, I also tried Reaper and the Crossover VST. That thing is awesome. Splitting frequency bands in real-time and applying Dominion to each of them does bring a real comfort. However, if you want results as good presented here, you need to freeze your tracks several times. So for the moment, it doesn't bring anything more to using Audacity in its place to my eyes.

So for the example I'm showing here (Mike Posner - Cooler Than Me, legal download from Qobuz), I'll post result excerpts from both Audition and Audacity. Obviously, in Audacity, I have to split my frequency bands into several tracks and am using Dual Linkwitz-Riley filters instead. I also have to merge tracks at some point in order to produce the same effect as Audition's Paste-Mix (merging an expanded frequency band with its untouched equivalent inverted, after finding out the delay introduced by the Dual Linkwitz-Riley VST).

Just for info, the frequency bands (indicative) I isolated and suggested settings for VSTs:

Lows (0-180Hz):
- Dominion: attack level at 50
- GGate: threshold at -21

Lower mids (180-610Hz):
- Dominion: attack level at 35
- GGate: threshold at -27

Higher mids (610-1700Hz):
- Dominion: attack level at 35
- GGate: threshold at -27

Highs (1700-20000Hz):
- Dominion: attack level between 25 and 35
- GGate: threshold at -27

Recall:
- If using Audition, before performing Dominion, copy the audio of the frequency band untouched into clipboard and paste-mix it after applying Dominion and deleting 101 samples (92 if operating on frequencies below 180Hz) to cancel out Dominion's delay. Now you can apply your GGate and use the FFT filter a second time for increased transparency.

- Now if using Audacity, you must have 2 duplicated tracks of your working frequency band. One on which you will apply Dominion and one with only the Dual Linkwitz-Riley filter applied, in addition to a track of the original song, untouched (with only its volume reduced). For the moment, you only have one track with your song and one track on which you applied your filter. Don't duplicate it yet. You must find out how much delay it added to your track, compared to the original song. Don't hesitate to zoom in very closely in order to observe waveforms of both the filtered track and the original song. Once you found out an obvious spot, you can delete the quantity of samples that are needed on the filtered track. Both should line up perfectly. Once it's lined up, you can duplicate this Dual Linkwitz-Riley filter track for later. Apply Dominion on the first Dual Linkwitz-Riley track and delete 101 samples at the beginning. Invert the second Dual Linkwitz-Riley track. Now merge both the effected track and the filtered-only one. Now, if the delay previously found was correct, only expanded loud parts should remain. Now you can apply GGate on this track and repeat this process for another frequency band. Don't hesitate to apply a second Dual Linkwitz-Riley after gating for increased transparency (but you'll have to cancel out its delay again by the same amount as before).

Obviously, the process in Audacity is more tedious and cumbersome than in Audition, but produces very similar results. It also proves you can achieve very transparent results, even with freeware only tools.

I'm posting 15 seconds excerpts of Mike Posner's song, untouched first (reduced by 6dB), then processed with Audacity and Dual Linkwitz-Riley filters, and then with Audition and it's delay-less FFT filter. I know it's synthpop again and it's easy material to work with (also, it was only mildly affected IMO) but I think it does still work very nicely and has short transients which make the expansion more obvious. Also, the Audacity attempts yields some volume shifts in the midrange. That's because I was a bit careless with the mids. You can minimize that by turning down the mixing volume of one or several of your bandpassed and expanded tracks (one advantage over Audition if using the editing part instead of the multitrack one).

I'll probably post one more example (some brickwalled orchestral stuff) and stop here, as you all (readers of this thread) know how it works by now. Unless some of you want specific examples.