User | Revision | Line number | New contents of line |
faker |
0:adfbd02222d4
|
1
|
/*****************************************************/
|
faker |
0:adfbd02222d4
|
2
|
/* MBED MULTI EFFECTOR */
|
faker |
0:adfbd02222d4
|
3
|
/* */
|
faker |
0:adfbd02222d4
|
4
|
/* */
|
faker |
0:adfbd02222d4
|
5
|
/*****************************************************/
|
faker |
0:adfbd02222d4
|
6
|
|
faker |
0:adfbd02222d4
|
7
|
#include "mbed.h"
|
faker |
0:adfbd02222d4
|
8
|
#include "EffectParam.h"
|
faker |
0:adfbd02222d4
|
9
|
#include "TextLCD.h"
|
faker |
0:adfbd02222d4
|
10
|
#include "R_Sw_Check.h"
|
faker |
0:adfbd02222d4
|
11
|
#include "Distotion_Unit.h"
|
faker |
0:adfbd02222d4
|
12
|
#include "Delay_Unit.h"
|
faker |
0:adfbd02222d4
|
13
|
|
faker |
0:adfbd02222d4
|
14
|
//Serial debug(USBTX, USBRX); // tx, rx
|
faker |
0:adfbd02222d4
|
15
|
|
faker |
0:adfbd02222d4
|
16
|
LocalFileSystem local("local");
|
faker |
0:adfbd02222d4
|
17
|
Ticker sampling;
|
faker |
0:adfbd02222d4
|
18
|
|
faker |
0:adfbd02222d4
|
19
|
AnalogIn Ain(p17); // Audio Input
|
faker |
0:adfbd02222d4
|
20
|
AnalogOut Aout(p18); // Audio Output
|
faker |
0:adfbd02222d4
|
21
|
TextLCD lcd(p24, p25, p26, p27, p28, p29, p30); // rs, rw, e, d0, d1, d2, d3)
|
faker |
0:adfbd02222d4
|
22
|
DigitalIn Rsw0A(p5); // Rotary SW 0
|
faker |
0:adfbd02222d4
|
23
|
DigitalIn Rsw0B(p6);
|
faker |
0:adfbd02222d4
|
24
|
DigitalIn Rsw1A(p7); // Rotary SW 1
|
faker |
0:adfbd02222d4
|
25
|
DigitalIn Rsw1B(p8);
|
faker |
0:adfbd02222d4
|
26
|
DigitalIn Rsw2A(p9); // Rotary SW 2
|
faker |
0:adfbd02222d4
|
27
|
DigitalIn Rsw2B(p10);
|
faker |
0:adfbd02222d4
|
28
|
DigitalIn Rsw3A(p11); // Rotary SW 3
|
faker |
0:adfbd02222d4
|
29
|
DigitalIn Rsw3B(p12);
|
faker |
0:adfbd02222d4
|
30
|
DigitalOut busyFlag(p13); // Effect Proc Busy Flag
|
faker |
0:adfbd02222d4
|
31
|
|
faker |
0:adfbd02222d4
|
32
|
/*******************************/
|
faker |
0:adfbd02222d4
|
33
|
/* For Test Signal */
|
faker |
0:adfbd02222d4
|
34
|
/*******************************/
|
faker |
0:adfbd02222d4
|
35
|
#define TEST_SIGNAL_ENABLE (0) // 1 : Internal SinWave for Debug
|
faker |
0:adfbd02222d4
|
36
|
#define TEST_SIGNAL_FREQ (1000.0) // Frequency [Hz]
|
faker |
0:adfbd02222d4
|
37
|
#define TEST_SIGNAL_AMP (30000.0) // Amplitude
|
faker |
0:adfbd02222d4
|
38
|
#define PAI (3.14159)
|
faker |
0:adfbd02222d4
|
39
|
|
faker |
0:adfbd02222d4
|
40
|
/*******************************/
|
faker |
0:adfbd02222d4
|
41
|
/* For ADC & DAC Setting */
|
faker |
0:adfbd02222d4
|
42
|
/*******************************/
|
faker |
0:adfbd02222d4
|
43
|
#define SAMPLING_TIME (25.0) // ADC Sampling Rate [us]
|
faker |
0:adfbd02222d4
|
44
|
volatile unsigned int *g_usiAd0cr, *g_usiAd0dr2; // ADC Reg
|
faker |
0:adfbd02222d4
|
45
|
unsigned int *g_usiDacr; // DAC Reg
|
faker |
0:adfbd02222d4
|
46
|
|
faker |
0:adfbd02222d4
|
47
|
/*******************************/
|
faker |
0:adfbd02222d4
|
48
|
/* Gloval Valinat */
|
faker |
0:adfbd02222d4
|
49
|
/*******************************/
|
faker |
0:adfbd02222d4
|
50
|
unsigned int g_usiFinalOut; // DAC Out Final Data
|
faker |
0:adfbd02222d4
|
51
|
int g_ssBuff[10]; // Audio Data Buff
|
faker |
0:adfbd02222d4
|
52
|
float g_fTestWaveT; // Test Sin Wave Phase
|
faker |
0:adfbd02222d4
|
53
|
int g_iBankNo = 0; // Parameter Patch Bank No
|
faker |
0:adfbd02222d4
|
54
|
int g_iProgNo = 0; // Parameter Patch Program No
|
faker |
0:adfbd02222d4
|
55
|
int g_iFlag = 0; // Pacth Write Flag
|
faker |
0:adfbd02222d4
|
56
|
int g_iProgPatch[BANK_MAX_NUM][PROGNO_MAX_NUM][PP_MAX_NUM]; // Parameter Data
|
faker |
0:adfbd02222d4
|
57
|
|
faker |
0:adfbd02222d4
|
58
|
|
faker |
0:adfbd02222d4
|
59
|
/*******************************/
|
faker |
0:adfbd02222d4
|
60
|
/* Function */
|
faker |
0:adfbd02222d4
|
61
|
/*******************************/
|
faker |
0:adfbd02222d4
|
62
|
int main(void);
|
faker |
0:adfbd02222d4
|
63
|
void effectProcess(void); // Effect Process Function
|
faker |
0:adfbd02222d4
|
64
|
void paramCheck(int*, int*); // Paramter Range Check
|
faker |
0:adfbd02222d4
|
65
|
void param1Change(int*, int*, int*, int*); // Process for Changed Rotary SW1
|
faker |
0:adfbd02222d4
|
66
|
void param2Change(int*, int*, int*, int*); // Process for Changed Rotary SW2
|
faker |
0:adfbd02222d4
|
67
|
void param3Change(int*, int*, int*, int*); // Process for Changed Rotary SW3
|
faker |
0:adfbd02222d4
|
68
|
void param4Change(int*, int*, int*, int*); // Process for Changed Rotary SW4
|
faker |
0:adfbd02222d4
|
69
|
|
faker |
0:adfbd02222d4
|
70
|
void progWrite(int*); //
|
faker |
0:adfbd02222d4
|
71
|
void distParamChange(int*, int*); // Change Parameter for Ditotion
|
faker |
0:adfbd02222d4
|
72
|
void delayParamChange(int*, int*); // Change PArameter for Delay
|
faker |
0:adfbd02222d4
|
73
|
|
faker |
0:adfbd02222d4
|
74
|
void progPatchWite(int); // Paramter Write for Flash ROM
|
faker |
0:adfbd02222d4
|
75
|
void ProgramPatchChange(int, int); //
|
faker |
0:adfbd02222d4
|
76
|
|
faker |
0:adfbd02222d4
|
77
|
/*******************************/
|
faker |
0:adfbd02222d4
|
78
|
/* Effect Process */
|
faker |
0:adfbd02222d4
|
79
|
/*******************************/
|
faker |
0:adfbd02222d4
|
80
|
void effectProcess() {
|
faker |
0:adfbd02222d4
|
81
|
busyFlag = 1;
|
faker |
0:adfbd02222d4
|
82
|
// Line Out
|
faker |
0:adfbd02222d4
|
83
|
*g_usiDacr = g_usiFinalOut;
|
faker |
0:adfbd02222d4
|
84
|
// ADC Start
|
faker |
0:adfbd02222d4
|
85
|
*g_usiAd0cr = 0x01200204;
|
faker |
0:adfbd02222d4
|
86
|
|
faker |
0:adfbd02222d4
|
87
|
#if (TEST_SIGNAL_ENABLE == 1) // Test Signal Sin Wave
|
faker |
0:adfbd02222d4
|
88
|
g_ssBuff[0] = TEST_SIGNAL_AMP * sin(g_fTestWaveT);
|
faker |
0:adfbd02222d4
|
89
|
g_fTestWaveT = g_fTestWaveT + 2.0 * PAI * SAMPLING_TIME * TEST_SIGNAL_FREQ / 1e6;
|
faker |
0:adfbd02222d4
|
90
|
if (g_fTestWaveT >= (2.0 * PAI))g_fTestWaveT = 0;
|
faker |
0:adfbd02222d4
|
91
|
#endif
|
faker |
0:adfbd02222d4
|
92
|
|
faker |
0:adfbd02222d4
|
93
|
//
|
faker |
0:adfbd02222d4
|
94
|
// Effect Func
|
faker |
0:adfbd02222d4
|
95
|
//
|
faker |
0:adfbd02222d4
|
96
|
|
faker |
0:adfbd02222d4
|
97
|
g_ssBuff[1] = distotion(g_ssBuff[0]); // Call Distotion Function
|
faker |
0:adfbd02222d4
|
98
|
g_ssBuff[2] = delay(g_ssBuff[1]); // CAll Delay Function
|
faker |
0:adfbd02222d4
|
99
|
|
faker |
0:adfbd02222d4
|
100
|
//
|
faker |
0:adfbd02222d4
|
101
|
// Effect Func
|
faker |
0:adfbd02222d4
|
102
|
//
|
faker |
0:adfbd02222d4
|
103
|
|
faker |
0:adfbd02222d4
|
104
|
#if (TEST_SIGNAL_ENABLE == 0)
|
faker |
0:adfbd02222d4
|
105
|
while (1) {
|
faker |
0:adfbd02222d4
|
106
|
if ((*g_usiAd0dr2 & 0x80000000) != 0)break; // ADC Done ?
|
faker |
0:adfbd02222d4
|
107
|
}
|
faker |
0:adfbd02222d4
|
108
|
g_ssBuff[0] = (int)(*g_usiAd0dr2 & 0x0000FFF0) - 32768;
|
faker |
0:adfbd02222d4
|
109
|
#endif
|
faker |
0:adfbd02222d4
|
110
|
|
faker |
0:adfbd02222d4
|
111
|
g_usiFinalOut = 0x00010000 | (g_ssBuff[2] + 32768);
|
faker |
0:adfbd02222d4
|
112
|
|
faker |
0:adfbd02222d4
|
113
|
busyFlag = 0;
|
faker |
0:adfbd02222d4
|
114
|
}
|
faker |
0:adfbd02222d4
|
115
|
|
faker |
0:adfbd02222d4
|
116
|
|
faker |
0:adfbd02222d4
|
117
|
|
faker |
0:adfbd02222d4
|
118
|
|
faker |
0:adfbd02222d4
|
119
|
/*******************************/
|
faker |
0:adfbd02222d4
|
120
|
/* MAIN */
|
faker |
0:adfbd02222d4
|
121
|
/*******************************/
|
faker |
0:adfbd02222d4
|
122
|
int main() {
|
faker |
0:adfbd02222d4
|
123
|
|
faker |
0:adfbd02222d4
|
124
|
int i ,j ,k;
|
faker |
0:adfbd02222d4
|
125
|
int iTemp1, iTemp2;
|
faker |
0:adfbd02222d4
|
126
|
int iParamSwPol[4];
|
faker |
0:adfbd02222d4
|
127
|
int iRsw1Num, iRsw2Num, iRsw3Num, iRsw4Num;
|
faker |
0:adfbd02222d4
|
128
|
char str1[256], str2[256];
|
faker |
0:adfbd02222d4
|
129
|
|
faker |
0:adfbd02222d4
|
130
|
iRsw1Num = iRsw2Num = iRsw3Num = iRsw4Num = 0;
|
faker |
0:adfbd02222d4
|
131
|
|
faker |
0:adfbd02222d4
|
132
|
// LCD INIT
|
faker |
0:adfbd02222d4
|
133
|
lcd.cls();
|
faker |
0:adfbd02222d4
|
134
|
lcd.locate(0,0);
|
faker |
0:adfbd02222d4
|
135
|
lcd.printf("Multi Effector");
|
faker |
0:adfbd02222d4
|
136
|
lcd.locate(1,1);
|
faker |
0:adfbd02222d4
|
137
|
lcd.printf("Mode:");
|
faker |
0:adfbd02222d4
|
138
|
param1Change(&iRsw1Num, &iRsw2Num, &iRsw3Num, &iRsw4Num);
|
faker |
0:adfbd02222d4
|
139
|
|
faker |
0:adfbd02222d4
|
140
|
// Program Patch File Open
|
faker |
0:adfbd02222d4
|
141
|
FILE *fp = fopen("/local/prm.txt", "r");
|
faker |
0:adfbd02222d4
|
142
|
if(!fp) {
|
faker |
0:adfbd02222d4
|
143
|
progPatchWite(1); // No File
|
faker |
0:adfbd02222d4
|
144
|
}else{
|
faker |
0:adfbd02222d4
|
145
|
// Read Patch from File
|
faker |
0:adfbd02222d4
|
146
|
fgets(str1, 256, fp);
|
faker |
0:adfbd02222d4
|
147
|
fgets(str2, 256, fp);
|
faker |
0:adfbd02222d4
|
148
|
for(i=0;i<BANK_MAX_NUM;i++){
|
faker |
0:adfbd02222d4
|
149
|
for(j=0;j<PROGNO_MAX_NUM;j++){
|
faker |
0:adfbd02222d4
|
150
|
fscanf(fp, "%5d%5d", &iTemp1, &iTemp2);
|
faker |
0:adfbd02222d4
|
151
|
for(k=0;k<PP_MAX_NUM;k++){
|
faker |
0:adfbd02222d4
|
152
|
fscanf(fp, "%5d", &g_iProgPatch[i][j][k]);
|
faker |
0:adfbd02222d4
|
153
|
}
|
faker |
0:adfbd02222d4
|
154
|
}
|
faker |
0:adfbd02222d4
|
155
|
}
|
faker |
0:adfbd02222d4
|
156
|
fclose(fp);
|
faker |
0:adfbd02222d4
|
157
|
}
|
faker |
0:adfbd02222d4
|
158
|
|
faker |
0:adfbd02222d4
|
159
|
// ADC & DAC SETTING
|
faker |
0:adfbd02222d4
|
160
|
g_usiAd0cr = (unsigned int*)0x40034000;
|
faker |
0:adfbd02222d4
|
161
|
g_usiAd0dr2 = (unsigned int*)0x40034018;
|
faker |
0:adfbd02222d4
|
162
|
g_usiDacr = (unsigned int*)0x4008C000;
|
faker |
0:adfbd02222d4
|
163
|
|
faker |
0:adfbd02222d4
|
164
|
// SAMPLING TIMER START
|
faker |
0:adfbd02222d4
|
165
|
sampling.attach_us(&effectProcess, SAMPLING_TIME);
|
faker |
0:adfbd02222d4
|
166
|
|
faker |
0:adfbd02222d4
|
167
|
// Rotary SW State Check
|
faker |
0:adfbd02222d4
|
168
|
while (1) {
|
faker |
0:adfbd02222d4
|
169
|
switch (ucRotarySwPol(Rsw0A, Rsw0B, Rsw1A, Rsw1B, Rsw2A, Rsw2B, Rsw3A, Rsw3B, iParamSwPol)) {
|
faker |
0:adfbd02222d4
|
170
|
case 0:
|
faker |
0:adfbd02222d4
|
171
|
iRsw1Num += iParamSwPol[0];
|
faker |
0:adfbd02222d4
|
172
|
param1Change(&iRsw1Num, &iRsw2Num, &iRsw3Num, &iRsw4Num);
|
faker |
0:adfbd02222d4
|
173
|
break;
|
faker |
0:adfbd02222d4
|
174
|
case 1:
|
faker |
0:adfbd02222d4
|
175
|
iRsw2Num += iParamSwPol[1];
|
faker |
0:adfbd02222d4
|
176
|
param2Change(&iRsw1Num, &iRsw2Num, &iRsw3Num, &iRsw4Num);
|
faker |
0:adfbd02222d4
|
177
|
break;
|
faker |
0:adfbd02222d4
|
178
|
case 2:
|
faker |
0:adfbd02222d4
|
179
|
iRsw3Num += iParamSwPol[2];
|
faker |
0:adfbd02222d4
|
180
|
param3Change(&iRsw1Num, &iRsw2Num, &iRsw3Num, &iRsw4Num);
|
faker |
0:adfbd02222d4
|
181
|
break;
|
faker |
0:adfbd02222d4
|
182
|
case 3:
|
faker |
0:adfbd02222d4
|
183
|
iRsw4Num += iParamSwPol[3];
|
faker |
0:adfbd02222d4
|
184
|
param4Change(&iRsw1Num, &iRsw2Num, &iRsw3Num, &iRsw4Num);
|
faker |
0:adfbd02222d4
|
185
|
break;
|
faker |
0:adfbd02222d4
|
186
|
default:
|
faker |
0:adfbd02222d4
|
187
|
break;
|
faker |
0:adfbd02222d4
|
188
|
}
|
faker |
0:adfbd02222d4
|
189
|
}
|
faker |
0:adfbd02222d4
|
190
|
}
|
faker |
0:adfbd02222d4
|
191
|
|
faker |
0:adfbd02222d4
|
192
|
|
faker |
0:adfbd02222d4
|
193
|
/*******************************/
|
faker |
0:adfbd02222d4
|
194
|
/* Param Check */
|
faker |
0:adfbd02222d4
|
195
|
/*******************************/
|
faker |
0:adfbd02222d4
|
196
|
void paramCheck(int* iParam, int iMaxValue) {
|
faker |
0:adfbd02222d4
|
197
|
|
faker |
0:adfbd02222d4
|
198
|
if(*iParam >= iMaxValue)*iParam = 0;
|
faker |
0:adfbd02222d4
|
199
|
if(*iParam < 0)*iParam = iMaxValue - 1;
|
faker |
0:adfbd02222d4
|
200
|
|
faker |
0:adfbd02222d4
|
201
|
}
|
faker |
0:adfbd02222d4
|
202
|
|
faker |
0:adfbd02222d4
|
203
|
|
faker |
0:adfbd02222d4
|
204
|
/*******************************/
|
faker |
0:adfbd02222d4
|
205
|
/* Param1 Change */
|
faker |
0:adfbd02222d4
|
206
|
/*******************************/
|
faker |
0:adfbd02222d4
|
207
|
void param1Change(int* iParam1, int* iParam2, int* iParam3, int* iParam4) {
|
faker |
0:adfbd02222d4
|
208
|
|
faker |
0:adfbd02222d4
|
209
|
paramCheck(iParam1, MODE_MAX_NUM);
|
faker |
0:adfbd02222d4
|
210
|
|
faker |
0:adfbd02222d4
|
211
|
lcd.locate(6,1);
|
faker |
0:adfbd02222d4
|
212
|
lcd.printf(" ");
|
faker |
0:adfbd02222d4
|
213
|
lcd.locate(0,2);
|
faker |
0:adfbd02222d4
|
214
|
lcd.printf(" ");
|
faker |
0:adfbd02222d4
|
215
|
lcd.locate(0,3);
|
faker |
0:adfbd02222d4
|
216
|
lcd.printf(" ");
|
faker |
0:adfbd02222d4
|
217
|
|
faker |
0:adfbd02222d4
|
218
|
switch (*iParam1) {
|
faker |
0:adfbd02222d4
|
219
|
case MODE_PLAY:
|
faker |
0:adfbd02222d4
|
220
|
lcd.locate(6,1);
|
faker |
0:adfbd02222d4
|
221
|
lcd.printf("PLAY");
|
faker |
0:adfbd02222d4
|
222
|
lcd.locate(2,2);
|
faker |
0:adfbd02222d4
|
223
|
lcd.printf(" Bank PrgNo");
|
faker |
0:adfbd02222d4
|
224
|
*iParam2 = g_iBankNo;
|
faker |
0:adfbd02222d4
|
225
|
*iParam3 = g_iProgNo;
|
faker |
0:adfbd02222d4
|
226
|
break;
|
faker |
0:adfbd02222d4
|
227
|
case MODE_EDIT:
|
faker |
0:adfbd02222d4
|
228
|
lcd.locate(6,1);
|
faker |
0:adfbd02222d4
|
229
|
lcd.printf("EDIT");
|
faker |
0:adfbd02222d4
|
230
|
lcd.locate(2,2);
|
faker |
0:adfbd02222d4
|
231
|
lcd.printf("Effct Param Value");
|
faker |
0:adfbd02222d4
|
232
|
*iParam2 = *iParam3 = 0;
|
faker |
0:adfbd02222d4
|
233
|
break;
|
faker |
0:adfbd02222d4
|
234
|
case MODE_PROGWRITE:
|
faker |
0:adfbd02222d4
|
235
|
lcd.locate(6,1);
|
faker |
0:adfbd02222d4
|
236
|
lcd.printf("Prog Write");
|
faker |
0:adfbd02222d4
|
237
|
lcd.locate(2,2);
|
faker |
0:adfbd02222d4
|
238
|
lcd.printf(" Bank PrgNo Write");
|
faker |
0:adfbd02222d4
|
239
|
*iParam2 = g_iBankNo;
|
faker |
0:adfbd02222d4
|
240
|
*iParam3 = g_iProgNo;
|
faker |
0:adfbd02222d4
|
241
|
break;
|
faker |
0:adfbd02222d4
|
242
|
default:
|
faker |
0:adfbd02222d4
|
243
|
break;
|
faker |
0:adfbd02222d4
|
244
|
}
|
faker |
0:adfbd02222d4
|
245
|
|
faker |
0:adfbd02222d4
|
246
|
param2Change(iParam1, iParam2, iParam3, iParam4);
|
faker |
0:adfbd02222d4
|
247
|
|
faker |
0:adfbd02222d4
|
248
|
}
|
faker |
0:adfbd02222d4
|
249
|
|
faker |
0:adfbd02222d4
|
250
|
|
faker |
0:adfbd02222d4
|
251
|
/*******************************/
|
faker |
0:adfbd02222d4
|
252
|
/* Param2 Change */
|
faker |
0:adfbd02222d4
|
253
|
/*******************************/
|
faker |
0:adfbd02222d4
|
254
|
void param2Change(int* iParam1, int* iParam2, int* iParam3, int* iParam4) {
|
faker |
0:adfbd02222d4
|
255
|
|
faker |
0:adfbd02222d4
|
256
|
lcd.locate(0,3);
|
faker |
0:adfbd02222d4
|
257
|
lcd.printf(" ");
|
faker |
0:adfbd02222d4
|
258
|
|
faker |
0:adfbd02222d4
|
259
|
switch (*iParam1) {
|
faker |
0:adfbd02222d4
|
260
|
case MODE_PLAY:
|
faker |
0:adfbd02222d4
|
261
|
paramCheck(iParam2, BANK_MAX_NUM);
|
faker |
0:adfbd02222d4
|
262
|
g_iBankNo = *iParam2;
|
faker |
0:adfbd02222d4
|
263
|
*iParam3 = g_iProgNo;
|
faker |
0:adfbd02222d4
|
264
|
break;
|
faker |
0:adfbd02222d4
|
265
|
case MODE_EDIT:
|
faker |
0:adfbd02222d4
|
266
|
paramCheck(iParam2, EFFECT_MAX_NUM);
|
faker |
0:adfbd02222d4
|
267
|
*iParam3 = 0;
|
faker |
0:adfbd02222d4
|
268
|
break;
|
faker |
0:adfbd02222d4
|
269
|
case MODE_PROGWRITE:
|
faker |
0:adfbd02222d4
|
270
|
paramCheck(iParam2, BANK_MAX_NUM);
|
faker |
0:adfbd02222d4
|
271
|
g_iBankNo = *iParam2;
|
faker |
0:adfbd02222d4
|
272
|
*iParam3 = g_iProgNo;
|
faker |
0:adfbd02222d4
|
273
|
*iParam4 = 0;
|
faker |
0:adfbd02222d4
|
274
|
g_iFlag = 0;
|
faker |
0:adfbd02222d4
|
275
|
default:
|
faker |
0:adfbd02222d4
|
276
|
break;
|
faker |
0:adfbd02222d4
|
277
|
}
|
faker |
0:adfbd02222d4
|
278
|
|
faker |
0:adfbd02222d4
|
279
|
if ((*iParam1 == MODE_PLAY) || (*iParam1 == MODE_PROGWRITE)) {
|
faker |
0:adfbd02222d4
|
280
|
lcd.locate(6,3);
|
faker |
0:adfbd02222d4
|
281
|
lcd.printf("%d",*iParam2);
|
faker |
0:adfbd02222d4
|
282
|
}
|
faker |
0:adfbd02222d4
|
283
|
|
faker |
0:adfbd02222d4
|
284
|
if (*iParam1 == MODE_EDIT) {
|
faker |
0:adfbd02222d4
|
285
|
switch (*iParam2) {
|
faker |
0:adfbd02222d4
|
286
|
case EFFECT_DIST:
|
faker |
0:adfbd02222d4
|
287
|
lcd.locate(2,3);
|
faker |
0:adfbd02222d4
|
288
|
lcd.printf(" DIST");
|
faker |
0:adfbd02222d4
|
289
|
break;
|
faker |
0:adfbd02222d4
|
290
|
case EFFECT_DELAY:
|
faker |
0:adfbd02222d4
|
291
|
lcd.locate(2,3);
|
faker |
0:adfbd02222d4
|
292
|
lcd.printf("DELAY");
|
faker |
0:adfbd02222d4
|
293
|
break;
|
faker |
0:adfbd02222d4
|
294
|
default:
|
faker |
0:adfbd02222d4
|
295
|
break;
|
faker |
0:adfbd02222d4
|
296
|
}
|
faker |
0:adfbd02222d4
|
297
|
}
|
faker |
0:adfbd02222d4
|
298
|
|
faker |
0:adfbd02222d4
|
299
|
param3Change(iParam1, iParam2, iParam3, iParam4);
|
faker |
0:adfbd02222d4
|
300
|
|
faker |
0:adfbd02222d4
|
301
|
}
|
faker |
0:adfbd02222d4
|
302
|
|
faker |
0:adfbd02222d4
|
303
|
|
faker |
0:adfbd02222d4
|
304
|
/*******************************/
|
faker |
0:adfbd02222d4
|
305
|
/* Param3 Change */
|
faker |
0:adfbd02222d4
|
306
|
/*******************************/
|
faker |
0:adfbd02222d4
|
307
|
void param3Change(int* iParam1, int* iParam2, int* iParam3, int* iParam4) {
|
faker |
0:adfbd02222d4
|
308
|
|
faker |
0:adfbd02222d4
|
309
|
lcd.locate(8,3);
|
faker |
0:adfbd02222d4
|
310
|
lcd.printf(" ");
|
faker |
0:adfbd02222d4
|
311
|
|
faker |
0:adfbd02222d4
|
312
|
switch (*iParam1) {
|
faker |
0:adfbd02222d4
|
313
|
case MODE_PLAY:
|
faker |
0:adfbd02222d4
|
314
|
paramCheck(iParam3, PROGNO_MAX_NUM);
|
faker |
0:adfbd02222d4
|
315
|
g_iProgNo = *iParam3;
|
faker |
0:adfbd02222d4
|
316
|
break;
|
faker |
0:adfbd02222d4
|
317
|
case MODE_EDIT:
|
faker |
0:adfbd02222d4
|
318
|
switch (*iParam2) {
|
faker |
0:adfbd02222d4
|
319
|
case EFFECT_DIST:
|
faker |
0:adfbd02222d4
|
320
|
paramCheck(iParam3, DIST_PARAM_MAX_NUM);
|
faker |
0:adfbd02222d4
|
321
|
switch (*iParam3) {
|
faker |
0:adfbd02222d4
|
322
|
case DIST_PARAM_BYPASS: *iParam4 = g_iProgPatch[g_iBankNo][g_iProgNo][PP_DIST_PARAM_BYPASS];
|
faker |
0:adfbd02222d4
|
323
|
break;
|
faker |
0:adfbd02222d4
|
324
|
case DIST_PARAM_MODE: *iParam4 = g_iProgPatch[g_iBankNo][g_iProgNo][PP_DIST_PARAM_MODE];
|
faker |
0:adfbd02222d4
|
325
|
break;
|
faker |
0:adfbd02222d4
|
326
|
case DIST_PARAM_INPUTGAIN: *iParam4 = g_iProgPatch[g_iBankNo][g_iProgNo][PP_DIST_PARAM_INPUTGAIN];
|
faker |
0:adfbd02222d4
|
327
|
break;
|
faker |
0:adfbd02222d4
|
328
|
case DIST_PARAM_CLIPLEVEL: *iParam4 = g_iProgPatch[g_iBankNo][g_iProgNo][PP_DIST_PARAM_CLIPLEVEL];
|
faker |
0:adfbd02222d4
|
329
|
break;
|
faker |
0:adfbd02222d4
|
330
|
case DIST_PARAM_OUTPUTGAIN: *iParam4 = g_iProgPatch[g_iBankNo][g_iProgNo][PP_DIST_PARAM_OUTPUTGAIN];
|
faker |
0:adfbd02222d4
|
331
|
break;
|
faker |
0:adfbd02222d4
|
332
|
default: break;
|
faker |
0:adfbd02222d4
|
333
|
}
|
faker |
0:adfbd02222d4
|
334
|
distParamChange(iParam3, iParam4);
|
faker |
0:adfbd02222d4
|
335
|
break;
|
faker |
0:adfbd02222d4
|
336
|
case EFFECT_DELAY:
|
faker |
0:adfbd02222d4
|
337
|
paramCheck(iParam3, DLY_PARAM_MAX_NUM);
|
faker |
0:adfbd02222d4
|
338
|
switch (*iParam3) {
|
faker |
0:adfbd02222d4
|
339
|
case DLY_PARAM_BYPASS: *iParam4 = g_iProgPatch[g_iBankNo][g_iProgNo][PP_DLY_PARAM_BYPASS];
|
faker |
0:adfbd02222d4
|
340
|
break;
|
faker |
0:adfbd02222d4
|
341
|
case DLY_PARAM_DELAYTIME: *iParam4 = g_iProgPatch[g_iBankNo][g_iProgNo][PP_DLY_PARAM_DELAYTIME];
|
faker |
0:adfbd02222d4
|
342
|
break;
|
faker |
0:adfbd02222d4
|
343
|
case DLY_PARAM_FBGAIN: *iParam4 = g_iProgPatch[g_iBankNo][g_iProgNo][PP_DLY_PARAM_FBGAIN];
|
faker |
0:adfbd02222d4
|
344
|
break;
|
faker |
0:adfbd02222d4
|
345
|
default: break;
|
faker |
0:adfbd02222d4
|
346
|
}
|
faker |
0:adfbd02222d4
|
347
|
delayParamChange(iParam3, iParam4);
|
faker |
0:adfbd02222d4
|
348
|
break;
|
faker |
0:adfbd02222d4
|
349
|
default:
|
faker |
0:adfbd02222d4
|
350
|
break;
|
faker |
0:adfbd02222d4
|
351
|
}
|
faker |
0:adfbd02222d4
|
352
|
break;
|
faker |
0:adfbd02222d4
|
353
|
case MODE_PROGWRITE:
|
faker |
0:adfbd02222d4
|
354
|
paramCheck(iParam3, PROGNO_MAX_NUM);
|
faker |
0:adfbd02222d4
|
355
|
g_iProgNo = *iParam3;
|
faker |
0:adfbd02222d4
|
356
|
*iParam4 = 0;
|
faker |
0:adfbd02222d4
|
357
|
g_iFlag = 0;
|
faker |
0:adfbd02222d4
|
358
|
progWrite(iParam4);
|
faker |
0:adfbd02222d4
|
359
|
break;
|
faker |
0:adfbd02222d4
|
360
|
default:
|
faker |
0:adfbd02222d4
|
361
|
break;
|
faker |
0:adfbd02222d4
|
362
|
}
|
faker |
0:adfbd02222d4
|
363
|
|
faker |
0:adfbd02222d4
|
364
|
if ((*iParam1 == MODE_PLAY) || (*iParam1 == MODE_PROGWRITE)) {
|
faker |
0:adfbd02222d4
|
365
|
lcd.locate(12,3);
|
faker |
0:adfbd02222d4
|
366
|
lcd.printf("%d",*iParam3);
|
faker |
0:adfbd02222d4
|
367
|
}
|
faker |
0:adfbd02222d4
|
368
|
|
faker |
0:adfbd02222d4
|
369
|
}
|
faker |
0:adfbd02222d4
|
370
|
|
faker |
0:adfbd02222d4
|
371
|
|
faker |
0:adfbd02222d4
|
372
|
/*******************************/
|
faker |
0:adfbd02222d4
|
373
|
/* Param4 Change */
|
faker |
0:adfbd02222d4
|
374
|
/*******************************/
|
faker |
0:adfbd02222d4
|
375
|
void param4Change(int* iParam1, int* iParam2, int* iParam3, int* iParam4) {
|
faker |
0:adfbd02222d4
|
376
|
|
faker |
0:adfbd02222d4
|
377
|
lcd.locate(14,3);
|
faker |
0:adfbd02222d4
|
378
|
lcd.printf(" ");
|
faker |
0:adfbd02222d4
|
379
|
|
faker |
0:adfbd02222d4
|
380
|
switch (*iParam1) {
|
faker |
0:adfbd02222d4
|
381
|
case MODE_EDIT:
|
faker |
0:adfbd02222d4
|
382
|
switch (*iParam2) {
|
faker |
0:adfbd02222d4
|
383
|
case EFFECT_DIST:
|
faker |
0:adfbd02222d4
|
384
|
distParamChange(iParam3, iParam4);
|
faker |
0:adfbd02222d4
|
385
|
break;
|
faker |
0:adfbd02222d4
|
386
|
case EFFECT_DELAY:
|
faker |
0:adfbd02222d4
|
387
|
delayParamChange(iParam3, iParam4);
|
faker |
0:adfbd02222d4
|
388
|
break;
|
faker |
0:adfbd02222d4
|
389
|
default:
|
faker |
0:adfbd02222d4
|
390
|
break;
|
faker |
0:adfbd02222d4
|
391
|
}
|
faker |
0:adfbd02222d4
|
392
|
break;
|
faker |
0:adfbd02222d4
|
393
|
case MODE_PROGWRITE:
|
faker |
0:adfbd02222d4
|
394
|
progWrite(iParam4);
|
faker |
0:adfbd02222d4
|
395
|
break;
|
faker |
0:adfbd02222d4
|
396
|
default:
|
faker |
0:adfbd02222d4
|
397
|
break;
|
faker |
0:adfbd02222d4
|
398
|
}
|
faker |
0:adfbd02222d4
|
399
|
|
faker |
0:adfbd02222d4
|
400
|
}
|
faker |
0:adfbd02222d4
|
401
|
|
faker |
0:adfbd02222d4
|
402
|
|
faker |
0:adfbd02222d4
|
403
|
/*******************************/
|
faker |
0:adfbd02222d4
|
404
|
/* Distotion Param Change */
|
faker |
0:adfbd02222d4
|
405
|
/*******************************/
|
faker |
0:adfbd02222d4
|
406
|
void distParamChange(int* iParam3, int* iParam4) {
|
faker |
0:adfbd02222d4
|
407
|
|
faker |
0:adfbd02222d4
|
408
|
lcd.locate(8,3);
|
faker |
0:adfbd02222d4
|
409
|
lcd.printf(" ");
|
faker |
0:adfbd02222d4
|
410
|
lcd.locate(8,3);
|
faker |
0:adfbd02222d4
|
411
|
|
faker |
0:adfbd02222d4
|
412
|
switch (*iParam3) {
|
faker |
0:adfbd02222d4
|
413
|
case DIST_PARAM_BYPASS:
|
faker |
0:adfbd02222d4
|
414
|
paramCheck(iParam4, DIST_VALUE_BYPASS_MAX);
|
faker |
0:adfbd02222d4
|
415
|
g_iDistBypass = *iParam4;
|
faker |
0:adfbd02222d4
|
416
|
//g_iProgPatch[g_iBankNo][g_iProgNo][PP_DIST_PARAM_BYPASS] = *iParam4;
|
faker |
0:adfbd02222d4
|
417
|
if(g_iDistBypass == 0){
|
faker |
0:adfbd02222d4
|
418
|
lcd.printf("BYPSS OFF");
|
faker |
0:adfbd02222d4
|
419
|
}else{
|
faker |
0:adfbd02222d4
|
420
|
lcd.printf("BYPSS ON");
|
faker |
0:adfbd02222d4
|
421
|
}
|
faker |
0:adfbd02222d4
|
422
|
break;
|
faker |
0:adfbd02222d4
|
423
|
case DIST_PARAM_MODE:
|
faker |
0:adfbd02222d4
|
424
|
paramCheck(iParam4, DIST_VALUE_MODE_MAX);
|
faker |
0:adfbd02222d4
|
425
|
g_iDistMode = *iParam4;
|
faker |
0:adfbd02222d4
|
426
|
//g_iProgPatch[g_iBankNo][g_iProgNo][PP_DIST_PARAM_MODE] = *iParam4;
|
faker |
0:adfbd02222d4
|
427
|
lcd.printf(" MODE %d", *iParam4);
|
faker |
0:adfbd02222d4
|
428
|
break;
|
faker |
0:adfbd02222d4
|
429
|
case DIST_PARAM_INPUTGAIN:
|
faker |
0:adfbd02222d4
|
430
|
paramCheck(iParam4, DIST_VALUE_INPUTGAIN_MAX);
|
faker |
0:adfbd02222d4
|
431
|
g_iDistInputGain = *iParam4;
|
faker |
0:adfbd02222d4
|
432
|
//g_iProgPatch[g_iBankNo][g_iProgNo][PP_DIST_PARAM_INPUTGAIN] = *iParam4;
|
faker |
0:adfbd02222d4
|
433
|
lcd.printf("INP.G %d", *iParam4);
|
faker |
0:adfbd02222d4
|
434
|
break;
|
faker |
0:adfbd02222d4
|
435
|
case DIST_PARAM_CLIPLEVEL:
|
faker |
0:adfbd02222d4
|
436
|
paramCheck(iParam4, DIST_VALUE_CLIPLEVEL_MAX);
|
faker |
0:adfbd02222d4
|
437
|
g_iDistClipLevel = *iParam4;
|
faker |
0:adfbd02222d4
|
438
|
//g_iProgPatch[g_iBankNo][g_iProgNo][PP_DIST_PARAM_CLIPLEVEL] = *iParam4;
|
faker |
0:adfbd02222d4
|
439
|
lcd.printf("CLP.L %d", *iParam4);
|
faker |
0:adfbd02222d4
|
440
|
break;
|
faker |
0:adfbd02222d4
|
441
|
case DIST_PARAM_OUTPUTGAIN:
|
faker |
0:adfbd02222d4
|
442
|
paramCheck(iParam4, DIST_VALUE_OUTPUTGAIN_MAX);
|
faker |
0:adfbd02222d4
|
443
|
g_iDistOutputGain = *iParam4;
|
faker |
0:adfbd02222d4
|
444
|
//g_iProgPatch[g_iBankNo][g_iProgNo][PP_DIST_PARAM_OUTPUTGAIN] = *iParam4;
|
faker |
0:adfbd02222d4
|
445
|
lcd.printf("OUT.G %d", *iParam4);
|
faker |
0:adfbd02222d4
|
446
|
break;
|
faker |
0:adfbd02222d4
|
447
|
default:
|
faker |
0:adfbd02222d4
|
448
|
break;
|
faker |
0:adfbd02222d4
|
449
|
|
faker |
0:adfbd02222d4
|
450
|
}
|
faker |
0:adfbd02222d4
|
451
|
}
|
faker |
0:adfbd02222d4
|
452
|
|
faker |
0:adfbd02222d4
|
453
|
/*******************************/
|
faker |
0:adfbd02222d4
|
454
|
/* Delay Param Change */
|
faker |
0:adfbd02222d4
|
455
|
/*******************************/
|
faker |
0:adfbd02222d4
|
456
|
void delayParamChange(int* iParam3, int* iParam4) {
|
faker |
0:adfbd02222d4
|
457
|
|
faker |
0:adfbd02222d4
|
458
|
lcd.locate(8,3);
|
faker |
0:adfbd02222d4
|
459
|
lcd.printf(" ");
|
faker |
0:adfbd02222d4
|
460
|
lcd.locate(8,3);
|
faker |
0:adfbd02222d4
|
461
|
|
faker |
0:adfbd02222d4
|
462
|
switch (*iParam3) {
|
faker |
0:adfbd02222d4
|
463
|
case DLY_PARAM_BYPASS:
|
faker |
0:adfbd02222d4
|
464
|
paramCheck(iParam4, DLY_VALUE_BYPASS_MAX);
|
faker |
0:adfbd02222d4
|
465
|
g_iDelayBypass = *iParam4;
|
faker |
0:adfbd02222d4
|
466
|
//g_iProgPatch[g_iBankNo][g_iProgNo][PP_DLY_PARAM_BYPASS] = *iParam4;
|
faker |
0:adfbd02222d4
|
467
|
if(g_iDelayBypass == 0){
|
faker |
0:adfbd02222d4
|
468
|
lcd.printf("BYPSS OFF");
|
faker |
0:adfbd02222d4
|
469
|
}else{
|
faker |
0:adfbd02222d4
|
470
|
lcd.printf("BYPSS ON");
|
faker |
0:adfbd02222d4
|
471
|
}
|
faker |
0:adfbd02222d4
|
472
|
break;
|
faker |
0:adfbd02222d4
|
473
|
case DLY_PARAM_DELAYTIME:
|
faker |
0:adfbd02222d4
|
474
|
paramCheck(iParam4, DLY_VALUE_DELAYTIME_MAX);
|
faker |
0:adfbd02222d4
|
475
|
g_iDelayTime = *iParam4;
|
faker |
0:adfbd02222d4
|
476
|
//g_iProgPatch[g_iBankNo][g_iProgNo][PP_DLY_PARAM_DELAYTIME] = *iParam4;
|
faker |
0:adfbd02222d4
|
477
|
lcd.printf("DLY.T %d", *iParam4);
|
faker |
0:adfbd02222d4
|
478
|
break;
|
faker |
0:adfbd02222d4
|
479
|
case DLY_PARAM_FBGAIN:
|
faker |
0:adfbd02222d4
|
480
|
paramCheck(iParam4, DLY_VALUE_FBGAIN_MAX);
|
faker |
0:adfbd02222d4
|
481
|
g_iDelayFeedBackLevel = *iParam4;
|
faker |
0:adfbd02222d4
|
482
|
//g_iProgPatch[g_iBankNo][g_iProgNo][PP_DLY_PARAM_FBGAIN] = *iParam4;
|
faker |
0:adfbd02222d4
|
483
|
lcd.printf(" FB.G %d", *iParam4);
|
faker |
0:adfbd02222d4
|
484
|
break;
|
faker |
0:adfbd02222d4
|
485
|
default:
|
faker |
0:adfbd02222d4
|
486
|
break;
|
faker |
0:adfbd02222d4
|
487
|
|
faker |
0:adfbd02222d4
|
488
|
}
|
faker |
0:adfbd02222d4
|
489
|
}
|
faker |
0:adfbd02222d4
|
490
|
|
faker |
0:adfbd02222d4
|
491
|
/*******************************/
|
faker |
0:adfbd02222d4
|
492
|
/* Program Patch Write */
|
faker |
0:adfbd02222d4
|
493
|
/*******************************/
|
faker |
0:adfbd02222d4
|
494
|
void progWrite(int* param){
|
faker |
0:adfbd02222d4
|
495
|
|
faker |
0:adfbd02222d4
|
496
|
if(g_iFlag == 0){
|
faker |
0:adfbd02222d4
|
497
|
if((*param > 24) || (*param < -24)){
|
faker |
0:adfbd02222d4
|
498
|
lcd.locate(14,3);
|
faker |
0:adfbd02222d4
|
499
|
lcd.printf(" Done");
|
faker |
0:adfbd02222d4
|
500
|
ProgramPatchChange(g_iBankNo, g_iProgNo);
|
faker |
0:adfbd02222d4
|
501
|
progPatchWite(0);
|
faker |
0:adfbd02222d4
|
502
|
g_iFlag = 1;
|
faker |
0:adfbd02222d4
|
503
|
}else{
|
faker |
0:adfbd02222d4
|
504
|
lcd.locate(14,3);
|
faker |
0:adfbd02222d4
|
505
|
lcd.printf("Unexe");
|
faker |
0:adfbd02222d4
|
506
|
}
|
faker |
0:adfbd02222d4
|
507
|
}else{
|
faker |
0:adfbd02222d4
|
508
|
lcd.locate(14,3);
|
faker |
0:adfbd02222d4
|
509
|
lcd.printf(" Done");
|
faker |
0:adfbd02222d4
|
510
|
}
|
faker |
0:adfbd02222d4
|
511
|
}
|
faker |
0:adfbd02222d4
|
512
|
|
faker |
0:adfbd02222d4
|
513
|
|
faker |
0:adfbd02222d4
|
514
|
/*******************************/
|
faker |
0:adfbd02222d4
|
515
|
/* Program Patch Wite */
|
faker |
0:adfbd02222d4
|
516
|
/*******************************/
|
faker |
0:adfbd02222d4
|
517
|
void progPatchWite(int iFlag){
|
faker |
0:adfbd02222d4
|
518
|
|
faker |
0:adfbd02222d4
|
519
|
int i, j, k;
|
faker |
0:adfbd02222d4
|
520
|
|
faker |
0:adfbd02222d4
|
521
|
FILE *fp = fopen("/local/prm.txt", "w");
|
faker |
0:adfbd02222d4
|
522
|
if(!fp) {
|
faker |
0:adfbd02222d4
|
523
|
while(1){
|
faker |
0:adfbd02222d4
|
524
|
lcd.cls();
|
faker |
0:adfbd02222d4
|
525
|
wait(0.5);
|
faker |
0:adfbd02222d4
|
526
|
lcd.locate(1,1);
|
faker |
0:adfbd02222d4
|
527
|
lcd.printf("SYSTEM ERROR #2000");
|
faker |
0:adfbd02222d4
|
528
|
wait(0.5);
|
faker |
0:adfbd02222d4
|
529
|
}
|
faker |
0:adfbd02222d4
|
530
|
}
|
faker |
0:adfbd02222d4
|
531
|
|
faker |
0:adfbd02222d4
|
532
|
fprintf(fp, " BANK PROG ---- DISTOTION --- ----- DELAY ------\n");
|
faker |
0:adfbd02222d4
|
533
|
fprintf(fp, " BYP MODE ING C.Lv OUTG BYP TIME FB\n");
|
faker |
0:adfbd02222d4
|
534
|
for(i=0;i<BANK_MAX_NUM;i++){
|
faker |
0:adfbd02222d4
|
535
|
for(j=0;j<PROGNO_MAX_NUM;j++){
|
faker |
0:adfbd02222d4
|
536
|
if(iFlag == 1)ProgramPatchChange(i, j);
|
faker |
0:adfbd02222d4
|
537
|
fprintf(fp, "%5d%5d", i, j);
|
faker |
0:adfbd02222d4
|
538
|
for(k=0;k<PP_MAX_NUM;k++){
|
faker |
0:adfbd02222d4
|
539
|
fprintf(fp, "%5d\0", g_iProgPatch[i][j][k]);
|
faker |
0:adfbd02222d4
|
540
|
}
|
faker |
0:adfbd02222d4
|
541
|
fprintf(fp, "\n");
|
faker |
0:adfbd02222d4
|
542
|
}
|
faker |
0:adfbd02222d4
|
543
|
}
|
faker |
0:adfbd02222d4
|
544
|
|
faker |
0:adfbd02222d4
|
545
|
fclose(fp);
|
faker |
0:adfbd02222d4
|
546
|
}
|
faker |
0:adfbd02222d4
|
547
|
|
faker |
0:adfbd02222d4
|
548
|
|
faker |
0:adfbd02222d4
|
549
|
/*******************************/
|
faker |
0:adfbd02222d4
|
550
|
/* Program Patch Chanege */
|
faker |
0:adfbd02222d4
|
551
|
/*******************************/
|
faker |
0:adfbd02222d4
|
552
|
void ProgramPatchChange(int iBank, int iProg){
|
faker |
0:adfbd02222d4
|
553
|
|
faker |
0:adfbd02222d4
|
554
|
// Distotion Param
|
faker |
0:adfbd02222d4
|
555
|
g_iProgPatch[iBank][iProg][PP_DIST_PARAM_BYPASS] = g_iDistBypass;
|
faker |
0:adfbd02222d4
|
556
|
g_iProgPatch[iBank][iProg][PP_DIST_PARAM_MODE] = g_iDistMode;
|
faker |
0:adfbd02222d4
|
557
|
g_iProgPatch[iBank][iProg][PP_DIST_PARAM_INPUTGAIN] = g_iDistInputGain;
|
faker |
0:adfbd02222d4
|
558
|
g_iProgPatch[iBank][iProg][PP_DIST_PARAM_CLIPLEVEL] = g_iDistClipLevel;
|
faker |
0:adfbd02222d4
|
559
|
g_iProgPatch[iBank][iProg][PP_DIST_PARAM_OUTPUTGAIN] = g_iDistOutputGain;
|
faker |
0:adfbd02222d4
|
560
|
|
faker |
0:adfbd02222d4
|
561
|
// Delay Param
|
faker |
0:adfbd02222d4
|
562
|
g_iProgPatch[iBank][iProg][PP_DLY_PARAM_BYPASS] = g_iDelayBypass;
|
faker |
0:adfbd02222d4
|
563
|
g_iProgPatch[iBank][iProg][PP_DLY_PARAM_DELAYTIME] = g_iDelayTime;
|
faker |
0:adfbd02222d4
|
564
|
g_iProgPatch[iBank][iProg][PP_DLY_PARAM_FBGAIN] = g_iDelayFeedBackLevel;
|
faker |
0:adfbd02222d4
|
565
|
|
faker |
0:adfbd02222d4
|
566
|
} |