Airwindows - A Fresh Approach: Looking for some testers and feedback

On console mm doesn’t use airwindows code at all; it just reimplements a subset of a single effect on a set of mono channels. It also does some odd looking stuff like a sample which is zero is silence. And a call to std::sin on every samole it seems?

But that explains the confusion. Console mm is not an airwindows effect. It’s more a cover of one sort of.

here’s the topology it has

It has 3 lrlrlrlr inputs

It has 3 outputs which are either the mono effect on the lrlrlrl or the Sum of the corresponding inputs unprocessed or sum of inputs professed

And it as a stereo output pair which is the sum across all 3 items summed down or with some gain applied

But really that’s just some module someone wrote and called airwindows. It’s not chris code although it may be copied from parts of it. If you want something to happen with this port we realky just need to think about it as what topology do you want for what purpose.

rackwindows/console_mm.cpp at develop · n0jo/rackwindows · GitHub (Assuming tbis code is indeed console mm)

1 Like

I totally understand you Paul,
imho your idea is much better and broader as the “limited” version of the ConsoleMM,
ConsoleMM is just a convenient way to add some “Console magic” to the summing of MasterMix,

but your way of just summing the (3 or maybe more) inputs to add any “airwindows magic” to it looks more appealing to me! then we could have a SuperDuperConsoleMM :wink:

2 Likes

Or galactic mm :slight_smile:

Yeah I think the way to think about this as: what Inout outout and fx topologies are useful

2 Likes

One thing which is super easy is to add a “mixmaster mono mode” which instead of using the rack input sum uses a deinterleaved sum for instance. Then you can just drop 1-8 9-16 in as lr and get mono lr sum out. I’ll add that to my list before I push the mixmaster insert topology to the library

1 Like

Actually here’s another way for you to all think about it

This project only works if the module contain exactly no dsp code per effect - then I can keep up

So the way to cast the problem for this project is

I have a bucket of operators which are all lr to lr with parameters I can interrogate

Given that bucket what modules do I make

Right now I made one moduel which lets you pick an operator set and modulate the parameters and run it monophonically in sum to instance or polyphonically in either standard poly stereo or mixmaster poly stereo. Sounds like we want another variation in that module which treats the inputs as mixmaster lrlr rather than normal poly but still sums to mono. Fine

But given that core capability of a bag of monophonic operators there’s two more questions we could ask

1: does someone want to make a separate project whcih has this code as a submodule with custom faceplates for a few and additions pre and post process goop in the way? That’s cool! But that’s unambiguously not this project.

2; are there other module-independent faceplates and topologies we want? If so what are they? And maybe I can add em over the spring while I’m doing updates to the bag of ops

It looks like the repo you linked took a different approach whcih is automate nothing and handnport the effects into bespoke modules. No value judgement, but that approach does get you 15 operators in 8 weeks as opposed to 320 in a single week sprint. Fine project but different project

Helpful?

1 Like

I’ve got a suggestion, but you all will have to wait a bit. Maybe not all that long?

I see we have the library (which absolutely will be able to run Airwindows Console using individual plugins with any unity gain summing between them, much as any DAW would sum) and there’s another plugin called MixMaster, which may or may not be using my system internally. I haven’t looked at the code.

Paul, what might be throwing you is that you’re not using Console nor does Surge use Console and I doubt you’ve ever tried, and might not even want to.

I suggest backing out the ‘mixmaster’ mode. I don’t see how that can be the zero maintenance thing we need for this library plugin. Instead, I would say give folks a single mixer plugin that implements Airwindows Console8Lite. Then, respond to UI requests on that, but let me specify the audio path.

Console8Lite is the ‘two stage’ version of Console8, and I’m currently building linux versions for a bunch of upcoming plugins that do include that, so if people are really frantic to have this I can bump it up in the release schedule (I was going to do a bass-boost plugin I’ll be using personally, but that will still happen in due time)

To implement Console8Lite in a Rack mixer you must build the following topology:

