mp3decoder compiled by our research compiler produces the same output that I get...
authoryeom <yeom>
Tue, 16 Aug 2011 01:36:06 +0000 (01:36 +0000)
committeryeom <yeom>
Tue, 16 Aug 2011 01:36:06 +0000 (01:36 +0000)
Robust/src/ClassLibrary/SSJava/BufferedInputStream.java
Robust/src/ClassLibrary/SSJava/PushbackInputStream.java
Robust/src/Tests/ssJava/mp3decoder/Bitstream.java
Robust/src/Tests/ssJava/mp3decoder/Decoder.java
Robust/src/Tests/ssJava/mp3decoder/Header.java
Robust/src/Tests/ssJava/mp3decoder/LayerIIIDecoder.java
Robust/src/Tests/ssJava/mp3decoder/Player.java
Robust/src/Tests/ssJava/mp3decoder/SampleBuffer.java
Robust/src/Tests/ssJava/mp3decoder/SynthesisFilter.java
Robust/src/Tests/ssJava/mp3decoder/makefile
Robust/src/Tests/ssJava/mp3decoder/run [new file with mode: 0755]

index e1144a3fddf78f7afb96517d53255123ea77a073..81f5066c9fabbf8e09357d062806a3430bf4dccd 100644 (file)
@@ -262,7 +262,8 @@ public class BufferedInputStream extends FilterInputStream {
    */
   public synchronized int read(byte[] b, int off, int len) throws IOException {
     if (off < 0 || len < 0 || b.length - off < len)
-      throw new IndexOutOfBoundsException();
+//      throw new IndexOutOfBoundsException();
+      return -1;
 
     if (len == 0)
       return 0;
index 904ab203d321a26cc7cc95738faacef20eb46760..70ad655042fa26a02109bf0500ef0ef3c24cb65a 100644 (file)
@@ -212,11 +212,9 @@ public class PushbackInputStream extends FilterInputStream {
   public synchronized int read(@LOC("OUT") byte[] b, @LOC("THIS,PushbackInputStream.POS") int off,
       @LOC("THIS,PushbackInputStream.POS") int len) throws IOException {
     @LOC("THIS,PushbackInputStream.POS") int numBytes = Math.min(buf.length - pos, len);
-System.out.println("numBytes="+numBytes+" buf.length="+buf.length+" pos="+pos);
+
     if (numBytes > 0) {
       
-      System.out.println("buf[pos]="+buf[pos]);
-      
       System.arraycopy(buf, pos, b, off, numBytes);
       pos += numBytes;
       len -= numBytes;
@@ -224,7 +222,6 @@ System.out.println("numBytes="+numBytes+" buf.length="+buf.length+" pos="+pos);
     }
 
     if (len > 0) {
-      System.out.println("len>0");
       len = super.read(b, off, len);
       if (len == -1) // EOF
         return numBytes > 0 ? numBytes : -1;
index b7430c8b6b16103a4c971251ebccb4f7838573c5..2af59207a56bcce2c26e335eaca1180c8ce56cfb 100644 (file)
@@ -266,30 +266,31 @@ public final class Bitstream implements BitstreamErrors {
    *         of the stream has been reached.
    */
   public Header readFrame() throws BitstreamException {
-    
-    System.out.println("ST");
-    
+
     Header result = null;
     try {
-      System.out.println("HERE?");
       result = readNextFrame();
-      System.out.println("HERE?2");
+      if (result == null) {
+        return null;
+      }
       // E.B, Parse VBR (if any) first frame.
       if (firstframe == true) {
         result.parseVBR(frame_bytes);
         firstframe = false;
       }
-      
+
       int channels = (header.mode() == Header.SINGLE_CHANNEL) ? 1 : 2;
+
       result.setSideInfoBuf(getSideInfoBuffer(channels));
       result.setBitReserve(getBitReserve(result.slots()));
-      
+
+      closeFrame();
+
     } catch (BitstreamException ex) {
       if ((ex.getErrorCode() == INVALIDFRAME)) {
         // Try to skip this frame.
         // System.out.println("INVALIDFRAME");
-        try {    System.out.println("ET");
-
+        try {
           closeFrame();
           result = readNextFrame();
         } catch (BitstreamException e) {
@@ -303,7 +304,6 @@ public final class Bitstream implements BitstreamErrors {
         throw newBitstreamException(ex.getErrorCode(), ex);
       }
     }
-    System.out.println("EN");
 
     return result;
   }
@@ -315,9 +315,10 @@ public final class Bitstream implements BitstreamErrors {
    * @throws BitstreamException
    */
   private Header readNextFrame() throws BitstreamException {
-    System.out.println("framesize="+framesize);
     if (framesize == -1) {
-      nextFrame();
+      if (nextFrame() == -1) {
+        return null;
+      }
     }
     return header;
   }
@@ -327,10 +328,10 @@ public final class Bitstream implements BitstreamErrors {
    * 
    * @throws BitstreamException
    */
-  private void nextFrame() throws BitstreamException {
+  private int nextFrame() throws BitstreamException {
     // entire frame is read by the header class.
-    System.out.println("nextFrame()");
-    header.read_header(this, crc);
+    // header.read_header(this, crc);
+    return header.read_header(this, crc);
   }
 
   /**
@@ -468,8 +469,11 @@ public final class Bitstream implements BitstreamErrors {
     do {
       headerstring <<= 8;
 
-      if (readBytes(syncbuf, 3, 1) != 1)
+      if (readBytes(syncbuf, 3, 1) != 1) {
+        // System.out.println("THROW NEW BITSTREAM EXCEPTION");
+        return -1;
         throw newBitstreamException(STREAM_EOF, null);
+      }
 
       headerstring |= (syncbuf[3] & 0x000000FF);
 
@@ -686,7 +690,6 @@ public final class Bitstream implements BitstreamErrors {
 
     // first, store main_data_begin from the side inforamtion
     main_data_begin = peek_bits(9);
-    System.out.println("main_data_begin=" + main_data_begin);
 
     int max;
     if (channelType == 1) { // mono
@@ -728,7 +731,6 @@ public final class Bitstream implements BitstreamErrors {
     frame_start += nSlots;
 
     if (bytes_to_discard < 0) {
-      System.out.println("HERE?");
       return null;
     }
 
index 87f1b7f325acd50dd72591ed6f8ab744f875fffb..e7ca3fd22f0d4016b158eb092df76ac69bcbd911 100644 (file)
@@ -146,7 +146,7 @@ public class Decoder implements DecoderErrors {
     @LOC("TH") int layer = header.layer();\r
 \r
     output.clear_buffer();\r
-System.out.println("HERE?="+layer);\r
+    \r
     @LOC("DE,Decoder.DE") FrameDecoder decoder = retrieveDecoder(header, stream, layer); // return\r
                                                                                          // ceil=DELTA(TH)\r
     decoder.decodeFrame();\r
index 6da0e4ddbaca0e031faaf8f0c656fd310ef02d19..10c7d343ea614aac6fe7978634894de011175845 100644 (file)
@@ -142,14 +142,15 @@ public final class Header {
   /**
    * Read a 32-bit header from the bitstream.
    */
-  void read_header(Bitstream stream, Crc16[] crcp) throws BitstreamException {
-    System.out.print("READ_HEADER_ST");
+  int read_header(Bitstream stream, Crc16[] crcp) throws BitstreamException {
     int headerstring;
     int channel_bitrate;
     boolean sync = false;
     do {
-      System.out.println("DO!");
       headerstring = stream.syncHeader(syncmode);
+      if(headerstring==-1){
+        return -1;
+      }
       _headerstring = headerstring; // E.B
       if (syncmode == Bitstream.INITIAL_SYNC) {
         h_version = ((headerstring >>> 19) & 1);
@@ -218,7 +219,6 @@ public final class Header {
       } else {
         stream.unreadFrame();
       }
-      System.out.println("do");
     } while (!sync);
     stream.parse_frame();
     if (h_protection_bit == 0) {
@@ -239,7 +239,7 @@ public final class Header {
        * offset[cf-1] + h_padding_bit; } else { offset[0] = h_padding_bit; }
        */
     }
-    System.out.print("READ_HEADER_ED");
+    return 0;
   }
 
   /**
index 31b71e2b8587abb7449e9e2294bf4d29d7fe5961..b7fde809e298ad35f818e511d647e16bf2e15040 100644 (file)
@@ -108,7 +108,6 @@ final class LayerIIIDecoder implements FrameDecoder {
 
   private int part2_start;
 
-
   /**
    * Constructor.
    */
@@ -318,9 +317,7 @@ final class LayerIIIDecoder implements FrameDecoder {
 
       // 'ch', 'channels' should be higher than all locs in the below body
       for (ch = 0; ch < channels; ch++) {
-        @LOC("THIS,LayerIIIDecoder.BR,BitReserve.BIT") int part2_start = br.hsstell(); // part2_start
-                                                                                       // <
-                                                                                       // br
+        part2_start = br.hsstell();
 
         // grab scale factors from the main data.
         // following the scale factors is the actual compressed data
@@ -333,7 +330,7 @@ final class LayerIIIDecoder implements FrameDecoder {
 
         // here, decoding the compressed audio data
         huffman_decode(ch, gr); // no need to care from this side
-        // System.out.println("CheckSum HuffMan = " + CheckSumHuff);
+//        System.out.println("CheckSum HuffMan = " + CheckSumHuff);
         dequantize_sample(/* ro[ch], */ch, gr); // no need to care from this
                                                 // side
       }
@@ -354,14 +351,20 @@ final class LayerIIIDecoder implements FrameDecoder {
 
         reorder(/* lr[ch], */ch, gr);
         antialias(ch, gr);
-        // for (int hb = 0;hb<576;hb++) CheckSumOut1d = CheckSumOut1d +
-        // out_1d[hb];
-        // System.out.println("CheckSumOut1d = "+CheckSumOut1d);
+        
+//        float CheckSumOut1d=0;
+//        for (int hb = 0;hb<576;hb++) {
+//             CheckSumOut1d = CheckSumOut1d + out_1d[hb];
+//        }
+//        System.out.println("CheckSumOut1d = "+CheckSumOut1d);
+        
 
         hybrid(ch, gr);
 
-        // for (int hb = 0;hb<576;hb++) CheckSumOut1d = CheckSumOut1d +
-        // out_1d[hb];
+        // float CheckSumOut1d=0;
+        // for (int hb = 0;hb<576;hb++) {
+        // CheckSumOut1d = CheckSumOut1d + out_1d[hb];
+        // }
         // System.out.println("CheckSumOut1d = "+CheckSumOut1d);
 
         for (sb18 = 18; sb18 < 576; sb18 += 36) {
@@ -892,7 +895,7 @@ final class LayerIIIDecoder implements FrameDecoder {
       is_1d[index++] = y[0];
 
       CheckSumHuff = CheckSumHuff + x[0] + y[0];
-      // System.out.println("x = "+x[0]+" y = "+y[0]);
+//      System.out.println("x = " + x[0] + " y = " + y[0]);
     }
 
     // Read count1 area
index 14db695e2616bc5f207bab2cd4f2937ce24fe8cd..3d59e83c1b037e37714b7e01e10b7d9155929f6e 100644 (file)
@@ -1,3 +1,4 @@
+import FileOutputStream;\r
 \r
 /*\r
  * 11/19/04            1.0 moved to LGPL.\r
  *----------------------------------------------------------------------\r
  */\r
 \r
-\r
-       \r
 /**\r
- * The <code>Player</code> class implements a simple player for playback\r
- * of an MPEG audio stream. \r
+ * The <code>Player</code> class implements a simple player for playback of an\r
+ * MPEG audio stream.\r
  * \r
- * @author     Mat McGowan\r
- * @since      0.0.8\r
+ * @author Mat McGowan\r
+ * @since 0.0.8\r
  */\r
 \r
 // REVIEW: the audio device should not be opened until the\r
-// first MPEG audio frame has been decoded. \r
+// first MPEG audio frame has been decoded.\r
 @LATTICE("B<DE,DE<ST,DE<HE,HE<ST,ST<FR")\r
-public class Player\r
-{              \r
-       /**\r
-        * The current frame number. \r
-        */\r
-       @LOC("FR") private int frame = 0;\r
-       \r
-       /**\r
-        * The MPEG audio bitstream. \r
-        */\r
-       // javac blank final bug. \r
-       /*final*/ @LOC("ST") private Bitstream          bitstream;\r
-       \r
-       /**\r
-        * The MPEG audio decoder. \r
-        */\r
-       /*final*/ @LOC("DE") private Decoder            decoder; \r
-       \r
-       /**\r
-        * The AudioDevice the audio samples are written to. \r
-        */\r
-       //private AudioDevice   audio; \r
-       \r
-       /**\r
-        * Has the player been closed?\r
-        */\r
-       @LOC("B") private boolean               closed = false;\r
-       \r
-       /**\r
-        * Has the player played back all frames from the stream?\r
-        */\r
-       @LOC("B") private boolean               complete = false;\r
-\r
-       @LOC("B") private int                   lastPosition = 0;\r
-       \r
-       /**\r
-        * Creates a new <code>Player</code> instance. \r
-        */\r
-       public Player(InputStream stream) throws JavaLayerException\r
-       {\r
-               this(stream, null);     \r
-       }\r
-\r
-\r
-       public Player(InputStream stream, AudioDevice device) throws JavaLayerException\r
-       {\r
-               bitstream = new Bitstream(stream);              \r
-               decoder = new Decoder();\r
-               \r
-//             if (device!=null)\r
-//             {               \r
-//                     audio = device;\r
-//             }\r
-//             else\r
-//             {                       \r
-//                     FactoryRegistry r = FactoryRegistry.systemRegistry();\r
-//                     audio = r.createAudioDevice();\r
-//             }\r
-               \r
-               device.open(decoder);\r
-       }\r
-       \r
-       \r
-       public void play() throws JavaLayerException\r
-       {\r
-               play(Integer.MAX_VALUE);\r
-       }\r
-       \r
-       /**\r
-        * Plays a number of MPEG audio frames. \r
-        * \r
-        * @param frames        The number of frames to play. \r
-        * @return      true if the last frame was played, or false if there are\r
-        *                      more frames. \r
-        */\r
-       @LATTICE("IN<T,IN*,THISLOC=T")\r
-       @RETURNLOC("IN")\r
-       public boolean play(@LOC("IN") int frames) throws JavaLayerException\r
-       {\r
-           @LOC("IN") boolean ret = true;\r
-         \r
-         \r
-           SSJAVA:\r
-               while (frames-- > 0 && ret)\r
-               {\r
-                 System.out.println("DECODE");\r
-                  ret = decodeFrame();\r
-               }\r
-               /*\r
-               if (!ret)\r
-               {\r
-                       // last frame, ensure all data flushed to the audio device. \r
-                       AudioDevice out = audio;\r
-                       if (out!=null)\r
-                       {                               \r
-                               out.flush();\r
-                               synchronized (this)\r
-                               {\r
-                                       complete = (!closed);\r
-                                       close();\r
-                               }                               \r
-                       }\r
-               }\r
-               */\r
-               return ret;\r
-       }\r
-               \r
-       /**\r
-        * Cloases this player. Any audio currently playing is stopped\r
-        * immediately. \r
-        */\r
-       \r
-       public synchronized void close()\r
-       {               \r
-/*\r
-               AudioDevice out = audio;\r
-               if (out!=null)\r
-               { \r
-                       closed = true;\r
-                       audio = null;   \r
-                       // this may fail, so ensure object state is set up before\r
-                       // calling this method. \r
-                       out.close();\r
-                       lastPosition = out.getPosition();\r
-                       try\r
-                       {\r
-                               bitstream.close();\r
-                       }\r
-                       catch (BitstreamException ex)\r
-                       {\r
-                       }\r
-               }\r
-*/\r
-       }\r
-       \r
-       \r
-       /**\r
-        * Returns the completed status of this player.\r
-        * \r
-        * @return      true if all available MPEG audio frames have been\r
-        *                      decoded, or false otherwise. \r
-        */\r
-       public synchronized boolean isComplete()\r
-       {\r
-               return complete;        \r
-       }\r
-                               \r
-       /**\r
-        * Retrieves the position in milliseconds of the current audio\r
-        * sample being played. This method delegates to the <code>\r
-        * AudioDevice</code> that is used by this player to sound\r
-        * the decoded audio samples. \r
-        */\r
-       public int getPosition()\r
-       {\r
-               //int position = lastPosition;\r
-               \r
-               //AudioDevice out = audio;              \r
-               //if (out!=null)\r
-               //{\r
-               //      position = out.getPosition();   \r
-               //}\r
-               //return position;\r
-               return 0;\r
-       }               \r
-       \r
-       /**\r
-        * Decodes a single frame.\r
-        * \r
-        * @return true if there are no more frames to decode, false otherwise.\r
-        */\r
-       @LATTICE("O<TH,THISLOC=TH")\r
-       @RETURNLOC("O")\r
-       protected boolean decodeFrame() throws JavaLayerException\r
-       {               \r
-               try\r
-               {\r
-                       //AudioDevice out = audio;\r
-                       //if (out==null)\r
-                       //      return false;\r
-\r
-                       Header h = bitstream.readFrame();       \r
-                       \r
-                       if (h==null)\r
-                               return false;\r
-                               \r
-                       // sample buffer set when decoder constructed\r
-                       @LOC("O") SampleBuffer output = (SampleBuffer)decoder.decodeFrame(h, bitstream);\r
-                                                                                                               \r
-                 // eom debug\r
-               short[] outbuf = output.getBuffer();\r
-               for (int i = 0; i < outbuf.length; i++) {\r
-//                 bw.write(outbuf[i]);\r
-                 System.out.println(outbuf[i]);\r
-               }\r
-               //\r
-               \r
-                       //synchronized (this)\r
-                       //{\r
-                       //      out = audio;\r
-                       //      if (out!=null)\r
-                       //      {                                       \r
-                       //              out.write(output.getBuffer(), 0, output.getBufferLength());\r
-                       //      }                               \r
-                       //}\r
-                                                                                                                                                       \r
-                       bitstream.closeFrame();\r
-               }               \r
-               catch (RuntimeException ex)\r
-               {\r
-                       throw new JavaLayerException("Exception decoding audio frame", ex);\r
-               }\r
-/*\r
-               catch (IOException ex)\r
-               {\r
-                       System.out.println("exception decoding audio frame: "+ex);\r
-                       return false;   \r
-               }\r
-               catch (BitstreamException bitex)\r
-               {\r
-                       System.out.println("exception decoding audio frame: "+bitex);\r
-                       return false;   \r
-               }\r
-               catch (DecoderException decex)\r
-               {\r
-                       System.out.println("exception decoding audio frame: "+decex);\r
-                       return false;                           \r
-               }\r
-*/             \r
-               return true;\r
-       }\r
-       \r
+public class Player {\r
+  /**\r
+   * The current frame number.\r
+   */\r
+  @LOC("FR")\r
+  private int frame = 0;\r
+\r
+  /**\r
+   * The MPEG audio bitstream.\r
+   */\r
+  // javac blank final bug.\r
+  /* final */@LOC("ST")\r
+  private Bitstream bitstream;\r
+\r
+  /**\r
+   * The MPEG audio decoder.\r
+   */\r
+  /* final */@LOC("DE")\r
+  private Decoder decoder;\r
+\r
+  /**\r
+   * The AudioDevice the audio samples are written to.\r
+   */\r
+  // private AudioDevice audio;\r
+\r
+  /**\r
+   * Has the player been closed?\r
+   */\r
+  @LOC("B")\r
+  private boolean closed = false;\r
+\r
+  /**\r
+   * Has the player played back all frames from the stream?\r
+   */\r
+  @LOC("B")\r
+  private boolean complete = false;\r
+\r
+  @LOC("B")\r
+  private int lastPosition = 0;\r
+\r
+  /**\r
+   * Creates a new <code>Player</code> instance.\r
+   */\r
+  public Player(InputStream stream) throws JavaLayerException {\r
+    this(stream, null);\r
+  }\r
+\r
+  public Player(InputStream stream, AudioDevice device) throws JavaLayerException {\r
+    bitstream = new Bitstream(stream);\r
+    decoder = new Decoder();\r
+\r
+    // if (device!=null)\r
+    // {\r
+    // audio = device;\r
+    // }\r
+    // else\r
+    // {\r
+    // FactoryRegistry r = FactoryRegistry.systemRegistry();\r
+    // audio = r.createAudioDevice();\r
+    // }\r
+\r
+    device.open(decoder);\r
+  }\r
+\r
+  public void play() throws JavaLayerException {\r
+    play(Integer.MAX_VALUE);\r
+  }\r
+\r
+  /**\r
+   * Plays a number of MPEG audio frames.\r
+   * \r
+   * @param frames\r
+   *          The number of frames to play.\r
+   * @return true if the last frame was played, or false if there are more\r
+   *         frames.\r
+   */\r
+  @LATTICE("IN<T,IN*,THISLOC=T")\r
+  @RETURNLOC("IN")\r
+  public boolean play(@LOC("IN") int frames) throws JavaLayerException {\r
+    @LOC("IN") boolean ret = true;\r
+\r
+    // FileOutputStream fos = new FileOutputStream("output.txt");\r
+\r
+    int count = 0;\r
+    SSJAVA: while (frames-- > 0 && ret) {\r
+      ret = decodeFrame();\r
+    }\r
+\r
+    // fos.flush();\r
+    // fos.close();\r
+    /*\r
+     * if (!ret) { // last frame, ensure all data flushed to the audio device.\r
+     * AudioDevice out = audio; if (out!=null) { out.flush(); synchronized\r
+     * (this) { complete = (!closed); close(); } } }\r
+     */\r
+    return ret;\r
+  }\r
+\r
+  /**\r
+   * Cloases this player. Any audio currently playing is stopped immediately.\r
+   */\r
+\r
+  public synchronized void close() {\r
+    /*\r
+     * AudioDevice out = audio; if (out!=null) { closed = true; audio = null; //\r
+     * this may fail, so ensure object state is set up before // calling this\r
+     * method. out.close(); lastPosition = out.getPosition(); try {\r
+     * bitstream.close(); } catch (BitstreamException ex) { } }\r
+     */\r
+  }\r
+\r
+  /**\r
+   * Returns the completed status of this player.\r
+   * \r
+   * @return true if all available MPEG audio frames have been decoded, or false\r
+   *         otherwise.\r
+   */\r
+  public synchronized boolean isComplete() {\r
+    return complete;\r
+  }\r
+\r
+  /**\r
+   * Retrieves the position in milliseconds of the current audio sample being\r
+   * played. This method delegates to the <code>\r
+   * AudioDevice</code> that is used by this player to sound the decoded audio\r
+   * samples.\r
+   */\r
+  public int getPosition() {\r
+    // int position = lastPosition;\r
+\r
+    // AudioDevice out = audio;\r
+    // if (out!=null)\r
+    // {\r
+    // position = out.getPosition();\r
+    // }\r
+    // return position;\r
+    return 0;\r
+  }\r
+\r
+  /**\r
+   * Decodes a single frame.\r
+   * \r
+   * @return true if there are no more frames to decode, false otherwise.\r
+   */\r
+  @LATTICE("O<TH,THISLOC=TH")\r
+  @RETURNLOC("O")\r
+  protected boolean decodeFrame() throws JavaLayerException {\r
+    try {\r
+      // AudioDevice out = audio;\r
+      // if (out==null)\r
+      // return false;\r
+\r
+      Header h = bitstream.readFrame();\r
+\r
+      if (h == null)\r
+        return false;\r
+\r
+      // eom debug\r
+      // System.out.println("header framesize=" + h.framesize);\r
+      // System.out.println("br total="+h.getBitReserve().hsstell());\r
+      //\r
+\r
+      // sample buffer set when decoder constructed\r
+      @LOC("O") SampleBuffer output = (SampleBuffer) decoder.decodeFrame(h, bitstream);\r
+\r
+      // eom debug\r
+      int sum=0;\r
+      short[] outbuf = output.getBuffer();\r
+      for (int i = 0; i < output.getBufferLength(); i++) {\r
+//        System.out.println(outbuf[i]);\r
+        sum+=outbuf[i];\r
+      }\r
+      System.out.println(sum);\r
+      //\r
+\r
+      // synchronized (this)\r
+      // {\r
+      // out = audio;\r
+      // if (out!=null)\r
+      // {\r
+      // out.write(output.getBuffer(), 0, output.getBufferLength());\r
+      // }\r
+      // }\r
+\r
+      // bitstream.closeFrame();\r
+    } catch (RuntimeException ex) {\r
+      throw new JavaLayerException("Exception decoding audio frame", ex);\r
+    }\r
+    /*\r
+     * catch (IOException ex) {\r
+     * System.out.println("exception decoding audio frame: "+ex); return false;\r
+     * } catch (BitstreamException bitex) {\r
+     * System.out.println("exception decoding audio frame: "+bitex); return\r
+     * false; } catch (DecoderException decex) {\r
+     * System.out.println("exception decoding audio frame: "+decex); return\r
+     * false; }\r
+     */\r
+    return true;\r
+  }\r
+\r
 }\r
index b32bacde738f7962bcd67a59b7b638677a11fcba..5ed5d20df60c6459cbb43e5b2b88e56a6fd30a50 100644 (file)
  */
 
 /**
- * The <code>SampleBuffer</code> class implements an output buffer
- * that provides storage for a fixed size block of samples. 
+ * The <code>SampleBuffer</code> class implements an output buffer that provides
+ * storage for a fixed size block of samples.
  */
 @LATTICE("BUF<BUFP,BUFP<IDX,IDX<CONT,BUFP*,IDX*")
 @METHODDEFAULT("D<IN,D<C,C*,THISLOC=D")
-public class SampleBuffer extends Obuffer
-{
-  @LOC("BUF") private short[]           buffer;
-  @LOC("BUFP") private int[]            bufferp;
-  @LOC("CONT") private int              channels;
-  @LOC("CONT") private int              frequency;
-  @LOC("IDX") private int               idx;
+public class SampleBuffer extends Obuffer {
+  @LOC("BUF")
+  private short[] buffer;
+  @LOC("BUFP")
+  private int[] bufferp;
+  @LOC("CONT")
+  private int channels;
+  @LOC("CONT")
+  private int frequency;
+  @LOC("IDX")
+  private int idx;
 
   /**
    * Constructor
    */
-  public SampleBuffer(@LOC("IN") int sample_frequency, @LOC("IN") int number_of_channels)
-  {
+  public SampleBuffer(@LOC("IN") int sample_frequency, @LOC("IN") int number_of_channels) {
     buffer = new short[OBUFFERSIZE];
     bufferp = new int[MAXCHANNELS];
     channels = number_of_channels; // [IN] -> [D]
     frequency = sample_frequency; // [IN] -> [D]
 
     for (@LOC("C") int i = 0; i < number_of_channels; ++i) {
-      bufferp[i] = (short)i; // LOC(bufferp[i]) has indirect flows from the location C, IN
+      bufferp[i] = (short) i; // LOC(bufferp[i]) has indirect flows from the
+                              // location C, IN
       // also, it has a direct flow from C
-      // anyway, LOC(bufferp[i])=[D,SampleBuffer.BUFP] is lower than all locations that have in-flows
+      // anyway, LOC(bufferp[i])=[D,SampleBuffer.BUFP] is lower than all
+      // locations that have in-flows
     }
 
   }
 
-  public int getChannelCount()
-  {
-    return this.channels;  
+  public int getChannelCount() {
+    return this.channels;
   }
 
-  public int getSampleFrequency()
-  {
+  public int getSampleFrequency() {
     return this.frequency;
   }
 
-  public short[] getBuffer()
-  {
-    return this.buffer;  
+  public short[] getBuffer() {
+    return this.buffer;
   }
 
-  public int getBufferLength()
-  {
+  public int getBufferLength() {
     return bufferp[0];
   }
 
   /**
    * Takes a 16 Bit PCM sample.
    */
-  public void append(@LOC("IN") int channel, @LOC("IN") short value)
-  {
-    buffer[bufferp[channel]] = value; 
+  public void append(@LOC("IN") int channel, @LOC("IN") short value) {
+    buffer[bufferp[channel]] = value;
     // LOC(bufferp[channel])= [local.D,SampleBuffer.BUF]
     // so, for LHS, LOC(buffer) < LOC(bufferp[channle])
     // also, bet' LHS and RHS, LOC(LHS) < LOC(RHS) since LOC(value)=[IN]
-    
-    bufferp[channel] += channels; 
-    // for lhs, LOC(bufferp[channel]) = [local.D, SampleBuffer.BUFP] 
-    // for rhs, LOC(channels) = [local.D, SampleBuffer.CON] 
-    
+
+    bufferp[channel] += channels;
+    // for lhs, LOC(bufferp[channel]) = [local.D, SampleBuffer.BUFP]
+    // for rhs, LOC(channels) = [local.D, SampleBuffer.CON]
+
   }
 
   @LATTICE("D<IN,IN<C,THISLOC=D,C*")
-  public void appendSamples(@LOC("IN") int channel, @LOC("IN") float[] f)
-  {
-    @LOC("D,SampleBuffer.BUFP") int pos = bufferp[channel]; 
+  public void appendSamples(@LOC("IN") int channel, @LOC("IN") float[] f) {
+    @LOC("D,SampleBuffer.BUFP") int pos = bufferp[channel];
     // LOC(bufferp[channel])=[D,SampleBuffer.BUFP]
     // LOC(pos)=[D,SampleBuffer.BUFP]
 
-    @LOC("D,SampleBuffer.BUFP") short s;    
+    @LOC("D,SampleBuffer.BUFP") short s;
     @LOC("D,SampleBuffer.BUFP") float fs;
-    
-    for (@LOC("C") int i=0; i<32;)
-    {
+
+    for (@LOC("C") int i = 0; i < 32;) {
       fs = f[i++]; // [IN] -> [D,BUFP]
-      
-      
-      if(fs>32767.0f){
-        fs=32767.0f; 
+
+      if (fs > 32767.0f) {
+        fs = 32767.0f;
         // it has an indirect flow from LOC(fs)
-        // since LOC(fs) is a shared location, it's okay        
-      }else{
-        if(fs<-32767f){
-          fs=-327.67f;
+        // since LOC(fs) is a shared location, it's okay
+      } else {
+        if (fs < -32767.0f) {
+          fs = -32767.0f;
         }
       }
-      
+
       /*
-      fs = (fs>32767.0f ? 32767.0f 
-          : (fs < -32767.0f ? -32767.0f : fs));
-      */
+       * fs = (fs>32767.0f ? 32767.0f : (fs < -32767.0f ? -32767.0f : fs));
+       */
 
-      s = (short)fs; // it's okay since BUFP of [D,BUFP] is a shared location  
+      s = (short) fs; // it's okay since BUFP of [D,BUFP] is a shared location
       buffer[pos] = s;
-      // for LHS, LOC(buffer[pos])= GLB( [D,BUF] , [D,BUFP] ) = [D,BUF] 
+      // for LHS, LOC(buffer[pos])= GLB( [D,BUF] , [D,BUFP] ) = [D,BUF]
       // for RHS, LOC(s) = [D,BUFP]
       // so it's okay: [D,BUFP] -> [D,BUF]
-      
+
       pos += channels; // [D,BUFP] -> [D,BUFP]
     }
 
-    bufferp[channel] = pos; 
+    bufferp[channel] = pos;
     // for lhs, LOC(bufferp[channel])=[D,BUFP]
     // for rhs, LOC(pos)=[D,BUFP]
     // since BUFP is a shared location, the assignment is okay
   }
 
-
   /**
    * Write the samples to the file (Random Acces).
    */
-  public void write_buffer(@LOC("IN") int val)
-  {
+  public void write_buffer(@LOC("IN") int val) {
 
-    //for (int i = 0; i < channels; ++i) 
-    //    bufferp[i] = (short)i;
+    // for (int i = 0; i < channels; ++i)
+    // bufferp[i] = (short)i;
 
   }
 
-  public void close()
-  {}
+  public void close() {
+  }
 
   /**
    *
    */
 
-  public void clear_buffer()
-  {
-    for (idx = 0; idx < channels; ++idx) 
-      bufferp[idx] = (short)idx;
+  public void clear_buffer() {
+    for (idx = 0; idx < channels; ++idx)
+      bufferp[idx] = (short) idx;
   }
 
   /**
    *
    */
-  public void set_stop_flag()
-  {}
+  public void set_stop_flag() {
+  }
 }
index aae9bc46ed9a1fa4cb511f4be7d5780ab1ca848b..f9b7a4a23dc3dae0719bf856de04436daa29ffbe 100644 (file)
  *----------------------------------------------------------------------\r
  */\r
 \r
-//import java.io.IOException; //Compiler does not support imports\r
-\r
 /**\r
  * A class for the synthesis filter bank. This class does a fast downsampling\r
  * 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("TMP<PCM,PCM<AV,AV<V2,V2<V1,V1<L1,L1<L2,L2<L3,L3<L4,L4<LSH,LSH<S,S<SA,SA<EQ,EQ<SH,SH*,LSH*,V1*")\r
-@METHODDEFAULT("OUT<V,V<SH,SH<IN,IN<GLOBAL,SH*,THISLOC=IN,GLOBALLOC=GLOBAL")\r
 final class SynthesisFilter {\r
-  @LOC("V1")\r
   private float[] v1;\r
-  @LOC("V2")\r
   private float[] v2;\r
-  // @LOC("AV") private float[] actual_v; // v1 or v2\r
-  @LOC("SH")\r
+  private float[] actual_v; // v1 or v2\r
   private int actual_write_pos; // 0-15\r
-  @LOC("SA")\r
   private float[] samples; // 32 new subband samples\r
-  @LOC("V2")\r
   private int channel;\r
-  @LOC("V2")\r
   private float scalefactor;\r
-  @LOC("EQ")\r
   private float[] eq;\r
 \r
   /**\r
@@ -74,6 +63,7 @@ final class SynthesisFilter {
    * short values (raw pcm samples are in [-1.0, 1.0], if no violations occur).\r
    */\r
   public SynthesisFilter(int channelnumber, float factor, float[] eq0) {\r
+    \r
     d16 = splitArray(d, 16);\r
 \r
     v1 = new float[512];\r
@@ -128,21 +118,19 @@ final class SynthesisFilter {
     for (int p2 = 0; p2 < 32; p2++)\r
       samples[p2] = 0.0f;\r
 \r
-    // actual_v = v1;\r
+    actual_v = v1;\r
     actual_write_pos = 15;\r
   }\r
 \r
   /**\r
    * Inject Sample.\r
    */\r
-  @LATTICE("THIS<IN,THISLOC=THIS")\r
-  public void input_sample(@LOC("IN") float sample, @LOC("IN") int subbandnumber) {\r
+  public void input_sample(float sample, int subbandnumber) {\r
     samples[subbandnumber] = eq[subbandnumber] * sample;\r
   }\r
 \r
-  @LATTICE("TH<IN,IN<C,C*,THISLOC=TH")\r
-  public void input_samples(@LOC("IN") float[] s) {\r
-    for (@LOC("C") int i = 31; i >= 0; i--) {\r
+  public void input_samples(float[] s) {\r
+    for (int i = 31; i >= 0; i--) {\r
       samples[i] = s[i] * eq[i];\r
     }\r
   }\r
@@ -167,121 +155,118 @@ final class SynthesisFilter {
      * for (int i=31; i>=0; i--) { new_v[i] = 0.0f; }\r
      */\r
 \r
-    @LOC("IN,SynthesisFilter.L4") float new_v0 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L2") float new_v1 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L4") float new_v2 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L2") float new_v3 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L3") float new_v4 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L4") float new_v5 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L2") float new_v6 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L3") float new_v7 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L4") float new_v8 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L4") float new_v9 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L3") float new_v10 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L2") float new_v11 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L4") float new_v12 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L3") float new_v13 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L4") float new_v14 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L4") float new_v15 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L1") float new_v16 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L3") float new_v17 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L1") float new_v18 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L2") float new_v19 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L2") float new_v20 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L2") float new_v21 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L2") float new_v22 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L3") float new_v23 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L2") float new_v24 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L2") float new_v25 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L2") float new_v26 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L4") float new_v27 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L2") float new_v28 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L4") float new_v29 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L2") float new_v30 = 0.0f;\r
-    @LOC("IN,SynthesisFilter.L4") float new_v31 = 0.0f;\r
-\r
-    // new_v0 = new_v1 = new_v2 = new_v3 = new_v4 = new_v5 = new_v6 = new_v7 =\r
-    // new_v8 = new_v9 =\r
-    // new_v10 = new_v11 = new_v12 = new_v13 = new_v14 = new_v15 = new_v16 =\r
-    // new_v17 = new_v18 = new_v19 =\r
-    // new_v20 = new_v21 = new_v22 = new_v23 = new_v24 = new_v25 = new_v26 =\r
-    // new_v27 = new_v28 = new_v29 =\r
-    // new_v30 = new_v31 = 0.0f;\r
+    float new_v0, new_v1, new_v2, new_v3, new_v4, new_v5, new_v6, new_v7, new_v8, new_v9;\r
+    float new_v10, new_v11, new_v12, new_v13, new_v14, new_v15, new_v16, new_v17, new_v18, new_v19;\r
+    float new_v20, new_v21, new_v22, new_v23, new_v24, new_v25, new_v26, new_v27, new_v28, new_v29;\r
+    float new_v30, new_v31;\r
+\r
+    new_v0 =\r
+        new_v1 =\r
+            new_v2 =\r
+                new_v3 =\r
+                    new_v4 =\r
+                        new_v5 =\r
+                            new_v6 =\r
+                                new_v7 =\r
+                                    new_v8 =\r
+                                        new_v9 =\r
+                                            new_v10 =\r
+                                                new_v11 =\r
+                                                    new_v12 =\r
+                                                        new_v13 =\r
+                                                            new_v14 =\r
+                                                                new_v15 =\r
+                                                                    new_v16 =\r
+                                                                        new_v17 =\r
+                                                                            new_v18 =\r
+                                                                                new_v19 =\r
+                                                                                    new_v20 =\r
+                                                                                        new_v21 =\r
+                                                                                            new_v22 =\r
+                                                                                                new_v23 =\r
+                                                                                                    new_v24 =\r
+                                                                                                        new_v25 =\r
+                                                                                                            new_v26 =\r
+                                                                                                                new_v27 =\r
+                                                                                                                    new_v28 =\r
+                                                                                                                        new_v29 =\r
+                                                                                                                            new_v30 =\r
+                                                                                                                                new_v31 =\r
+                                                                                                                                    0.0f;\r
 \r
     // float[] new_v = new float[32]; // new V[0-15] and V[33-48] of Figure\r
     // 3-A.2 in ISO DIS 11172-3\r
     // float[] p = new float[16];\r
     // float[] pp = new float[16];\r
 \r
-    // float[] s = samples; // subbed in samples directly below to reduce\r
-    // uneccesary areas\r
-\r
-    @LOC("IN,SynthesisFilter.S") float s0 = samples[0];\r
-    @LOC("IN,SynthesisFilter.S") float s1 = samples[1];\r
-    @LOC("IN,SynthesisFilter.S") float s2 = samples[2];\r
-    @LOC("IN,SynthesisFilter.S") float s3 = samples[3];\r
-    @LOC("IN,SynthesisFilter.S") float s4 = samples[4];\r
-    @LOC("IN,SynthesisFilter.S") float s5 = samples[5];\r
-    @LOC("IN,SynthesisFilter.S") float s6 = samples[6];\r
-    @LOC("IN,SynthesisFilter.S") float s7 = samples[7];\r
-    @LOC("IN,SynthesisFilter.S") float s8 = samples[8];\r
-    @LOC("IN,SynthesisFilter.S") float s9 = samples[9];\r
-    @LOC("IN,SynthesisFilter.S") float s10 = samples[10];\r
-    @LOC("IN,SynthesisFilter.S") float s11 = samples[11];\r
-    @LOC("IN,SynthesisFilter.S") float s12 = samples[12];\r
-    @LOC("IN,SynthesisFilter.S") float s13 = samples[13];\r
-    @LOC("IN,SynthesisFilter.S") float s14 = samples[14];\r
-    @LOC("IN,SynthesisFilter.S") float s15 = samples[15];\r
-    @LOC("IN,SynthesisFilter.S") float s16 = samples[16];\r
-    @LOC("IN,SynthesisFilter.S") float s17 = samples[17];\r
-    @LOC("IN,SynthesisFilter.S") float s18 = samples[18];\r
-    @LOC("IN,SynthesisFilter.S") float s19 = samples[19];\r
-    @LOC("IN,SynthesisFilter.S") float s20 = samples[20];\r
-    @LOC("IN,SynthesisFilter.S") float s21 = samples[21];\r
-    @LOC("IN,SynthesisFilter.S") float s22 = samples[22];\r
-    @LOC("IN,SynthesisFilter.S") float s23 = samples[23];\r
-    @LOC("IN,SynthesisFilter.S") float s24 = samples[24];\r
-    @LOC("IN,SynthesisFilter.S") float s25 = samples[25];\r
-    @LOC("IN,SynthesisFilter.S") float s26 = samples[26];\r
-    @LOC("IN,SynthesisFilter.S") float s27 = samples[27];\r
-    @LOC("IN,SynthesisFilter.S") float s28 = samples[28];\r
-    @LOC("IN,SynthesisFilter.S") float s29 = samples[29];\r
-    @LOC("IN,SynthesisFilter.S") float s30 = samples[30];\r
-    @LOC("IN,SynthesisFilter.S") float s31 = samples[31];\r
-\r
-    @LOC("IN,SynthesisFilter.LSH") float p0 = s0 + s31;\r
-    @LOC("IN,SynthesisFilter.LSH") float p1 = s1 + s30;\r
-    @LOC("IN,SynthesisFilter.LSH") float p2 = s2 + s29;\r
-    @LOC("IN,SynthesisFilter.LSH") float p3 = s3 + s28;\r
-    @LOC("IN,SynthesisFilter.LSH") float p4 = s4 + s27;\r
-    @LOC("IN,SynthesisFilter.LSH") float p5 = s5 + s26;\r
-    @LOC("IN,SynthesisFilter.LSH") float p6 = s6 + s25;\r
-    @LOC("IN,SynthesisFilter.LSH") float p7 = s7 + s24;\r
-    @LOC("IN,SynthesisFilter.LSH") float p8 = s8 + s23;\r
-    @LOC("IN,SynthesisFilter.LSH") float p9 = s9 + s22;\r
-    @LOC("IN,SynthesisFilter.LSH") float p10 = s10 + s21;\r
-    @LOC("IN,SynthesisFilter.LSH") float p11 = s11 + s20;\r
-    @LOC("IN,SynthesisFilter.LSH") float p12 = s12 + s19;\r
-    @LOC("IN,SynthesisFilter.LSH") float p13 = s13 + s18;\r
-    @LOC("IN,SynthesisFilter.LSH") float p14 = s14 + s17;\r
-    @LOC("IN,SynthesisFilter.LSH") float p15 = s15 + s16;\r
-\r
-    @LOC("IN,SynthesisFilter.LSH") float pp0 = p0 + p15;\r
-    @LOC("IN,SynthesisFilter.LSH") float pp1 = p1 + p14;\r
-    @LOC("IN,SynthesisFilter.LSH") float pp2 = p2 + p13;\r
-    @LOC("IN,SynthesisFilter.LSH") float pp3 = p3 + p12;\r
-    @LOC("IN,SynthesisFilter.LSH") float pp4 = p4 + p11;\r
-    @LOC("IN,SynthesisFilter.LSH") float pp5 = p5 + p10;\r
-    @LOC("IN,SynthesisFilter.LSH") float pp6 = p6 + p9;\r
-    @LOC("IN,SynthesisFilter.LSH") float pp7 = p7 + p8;\r
-    @LOC("IN,SynthesisFilter.LSH") float pp8 = (p0 - p15) * cos1_32;\r
-    @LOC("IN,SynthesisFilter.LSH") float pp9 = (p1 - p14) * cos3_32;\r
-    @LOC("IN,SynthesisFilter.LSH") float pp10 = (p2 - p13) * cos5_32;\r
-    @LOC("IN,SynthesisFilter.LSH") float pp11 = (p3 - p12) * cos7_32;\r
-    @LOC("IN,SynthesisFilter.LSH") float pp12 = (p4 - p11) * cos9_32;\r
-    @LOC("IN,SynthesisFilter.LSH") float pp13 = (p5 - p10) * cos11_32;\r
-    @LOC("IN,SynthesisFilter.LSH") float pp14 = (p6 - p9) * cos13_32;\r
-    @LOC("IN,SynthesisFilter.LSH") float pp15 = (p7 - p8) * cos15_32;\r
+    float[] s = samples;\r
+\r
+    float s0 = s[0];\r
+    float s1 = s[1];\r
+    float s2 = s[2];\r
+    float s3 = s[3];\r
+    float s4 = s[4];\r
+    float s5 = s[5];\r
+    float s6 = s[6];\r
+    float s7 = s[7];\r
+    float s8 = s[8];\r
+    float s9 = s[9];\r
+    float s10 = s[10];\r
+    float s11 = s[11];\r
+    float s12 = s[12];\r
+    float s13 = s[13];\r
+    float s14 = s[14];\r
+    float s15 = s[15];\r
+    float s16 = s[16];\r
+    float s17 = s[17];\r
+    float s18 = s[18];\r
+    float s19 = s[19];\r
+    float s20 = s[20];\r
+    float s21 = s[21];\r
+    float s22 = s[22];\r
+    float s23 = s[23];\r
+    float s24 = s[24];\r
+    float s25 = s[25];\r
+    float s26 = s[26];\r
+    float s27 = s[27];\r
+    float s28 = s[28];\r
+    float s29 = s[29];\r
+    float s30 = s[30];\r
+    float s31 = s[31];\r
+\r
+    float p0 = s0 + s31;\r
+    float p1 = s1 + s30;\r
+    float p2 = s2 + s29;\r
+    float p3 = s3 + s28;\r
+    float p4 = s4 + s27;\r
+    float p5 = s5 + s26;\r
+    float p6 = s6 + s25;\r
+    float p7 = s7 + s24;\r
+    float p8 = s8 + s23;\r
+    float p9 = s9 + s22;\r
+    float p10 = s10 + s21;\r
+    float p11 = s11 + s20;\r
+    float p12 = s12 + s19;\r
+    float p13 = s13 + s18;\r
+    float p14 = s14 + s17;\r
+    float p15 = s15 + s16;\r
+\r
+    float pp0 = p0 + p15;\r
+    float pp1 = p1 + p14;\r
+    float pp2 = p2 + p13;\r
+    float pp3 = p3 + p12;\r
+    float pp4 = p4 + p11;\r
+    float pp5 = p5 + p10;\r
+    float pp6 = p6 + p9;\r
+    float pp7 = p7 + p8;\r
+    float pp8 = (p0 - p15) * cos1_32;\r
+    float pp9 = (p1 - p14) * cos3_32;\r
+    float pp10 = (p2 - p13) * cos5_32;\r
+    float pp11 = (p3 - p12) * cos7_32;\r
+    float pp12 = (p4 - p11) * cos9_32;\r
+    float pp13 = (p5 - p10) * cos11_32;\r
+    float pp14 = (p6 - p9) * cos13_32;\r
+    float pp15 = (p7 - p8) * cos15_32;\r
 \r
     p0 = pp0 + pp7;\r
     p1 = pp1 + pp6;\r
@@ -327,7 +312,6 @@ final class SynthesisFilter {
     p7 = (pp6 - pp7) * cos1_4;\r
     p8 = pp8 + pp9;\r
     p9 = (pp8 - pp9) * cos1_4;\r
-\r
     p10 = pp10 + pp11;\r
     p11 = (pp10 - pp11) * cos1_4;\r
     p12 = pp12 + pp13;\r
@@ -336,7 +320,7 @@ final class SynthesisFilter {
     p15 = (pp14 - pp15) * cos1_4;\r
 \r
     // this is pretty insane coding\r
-    @LOC("IN,SynthesisFilter.L3") float tmp1;\r
+    float tmp1;\r
     new_v19/* 36-17 */= -(new_v4 = (new_v12 = p7) + p5) - p6;\r
     new_v27/* 44-17 */= -p6 - p7 - p4;\r
     new_v6 = (new_v10 = (new_v14 = p15) + p11) + p13;\r
@@ -435,18 +419,9 @@ final class SynthesisFilter {
 \r
     // manually doing something that a compiler should handle sucks\r
     // coding like this is hard to read\r
-    @LOC("IN,SynthesisFilter.L4") float tmp2;\r
-    // new_v5 = (new_v11 = (new_v13 = (new_v15 = p15) + p7) + p11)\r
-    // + p5 + p13;\r
-    new_v15 = p15;\r
-    new_v13 = p15 + p7;\r
-    new_v11 = p15 + p7 + p11;\r
-    new_v5 = p15 + p7 + p11 + p5 + p13;\r
-\r
-    // new_v7 = (new_v9 = p15 + p11 + p3) + p13;\r
-    new_v9 = p15 + p11 + p3;\r
-    new_v7 = new_v9 + p13;\r
-\r
+    float tmp2;\r
+    new_v5 = (new_v11 = (new_v13 = (new_v15 = p15) + p7) + p11) + p5 + p13;\r
+    new_v7 = (new_v9 = p15 + p11 + p3) + p13;\r
     new_v16/* 33-17 */= -(new_v1 = (tmp1 = p13 + p15 + p9) + p1) - p14;\r
     new_v18/* 35-17 */= -(new_v3 = tmp1 + p5 + p7) - p6 - p14;\r
 \r
@@ -459,536 +434,781 @@ final class SynthesisFilter {
 \r
     // insert V[0-15] (== new_v[0-15]) into actual v:\r
     // float[] x2 = actual_v + actual_write_pos;\r
-    // float dest[] = actual_v; //actual_v subbed in so as not to create a new\r
-    // area\r
-\r
-    // int pos = actual_write_pos; //substituted to simplify location relations\r
-\r
-    v1[0 + actual_write_pos] = new_v0;\r
-    v1[16 + actual_write_pos] = new_v1;\r
-    v1[32 + actual_write_pos] = new_v2;\r
-    v1[48 + actual_write_pos] = new_v3;\r
-    v1[64 + actual_write_pos] = new_v4;\r
-    v1[80 + actual_write_pos] = new_v5;\r
-    v1[96 + actual_write_pos] = new_v6;\r
-    v1[112 + actual_write_pos] = new_v7;\r
-    v1[128 + actual_write_pos] = new_v8;\r
-    v1[144 + actual_write_pos] = new_v9;\r
-    v1[160 + actual_write_pos] = new_v10;\r
-    v1[176 + actual_write_pos] = new_v11;\r
-    v1[192 + actual_write_pos] = new_v12;\r
-    v1[208 + actual_write_pos] = new_v13;\r
-    v1[224 + actual_write_pos] = new_v14;\r
-    v1[240 + actual_write_pos] = new_v15;\r
+    float dest[] = actual_v;\r
+\r
+    int pos = actual_write_pos;\r
+\r
+    dest[0 + pos] = new_v0;\r
+    dest[16 + pos] = new_v1;\r
+    dest[32 + pos] = new_v2;\r
+    dest[48 + pos] = new_v3;\r
+    dest[64 + pos] = new_v4;\r
+    dest[80 + pos] = new_v5;\r
+    dest[96 + pos] = new_v6;\r
+    dest[112 + pos] = new_v7;\r
+    dest[128 + pos] = new_v8;\r
+    dest[144 + pos] = new_v9;\r
+    dest[160 + pos] = new_v10;\r
+    dest[176 + pos] = new_v11;\r
+    dest[192 + pos] = new_v12;\r
+    dest[208 + pos] = new_v13;\r
+    dest[224 + pos] = new_v14;\r
+    dest[240 + pos] = new_v15;\r
 \r
     // V[16] is always 0.0:\r
-    v1[256 + actual_write_pos] = 0.0f;\r
+    dest[256 + pos] = 0.0f;\r
 \r
     // insert V[17-31] (== -new_v[15-1]) into actual v:\r
-    v1[272 + actual_write_pos] = -new_v15;\r
-    v1[288 + actual_write_pos] = -new_v14;\r
-    v1[304 + actual_write_pos] = -new_v13;\r
-    v1[320 + actual_write_pos] = -new_v12;\r
-    v1[336 + actual_write_pos] = -new_v11;\r
-    v1[352 + actual_write_pos] = -new_v10;\r
-    v1[368 + actual_write_pos] = -new_v9;\r
-    v1[384 + actual_write_pos] = -new_v8;\r
-    v1[400 + actual_write_pos] = -new_v7;\r
-    v1[416 + actual_write_pos] = -new_v6;\r
-    v1[432 + actual_write_pos] = -new_v5;\r
-    v1[448 + actual_write_pos] = -new_v4;\r
-    v1[464 + actual_write_pos] = -new_v3;\r
-    v1[480 + actual_write_pos] = -new_v2;\r
-    v1[496 + actual_write_pos] = -new_v1;\r
+    dest[272 + pos] = -new_v15;\r
+    dest[288 + pos] = -new_v14;\r
+    dest[304 + pos] = -new_v13;\r
+    dest[320 + pos] = -new_v12;\r
+    dest[336 + pos] = -new_v11;\r
+    dest[352 + pos] = -new_v10;\r
+    dest[368 + pos] = -new_v9;\r
+    dest[384 + pos] = -new_v8;\r
+    dest[400 + pos] = -new_v7;\r
+    dest[416 + pos] = -new_v6;\r
+    dest[432 + pos] = -new_v5;\r
+    dest[448 + pos] = -new_v4;\r
+    dest[464 + pos] = -new_v3;\r
+    dest[480 + pos] = -new_v2;\r
+    dest[496 + pos] = -new_v1;\r
 \r
     // insert V[32] (== -new_v[0]) into other v:\r
-    // dest = (actual_v==v1) ? v2 : v1; //assignment replaced with if statement\r
-    // so that new areas are not created\r
+    dest = (actual_v == v1) ? v2 : v1;\r
 \r
-    v2[0 + actual_write_pos] = -new_v0;\r
+    dest[0 + pos] = -new_v0;\r
     // insert V[33-48] (== new_v[16-31]) into other v:\r
-    v2[16 + actual_write_pos] = new_v16;\r
-    v2[32 + actual_write_pos] = new_v17;\r
-    v2[48 + actual_write_pos] = new_v18;\r
-    v2[64 + actual_write_pos] = new_v19;\r
-    v2[80 + actual_write_pos] = new_v20;\r
-    v2[96 + actual_write_pos] = new_v21;\r
-    v2[112 + actual_write_pos] = new_v22;\r
-    v2[128 + actual_write_pos] = new_v23;\r
-    v2[144 + actual_write_pos] = new_v24;\r
-    v2[160 + actual_write_pos] = new_v25;\r
-    v2[176 + actual_write_pos] = new_v26;\r
-    v2[192 + actual_write_pos] = new_v27;\r
-    v2[208 + actual_write_pos] = new_v28;\r
-    v2[224 + actual_write_pos] = new_v29;\r
-    v2[240 + actual_write_pos] = new_v30;\r
-    v2[256 + actual_write_pos] = new_v31;\r
+    dest[16 + pos] = new_v16;\r
+    dest[32 + pos] = new_v17;\r
+    dest[48 + pos] = new_v18;\r
+    dest[64 + pos] = new_v19;\r
+    dest[80 + pos] = new_v20;\r
+    dest[96 + pos] = new_v21;\r
+    dest[112 + pos] = new_v22;\r
+    dest[128 + pos] = new_v23;\r
+    dest[144 + pos] = new_v24;\r
+    dest[160 + pos] = new_v25;\r
+    dest[176 + pos] = new_v26;\r
+    dest[192 + pos] = new_v27;\r
+    dest[208 + pos] = new_v28;\r
+    dest[224 + pos] = new_v29;\r
+    dest[240 + pos] = new_v30;\r
+    dest[256 + pos] = new_v31;\r
 \r
     // insert V[49-63] (== new_v[30-16]) into other v:\r
-    v2[272 + actual_write_pos] = new_v30;\r
-    v2[288 + actual_write_pos] = new_v29;\r
-    v2[304 + actual_write_pos] = new_v28;\r
-    v2[320 + actual_write_pos] = new_v27;\r
-    v2[336 + actual_write_pos] = new_v26;\r
-    v2[352 + actual_write_pos] = new_v25;\r
-    v2[368 + actual_write_pos] = new_v24;\r
-    v2[384 + actual_write_pos] = new_v23;\r
-    v2[400 + actual_write_pos] = new_v22;\r
-    v2[416 + actual_write_pos] = new_v21;\r
-    v2[432 + actual_write_pos] = new_v20;\r
-    v2[448 + actual_write_pos] = new_v19;\r
-    v2[464 + actual_write_pos] = new_v18;\r
-    v2[480 + actual_write_pos] = new_v17;\r
-    v2[496 + actual_write_pos] = new_v16;\r
+    dest[272 + pos] = new_v30;\r
+    dest[288 + pos] = new_v29;\r
+    dest[304 + pos] = new_v28;\r
+    dest[320 + pos] = new_v27;\r
+    dest[336 + pos] = new_v26;\r
+    dest[352 + pos] = new_v25;\r
+    dest[368 + pos] = new_v24;\r
+    dest[384 + pos] = new_v23;\r
+    dest[400 + pos] = new_v22;\r
+    dest[416 + pos] = new_v21;\r
+    dest[432 + pos] = new_v20;\r
+    dest[448 + pos] = new_v19;\r
+    dest[464 + pos] = new_v18;\r
+    dest[480 + pos] = new_v17;\r
+    dest[496 + pos] = new_v16;\r
+    /*\r
+     * } else { v1[0 + actual_write_pos] = -new_v0; // insert V[33-48] (==\r
+     * new_v[16-31]) into other v: v1[16 + actual_write_pos] = new_v16; v1[32 +\r
+     * actual_write_pos] = new_v17; v1[48 + actual_write_pos] = new_v18; v1[64 +\r
+     * actual_write_pos] = new_v19; v1[80 + actual_write_pos] = new_v20; v1[96 +\r
+     * actual_write_pos] = new_v21; v1[112 + actual_write_pos] = new_v22; v1[128\r
+     * + actual_write_pos] = new_v23; v1[144 + actual_write_pos] = new_v24;\r
+     * v1[160 + actual_write_pos] = new_v25; v1[176 + actual_write_pos] =\r
+     * new_v26; v1[192 + actual_write_pos] = new_v27; v1[208 + actual_write_pos]\r
+     * = new_v28; v1[224 + actual_write_pos] = new_v29; v1[240 +\r
+     * actual_write_pos] = new_v30; v1[256 + actual_write_pos] = new_v31;\r
+     * \r
+     * // insert V[49-63] (== new_v[30-16]) into other v: v1[272 +\r
+     * actual_write_pos] = new_v30; v1[288 + actual_write_pos] = new_v29; v1[304\r
+     * + actual_write_pos] = new_v28; v1[320 + actual_write_pos] = new_v27;\r
+     * v1[336 + actual_write_pos] = new_v26; v1[352 + actual_write_pos] =\r
+     * new_v25; v1[368 + actual_write_pos] = new_v24; v1[384 + actual_write_pos]\r
+     * = new_v23; v1[400 + actual_write_pos] = new_v22; v1[416 +\r
+     * actual_write_pos] = new_v21; v1[432 + actual_write_pos] = new_v20; v1[448\r
+     * + actual_write_pos] = new_v19; v1[464 + actual_write_pos] = new_v18;\r
+     * v1[480 + actual_write_pos] = new_v17; v1[496 + actual_write_pos] =\r
+     * new_v16; }\r
+     */\r
+  }\r
+\r
+  /**\r
+   * Compute new values via a fast cosine transform.\r
+   */\r
+  private void compute_new_v_old() {\r
+    // p is fully initialized from x1\r
+    // float[] p = _p;\r
+    // pp is fully initialized from p\r
+    // float[] pp = _pp;\r
+\r
+    // float[] new_v = _new_v;\r
+\r
+    float[] new_v = new float[32]; // new V[0-15] and V[33-48] of Figure 3-A.2\r
+                                   // in ISO DIS 11172-3\r
+    float[] p = new float[16];\r
+    float[] pp = new float[16];\r
+\r
+    for (int i = 31; i >= 0; i--) {\r
+      new_v[i] = 0.0f;\r
+    }\r
+\r
+    // float[] new_v = new float[32]; // new V[0-15] and V[33-48] of Figure\r
+    // 3-A.2 in ISO DIS 11172-3\r
+    // float[] p = new float[16];\r
+    // float[] pp = new float[16];\r
+\r
+    float[] x1 = samples;\r
+\r
+    p[0] = x1[0] + x1[31];\r
+    p[1] = x1[1] + x1[30];\r
+    p[2] = x1[2] + x1[29];\r
+    p[3] = x1[3] + x1[28];\r
+    p[4] = x1[4] + x1[27];\r
+    p[5] = x1[5] + x1[26];\r
+    p[6] = x1[6] + x1[25];\r
+    p[7] = x1[7] + x1[24];\r
+    p[8] = x1[8] + x1[23];\r
+    p[9] = x1[9] + x1[22];\r
+    p[10] = x1[10] + x1[21];\r
+    p[11] = x1[11] + x1[20];\r
+    p[12] = x1[12] + x1[19];\r
+    p[13] = x1[13] + x1[18];\r
+    p[14] = x1[14] + x1[17];\r
+    p[15] = x1[15] + x1[16];\r
+\r
+    pp[0] = p[0] + p[15];\r
+    pp[1] = p[1] + p[14];\r
+    pp[2] = p[2] + p[13];\r
+    pp[3] = p[3] + p[12];\r
+    pp[4] = p[4] + p[11];\r
+    pp[5] = p[5] + p[10];\r
+    pp[6] = p[6] + p[9];\r
+    pp[7] = p[7] + p[8];\r
+    pp[8] = (p[0] - p[15]) * cos1_32;\r
+    pp[9] = (p[1] - p[14]) * cos3_32;\r
+    pp[10] = (p[2] - p[13]) * cos5_32;\r
+    pp[11] = (p[3] - p[12]) * cos7_32;\r
+    pp[12] = (p[4] - p[11]) * cos9_32;\r
+    pp[13] = (p[5] - p[10]) * cos11_32;\r
+    pp[14] = (p[6] - p[9]) * cos13_32;\r
+    pp[15] = (p[7] - p[8]) * cos15_32;\r
+\r
+    p[0] = pp[0] + pp[7];\r
+    p[1] = pp[1] + pp[6];\r
+    p[2] = pp[2] + pp[5];\r
+    p[3] = pp[3] + pp[4];\r
+    p[4] = (pp[0] - pp[7]) * cos1_16;\r
+    p[5] = (pp[1] - pp[6]) * cos3_16;\r
+    p[6] = (pp[2] - pp[5]) * cos5_16;\r
+    p[7] = (pp[3] - pp[4]) * cos7_16;\r
+    p[8] = pp[8] + pp[15];\r
+    p[9] = pp[9] + pp[14];\r
+    p[10] = pp[10] + pp[13];\r
+    p[11] = pp[11] + pp[12];\r
+    p[12] = (pp[8] - pp[15]) * cos1_16;\r
+    p[13] = (pp[9] - pp[14]) * cos3_16;\r
+    p[14] = (pp[10] - pp[13]) * cos5_16;\r
+    p[15] = (pp[11] - pp[12]) * cos7_16;\r
+\r
+    pp[0] = p[0] + p[3];\r
+    pp[1] = p[1] + p[2];\r
+    pp[2] = (p[0] - p[3]) * cos1_8;\r
+    pp[3] = (p[1] - p[2]) * cos3_8;\r
+    pp[4] = p[4] + p[7];\r
+    pp[5] = p[5] + p[6];\r
+    pp[6] = (p[4] - p[7]) * cos1_8;\r
+    pp[7] = (p[5] - p[6]) * cos3_8;\r
+    pp[8] = p[8] + p[11];\r
+    pp[9] = p[9] + p[10];\r
+    pp[10] = (p[8] - p[11]) * cos1_8;\r
+    pp[11] = (p[9] - p[10]) * cos3_8;\r
+    pp[12] = p[12] + p[15];\r
+    pp[13] = p[13] + p[14];\r
+    pp[14] = (p[12] - p[15]) * cos1_8;\r
+    pp[15] = (p[13] - p[14]) * cos3_8;\r
+\r
+    p[0] = pp[0] + pp[1];\r
+    p[1] = (pp[0] - pp[1]) * cos1_4;\r
+    p[2] = pp[2] + pp[3];\r
+    p[3] = (pp[2] - pp[3]) * cos1_4;\r
+    p[4] = pp[4] + pp[5];\r
+    p[5] = (pp[4] - pp[5]) * cos1_4;\r
+    p[6] = pp[6] + pp[7];\r
+    p[7] = (pp[6] - pp[7]) * cos1_4;\r
+    p[8] = pp[8] + pp[9];\r
+    p[9] = (pp[8] - pp[9]) * cos1_4;\r
+    p[10] = pp[10] + pp[11];\r
+    p[11] = (pp[10] - pp[11]) * cos1_4;\r
+    p[12] = pp[12] + pp[13];\r
+    p[13] = (pp[12] - pp[13]) * cos1_4;\r
+    p[14] = pp[14] + pp[15];\r
+    p[15] = (pp[14] - pp[15]) * cos1_4;\r
+\r
+    // this is pretty insane coding\r
+    float tmp1;\r
+    new_v[36 - 17] = -(new_v[4] = (new_v[12] = p[7]) + p[5]) - p[6];\r
+    new_v[44 - 17] = -p[6] - p[7] - p[4];\r
+    new_v[6] = (new_v[10] = (new_v[14] = p[15]) + p[11]) + p[13];\r
+    new_v[34 - 17] = -(new_v[2] = p[15] + p[13] + p[9]) - p[14];\r
+    new_v[38 - 17] = (tmp1 = -p[14] - p[15] - p[10] - p[11]) - p[13];\r
+    new_v[46 - 17] = -p[14] - p[15] - p[12] - p[8];\r
+    new_v[42 - 17] = tmp1 - p[12];\r
+    new_v[48 - 17] = -p[0];\r
+    new_v[0] = p[1];\r
+    new_v[40 - 17] = -(new_v[8] = p[3]) - p[2];\r
+\r
+    p[0] = (x1[0] - x1[31]) * cos1_64;\r
+    p[1] = (x1[1] - x1[30]) * cos3_64;\r
+    p[2] = (x1[2] - x1[29]) * cos5_64;\r
+    p[3] = (x1[3] - x1[28]) * cos7_64;\r
+    p[4] = (x1[4] - x1[27]) * cos9_64;\r
+    p[5] = (x1[5] - x1[26]) * cos11_64;\r
+    p[6] = (x1[6] - x1[25]) * cos13_64;\r
+    p[7] = (x1[7] - x1[24]) * cos15_64;\r
+    p[8] = (x1[8] - x1[23]) * cos17_64;\r
+    p[9] = (x1[9] - x1[22]) * cos19_64;\r
+    p[10] = (x1[10] - x1[21]) * cos21_64;\r
+    p[11] = (x1[11] - x1[20]) * cos23_64;\r
+    p[12] = (x1[12] - x1[19]) * cos25_64;\r
+    p[13] = (x1[13] - x1[18]) * cos27_64;\r
+    p[14] = (x1[14] - x1[17]) * cos29_64;\r
+    p[15] = (x1[15] - x1[16]) * cos31_64;\r
+\r
+    pp[0] = p[0] + p[15];\r
+    pp[1] = p[1] + p[14];\r
+    pp[2] = p[2] + p[13];\r
+    pp[3] = p[3] + p[12];\r
+    pp[4] = p[4] + p[11];\r
+    pp[5] = p[5] + p[10];\r
+    pp[6] = p[6] + p[9];\r
+    pp[7] = p[7] + p[8];\r
+    pp[8] = (p[0] - p[15]) * cos1_32;\r
+    pp[9] = (p[1] - p[14]) * cos3_32;\r
+    pp[10] = (p[2] - p[13]) * cos5_32;\r
+    pp[11] = (p[3] - p[12]) * cos7_32;\r
+    pp[12] = (p[4] - p[11]) * cos9_32;\r
+    pp[13] = (p[5] - p[10]) * cos11_32;\r
+    pp[14] = (p[6] - p[9]) * cos13_32;\r
+    pp[15] = (p[7] - p[8]) * cos15_32;\r
+\r
+    p[0] = pp[0] + pp[7];\r
+    p[1] = pp[1] + pp[6];\r
+    p[2] = pp[2] + pp[5];\r
+    p[3] = pp[3] + pp[4];\r
+    p[4] = (pp[0] - pp[7]) * cos1_16;\r
+    p[5] = (pp[1] - pp[6]) * cos3_16;\r
+    p[6] = (pp[2] - pp[5]) * cos5_16;\r
+    p[7] = (pp[3] - pp[4]) * cos7_16;\r
+    p[8] = pp[8] + pp[15];\r
+    p[9] = pp[9] + pp[14];\r
+    p[10] = pp[10] + pp[13];\r
+    p[11] = pp[11] + pp[12];\r
+    p[12] = (pp[8] - pp[15]) * cos1_16;\r
+    p[13] = (pp[9] - pp[14]) * cos3_16;\r
+    p[14] = (pp[10] - pp[13]) * cos5_16;\r
+    p[15] = (pp[11] - pp[12]) * cos7_16;\r
+\r
+    pp[0] = p[0] + p[3];\r
+    pp[1] = p[1] + p[2];\r
+    pp[2] = (p[0] - p[3]) * cos1_8;\r
+    pp[3] = (p[1] - p[2]) * cos3_8;\r
+    pp[4] = p[4] + p[7];\r
+    pp[5] = p[5] + p[6];\r
+    pp[6] = (p[4] - p[7]) * cos1_8;\r
+    pp[7] = (p[5] - p[6]) * cos3_8;\r
+    pp[8] = p[8] + p[11];\r
+    pp[9] = p[9] + p[10];\r
+    pp[10] = (p[8] - p[11]) * cos1_8;\r
+    pp[11] = (p[9] - p[10]) * cos3_8;\r
+    pp[12] = p[12] + p[15];\r
+    pp[13] = p[13] + p[14];\r
+    pp[14] = (p[12] - p[15]) * cos1_8;\r
+    pp[15] = (p[13] - p[14]) * cos3_8;\r
+\r
+    p[0] = pp[0] + pp[1];\r
+    p[1] = (pp[0] - pp[1]) * cos1_4;\r
+    p[2] = pp[2] + pp[3];\r
+    p[3] = (pp[2] - pp[3]) * cos1_4;\r
+    p[4] = pp[4] + pp[5];\r
+    p[5] = (pp[4] - pp[5]) * cos1_4;\r
+    p[6] = pp[6] + pp[7];\r
+    p[7] = (pp[6] - pp[7]) * cos1_4;\r
+    p[8] = pp[8] + pp[9];\r
+    p[9] = (pp[8] - pp[9]) * cos1_4;\r
+    p[10] = pp[10] + pp[11];\r
+    p[11] = (pp[10] - pp[11]) * cos1_4;\r
+    p[12] = pp[12] + pp[13];\r
+    p[13] = (pp[12] - pp[13]) * cos1_4;\r
+    p[14] = pp[14] + pp[15];\r
+    p[15] = (pp[14] - pp[15]) * cos1_4;\r
+\r
+    // manually doing something that a compiler should handle sucks\r
+    // coding like this is hard to read\r
+    float tmp2;\r
+    new_v[5] = (new_v[11] = (new_v[13] = (new_v[15] = p[15]) + p[7]) + p[11]) + p[5] + p[13];\r
+    new_v[7] = (new_v[9] = p[15] + p[11] + p[3]) + p[13];\r
+    new_v[33 - 17] = -(new_v[1] = (tmp1 = p[13] + p[15] + p[9]) + p[1]) - p[14];\r
+    new_v[35 - 17] = -(new_v[3] = tmp1 + p[5] + p[7]) - p[6] - p[14];\r
+\r
+    new_v[39 - 17] = (tmp1 = -p[10] - p[11] - p[14] - p[15]) - p[13] - p[2] - p[3];\r
+    new_v[37 - 17] = tmp1 - p[13] - p[5] - p[6] - p[7];\r
+    new_v[41 - 17] = tmp1 - p[12] - p[2] - p[3];\r
+    new_v[43 - 17] = tmp1 - p[12] - (tmp2 = p[4] + p[6] + p[7]);\r
+    new_v[47 - 17] = (tmp1 = -p[8] - p[12] - p[14] - p[15]) - p[0];\r
+    new_v[45 - 17] = tmp1 - tmp2;\r
+\r
+    // insert V[0-15] (== new_v[0-15]) into actual v:\r
+    x1 = new_v;\r
+    // float[] x2 = actual_v + actual_write_pos;\r
+    float[] dest = actual_v;\r
+\r
+    dest[0 + actual_write_pos] = x1[0];\r
+    dest[16 + actual_write_pos] = x1[1];\r
+    dest[32 + actual_write_pos] = x1[2];\r
+    dest[48 + actual_write_pos] = x1[3];\r
+    dest[64 + actual_write_pos] = x1[4];\r
+    dest[80 + actual_write_pos] = x1[5];\r
+    dest[96 + actual_write_pos] = x1[6];\r
+    dest[112 + actual_write_pos] = x1[7];\r
+    dest[128 + actual_write_pos] = x1[8];\r
+    dest[144 + actual_write_pos] = x1[9];\r
+    dest[160 + actual_write_pos] = x1[10];\r
+    dest[176 + actual_write_pos] = x1[11];\r
+    dest[192 + actual_write_pos] = x1[12];\r
+    dest[208 + actual_write_pos] = x1[13];\r
+    dest[224 + actual_write_pos] = x1[14];\r
+    dest[240 + actual_write_pos] = x1[15];\r
+\r
+    // V[16] is always 0.0:\r
+    dest[256 + actual_write_pos] = 0.0f;\r
+\r
+    // insert V[17-31] (== -new_v[15-1]) into actual v:\r
+    dest[272 + actual_write_pos] = -x1[15];\r
+    dest[288 + actual_write_pos] = -x1[14];\r
+    dest[304 + actual_write_pos] = -x1[13];\r
+    dest[320 + actual_write_pos] = -x1[12];\r
+    dest[336 + actual_write_pos] = -x1[11];\r
+    dest[352 + actual_write_pos] = -x1[10];\r
+    dest[368 + actual_write_pos] = -x1[9];\r
+    dest[384 + actual_write_pos] = -x1[8];\r
+    dest[400 + actual_write_pos] = -x1[7];\r
+    dest[416 + actual_write_pos] = -x1[6];\r
+    dest[432 + actual_write_pos] = -x1[5];\r
+    dest[448 + actual_write_pos] = -x1[4];\r
+    dest[464 + actual_write_pos] = -x1[3];\r
+    dest[480 + actual_write_pos] = -x1[2];\r
+    dest[496 + actual_write_pos] = -x1[1];\r
+\r
+    // insert V[32] (== -new_v[0]) into other v:\r
+\r
   }\r
 \r
   /**\r
    * Compute PCM Samples.\r
    */\r
 \r
-  @LOC("TMP")\r
   private float[] _tmpOut = new float[32];\r
 \r
-  @LATTICE("IN,THIS<DVP,DVP<I,DVP*,I*,THISLOC=THIS,GLOBALLOC=THIS")\r
-  private void compute_pcm_samples0(@LOC("IN") Obuffer buffer) {\r
-    // final float[] vp = v1; //subbed in variable name instead to reduce areas\r
+  private void compute_pcm_samples0(Obuffer buffer) {\r
+    final float[] vp = actual_v;\r
     // int inc = v_inc;\r
-    // final float[] tmpOut = _tmpOut; //subbed in variable name instread to\r
-    // reduce areas\r
-    @LOC("DVP") int dvp = 0;\r
+    final float[] tmpOut = _tmpOut;\r
+    int dvp = 0;\r
 \r
     // fat chance of having this loop unroll\r
-    for (@LOC("I") int i = 0; i < 32; i++) {\r
-      @LOC("THIS,SynthesisFilter.PCM") float pcm_sample;\r
-      // final float[] dp = d16[i]; //subbed in variable name instead to reduce\r
-      // areas\r
+    for (int i = 0; i < 32; i++) {\r
+      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
-              + (v1[14 + dvp] * d16[i][2]) + (v1[13 + dvp] * d16[i][3])\r
-              + (v1[12 + dvp] * d16[i][4]) + (v1[11 + dvp] * d16[i][5])\r
-              + (v1[10 + dvp] * d16[i][6]) + (v1[9 + dvp] * d16[i][7]) + (v1[8 + dvp] * d16[i][8])\r
-              + (v1[7 + dvp] * d16[i][9]) + (v1[6 + dvp] * d16[i][10]) + (v1[5 + dvp] * d16[i][11])\r
-              + (v1[4 + dvp] * d16[i][12]) + (v1[3 + dvp] * d16[i][13])\r
-              + (v1[2 + dvp] * d16[i][14]) + (v1[1 + dvp] * d16[i][15])) * scalefactor);\r
+          (float) (((vp[0 + dvp] * dp[0]) + (vp[15 + dvp] * dp[1]) + (vp[14 + dvp] * dp[2])\r
+              + (vp[13 + dvp] * dp[3]) + (vp[12 + dvp] * dp[4]) + (vp[11 + dvp] * dp[5])\r
+              + (vp[10 + dvp] * dp[6]) + (vp[9 + dvp] * dp[7]) + (vp[8 + dvp] * dp[8])\r
+              + (vp[7 + dvp] * dp[9]) + (vp[6 + dvp] * dp[10]) + (vp[5 + dvp] * dp[11])\r
+              + (vp[4 + dvp] * dp[12]) + (vp[3 + dvp] * dp[13]) + (vp[2 + dvp] * dp[14]) + (vp[1 + dvp] * dp[15])) * scalefactor);\r
 \r
-      _tmpOut[i] = pcm_sample;\r
+      tmpOut[i] = pcm_sample;\r
 \r
       dvp += 16;\r
     } // for\r
   }\r
 \r
-  @LATTICE("THIS<DVP,DVP<I,DVP*,I*,THISLOC=THIS,GLOBALLOC=THIS")\r
-  private void compute_pcm_samples1(@LOC("THIS") Obuffer buffer) {\r
-    // final float[] vp = v1;\r
+  private void compute_pcm_samples1(Obuffer buffer) {\r
+    final float[] vp = actual_v;\r
     // int inc = v_inc;\r
-    // final float[] tmpOut = _tmpOut;\r
-    @LOC("DVP") int dvp = 0;\r
+    final float[] tmpOut = _tmpOut;\r
+    int dvp = 0;\r
 \r
     // fat chance of having this loop unroll\r
-    for (@LOC("I") int i = 0; i < 32; i++) {\r
-      // final float[] dp = d16[i];\r
-      @LOC("THIS,SynthesisFilter.PCM") float pcm_sample;\r
+    for (int i = 0; i < 32; i++) {\r
+      final float[] dp = d16[i];\r
+      float pcm_sample;\r
 \r
       pcm_sample =\r
-          (float) (((v1[1 + dvp] * d16[i][0]) + (v1[0 + dvp] * d16[i][1])\r
-              + (v1[15 + dvp] * d16[i][2]) + (v1[14 + dvp] * d16[i][3])\r
-              + (v1[13 + dvp] * d16[i][4]) + (v1[12 + dvp] * d16[i][5])\r
-              + (v1[11 + dvp] * d16[i][6]) + (v1[10 + dvp] * d16[i][7]) + (v1[9 + dvp] * d16[i][8])\r
-              + (v1[8 + dvp] * d16[i][9]) + (v1[7 + dvp] * d16[i][10]) + (v1[6 + dvp] * d16[i][11])\r
-              + (v1[5 + dvp] * d16[i][12]) + (v1[4 + dvp] * d16[i][13])\r
-              + (v1[3 + dvp] * d16[i][14]) + (v1[2 + dvp] * d16[i][15])) * scalefactor);\r
-\r
-      _tmpOut[i] = pcm_sample;\r
-      // v1\r
+          (float) (((vp[1 + dvp] * dp[0]) + (vp[0 + dvp] * dp[1]) + (vp[15 + dvp] * dp[2])\r
+              + (vp[14 + dvp] * dp[3]) + (vp[13 + dvp] * dp[4]) + (vp[12 + dvp] * dp[5])\r
+              + (vp[11 + dvp] * dp[6]) + (vp[10 + dvp] * dp[7]) + (vp[9 + dvp] * dp[8])\r
+              + (vp[8 + dvp] * dp[9]) + (vp[7 + dvp] * dp[10]) + (vp[6 + dvp] * dp[11])\r
+              + (vp[5 + dvp] * dp[12]) + (vp[4 + dvp] * dp[13]) + (vp[3 + dvp] * dp[14]) + (vp[2 + dvp] * dp[15])) * scalefactor);\r
+\r
+      tmpOut[i] = pcm_sample;\r
+\r
       dvp += 16;\r
     } // for\r
   }\r
 \r
-  @LATTICE("THIS<DVP,DVP<I,DVP*,I*,THISLOC=THIS,GLOBALLOC=THIS")\r
-  private void compute_pcm_samples2(@LOC("THIS") Obuffer buffer) {\r
-    // final float[] vp = v1;\r
+  private void compute_pcm_samples2(Obuffer buffer) {\r
+    final float[] vp = actual_v;\r
 \r
     // int inc = v_inc;\r
-    // final float[] tmpOut = _tmpOut;\r
-    @LOC("DVP") int dvp = 0;\r
+    final float[] tmpOut = _tmpOut;\r
+    int dvp = 0;\r
 \r
     // fat chance of having this loop unroll\r
-    for (@LOC("I") int i = 0; i < 32; i++) {\r
-      // final float[] dp = d16[i];\r
-      @LOC("THIS,SynthesisFilter.PCM") float pcm_sample;\r
+    for (int i = 0; i < 32; i++) {\r
+      final float[] dp = d16[i];\r
+      float pcm_sample;\r
 \r
       pcm_sample =\r
-          (float) (((v1[2 + dvp] * d16[i][0]) + (v1[1 + dvp] * d16[i][1])\r
-              + (v1[0 + dvp] * d16[i][2]) + (v1[15 + dvp] * d16[i][3]) + (v1[14 + dvp] * d16[i][4])\r
-              + (v1[13 + dvp] * d16[i][5]) + (v1[12 + dvp] * d16[i][6])\r
-              + (v1[11 + dvp] * d16[i][7]) + (v1[10 + dvp] * d16[i][8]) + (v1[9 + dvp] * d16[i][9])\r
-              + (v1[8 + dvp] * d16[i][10]) + (v1[7 + dvp] * d16[i][11])\r
-              + (v1[6 + dvp] * d16[i][12]) + (v1[5 + dvp] * d16[i][13])\r
-              + (v1[4 + dvp] * d16[i][14]) + (v1[3 + dvp] * d16[i][15])) * scalefactor);\r
+          (float) (((vp[2 + dvp] * dp[0]) + (vp[1 + dvp] * dp[1]) + (vp[0 + dvp] * dp[2])\r
+              + (vp[15 + dvp] * dp[3]) + (vp[14 + dvp] * dp[4]) + (vp[13 + dvp] * dp[5])\r
+              + (vp[12 + dvp] * dp[6]) + (vp[11 + dvp] * dp[7]) + (vp[10 + dvp] * dp[8])\r
+              + (vp[9 + dvp] * dp[9]) + (vp[8 + dvp] * dp[10]) + (vp[7 + dvp] * dp[11])\r
+              + (vp[6 + dvp] * dp[12]) + (vp[5 + dvp] * dp[13]) + (vp[4 + dvp] * dp[14]) + (vp[3 + dvp] * dp[15])) * scalefactor);\r
 \r
-      _tmpOut[i] = pcm_sample;\r
+      tmpOut[i] = pcm_sample;\r
 \r
       dvp += 16;\r
     } // for\r
   }\r
 \r
-  @LATTICE("THIS<DVP,DVP<I,DVP*,I*,THISLOC=THIS,GLOBALLOC=THIS")\r
-  private void compute_pcm_samples3(@LOC("THIS") Obuffer buffer) {\r
-    // final float[] vp = v1;\r
+  private void compute_pcm_samples3(Obuffer buffer) {\r
+    final float[] vp = actual_v;\r
 \r
-    @LOC("I") int idx = 0;\r
+    int idx = 0;\r
     // int inc = v_inc;\r
-    // final float[] tmpOut = _tmpOut;\r
-    @LOC("DVP") int dvp = 0;\r
+    final float[] tmpOut = _tmpOut;\r
+    int dvp = 0;\r
 \r
     // fat chance of having this loop unroll\r
-    for (@LOC("I") int i = 0; i < 32; i++) {\r
-      // final float[] dp = d16[i];\r
-      @LOC("THIS,SynthesisFilter.PCM") float pcm_sample;\r
+    for (int i = 0; i < 32; i++) {\r
+      final float[] dp = d16[i];\r
+      float pcm_sample;\r
 \r
       pcm_sample =\r
-          (float) (((v1[3 + dvp] * d16[i][0]) + (v1[2 + dvp] * d16[i][1])\r
-              + (v1[1 + dvp] * d16[i][2]) + (v1[0 + dvp] * d16[i][3]) + (v1[15 + dvp] * d16[i][4])\r
-              + (v1[14 + dvp] * d16[i][5]) + (v1[13 + dvp] * d16[i][6])\r
-              + (v1[12 + dvp] * d16[i][7]) + (v1[11 + dvp] * d16[i][8])\r
-              + (v1[10 + dvp] * d16[i][9]) + (v1[9 + dvp] * d16[i][10])\r
-              + (v1[8 + dvp] * d16[i][11]) + (v1[7 + dvp] * d16[i][12])\r
-              + (v1[6 + dvp] * d16[i][13]) + (v1[5 + dvp] * d16[i][14]) + (v1[4 + dvp] * d16[i][15])) * scalefactor);\r
+          (float) (((vp[3 + dvp] * dp[0]) + (vp[2 + dvp] * dp[1]) + (vp[1 + dvp] * dp[2])\r
+              + (vp[0 + dvp] * dp[3]) + (vp[15 + dvp] * dp[4]) + (vp[14 + dvp] * dp[5])\r
+              + (vp[13 + dvp] * dp[6]) + (vp[12 + dvp] * dp[7]) + (vp[11 + dvp] * dp[8])\r
+              + (vp[10 + dvp] * dp[9]) + (vp[9 + dvp] * dp[10]) + (vp[8 + dvp] * dp[11])\r
+              + (vp[7 + dvp] * dp[12]) + (vp[6 + dvp] * dp[13]) + (vp[5 + dvp] * dp[14]) + (vp[4 + dvp] * dp[15])) * scalefactor);\r
 \r
-      _tmpOut[i] = pcm_sample;\r
+      tmpOut[i] = pcm_sample;\r
 \r
       dvp += 16;\r
     } // for\r
   }\r
 \r
-  @LATTICE("THIS<DVP,DVP<I,DVP*,I*,THISLOC=THIS,GLOBALLOC=THIS")\r
-  private void compute_pcm_samples4(@LOC("THIS") Obuffer buffer) {\r
-    // final float[] vp = v1;\r
+  private void compute_pcm_samples4(Obuffer buffer) {\r
+    final float[] vp = actual_v;\r
 \r
     // int inc = v_inc;\r
-    // final float[] tmpOut = _tmpOut;\r
-    @LOC("DVP") int dvp = 0;\r
+    final float[] tmpOut = _tmpOut;\r
+    int dvp = 0;\r
 \r
     // fat chance of having this loop unroll\r
-    for (@LOC("I") int i = 0; i < 32; i++) {\r
-      // final float[] dp = d16[i];\r
-      @LOC("THIS,SynthesisFilter.PCM") float pcm_sample;\r
+    for (int i = 0; i < 32; i++) {\r
+      final float[] dp = d16[i];\r
+      float pcm_sample;\r
 \r
       pcm_sample =\r
-          (float) (((v1[4 + dvp] * d16[i][0]) + (v1[3 + dvp] * d16[i][1])\r
-              + (v1[2 + dvp] * d16[i][2]) + (v1[1 + dvp] * d16[i][3]) + (v1[0 + dvp] * d16[i][4])\r
-              + (v1[15 + dvp] * d16[i][5]) + (v1[14 + dvp] * d16[i][6])\r
-              + (v1[13 + dvp] * d16[i][7]) + (v1[12 + dvp] * d16[i][8])\r
-              + (v1[11 + dvp] * d16[i][9]) + (v1[10 + dvp] * d16[i][10])\r
-              + (v1[9 + dvp] * d16[i][11]) + (v1[8 + dvp] * d16[i][12])\r
-              + (v1[7 + dvp] * d16[i][13]) + (v1[6 + dvp] * d16[i][14]) + (v1[5 + dvp] * d16[i][15])) * scalefactor);\r
+          (float) (((vp[4 + dvp] * dp[0]) + (vp[3 + dvp] * dp[1]) + (vp[2 + dvp] * dp[2])\r
+              + (vp[1 + dvp] * dp[3]) + (vp[0 + dvp] * dp[4]) + (vp[15 + dvp] * dp[5])\r
+              + (vp[14 + dvp] * dp[6]) + (vp[13 + dvp] * dp[7]) + (vp[12 + dvp] * dp[8])\r
+              + (vp[11 + dvp] * dp[9]) + (vp[10 + dvp] * dp[10]) + (vp[9 + dvp] * dp[11])\r
+              + (vp[8 + dvp] * dp[12]) + (vp[7 + dvp] * dp[13]) + (vp[6 + dvp] * dp[14]) + (vp[5 + dvp] * dp[15])) * scalefactor);\r
 \r
-      _tmpOut[i] = pcm_sample;\r
+      tmpOut[i] = pcm_sample;\r
 \r
       dvp += 16;\r
     } // for\r
   }\r
 \r
-  @LATTICE("THIS<DVP,DVP<I,DVP*,I*,THISLOC=THIS,GLOBALLOC=THIS")\r
-  private void compute_pcm_samples5(@LOC("THIS") Obuffer buffer) {\r
-    // final float[] vp = v1;\r
+  private void compute_pcm_samples5(Obuffer buffer) {\r
+    final float[] vp = actual_v;\r
 \r
     // int inc = v_inc;\r
-    // final float[] tmpOut = _tmpOut;\r
-    @LOC("DVP") int dvp = 0;\r
+    final float[] tmpOut = _tmpOut;\r
+    int dvp = 0;\r
 \r
     // fat chance of having this loop unroll\r
-    for (@LOC("I") int i = 0; i < 32; i++) {\r
-      // final float[] dp = d16[i];\r
-      @LOC("THIS,SynthesisFilter.PCM") float pcm_sample;\r
+    for (int i = 0; i < 32; i++) {\r
+      final float[] dp = d16[i];\r
+      float pcm_sample;\r
 \r
       pcm_sample =\r
-          (float) (((v1[5 + dvp] * d16[i][0]) + (v1[4 + dvp] * d16[i][1])\r
-              + (v1[3 + dvp] * d16[i][2]) + (v1[2 + dvp] * d16[i][3]) + (v1[1 + dvp] * d16[i][4])\r
-              + (v1[0 + dvp] * d16[i][5]) + (v1[15 + dvp] * d16[i][6]) + (v1[14 + dvp] * d16[i][7])\r
-              + (v1[13 + dvp] * d16[i][8]) + (v1[12 + dvp] * d16[i][9])\r
-              + (v1[11 + dvp] * d16[i][10]) + (v1[10 + dvp] * d16[i][11])\r
-              + (v1[9 + dvp] * d16[i][12]) + (v1[8 + dvp] * d16[i][13])\r
-              + (v1[7 + dvp] * d16[i][14]) + (v1[6 + dvp] * d16[i][15])) * scalefactor);\r
+          (float) (((vp[5 + dvp] * dp[0]) + (vp[4 + dvp] * dp[1]) + (vp[3 + dvp] * dp[2])\r
+              + (vp[2 + dvp] * dp[3]) + (vp[1 + dvp] * dp[4]) + (vp[0 + dvp] * dp[5])\r
+              + (vp[15 + dvp] * dp[6]) + (vp[14 + dvp] * dp[7]) + (vp[13 + dvp] * dp[8])\r
+              + (vp[12 + dvp] * dp[9]) + (vp[11 + dvp] * dp[10]) + (vp[10 + dvp] * dp[11])\r
+              + (vp[9 + dvp] * dp[12]) + (vp[8 + dvp] * dp[13]) + (vp[7 + dvp] * dp[14]) + (vp[6 + dvp] * dp[15])) * scalefactor);\r
 \r
-      _tmpOut[i] = pcm_sample;\r
+      tmpOut[i] = pcm_sample;\r
 \r
       dvp += 16;\r
     } // for\r
   }\r
 \r
-  @LATTICE("THIS<DVP,DVP<I,DVP*,I*,THISLOC=THIS,GLOBALLOC=THIS")\r
-  private void compute_pcm_samples6(@LOC("THIS") Obuffer buffer) {\r
-    // final float[] vp = v1;\r
+  private void compute_pcm_samples6(Obuffer buffer) {\r
+    final float[] vp = actual_v;\r
     // int inc = v_inc;\r
-    // final float[] tmpOut = _tmpOut;\r
-    @LOC("DVP") int dvp = 0;\r
+    final float[] tmpOut = _tmpOut;\r
+    int dvp = 0;\r
 \r
     // fat chance of having this loop unroll\r
-    for (@LOC("I") int i = 0; i < 32; i++) {\r
-      // final float[] dp = d16[i];\r
-      @LOC("THIS,SynthesisFilter.PCM") float pcm_sample;\r
+    for (int i = 0; i < 32; i++) {\r
+      final float[] dp = d16[i];\r
+      float pcm_sample;\r
 \r
       pcm_sample =\r
-          (float) (((v1[6 + dvp] * d16[i][0]) + (v1[5 + dvp] * d16[i][1])\r
-              + (v1[4 + dvp] * d16[i][2]) + (v1[3 + dvp] * d16[i][3]) + (v1[2 + dvp] * d16[i][4])\r
-              + (v1[1 + dvp] * d16[i][5]) + (v1[0 + dvp] * d16[i][6]) + (v1[15 + dvp] * d16[i][7])\r
-              + (v1[14 + dvp] * d16[i][8]) + (v1[13 + dvp] * d16[i][9])\r
-              + (v1[12 + dvp] * d16[i][10]) + (v1[11 + dvp] * d16[i][11])\r
-              + (v1[10 + dvp] * d16[i][12]) + (v1[9 + dvp] * d16[i][13])\r
-              + (v1[8 + dvp] * d16[i][14]) + (v1[7 + dvp] * d16[i][15])) * scalefactor);\r
+          (float) (((vp[6 + dvp] * dp[0]) + (vp[5 + dvp] * dp[1]) + (vp[4 + dvp] * dp[2])\r
+              + (vp[3 + dvp] * dp[3]) + (vp[2 + dvp] * dp[4]) + (vp[1 + dvp] * dp[5])\r
+              + (vp[0 + dvp] * dp[6]) + (vp[15 + dvp] * dp[7]) + (vp[14 + dvp] * dp[8])\r
+              + (vp[13 + dvp] * dp[9]) + (vp[12 + dvp] * dp[10]) + (vp[11 + dvp] * dp[11])\r
+              + (vp[10 + dvp] * dp[12]) + (vp[9 + dvp] * dp[13]) + (vp[8 + dvp] * dp[14]) + (vp[7 + dvp] * dp[15])) * scalefactor);\r
 \r
-      _tmpOut[i] = pcm_sample;\r
+      tmpOut[i] = pcm_sample;\r
 \r
       dvp += 16;\r
     } // for\r
   }\r
 \r
-  @LATTICE("THIS<DVP,DVP<I,DVP*,I*,THISLOC=THIS,GLOBALLOC=THIS")\r
-  private void compute_pcm_samples7(@LOC("THIS") Obuffer buffer) {\r
-    // final float[] vp = v1;\r
+  private void compute_pcm_samples7(Obuffer buffer) {\r
+    final float[] vp = actual_v;\r
 \r
     // int inc = v_inc;\r
-    // final float[] tmpOut = _tmpOut;\r
-    @LOC("DVP") int dvp = 0;\r
+    final float[] tmpOut = _tmpOut;\r
+    int dvp = 0;\r
 \r
     // fat chance of having this loop unroll\r
-    for (@LOC("I") int i = 0; i < 32; i++) {\r
-      // final float[] dp = d16[i];\r
-      @LOC("THIS,SynthesisFilter.PCM") float pcm_sample;\r
+    for (int i = 0; i < 32; i++) {\r
+      final float[] dp = d16[i];\r
+      float pcm_sample;\r
 \r
       pcm_sample =\r
-          (float) (((v1[7 + dvp] * d16[i][0]) + (v1[6 + dvp] * d16[i][1])\r
-              + (v1[5 + dvp] * d16[i][2]) + (v1[4 + dvp] * d16[i][3]) + (v1[3 + dvp] * d16[i][4])\r
-              + (v1[2 + dvp] * d16[i][5]) + (v1[1 + dvp] * d16[i][6]) + (v1[0 + dvp] * d16[i][7])\r
-              + (v1[15 + dvp] * d16[i][8]) + (v1[14 + dvp] * d16[i][9])\r
-              + (v1[13 + dvp] * d16[i][10]) + (v1[12 + dvp] * d16[i][11])\r
-              + (v1[11 + dvp] * d16[i][12]) + (v1[10 + dvp] * d16[i][13])\r
-              + (v1[9 + dvp] * d16[i][14]) + (v1[8 + dvp] * d16[i][15])) * scalefactor);\r
+          (float) (((vp[7 + dvp] * dp[0]) + (vp[6 + dvp] * dp[1]) + (vp[5 + dvp] * dp[2])\r
+              + (vp[4 + dvp] * dp[3]) + (vp[3 + dvp] * dp[4]) + (vp[2 + dvp] * dp[5])\r
+              + (vp[1 + dvp] * dp[6]) + (vp[0 + dvp] * dp[7]) + (vp[15 + dvp] * dp[8])\r
+              + (vp[14 + dvp] * dp[9]) + (vp[13 + dvp] * dp[10]) + (vp[12 + dvp] * dp[11])\r
+              + (vp[11 + dvp] * dp[12]) + (vp[10 + dvp] * dp[13]) + (vp[9 + dvp] * dp[14]) + (vp[8 + dvp] * dp[15])) * scalefactor);\r
 \r
-      _tmpOut[i] = pcm_sample;\r
+      tmpOut[i] = pcm_sample;\r
 \r
       dvp += 16;\r
     } // for\r
   }\r
 \r
-  @LATTICE("THIS<DVP,DVP<I,DVP*,I*,THISLOC=THIS,GLOBALLOC=THIS")\r
-  private void compute_pcm_samples8(@LOC("THIS") Obuffer buffer) {\r
-    // final float[] vp = v1;\r
+  private void compute_pcm_samples8(Obuffer buffer) {\r
+    final float[] vp = actual_v;\r
 \r
     // int inc = v_inc;\r
-    // final float[] tmpOut = _tmpOut;\r
-    @LOC("DVP") int dvp = 0;\r
+    final float[] tmpOut = _tmpOut;\r
+    int dvp = 0;\r
 \r
     // fat chance of having this loop unroll\r
-    for (@LOC("I") int i = 0; i < 32; i++) {\r
-      // final float[] dp = d16[i];\r
-      @LOC("THIS,SynthesisFilter.PCM") float pcm_sample;\r
+    for (int i = 0; i < 32; i++) {\r
+      final float[] dp = d16[i];\r
+      float pcm_sample;\r
 \r
       pcm_sample =\r
-          (float) (((v1[8 + dvp] * d16[i][0]) + (v1[7 + dvp] * d16[i][1])\r
-              + (v1[6 + dvp] * d16[i][2]) + (v1[5 + dvp] * d16[i][3]) + (v1[4 + dvp] * d16[i][4])\r
-              + (v1[3 + dvp] * d16[i][5]) + (v1[2 + dvp] * d16[i][6]) + (v1[1 + dvp] * d16[i][7])\r
-              + (v1[0 + dvp] * d16[i][8]) + (v1[15 + dvp] * d16[i][9])\r
-              + (v1[14 + dvp] * d16[i][10]) + (v1[13 + dvp] * d16[i][11])\r
-              + (v1[12 + dvp] * d16[i][12]) + (v1[11 + dvp] * d16[i][13])\r
-              + (v1[10 + dvp] * d16[i][14]) + (v1[9 + dvp] * d16[i][15])) * scalefactor);\r
+          (float) (((vp[8 + dvp] * dp[0]) + (vp[7 + dvp] * dp[1]) + (vp[6 + dvp] * dp[2])\r
+              + (vp[5 + dvp] * dp[3]) + (vp[4 + dvp] * dp[4]) + (vp[3 + dvp] * dp[5])\r
+              + (vp[2 + dvp] * dp[6]) + (vp[1 + dvp] * dp[7]) + (vp[0 + dvp] * dp[8])\r
+              + (vp[15 + dvp] * dp[9]) + (vp[14 + dvp] * dp[10]) + (vp[13 + dvp] * dp[11])\r
+              + (vp[12 + dvp] * dp[12]) + (vp[11 + dvp] * dp[13]) + (vp[10 + dvp] * dp[14]) + (vp[9 + dvp] * dp[15])) * scalefactor);\r
 \r
-      _tmpOut[i] = pcm_sample;\r
+      tmpOut[i] = pcm_sample;\r
 \r
       dvp += 16;\r
     } // for\r
   }\r
 \r
-  @LATTICE("THIS<DVP,DVP<I,DVP*,I*,THISLOC=THIS,GLOBALLOC=THIS")\r
-  private void compute_pcm_samples9(@LOC("THIS") Obuffer buffer) {\r
-    // final float[] vp = v1;\r
+  private void compute_pcm_samples9(Obuffer buffer) {\r
+    final float[] vp = actual_v;\r
 \r
     // int inc = v_inc;\r
-    // final float[] tmpOut = _tmpOut;\r
-    @LOC("DVP") int dvp = 0;\r
+    final float[] tmpOut = _tmpOut;\r
+    int dvp = 0;\r
 \r
     // fat chance of having this loop unroll\r
-    for (@LOC("I") int i = 0; i < 32; i++) {\r
-      // final float[] dp = d16[i];\r
-      @LOC("THIS,SynthesisFilter.PCM") float pcm_sample;\r
+    for (int i = 0; i < 32; i++) {\r
+      final float[] dp = d16[i];\r
+      float pcm_sample;\r
 \r
       pcm_sample =\r
-          (float) (((v1[9 + dvp] * d16[i][0]) + (v1[8 + dvp] * d16[i][1])\r
-              + (v1[7 + dvp] * d16[i][2]) + (v1[6 + dvp] * d16[i][3]) + (v1[5 + dvp] * d16[i][4])\r
-              + (v1[4 + dvp] * d16[i][5]) + (v1[3 + dvp] * d16[i][6]) + (v1[2 + dvp] * d16[i][7])\r
-              + (v1[1 + dvp] * d16[i][8]) + (v1[0 + dvp] * d16[i][9]) + (v1[15 + dvp] * d16[i][10])\r
-              + (v1[14 + dvp] * d16[i][11]) + (v1[13 + dvp] * d16[i][12])\r
-              + (v1[12 + dvp] * d16[i][13]) + (v1[11 + dvp] * d16[i][14]) + (v1[10 + dvp] * d16[i][15])) * scalefactor);\r
+          (float) (((vp[9 + dvp] * dp[0]) + (vp[8 + dvp] * dp[1]) + (vp[7 + dvp] * dp[2])\r
+              + (vp[6 + dvp] * dp[3]) + (vp[5 + dvp] * dp[4]) + (vp[4 + dvp] * dp[5])\r
+              + (vp[3 + dvp] * dp[6]) + (vp[2 + dvp] * dp[7]) + (vp[1 + dvp] * dp[8])\r
+              + (vp[0 + dvp] * dp[9]) + (vp[15 + dvp] * dp[10]) + (vp[14 + dvp] * dp[11])\r
+              + (vp[13 + dvp] * dp[12]) + (vp[12 + dvp] * dp[13]) + (vp[11 + dvp] * dp[14]) + (vp[10 + dvp] * dp[15])) * scalefactor);\r
 \r
-      _tmpOut[i] = pcm_sample;\r
+      tmpOut[i] = pcm_sample;\r
 \r
       dvp += 16;\r
     } // for\r
   }\r
 \r
-  @LATTICE("THIS<DVP,DVP<I,DVP*,I*,THISLOC=THIS,GLOBALLOC=THIS")\r
-  private void compute_pcm_samples10(@LOC("THIS") Obuffer buffer) {\r
-    // final float[] vp = v1;\r
+  private void compute_pcm_samples10(Obuffer buffer) {\r
+    final float[] vp = actual_v;\r
     // int inc = v_inc;\r
-    // final float[] tmpOut = _tmpOut;\r
-    @LOC("DVP") int dvp = 0;\r
+    final float[] tmpOut = _tmpOut;\r
+    int dvp = 0;\r
 \r
     // fat chance of having this loop unroll\r
-    for (@LOC("I") int i = 0; i < 32; i++) {\r
-      // final float[] dp = d16[i];\r
-      @LOC("THIS,SynthesisFilter.PCM") float pcm_sample;\r
+    for (int i = 0; i < 32; i++) {\r
+      final float[] dp = d16[i];\r
+      float pcm_sample;\r
 \r
       pcm_sample =\r
-          (float) (((v1[10 + dvp] * d16[i][0]) + (v1[9 + dvp] * d16[i][1])\r
-              + (v1[8 + dvp] * d16[i][2]) + (v1[7 + dvp] * d16[i][3]) + (v1[6 + dvp] * d16[i][4])\r
-              + (v1[5 + dvp] * d16[i][5]) + (v1[4 + dvp] * d16[i][6]) + (v1[3 + dvp] * d16[i][7])\r
-              + (v1[2 + dvp] * d16[i][8]) + (v1[1 + dvp] * d16[i][9]) + (v1[0 + dvp] * d16[i][10])\r
-              + (v1[15 + dvp] * d16[i][11]) + (v1[14 + dvp] * d16[i][12])\r
-              + (v1[13 + dvp] * d16[i][13]) + (v1[12 + dvp] * d16[i][14]) + (v1[11 + dvp] * d16[i][15])) * scalefactor);\r
+          (float) (((vp[10 + dvp] * dp[0]) + (vp[9 + dvp] * dp[1]) + (vp[8 + dvp] * dp[2])\r
+              + (vp[7 + dvp] * dp[3]) + (vp[6 + dvp] * dp[4]) + (vp[5 + dvp] * dp[5])\r
+              + (vp[4 + dvp] * dp[6]) + (vp[3 + dvp] * dp[7]) + (vp[2 + dvp] * dp[8])\r
+              + (vp[1 + dvp] * dp[9]) + (vp[0 + dvp] * dp[10]) + (vp[15 + dvp] * dp[11])\r
+              + (vp[14 + dvp] * dp[12]) + (vp[13 + dvp] * dp[13]) + (vp[12 + dvp] * dp[14]) + (vp[11 + dvp] * dp[15])) * scalefactor);\r
 \r
-      _tmpOut[i] = pcm_sample;\r
+      tmpOut[i] = pcm_sample;\r
 \r
       dvp += 16;\r
     } // for\r
   }\r
 \r
-  @LATTICE("THIS<DVP,DVP<I,DVP*,I*,THISLOC=THIS,GLOBALLOC=THIS")\r
-  private void compute_pcm_samples11(@LOC("THIS") Obuffer buffer) {\r
-    // final float[] vp = v1;\r
+  private void compute_pcm_samples11(Obuffer buffer) {\r
+    final float[] vp = actual_v;\r
 \r
     // int inc = v_inc;\r
-    // final float[] tmpOut = _tmpOut;\r
-    @LOC("DVP") int dvp = 0;\r
+    final float[] tmpOut = _tmpOut;\r
+    int dvp = 0;\r
 \r
     // fat chance of having this loop unroll\r
-    for (@LOC("I") int i = 0; i < 32; i++) {\r
-      // final float[] dp = d16[i];\r
-      @LOC("THIS,SynthesisFilter.PCM") float pcm_sample;\r
+    for (int i = 0; i < 32; i++) {\r
+      final float[] dp = d16[i];\r
+      float pcm_sample;\r
 \r
       pcm_sample =\r
-          (float) (((v1[11 + dvp] * d16[i][0]) + (v1[10 + dvp] * d16[i][1])\r
-              + (v1[9 + dvp] * d16[i][2]) + (v1[8 + dvp] * d16[i][3]) + (v1[7 + dvp] * d16[i][4])\r
-              + (v1[6 + dvp] * d16[i][5]) + (v1[5 + dvp] * d16[i][6]) + (v1[4 + dvp] * d16[i][7])\r
-              + (v1[3 + dvp] * d16[i][8]) + (v1[2 + dvp] * d16[i][9]) + (v1[1 + dvp] * d16[i][10])\r
-              + (v1[0 + dvp] * d16[i][11]) + (v1[15 + dvp] * d16[i][12])\r
-              + (v1[14 + dvp] * d16[i][13]) + (v1[13 + dvp] * d16[i][14]) + (v1[12 + dvp] * d16[i][15])) * scalefactor);\r
+          (float) (((vp[11 + dvp] * dp[0]) + (vp[10 + dvp] * dp[1]) + (vp[9 + dvp] * dp[2])\r
+              + (vp[8 + dvp] * dp[3]) + (vp[7 + dvp] * dp[4]) + (vp[6 + dvp] * dp[5])\r
+              + (vp[5 + dvp] * dp[6]) + (vp[4 + dvp] * dp[7]) + (vp[3 + dvp] * dp[8])\r
+              + (vp[2 + dvp] * dp[9]) + (vp[1 + dvp] * dp[10]) + (vp[0 + dvp] * dp[11])\r
+              + (vp[15 + dvp] * dp[12]) + (vp[14 + dvp] * dp[13]) + (vp[13 + dvp] * dp[14]) + (vp[12 + dvp] * dp[15])) * scalefactor);\r
 \r
-      _tmpOut[i] = pcm_sample;\r
+      tmpOut[i] = pcm_sample;\r
 \r
       dvp += 16;\r
     } // for\r
   }\r
 \r
-  @LATTICE("THIS<DVP,DVP<I,DVP*,I*,THISLOC=THIS,GLOBALLOC=THIS")\r
-  private void compute_pcm_samples12(@LOC("THIS") Obuffer buffer) {\r
-    // final float[] vp = v1;\r
+  private void compute_pcm_samples12(Obuffer buffer) {\r
+    final float[] vp = actual_v;\r
     // int inc = v_inc;\r
-    // final float[] tmpOut = _tmpOut;\r
-    @LOC("DVP") int dvp = 0;\r
+    final float[] tmpOut = _tmpOut;\r
+    int dvp = 0;\r
 \r
     // fat chance of having this loop unroll\r
-    for (@LOC("I") int i = 0; i < 32; i++) {\r
-      // final float[] dp = d16[i];\r
-      @LOC("THIS,SynthesisFilter.PCM") float pcm_sample;\r
+    for (int i = 0; i < 32; i++) {\r
+      final float[] dp = d16[i];\r
+      float pcm_sample;\r
 \r
       pcm_sample =\r
-          (float) (((v1[12 + dvp] * d16[i][0]) + (v1[11 + dvp] * d16[i][1])\r
-              + (v1[10 + dvp] * d16[i][2]) + (v1[9 + dvp] * d16[i][3]) + (v1[8 + dvp] * d16[i][4])\r
-              + (v1[7 + dvp] * d16[i][5]) + (v1[6 + dvp] * d16[i][6]) + (v1[5 + dvp] * d16[i][7])\r
-              + (v1[4 + dvp] * d16[i][8]) + (v1[3 + dvp] * d16[i][9]) + (v1[2 + dvp] * d16[i][10])\r
-              + (v1[1 + dvp] * d16[i][11]) + (v1[0 + dvp] * d16[i][12])\r
-              + (v1[15 + dvp] * d16[i][13]) + (v1[14 + dvp] * d16[i][14]) + (v1[13 + dvp] * d16[i][15])) * scalefactor);\r
+          (float) (((vp[12 + dvp] * dp[0]) + (vp[11 + dvp] * dp[1]) + (vp[10 + dvp] * dp[2])\r
+              + (vp[9 + dvp] * dp[3]) + (vp[8 + dvp] * dp[4]) + (vp[7 + dvp] * dp[5])\r
+              + (vp[6 + dvp] * dp[6]) + (vp[5 + dvp] * dp[7]) + (vp[4 + dvp] * dp[8])\r
+              + (vp[3 + dvp] * dp[9]) + (vp[2 + dvp] * dp[10]) + (vp[1 + dvp] * dp[11])\r
+              + (vp[0 + dvp] * dp[12]) + (vp[15 + dvp] * dp[13]) + (vp[14 + dvp] * dp[14]) + (vp[13 + dvp] * dp[15])) * scalefactor);\r
 \r
-      _tmpOut[i] = pcm_sample;\r
+      tmpOut[i] = pcm_sample;\r
 \r
       dvp += 16;\r
     } // for\r
   }\r
 \r
-  @LATTICE("THIS<DVP,DVP<I,DVP*,I*,THISLOC=THIS,GLOBALLOC=THIS")\r
-  private void compute_pcm_samples13(@LOC("THIS") Obuffer buffer) {\r
-    // final float[] vp = v1;\r
+  private void compute_pcm_samples13(Obuffer buffer) {\r
+    final float[] vp = actual_v;\r
 \r
     // int inc = v_inc;\r
-    // final float[] tmpOut = _tmpOut;\r
-    @LOC("DVP") int dvp = 0;\r
+    final float[] tmpOut = _tmpOut;\r
+    int dvp = 0;\r
 \r
     // fat chance of having this loop unroll\r
-    for (@LOC("I") int i = 0; i < 32; i++) {\r
-      // final float[] dp = d16[i];\r
-      @LOC("THIS,SynthesisFilter.PCM") float pcm_sample;\r
+    for (int i = 0; i < 32; i++) {\r
+      final float[] dp = d16[i];\r
+      float pcm_sample;\r
 \r
       pcm_sample =\r
-          (float) (((v1[13 + dvp] * d16[i][0]) + (v1[12 + dvp] * d16[i][1])\r
-              + (v1[11 + dvp] * d16[i][2]) + (v1[10 + dvp] * d16[i][3]) + (v1[9 + dvp] * d16[i][4])\r
-              + (v1[8 + dvp] * d16[i][5]) + (v1[7 + dvp] * d16[i][6]) + (v1[6 + dvp] * d16[i][7])\r
-              + (v1[5 + dvp] * d16[i][8]) + (v1[4 + dvp] * d16[i][9]) + (v1[3 + dvp] * d16[i][10])\r
-              + (v1[2 + dvp] * d16[i][11]) + (v1[1 + dvp] * d16[i][12])\r
-              + (v1[0 + dvp] * d16[i][13]) + (v1[15 + dvp] * d16[i][14]) + (v1[14 + dvp] * d16[i][15])) * scalefactor);\r
+          (float) (((vp[13 + dvp] * dp[0]) + (vp[12 + dvp] * dp[1]) + (vp[11 + dvp] * dp[2])\r
+              + (vp[10 + dvp] * dp[3]) + (vp[9 + dvp] * dp[4]) + (vp[8 + dvp] * dp[5])\r
+              + (vp[7 + dvp] * dp[6]) + (vp[6 + dvp] * dp[7]) + (vp[5 + dvp] * dp[8])\r
+              + (vp[4 + dvp] * dp[9]) + (vp[3 + dvp] * dp[10]) + (vp[2 + dvp] * dp[11])\r
+              + (vp[1 + dvp] * dp[12]) + (vp[0 + dvp] * dp[13]) + (vp[15 + dvp] * dp[14]) + (vp[14 + dvp] * dp[15])) * scalefactor);\r
 \r
-      _tmpOut[i] = pcm_sample;\r
+      tmpOut[i] = pcm_sample;\r
 \r
       dvp += 16;\r
     } // for\r
   }\r
 \r
-  @LATTICE("THIS<DVP,DVP<I,DVP*,I*,THISLOC=THIS,GLOBALLOC=THIS")\r
-  private void compute_pcm_samples14(@LOC("THIS") Obuffer buffer) {\r
-    // final float[] vp = v1;\r
+  private void compute_pcm_samples14(Obuffer buffer) {\r
+    final float[] vp = actual_v;\r
 \r
     // int inc = v_inc;\r
-    // final float[] tmpOut = _tmpOut;\r
-    @LOC("DVP") int dvp = 0;\r
+    final float[] tmpOut = _tmpOut;\r
+    int dvp = 0;\r
 \r
     // fat chance of having this loop unroll\r
-    for (@LOC("I") int i = 0; i < 32; i++) {\r
-      // final float[] dp = d16[i];\r
-      @LOC("THIS,SynthesisFilter.PCM") float pcm_sample;\r
+    for (int i = 0; i < 32; i++) {\r
+      final float[] dp = d16[i];\r
+      float pcm_sample;\r
 \r
       pcm_sample =\r
-          (float) (((v1[14 + dvp] * d16[i][0]) + (v1[13 + dvp] * d16[i][1])\r
-              + (v1[12 + dvp] * d16[i][2]) + (v1[11 + dvp] * d16[i][3])\r
-              + (v1[10 + dvp] * d16[i][4]) + (v1[9 + dvp] * d16[i][5]) + (v1[8 + dvp] * d16[i][6])\r
-              + (v1[7 + dvp] * d16[i][7]) + (v1[6 + dvp] * d16[i][8]) + (v1[5 + dvp] * d16[i][9])\r
-              + (v1[4 + dvp] * d16[i][10]) + (v1[3 + dvp] * d16[i][11])\r
-              + (v1[2 + dvp] * d16[i][12]) + (v1[1 + dvp] * d16[i][13])\r
-              + (v1[0 + dvp] * d16[i][14]) + (v1[15 + dvp] * d16[i][15])) * scalefactor);\r
+          (float) (((vp[14 + dvp] * dp[0]) + (vp[13 + dvp] * dp[1]) + (vp[12 + dvp] * dp[2])\r
+              + (vp[11 + dvp] * dp[3]) + (vp[10 + dvp] * dp[4]) + (vp[9 + dvp] * dp[5])\r
+              + (vp[8 + dvp] * dp[6]) + (vp[7 + dvp] * dp[7]) + (vp[6 + dvp] * dp[8])\r
+              + (vp[5 + dvp] * dp[9]) + (vp[4 + dvp] * dp[10]) + (vp[3 + dvp] * dp[11])\r
+              + (vp[2 + dvp] * dp[12]) + (vp[1 + dvp] * dp[13]) + (vp[0 + dvp] * dp[14]) + (vp[15 + dvp] * dp[15])) * scalefactor);\r
 \r
-      _tmpOut[i] = pcm_sample;\r
+      tmpOut[i] = pcm_sample;\r
 \r
       dvp += 16;\r
     } // for\r
   }\r
 \r
-  @LATTICE("THIS<DVP,DVP<I,DVP*,I*,THISLOC=THIS,GLOBALLOC=THIS")\r
-  private void compute_pcm_samples15(@LOC("THIS") Obuffer buffer) {\r
-    // final float[] vp = v1;\r
+  private void compute_pcm_samples15(Obuffer buffer) {\r
+    final float[] vp = actual_v;\r
 \r
     // int inc = v_inc;\r
-    // final float[] tmpOut = _tmpOut;\r
-    @LOC("DVP") int dvp = 0;\r
+    final float[] tmpOut = _tmpOut;\r
+    int dvp = 0;\r
 \r
     // fat chance of having this loop unroll\r
-    for (@LOC("I") int i = 0; i < 32; i++) {\r
-      @LOC("THIS,SynthesisFilter.PCM") float pcm_sample;\r
-      // final float dp[] = d16[i];\r
+    for (int i = 0; i < 32; i++) {\r
+      float pcm_sample;\r
+      final float dp[] = d16[i];\r
       pcm_sample =\r
-          (float) (((v1[15 + dvp] * d16[i][0]) + (v1[14 + dvp] * d16[i][1])\r
-              + (v1[13 + dvp] * d16[i][2]) + (v1[12 + dvp] * d16[i][3])\r
-              + (v1[11 + dvp] * d16[i][4]) + (v1[10 + dvp] * d16[i][5]) + (v1[9 + dvp] * d16[i][6])\r
-              + (v1[8 + dvp] * d16[i][7]) + (v1[7 + dvp] * d16[i][8]) + (v1[6 + dvp] * d16[i][9])\r
-              + (v1[5 + dvp] * d16[i][10]) + (v1[4 + dvp] * d16[i][11])\r
-              + (v1[3 + dvp] * d16[i][12]) + (v1[2 + dvp] * d16[i][13])\r
-              + (v1[1 + dvp] * d16[i][14]) + (v1[0 + dvp] * d16[i][15])) * scalefactor);\r
-\r
-      _tmpOut[i] = pcm_sample;\r
+          (float) (((vp[15 + dvp] * dp[0]) + (vp[14 + dvp] * dp[1]) + (vp[13 + dvp] * dp[2])\r
+              + (vp[12 + dvp] * dp[3]) + (vp[11 + dvp] * dp[4]) + (vp[10 + dvp] * dp[5])\r
+              + (vp[9 + dvp] * dp[6]) + (vp[8 + dvp] * dp[7]) + (vp[7 + dvp] * dp[8])\r
+              + (vp[6 + dvp] * dp[9]) + (vp[5 + dvp] * dp[10]) + (vp[4 + dvp] * dp[11])\r
+              + (vp[3 + dvp] * dp[12]) + (vp[2 + dvp] * dp[13]) + (vp[1 + dvp] * dp[14]) + (vp[0 + dvp] * dp[15])) * scalefactor);\r
+\r
+      tmpOut[i] = pcm_sample;\r
       dvp += 16;\r
     } // for\r
   }\r
 \r
-  @LATTICE("THIS,THISLOC=THIS")\r
-  private void compute_pcm_samples(@LOC("THIS") Obuffer buffer) {\r
+  private void compute_pcm_samples(Obuffer buffer) {\r
 \r
     switch (actual_write_pos) {\r
     case 0:\r
@@ -1064,13 +1284,12 @@ final class SynthesisFilter {
    * Calculate 32 PCM samples and put the into the Obuffer-object.\r
    */\r
 \r
-  @LATTICE("THIS<IN,THIS<SH,SH*,THISLOC=THIS")\r
-  public void calculate_pcm_samples(@LOC("IN") Obuffer buffer) {\r
+  public void calculate_pcm_samples(Obuffer buffer) {\r
     compute_new_v();\r
     compute_pcm_samples(buffer);\r
 \r
     actual_write_pos = (actual_write_pos + 1) & 0xf;\r
-    // actual_v = (actual_v == v1) ? v2 : v1;\r
+    actual_v = (actual_v == v1) ? v2 : v1;\r
 \r
     // initialize samples[]:\r
     // for (register float *floatp = samples + 32; floatp > samples; )\r
@@ -1078,86 +1297,51 @@ final class SynthesisFilter {
 \r
     // MDM: this may not be necessary. The Layer III decoder always\r
     // outputs 32 subband samples, but I haven't checked layer I & II.\r
-    for (@LOC("SH") int p = 0; p < 32; p++)\r
+    for (int p = 0; p < 32; p++)\r
       samples[p] = 0.0f;\r
   }\r
 \r
-  @LOC("EQ")\r
   private static final double MY_PI = 3.14159265358979323846;\r
-  @LOC("SA")\r
   private static final float cos1_64 = (float) (1.0 / (2.0 * Math.cos(MY_PI / 64.0)));\r
-  @LOC("SA")\r
   private static final float cos3_64 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 3.0 / 64.0)));\r
-  @LOC("SA")\r
   private static final float cos5_64 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 5.0 / 64.0)));\r
-  @LOC("SA")\r
   private static final float cos7_64 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 7.0 / 64.0)));\r
-  @LOC("SA")\r
   private static final float cos9_64 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 9.0 / 64.0)));\r
-  @LOC("SA")\r
   private static final float cos11_64 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 11.0 / 64.0)));\r
-  @LOC("SA")\r
   private static final float cos13_64 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 13.0 / 64.0)));\r
-  @LOC("SA")\r
   private static final float cos15_64 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 15.0 / 64.0)));\r
-  @LOC("SA")\r
   private static final float cos17_64 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 17.0 / 64.0)));\r
-  @LOC("SA")\r
   private static final float cos19_64 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 19.0 / 64.0)));\r
-  @LOC("SA")\r
   private static final float cos21_64 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 21.0 / 64.0)));\r
-  @LOC("SA")\r
   private static final float cos23_64 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 23.0 / 64.0)));\r
-  @LOC("SA")\r
   private static final float cos25_64 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 25.0 / 64.0)));\r
-  @LOC("SA")\r
   private static final float cos27_64 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 27.0 / 64.0)));\r
-  @LOC("SA")\r
   private static final float cos29_64 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 29.0 / 64.0)));\r
-  @LOC("SA")\r
   private static final float cos31_64 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 31.0 / 64.0)));\r
-  @LOC("SA")\r
   private static final float cos1_32 = (float) (1.0 / (2.0 * Math.cos(MY_PI / 32.0)));\r
-  @LOC("SA")\r
   private static final float cos3_32 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 3.0 / 32.0)));\r
-  @LOC("SA")\r
   private static final float cos5_32 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 5.0 / 32.0)));\r
-  @LOC("SA")\r
   private static final float cos7_32 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 7.0 / 32.0)));\r
-  @LOC("SA")\r
   private static final float cos9_32 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 9.0 / 32.0)));\r
-  @LOC("SA")\r
   private static final float cos11_32 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 11.0 / 32.0)));\r
-  @LOC("SA")\r
   private static final float cos13_32 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 13.0 / 32.0)));\r
