Ultrasonic
TL;DW: Ultrasonic is a very clean, plain, high quality supersonic filter, for using inside digital mixes.
Now here’s a handy little utility plugin… sort of the ultimate Airwindows plugin, not only does it not have an interface, it doesn’t have a sound! :D
Here’s why you should care… especially if you work at high sample rates.
Aliasing in digital mixes is annoying. You typically don’t hear it directly, but it coarsens and flattens the mix, throwing all sorts of funny harmonics in there at random frequencies, like subtly ring modulating everything (the aliased harmonics go off on frequencies not related to the original notes, and clash). It’s often very subtle, but it turns up everywhere you have nonlinearities. If you distort stuff in digital mixes, you run straight into aliasing problems. Same if you compress, or do anything nonlinear… and even if you make a mix as pristine and minimal as possible, if you’re mixing in the Airwindows Console system that uses nonlinearities too.
You can run at higher sample rates and that gives you more room, you can use soft saturations (like what’s in Console) and that makes the harmonics appear in order so only the highest frequencies will fold back and alias, but it’s in a computer: you’ll always run into the limits of juggling numbers and calling it music, and you’ll experience aliasing through nearly anything you do.
But what if you just took those problem frequencies away?
Ultrasonic is very simple. It has no controls. It’s a really steep lowpass filter at 20K (five poles, and it works out to 10th order Butterworth filtering). Unlike some ‘audible’ Airwindows filters that are supposed to sound interesting, Ultrasonic doesn’t use internal Console processing: that would be a nonlinearity, and defeat the purpose. Instead, it’s a super high resolution very boring and plain supersonic filter, calculating stuff at long double resolution, dithering its result to whatever floating point buss your DAW uses, and otherwise having no sound of its own.
Drop it into your (preferably 96k or 192k) digital mix and it will clean up anything nonlinear that goes after it. This includes Console! Just because Console ‘decodes’ doesn’t mean it can’t be hurt by aliasing of its nonlinearities: it just distorts so gently that it’s not automatically worse, but any aliasing that turns up in ConsoleChannel doesn’t get taken away by ConsoleBuss. Digital only gets worse, not better, and the trick is to make it get worse as slowly as possible while you work with it.
When you use Ultrasonic, for instance on every channel in a Console mix, you trade a degree of rawness and immediacy for an ease and smoothness that is immediately apparent if your stuff is running into nonlinearities anywhere. In many ways it makes the digital mix sound more analog. The tradeoff is, it’s still five poles of biquad filtering, and it will make stuff sound a bit slick, a bit more ‘processed’. You can kinda hear that you’re doing the extra processing, but the texture change is really appealing: stuff sits back (less super-treble will always sound more like the audio ‘sits back’ and is more polite) and bright shiny stuff sounds purer and sweeter. This is all the more true if you’re processing heavily.
It’s very easy to use: just put the plugin before anything that might alias. By itself it should have no sound (though if you have true 96k or 192k audio, it of course is obliterating your real supersonic content). There are no controls and nothing to do, it isn’t itself nonlinear so it shouldn’t interact with anything, you don’t have to gain stage it or pay any attention to it at all. Very plain, simple, hopefully pretty low-CPU for all that it’s five poles of filtering at stinkin-high calculation accuracy.
Put it on everything that you want to smooth out and un-digitalize. Sometimes there’s nothing quite like beating the problem into the ground with a sledgehammer. For frequencies over 20K and the aliasing that loves them, this is that sledgehammer. (It is also biquad filtering, so it runs with zero latency and you can track through it)
All this is supported by Patreon. You can add a dollar to your pledge for each thousand instances of Ultrasonic you use, if you like. (careful, you might find that adding up quick!) :)
Thank You! Such a cool building block!
Brilliant. Do you think it’s worthwhile for mixes at 44.1K?
Chris, please indulge my ignorance, and just enough to be dangerous inklings on this whole aliasing thing.
My guess is that using Ultrasonic in a 44.1 mix isn’t doing anything, in that Ultrasonic is filtering out everything over 20k, which due to the math, isn’t happening in a 44.1 project.
I thought that a part of the aliasing concern is focused on 44.1 mixes, where plugins will introduce fold back of the upper ultra harmonic content they produce back into the audible range (20-20khz), thus creating this nonlinear covering effect, which if you’re using say 88.2 or 96k, these ultrasonic frequencies would be correctly placed above 20K and not folded back as they would be in 44.1k mix.
At first I thought that in a 44.1 mix that perhaps Ultrasound would help by inserting it at the backside of nonlinear plugs, yet again, I think the aliasing damage is already happening inside the plug due to the lower sample rate it’s running at, which Ultrasonic could have no influence over after the fact. Inserting it before the non-linear plug would also do no good in that the input is already at 44.1 (20-20khz), so why bother filtering what’s not there.
I don’t think I understand oversampling, yet my guess is that it helps alleviate aliasing by extending the sample rate internally and thus calculating ultrasonic frequencies correctly and not folding them back to below the 44.1 range. My guess is when in a 44.1 mix that those over 20k calculations would be truncated at the output to meet the 44.1 spec of the mix. e.g., the high harmonics are appropriately calculated by the oversampling and then truncated at the output.
Admittedly, it was difficult to submit this here, in that I may be way off the mark and talking out of a lot of ignorance, or possibly half baked theories that need more study.
Will greatly appreciate any knowledge you care to drop in this direction.
Hey Chris, thank you so much for this plugin.
I tried it on a 48khz mix, applying it before plugins that alias, and holy s***, it made a HUGE difference. The mix sounds WAY cleaner than even the 96khz version (with oversampling applied on all plugins that support it)!
Thank you once again!
Nice one Chris! I found this in the KVR forum looking at one some things that Fabien from TDR wrote. I noticed with was inspired by the vladg sound ultrasonic filter that was proposed a few years ago.
BTW I have noticed some rogue peaks occasionally, which I get a bit worried about sometimes (I’m working at 48khz btw), I could clip them but then I’m potentially introducing more aliasing so its kind of a catch 22. Sounds great on a lot of things but perhaps theres something you could introduce to stop those peaks at the expense of a little more top end?
I recently made a little FIR filter in MaxForLive that I quite like for doing a very similar thing to this, linear phase, transition period of about 1.5khz so kills everything before 22khz, sounds good but at the expense of a tiny bit of ringing (64 samples of latency)… there never really is the ideal filter is there :P
All I do is put this on BEFORE other plugins I want it to affect on each track? I’m sure you’re right, but it seems like magic for it to affect things that come after it in the gain staging.
How I was able to tell what this plugin was doing:
1. Make a sine wave with a tone generator at a really high frequency. 20khz or almost 20khz.
2. Put a saturation/distortion plugin after that (one that aliases)
3. Listen to tone and the extra harmonics.
4. Put Ultrasonic between the tone generator and distortion, and listen if there’s a difference.
In my case (running at 48k sample rate) there was. There was even a slight volume jump, I think probably due to the extra aliasing harmonics. This is hard to notice if you’re using a tone at lower frequencies, but most full mixes and individual instruments have frequencies in the full audible range anyway.
@Philip Rampi
I know that comment was from last year, but for later readers and you should you read this: Ultrasonic gets rid of ultrasonic frequencies, https://www.britannica.com/science/ultrasonics, that may cause IMD (Inter Modulation Distortion, https://www.everythingrf.com/community/what-is-intermodulation-distortion), which is potentially there when you’re using oversampling to get rid of aliasing and there is content above 20k.
Do you have a version that will run natively on Apple Silicon ARM-based Macs?
Disregard that comment above. It looks as though you do in fact offer an M1 Mac native version. Awesome. Thanks!
How do you install it? I sse “Ultrasonic.component” in the dmg, but I can’t do anything with it.
14 months later … Still hoping to get instructions as to how to install it. I placed it in my Library/Audio/Plugins/Components folder and rescanned all of my plugins, but Logic never picks it up. What am I doing wrong?
Help?
Isn’t that ultrasonic filter defeating all the purposes of Hi-Rez music?
If anyone is going to hear the difference this plugin makes, it will be the very younger folk.
By default, as you get older, you lose the ability to hear the higher frequency ranges.
This is why, in the UK, some places have antisocial measure devices that give out a very high pitch tone which is designed to be heard by a younger generation. Normally those who like to gather around shops for example.
You can also see this in action with cat repellant devices placed around ponds.
Designed, again, so that the noise is just unbearable for most cats so they don’t linger… these too can be heard by younger folk.
The only issue I would be worried about using this device is… does it affect the phasing of the effected channels??
That being said, I still appreciate the idea of this little device… it would be awesome to have a 2 in 1 device that also cuts ultra lows, if this does not already :)
Cheers again Chris!