Console9
TL;DW: Console9 is just the summing from ConsoleX.
Console9 in Airwindows Consolidated under ‘Consoles’ (CLAP, AU, VST3, LV2)
Console9.zip(993k) standalone(AU, VST2)
Here we have the first part of ConsoleX that can come out and be put into use, just as it will be used in ConsoleX.
You see, the upcoming Console system is the big one with all the EQs and multiple dynamics paths and StoneFire built in, and it’s got so much going on it requires the development of an elaborate GUI (for which a lot of work has already been done). But the guts of the system remains Airwindows Console and that gets its own development. Console is the system by which all the sound sources get pre-distorted and then un-distorted on the buss after summing, for a sound that (in theory) doesn’t touch the tones of any individual mix element, but alters the spaces between the sounds.
So when using Console (or any version like Console9 that’s strict about this) you should expect to hear exactly the same sounds you originally had, but they’ll sit differently. They’ll make up a more convincing space, in a subtle way that shouldn’t mess with your sounds, that will just make it easier to make those sounds gel into a mix that feels good.
The algorithms for Console9 (as used in ConsoleX) are new, but they came about through work I did revising Console6. It turns out there’s a resource called ‘Herbie’ that helps you re-hack algorithms to work better in floating point. That’s immediately of interest to me, as I’m fascinated by the ways our simple digital math erodes and harms the tone of our sounds… I’ve already done a lot of work on word length and dithering, and I already advocate double precision processing over the use of simple floats. But it turns out algorithms that don’t play right by Herbie can have special (bad) qualities, and the original Console6 plugins were guilty of this.
What would happen is there’d be a big spike of inaccuracy as the calculations swept by zero. And that’s as may be, but we’re dealing with audio: especially with low frequencies, the sound is constantly sweeping through zero! It’s digital math reinventing how to make crossover distortion as found in class AB amplifiers. Herbie exists to re-design such algorithms so they sweep through zero (or wherever else there’s an issue) perfectly. It’ll also estimate how much extra CPU it’ll take: sometimes it’ll do a silly approximation and say ‘oh hey, if you just replace all the outputs with 0 you still have X much accuracy but the code runs much quicker!’
There were optimizations for Console6, and the version in Consolidated (and in the downloadable plugin collections) is the new version. The download from when Console6 first came out, remains the same for historical purposes and so you can get a hold of exactly how it was when it came out (this is true for pretty much all Airwindows plugins: use the collections or Consolidated to have the recentest versions).
But it turned out there was also a set of distort/undistort curves available from using the same type of math as in Console6, the Herbie-optimized sort, except scaling things by the golden ratio (of course it had to be the golden ratio, that thing pops up all over the place) and this produced a new sound for Console. It’s got more headroom than any previous Console system, while also having some of the raw intensity of Console6 (which, even fixed, might be a little too raucous and garagey for most purposes). It’s got a real good sense of transparency but it strongly brings that Console vibe to the spaces between the notes. And it’s the summing buss that is going into ConsoleX.
The reason I say it’s also the part that will be used IN ConsoleX, is because I’m adopting some Chris Lord-Alge-isms in ConsoleX. My take on how sends and verbs and things should be handled in ConsoleX is to use them kind of like Console8 uses submixes: you’ll be sending stuff from channels to other channels that have the verbs on them.
The difference is, when you do that you put Console9Buss at the top of the sent-to channel… put in your verb or whatever, all wet… and then run the result through ANOTHER instance of ConsoleXChannel, and sum that. So, the idea is ‘decode and then recode, except you get literally all the processing from any ConsoleXChannel, all over again, on the verb or delay returns’. And then you adjust those the same way you’d adjust any other channel: they just come in on even more channels, and all the same features apply. And so, Console9Buss is your ‘decode’ for making further verb stuff happen, because you don’t need to run the full ConsoleXBuss to do that.
There’s still loads of work to get ConsoleX done, plus I’m having another crack at ToTape to address the eager aliasing that came out of Dubly2. Unlike that weird beast, Console9 is very clean and simple so you can oversample it to the moon if you wanted to: I will not be doing that, I’ll be running it at 96k and it will be fine. There is a reason people got an ‘analog immediacy’ hit off ToTape7: aliasing suppression is a tradeoff between artifact minimization and overprocessing tone-flattening, and in ToTape you’re hearing one extreme. I’m still going to see whether I can have best of both worlds but I’m not taking away the ToTape7 people enjoyed. And when ConsoleX comes out, there’ll be a dedicated ‘only the tone controls’ plugin (for use pre-EQing stuff to a channel instance of ToTape, which is a black art of its own) and so you’d be able to run the EQs and then oversample the summing buss to the moon if that pleases you, using Console9 to stand in for the built-in versions that are part of ConsoleX.
For now, I will continue to get over my recent bout of COVID (I’m testing negative, have just lost a lot of energy so be patient), will continue working through the backlog of plugins that can come out, and I’ll talk to ya later :)
Airwindows Consolidated Download
Most recent VCV Rack Module
download 64 Bit Windows VSTs.zip
download Signed M1/Intel Mac AUs.dmg
download Signed M1/Intel Mac VSTs.dmg
download LinuxVSTs.zip
download LinuxARMVSTs.zip for the Pi
download Retro 32 Bit Windows VSTs.zip
download Retro PPC/32/64 Mac AUs.zip
download Retro PPC/32/64 Mac VSTs.zip
Mediafire Backup of all downloads
All this is free and open source under the MIT license, brought to you by my Patreon.
Thank you so much, Chris! Console8Lite is the only plugin on by default on my project template. All else might change from song to song, but Console stays. Very exciting to get a new one. Get better soon! (I’ve found pine extract to be very good for getting over colds of various kinds.)
I surely don’t know as much about coding as you, Chris, do. However, from years of working with Reaper and scripts and control surfaces I got the feeling that Reaper would rather not communicate the color of a track to your device, or would it? Even if it would, there are billions of possible shades. Imagine opening up an older project and all of a sudden your guitar fader wouldn’t follow the ConsoleX anymore until you found out that you were using a slightly different shade of red for your guitars two years ago. Or, what if working on projects other people prepared for you? I mean, we are seasoned enough to have our own stuff organized: Once I name any given track “guitar” in Reaper, it instantly gets the same guitar color assigned to it every time. If I name it “* BUS”, it gets the color of “*” and a red fader knob and a larger meter assigned (as triggered by the word “BUS”). We know all that stuff. BUT – any Reaper newbie & user of ConsoleX surface would have to undergo a similar process of having all their stuff very accurately color coded, wouldn’t they? Consider the users who just don’t ever do this because they are blessed with not needing to care about visual supports while mixing and recording. What about individual themes or very deeply customized color schemes which users wouldn’t want to get rid off in order to able to use ConsoleX? Going the color route appears limiting although there are more colors than people on this earth, isnt’t it strange? For more universal usage, I would assume going the parent/child (folder) route, like MCP/Klinke protocols do: When a track is a folder (parent), its fader is being controlled by the control device. Is it a child, no physical fader can bother it. Just a suggestion. Cheers and thanks for your great work.
Alright now this is what I’m after. Does everything I want Console to do and does it much better than any other Console version. The spaciousness is rendered nicely, top end is conditioned wonderfully in a way that preserves sharpness and everything stays punchy. I can throw this onto the summing busses of a pre-existing mix and it just makes everything better. Well done Chris.
Why are you writing so long? The question is; how will it be used in the end? Will Console bus be first or last in the bus channel? Console channel, first or last in channel?
Same experience. I just read through 10000 words hoping to find out how to use this. Did I miss it?
Thank you very much for providing us with all these nice plugins and for sharing so much background information and insights into your creative processes. I’ve been constantly trying versions of Console since I dearly would like to use this system but I always ended up deleting it because I mix with physical faders that can not be assigned to anything else than the DAW’s track faders. I will try Console9 and see if it’s worth to finally abandon my usual half-analog workflow for the benefits of it. Also, which Console version will be the most “obvious” with projects on a low track count? Which one would anybody recommend to me when I was going for 8-12 track garage rock with live instruments and minimal processing? Which one has the most color and character?
And this one somehow puzzled me a lot:
“The difference is, when you do that you put Console9Buss at the top of the sent-to channel… put in your verb or whatever, all wet… and then run the result through ANOTHER instance of ConsoleXChannel, and sum that.”
Eh? It’s 2024 and people have been asking for clarification on this particular question over and over again on music boards for about 10 years. “What about auxes/sends/returns? Console*BUSS first and Console*Channel last?” Is this logical order of processing exclusively new to the upcoming ConsoleX and was never intended to work with the older Consoles? Some said you should not put any instance of Console on wet sends, others said not going BUSS-FX-Channel on sends would mess up the encode/decode principle of the system. I’m glad that Chris is finally addressing this but once again, why so late and does it only apply to the new Console9/X?
So how do we use these files?
I think this is your best one yet!