📄 synthesisfilter.java
字号:
dest[loc14] = new_v28;
dest[loc15] = new_v29;
dest[loc16] = new_v30;
dest[loc17] = new_v31;
dest[loc18] = new_v30;
dest[loc19] = new_v29;
dest[loc20] = new_v28;
dest[loc21] = new_v27;
dest[loc22] = new_v26;
dest[loc23] = new_v25;
dest[loc24] = new_v24;
dest[loc25] = new_v23;
dest[loc26] = new_v22;
dest[loc27] = new_v21;
dest[loc28] = new_v20;
dest[loc29] = new_v19;
dest[loc30] = new_v18;
dest[loc31] = new_v17;
dest[loc32] = new_v16;
}
static int dvp,pos,channels;
static float temp;
private final void compute_pcm_samples(SampleBuffer buff) {
dvp = 0;
pos = buff.getBufferIndex(channel);
channels = buff.getBufferChannelCount();
final byte[] bytes = buff.getBuffer();
switch (actual_write_pos) {
case 0:
for (int i = 0; i < 32; i++) {
//final float[] dp = d16[i];
temp = (float)(((actual_v[dvp] * d16[i][0]) + (actual_v[15 + dvp] * d16[i][1]) + (actual_v[14 + dvp] * d16[i][2]) + (actual_v[13 + dvp] * d16[i][3]) + (actual_v[12 + dvp] * d16[i][4]) +
(actual_v[11 + dvp] * d16[i][5]) + (actual_v[10 + dvp] * d16[i][6]) + (actual_v[9 + dvp] * d16[i][7]) + (actual_v[8 + dvp] * d16[i][8]) + (actual_v[7 + dvp] * d16[i][9]) + (actual_v[6 + dvp] * d16[i][10]) +
(actual_v[5 + dvp] * d16[i][11]) + (actual_v[4 + dvp] * d16[i][12]) + (actual_v[3 + dvp] * d16[i][13]) + (actual_v[2 + dvp] * d16[i][14]) + (actual_v[1 + dvp] * d16[i][15])) * scalefactor);
short s = (short) (temp > 32767.0f ? 32767.0f : (temp < -32767.0f ? -32767.0f : temp));
bytes[pos++] = (byte)s;
bytes[pos] = (byte)(s >>> 8);
pos += channels;
dvp += 16;
}
break;
case 1:
for (int i = 0; i < 32; i++) {
//final float[] dp = d16[i];
temp = (float)(((actual_v[1 + dvp] * d16[i][0]) + (actual_v[dvp] * d16[i][1]) + (actual_v[15 + dvp] * d16[i][2]) + (actual_v[14 + dvp] * d16[i][3]) + (actual_v[13 + dvp] * d16[i][4]) +
(actual_v[12 + dvp] * d16[i][5]) + (actual_v[11 + dvp] * d16[i][6]) + (actual_v[10 + dvp] * d16[i][7]) + (actual_v[9 + dvp] * d16[i][8]) + (actual_v[8 + dvp] * d16[i][9]) + (actual_v[7 + dvp] * d16[i][10]) +
(actual_v[6 + dvp] * d16[i][11]) + (actual_v[5 + dvp] * d16[i][12]) + (actual_v[4 + dvp] * d16[i][13]) + (actual_v[3 + dvp] * d16[i][14]) + (actual_v[2 + dvp] * d16[i][15])) * scalefactor);
short s = (short) (temp > 32767.0f ? 32767.0f : (temp < -32767.0f ? -32767.0f : temp));
bytes[pos++] = (byte)s;
bytes[pos] = (byte)(s >>> 8);
pos += channels;
dvp += 16;
}
break;
case 2:
for (int i = 0; i < 32; i++) {
//final float[] dp = d16[i];
temp = (float)(((actual_v[2 + dvp] * d16[i][0]) + (actual_v[1 + dvp] * d16[i][1]) + (actual_v[dvp] * d16[i][2]) + (actual_v[15 + dvp] * d16[i][3]) + (actual_v[14 + dvp] * d16[i][4]) +
(actual_v[13 + dvp] * d16[i][5]) + (actual_v[12 + dvp] * d16[i][6]) + (actual_v[11 + dvp] * d16[i][7]) + (actual_v[10 + dvp] * d16[i][8]) + (actual_v[9 + dvp] * d16[i][9]) + (actual_v[8 + dvp] * d16[i][10]) +
(actual_v[7 + dvp] * d16[i][11]) + (actual_v[6 + dvp] * d16[i][12]) + (actual_v[5 + dvp] * d16[i][13]) + (actual_v[4 + dvp] * d16[i][14]) + (actual_v[3 + dvp] * d16[i][15])) * scalefactor);
short s = (short) (temp > 32767.0f ? 32767.0f : (temp < -32767.0f ? -32767.0f : temp));
bytes[pos++] = (byte)s;
bytes[pos] = (byte)(s >>> 8);
pos += channels;
dvp += 16;
}
break;
case 3:
for (int i = 0; i < 32; i++) {
// final float[] dp = d16[i];
temp = (float)(((actual_v[3 + dvp] * d16[i][0]) + (actual_v[2 + dvp] * d16[i][1]) + (actual_v[1 + dvp] * d16[i][2]) + (actual_v[dvp] * d16[i][3]) + (actual_v[15 + dvp] * d16[i][4]) +
(actual_v[14 + dvp] * d16[i][5]) + (actual_v[13 + dvp] * d16[i][6]) + (actual_v[12 + dvp] * d16[i][7]) + (actual_v[11 + dvp] * d16[i][8]) + (actual_v[10 + dvp] * d16[i][9]) + (actual_v[9 + dvp] * d16[i][10]) +
(actual_v[8 + dvp] * d16[i][11]) + (actual_v[7 + dvp] * d16[i][12]) + (actual_v[6 + dvp] * d16[i][13]) + (actual_v[5 + dvp] * d16[i][14]) + (actual_v[4 + dvp] * d16[i][15])) * scalefactor);
short s = (short) (temp > 32767.0f ? 32767.0f : (temp < -32767.0f ? -32767.0f : temp));
bytes[pos++] = (byte)s;
bytes[pos] = (byte)(s >>> 8);
pos += channels;
dvp += 16;
}
break;
case 4:
for (int i = 0; i < 32; i++) {
// final float[] dp = d16[i];
temp = (float)(((actual_v[4 + dvp] * d16[i][0]) + (actual_v[3 + dvp] * d16[i][1]) + (actual_v[2 + dvp] * d16[i][2]) + (actual_v[1 + dvp] * d16[i][3]) + (actual_v[dvp] * d16[i][4]) +
(actual_v[15 + dvp] * d16[i][5]) + (actual_v[14 + dvp] * d16[i][6]) + (actual_v[13 + dvp] * d16[i][7]) + (actual_v[12 + dvp] * d16[i][8]) + (actual_v[11 + dvp] * d16[i][9]) +
(actual_v[10 + dvp] * d16[i][10]) + (actual_v[9 + dvp] * d16[i][11]) + (actual_v[8 + dvp] * d16[i][12]) + (actual_v[7 + dvp] * d16[i][13]) + (actual_v[6 + dvp] * d16[i][14]) +
(actual_v[5 + dvp] * d16[i][15])) * scalefactor);
short s = (short) (temp > 32767.0f ? 32767.0f : (temp < -32767.0f ? -32767.0f : temp));
bytes[pos++] = (byte)s;
bytes[pos] = (byte)(s >>> 8);
pos += channels;
dvp += 16;
}
break;
case 5:
for (int i = 0; i < 32; i++) {
// final float[] dp = d16[i];
temp = (float)(((actual_v[5 + dvp] * d16[i][0]) + (actual_v[4 + dvp] * d16[i][1]) + (actual_v[3 + dvp] * d16[i][2]) + (actual_v[2 + dvp] * d16[i][3]) + (actual_v[1 + dvp] * d16[i][4]) +
(actual_v[dvp] * d16[i][5]) + (actual_v[15 + dvp] * d16[i][6]) + (actual_v[14 + dvp] * d16[i][7]) + (actual_v[13 + dvp] * d16[i][8]) + (actual_v[12 + dvp] * d16[i][9]) + (actual_v[11 + dvp] * d16[i][10]) +
(actual_v[10 + dvp] * d16[i][11]) + (actual_v[9 + dvp] * d16[i][12]) + (actual_v[8 + dvp] * d16[i][13]) + (actual_v[7 + dvp] * d16[i][14]) + (actual_v[6 + dvp] * d16[i][15])) * scalefactor);
short s = (short) (temp > 32767.0f ? 32767.0f : (temp < -32767.0f ? -32767.0f : temp));
bytes[pos++] = (byte)s;
bytes[pos] = (byte)(s >>> 8);
pos += channels;
dvp += 16;
}
break;
case 6:
for (int i = 0; i < 32; i++) {
// final float[] dp = d16[i];
temp = (float)(((actual_v[6 + dvp] * d16[i][0]) + (actual_v[5 + dvp] * d16[i][1]) + (actual_v[4 + dvp] * d16[i][2]) + (actual_v[3 + dvp] * d16[i][3]) + (actual_v[2 + dvp] * d16[i][4]) +
(actual_v[1 + dvp] * d16[i][5]) + (actual_v[dvp] * d16[i][6]) + (actual_v[15 + dvp] * d16[i][7]) + (actual_v[14 + dvp] * d16[i][8]) + (actual_v[13 + dvp] * d16[i][9]) + (actual_v[12 + dvp] * d16[i][10]) +
(actual_v[11 + dvp] * d16[i][11]) + (actual_v[10 + dvp] * d16[i][12]) + (actual_v[9 + dvp] * d16[i][13]) + (actual_v[8 + dvp] * d16[i][14]) + (actual_v[7 + dvp] * d16[i][15])) * scalefactor);
short s = (short) (temp > 32767.0f ? 32767.0f : (temp < -32767.0f ? -32767.0f : temp));
bytes[pos++] = (byte)s;
bytes[pos] = (byte)(s >>> 8);
pos += channels;
dvp += 16;
}
break;
case 7:
for (int i = 0; i < 32; i++) {
// final float[] dp = d16[i];
temp = (float)(((actual_v[7 + dvp] * d16[i][0]) + (actual_v[6 + dvp] * d16[i][1]) + (actual_v[5 + dvp] * d16[i][2]) + (actual_v[4 + dvp] * d16[i][3]) + (actual_v[3 + dvp] * d16[i][4]) +
(actual_v[2 + dvp] * d16[i][5]) + (actual_v[1 + dvp] * d16[i][6]) + (actual_v[dvp] * d16[i][7]) + (actual_v[15 + dvp] * d16[i][8]) + (actual_v[14 + dvp] * d16[i][9]) + (actual_v[13 + dvp] * d16[i][10]) +
(actual_v[12 + dvp] * d16[i][11]) + (actual_v[11 + dvp] * d16[i][12]) + (actual_v[10 + dvp] * d16[i][13]) + (actual_v[9 + dvp] * d16[i][14]) + (actual_v[8 + dvp] * d16[i][15])) * scalefactor);
short s = (short) (temp > 32767.0f ? 32767.0f : (temp < -32767.0f ? -32767.0f : temp));
bytes[pos++] = (byte)s;
bytes[pos] = (byte)(s >>> 8);
pos += channels;
dvp += 16;
}
break;
case 8:
for (int i = 0; i < 32; i++) {
// final float[] dp = d16[i];
temp = (float)(((actual_v[8 + dvp] * d16[i][0]) + (actual_v[7 + dvp] * d16[i][1]) + (actual_v[6 + dvp] * d16[i][2]) + (actual_v[5 + dvp] * d16[i][3]) + (actual_v[4 + dvp] * d16[i][4]) +
(actual_v[3 + dvp] * d16[i][5]) + (actual_v[2 + dvp] * d16[i][6]) + (actual_v[1 + dvp] * d16[i][7]) + (actual_v[dvp] * d16[i][8]) + (actual_v[15 + dvp] * d16[i][9]) + (actual_v[14 + dvp] * d16[i][10]) +
(actual_v[13 + dvp] * d16[i][11]) + (actual_v[12 + dvp] * d16[i][12]) + (actual_v[11 + dvp] * d16[i][13]) + (actual_v[10 + dvp] * d16[i][14]) + (actual_v[9 + dvp] * d16[i][15])) * scalefactor);
short s = (short) (temp > 32767.0f ? 32767.0f : (temp < -32767.0f ? -32767.0f : temp));
bytes[pos++] = (byte)s;
bytes[pos] = (byte)(s >>> 8);
pos += channels;
dvp += 16;
}
break;
case 9:
for (int i = 0; i < 32; i++) {
// final float[] dp = d16[i];
temp = (float)(((actual_v[9 + dvp] * d16[i][0]) + (actual_v[8 + dvp] * d16[i][1]) + (actual_v[7 + dvp] * d16[i][2]) + (actual_v[6 + dvp] * d16[i][3]) + (actual_v[5 + dvp] * d16[i][4]) +
(actual_v[4 + dvp] * d16[i][5]) + (actual_v[3 + dvp] * d16[i][6]) + (actual_v[2 + dvp] * d16[i][7]) + (actual_v[1 + dvp] * d16[i][8]) + (actual_v[dvp] * d16[i][9]) + (actual_v[15 + dvp] * d16[i][10]) +
(actual_v[14 + dvp] * d16[i][11]) + (actual_v[13 + dvp] * d16[i][12]) + (actual_v[12 + dvp] * d16[i][13]) + (actual_v[11 + dvp] * d16[i][14]) + (actual_v[10 + dvp] * d16[i][15])) * scalefactor);
short s = (short) (temp > 32767.0f ? 32767.0f : (temp < -32767.0f ? -32767.0f : temp));
bytes[pos++] = (byte)s;
bytes[pos] = (byte)(s >>> 8);
pos += channels;
dvp += 16;
}
break;
case 10:
for (int i = 0; i < 32; i++) {
// final float[] dp = d16[i];
temp = (float)(((actual_v[10 + dvp] * d16[i][0]) + (actual_v[9 + dvp] * d16[i][1]) + (actual_v[8 + dvp] * d16[i][2]) + (actual_v[7 + dvp] * d16[i][3]) + (actual_v[6 + dvp] * d16[i][4]) +
(actual_v[5 + dvp] * d16[i][5]) + (actual_v[4 + dvp] * d16[i][6]) + (actual_v[3 + dvp] * d16[i][7]) + (actual_v[2 + dvp] * d16[i][8]) + (actual_v[1 + dvp] * d16[i][9]) + (actual_v[dvp] * d16[i][10]) +
(actual_v[15 + dvp] * d16[i][11]) + (actual_v[14 + dvp] * d16[i][12]) + (actual_v[13 + dvp] * d16[i][13]) + (actual_v[12 + dvp] * d16[i][14]) + (actual_v[11 + dvp] * d16[i][15])) * scalefactor);
short s = (short) (temp > 32767.0f ? 32767.0f : (temp < -32767.0f ? -32767.0f : temp));
bytes[pos++] = (byte)s;
bytes[pos] = (byte)(s >>> 8);
pos += channels;
dvp += 16;
}
break;
case 11:
for (int i = 0; i < 32; i++) {
// final float[] dp = d16[i];
temp = (float)(((actual_v[11 + dvp] * d16[i][0]) + (actual_v[10 + dvp] * d16[i][1]) + (actual_v[9 + dvp] * d16[i][2]) + (actual_v[8 + dvp] * d16[i][3]) + (actual_v[7 + dvp] * d16[i][4]) +
(actual_v[6 + dvp] * d16[i][5]) + (actual_v[5 + dvp] * d16[i][6]) + (actual_v[4 + dvp] * d16[i][7]) + (actual_v[3 + dvp] * d16[i][8]) + (actual_v[2 + dvp] * d16[i][9]) + (actual_v[1 + dvp] * d16[i][10]) +
(actual_v[dvp] * d16[i][11]) + (actual_v[15 + dvp] * d16[i][12]) + (actual_v[14 + dvp] * d16[i][13]) + (actual_v[13 + dvp] * d16[i][14]) + (actual_v[12 + dvp] * d16[i][15])) * scalefactor);
short s = (short) (temp > 32767.0f ? 32767.0f : (temp < -32767.0f ? -32767.0f : temp));
bytes[pos++] = (byte)s;
bytes[pos] = (byte)(s >>> 8);
pos += channels;
dvp += 16;
}
break;
case 12:
for (int i = 0; i < 32; i++) {
// final float[] dp = d16[i];
temp = (float)(((actual_v[12 + dvp] * d16[i][0]) + (actual_v[11 + dvp] * d16[i][1]) + (actual_v[10 + dvp] * d16[i][2]) + (actual_v[9 + dvp] * d16[i][3]) + (actual_v[8 + dvp] * d16[i][4]) +
(actual_v[7 + dvp] * d16[i][5]) + (actual_v[6 + dvp] * d16[i][6]) + (actual_v[5 + dvp] * d16[i][7]) + (actual_v[4 + dvp] * d16[i][8]) + (actual_v[3 + dvp] * d16[i][9]) + (actual_v[2 + dvp] * d16[i][10]) +
(actual_v[1 + dvp] * d16[i][11]) + (actual_v[0 + dvp] * d16[i][12]) + (actual_v[15 + dvp] * d16[i][13]) + (actual_v[14 + dvp] * d16[i][14]) + (actual_v[13 + dvp] * d16[i][15])) * scalefactor);
short s = (short) (temp > 32767.0f ? 32767.0f : (temp < -32767.0f ? -32767.0f : temp));
bytes[pos++] = (byte)s;
bytes[pos] = (byte)(s >>> 8);
pos += channels;
dvp += 16;
}
break;
case 13:
for (int i = 0; i < 32; i++) {
// final float[] dp = d16[i];
temp = (float)(((actual_v[13 + dvp] * d16[i][0]) + (actual_v[12 + dvp] * d16[i][1]) + (actual_v[11 + dvp] * d16[i][2]) + (actual_v[10 + dvp] * d16[i][3]) + (actual_v[9 + dvp] * d16[i][4]) +
(actual_v[8 + dvp] * d16[i][5]) + (actual_v[7 + dvp] * d16[i][6]) + (actual_v[6 + dvp] * d16[i][7]) + (actual_v[5 + dvp] * d16[i][8]) + (actual_v[4 + dvp] * d16[i][9]) + (actual_v[3 + dvp] * d16[i][10]) +
(actual_v[2 + dvp] * d16[i][11]) + (actual_v[1 + dvp] * d16[i][12]) + (actual_v[dvp] * d16[i][13]) + (actual_v[15 + dvp] * d16[i][14]) + (actual_v[14 + dvp] * d16[i][15])) * scalefactor);
short s = (short) (temp > 32767.0f ? 32767.0f : (temp < -32767.0f ? -32767.0f : temp));
bytes[pos++] = (byte)s;
bytes[pos] = (byte)(s >>> 8);
pos += channels;
dvp += 16;
}
break;
case 14:
for (int i = 0; i < 32; i++) {
// final float[] dp = d16[i];
temp = (float)(((actual_v[14 + dvp] * d16[i][0]) + (actual_v[13 + dvp] * d16[i][1]) + (actual_v[12 + dvp] * d16[i][2]) + (actual_v[11 + dvp] * d16[i][3]) + (actual_v[10 + dvp] * d16[i][4]) +
(actual_v[9 + dvp] * d16[i][5]) + (actual_v[8 + dvp] * d16[i][6]) + (actual_v[7 + dvp] * d16[i][7]) + (actual_v[6 + dvp] * d16[i][8]) + (actual_v[5 + dvp] * d16[i][9]) + (actual_v[4 + dvp] * d16[i][10]) +
(actual_v[3 + dvp] * d16[i][11]) + (actual_v[2 + dvp] * d16[i][12]) + (actual_v[1 + dvp] * d16[i][13]) + (actual_v[dvp] * d16[i][14]) + (actual_v[15 + dvp] * d16[i][15])) * scalefactor);
short s = (short) (temp > 32767.0f ? 32767.0f : (temp < -32767.0f ? -32767.0f : temp));
bytes[pos++] = (byte)s;
bytes[pos] = (byte)(s >>> 8);
pos += channels;
dvp += 16;
}
break;
case 15:
for (int i = 0; i < 32; i++) {
// final float dp[] = d16[i];
temp = (float)(((actual_v[15 + dvp] * d16[i][0]) + (actual_v[14 + dvp] * d16[i][1]) + (actual_v[13 + dvp] * d16[i][2]) + (actual_v[12 + dvp] * d16[i][3]) + (actual_v[11 + dvp] * d16[i][4]) +
(actual_v[10 + dvp] * d16[i][5]) + (actual_v[9 + dvp] * d16[i][6]) + (actual_v[8 + dvp] * d16[i][7]) + (actual_v[7 + dvp] * d16[i][8]) + (actual_v[6 + dvp] * d16[i][9]) + (actual_v[5 + dvp] * d16[i][10]) +
(actual_v[4 + dvp] * d16[i][11]) + (actual_v[3 + dvp] * d16[i][12]) + (actual_v[2 + dvp] * d16[i][13]) + (actual_v[1 + dvp] * d16[i][14]) + (actual_v[dvp] * d16[i][15])) * scalefactor);
short s = (short)(temp > 32767.0f ? 32767.0f : (temp < -32767.0f ? -32767.0f : temp));
bytes[pos++] = (byte)s;
bytes[pos] = (byte)(s >>> 8);
pos += channels;
dvp += 16;
}
break;
}
buff.setBufferIndex(channel,pos);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -