Menu Sidebar
Menu

Chris

Hi! I've got a new plugin you can have! These plugins come in Mac AU, and Mac, Windows and Linux VST. They are state of the art sound, have no DRM, and have totally minimal generic interface so you focus on your sounds.

NaturalizeDither

TL;DW: Deterministic dither uses Benford Realness calculations for each sample.

NaturalizeDither

Last and definitely not least in the dither-fest: Naturalize! This dither is often considered best by listeners. It works on every genre, at every sample rate. It adds no tonal color to the audio, and the noise it produces is quiet… but more than quiet, the noise of Naturalize has a fugitive quality where it seems to ‘hide’ behind the reverb tails, and once you start listening to the music it’s difficult to hear there’s any noise present. The sense of reality produced by the music is compelling enough that it doesn’t draw attention to the noise floor at all.

How can this be? I kept the secret for eight years but now that Airwindows is supported by a Patreon, I’m free to communicate how I did it, because my compensation is basically ‘the number of people out there who think I ought to keep working in this field’, and the more of those the better. I don’t have to keep Naturalize just to myself anymore, because it helps the Patreon when I’m generous. So, go ahead and download and use it for free (it’s running at 24 bit, use BitShiftGain to get 16 bit out of it) and here’s how Naturalize works.

Benford’s Law is a statistical technique: basically, it says that in lists of natural data, if you get rid of all the leading zeroes, the first digit other than zero is most likely to be ‘one’. That’s no matter what scale the number is at: no matter how many zeroes you have to take away to get to the first number, it’s more likely to be ‘one’ than, say, ‘nine’.

In fact, it’s ‘one’ thirty percent of the time, and the other leading digits are progressively rarer. How much rarer? I’ll give you a piece of the Naturalize code and the numbers I’m using.

byn[0] = 1000;
byn[1] = 301;
byn[2] = 176;
byn[3] = 125;
byn[4] = 97;
byn[5] = 79;
byn[6] = 67;
byn[7] = 58;
byn[8] = 51;
byn[9] = 46;

This works on sample data that varies in logarithmic scale: fortunately, audio is already that way. Something like a reverb tail is perfect for Benford realness calculations! As the sound dies away, it SHOULD fall into just this sort of pattern: millions of sample numbers, scaling down to tiny near-zero values. It ought to be the perfect picture of Benford’s law.

Here’s what Naturalize is. Every sample can be truncated in two directions: up or down, to the nearest value. So we do both, and then we run the Benford’s Law calculation on each, and we see which choice will get us closer to that perfect ‘realness’ distribution.

Then we just choose that direction :) that’s it! Each sample, we always choose the direction that will bring us closer to Benford’s Law.

This works on a statistical basis, to produce a collection of sample values that hold to what you’d get if you directly sampled ‘reality’. It erodes unnatural qualities in the digital audio, and it’s pleasing to listen to. There’s no excess energy to worry about: it’s always within one least significant bit of the target audio. And I might be able to improve upon it (I initially remembered it as having no noise sources at all, but it’s using some noise to shake up the values a bit for better distributing) but as 2017 begins, doing this gives you the best sounding dither in the world. I’d be happy to see if I can make it even better: support my Patreon, after all I came up with this thing in the first place, stands to reason I can develop it even further. Maybe I’ll make it entirely deterministic, with no noise at all. I’m sure I tried that already, but sometimes persistence pays off.

Happy holidays, I’ll have a little present on Sunday for you, and I hope things are well :)

NodeDither

TL;DW: The testbed for the TPDF-based dithers. Flanger dither!

NodeDither

And just one more dither plugin before the eagerly anticipated Naturalize… (because who will care about these then?) …NodeDither, the testbed upon which PaulDither and TapeDither were developed!

I still think it’s good to have those as separate plugins (for simplicity and purity of concept) but since the concept is ‘TPDF made up of a sample of noise, and then a delayed version either normal or inverted’, how can I not give out the tool I used to find things like TapeDither? This was coded to do something that wasn’t possible: put a big delay in so there’s a ‘cancellation node’ at around 1.5K, making the noise quieter there.

Trouble was, all you get is comb filtering and no nice clear ‘quieter’ zone. That’s why I experimented and found that four samples delay (inverted) gives you TapeDither, a nice softer noise. One sample inverted gives you PaulDither (in other words, a very bright one-pole highpass). Two samples gives you a neat silky texture which is still very bright. Eight samples gives you a thing kinda like TapeDither but even darker and beginning to sound flangey… you might call it CassetteDither, or maybe ‘TapeDither for 96K’.

Call it what you like, because NodeDither lets you use all those and anything else, up to really extreme delays that give heavy, heavy comb filtering (flangeyness). You can reinforce lows rather than cancelling them through out-of-phase, and dial in dark moody dither noises that fit better with your project. You can tune the flangey note of the dither to your track. All manner of silly things can be yours with NodeDither :)

