public JSONObject fingerprint(File mp3){
		String s = null;
		try {
			//System.out.println(cmd+" "+mp3.getAbsolutePath()+" 10 30");
			ProcessBuilder pb = new ProcessBuilder(cmd, mp3.getAbsolutePath(), "10", "30");
			//File workdir = new File((new java.io.File(".").getCanonicalPath())+System.getProperty("file.separator")+"cmds"+System.getProperty("file.separator"));
			File workdir = new File(".");
			pb.directory(workdir);
			//Thread.sleep(60*1000);
			System.out.println(pb.command() + " "+pb.directory());			
			Process p = pb.start();//Runtime.getRuntime().exec(cmd+" "+mp3.getAbsolutePath()+" 10 30");
			//Process p = pb.start();
            BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));	 
            //BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));	 
            // read the output from the command
//            System.out.println("Here is the standard output of the command:\n");
            s = stdInput.readLine();
            String output = "";
            if(!s.equals("[") && !s.equals("]") && s != null){
            	output += s;
            }
            while (s != null) {
            	s = stdInput.readLine();
            	if(s != null && !s.equals("[") && !s.equals("]")){
            		output += s;
            	}
            	//System.out.println(s);
            }
            System.out.println(output);
            //Thread.sleep(60*1000);
            //output = output.replace("{\"metadata\":", "");
            //output = output.replaceFirst("}", ""); 
            return new JSONObject(output);            
            //System.out.print(output);

            // read any errors from the attempted command
            /*System.out.println("Here is the standard error of the command (if any):\n");
            while ((s = stdError.readLine()) != null) {
                System.out.println(s);
            }*/
		} catch (Exception e){
			e.printStackTrace();
			return null;
		}
	}