mx4l

8 channel mixer with 2 sends and 2 subgroups. The first send effect has a stereo return, the second one is mono. There is also sends for the subgroups. All channels are mono, but the output of the object is stereo, so you are able to use a stereo send effect. First send is stereo and second is only mono. The send effects are post-channel fader(they are affected by the channel volume). All parameters are described if you hoover the mouse over them, so look there for further descriptions. Also see helpfile on how to set it up. 17% DSP
Author: Jaffasplaffa
License: BSD
Github: jaffa/mix2/mx4l.axo

Inlets

frac32buffer send 1 stereo return L

frac32buffer send 1 stereo return R

frac32buffer send 2 mono return

frac32buffer Subgroup1

frac32buffer Subgroup2

frac32buffer 1

frac32buffer 2

frac32buffer 3

frac32buffer 4

frac32buffer 5

frac32buffer 6

frac32buffer 7

frac32buffer 8

Outlets

frac32buffer send 1

frac32buffer send 2

frac32buffer Subgroup1

frac32buffer Subgroup2

frac32buffer Master out L

frac32buffer Master out R

Parameters

int32 0 = Off 1=Main 2=Subgroup1 3=Subgroup2

int32 0 = Off 1=Main 2=Subgroup1 3=Subgroup2

int32 0 = Off 1=Main 2=Subgroup1 3=Subgroup2

int32 0 = Off 1=Main 2=Subgroup1 3=Subgroup2

int32 0 = Off 1=Main 2=Subgroup1 3=Subgroup2

int32 0 = Off 1=Main 2=Subgroup1 3=Subgroup2

int32 0 = Off 1=Main 2=Subgroup1 3=Subgroup2

int32 ch8

frac32.u.map Ch1. volume

frac32.u.map Ch1. senda

frac32.u.map Ch1. sbnda

frac32.u.map Ch2. volume

frac32.u.map Ch2. senda

frac32.u.map Ch2. sendb

frac32.u.map Ch3. volume

frac32.u.map Ch3. senda

frac32.u.map Ch3. sendb

frac32.u.map Ch4. volume

frac32.u.map Ch4. senda

frac32.u.map Ch4. sendb

frac32.u.map Ch5. volume

frac32.u.map Ch5. senda

frac32.u.map Ch5. senda

frac32.u.map Ch6. volume

frac32.u.map Ch6. senda

frac32.u.map Ch6. sendb

frac32.u.map Ch7. volume

frac32.u.map Ch7. senda

frac32.u.map Ch7. sendb

frac32.u.map v8

frac32.u.map s8a

frac32.u.map s8b

frac32.u.map Sub1 vol

frac32.u.map Sub1 send a

frac32.u.map Sub1 send b

frac32.u.map Sub2 vol

frac32.u.map Sub2 send a

frac32.u.map Sub2 send b

frac32.u.map Returna volume

frac32.u.map Returna volume

frac32.u.map Master volume

bool32.tgl Returna on/off

bool32.tgl Returna on/off

bool32.mom CHANNELS

bool32.mom SUBGROUPS

bool32.mom RETURNS

bool32.mom MAIN

Audio Rate
// Channel 1 //
int32_t CHANNELONE;
if (param_ch1 > 0) {
  CHANNELONE = ___SMMUL(inlet_1 << 3, param_v1 << 2);
} else {
  CHANNELONE = 0;
}
int32_t CHANNELONESENDA = ___SMMUL(CHANNELONE << 3, param_s1a << 2);
int32_t CHANNELONESENDB = ___SMMUL(CHANNELONE << 3, param_s1b << 2);

// Channel 1 route //
int32_t CH1MAIN = (param_ch1 == 1) ? CHANNELONE : 0;
int32_t CH1BUS1 = (param_ch1 == 2) ? CHANNELONE : 0;
int32_t CH1BUS2 = (param_ch1 == 3) ? CHANNELONE : 0;

// Channel 2 //
int32_t CHANNELTWO;
if (param_ch2 > 0) {
  CHANNELTWO = ___SMMUL(inlet_2 << 3, param_v2 << 2);
} else {
  CHANNELTWO = 0;
}
int32_t CHANNELTWOSENDA = ___SMMUL(CHANNELTWO << 3, param_s2a << 2);
int32_t CHANNELTWOSENDB = ___SMMUL(CHANNELTWO << 3, param_s2b << 2);

