* from 32, 44.1 or 48 kHz to 8 kHz, if ULAW is defined. Frequencies above 4 kHz\r
* are removed by ignoring higher subbands.\r
*/\r
-@LATTICE("OUT<V1,V1<V,V<NEWV,NEWV<SAMPLE,SAMPLE<EQ,EQ<IDX,NEWV*,IDX*")\r
+@LATTICE("OUT<V2,V2<V1,V1<V,V<NEWV,NEWV<SAMPLE,SAMPLE<EQ,EQ<IDX,V*,NEWV*,IDX*")\r
@METHODDEFAULT("OUT<THIS,THIS<C,C<IN,C*,THISLOC=THIS,GLOBALLOC=THIS")\r
final class SynthesisFilter {\r
\r
@LOC("IDX")\r
public int vidx;\r
+ @LOC("V1")\r
+ public float[] v1;\r
+ @LOC("V1")\r
+ public float[] v2;\r
+\r
@LOC("V")\r
- private float[] v1;\r
+ public float[] prev1;\r
@LOC("V")\r
- private float[] v2;\r
+ public float[] prev2;\r
+\r
// private float[] actual_v; // v1 or v2\r
@LOC("IDX")\r
public int actual_write_pos; // 0-15\r
\r
v1 = new float[512];\r
v2 = new float[512];\r
+ prev1 = new float[512];\r
+ prev2 = new float[512];\r
samples = new float[32];\r
channel = channelnumber;\r
scalefactor = factor;\r
v1[464 + pos] = new_v18;\r
v1[480 + pos] = new_v17;\r
v1[496 + pos] = new_v16;\r
+\r
+ /*\r
+ * setup PREV\r
+ */\r
+\r
+ prev2[0 + pos] = new_v0;\r
+ prev2[16 + pos] = new_v1;\r
+ prev2[32 + pos] = new_v2;\r
+ prev2[48 + pos] = new_v3;\r
+ prev2[64 + pos] = new_v4;\r
+ prev2[80 + pos] = new_v5;\r
+ prev2[96 + pos] = new_v6;\r
+ prev2[112 + pos] = new_v7;\r
+ prev2[128 + pos] = new_v8;\r
+ prev2[144 + pos] = new_v9;\r
+ prev2[160 + pos] = new_v10;\r
+ prev2[176 + pos] = new_v11;\r
+ prev2[192 + pos] = new_v12;\r
+ prev2[208 + pos] = new_v13;\r
+ prev2[224 + pos] = new_v14;\r
+ prev2[240 + pos] = new_v15;\r
+\r
+ // V[16] is always 0.0:\r
+ prev2[256 + pos] = 0.0f;\r
+\r
+ // insert V[17-31] (== -new_v[15-1]) into actual v:\r
+ prev2[272 + pos] = -new_v15;\r
+ prev2[288 + pos] = -new_v14;\r
+ prev2[304 + pos] = -new_v13;\r
+ prev2[320 + pos] = -new_v12;\r
+ prev2[336 + pos] = -new_v11;\r
+ prev2[352 + pos] = -new_v10;\r
+ prev2[368 + pos] = -new_v9;\r
+ prev2[384 + pos] = -new_v8;\r
+ prev2[400 + pos] = -new_v7;\r
+ prev2[416 + pos] = -new_v6;\r
+ prev2[432 + pos] = -new_v5;\r
+ prev2[448 + pos] = -new_v4;\r
+ prev2[464 + pos] = -new_v3;\r
+ prev2[480 + pos] = -new_v2;\r
+ prev2[496 + pos] = -new_v1;\r
+\r
+ // insert V[32] (== -new_v[0]) into other v:\r
+ // dest = (actual_v == v1) ? v2 : v1;\r
+\r
+ prev1[0 + pos] = -new_v0;\r
+ // insert V[33-48] (== new_v[16-31]) into other v:\r
+ prev1[16 + pos] = new_v16;\r
+ prev1[32 + pos] = new_v17;\r
+ prev1[48 + pos] = new_v18;\r
+ prev1[64 + pos] = new_v19;\r
+ prev1[80 + pos] = new_v20;\r
+ prev1[96 + pos] = new_v21;\r
+ prev1[112 + pos] = new_v22;\r
+ prev1[128 + pos] = new_v23;\r
+ prev1[144 + pos] = new_v24;\r
+ prev1[160 + pos] = new_v25;\r
+ prev1[176 + pos] = new_v26;\r
+ prev1[192 + pos] = new_v27;\r
+ prev1[208 + pos] = new_v28;\r
+ prev1[224 + pos] = new_v29;\r
+ prev1[240 + pos] = new_v30;\r
+ prev1[256 + pos] = new_v31;\r
+\r
+ // insert V[49-63] (== new_v[30-16]) into other v:\r
+ prev1[272 + pos] = new_v30;\r
+ prev1[288 + pos] = new_v29;\r
+ prev1[304 + pos] = new_v28;\r
+ prev1[320 + pos] = new_v27;\r
+ prev1[336 + pos] = new_v26;\r
+ prev1[352 + pos] = new_v25;\r
+ prev1[368 + pos] = new_v24;\r
+ prev1[384 + pos] = new_v23;\r
+ prev1[400 + pos] = new_v22;\r
+ prev1[416 + pos] = new_v21;\r
+ prev1[432 + pos] = new_v20;\r
+ prev1[448 + pos] = new_v19;\r
+ prev1[464 + pos] = new_v18;\r
+ prev1[480 + pos] = new_v17;\r
+ prev1[496 + pos] = new_v16;\r
}\r
\r
private void compute_new_v1_v2() {\r
v2[464 + pos] = new_v18;\r
v2[480 + pos] = new_v17;\r
v2[496 + pos] = new_v16;\r
+\r
+ /*\r
+ * setup PREV\r
+ */\r
+\r
+ prev1[0 + pos] = new_v0;\r
+ prev1[16 + pos] = new_v1;\r
+ prev1[32 + pos] = new_v2;\r
+ prev1[48 + pos] = new_v3;\r
+ prev1[64 + pos] = new_v4;\r
+ prev1[80 + pos] = new_v5;\r
+ prev1[96 + pos] = new_v6;\r
+ prev1[112 + pos] = new_v7;\r
+ prev1[128 + pos] = new_v8;\r
+ prev1[144 + pos] = new_v9;\r
+ prev1[160 + pos] = new_v10;\r
+ prev1[176 + pos] = new_v11;\r
+ prev1[192 + pos] = new_v12;\r
+ prev1[208 + pos] = new_v13;\r
+ prev1[224 + pos] = new_v14;\r
+ prev1[240 + pos] = new_v15;\r
+\r
+ // V[16] is always 0.0:\r
+ prev1[256 + pos] = 0.0f;\r
+\r
+ // insert V[17-31] (== -new_v[15-1]) into actual v:\r
+ prev1[272 + pos] = -new_v15;\r
+ prev1[288 + pos] = -new_v14;\r
+ prev1[304 + pos] = -new_v13;\r
+ prev1[320 + pos] = -new_v12;\r
+ prev1[336 + pos] = -new_v11;\r
+ prev1[352 + pos] = -new_v10;\r
+ prev1[368 + pos] = -new_v9;\r
+ prev1[384 + pos] = -new_v8;\r
+ prev1[400 + pos] = -new_v7;\r
+ prev1[416 + pos] = -new_v6;\r
+ prev1[432 + pos] = -new_v5;\r
+ prev1[448 + pos] = -new_v4;\r
+ prev1[464 + pos] = -new_v3;\r
+ prev1[480 + pos] = -new_v2;\r
+ prev1[496 + pos] = -new_v1;\r
+\r
+ // insert V[32] (== -new_v[0]) into other v:\r
+ // dest = (actual_v == v1) ? v2 : v1;\r
+\r
+ prev2[0 + pos] = -new_v0;\r
+ // insert V[33-48] (== new_v[16-31]) into other v:\r
+ prev2[16 + pos] = new_v16;\r
+ prev2[32 + pos] = new_v17;\r
+ prev2[48 + pos] = new_v18;\r
+ prev2[64 + pos] = new_v19;\r
+ prev2[80 + pos] = new_v20;\r
+ prev2[96 + pos] = new_v21;\r
+ prev2[112 + pos] = new_v22;\r
+ prev2[128 + pos] = new_v23;\r
+ prev2[144 + pos] = new_v24;\r
+ prev2[160 + pos] = new_v25;\r
+ prev2[176 + pos] = new_v26;\r
+ prev2[192 + pos] = new_v27;\r
+ prev2[208 + pos] = new_v28;\r
+ prev2[224 + pos] = new_v29;\r
+ prev2[240 + pos] = new_v30;\r
+ prev2[256 + pos] = new_v31;\r
+\r
+ // insert V[49-63] (== new_v[30-16]) into other v:\r
+ prev2[272 + pos] = new_v30;\r
+ prev2[288 + pos] = new_v29;\r
+ prev2[304 + pos] = new_v28;\r
+ prev2[320 + pos] = new_v27;\r
+ prev2[336 + pos] = new_v26;\r
+ prev2[352 + pos] = new_v25;\r
+ prev2[368 + pos] = new_v24;\r
+ prev2[384 + pos] = new_v23;\r
+ prev2[400 + pos] = new_v22;\r
+ prev2[416 + pos] = new_v21;\r
+ prev2[432 + pos] = new_v20;\r
+ prev2[448 + pos] = new_v19;\r
+ prev2[464 + pos] = new_v18;\r
+ prev2[480 + pos] = new_v17;\r
+ prev2[496 + pos] = new_v16;\r
}\r
\r
/**\r
\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
// final float[] dp = d16[i];\r
pcm_sample =\r
(float) (((v1[0 + dvp] * d16[i][0]) + (v1[15 + dvp] * d16[i][1])\r
\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
// final float[] dp = d16[i];\r
pcm_sample =\r
(float) (((v2[0 + dvp] * d16[i][0]) + (v2[15 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v1[1 + dvp] * d16[i][0]) + (v1[0 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v2[1 + dvp] * d16[i][0]) + (v2[0 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v1[2 + dvp] * d16[i][0]) + (v1[1 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v2[2 + dvp] * d16[i][0]) + (v2[1 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v1[3 + dvp] * d16[i][0]) + (v1[2 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v2[3 + dvp] * d16[i][0]) + (v2[2 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v1[4 + dvp] * d16[i][0]) + (v1[3 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v2[4 + dvp] * d16[i][0]) + (v2[3 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v1[5 + dvp] * d16[i][0]) + (v1[4 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v2[5 + dvp] * d16[i][0]) + (v2[4 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v1[6 + dvp] * d16[i][0]) + (v1[5 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v2[6 + dvp] * d16[i][0]) + (v2[5 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v1[7 + dvp] * d16[i][0]) + (v1[6 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v2[7 + dvp] * d16[i][0]) + (v2[6 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v1[8 + dvp] * d16[i][0]) + (v1[7 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v2[8 + dvp] * d16[i][0]) + (v2[7 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v1[9 + dvp] * d16[i][0]) + (v1[8 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v2[9 + dvp] * d16[i][0]) + (v2[8 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v1[10 + dvp] * d16[i][0]) + (v1[9 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v2[10 + dvp] * d16[i][0]) + (v2[9 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v1[11 + dvp] * d16[i][0]) + (v1[10 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v2[11 + dvp] * d16[i][0]) + (v2[10 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v1[12 + dvp] * d16[i][0]) + (v1[11 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v2[12 + dvp] * d16[i][0]) + (v2[11 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v1[13 + dvp] * d16[i][0]) + (v1[12 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v2[13 + dvp] * d16[i][0]) + (v2[12 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v1[14 + dvp] * d16[i][0]) + (v1[13 + dvp] * d16[i][1])\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
// final float[] dp = d16[i];\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
\r
pcm_sample =\r
(float) (((v2[14 + dvp] * d16[i][0]) + (v2[13 + dvp] * d16[i][1])\r
\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
// final float d16[i][] = d16[i];\r
pcm_sample =\r
(float) (((v1[15 + dvp] * d16[i][0]) + (v1[14 + dvp] * d16[i][1])\r
\r
// fat chance of having this loop unroll\r
for (@LOC("THIS,SynthesisFilter.NEWV") int i = 0; i < 32; i++) {\r
- @LOC("THIS,SynthesisFilter.V1") float pcm_sample;\r
+ @LOC("THIS,SynthesisFilter.V2") float pcm_sample;\r
// final float d16[i][] = d16[i];\r
pcm_sample =\r
(float) (((v2[15 + dvp] * d16[i][0]) + (v2[14 + dvp] * d16[i][1])\r
*/\r
}\r
\r
+ @LATTICE("THIS<C,C*,THISLOC=THIS")\r
+ public void clear() {\r
+ // clear out v1,v2\r
+ SSJAVA.arrayinit(v1, 0);\r
+ SSJAVA.arrayinit(v2, 0);\r
+ // copy previous v1,v2\r
+ for (@LOC("THIS,SynthesisFilter.V") int i = 0; i < prev1.length; i++) {\r
+ v1[i] = prev1[i];\r
+ }\r
+ for (@LOC("THIS,SynthesisFilter.V") int i = 0; i < prev2.length; i++) {\r
+ v2[i] = prev2[i];\r
+ }\r
+ // clear out previous buffer\r
+ SSJAVA.arrayinit(prev1, 0);\r
+ SSJAVA.arrayinit(prev2, 0);\r
+ }\r
+\r
/**\r
* Calculate 32 PCM samples and put the into the Obuffer-object.\r
*/\r
// System.out.println("3.actual_v=" + (actual_v == v1) + " vidx=" + vidx);\r
\r
actual_write_pos = (actual_write_pos + 1) & 0xf;\r
-// System.out.println("actual_write_pos="+actual_write_pos);\r
+ // System.out.println("actual_write_pos="+actual_write_pos);\r
// actual_v = (actual_v == v1) ? v2 : v1;\r
\r
if (vidx == 1) {\r
* d[] split into subarrays of length 16. This provides for more faster access\r
* by allowing a block of 16 to be addressed with constant offset.\r
**/\r
- //TODO CONST\r
+ // TODO CONST\r
@LOC("V")\r
- private final static float d16[][] = null; \r
+ private final static float d16[][] = null;\r
\r
/**\r
* Converts a 1D array into a number of smaller arrays. This is used to\r