PMIX : Performance mixer, by TheTechnobear

a performance mixer for the Percussa SSP

Change Log

1.0.1 Show channels if channels are enabled/disabled
1.0.0 Initial Release

Developer: TheTechnobear

I develop these plugins for free, please consider supporting my efforts with a donation.

Download : pmix.zip (1.9 MB)

Important note: this requires the LATEST SSP firmware (26 Aug 2020)

Installation

copy the plugins/*.so to sdcard /plugins

Optional Installation

you may want to copy and rename the demo presets contained in /presets

General Usage

8 input channels with individual pan/mute/solo and levels for main,cue , aux 1 and 2

4 stereo output channels, main/cue and aux1/aux2, with levels, mute,solo

LS/RS/UP : select in 1-4, 5-6 and output groups for encoders and buttons

EN+/- : used to select what encoders control
MODE : selects button mode

encoder buttons : reset or toggle levels etc.

CUE - mutes channel on main output, and moves it to CUE channel
AC - places a DC blocker on the channel, useful for almost all audio signals - you can remove if you are doing DC mixing

note: CUE and AUX levels are only for input channels.

Tips

The channel selection buttons work as momentary switches, so you do not have to switch the focus, just hold button and use encoders.

Input levels are pre-fader (since levels are independent)
Output levels are post-fader

DC mixing is possible, but vu-meters might be ‘unexpected’ :wink:

GAIN is pre-fader

Credits:

Percussa SSP - https://www.percussa.com/

11 Likes

Holy crap, this is fantastic.

2 Likes

Thank you for your development.

2 Likes

This is a fantastic module @thetechnobear ! I can see this becoming part of a default patch template. Useful for anything with more than one sound source.
A question: regarding input levels - can an input channel use the maximum level, regardless of the number of input channels used? Or phrased differently: Does PMIX automatically adjust its summing levels, depending on the number of channels in use?

1 Like

no, its does not doing any averaging - as the required levels completely depend upon the input sources - averaging tends to perform pretty poorly in these situations.
(also it raises issue with things like what to do when you mute a channel)

so, I might be wrong, but I don’t think mixers usually average.

however, liker hardware mixers - as well as level, there is also a gain control which is used before the main level/cue and aux levels - this allows you to given an overall adjustment to the channel.

i guess, the other approach used for mixers/mixing is compressors - but that’d be a different project, that id have to do some research on.

also, i will say, ive actually noticed there appears to be quite alot of headroom from most sources - I’ve often had 8 channels coming in, and its still not clipping, unless one channel is particularly ‘hot’


tips i forgot to mention…

  1. clipping

so just like a DAW, internally going ‘into the red’ should not matter, really the one that is most important is the final output stage - so what you send to OUT - as this is where real digital clipping would happen.

that said, you might find some (fx) modules might behave/sound different depending on levels sent in.

none of this is new/particular to pmix, but perhaps is a little easier to observe now

  1. dc blocker

I’ve found the ‘dc blocker’ can be invaluable when using other modules e.g RVB behaves much better on an auxof pmix, because the input channels have stripped the DC element.
(one issue with DC offsets , is that as you combine signals, or throw them through fx, is they have a habit of building up - and that can have unwanted side effects on fx_

i was thinking of releasing an DC Block VST to use outside the mixer - but its a bit of a limited ‘use-case’, so i think I’m going to wrap it into a more general purpose ‘utility’ vst.
but we will see … I’ve lots of ideas, and Im already started work on a couple of others :slight_smile:

1 Like

Thanks for your quick and detailed reply. In essence, nothing to worry about at the input level and keep eyes and ears on the outputs. Easy enough - I can work with that :grinning:

1 Like

Not dug into this one yet but looks like it will be extremely useful.

Great work

1 Like

thanks all…
I’m glad everyone seems to like it… Im not sure why, but it took quite a lot longer to implement than I imagined.
I think because whilst, I knew the basics of mixing - I didn’t know anything about how things like vu-meters worked, or much about the maths for things like (various!) pan laws - or the best way to keep it low cpu (important on ssp) - as its quite easy start repeating calculations, or copying buffers lots of times.

anyway, I’m happy how it turned out… and I learnt a lot about mixing in the process.

I’m interested in feedback for you all, as I mentioned in my ‘development’ thread, theres quite a number of decisions behind this - Im happy with them (often compromises between features/cpu/complexity) - but perhaps feedback will change my mind.

as i also mentioned, once PMIX is ‘stable’, then I might create a stereo input variation.
but as it’d be based off same code, I’d only want to do this once, PMIX is kind of ‘done’… to reduce maintenance overhead (*)


(*) with more plugins, this becomes more an issue for me

2 Likes

Since you’re asking for suggestions, how about including Send functionality, i.e. effects buses?

How does that differ from the two aux busses?

It doesn’t, I’m just stoned and don’t remember what I was thinking now. Inserts? Never mind. :slight_smile:

3 Likes

great work, congrats!

update time : version 1.0.1

a small update, the channel title reflect if the channel is connected or not.
red = connected, grey = disconnected

3 Likes

Would someone be kind enough to give me a quick module channel settings/signal flow for using the aux for an external effects module for example the Z-DSP?
I’m familiar with using hardware mixers aux send channels (I have a Befaco Hexmix in my setup) but for some reason I’m struggling to get the PMIX to act the same way, I’m suspecting I’m just being a bit of a idiot and and getting a bit confused with channels, sends, and the ins/outs on the input and output modules!
Thanks

whatever -> pmix in1 (enable)
pmix aux1L -> out out 1 (enable)
pmix aux1R -> out out 2 (enable)

press 1-4 btn to select inputs 1-4 button
then press en+ a couple of times till aux1 appears for encoders

turn aux1 level up, or just press the encoder and this will take it to 1.0

1 Like

Thanks for the info appreciated.

I think I must be having a stupid day as cannot for the life of me get an external module reverb effect to work on the aux channel! I’m going to come back to this later I think and distract myself with freshly downloaded new vst’s matrix and plaits.

try this:
015.pbp.zip (4.3 KB)

accepting stereo input on INP 1/2 ,
aux output on OUT 3/4
aux return on INP 3/4

all assumed stereo, but you can change this by just altering pan.
also you’ll see ive set level on pmix tracks 1/2 to zero, this is because the FX I was using has a wet/dry mix… so easier to there, rather than a parallel dry mix.
(but you can do a parallel mix, by simply turning up level, and set your fx to fully wet)
try this, this will give you a starting point, from there you can easily modify for internal SSP instruments or whatever.

heres a slightly more ‘complex’ setup which I use everyday :slight_smile:

000.pbp.zip (8.0 KB)

this basically uses 2 pmix,
first pmix is the primary mixer, and accepts a couple of stereo pairs from my eurorack, and octatrack.
the second pmix is for mono input channels from my eurorack, it also feeds into the first pmix.
both pmix hace clds on aux1 ,and have my octatrack (OUT 3/4) connected as a CUE output.

I really like this setup, as i can quickly tap in SSP instruments into it, or add/change up effects on the SSP ( * ) that I can then use for any of my eurorack modules… and finally send that out quickly to the OT for multi-tracking, or just general audio mangling…
(the OT and SSP make a great team :slight_smile: )


( * ) this is why I leave aux 2 ‘free’ , either to had a new ssp effect change, or sometimes I route it out to my eurorack, often the qubit nebulae, for yet more granular madness :slight_smile:

8 Likes

Thank you very much for that, very helpful indeed. I managed to get it working (after correcting my user error) with the help of the first zip file you shared. I still need to dig into the bus module as I’m not completely sure (again) how to quite patch it up, so only had a brief look at the second file, will dig into that once I have some more time.

Thanks again, much appreciated, keep up the great work you are doing

1 Like

the bus module is probably a red-herring… you do not need it in ‘simple cases’, and its not really related to using PMIX.
I use it in my complex/daily example because I have two pmix.

the use of BUS, is the ‘standard use case’ :
when you connect a module to two modules of the same type, you are unable to differentiate between the instances when you connect the object.

SO…
pmix (1) and pmix (2) both connect to CLDS, as they want to send the audio via the aux 1. (so far so good) then I want to return the audio to PMIX (1) IF I directly connected CLDS to PMIX (1) due to the ‘above issue’ , it would also send the audio to PMIX (2) - so instead I send it to a BUS object, which is only connected to PMIX 1

an alternative, would be rather than to return the audio to PMIX, I could have just send it to the OUT object… but then I would not be able to control the return level from the mixer.

1 Like

Yep I should have made that a bit clearer. The simple file you shared worked perfectly and I understood the patching within, so thanks again :slight_smile:
I didn’t look into the second patch you sent In depth with the bus module included as I’m still not completely familiar with the bus module (I still seem to make patches on the SSP and then realise they don’t work as I intended and after some troubleshooting I realise it’s inevitably because I’ve not patched them Correctly in the SSP) I shall look at it again though so thanks for including it.

I probably just need more time with the SSP and the patching will become a bit easier for me, I struggle a bit with more complex patches remembering where all the patches are connected.
Thanks again for your detailed description and taking the time to post presets they’ve been very helpful to me and hopefully some others

1 Like