D8

8x8 dispersion matrix This matrix is anti symetrical
Author: Smashed Transistors
License: LGPL
Github: tiar/FDN/D8.axo

Inlets

frac32buffer in0

frac32buffer in1

frac32buffer in2

frac32buffer in3

frac32buffer in4

frac32buffer in5

frac32buffer in6

frac32buffer in7

Outlets

frac32buffer out0

frac32buffer out1

frac32buffer out2

frac32buffer out3

frac32buffer out4

frac32buffer out5

frac32buffer out6

frac32buffer out7

Audio Rate
// T.Rochebois 98
//   0 1 2 3 4 5 6 7
// 0 . - + + - + + +
// 1 + . - + + - + +
// 2 - + . + + + - +
// 3 - - - . + + + -
// 4 + - - - . + - +
// 5 - + - - - . + +
// 6 - - + - + - . +
// 7 - - - + - - - .

//_____________________

// coef = 1/sqrt7      q32

int32_t coef = 1623345050;

int32_t t = inlet_in3 + inlet_in4 + inlet_in5 + inlet_in6 + inlet_in7;

outlet_out0 = ___SMMUL(coef, t - (inlet_in4 << 1) + inlet_in2 - inlet_in1);
outlet_out1 = ___SMMUL(coef, t - (inlet_in5 << 1) + inlet_in0 - inlet_in2);
outlet_out2 = ___SMMUL(coef, t - (inlet_in6 << 1) + inlet_in1 - inlet_in0);

int32_t t2 = -inlet_in0 - inlet_in1 - inlet_in2 - inlet_in3;
outlet_out3 = ___SMMUL(coef, t - (inlet_in7 << 1) + t2);

outlet_out4 =
    ___SMMUL(coef, t2 + (inlet_in0 << 1) + inlet_in5 - inlet_in6 + inlet_in7);
outlet_out5 =
    ___SMMUL(coef, t2 + (inlet_in1 << 1) - inlet_in4 + inlet_in6 + inlet_in7);
outlet_out6 =
    ___SMMUL(coef, t2 + (inlet_in2 << 1) + inlet_in4 - inlet_in5 + inlet_in7);
outlet_out7 =
    ___SMMUL(coef, t2 + (inlet_in3 << 1) - inlet_in4 - inlet_in5 - inlet_in6);

Privacy

© 2024 Zrna Research