⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 synthesisfilter.java

📁 java实现的多媒体播放器,可以在手机上运行
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
    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 + -