mx4e

5 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/mx4e.axo

Inlets

frac32buffer send 1 stereo return L

frac32buffer send 1 stereo return R

frac32buffer send 2 mono return

frac32buffer 1

frac32buffer 2

frac32buffer 3

frac32buffer 4

Outlets

frac32buffer send 1

frac32buffer send 2

frac32buffer Master out L

frac32buffer Master out R

Parameters

bool32.tgl ch1

bool32.tgl ch2

bool32.tgl ch3

bool32.tgl ch4

bool32.tgl Returna on/off

bool32.tgl Returna on/off

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 Returna volume

frac32.u.map Returna volume

frac32.u.map Master volume

bool32.mom CHANNELS

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

// Sends //
outlet_s1 =
    CHANNELONESENDA + CHANNELTWOSENDA + CHANNELTHREESENDA + CHANNELFOURSENDA;
outlet_s2 =
    CHANNELONESENDB + CHANNELTWOSENDB + CHANNELTHREESENDB + CHANNELFOURSENDB;

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

// Master //
outlet_ml = ___SMMUL(
    (CHANNELONE + CHANNELTWO + CHANNELTHREE + CHANNELFOUR + RETURNAL + RETURNB)
        << 3,
    param_Mvol << 2);
outlet_mr = ___SMMUL(
    (CHANNELONE + CHANNELTWO + CHANNELTHREE + CHANNELFOUR + RETURNAR + RETURNB)
        << 3,
    param_Mvol << 2);

Privacy

© 2024 Zrna Research