Pan Mixer: Stereo Mixer with Mono Subchain

There’s been a few requests for this and as I was kinda poking around in Lua anyway (you can’t ask!) I thought I’d have a quick scan of the ‘builtin’ Mixer Unit to see if I could make this happen, @Joe and myself did something similar with Scorpio.

Anyway, long and short of it is that this is a Stereo Mixer channel, by that I mean it has pan, but only a Mono branch / sub chain!

I have absolutely no idea if this has any impact on CPU usage, but perhaps some folk out there who have been looking for this could test it out with something they know it would benefit. @Zeta?

I can’t really take any credit for this, @odevices did the work, I just hacked it :slight_smile:

Any improvements, comments welcome!


There is now a GitHub repository called ‘kels’ with an updated version of this unit here:

You should be able to download the repository, drop the folder into your libs directory and everything should just work!


There may be a small problem with this unit, if you try and load a preset that is built with one of these Pan Mixers into a mono chain, the ER-301 does not like it!


@Joe just pointed out, quite rightly, that this should be in it’s own libs folder so that anyone creating patches that use this can simply declare the dependency.

Yes - of course!

I also need to clean it up a bit and probably remove the monoGraph!

I would really like some feedback first, i.e. does it work

…and a new name would be good!

Cheers :slight_smile:

1 Like

stereoer ?

Cool, @anon83620728 in lua! Exciting times ahead

1 Like

Haha… thanks, but erm… I am not giving up the day job just yet :wink:

Joking aside, I am programming all day every day at the moment, it’s a bit much doing it in the evening too; but sure, one day I am sure there will be more :smile:

It works for me.

1 Like

thanks, trying this out soon!

how about 'Mono To Stereo"? :slight_smile:

1 Like

love it!

for the last months i was almost exclusively working with stereo chains.
i use both, mono and stereo inputs in them and though it may have improved my
hand-eye-thingy and that muscle-memory-stuff i am repeating the following
steps over and over for mono inputs:

  • insert mixer channel
  • assign mono input to left mixer input
  • assign mono input to right mixer input
  • insert accents sampling vca (for short attacks and almost clickless mute functions)
  • [assigning internal or external voltage source(s) to the level parameter of the sampling vca.]

since i didn’t do my middle layer homework, i’m asking you @anon83620728: could you give this a try?
i.e. to implement @Joe’s sampling vca into your stereoizer (=> steroidizer, mono injector) so that we would have
an additional and cv-assignable gain control next to the input control…

1 Like

why not?

If you can create patches using the units, with a little patience and effort you can almost certainly create them in the middle layer and save yourself loads of work / cpu / etc…

It looks intimidating, but it shouldn’t :slight_smile:

It will be a day or two before I can look at this again, why not give it a go?

I hope my posting some half baked crap here will encourage others to be open about their coding skills, or lack of, it’s not a big deal. We can work these things out together, just start!

Or ignore me and Lua :wink:

I dont mind really, but it should be used more and I am trying to be encouraging and supportive :smiley:


nice try! :smile:
actually, and based on @Joe’s superbe video on that matter, i already had all the prerequisites in place
some while ago. and then, … well, something came up. so really, in my case it’s just about the time
i have (and some of it goes into wiki-user-creation-list…).

i agree! so please, keep up with your mission!


Darn it, so close!!

I know the limitations of time, only too well… it is our most precious commodity!

I think you will be surprised at how easy creating these bespoke units is; yes, it requires thought and consideration, but it’s only a sidestep away from the thought and consideration required for constructing custom units.

Once it clicks, you will be kicking yourself for not doing it sooner :wink:

1 Like

PanMixer or something like that?

As a stereo source panned is usually referred to as balance, so it should be reasonably clear that panmixer is mono in stereo out


That makes loads of sense, and is kinda obvious now you say it, so while I like the other names I think this is the winner!

Will see if anything better comes up, but if not by the time I redo it, this is the one.

Thank you :slight_smile:

edit: by the way it’s still a ‘stereo in’ unit - the left input is stereo and this is mixed in correctly; it’s only the subchain that is mono, but this is just a technicality, I think your suggestion is still good and correct.


And I really want to get started, been looking at accents code, and was puzzled that it doesn’t “do anything”, it’s all calls to nice functions that I have no idea where to look up the functionality of.

Could you give like a two line entrypoint (I know lua), maybe just a few links to docs? And like the two-three favorite wish-I-knew-this-when-I-started?

I have a few ideas, some even humble enough (I think) to fit the bill as first projects…

Excellent, first read through this:

And pay particular attention to this post that has lots f comments in the Countdown unit:

And yeah, I know, isn’t it amazing… but really, all you are doing (in one sense) is making the same connections in Lua as you are with the units in the front end, just with more control and flexibility.

If you still have questions at the end of that thread, then ask away - there is no shame in not knowing something, better to ask and learn than spend more time not knowing :slight_smile:

Why not share them? A ‘Help me build…’ thread perhaps, I and I am sure @Joe and @odevices will help, if it’s done openly, others will learn too!


Name suggestion: Panorama

1 Like

Isn’t this something you could do pretty elegantly in the UI layer?

  1. Edit the controls for Stereoizer
  2. Add a GainBias control called level
  3. Connect your custom level control to the level control of a Linear Sampling VCA placed inside the input subchain
  4. Save as a unit preset
1 Like

In my opinion, the best way to get started is to do what @anon83620728 did. Take an existing builtin unit (or something from testlib or Accents), make a copy of it, and try to make a small modification to it.

Start by putting the copy in its own library with its own init.lua, and make sure you can deploy it to the 301 and get it to load. Then change the name and mnemonic, and the name of the class so that it’s unique. Then try some small tweaks - maybe change the default range for a control or change it’s name.

Then try to add some small functionality to it by instantiating a new DSP object or two, and connecting them into the existing patch. Add a control to the view to control the new functionality.


Okay, I did the update, code cleaned up a bit, mono graph removed entirely as it’s definitely not needed here - the unit will only work in stereo chains for obvious reasons!

I won’t be updating this with anything else, while I want to encourage folk to use Lua as much as possible I actually agree that the solution @Joe presented above for your request @mopoco is the right one!

By all means feel free to take what @Joe and myself have done and roll your own though :wink:

Thanks for all the name suggestions, but I am going to go with Pan Mixer - it’s clear and I think the correct name for this little utility unit!!

Oh and I put it in Essentials - if anyone has any objection to this? I will change it, no problem! I couldn’t see any other sensible place to put it and it makes sense next to the Mixer Channel huh :slight_smile:


If you add channelCount==2 to the unit’s init.lua entry like this:

{title="Spread Delay",moduleName="Delay.SpreadDelayUnit",keywords="delay, effect", channelCount=2},

then the unit will only show up in the selection screen when inserting into a stereo chain.

1 Like