Inputs, each of which goes into Console8LiteChannel, which has one fader per input. Digital summing that must be unity gain, and (since I’m designing it) must be a double precision buss. So you gotta come out of Console8LiteChannel using the 64 bit version, have a double for the digital summing, and feed that double into the master stage. That’s my design spec for the idea knowing that in no other place do you use the ‘double replacing’ VST process. This one you’d be doing by hand and it should use that. Summing buss from all the channel plugins goes at unity gain to the input of Console8LiteBuss, and the output of that goes to the output of the mixer. It does not dither but it does have post-summing clipping, and a fader which allows you to overdrive the output using ClipOnly2. And that would be the mixer plugin, in total: two Airwindows plugins, one on all inputs, one on the output, and the summing variable needs to be a double (good enough for Logic and Reaper!)

How does that sound? I would like to hear whether I should hurry up with Console8Lite. I could have it out Sunday and the code available for Paul tomorrow or tonight if I crunch a bit on it. Console8 proper is already there, but it’s a much more elaborate mixing console with in and out plugins on each stage, and channel/sub/buss topology. I needed something a lot simpler that still produces the same basic sound.

If you can get that as its own project we can talk about all the other questions, like ‘can we have pans and aux sends designed to work with the system from the ground up’ which would be a first, really. But understand the thing being asked for is a particular Airwindows configuration that’s not inherently that tricky to do, but the idea is to do it the way I would be doing it. So the internal summing needs to be in doubles, other than that it’s pretty straightforward :slight_smile:

back to the code mines…

1 Like

The mixmaster mode is really designed to use an airwindows directly as a poly insert more easily since mixmaster uses a non standard but popular format for its poly send and receive - that was the first thing I showed. and is useful for that,

I agree this console stuff is all very unclear to me as to what people want where and I’m not writing anything other than channel shuffles until it’s clearer indeed!

Also, Console6 is a bold choice for Rackwindows ConsoleMM :smiley: that’s a pretty colorful version. Each of them have distinct behaviors but Console6 is one of the more distorty, and yet primitive. It’s not randomizing my random seed per-channel like more recent plugins do, and PurestConsole may not be the optimal choice for sin/asin encode/decode because it does NOT clip at full output, it wavefolds.

I would say, go ahead and keep a mixmaster format if you like to have it (I have no idea what that is) and otherwise leave the library plugin as essentially single plugin in/out. I don’t believe that in itself can turn it into a Console system: it depends on whether people want a plugin which is that as a mixer. If they do want that and don’t want to simply do the whole thing with lots of instances of the library plugin and a simple digital mixer in between as the summer, they can ask me to design one and I’ll be able to tell you quite exactly how that works. Depends on whether you’re excited to do a mixer for Rack that people would get excited over.

Again, I have a Console8Lite version coming out soon that would perfectly suit this, and when it reaches the dailies it will function already, without you having to do anything. The question is whether you want to make a standalone mixer plugin and deal with people’s interest in UIs, controls etc etc. If you’d like to bring one of those to Rack, I have the DSP code for making it live up to what they have in other DAWs, and it would be ‘drop this plugin on each channel, this is the fader control, sum it in double precision, drop this plugin on each output, done’.

Also, would it be OK if I don’t drop Console8Lite this week? I had something else in the pipeline. And you can in fact run the Console system in Rack just using the plugin and patching in all the channel/buss plugs just as you would do in a DAW. I get that it would be great to have the earlier Rackwindows one updated, but it’s a different project from this <3

1 Like

OK so I have a version which now has the following 6 mono/poly modes

Screen Shot 2023-02-10 at 6.37.12 PM

which do what you need. And when I used capacitor2 in the “MixMaster Sum Input” mode I was able to make the 1-8 9-16 in my mixmaster generate a correctly summed stereo output.

Absent the fact that there’s still only 2 inputs, I think this is all the possibilities anyone could want right?

Should be in a nightly in 30 minutes or so.

4 Likes

great sleuthing there and I think I understand now. Your proposal could work, but 1) not required, 2) not required. I would just have 3 inputs that all sum down to l and r to route back to the MM Direct in using the console magic of airwindows. I tried the 1-8 and 9-16 routing of Airwindows console but often use groups so would be nice to also get those through the console effects…

OK, I hope there’ll be some kind of manual available once it’s finalized.

I have no clue what I see. :face_with_spiral_eyes:

There’s a manual and I will update it when I push this to the library

1 Like

Very simply what is cool about RackWindows Console MM is that it completely replaces Mixmaster’s summing bus. How well it does this I don’t know. It does something subtle. It doesn’t do one thing that affects analog summing, which is low level channel crosstalk. This amounts to a dither based on the mixer inputs.