// Channel 2 route //
int32_t CH2MAIN = (param_ch2 == 1) ? CHANNELTWO : 0;
int32_t CH2BUS1 = (param_ch2 == 2) ? CHANNELTWO : 0;
int32_t CH2BUS2 = (param_ch2 == 3) ? CHANNELTWO : 0;

// Channel 3 //
int32_t CHANNELTHREE;
if (param_ch3 > 0) {
  CHANNELTHREE = ___SMMUL(inlet_3 << 3, param_v3 << 2);
} else {
  CHANNELTHREE = 0;
}
int32_t CHANNELTHREESENDA = ___SMMUL(CHANNELTHREE << 3, param_s3a << 2);
int32_t CHANNELTHREESENDB = ___SMMUL(CHANNELTHREE << 3, param_s3b << 2);

// Channel 3 route //
int32_t CH3MAIN = (param_ch3 == 1) ? CHANNELTHREE : 0;
int32_t CH3BUS1 = (param_ch3 == 2) ? CHANNELTHREE : 0;
int32_t CH3BUS2 = (param_ch3 == 3) ? CHANNELTHREE : 0;

// Channel 4 //
int32_t CHANNELFOUR;
if (param_ch4 > 0) {
  CHANNELFOUR = ___SMMUL(inlet_4 << 3, param_v4 << 2);
} else {
  CHANNELFOUR = 0;
}
int32_t CHANNELFOURSENDA = ___SMMUL(CHANNELFOUR << 3, param_s4a << 2);
int32_t CHANNELFOURSENDB = ___SMMUL(CHANNELFOUR << 3, param_s4b << 2);

// Channel 4 route //
int32_t CH4MAIN = (param_ch4 == 1) ? CHANNELFOUR : 0;
int32_t CH4BUS1 = (param_ch4 == 2) ? CHANNELFOUR : 0;
int32_t CH4BUS2 = (param_ch4 == 3) ? CHANNELFOUR : 0;

// Channel 5 //
int32_t CHANNELFIVE;
if (param_ch5 > 0) {
  CHANNELFIVE = ___SMMUL(inlet_5 << 3, param_v5 << 2);
} else {
  CHANNELFIVE = 0;
}
int32_t CHANNELFIVESENDA = ___SMMUL(CHANNELFIVE << 3, param_s5a << 2);
int32_t CHANNELFIVESENDB = ___SMMUL(CHANNELFIVE << 3, param_s5b << 2);

// Channel 5 route //
int32_t CH5MAIN = (param_ch5 == 1) ? CHANNELFIVE : 0;
int32_t CH5BUS1 = (param_ch5 == 2) ? CHANNELFIVE : 0;
int32_t CH5BUS2 = (param_ch5 == 3) ? CHANNELFIVE : 0;

// Channel 6 //
int32_t CHANNELSIX;
if (param_ch6 > 0) {
  CHANNELSIX = ___SMMUL(inlet_6 << 3, param_v6 << 2);
} else {
  CHANNELSIX = 0;
}
int32_t CHANNELSIXSENDA = ___SMMUL(CHANNELSIX << 3, param_s6a << 2);
int32_t CHANNELSIXSENDB = ___SMMUL(CHANNELSIX << 3, param_s6b << 2);

// Channel 6 route //
int32_t CH6MAIN = (param_ch6 == 1) ? CHANNELSIX : 0;
int32_t CH6BUS1 = (param_ch6 == 2) ? CHANNELSIX : 0;
int32_t CH6BUS2 = (param_ch6 == 3) ? CHANNELSIX : 0;

// Channel 7 //
int32_t CHANNELSEVEN;
if (param_ch7 > 0) {
  CHANNELSEVEN = ___SMMUL(inlet_7 << 3, param_v7 << 2);
} else {
  CHANNELSEVEN = 0;
}
int32_t CHANNELSEVENSENDA = ___SMMUL(CHANNELSEVEN << 3, param_s7a << 2);
int32_t CHANNELSEVENSENDB = ___SMMUL(CHANNELSEVEN << 3, param_s7b << 2);