And yes, you can make your noisefloor a flanger. I’ve demonstrated in the video how to do this with automation. If people really REALLY need a flange dither, I can make one later, but Naturalize will not be delayed any longer and is due to come out this Wednesday. But hopefully the possibilities of NodeDither are worth having! Or, put it this way: if NodeDither is for you, you know who you are and you’ve probably already downloaded it and are playing with the controls and thinking of how it would affect your creations.

Because, bottom line: this is still technically correct TPDF dither. It’s just also an instrument, now. Have fun playing it :)

The concept of a standard TPDF dither that’s also an instrument was brought to you by my Patreon: if enough people get involved in this, I can live or even invest in further experiments. Airwindows Console4 only happened because I was able to study a real analog desk (an Allen & Heath) and drive it with a nice multichannel DAC (a MOTU 16A) and study the results. The more money I make, the grander the experiments can become… and of course there’s extra stuff on my YouTube channel, live streams that are only announced to my Patreon patrons. (I suppose you could just hover over the channel, or search it, but I’ll make a point of alerting the Patreon crowd when I do something like that.)

The most recent (okay, first) live stream was hacking a Xiaomi Yi action cam, and making the mic better, so there was some audio content! It also involved un-gluing the lens so it could be removed, and installing a deadcat wind sock for outdoor use. I’ll try to keep a steady flow of unusual things happening on the Airwindows youtube, though most of them cannot be announced in plugin forums. Next, hotrodding my already hotrodded Squier J-bass to add a Artec mudbucker pickup! This was inspired by Rick Laird of Mahavishnu Orchestra. Only then did I learn this was also the pickup complement favored by Cliff Burton… I’ll post to patrons when that livestream is ready, and you can see the radical things I’ve already done to the J, and hang out while I do the work :)

TapeDither

TL;DW: TPDF variant with noise like reel-to-reel tape.

TapeDither

I thought I had it all worked out. Put out a proper, well-coded TPDF dither, the highpassed variation on it I’ve called PaulDither, and move on to the fancy boutique stuff.

But there was this one experiment I had in mind. If you could do the highpass by delaying and then subtracting the random noise (and it gained you a bit of efficiency in the bargain), why not delay it more? It’d create comb filtering, a cancellation node. Why not keep delaying until the cancellation node dropped right down to around 1.5K?

Surely this would give me a nice cancellation notch right where the ear is most sensitive, and heightened clarity. What could go wrong?

Nope! I made a prototype, called it ‘NodeDither’, began experimenting, and immediately found that I’d made… a flanger! The long delay settings were useless. It made obvious overtones just out of the dither noise, a blatant tone color cast that wouldn’t produce the desired effect. It didn’t even produce an obvious notch in the response where I wanted it. The only thing it did do, was continue to function as a working TPDF dither no matter what the setting was (more on this later).

But, something else turned up in the experiments, and that’s what brought you TapeDither.

If you use one sample of delay and inverting the noise, you get PaulDither: simple one-pole highpass. If you use two samples of delay, you get another sort of texture: kind of silky, but still digitally bright and intrusive. Using lots of delay, such as ten samples, starts to sound like the flanger, undesirable.

But, there’s something interesting about powers-of-two delay times. One, two, four, eight and so on, these delay times are slightly less ‘colored’ in tone than the others. I think it has to do with interactions with the sample rate: they seem to line up more neatly, making it slightly more easy not to hear the pitch of the ‘flangey’ quality.

And four samples of delay (and then inverting the noise) produces something rather special: a noise profile that closely resembles what you hear off reel-to-reel tape.

I can’t specify particular brands because (a) I hate when people do that to brand names not their own and (b) it’s a technical discovery, not some complicated way of forcing digital audio to mimic a particular brand. It’s no specific tape stock or tape machine. But what it is, is a voicing for TPDF dither that rolls off in an obvious way, around where tape noise rolls off. There’s another little bump past that, which many people won’t be able to hear, and then it begins to roll off again as it reaches the Nyquist frequency beyond where digital audio can’t go. Compare that to any normal flat, TPDF, or highpassed dither. Those keep putting out noise energy right up to the frequency limit.

TapeDither is every bit a TPDF dither, technically correct and flawless as far as dither goes. But it also is a highpassed dither with a softer tonal voicing that resembles good tape machines, and that doesn’t affect the dither performance at all. It doesn’t attenuate the audio content at all. Only the background dither noise is turned into what you’d get off a tape deck, all while the audio is protected from truncation and digital artifacts.

I would use this anywhere I was sending processed stems or tracks outboard to a multichannel DAC, for mixing in the analog domain or summing with an outboard summing box. Without hesitation. I’d use fancier boutique dithers on the 2-buss, though this will work there too… but if I was doing an analog mix from a multichannel converter, there is nothing I’d rather use than TapeDither. (maybe Naturalize. Maybe.)

