@Override
 public void onSaveInstanceState(Bundle savedInstanceState) {
   if (started) {
     recordTask.cancel(true);
   }
   started = false;
   super.onSaveInstanceState(savedInstanceState);
 }
 @Override
 public void onPause() {
   if (started) {
     recordTask.cancel(true);
   }
   started = false;
   analyseButtonText.setText("Start Analyzing");
   if (!MainActivity.analyzeMode) {
     visualizer.release();
   }
   super.onPause();
 }
  /** Turns analyzing on and off -- makes new canvas (and visualizer) */
  public void toggleAnalyse(View v) {
    if (started) {
      if (MainActivity.autoSave) {
        T.cancel();
      }
      timeCount = 0;
      started = false;
      analyseButtonText.setText("Start Analyzing");
      recordTask.cancel(true);
      bitmap = Bitmap.createBitmap((int) imageWidth, (int) imageHeight, Bitmap.Config.ARGB_8888);
      canvas = new Canvas(bitmap);
      imageView.setImageBitmap(bitmap);
      canvas.drawColor(0xFF444444);
      imageView.invalidate();
      note[0] = ""; // resets note
      if (!MainActivity.analyzeMode) {
        visualizer.release();
      }
    } else {
      timeCount = 0;

      if (MainActivity.autoSave) {
        T = new Timer();
        T.scheduleAtFixedRate(
            new TimerTask() {
              @Override
              public void run() {
                getActivity()
                    .runOnUiThread(
                        new Runnable() {
                          @Override
                          public void run() {
                            timeCount++;
                          }
                        });
              }
            },
            10,
            10);
        setFileName();
        writeToFile("", false);
      }

      drawVisualization(imageView, "start");
      if (!MainActivity.analyzeMode) {
        visualizer = new Visualizer(0);
      }
    }
  }
 /** Draws (and starts) the FFT visualizer */
 public void drawVisualization(View v, String start) {
   getNewDimensions(v);
   bitmap = Bitmap.createBitmap((int) imageWidth, (int) imageHeight, Bitmap.Config.ARGB_8888);
   canvas = new Canvas(bitmap);
   paint = new Paint();
   paint.setStyle(Paint.Style.STROKE);
   paint.setStrokeWidth((int) multiply * 5);
   paint.setColor(0xFF0099CC);
   imageView.setImageBitmap(bitmap);
   if (start == "start") {
     started = true;
     analyseButtonText.setText("Stop Analyzing");
     recordTask = new RecordAudio();
     recordTask.execute();
   }
 }
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fourier);

    transformer = new RealDoubleFFT(blockSize);

    imageView = (ImageView) findViewById(R.id.fourierView);
    bitmap = Bitmap.createBitmap(512, 200, Bitmap.Config.ARGB_8888);
    canvas = new Canvas(bitmap);
    paint = new Paint();
    paint.setColor(Color.GREEN);
    imageView.setImageBitmap(bitmap);
    recordTask = new RecordAudio();
    recordTask.execute();
  }
 @Override
 protected void onPause() {
   recordTask.cancel(true);
   super.onPause();
 }
 @Override
 protected void onDestroy() {
   recordTask.cancel(true);
   super.onDestroy();
 }