int32 s1
int32 s2
int32 s3
frac32 output
frac32 o2
frac32 o3
frac32.s.mapvsl b0
frac32.s.mapvsl b1
frac32.s.mapvsl b2
frac32.s.mapvsl b3
frac32.s.mapvsl b4
frac32.s.mapvsl b5
frac32.s.mapvsl b6
frac32.s.mapvsl b7
frac32.s.mapvsl b8
frac32.s.mapvsl b9
frac32.s.mapvsl b10
frac32.s.mapvsl b11
int sel = (inlet_s1 + 4) % 12;
sel = sel < 0 ? sel + 12 : sel;
switch (sel) {
case 0:
outlet_o1 = param_b0;
break;
case 1:
outlet_o1 = param_b1;
break;
case 2:
outlet_o1 = param_b2;
break;
case 3:
outlet_o1 = param_b3;
break;
case 4:
outlet_o1 = param_b4;
break;
case 5:
outlet_o1 = param_b5;
break;
case 6:
outlet_o1 = param_b6;
break;
case 7:
outlet_o1 = param_b7;
break;
case 8:
outlet_o1 = param_b8;
break;
case 9:
outlet_o1 = param_b9;
break;
case 10:
outlet_o1 = param_b10;
break;
case 11:
outlet_o1 = param_b11;
break;
}
outlet_o1 = outlet_o1 >> 7;
outlet_o1 += inlet_s1 << 21;
sel = (inlet_s2 + 4) % 12;
sel = sel < 0 ? sel + 12 : sel;
switch (sel) {
case 0:
outlet_o2 = param_b0;
break;
case 1:
outlet_o2 = param_b1;
break;
case 2:
outlet_o2 = param_b2;
break;
case 3:
outlet_o2 = param_b3;
break;
case 4:
outlet_o2 = param_b4;
break;
case 5:
outlet_o2 = param_b5;
break;
case 6:
outlet_o2 = param_b6;
break;
case 7:
outlet_o2 = param_b7;
break;
case 8:
outlet_o2 = param_b8;
break;
case 9:
outlet_o2 = param_b9;
break;
case 10:
outlet_o2 = param_b10;
break;
case 11:
outlet_o2 = param_b11;
break;
}
outlet_o2 = outlet_o2 >> 7;
outlet_o2 += inlet_s2 << 21;
sel = (inlet_s3 + 4) % 12;
sel = sel < 0 ? sel + 12 : sel;
switch (sel) {
case 0:
outlet_o3 = param_b0;
break;
case 1:
outlet_o3 = param_b1;
break;
case 2:
outlet_o3 = param_b2;
break;
case 3:
outlet_o3 = param_b3;
break;
case 4:
outlet_o3 = param_b4;
break;
case 5:
outlet_o3 = param_b5;
break;
case 6:
outlet_o3 = param_b6;
break;
case 7:
outlet_o3 = param_b7;
break;
case 8:
outlet_o3 = param_b8;
break;
case 9:
outlet_o3 = param_b9;
break;
case 10:
outlet_o3 = param_b10;
break;
case 11:
outlet_o3 = param_b11;
break;
}
outlet_o3 = outlet_o3 >> 7;
outlet_o3 += inlet_s3 << 21;