File tree Expand file tree Collapse file tree 1 file changed +11
-12
lines changed Expand file tree Collapse file tree 1 file changed +11
-12
lines changed Original file line number Diff line number Diff line change @@ -147,19 +147,18 @@ namespace xgm
147
147
148
148
if (option[OPT_NONLINEAR_MIXER])
149
149
{
150
- INT32 voltage = square_table[out[0 ] + out[1 ]];
151
- m[0 ] = out[0 ] << 6 ;
152
- m[1 ] = out[1 ] << 6 ;
153
- INT32 ref = m[0 ] + m[1 ];
150
+ INT32 ref = out[0 ] + out[1 ];
154
151
if (ref > 0 )
155
152
{
156
- m[0 ] = (m[0 ] * voltage) / ref;
157
- m[1 ] = (m[1 ] * voltage) / ref;
153
+ INT32 voltage = square_table[ref];
154
+ m[0 ] = (out[0 ] * voltage) / ref;
155
+ m[1 ] = (out[1 ] * voltage) / ref;
158
156
}
159
157
else
160
158
{
161
- m[0 ] = voltage;
162
- m[1 ] = voltage;
159
+ // square_table[0] = 0;
160
+ m[0 ] = 0 ;
161
+ m[1 ] = 0 ;
163
162
}
164
163
}
165
164
else
@@ -170,11 +169,11 @@ namespace xgm
170
169
171
170
b[0 ] = m[0 ] * sm[0 ][0 ];
172
171
b[0 ] += m[1 ] * sm[0 ][1 ];
173
- b[0 ] >>= 7 ;
172
+ b[0 ] >>= 11 ;
174
173
175
174
b[1 ] = m[0 ] * sm[1 ][0 ];
176
175
b[1 ] += m[1 ] * sm[1 ][1 ];
177
- b[1 ] >>= 7 ;
176
+ b[1 ] >>= 11 ;
178
177
179
178
return 2 ;
180
179
}
@@ -190,8 +189,8 @@ namespace xgm
190
189
option[OPT_NEGATE_SWEEP_INIT] = false ;
191
190
192
191
square_table[0 ] = 0 ;
193
- for (int i=1 ;i<32 ;i++)
194
- square_table[i]=(INT32)(( 8192.0 *95.88 )/(8128.0 /i+100 ));
192
+ for (int i=1 ;i<32 ;i++)
193
+ square_table[i]=(INT32)round (( 16.0 * 8192.0 *95.88 )/(8128.0 /i+100 ));
195
194
196
195
square_linear = square_table[15 ]; // match linear scale to one full volume square of nonlinear
197
196
You can’t perform that action at this time.
0 commit comments