-  @LOC("SA")\r
   private static final float cos15_32 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 15.0 / 32.0)));\r
-  @LOC("SA")\r
   private static final float cos1_16 = (float) (1.0 / (2.0 * Math.cos(MY_PI / 16.0)));\r
-  @LOC("SA")\r
   private static final float cos3_16 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 3.0 / 16.0)));\r
-  @LOC("SA")\r
   private static final float cos5_16 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 5.0 / 16.0)));\r
-  @LOC("SA")\r
   private static final float cos7_16 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 7.0 / 16.0)));\r
-  @LOC("SA")\r
   private static final float cos1_8 = (float) (1.0 / (2.0 * Math.cos(MY_PI / 8.0)));\r
-  @LOC("SA")\r
   private static final float cos3_8 = (float) (1.0 / (2.0 * Math.cos(MY_PI * 3.0 / 8.0)));\r
-  @LOC("SA")\r
   private static final float cos1_4 = (float) (1.0 / (2.0 * Math.cos(MY_PI / 4.0)));\r
 \r
   // Note: These values are not in the same order\r
   // as in Annex 3-B.3 of the ISO/IEC DIS 11172-3\r
   // private float d[] = {0.000000000, -4.000442505};\r
 \r
-  // @LOC("V2") private static float d[] = null;\r
-\r
   /**\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
-  @LOC("V2")\r
   private static float d16[][] = null;\r
 \r
   /**\r
index 7fb1e383ebae8209a431a99bd4f695d4ff9986ec..aea76aa8db2ce13c1256807f00f221a75254a84f 100644 (file)
@@ -3,12 +3,12 @@ BUILDSCRIPT=../../../buildscript
 PROGRAM=MP3Player
 SOURCE_FILES=MP3Player.java
 
-BSFLAGS= -32bit -ssjava -ssjavadebug -printlinenum -mainclass $(PROGRAM)  -heapsize-mb 1000 -garbagestats -joptimize -noloop -optimize -debug 
+BSFLAGS= -32bit -ssjava -ssjavadebug -mainclass $(PROGRAM)  -heapsize-mb 1000  -nooptimize -debug -garbagestats #-printlinenum #-joptimize
 
 default: $(PROGRAM)s.bin
 
 $(PROGRAM)s.bin: $(SOURCE_FILES) makefile
-       $(BUILDSCRIPT) $(BSFLAGS) -o $(PROGRAM)s -builddir sing $(SOURCE_FILES) 
+       $(BUILDSCRIPT) $(BSFLAGS) -o $(PROGRAM) -builddir sing $(SOURCE_FILES) 
 
 clean:
        rm -f  $(PROGRAM).bin
diff --git a/Robust/src/Tests/ssJava/mp3decoder/run b/Robust/src/Tests/ssJava/mp3decoder/run
new file mode 100755 (executable)
index 0000000..4642b81
--- /dev/null
@@ -0,0 +1 @@
+./MP3Player.bin focus.mp3
\ No newline at end of file