// Channel 7 route //
int32_t CH7MAIN = (param_ch7 == 1) ? CHANNELSEVEN : 0;
int32_t CH7BUS1 = (param_ch7 == 2) ? CHANNELSEVEN : 0;
int32_t CH7BUS2 = (param_ch7 == 3) ? CHANNELSEVEN : 0;

// Channel 8 //
int32_t CHANNELEIGHT;
if (param_ch8 > 0) {
  CHANNELEIGHT = ___SMMUL(inlet_8 << 3, param_v8 << 2);
} else {
  CHANNELEIGHT = 0;
}
int32_t CHANNELEIGHTSENDA = ___SMMUL(CHANNELEIGHT << 3, param_s8a << 2);
int32_t CHANNELEIGHTSENDB = ___SMMUL(CHANNELEIGHT << 3, param_s8b << 2);

// Channel 8 route //
int32_t CH8MAIN = (param_ch8 == 1) ? CHANNELEIGHT : 0;
int32_t CH8BUS1 = (param_ch8 == 2) ? CHANNELEIGHT : 0;
int32_t CH8BUS2 = (param_ch8 == 3) ? CHANNELEIGHT : 0;

// Sends for subgroups //
int32_t SUB1SENDA = ___SMMUL(inlet_b1 << 3, param_sub1sa << 2);
int32_t SUB1SENDB = ___SMMUL(inlet_b1 << 3, param_sub1sb << 2);
int32_t SUB2SENDA = ___SMMUL(inlet_b2 << 3, param_sub2sa << 2);
int32_t SUB2SENDB = ___SMMUL(inlet_b2 << 3, param_sub2sb << 2);

// Sends //
outlet_s1 = CHANNELONESENDA + CHANNELTWOSENDA + CHANNELTHREESENDA +
            CHANNELFOURSENDA + CHANNELFIVESENDA + CHANNELSIXSENDA +
            CHANNELSEVENSENDA + CHANNELEIGHTSENDA + SUB1SENDA + SUB2SENDA;
outlet_s2 = CHANNELONESENDB + CHANNELTWOSENDB + CHANNELTHREESENDB +
            CHANNELFOURSENDB + CHANNELFIVESENDB + CHANNELSIXSENDB +
            CHANNELSEVENSENDB + CHANNELEIGHTSENDB + SUB1SENDB + SUB2SENDB;

// Returns//
int32_t RETURNAL;
int32_t RETURNAR;
if (param_returnaoo) {
  RETURNAL = ___SMMUL(inlet_r1l << 3, param_retavol << 2);
  RETURNAR = ___SMMUL(inlet_r1r << 3, param_retavol << 2);
}

else {
  RETURNAL = 0;
  RETURNAR = 0;
}

int32_t RETURNB;
if (param_returnboo) {
  RETURNB = ___SMMUL(inlet_r2 << 3, param_retbvol << 2);
} else {
  RETURNB = 0;
}

// Busses - //
outlet_b1 = ___SMMUL((CH1BUS1 + CH2BUS1 + CH3BUS1 + CH4BUS1 + CH5BUS1 +
                      CH6BUS1 + CH7BUS1 + CH8BUS1)
                         << 3,
                     param_sub1vol << 2);
outlet_b2 = ___SMMUL((CH1BUS2 + CH2BUS2 + CH3BUS2 + CH4BUS2 + CH5BUS2 +
                      CH6BUS2 + CH7BUS2 + CH8BUS2)
                         << 3,
                     param_sub2vol << 2);

// Master //
outlet_ml =
    ___SMMUL((CH1MAIN + CH2MAIN + CH3MAIN + CH4MAIN + CH5MAIN + CH6MAIN +
              CH7MAIN + CH8MAIN + RETURNAL + RETURNB + inlet_b1 + inlet_b2)
                 << 3,
             param_Mvol << 2);
outlet_mr =
    ___SMMUL((CH1MAIN + CH2MAIN + CH3MAIN + CH4MAIN + CH5MAIN + CH6MAIN +
              CH7MAIN + CH8MAIN + RETURNAR + RETURNB + inlet_b1 + inlet_b2)
                 << 3,
             param_Mvol << 2);

Privacy

© 2024 Zrna Research