package com.julapy;

////////////////////////////////////////////////////////////////////////////////
//
// Project: 		AudioDataExport
// File: 			AudioDataExport.java
// Created by: 		lukaszkarluk, Apr 5, 2008
//
////////////////////////////////////////////////////////////////////////////////

import java.io.PrintWriter;

import processing.core.*;

import ddf.minim.AudioPlayer;
import ddf.minim.Minim;
import ddf.minim.analysis.BeatDetect;
import ddf.minim.analysis.FFT;

public class AudioDataExport extends PApplet 
{
	AudioPlayer song;
	FFT fftLin;
	BeatDetect beat;
	
	String[] lines;
	int lineIndex = 0;
	
	PrintWriter output;
	
	int averages = 25;
	
	public void setup() 
	{
		size( 400, 400 );
		
		frameRate( 25 );
		
		Minim.start( this );
		song = Minim.loadFile("secondpeng.mp3");
		fftLin = new FFT(song.bufferSize(), song.sampleRate());
		fftLin.linAverages( averages );
		song.play();
		
		output = createWriter("data/audiodata.txt");
	}

	public void draw() 
	{
		background(0);
		
		fftLin.forward(song.mix);
		
		String values = "";
		
		for(int i=0; i<averages; i++)
		{
			float band = fftLin.getBand( i );
			
			values += band;
			if( i != averages-1 ) values += "\t";
		}
		
		output.println( values );
	}
	
	public void keyPressed()
	{
		if(key == ' ')
		{
			output.flush();
			output.close();
			exit();
		}
	}
	
	public void stop()
	{
		song.close();
		super.stop();
	}
}