mx4i

6 channel mixer with 2 sends and 1 subgroup. The first send effect has a stereo return, the second one is mono. There is also send for the subgroup. 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 description. 12% DSP
Author: Jaffasplaffa
License: BSD
Github: jaffa/mix2/mx4i.axo

Inlets

frac32buffer send 1 stereo return L

frac32buffer send 1 stereo return R

frac32buffer send 2 mono return

frac32buffer b1

frac32buffer 1

frac32buffer 2

frac32buffer 3

frac32buffer 4

frac32buffer 5

frac32buffer 6

Outlets

frac32buffer send 1

frac32buffer send 2

frac32buffer Subgroup1

frac32buffer Master out L

frac32buffer Master out R

Parameters

int32 0 = Off 1=Main 2=Subgroup1

int32 0 = Off 1=Main 2=Subgroup1

int32 0 = Off 1=Main 2=Subgroup1

int32 0 = Off 1=Main 2=Subgroup1

int32 0 = Off 1=Main 2=Subgroup1

int32 0 = Off 1=Main 2=Subgroup1

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 Sub1 vol

frac32.u.map Sub1 send a

frac32.u.map Sub1 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 SUBGROUP

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;

// 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;

// 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;

// 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;

// 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;

// 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;

// Sends for subgroups //
int32_t SUB1SENDA = ___SMMUL(inlet_b1 << 3, param_sub1sa << 2);
int32_t SUB1SENDB = ___SMMUL(inlet_b1 << 3, param_sub1sb << 2);

// Sends //
outlet_s1 = CHANNELONESENDA + CHANNELTWOSENDA + CHANNELTHREESENDA +
            CHANNELFOURSENDA + CHANNELFIVESENDA + CHANNELSIXSENDA + SUB1SENDA;
outlet_s2 = CHANNELONESENDB + CHANNELTWOSENDB + CHANNELTHREESENDB +
            CHANNELFOURSENDB + CHANNELFIVESENDB + CHANNELSIXSENDB + SUB1SENDB;

// 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 - Bus 1 //
outlet_b1 =
    ___SMMUL(CH1BUS1 + CH2BUS1 + CH3BUS1 + CH4BUS1 + CH5BUS1 + CH6BUS1 << 3,
             param_sub1vol << 2);

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

Privacy

© 2024 Zrna Research