That’s because it’s one thing to apply an interesting dither (like Spatialize, for instance, or some noise shaper) on the 2-buss and get a unique texture or presentation on the audio. But if you’re stacking up lots of tracks and all of them get the same treatment, it’s vital to use something that won’t develop an exaggerated tone signature when multiplied that way. For dither, TPDF gives you that behavior, and TapeDither is the TPDF that most closely mimics the reality of analog mixing back in the days of big reel-to-reel machines. The tone of its noise floor is already more pillowy, mellow and relaxing than most TPDF or highpassed TPDF, and then when you stack up lots of tracks of it, the texture’s better still.

I’m still excited to bring out Naturalize, but I’m just as excited about what TapeDither means. It makes me want to build analog consoles and mix into them, just so I can put TapeDither on any output that’s not playing raw 24 bit data exactly as captured. Anything with processing or gain on it would get a dithered output, and it would be a matter of—faders up—hello, Seventies :)

Well, I like audio from the Seventies. I suppose I’d better work out how to do some of the sonic quirks of Doubly while I’m at it! Not that a rock band would use Doubly…

These experiments are paid for by Patreon, and if enough people get involved I can keep doing them indefinitely without any one person having to pay that much. So tell people about the Airwindows Patreon, maybe I can go viral if I keep on thinking up new stuff. I don’t believe anyone’s done TapeDither because dither designers don’t naturally gravitate to comb filtering and peculiar artifacts, so if you like this sort of thing it’s probably easiest to keep getting it from me :)

SpatializeDither

TL;DW: Spatial positioning and clarity dither.

SpatializeDither

Spatialize is one of my high-performance boutique dithers. Though I think my Naturalize beats it, that’s a preference: I like digital sound to sound organic and real, and I like ambience and foggy distance and other things Naturalize is great at emphasizing.

Spatialize is also good at reverb depths and softness, but what it excels at is focus.

This modified dither algorithm has opinions about what ought to be randomized. Any normal dither (especially a technically correct TPDF-based one, such as PaulDither, TapeDither or NodeDither that can encompass either) has no preferences about what samples it gets. It will apply noise regardless, with perfect impartiality.

Spatialize (which I’ve also termed Contingent Dither, early in its development) isn’t like that. It says, ‘hey, this sample is exactly on a quantization value. No way am I going to mess that up, it’s staying right where it is!’. Or, it says ‘this sample is exactly between two quantization values. If I rapidly flip between adjacent values I can try to get the DAC to produce output between them. What could go wrong?’. Or, it says ‘this sample is none of the above, let’s bring in some randomness and apply dither like some normal plugin that isn’t crazy, would do’.

Or all of the above, blended…

That’s how Spatialize works. These are pretty bold things to try to do, especially the attempt to balance between two quantization values: that’s not really a reasonable thing to try, even when blended with random noise. And it pays something of a price: while Spatialize is quiet in its noise generation even without resorting to noise shaping, its behavior down around the noise floor isn’t perfectly well-behaved.

But that’s a trade-off, because by sacrificing this good behavior, Spatialize gets to be very sure that when samples hit perfectly on quantization boundaries, they’ll be accurately represented. And the bit-flippiness of the exactly-between behavior gives rise to a really strong highpassy effect that heightens treble energy. The result is a dither with a holographic, intense sonic reality to it: and it IS reality, because it comes out of this determination to honor the true values of the samples wherever possible. Spatialize is always prepared to abandon ‘appropriate’ noise floor behavior if it can nail down the sonic envelope with more ruthless accuracy.

So, if you’re into the hyper-real, high-definition sound of extreme clarity and accuracy, Spatialize might be your preferred Airwindows boutique dither. And, since it does it all with no noise shaping, there’s still an ease and naturalness to the resulting sound. It’s probably my own favorite apart from Naturalize, and for some things I prefer it. And, it’s free, AU and VST. :)

If I continue to be alive and living in a house that’s turned into a combined mad scientist lab and recording studio, I need support from people on Patreon. Most likely if enough people know about what I’m doing, I can keep doing this from now on, even if it only costs individual people a dollar a month. I’ve been putting out more than one plugin a week, so that one dollar could end up as a library of more than a hundred plugins in a year, for $12. And you get to keep them, and the internet will be the backup server with my blessing: I suggest that this is a pretty good deal, and please join in :)

Newer Posts
Older Posts

Airwindows

handsewn bespoke digital audio

Kinds Of Things

The Last Year

Patreon Promo Club

altruistmusic.com

Dave Robertson and the Kiss List

Decibelia Nix

Gamma1734

GuitarTraveller

ivosight.com – courtesy Johnny Wishoff

Podigy Podcast Editing Service

Super Synthesis Eurorack Modules

Very Rich Bandcamp

If you’re pledging the equivalent of three or more plugins per year, I’ll happily link you on the sidebar, including a link to your music or project! Message me to ask.