private final static void startSongAnalysis(List<File> foundFiles, boolean hlEvaluation, boolean llEvaluation) 
			throws MasterException {
			
		int cnt= 0;
		try {
			
			Iterator<File> iter= foundFiles.iterator();
			while(iter.hasNext()) {
				//create the list of tasks to do.
				MasterMetadata.songTasks.add(new SongFeature(iter.next(), hlEvaluation, llEvaluation)); 
				if(++cnt == maxTask) {
					MasterMetadata.submitSongTasks();
					cnt= 0; //reset the counter
				}
			}
			
			if(MasterMetadata.songTasks.isEmpty() == false) {
				MasterMetadata.submitSongTasks();
			}

			if(MasterMetadata.songES != null) {
				MasterMetadata.songES.shutdownNow(); //Stop all thread at the end.
				MasterMetadata.songES= null;
			}
			
		} catch (MP3Exception e) {
			throw new MasterException("MP3Exception "+e.getMessage(), e);
		} catch (MasterException e) {
			throw new MasterException("MasterException "+e.getMessage(), e);
		} catch (Exception e) {
			throw new MasterException("Exception "+e.getMessage(), e);
		}
	}