-
Notifications
You must be signed in to change notification settings - Fork 1
/
AxumSummingProcessing.h
59 lines (43 loc) · 2.48 KB
/
AxumSummingProcessing.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#ifndef AXUMSUMMINGPROCESSING_H
#define AXUMSUMMINGPROCESSING_H
#define NUMBEROFINPUTCHANNELS 112 //32+32 32+16
#define NUMBEROFOUTPUTCHANNELS 80 //32+8 (+32 for N-1s)
#define NUMBEROFBUSSMATRIXINPUTCHANNELS 64
#define NUMBEROFBUSSMATRIXOUTPUTCHANNELS 32
#define NUMBEROFMONITORMATRIXINPUTCHANNELS 48
#define NUMBEROFMONITORMATRIXOUTPUTCHANNELS 8
#define NUMBEROFFACTORS ((NUMBEROFBUSSMATRIXINPUTCHANNELS*NUMBEROFBUSSMATRIXOUTPUTCHANNELS) + \
NUMBEROFBUSSMATRIXOUTPUTCHANNELS + \
(NUMBEROFMONITORMATRIXINPUTCHANNELS*NUMBEROFMONITORMATRIXOUTPUTCHANNELS) + \
NUMBEROFMONITORMATRIXOUTPUTCHANNELS)
#define FACTORINTERPOLATIONDIVIDE 4
volatile float SmoothFactor = 1-0.002;
volatile float VUReleaseFactor;
float BussMatrixInput[NUMBEROFBUSSMATRIXINPUTCHANNELS];
float BussMatrixOutput[NUMBEROFBUSSMATRIXOUTPUTCHANNELS];
float MixMinus[NUMBEROFBUSSMATRIXINPUTCHANNELS];
int SelectedMixMinusBuss[NUMBEROFBUSSMATRIXINPUTCHANNELS];
float MonoMixMinusOutput[NUMBEROFBUSSMATRIXINPUTCHANNELS/2];
float MixMinusDelay[16][NUMBEROFBUSSMATRIXINPUTCHANNELS];
int cntMixMinusDelayTop;
int cntMixMinusDelayBottom;
float MonitorMatrixInput[NUMBEROFMONITORMATRIXINPUTCHANNELS];
float MonitorMatrixOutput[NUMBEROFMONITORMATRIXOUTPUTCHANNELS];
float MatrixFactor[NUMBEROFFACTORS];
const float Update_MatrixFactor[NUMBEROFFACTORS];
float *BussMatrixFactor = MatrixFactor;
const float *Update_BussMatrixFactor = Update_MatrixFactor;
float *MonitorMatrixFactor = &MatrixFactor[(NUMBEROFBUSSMATRIXINPUTCHANNELS*NUMBEROFBUSSMATRIXOUTPUTCHANNELS)+NUMBEROFBUSSMATRIXOUTPUTCHANNELS];
const float *Update_MonitorMatrixFactor = &Update_MatrixFactor[(NUMBEROFBUSSMATRIXINPUTCHANNELS*NUMBEROFBUSSMATRIXOUTPUTCHANNELS)+NUMBEROFBUSSMATRIXOUTPUTCHANNELS];
int StartChannel;
float BussMeterPPM[NUMBEROFBUSSMATRIXOUTPUTCHANNELS+NUMBEROFMONITORMATRIXOUTPUTCHANNELS];
float BussMeterVU[NUMBEROFBUSSMATRIXOUTPUTCHANNELS+NUMBEROFMONITORMATRIXOUTPUTCHANNELS];
float *MonitorMeterPPM = &BussMeterPPM[NUMBEROFBUSSMATRIXOUTPUTCHANNELS];
float *MonitorMeterVU = &BussMeterVU[NUMBEROFBUSSMATRIXOUTPUTCHANNELS];
//float BussTotalInputs[NUMBEROFBUSSMATRIXOUTPUTCHANNELS];
volatile float PhaseRelease = 0.0002;
float Phase[((NUMBEROFBUSSMATRIXOUTPUTCHANNELS/2)+(NUMBEROFBUSSMATRIXOUTPUTCHANNELS/2))];
float PhaseRMS[((NUMBEROFBUSSMATRIXOUTPUTCHANNELS/2)+(NUMBEROFBUSSMATRIXOUTPUTCHANNELS/2))];
void InitializeProcessing();
void Processing(signed int *InputBuffer, signed int *OutputBuffer);
#endif