There would be great value to modelling what various analog summing busses do. I’ll have to read up on what the airwindows modules do.

1 Like

I think (from reading the console mm code) if you don’t use groups you could today get the behavior of console mm by doing the following

1: open an airwin and set it to cinsole6 2: set the poly mode to “poly (mixmaster to stereo) 3: put 1/8 and 9/16 in 4: put lr out to the chain

You might need to do a digital sum between 4 and the chain

But this should in theory do the same pre sum transformation console mm does

I would be curious to know if that proves true or close to true. If it does it means a convo chris and I had offline yesterday may allow us to do more console magic in a new module / same innards later this spring maybe

2 Likes

You’d be correct. If you run the same plugin on all the mixmaster inputs, in parallel, and then you sum them AFTER you did that, and then you go out to the chain and have the ConsoleBuss plugin in another stereo plugin afterward, you’re doing it. It’s always fine to do the summing in any digital way, so long as you’re at unity gain between channels and buss.

Not magic, just pre and post processing plus tone shaping for stuff like Console8 :slight_smile: and yes, if you can make a mixing module and can place the code in the VSTs inside it, we absolutely can do this, later this spring or whenever it’s convenient :slight_smile:

Also, you can do any amount of digital summing from any number of plugins so long as each channel is still unity gain relative to the final buss. So you could do a digital sum between 4 and the chain (chain being the final buss plugin)

Although the === VCP Challenge === thread has been dormant lately, this would be a fun idea for #75

3 Likes

Chris and Paul, thank you both for everything! I’ve been using Airwindows VSTs happily for many years before I started messing around with VCV rack.

If I had a magic wand, I would wish for a version of MixMaster where Airwindows console stuff was built in. This mixer would Do The Right Thing with the correct processing and topology for channels, groups/auxes, and the two-buss. Perhaps I could also choose a clipping and/or dithering mode on the output from the right click menu. It would ensure that things that need to be at unity gain are at unity gain, and so on. In short, it would make it impossible for a user to mess things up.

If I could make a second wish, it would be to separately select a console tone (Lush, etc.) as well. The panel design could even change based on which console you were using like Waves NLS does. This would be a “build your own classic analog console” in VCV rack. Incredible. I would happily pay actual money for this.

And ok, a third wish might be pushing it, but I would wish for this to be built into Bitwig as well.

1 Like

Heh. Some of that me and my friends can do, and some is a bit out of my reach… at some point you’re likely to get SOMETHING along those lines just because it’s on several wishlists, but understand that though I continue being really prolific, I’m also very careful to not lean on Paul too hard: he’s doing many other things besides bringing Airwindows to Rack :slight_smile:

If you know anybody at Bitwig, you could have them talk to me? Technically they needn’t, because MIT licensing, but there’s yet to be any DAW maker who’s interested in running with my Console tech, so my only real option is to continue to develop it in simple plugin form, knowing that at some point somebody with DAW/GUI/etc expertise could adopt all that, run with it, and very likely have a hit product from which I’d see nothing :smiley:

So it goes. But I’ll keep doing my own thing, regardless. Anyhow, Paul’s another open source guy so with us it’s not so much ‘throw money’ as ‘make the project really interesting to do’. And for that, you’ve got to wait until we get together and start experimenting again. It’s always very tricky for me, since in these circles I’m a designer and have no programmer cred at all… so I’m telling people ‘code this, this way, trust me, this is what they want, this is what will make it sound better’.

And so currently I’m doing the legwork for ‘build your classic analog console, except it’s the Abbey Road console, and also you can patch in plates A, B, C, D or a chamber, enjoy’. And I have to make the sounds for all this, in order for people to dress it up and build it into a DAW or a Rack mixer environment.

But when we do, everybody gets to have the result, including us. So, feel free to ask, I’ll take responsibility for keeping the plan do-able and practical without crunch :slight_smile:

9 Likes

Chris, thanks for the response. I think you have a small amount of programmer cred in these circles :wink:. And I don’t expect my wishes to come true, that’s what makes them wishes. :slight_smile:

Honestly all Bitwig really needs to do is implement a post-fader FX slot and we can figure out the rest.

Have you asked them to do that? They seem super responsive to me!

Is it really just post-fader FX you need to emulate an analog console? I gotta say I understand plugins and bitwig pretty well but this whole console-side-of-airwindows is just well outside my expertise.