changeset 13:a64055168b9b

Added XML Support
author Geogaddi\David <d.m.ronan@qmul.ac.uk>
date Fri, 05 Feb 2016 19:21:42 +0000
parents 761289a660c6
children 636c989477e7
files Builds/VisualStudio2013/FeatureExtractionTool.vcxproj Builds/VisualStudio2013/FeatureExtractionTool.vcxproj.filters Builds/VisualStudio2013/resources.rc FeatureExtractionTool.jucer Source/AudioReader.cpp Source/FeatureData.cpp Source/WriteCSV.cpp Source/XMLWrite.cpp Source/XMLWrite.h
diffstat 9 files changed, 1196 insertions(+), 481 deletions(-) [+]
line wrap: on
line diff
--- a/Builds/VisualStudio2013/FeatureExtractionTool.vcxproj	Mon Aug 17 19:16:33 2015 +0100
+++ b/Builds/VisualStudio2013/FeatureExtractionTool.vcxproj	Fri Feb 05 19:21:42 2016 +0000
@@ -38,11 +38,9 @@
   </PropertyGroup>
   <PropertyGroup>
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</OutDir>
     <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">FeatureExtractionTool</TargetName>
     <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</GenerateManifest>
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(LibraryPath);..\..\Lib\fftw-3.2.1\lib\win\</LibraryPath>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</OutDir>
     <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">FeatureExtractionTool</TargetName>
     <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</GenerateManifest>
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(LibraryPath);..\..\Lib\fftw-3.2.1\lib\win\</LibraryPath>
@@ -60,7 +58,7 @@
       <Optimization>Disabled</Optimization>
       <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
       <AdditionalIncludeDirectories>..\..\JuceLibraryCode;C:\SDKs\JUCE\modules;..\..\Lib\fftw-3.2.1\api\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_CONSOLE;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2013_78A5020=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>_CONSOLE;_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2013_78A5020=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <RuntimeTypeInfo>true</RuntimeTypeInfo>
       <PrecompiledHeader/>
@@ -101,9 +99,9 @@
       <HeaderFileName/>
     </Midl>
     <ClCompile>
-      <Optimization>MinSpace</Optimization>
+      <Optimization>Full</Optimization>
       <AdditionalIncludeDirectories>..\..\JuceLibraryCode;C:\SDKs\JUCE\modules;..\..\Lib\fftw-3.2.1\api\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_CONSOLE;WIN32;_WINDOWS;NDEBUG;JUCER_VS2013_78A5020=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>_CONSOLE;_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2013_78A5020=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <RuntimeTypeInfo>true</RuntimeTypeInfo>
       <PrecompiledHeader/>
@@ -140,9 +138,11 @@
     <ClCompile Include="..\..\Source\AudioFileData.cpp"/>
     <ClCompile Include="..\..\Source\FeatureData.cpp"/>
     <ClCompile Include="..\..\Source\ObservationData.cpp"/>
+    <ClCompile Include="..\..\Source\XMLWrite.cpp"/>
     <ClCompile Include="..\..\Source\WriteCSV.cpp"/>
     <ClCompile Include="..\..\Source\ParseCSV.cpp"/>
     <ClCompile Include="..\..\Source\AudioReader.cpp"/>
+    <ClCompile Include="..\..\Source\SpectralContrast.cpp"/>
     <ClCompile Include="..\..\Source\MFCC.cpp"/>
     <ClCompile Include="..\..\Source\AudioSourceFeatureExtractor.cpp"/>
     <ClCompile Include="..\..\Source\FFT.cpp"/>
@@ -151,10 +151,16 @@
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\buffers\juce_AudioDataConverters.cpp">
       <ExcludedFromBuild>true</ExcludedFromBuild>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\buffers\juce_AudioSampleBuffer.cpp">
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\buffers\juce_FloatVectorOperations.cpp">
       <ExcludedFromBuild>true</ExcludedFromBuild>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\buffers\juce_FloatVectorOperations.cpp">
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_FFT.cpp">
+      <ExcludedFromBuild>true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_IIRFilter.cpp">
+      <ExcludedFromBuild>true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_LagrangeInterpolator.cpp">
       <ExcludedFromBuild>true</ExcludedFromBuild>
     </ClCompile>
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\midi\juce_MidiBuffer.cpp">
@@ -172,10 +178,34 @@
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\midi\juce_MidiMessageSequence.cpp">
       <ExcludedFromBuild>true</ExcludedFromBuild>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_IIRFilter.cpp">
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\midi\juce_MidiRPN.cpp">
       <ExcludedFromBuild>true</ExcludedFromBuild>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_LagrangeInterpolator.cpp">
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEInstrument.cpp">
+      <ExcludedFromBuild>true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEMessages.cpp">
+      <ExcludedFromBuild>true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPENote.cpp">
+      <ExcludedFromBuild>true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPESynthesiser.cpp">
+      <ExcludedFromBuild>true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPESynthesiserBase.cpp">
+      <ExcludedFromBuild>true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPESynthesiserVoice.cpp">
+      <ExcludedFromBuild>true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEValue.cpp">
+      <ExcludedFromBuild>true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEZone.cpp">
+      <ExcludedFromBuild>true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEZoneLayout.cpp">
       <ExcludedFromBuild>true</ExcludedFromBuild>
     </ClCompile>
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\sources\juce_BufferingAudioSource.cpp">
@@ -325,6 +355,9 @@
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_formats\sampler\juce_Sampler.cpp">
       <ExcludedFromBuild>true</ExcludedFromBuild>
     </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\processors\juce_AudioChannelSet.cpp">
+      <ExcludedFromBuild>true</ExcludedFromBuild>
+    </ClCompile>
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\processors\juce_AudioProcessor.cpp">
       <ExcludedFromBuild>true</ExcludedFromBuild>
     </ClCompile>
@@ -364,6 +397,15 @@
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\scanning\juce_PluginListComponent.cpp">
       <ExcludedFromBuild>true</ExcludedFromBuild>
     </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\utilities\juce_AudioProcessorParameters.cpp">
+      <ExcludedFromBuild>true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\utilities\juce_AudioProcessorValueTreeState.cpp">
+      <ExcludedFromBuild>true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\text\juce_Base64.cpp">
+      <ExcludedFromBuild>true</ExcludedFromBuild>
+    </ClCompile>
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\text\juce_CharacterFunctions.cpp">
       <ExcludedFromBuild>true</ExcludedFromBuild>
     </ClCompile>
@@ -556,6 +598,9 @@
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\native\juce_android_Threads.cpp">
       <ExcludedFromBuild>true</ExcludedFromBuild>
     </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\native\juce_curl_Network.cpp">
+      <ExcludedFromBuild>true</ExcludedFromBuild>
+    </ClCompile>
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\native\juce_linux_CommonFile.cpp">
       <ExcludedFromBuild>true</ExcludedFromBuild>
     </ClCompile>
@@ -604,12 +649,18 @@
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_cryptography\hashing\juce_SHA256.cpp">
       <ExcludedFromBuild>true</ExcludedFromBuild>
     </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_cryptography\hashing\juce_Whirlpool.cpp">
+      <ExcludedFromBuild>true</ExcludedFromBuild>
+    </ClCompile>
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_data_structures\values\juce_Value.cpp">
       <ExcludedFromBuild>true</ExcludedFromBuild>
     </ClCompile>
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_data_structures\values\juce_ValueTree.cpp">
       <ExcludedFromBuild>true</ExcludedFromBuild>
     </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_data_structures\values\juce_ValueTreeSynchroniser.cpp">
+      <ExcludedFromBuild>true</ExcludedFromBuild>
+    </ClCompile>
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_data_structures\undomanager\juce_UndoManager.cpp">
       <ExcludedFromBuild>true</ExcludedFromBuild>
     </ClCompile>
@@ -1253,9 +1304,11 @@
     <ClInclude Include="..\..\Source\AudioFileData.h"/>
     <ClInclude Include="..\..\Source\FeatureData.h"/>
     <ClInclude Include="..\..\Source\ObservationData.h"/>
+    <ClInclude Include="..\..\Source\XMLWrite.h"/>
     <ClInclude Include="..\..\Source\WriteCSV.h"/>
     <ClInclude Include="..\..\Source\ParseCSV.h"/>
     <ClInclude Include="..\..\Source\AudioReader.h"/>
+    <ClInclude Include="..\..\Source\SpectralContrast.h"/>
     <ClInclude Include="..\..\Source\MFCC.h"/>
     <ClInclude Include="..\..\Source\AudioSourceFeatureExtractor.h"/>
     <ClInclude Include="..\..\Source\FFT.h"/>
@@ -1263,15 +1316,27 @@
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\buffers\juce_AudioDataConverters.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\buffers\juce_AudioSampleBuffer.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\buffers\juce_FloatVectorOperations.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_Decibels.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_FFT.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_IIRFilter.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_LagrangeInterpolator.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_LinearSmoothedValue.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_Reverb.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\midi\juce_MidiBuffer.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\midi\juce_MidiFile.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\midi\juce_MidiKeyboardState.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\midi\juce_MidiMessage.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\midi\juce_MidiMessageSequence.h"/>
-    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_Decibels.h"/>
-    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_IIRFilter.h"/>
-    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_LagrangeInterpolator.h"/>
-    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_Reverb.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\midi\juce_MidiRPN.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEInstrument.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEMessages.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPENote.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPESynthesiser.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPESynthesiserBase.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPESynthesiserVoice.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEValue.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEZone.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEZoneLayout.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\sources\juce_AudioSource.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\sources\juce_BufferingAudioSource.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\sources\juce_ChannelRemappingAudioSource.h"/>
@@ -1315,6 +1380,7 @@
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_formats\codecs\juce_WindowsMediaAudioFormat.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_formats\sampler\juce_Sampler.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_formats\juce_audio_formats.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\processors\juce_AudioChannelSet.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\processors\juce_AudioPlayHead.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\processors\juce_AudioPluginInstance.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\processors\juce_AudioProcessor.h"/>
@@ -1336,7 +1402,14 @@
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\scanning\juce_KnownPluginList.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\scanning\juce_PluginDirectoryScanner.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\scanning\juce_PluginListComponent.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\utilities\juce_AudioParameterBool.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\utilities\juce_AudioParameterChoice.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\utilities\juce_AudioParameterFloat.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\utilities\juce_AudioParameterInt.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\utilities\juce_AudioProcessorParameterWithID.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\utilities\juce_AudioProcessorValueTreeState.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\juce_audio_processors.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\text\juce_Base64.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\text\juce_CharacterFunctions.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\text\juce_CharPointer_ASCII.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\text\juce_CharPointer_UTF8.h"/>
@@ -1377,6 +1450,7 @@
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\containers\juce_ElementComparator.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\containers\juce_HashMap.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\containers\juce_LinkedListPointer.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\containers\juce_ListenerList.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\containers\juce_NamedValueSet.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\containers\juce_OwnedArray.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\containers\juce_PropertySet.h"/>
@@ -1446,6 +1520,7 @@
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\misc\juce_WindowsRegistry.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\native\juce_android_JNIHelpers.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\native\juce_BasicNativeHeaders.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\native\juce_mac_ClangBugWorkaround.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\native\juce_osx_ObjCHelpers.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\native\juce_posix_SharedCode.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\native\juce_win32_ComSmartPtr.h"/>
@@ -1455,9 +1530,11 @@
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_cryptography\encryption\juce_RSAKey.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_cryptography\hashing\juce_MD5.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_cryptography\hashing\juce_SHA256.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_cryptography\hashing\juce_Whirlpool.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_cryptography\juce_cryptography.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_data_structures\values\juce_Value.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_data_structures\values\juce_ValueTree.h"/>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_data_structures\values\juce_ValueTreeSynchroniser.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_data_structures\undomanager\juce_UndoableAction.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_data_structures\undomanager\juce_UndoManager.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_data_structures\app_properties\juce_ApplicationProperties.h"/>
@@ -1479,7 +1556,6 @@
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_events\broadcasters\juce_AsyncUpdater.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_events\broadcasters\juce_ChangeBroadcaster.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_events\broadcasters\juce_ChangeListener.h"/>
-    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_events\broadcasters\juce_ListenerList.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_events\interprocess\juce_ConnectedChildProcess.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_events\interprocess\juce_InterprocessConnection.h"/>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_events\interprocess\juce_InterprocessConnectionServer.h"/>
--- a/Builds/VisualStudio2013/FeatureExtractionTool.vcxproj.filters	Mon Aug 17 19:16:33 2015 +0100
+++ b/Builds/VisualStudio2013/FeatureExtractionTool.vcxproj.filters	Fri Feb 05 19:21:42 2016 +0000
@@ -29,11 +29,14 @@
     <Filter Include="Juce Modules\juce_audio_basics\buffers">
       <UniqueIdentifier>{A33A1E1D-AC2C-6382-8681-48B0FC374C60}</UniqueIdentifier>
     </Filter>
+    <Filter Include="Juce Modules\juce_audio_basics\effects">
+      <UniqueIdentifier>{11A75801-B027-40BD-4993-023023ACCBF7}</UniqueIdentifier>
+    </Filter>
     <Filter Include="Juce Modules\juce_audio_basics\midi">
       <UniqueIdentifier>{3FD908F5-98C8-9A61-FC03-0BAF8913CBB0}</UniqueIdentifier>
     </Filter>
-    <Filter Include="Juce Modules\juce_audio_basics\effects">
-      <UniqueIdentifier>{11A75801-B027-40BD-4993-023023ACCBF7}</UniqueIdentifier>
+    <Filter Include="Juce Modules\juce_audio_basics\mpe">
+      <UniqueIdentifier>{8C868E51-156D-A916-047C-0D9EA1393675}</UniqueIdentifier>
     </Filter>
     <Filter Include="Juce Modules\juce_audio_basics\sources">
       <UniqueIdentifier>{EF2CAB40-0432-429B-C517-86ADF136BB8A}</UniqueIdentifier>
@@ -86,6 +89,9 @@
     <Filter Include="Juce Modules\juce_audio_processors\scanning">
       <UniqueIdentifier>{EB8DD942-E2CB-869F-D381-E02A65BA790B}</UniqueIdentifier>
     </Filter>
+    <Filter Include="Juce Modules\juce_audio_processors\utilities">
+      <UniqueIdentifier>{8F91DFC0-7A71-1BA8-D8D9-6B4CF49151A4}</UniqueIdentifier>
+    </Filter>
     <Filter Include="Juce Modules\juce_core">
       <UniqueIdentifier>{95CA1506-2B94-0DEE-0C8D-85EDEBBC4E88}</UniqueIdentifier>
     </Filter>
@@ -325,6 +331,9 @@
     <ClCompile Include="..\..\Source\ObservationData.cpp">
       <Filter>FeatureExtractionTool\Source\DataTypes</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\Source\XMLWrite.cpp">
+      <Filter>FeatureExtractionTool\Source\IO</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\Source\WriteCSV.cpp">
       <Filter>FeatureExtractionTool\Source\IO</Filter>
     </ClCompile>
@@ -334,6 +343,9 @@
     <ClCompile Include="..\..\Source\AudioReader.cpp">
       <Filter>FeatureExtractionTool\Source\IO</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\Source\SpectralContrast.cpp">
+      <Filter>FeatureExtractionTool\Source\Analysis</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\Source\MFCC.cpp">
       <Filter>FeatureExtractionTool\Source\Analysis</Filter>
     </ClCompile>
@@ -352,12 +364,18 @@
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\buffers\juce_AudioDataConverters.cpp">
       <Filter>Juce Modules\juce_audio_basics\buffers</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\buffers\juce_AudioSampleBuffer.cpp">
-      <Filter>Juce Modules\juce_audio_basics\buffers</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\buffers\juce_FloatVectorOperations.cpp">
       <Filter>Juce Modules\juce_audio_basics\buffers</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_FFT.cpp">
+      <Filter>Juce Modules\juce_audio_basics\effects</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_IIRFilter.cpp">
+      <Filter>Juce Modules\juce_audio_basics\effects</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_LagrangeInterpolator.cpp">
+      <Filter>Juce Modules\juce_audio_basics\effects</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\midi\juce_MidiBuffer.cpp">
       <Filter>Juce Modules\juce_audio_basics\midi</Filter>
     </ClCompile>
@@ -373,11 +391,35 @@
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\midi\juce_MidiMessageSequence.cpp">
       <Filter>Juce Modules\juce_audio_basics\midi</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_IIRFilter.cpp">
-      <Filter>Juce Modules\juce_audio_basics\effects</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_LagrangeInterpolator.cpp">
-      <Filter>Juce Modules\juce_audio_basics\effects</Filter>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\midi\juce_MidiRPN.cpp">
+      <Filter>Juce Modules\juce_audio_basics\midi</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEInstrument.cpp">
+      <Filter>Juce Modules\juce_audio_basics\mpe</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEMessages.cpp">
+      <Filter>Juce Modules\juce_audio_basics\mpe</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPENote.cpp">
+      <Filter>Juce Modules\juce_audio_basics\mpe</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPESynthesiser.cpp">
+      <Filter>Juce Modules\juce_audio_basics\mpe</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPESynthesiserBase.cpp">
+      <Filter>Juce Modules\juce_audio_basics\mpe</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPESynthesiserVoice.cpp">
+      <Filter>Juce Modules\juce_audio_basics\mpe</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEValue.cpp">
+      <Filter>Juce Modules\juce_audio_basics\mpe</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEZone.cpp">
+      <Filter>Juce Modules\juce_audio_basics\mpe</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEZoneLayout.cpp">
+      <Filter>Juce Modules\juce_audio_basics\mpe</Filter>
     </ClCompile>
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\sources\juce_BufferingAudioSource.cpp">
       <Filter>Juce Modules\juce_audio_basics\sources</Filter>
@@ -532,6 +574,9 @@
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_formats\sampler\juce_Sampler.cpp">
       <Filter>Juce Modules\juce_audio_formats\sampler</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\processors\juce_AudioChannelSet.cpp">
+      <Filter>Juce Modules\juce_audio_processors\processors</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\processors\juce_AudioProcessor.cpp">
       <Filter>Juce Modules\juce_audio_processors\processors</Filter>
     </ClCompile>
@@ -574,6 +619,15 @@
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\scanning\juce_PluginListComponent.cpp">
       <Filter>Juce Modules\juce_audio_processors\scanning</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\utilities\juce_AudioProcessorParameters.cpp">
+      <Filter>Juce Modules\juce_audio_processors\utilities</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\utilities\juce_AudioProcessorValueTreeState.cpp">
+      <Filter>Juce Modules\juce_audio_processors\utilities</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\text\juce_Base64.cpp">
+      <Filter>Juce Modules\juce_core\text</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\text\juce_CharacterFunctions.cpp">
       <Filter>Juce Modules\juce_core\text</Filter>
     </ClCompile>
@@ -766,6 +820,9 @@
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\native\juce_android_Threads.cpp">
       <Filter>Juce Modules\juce_core\native</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\native\juce_curl_Network.cpp">
+      <Filter>Juce Modules\juce_core\native</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\native\juce_linux_CommonFile.cpp">
       <Filter>Juce Modules\juce_core\native</Filter>
     </ClCompile>
@@ -829,12 +886,18 @@
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_cryptography\hashing\juce_SHA256.cpp">
       <Filter>Juce Modules\juce_cryptography\hashing</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_cryptography\hashing\juce_Whirlpool.cpp">
+      <Filter>Juce Modules\juce_cryptography\hashing</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_data_structures\values\juce_Value.cpp">
       <Filter>Juce Modules\juce_data_structures\values</Filter>
     </ClCompile>
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_data_structures\values\juce_ValueTree.cpp">
       <Filter>Juce Modules\juce_data_structures\values</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_data_structures\values\juce_ValueTreeSynchroniser.cpp">
+      <Filter>Juce Modules\juce_data_structures\values</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_data_structures\undomanager\juce_UndoManager.cpp">
       <Filter>Juce Modules\juce_data_structures\undomanager</Filter>
     </ClCompile>
@@ -1563,6 +1626,9 @@
     <ClInclude Include="..\..\Source\ObservationData.h">
       <Filter>FeatureExtractionTool\Source\DataTypes</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\Source\XMLWrite.h">
+      <Filter>FeatureExtractionTool\Source\IO</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\Source\WriteCSV.h">
       <Filter>FeatureExtractionTool\Source\IO</Filter>
     </ClInclude>
@@ -1572,6 +1638,9 @@
     <ClInclude Include="..\..\Source\AudioReader.h">
       <Filter>FeatureExtractionTool\Source\IO</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\Source\SpectralContrast.h">
+      <Filter>FeatureExtractionTool\Source\Analysis</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\Source\MFCC.h">
       <Filter>FeatureExtractionTool\Source\Analysis</Filter>
     </ClInclude>
@@ -1593,6 +1662,24 @@
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\buffers\juce_FloatVectorOperations.h">
       <Filter>Juce Modules\juce_audio_basics\buffers</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_Decibels.h">
+      <Filter>Juce Modules\juce_audio_basics\effects</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_FFT.h">
+      <Filter>Juce Modules\juce_audio_basics\effects</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_IIRFilter.h">
+      <Filter>Juce Modules\juce_audio_basics\effects</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_LagrangeInterpolator.h">
+      <Filter>Juce Modules\juce_audio_basics\effects</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_LinearSmoothedValue.h">
+      <Filter>Juce Modules\juce_audio_basics\effects</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_Reverb.h">
+      <Filter>Juce Modules\juce_audio_basics\effects</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\midi\juce_MidiBuffer.h">
       <Filter>Juce Modules\juce_audio_basics\midi</Filter>
     </ClInclude>
@@ -1608,17 +1695,35 @@
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\midi\juce_MidiMessageSequence.h">
       <Filter>Juce Modules\juce_audio_basics\midi</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_Decibels.h">
-      <Filter>Juce Modules\juce_audio_basics\effects</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_IIRFilter.h">
-      <Filter>Juce Modules\juce_audio_basics\effects</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_LagrangeInterpolator.h">
-      <Filter>Juce Modules\juce_audio_basics\effects</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\effects\juce_Reverb.h">
-      <Filter>Juce Modules\juce_audio_basics\effects</Filter>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\midi\juce_MidiRPN.h">
+      <Filter>Juce Modules\juce_audio_basics\midi</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEInstrument.h">
+      <Filter>Juce Modules\juce_audio_basics\mpe</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEMessages.h">
+      <Filter>Juce Modules\juce_audio_basics\mpe</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPENote.h">
+      <Filter>Juce Modules\juce_audio_basics\mpe</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPESynthesiser.h">
+      <Filter>Juce Modules\juce_audio_basics\mpe</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPESynthesiserBase.h">
+      <Filter>Juce Modules\juce_audio_basics\mpe</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPESynthesiserVoice.h">
+      <Filter>Juce Modules\juce_audio_basics\mpe</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEValue.h">
+      <Filter>Juce Modules\juce_audio_basics\mpe</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEZone.h">
+      <Filter>Juce Modules\juce_audio_basics\mpe</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\mpe\juce_MPEZoneLayout.h">
+      <Filter>Juce Modules\juce_audio_basics\mpe</Filter>
     </ClInclude>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_basics\sources\juce_AudioSource.h">
       <Filter>Juce Modules\juce_audio_basics\sources</Filter>
@@ -1749,6 +1854,9 @@
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_formats\juce_audio_formats.h">
       <Filter>Juce Modules\juce_audio_formats</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\processors\juce_AudioChannelSet.h">
+      <Filter>Juce Modules\juce_audio_processors\processors</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\processors\juce_AudioPlayHead.h">
       <Filter>Juce Modules\juce_audio_processors\processors</Filter>
     </ClInclude>
@@ -1812,9 +1920,30 @@
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\scanning\juce_PluginListComponent.h">
       <Filter>Juce Modules\juce_audio_processors\scanning</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\utilities\juce_AudioParameterBool.h">
+      <Filter>Juce Modules\juce_audio_processors\utilities</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\utilities\juce_AudioParameterChoice.h">
+      <Filter>Juce Modules\juce_audio_processors\utilities</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\utilities\juce_AudioParameterFloat.h">
+      <Filter>Juce Modules\juce_audio_processors\utilities</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\utilities\juce_AudioParameterInt.h">
+      <Filter>Juce Modules\juce_audio_processors\utilities</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\utilities\juce_AudioProcessorParameterWithID.h">
+      <Filter>Juce Modules\juce_audio_processors\utilities</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\utilities\juce_AudioProcessorValueTreeState.h">
+      <Filter>Juce Modules\juce_audio_processors\utilities</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_audio_processors\juce_audio_processors.h">
       <Filter>Juce Modules\juce_audio_processors</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\text\juce_Base64.h">
+      <Filter>Juce Modules\juce_core\text</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\text\juce_CharacterFunctions.h">
       <Filter>Juce Modules\juce_core\text</Filter>
     </ClInclude>
@@ -1935,6 +2064,9 @@
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\containers\juce_LinkedListPointer.h">
       <Filter>Juce Modules\juce_core\containers</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\containers\juce_ListenerList.h">
+      <Filter>Juce Modules\juce_core\containers</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\containers\juce_NamedValueSet.h">
       <Filter>Juce Modules\juce_core\containers</Filter>
     </ClInclude>
@@ -2142,6 +2274,9 @@
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\native\juce_BasicNativeHeaders.h">
       <Filter>Juce Modules\juce_core\native</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\native\juce_mac_ClangBugWorkaround.h">
+      <Filter>Juce Modules\juce_core\native</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_core\native\juce_osx_ObjCHelpers.h">
       <Filter>Juce Modules\juce_core\native</Filter>
     </ClInclude>
@@ -2169,6 +2304,9 @@
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_cryptography\hashing\juce_SHA256.h">
       <Filter>Juce Modules\juce_cryptography\hashing</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_cryptography\hashing\juce_Whirlpool.h">
+      <Filter>Juce Modules\juce_cryptography\hashing</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_cryptography\juce_cryptography.h">
       <Filter>Juce Modules\juce_cryptography</Filter>
     </ClInclude>
@@ -2178,6 +2316,9 @@
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_data_structures\values\juce_ValueTree.h">
       <Filter>Juce Modules\juce_data_structures\values</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_data_structures\values\juce_ValueTreeSynchroniser.h">
+      <Filter>Juce Modules\juce_data_structures\values</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_data_structures\undomanager\juce_UndoableAction.h">
       <Filter>Juce Modules\juce_data_structures\undomanager</Filter>
     </ClInclude>
@@ -2241,9 +2382,6 @@
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_events\broadcasters\juce_ChangeListener.h">
       <Filter>Juce Modules\juce_events\broadcasters</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_events\broadcasters\juce_ListenerList.h">
-      <Filter>Juce Modules\juce_events\broadcasters</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\..\..\..\SDKs\JUCE\modules\juce_events\interprocess\juce_ConnectedChildProcess.h">
       <Filter>Juce Modules\juce_events\interprocess</Filter>
     </ClInclude>
--- a/Builds/VisualStudio2013/resources.rc	Mon Aug 17 19:16:33 2015 +0100
+++ b/Builds/VisualStudio2013/resources.rc	Fri Feb 05 19:21:42 2016 +0000
@@ -22,7 +22,7 @@
 
   BLOCK "VarFileInfo"
   BEGIN
-    VALUE "Translation", 0x409, 65001
+    VALUE "Translation", 0x409, 1252
   END
 END
 
--- a/FeatureExtractionTool.jucer	Mon Aug 17 19:16:33 2015 +0100
+++ b/FeatureExtractionTool.jucer	Fri Feb 05 19:21:42 2016 +0000
@@ -2,7 +2,7 @@
 
 <JUCERPROJECT id="hvJbYi" name="FeatureExtractionTool" projectType="consoleapp"
               version="1.0.0" bundleIdentifier="com.yourcompany.FeatureExtractionTool"
-              includeBinaryInAppConfig="1" jucerVersion="3.2.0">
+              includeBinaryInAppConfig="1" jucerVersion="4.1.0">
   <MAINGROUP id="UKgH5X" name="FeatureExtractionTool">
     <GROUP id="{95DEE943-A3F3-BB07-A6D9-BD28F3B3CFDF}" name="Resource">
       <FILE id="rkvdMy" name="initMFCCVariables.m" compile="1" resource="1"
@@ -21,6 +21,8 @@
               file="Source/ObservationData.h"/>
       </GROUP>
       <GROUP id="{64E95522-500A-7F8C-ECB9-DAA52621A43F}" name="IO">
+        <FILE id="kDwlTn" name="XMLWrite.cpp" compile="1" resource="0" file="Source/XMLWrite.cpp"/>
+        <FILE id="qVKRz2" name="XMLWrite.h" compile="0" resource="0" file="Source/XMLWrite.h"/>
         <FILE id="kMlqwn" name="WriteCSV.cpp" compile="1" resource="0" file="Source/WriteCSV.cpp"/>
         <FILE id="rwxSuZ" name="WriteCSV.h" compile="0" resource="0" file="Source/WriteCSV.h"/>
         <FILE id="U2IXgF" name="ParseCSV.cpp" compile="1" resource="0" file="Source/ParseCSV.cpp"/>
@@ -48,31 +50,6 @@
     </GROUP>
   </MAINGROUP>
   <EXPORTFORMATS>
-    <VS2013 targetFolder="Builds/VisualStudio2013" externalLibraries="libfftwf-ni_ia32.lib">
-      <CONFIGURATIONS>
-        <CONFIGURATION name="Debug" winWarningLevel="4" generateManifest="1" winArchitecture="32-bit"
-                       isDebug="1" optimisation="1" targetName="FeatureExtractionTool"
-                       headerPath="..\..\Lib\fftw-3.2.1\api\" libraryPath="..\..\Lib\fftw-3.2.1\lib\win\"/>
-        <CONFIGURATION name="Release" winWarningLevel="4" generateManifest="1" winArchitecture="32-bit"
-                       isDebug="0" optimisation="2" targetName="FeatureExtractionTool"
-                       libraryPath="..\..\Lib\fftw-3.2.1\lib\win\" headerPath="..\..\Lib\fftw-3.2.1\api\"/>
-      </CONFIGURATIONS>
-      <MODULEPATHS>
-        <MODULEPATH id="juce_video" path="C:\SDKs\JUCE\modules"/>
-        <MODULEPATH id="juce_opengl" path="C:\SDKs\JUCE\modules"/>
-        <MODULEPATH id="juce_gui_extra" path="C:\SDKs\JUCE\modules"/>
-        <MODULEPATH id="juce_gui_basics" path="C:\SDKs\JUCE\modules"/>
-        <MODULEPATH id="juce_graphics" path="C:\SDKs\JUCE\modules"/>
-        <MODULEPATH id="juce_events" path="C:\SDKs\JUCE\modules"/>
-        <MODULEPATH id="juce_data_structures" path="C:\SDKs\JUCE\modules"/>
-        <MODULEPATH id="juce_cryptography" path="C:\SDKs\JUCE\modules"/>
-        <MODULEPATH id="juce_core" path="C:\SDKs\JUCE\modules"/>
-        <MODULEPATH id="juce_audio_processors" path="C:\SDKs\JUCE\modules"/>
-        <MODULEPATH id="juce_audio_formats" path="C:\SDKs\JUCE\modules"/>
-        <MODULEPATH id="juce_audio_devices" path="C:\SDKs\JUCE\modules"/>
-        <MODULEPATH id="juce_audio_basics" path="C:\SDKs\JUCE\modules"/>
-      </MODULEPATHS>
-    </VS2013>
     <XCODE_MAC targetFolder="Builds/MacOSX">
       <CONFIGURATIONS>
         <CONFIGURATION name="Debug" osxSDK="default" osxCompatibility="default" osxArchitecture="default"
@@ -117,6 +94,31 @@
         <MODULEPATH id="juce_audio_basics" path="C:\SDKs\JUCE\modules"/>
       </MODULEPATHS>
     </CODEBLOCKS>
+    <VS2013 targetFolder="Builds/VisualStudio2013" externalLibraries="libfftwf-ni_ia32.lib">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Debug" winWarningLevel="4" generateManifest="1" winArchitecture="32-bit"
+                       isDebug="1" optimisation="1" targetName="FeatureExtractionTool"
+                       headerPath="..\..\Lib\fftw-3.2.1\api\" libraryPath="..\..\Lib\fftw-3.2.1\lib\win\"/>
+        <CONFIGURATION name="Release" winWarningLevel="4" generateManifest="1" winArchitecture="32-bit"
+                       isDebug="0" optimisation="3" targetName="FeatureExtractionTool"
+                       headerPath="..\..\Lib\fftw-3.2.1\api\" libraryPath="..\..\Lib\fftw-3.2.1\lib\win\"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_video" path="C:\SDKs\JUCE\modules"/>
+        <MODULEPATH id="juce_opengl" path="C:\SDKs\JUCE\modules"/>
+        <MODULEPATH id="juce_gui_extra" path="C:\SDKs\JUCE\modules"/>
+        <MODULEPATH id="juce_gui_basics" path="C:\SDKs\JUCE\modules"/>
+        <MODULEPATH id="juce_graphics" path="C:\SDKs\JUCE\modules"/>
+        <MODULEPATH id="juce_events" path="C:\SDKs\JUCE\modules"/>
+        <MODULEPATH id="juce_data_structures" path="C:\SDKs\JUCE\modules"/>
+        <MODULEPATH id="juce_cryptography" path="C:\SDKs\JUCE\modules"/>
+        <MODULEPATH id="juce_core" path="C:\SDKs\JUCE\modules"/>
+        <MODULEPATH id="juce_audio_processors" path="C:\SDKs\JUCE\modules"/>
+        <MODULEPATH id="juce_audio_formats" path="C:\SDKs\JUCE\modules"/>
+        <MODULEPATH id="juce_audio_devices" path="C:\SDKs\JUCE\modules"/>
+        <MODULEPATH id="juce_audio_basics" path="C:\SDKs\JUCE\modules"/>
+      </MODULEPATHS>
+    </VS2013>
   </EXPORTFORMATS>
   <MODULES>
     <MODULES id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
--- a/Source/AudioReader.cpp	Mon Aug 17 19:16:33 2015 +0100
+++ b/Source/AudioReader.cpp	Fri Feb 05 19:21:42 2016 +0000
@@ -18,6 +18,7 @@
 
 #define ENERGYSEARCHTIME 3
 #define SAMPLERATE 22050.0f
+#include "XMLWrite.h"
 
 AudioReader::AudioReader()
 {
@@ -32,6 +33,7 @@
 std::vector<FeatureData> AudioReader::Read(AudioFileData audioFileData, float poolTimeSecs, int analysisWindowSize)
 {
 	WriteCSV writeCSV = WriteCSV();
+	XMLWrite xmlWrite = XMLWrite();
 	std::vector<FeatureData> featureData = std::vector<FeatureData>();
 	std::string CSVFileName = "..\\FeatureData" + writeCSV.currentDateTime();
 
@@ -164,6 +166,7 @@
 			FeatureData newFeature = FeatureData(newObs, labels[i], audioFileNames[i], fSampleRate, FFTSIZE, static_cast<float>(numOfSamplesToCollect), poolTimeSecs);
 
 			writeCSV.Write(CSVFileName, newFeature);
+			xmlWrite.Write(CSVFileName, newFeature);
 
 			//Update the screen information;
 			
--- a/Source/FeatureData.cpp	Mon Aug 17 19:16:33 2015 +0100
+++ b/Source/FeatureData.cpp	Fri Feb 05 19:21:42 2016 +0000
@@ -716,7 +716,7 @@
 	avgspectralValley.push_back(Average(spectralValley5));
 	avgspectralValley.push_back(Average(spectralValley6));
 
-	//for(size_t i =0; i < m_PooledObservationDataAverage.size(); i++)
+	for(size_t i =0; i < m_PooledObservationDataAverage.size(); i++)
 	{
 		obs = ObservationData(avgrms, avgpeak, avgcrestFactor, avgzcr, avgcentroid, avgspread, avgskewness, avgkurtosis, avgbrightness, avgrolloff85, avgrolloff95, avgspectralentropy, avgflatness, avgspectralcf, avgspectralflux, avgmfcc, avgdeltamfcc, avgspectralContrast, avgspectralValley, m_ObservationData[0].GetPeriodicity(), m_ObservationData[0].GetEntropyOfEnergy());
 		obs.SetLowEnergy(m_ObservationData[0].GetLowEnergy());
--- a/Source/WriteCSV.cpp	Mon Aug 17 19:16:33 2015 +0100
+++ b/Source/WriteCSV.cpp	Fri Feb 05 19:21:42 2016 +0000
@@ -40,213 +40,213 @@
 		for(size_t j = 0; j < observationDataAverage.size(); j++)
 		{
 			foutPooled
-				<< observationDataAverage[j].GetRMS() << ','
-				<< observationDataStd[j].GetRMS() << ','
-				<< observationDataMax[j].GetRMS() << ','
-				<< observationDataMin[j].GetRMS() << ','
-				<< observationDataAverage[j].GetPeak() << ','
-				<< observationDataStd[j].GetPeak() << ','
-				<< observationDataMax[j].GetPeak() << ','
-				<< observationDataMin[j].GetPeak() << ','
-				<< observationDataAverage[j].GetCrestFactor() << ','
-				<< observationDataStd[j].GetCrestFactor() << ','
-				<< observationDataMax[j].GetCrestFactor() << ','
-				<< observationDataMin[j].GetCrestFactor() << ','
-				<< observationDataAverage[j].GetZCR() << ','
-				<< observationDataStd[j].GetZCR() << ','
-				<< observationDataMax[j].GetZCR() << ','
-				<< observationDataMin[j].GetZCR() << ','
-				<< observationDataAverage[j].GetCentroid() << ','
-				<< observationDataStd[j].GetCentroid() << ','
-				<< observationDataMax[j].GetCentroid() << ','
-				<< observationDataMin[j].GetCentroid() << ','
-				<< observationDataAverage[j].GetSpread() << ','
-				<< observationDataStd[j].GetSpread() << ','
-				<< observationDataMax[j].GetSpread() << ','
-				<< observationDataMin[j].GetSpread() << ','
-				<< observationDataAverage[j].GetSkewness() << ','
-				<< observationDataStd[j].GetSkewness() << ','
-				<< observationDataMax[j].GetSkewness() << ','
-				<< observationDataMin[j].GetSkewness() << ','
-				<< observationDataAverage[j].GetKurtosis() << ','
-				<< observationDataStd[j].GetKurtosis() << ','
-				<< observationDataMax[j].GetKurtosis() << ','
-				<< observationDataMin[j].GetKurtosis() << ','
-				<< observationDataAverage[j].GetBrightness() << ','
-				<< observationDataStd[j].GetBrightness() << ','
-				<< observationDataMax[j].GetBrightness() << ','
-				<< observationDataMin[j].GetBrightness() << ','
-				<< observationDataAverage[j].GetFlatness() << ','
-				<< observationDataStd[j].GetFlatness() << ','
-				<< observationDataMax[j].GetFlatness() << ','
-				<< observationDataMin[j].GetFlatness() << ','
-				<< observationDataAverage[j].GetRollOff85() << ','
-				<< observationDataStd[j].GetRollOff85() << ','
-				<< observationDataMax[j].GetRollOff85() << ','
-				<< observationDataMin[j].GetRollOff85() << ','
-				<< observationDataAverage[j].GetRollOff95() << ','
-				<< observationDataStd[j].GetRollOff95() << ','
-				<< observationDataMax[j].GetRollOff95() << ','
-				<< observationDataMin[j].GetRollOff95() << ','
-				<< observationDataAverage[j].GetSpectralEntropy() << ','
-				<< observationDataStd[j].GetSpectralEntropy() << ','
-				<< observationDataMax[j].GetSpectralEntropy() << ','
-				<< observationDataMin[j].GetSpectralEntropy() << ','
-				<< observationDataAverage[j].GetSpectralCF() << ','
-				<< observationDataStd[j].GetSpectralCF() << ','
-				<< observationDataMax[j].GetSpectralCF() << ','
-				<< observationDataMin[j].GetSpectralCF() << ','
-				<< observationDataAverage[j].GetSpectralFlux() << ','
-				<< observationDataStd[j].GetSpectralFlux() << ','
-				<< observationDataMax[j].GetSpectralFlux() << ','
-				<< observationDataMin[j].GetSpectralFlux() << ','
-				<< observationDataAverage[j].GetMFCCs()[0] << ','
-				<< observationDataStd[j].GetMFCCs()[0] << ','
-				<< observationDataMax[j].GetMFCCs()[0] << ','
-				<< observationDataMin[j].GetMFCCs()[0] << ','
-				<< observationDataAverage[j].GetMFCCs()[1] << ','
-				<< observationDataStd[j].GetMFCCs()[1] << ','
-				<< observationDataMax[j].GetMFCCs()[1] << ','
-				<< observationDataMin[j].GetMFCCs()[1] << ','
-				<< observationDataAverage[j].GetMFCCs()[2] << ','
-				<< observationDataStd[j].GetMFCCs()[2] << ','
-				<< observationDataMax[j].GetMFCCs()[2] << ','
-				<< observationDataMin[j].GetMFCCs()[2] << ','
-				<< observationDataAverage[j].GetMFCCs()[3] << ','
-				<< observationDataStd[j].GetMFCCs()[3] << ','
-				<< observationDataMax[j].GetMFCCs()[3] << ','
-				<< observationDataMin[j].GetMFCCs()[3] << ','
-				<< observationDataAverage[j].GetMFCCs()[4] << ','
-				<< observationDataStd[j].GetMFCCs()[4] << ','
-				<< observationDataMax[j].GetMFCCs()[4] << ','
-				<< observationDataMin[j].GetMFCCs()[4] << ','
-				<< observationDataAverage[j].GetMFCCs()[5] << ','
-				<< observationDataStd[j].GetMFCCs()[5] << ','
-				<< observationDataMax[j].GetMFCCs()[5] << ','
-				<< observationDataMin[j].GetMFCCs()[5] << ','
-				<< observationDataAverage[j].GetMFCCs()[6] << ','
-				<< observationDataStd[j].GetMFCCs()[6] << ','
-				<< observationDataMax[j].GetMFCCs()[6] << ','
-				<< observationDataMin[j].GetMFCCs()[6] << ','
-				<< observationDataAverage[j].GetMFCCs()[7] << ','
-				<< observationDataStd[j].GetMFCCs()[7] << ','
-				<< observationDataMax[j].GetMFCCs()[7] << ','
-				<< observationDataMin[j].GetMFCCs()[7] << ','
-				<< observationDataAverage[j].GetMFCCs()[8] << ','
-				<< observationDataStd[j].GetMFCCs()[8] << ','
-				<< observationDataMax[j].GetMFCCs()[8] << ','
-				<< observationDataMin[j].GetMFCCs()[8] << ','
-				<< observationDataAverage[j].GetMFCCs()[9] << ','
-				<< observationDataStd[j].GetMFCCs()[9] << ','
-				<< observationDataMax[j].GetMFCCs()[9] << ','
-				<< observationDataMin[j].GetMFCCs()[9] << ','
-				<< observationDataAverage[j].GetMFCCs()[10] << ','
-				<< observationDataStd[j].GetMFCCs()[10] << ','
-				<< observationDataMax[j].GetMFCCs()[10] << ','
-				<< observationDataMin[j].GetMFCCs()[10] << ','
-				<< observationDataAverage[j].GetMFCCs()[11] << ','
-				<< observationDataStd[j].GetMFCCs()[11] << ','
-				<< observationDataMax[j].GetMFCCs()[11] << ','
-				<< observationDataMin[j].GetMFCCs()[11] << ','
-				<< observationDataAverage[j].GetDeltaMFCCs()[0] << ','
-				<< observationDataStd[j].GetDeltaMFCCs()[0] << ','
-				<< observationDataMax[j].GetDeltaMFCCs()[0] << ','
-				<< observationDataMin[j].GetDeltaMFCCs()[0] << ','
-				<< observationDataAverage[j].GetDeltaMFCCs()[1] << ','
-				<< observationDataStd[j].GetDeltaMFCCs()[1] << ','
-				<< observationDataMax[j].GetDeltaMFCCs()[1] << ','
-				<< observationDataMin[j].GetDeltaMFCCs()[1] << ','
-				<< observationDataAverage[j].GetDeltaMFCCs()[2] << ','
-				<< observationDataStd[j].GetDeltaMFCCs()[2] << ','
-				<< observationDataMax[j].GetDeltaMFCCs()[2] << ','
-				<< observationDataMin[j].GetDeltaMFCCs()[2] << ','
-				<< observationDataAverage[j].GetDeltaMFCCs()[3] << ','
-				<< observationDataStd[j].GetDeltaMFCCs()[3] << ','
-				<< observationDataMax[j].GetDeltaMFCCs()[3] << ','
-				<< observationDataMin[j].GetDeltaMFCCs()[3] << ','
-				<< observationDataAverage[j].GetDeltaMFCCs()[4] << ','
-				<< observationDataStd[j].GetDeltaMFCCs()[4] << ','
-				<< observationDataMax[j].GetDeltaMFCCs()[4] << ','
-				<< observationDataMin[j].GetDeltaMFCCs()[4] << ','
-				<< observationDataAverage[j].GetDeltaMFCCs()[5] << ','
-				<< observationDataStd[j].GetDeltaMFCCs()[5] << ','
-				<< observationDataMax[j].GetDeltaMFCCs()[5] << ','
-				<< observationDataMin[j].GetDeltaMFCCs()[5] << ','
-				<< observationDataAverage[j].GetDeltaMFCCs()[6] << ','
-				<< observationDataStd[j].GetDeltaMFCCs()[6] << ','
-				<< observationDataMax[j].GetDeltaMFCCs()[6] << ','
-				<< observationDataMin[j].GetDeltaMFCCs()[6] << ','
-				<< observationDataAverage[j].GetDeltaMFCCs()[7] << ','
-				<< observationDataStd[j].GetDeltaMFCCs()[7] << ','
-				<< observationDataMax[j].GetDeltaMFCCs()[7] << ','
-				<< observationDataMin[j].GetDeltaMFCCs()[7] << ','
-				<< observationDataAverage[j].GetDeltaMFCCs()[8] << ','
-				<< observationDataStd[j].GetDeltaMFCCs()[8] << ','
-				<< observationDataMax[j].GetDeltaMFCCs()[8] << ','
-				<< observationDataMin[j].GetDeltaMFCCs()[8] << ','
-				<< observationDataAverage[j].GetDeltaMFCCs()[9] << ','
-				<< observationDataStd[j].GetDeltaMFCCs()[9] << ','
-				<< observationDataMax[j].GetDeltaMFCCs()[9] << ','
-				<< observationDataMin[j].GetDeltaMFCCs()[9] << ','
-				<< observationDataAverage[j].GetDeltaMFCCs()[10] << ','
-				<< observationDataStd[j].GetDeltaMFCCs()[10] << ','
-				<< observationDataMax[j].GetDeltaMFCCs()[10] << ','
-				<< observationDataMin[j].GetDeltaMFCCs()[10] << ','
-				<< observationDataAverage[j].GetDeltaMFCCs()[11] << ','
-				<< observationDataStd[j].GetDeltaMFCCs()[11] << ','
-				<< observationDataMax[j].GetDeltaMFCCs()[11] << ','
-				<< observationDataMin[j].GetDeltaMFCCs()[11] << ','
-				<< observationDataAverage[j].GetSpectralContrast()[0] << ','
-				<< observationDataStd[j].GetSpectralContrast()[0] << ','
-				<< observationDataMax[j].GetSpectralContrast()[0] << ','
-				<< observationDataMin[j].GetSpectralContrast()[0] << ','
-				<< observationDataAverage[j].GetSpectralContrast()[1] << ','
-				<< observationDataStd[j].GetSpectralContrast()[1] << ','
-				<< observationDataMax[j].GetSpectralContrast()[1] << ','
-				<< observationDataMin[j].GetSpectralContrast()[1] << ','
-				<< observationDataAverage[j].GetSpectralContrast()[2] << ','
-				<< observationDataStd[j].GetSpectralContrast()[2] << ','
-				<< observationDataMax[j].GetSpectralContrast()[2] << ','
-				<< observationDataMin[j].GetSpectralContrast()[2] << ','
-				<< observationDataAverage[j].GetSpectralContrast()[3] << ','
-				<< observationDataStd[j].GetSpectralContrast()[3] << ','
-				<< observationDataMax[j].GetSpectralContrast()[3] << ','
-				<< observationDataMin[j].GetSpectralContrast()[3] << ','
-				<< observationDataAverage[j].GetSpectralContrast()[4] << ','
-				<< observationDataStd[j].GetSpectralContrast()[4] << ','
-				<< observationDataMax[j].GetSpectralContrast()[4] << ','
-				<< observationDataMin[j].GetSpectralContrast()[4] << ','
-				<< observationDataAverage[j].GetSpectralContrast()[5] << ','
-				<< observationDataStd[j].GetSpectralContrast()[5] << ','
-				<< observationDataMax[j].GetSpectralContrast()[5] << ','
-				<< observationDataMin[j].GetSpectralContrast()[5] << ','
-				<< observationDataAverage[j].GetSpectralValley()[0] << ','
-				<< observationDataStd[j].GetSpectralValley()[0] << ','
-				<< observationDataMax[j].GetSpectralValley()[0] << ','
-				<< observationDataMin[j].GetSpectralValley()[0] << ','
-				<< observationDataAverage[j].GetSpectralValley()[1] << ','
-				<< observationDataStd[j].GetSpectralValley()[1] << ','
-				<< observationDataMax[j].GetSpectralValley()[1] << ','
-				<< observationDataMin[j].GetSpectralValley()[1] << ','
-				<< observationDataAverage[j].GetSpectralValley()[2] << ','
-				<< observationDataStd[j].GetSpectralValley()[2] << ','
-				<< observationDataMax[j].GetSpectralValley()[2] << ','
-				<< observationDataMin[j].GetSpectralValley()[2] << ','
-				<< observationDataAverage[j].GetSpectralValley()[3] << ','
-				<< observationDataStd[j].GetSpectralValley()[3] << ','
-				<< observationDataMax[j].GetSpectralValley()[3] << ','
-				<< observationDataMin[j].GetSpectralValley()[3] << ','
-				<< observationDataAverage[j].GetSpectralValley()[4] << ','
-				<< observationDataStd[j].GetSpectralValley()[4] << ','
-				<< observationDataMax[j].GetSpectralValley()[4] << ','
-				<< observationDataMin[j].GetSpectralValley()[4] << ','
-				<< observationDataAverage[j].GetSpectralValley()[5] << ','
-				<< observationDataStd[j].GetSpectralValley()[5] << ','
-				<< observationDataMax[j].GetSpectralValley()[5] << ','
-				<< observationDataMin[j].GetSpectralValley()[5] << ','
-				<< observationDataAverage[j].GetLowEnergy() << ','
-				<< observationDataAverage[j].GetPeriodicity() << ','
-				<< observationDataAverage[j].GetEntropyOfEnergy() << ','
+				<< observationDataAverage[0].GetRMS() << ','
+				<< observationDataStd[0].GetRMS() << ','
+				<< observationDataMax[0].GetRMS() << ','
+				<< observationDataMin[0].GetRMS() << ','
+				<< observationDataAverage[0].GetPeak() << ','
+				<< observationDataStd[0].GetPeak() << ','
+				<< observationDataMax[0].GetPeak() << ','
+				<< observationDataMin[0].GetPeak() << ','
+				<< observationDataAverage[0].GetCrestFactor() << ','
+				<< observationDataStd[0].GetCrestFactor() << ','
+				<< observationDataMax[0].GetCrestFactor() << ','
+				<< observationDataMin[0].GetCrestFactor() << ','
+				<< observationDataAverage[0].GetZCR() << ','
+				<< observationDataStd[0].GetZCR() << ','
+				<< observationDataMax[0].GetZCR() << ','
+				<< observationDataMin[0].GetZCR() << ','
+				<< observationDataAverage[0].GetCentroid() << ','
+				<< observationDataStd[0].GetCentroid() << ','
+				<< observationDataMax[0].GetCentroid() << ','
+				<< observationDataMin[0].GetCentroid() << ','
+				<< observationDataAverage[0].GetSpread() << ','
+				<< observationDataStd[0].GetSpread() << ','
+				<< observationDataMax[0].GetSpread() << ','
+				<< observationDataMin[0].GetSpread() << ','
+				<< observationDataAverage[0].GetSkewness() << ','
+				<< observationDataStd[0].GetSkewness() << ','
+				<< observationDataMax[0].GetSkewness() << ','
+				<< observationDataMin[0].GetSkewness() << ','
+				<< observationDataAverage[0].GetKurtosis() << ','
+				<< observationDataStd[0].GetKurtosis() << ','
+				<< observationDataMax[0].GetKurtosis() << ','
+				<< observationDataMin[0].GetKurtosis() << ','
+				<< observationDataAverage[0].GetBrightness() << ','
+				<< observationDataStd[0].GetBrightness() << ','
+				<< observationDataMax[0].GetBrightness() << ','
+				<< observationDataMin[0].GetBrightness() << ','
+				<< observationDataAverage[0].GetFlatness() << ','
+				<< observationDataStd[0].GetFlatness() << ','
+				<< observationDataMax[0].GetFlatness() << ','
+				<< observationDataMin[0].GetFlatness() << ','
+				<< observationDataAverage[0].GetRollOff85() << ','
+				<< observationDataStd[0].GetRollOff85() << ','
+				<< observationDataMax[0].GetRollOff85() << ','
+				<< observationDataMin[0].GetRollOff85() << ','
+				<< observationDataAverage[0].GetRollOff95() << ','
+				<< observationDataStd[0].GetRollOff95() << ','
+				<< observationDataMax[0].GetRollOff95() << ','
+				<< observationDataMin[0].GetRollOff95() << ','
+				<< observationDataAverage[0].GetSpectralEntropy() << ','
+				<< observationDataStd[0].GetSpectralEntropy() << ','
+				<< observationDataMax[0].GetSpectralEntropy() << ','
+				<< observationDataMin[0].GetSpectralEntropy() << ','
+				<< observationDataAverage[0].GetSpectralCF() << ','
+				<< observationDataStd[0].GetSpectralCF() << ','
+				<< observationDataMax[0].GetSpectralCF() << ','
+				<< observationDataMin[0].GetSpectralCF() << ','
+				<< observationDataAverage[0].GetSpectralFlux() << ','
+				<< observationDataStd[0].GetSpectralFlux() << ','
+				<< observationDataMax[0].GetSpectralFlux() << ','
+				<< observationDataMin[0].GetSpectralFlux() << ','
+				<< observationDataAverage[0].GetMFCCs()[0] << ','
+				<< observationDataStd[0].GetMFCCs()[0] << ','
+				<< observationDataMax[0].GetMFCCs()[0] << ','
+				<< observationDataMin[0].GetMFCCs()[0] << ','
+				<< observationDataAverage[0].GetMFCCs()[1] << ','
+				<< observationDataStd[0].GetMFCCs()[1] << ','
+				<< observationDataMax[0].GetMFCCs()[1] << ','
+				<< observationDataMin[0].GetMFCCs()[1] << ','
+				<< observationDataAverage[0].GetMFCCs()[2] << ','
+				<< observationDataStd[0].GetMFCCs()[2] << ','
+				<< observationDataMax[0].GetMFCCs()[2] << ','
+				<< observationDataMin[0].GetMFCCs()[2] << ','
+				<< observationDataAverage[0].GetMFCCs()[3] << ','
+				<< observationDataStd[0].GetMFCCs()[3] << ','
+				<< observationDataMax[0].GetMFCCs()[3] << ','
+				<< observationDataMin[0].GetMFCCs()[3] << ','
+				<< observationDataAverage[0].GetMFCCs()[4] << ','
+				<< observationDataStd[0].GetMFCCs()[4] << ','
+				<< observationDataMax[0].GetMFCCs()[4] << ','
+				<< observationDataMin[0].GetMFCCs()[4] << ','
+				<< observationDataAverage[0].GetMFCCs()[5] << ','
+				<< observationDataStd[0].GetMFCCs()[5] << ','
+				<< observationDataMax[0].GetMFCCs()[5] << ','
+				<< observationDataMin[0].GetMFCCs()[5] << ','
+				<< observationDataAverage[0].GetMFCCs()[6] << ','
+				<< observationDataStd[0].GetMFCCs()[6] << ','
+				<< observationDataMax[0].GetMFCCs()[6] << ','
+				<< observationDataMin[0].GetMFCCs()[6] << ','
+				<< observationDataAverage[0].GetMFCCs()[7] << ','
+				<< observationDataStd[0].GetMFCCs()[7] << ','
+				<< observationDataMax[0].GetMFCCs()[7] << ','
+				<< observationDataMin[0].GetMFCCs()[7] << ','
+				<< observationDataAverage[0].GetMFCCs()[8] << ','
+				<< observationDataStd[0].GetMFCCs()[8] << ','
+				<< observationDataMax[0].GetMFCCs()[8] << ','
+				<< observationDataMin[0].GetMFCCs()[8] << ','
+				<< observationDataAverage[0].GetMFCCs()[9] << ','
+				<< observationDataStd[0].GetMFCCs()[9] << ','
+				<< observationDataMax[0].GetMFCCs()[9] << ','
+				<< observationDataMin[0].GetMFCCs()[9] << ','
+				<< observationDataAverage[0].GetMFCCs()[10] << ','
+				<< observationDataStd[0].GetMFCCs()[10] << ','
+				<< observationDataMax[0].GetMFCCs()[10] << ','
+				<< observationDataMin[0].GetMFCCs()[10] << ','
+				<< observationDataAverage[0].GetMFCCs()[11] << ','
+				<< observationDataStd[0].GetMFCCs()[11] << ','
+				<< observationDataMax[0].GetMFCCs()[11] << ','
+				<< observationDataMin[0].GetMFCCs()[11] << ','
+				<< observationDataAverage[0].GetDeltaMFCCs()[0] << ','
+				<< observationDataStd[0].GetDeltaMFCCs()[0] << ','
+				<< observationDataMax[0].GetDeltaMFCCs()[0] << ','
+				<< observationDataMin[0].GetDeltaMFCCs()[0] << ','
+				<< observationDataAverage[0].GetDeltaMFCCs()[1] << ','
+				<< observationDataStd[0].GetDeltaMFCCs()[1] << ','
+				<< observationDataMax[0].GetDeltaMFCCs()[1] << ','
+				<< observationDataMin[0].GetDeltaMFCCs()[1] << ','
+				<< observationDataAverage[0].GetDeltaMFCCs()[2] << ','
+				<< observationDataStd[0].GetDeltaMFCCs()[2] << ','
+				<< observationDataMax[0].GetDeltaMFCCs()[2] << ','
+				<< observationDataMin[0].GetDeltaMFCCs()[2] << ','
+				<< observationDataAverage[0].GetDeltaMFCCs()[3] << ','
+				<< observationDataStd[0].GetDeltaMFCCs()[3] << ','
+				<< observationDataMax[0].GetDeltaMFCCs()[3] << ','
+				<< observationDataMin[0].GetDeltaMFCCs()[3] << ','
+				<< observationDataAverage[0].GetDeltaMFCCs()[4] << ','
+				<< observationDataStd[0].GetDeltaMFCCs()[4] << ','
+				<< observationDataMax[0].GetDeltaMFCCs()[4] << ','
+				<< observationDataMin[0].GetDeltaMFCCs()[4] << ','
+				<< observationDataAverage[0].GetDeltaMFCCs()[5] << ','
+				<< observationDataStd[0].GetDeltaMFCCs()[5] << ','
+				<< observationDataMax[0].GetDeltaMFCCs()[5] << ','
+				<< observationDataMin[0].GetDeltaMFCCs()[5] << ','
+				<< observationDataAverage[0].GetDeltaMFCCs()[6] << ','
+				<< observationDataStd[0].GetDeltaMFCCs()[6] << ','
+				<< observationDataMax[0].GetDeltaMFCCs()[6] << ','
+				<< observationDataMin[0].GetDeltaMFCCs()[6] << ','
+				<< observationDataAverage[0].GetDeltaMFCCs()[7] << ','
+				<< observationDataStd[0].GetDeltaMFCCs()[7] << ','
+				<< observationDataMax[0].GetDeltaMFCCs()[7] << ','
+				<< observationDataMin[0].GetDeltaMFCCs()[7] << ','
+				<< observationDataAverage[0].GetDeltaMFCCs()[8] << ','
+				<< observationDataStd[0].GetDeltaMFCCs()[8] << ','
+				<< observationDataMax[0].GetDeltaMFCCs()[8] << ','
+				<< observationDataMin[0].GetDeltaMFCCs()[8] << ','
+				<< observationDataAverage[0].GetDeltaMFCCs()[9] << ','
+				<< observationDataStd[0].GetDeltaMFCCs()[9] << ','
+				<< observationDataMax[0].GetDeltaMFCCs()[9] << ','
+				<< observationDataMin[0].GetDeltaMFCCs()[9] << ','
+				<< observationDataAverage[0].GetDeltaMFCCs()[10] << ','
+				<< observationDataStd[0].GetDeltaMFCCs()[10] << ','
+				<< observationDataMax[0].GetDeltaMFCCs()[10] << ','
+				<< observationDataMin[0].GetDeltaMFCCs()[10] << ','
+				<< observationDataAverage[0].GetDeltaMFCCs()[11] << ','
+				<< observationDataStd[0].GetDeltaMFCCs()[11] << ','
+				<< observationDataMax[0].GetDeltaMFCCs()[11] << ','
+				<< observationDataMin[0].GetDeltaMFCCs()[11] << ','
+				<< observationDataAverage[0].GetSpectralContrast()[0] << ','
+				<< observationDataStd[0].GetSpectralContrast()[0] << ','
+				<< observationDataMax[0].GetSpectralContrast()[0] << ','
+				<< observationDataMin[0].GetSpectralContrast()[0] << ','
+				<< observationDataAverage[0].GetSpectralContrast()[1] << ','
+				<< observationDataStd[0].GetSpectralContrast()[1] << ','
+				<< observationDataMax[0].GetSpectralContrast()[1] << ','
+				<< observationDataMin[0].GetSpectralContrast()[1] << ','
+				<< observationDataAverage[0].GetSpectralContrast()[2] << ','
+				<< observationDataStd[0].GetSpectralContrast()[2] << ','
+				<< observationDataMax[0].GetSpectralContrast()[2] << ','
+				<< observationDataMin[0].GetSpectralContrast()[2] << ','
+				<< observationDataAverage[0].GetSpectralContrast()[3] << ','
+				<< observationDataStd[0].GetSpectralContrast()[3] << ','
+				<< observationDataMax[0].GetSpectralContrast()[3] << ','
+				<< observationDataMin[0].GetSpectralContrast()[3] << ','
+				<< observationDataAverage[0].GetSpectralContrast()[4] << ','
+				<< observationDataStd[0].GetSpectralContrast()[4] << ','
+				<< observationDataMax[0].GetSpectralContrast()[4] << ','
+				<< observationDataMin[0].GetSpectralContrast()[4] << ','
+				<< observationDataAverage[0].GetSpectralContrast()[5] << ','
+				<< observationDataStd[0].GetSpectralContrast()[5] << ','
+				<< observationDataMax[0].GetSpectralContrast()[5] << ','
+				<< observationDataMin[0].GetSpectralContrast()[5] << ','
+				<< observationDataAverage[0].GetSpectralValley()[0] << ','
+				<< observationDataStd[0].GetSpectralValley()[0] << ','
+				<< observationDataMax[0].GetSpectralValley()[0] << ','
+				<< observationDataMin[0].GetSpectralValley()[0] << ','
+				<< observationDataAverage[0].GetSpectralValley()[1] << ','
+				<< observationDataStd[0].GetSpectralValley()[1] << ','
+				<< observationDataMax[0].GetSpectralValley()[1] << ','
+				<< observationDataMin[0].GetSpectralValley()[1] << ','
+				<< observationDataAverage[0].GetSpectralValley()[2] << ','
+				<< observationDataStd[0].GetSpectralValley()[2] << ','
+				<< observationDataMax[0].GetSpectralValley()[2] << ','
+				<< observationDataMin[0].GetSpectralValley()[2] << ','
+				<< observationDataAverage[0].GetSpectralValley()[3] << ','
+				<< observationDataStd[0].GetSpectralValley()[3] << ','
+				<< observationDataMax[0].GetSpectralValley()[3] << ','
+				<< observationDataMin[0].GetSpectralValley()[3] << ','
+				<< observationDataAverage[0].GetSpectralValley()[4] << ','
+				<< observationDataStd[0].GetSpectralValley()[4] << ','
+				<< observationDataMax[0].GetSpectralValley()[4] << ','
+				<< observationDataMin[0].GetSpectralValley()[4] << ','
+				<< observationDataAverage[0].GetSpectralValley()[5] << ','
+				<< observationDataStd[0].GetSpectralValley()[5] << ','
+				<< observationDataMax[0].GetSpectralValley()[5] << ','
+				<< observationDataMin[0].GetSpectralValley()[5] << ','
+				<< observationDataAverage[0].GetLowEnergy() << ','
+				<< observationDataAverage[0].GetPeriodicity() << ','
+				<< observationDataAverage[0].GetEntropyOfEnergy() << ','
 				<< label << ',' ;
 			foutPooled << "\n";
 		}
@@ -270,216 +270,216 @@
 
 	if (foutWholeTrack.is_open())
 	{
-		for(size_t j = 0; j < wholeTrackobservationDataAverage.size(); j++)
+//		for(size_t j = 0; j < wholeTrackobservationDataAverage.size(); j++)
 		{
 			foutWholeTrack
-				<< wholeTrackobservationDataAverage[j].GetRMS() << ','//1
-				<< wholeTrackobservationDataStd[j].GetRMS() << ','//2
-				<< wholeTrackobservationDataMax[j].GetRMS() << ','//3
-				<< wholeTrackobservationDataMin[j].GetRMS() << ','//4
-				<< wholeTrackobservationDataAverage[j].GetPeak() << ','//5
-				<< wholeTrackobservationDataStd[j].GetPeak() << ','//6
-				<< wholeTrackobservationDataMax[j].GetPeak() << ','//7
-				<< wholeTrackobservationDataMin[j].GetPeak() << ','//8
-				<< wholeTrackobservationDataAverage[j].GetCrestFactor() << ',' //9
-				<< wholeTrackobservationDataStd[j].GetCrestFactor() << ',' //10
-				<< wholeTrackobservationDataMax[j].GetCrestFactor() << ',' //11
-				<< wholeTrackobservationDataMin[j].GetCrestFactor() << ',' //12
-				<< wholeTrackobservationDataAverage[j].GetZCR() << ',' //13
-				<< wholeTrackobservationDataStd[j].GetZCR() << ',' //14
-				<< wholeTrackobservationDataMax[j].GetZCR()<< ',' //15
-				<< wholeTrackobservationDataMin[j].GetZCR()<< ',' //16
-				<< wholeTrackobservationDataAverage[j].GetCentroid() << ',' //17
-				<< wholeTrackobservationDataStd[j].GetCentroid() << ','  //18
-				<< wholeTrackobservationDataMax[j].GetCentroid() << ',' //19
-				<< wholeTrackobservationDataMin[j].GetCentroid() << ',' //20
-				<< wholeTrackobservationDataAverage[j].GetSpread() << ',' //21
-				<< wholeTrackobservationDataStd[j].GetSpread() << ',' //22
-				<< wholeTrackobservationDataMax[j].GetSpread() << ',' //23
-				<< wholeTrackobservationDataMin[j].GetSpread() << ',' //24
-				<< wholeTrackobservationDataAverage[j].GetSkewness() << ',' //25
-				<< wholeTrackobservationDataStd[j].GetSkewness() << ',' //26
-				<< wholeTrackobservationDataMax[j].GetSkewness() << ',' //27
-				<< wholeTrackobservationDataMin[j].GetSkewness() << ',' //28
-				<< wholeTrackobservationDataAverage[j].GetKurtosis() << ',' //29
-				<< wholeTrackobservationDataStd[j].GetKurtosis() << ',' //30
-				<< wholeTrackobservationDataMax[j].GetKurtosis() << ',' //31
-				<< wholeTrackobservationDataMin[j].GetKurtosis() << ',' //32
-				<< wholeTrackobservationDataAverage[j].GetBrightness() << ',' //33
-				<< wholeTrackobservationDataStd[j].GetBrightness() << ',' //34
-				<< wholeTrackobservationDataMax[j].GetBrightness() << ','  //35
-				<< wholeTrackobservationDataMin[j].GetBrightness() << ',' //36
-				<< wholeTrackobservationDataAverage[j].GetFlatness() << ',' //37
-				<< wholeTrackobservationDataStd[j].GetFlatness() << ',' //38
-				<< wholeTrackobservationDataMax[j].GetFlatness() << ','//39
-				<< wholeTrackobservationDataMin[j].GetFlatness() << ','//40
-				<< wholeTrackobservationDataAverage[j].GetRollOff85() << ',' //41
-				<< wholeTrackobservationDataStd[j].GetRollOff85() << ','  //42
-				<< wholeTrackobservationDataMax[j].GetRollOff85() << ','  //43
-				<< wholeTrackobservationDataMin[j].GetRollOff85() << ','  //44
-				<< wholeTrackobservationDataAverage[j].GetRollOff95() << ','  //45
-				<< wholeTrackobservationDataStd[j].GetRollOff95() << ','  //46
-				<< wholeTrackobservationDataMax[j].GetRollOff95() << ','  //47
-				<< wholeTrackobservationDataMin[j].GetRollOff95() << ','  //48
-				<< wholeTrackobservationDataAverage[j].GetSpectralEntropy() << ','//49
-				<< wholeTrackobservationDataStd[j].GetSpectralEntropy() << ',' //50
-				<< wholeTrackobservationDataMax[j].GetSpectralEntropy() << ','//51
-				<< wholeTrackobservationDataMin[j].GetSpectralEntropy() << ','//52
-				<< wholeTrackobservationDataAverage[j].GetSpectralCF() << ','//53
-				<< wholeTrackobservationDataStd[j].GetSpectralCF() << ',' //54
-				<< wholeTrackobservationDataMax[j].GetSpectralCF() << ','//55
-				<< wholeTrackobservationDataMin[j].GetSpectralCF() << ','//56
-				<< wholeTrackobservationDataAverage[j].GetSpectralFlux() << ','//57
-				<< wholeTrackobservationDataStd[j].GetSpectralFlux() << ',' //58
-				<< wholeTrackobservationDataMax[j].GetSpectralFlux() << ','//59
-				<< wholeTrackobservationDataMin[j].GetSpectralFlux() << ','//60
-				<< wholeTrackobservationDataAverage[j].GetMFCCs()[0] << ','//61
-				<< wholeTrackobservationDataStd[j].GetMFCCs()[0] << ',' //62
-				<< wholeTrackobservationDataMax[j].GetMFCCs()[0] << ',' //47
-				<< wholeTrackobservationDataMin[j].GetMFCCs()[0] << ',' //48
-				<< wholeTrackobservationDataAverage[j].GetMFCCs()[1] << ',' //49
-				<< wholeTrackobservationDataStd[j].GetMFCCs()[1] << ',' //50
-				<< wholeTrackobservationDataMax[j].GetMFCCs()[1] << ',' //51
-				<< wholeTrackobservationDataMin[j].GetMFCCs()[1] << ',' //52
-				<< wholeTrackobservationDataAverage[j].GetMFCCs()[2] << ',' //53
-				<< wholeTrackobservationDataStd[j].GetMFCCs()[2] << ',' //54
-				<< wholeTrackobservationDataMax[j].GetMFCCs()[2] << ',' //55
-				<< wholeTrackobservationDataMin[j].GetMFCCs()[2] << ',' //56
-				<< wholeTrackobservationDataAverage[j].GetMFCCs()[3] << ',' //57
-				<< wholeTrackobservationDataStd[j].GetMFCCs()[3] << ',' //58
-				<< wholeTrackobservationDataMax[j].GetMFCCs()[3] << ',' //59
-				<< wholeTrackobservationDataMin[j].GetMFCCs()[3] << ',' //60
-				<< wholeTrackobservationDataAverage[j].GetMFCCs()[4] << ',' //61
-				<< wholeTrackobservationDataStd[j].GetMFCCs()[4] << ',' //62
-				<< wholeTrackobservationDataMax[j].GetMFCCs()[4] << ',' //63
-				<< wholeTrackobservationDataMin[j].GetMFCCs()[4] << ',' //64
-				<< wholeTrackobservationDataAverage[j].GetMFCCs()[5] << ',' //65
-				<< wholeTrackobservationDataStd[j].GetMFCCs()[5] << ',' //66
-				<< wholeTrackobservationDataMax[j].GetMFCCs()[5] << ',' //67
-				<< wholeTrackobservationDataMin[j].GetMFCCs()[5] << ',' //68
-				<< wholeTrackobservationDataAverage[j].GetMFCCs()[6] << ',' //69
-				<< wholeTrackobservationDataStd[j].GetMFCCs()[6] << ',' //70
-				<< wholeTrackobservationDataMax[j].GetMFCCs()[6] << ',' //71
-				<< wholeTrackobservationDataMin[j].GetMFCCs()[6] << ',' //72
-				<< wholeTrackobservationDataAverage[j].GetMFCCs()[7] << ',' //73
-				<< wholeTrackobservationDataStd[j].GetMFCCs()[7] << ',' //74
-				<< wholeTrackobservationDataMax[j].GetMFCCs()[7] << ',' //75
-				<< wholeTrackobservationDataMin[j].GetMFCCs()[7] << ',' //76
-				<< wholeTrackobservationDataAverage[j].GetMFCCs()[8] << ',' //77
-				<< wholeTrackobservationDataStd[j].GetMFCCs()[8] << ',' //78
-				<< wholeTrackobservationDataMax[j].GetMFCCs()[8] << ',' //79
-				<< wholeTrackobservationDataMin[j].GetMFCCs()[8] << ',' //80
-				<< wholeTrackobservationDataAverage[j].GetMFCCs()[9] << ',' //81
-				<< wholeTrackobservationDataStd[j].GetMFCCs()[9] << ',' //82
-				<< wholeTrackobservationDataMax[j].GetMFCCs()[9] << ',' //83
-				<< wholeTrackobservationDataMin[j].GetMFCCs()[9] << ',' //84
-				<< wholeTrackobservationDataAverage[j].GetMFCCs()[10] << ',' //85
-				<< wholeTrackobservationDataStd[j].GetMFCCs()[10] << ',' //86
-				<< wholeTrackobservationDataMax[j].GetMFCCs()[10] << ',' //87
-				<< wholeTrackobservationDataMin[j].GetMFCCs()[10] << ',' //88
-				<< wholeTrackobservationDataAverage[j].GetMFCCs()[11] << ',' //89
-				<< wholeTrackobservationDataStd[j].GetMFCCs()[11] << ',' //90
-				<< wholeTrackobservationDataMax[j].GetMFCCs()[11] << ',' //91
-				<< wholeTrackobservationDataMin[j].GetMFCCs()[11] << ',' //92
-				<< wholeTrackobservationDataAverage[j].GetDeltaMFCCs()[0] << ','//45
-				<< wholeTrackobservationDataStd[j].GetDeltaMFCCs()[0] << ',' //46
-				<< wholeTrackobservationDataMax[j].GetDeltaMFCCs()[0] << ',' //47
-				<< wholeTrackobservationDataMin[j].GetDeltaMFCCs()[0] << ',' //48
-				<< wholeTrackobservationDataAverage[j].GetDeltaMFCCs()[1] << ',' //49
-				<< wholeTrackobservationDataStd[j].GetDeltaMFCCs()[1] << ',' //50
-				<< wholeTrackobservationDataMax[j].GetDeltaMFCCs()[1] << ',' //51
-				<< wholeTrackobservationDataMin[j].GetDeltaMFCCs()[1] << ',' //52
-				<< wholeTrackobservationDataAverage[j].GetDeltaMFCCs()[2] << ',' //53
-				<< wholeTrackobservationDataStd[j].GetDeltaMFCCs()[2] << ',' //54
-				<< wholeTrackobservationDataMax[j].GetDeltaMFCCs()[2] << ',' //55
-				<< wholeTrackobservationDataMin[j].GetDeltaMFCCs()[2] << ',' //56
-				<< wholeTrackobservationDataAverage[j].GetDeltaMFCCs()[3] << ',' //57
-				<< wholeTrackobservationDataStd[j].GetDeltaMFCCs()[3] << ',' //58
-				<< wholeTrackobservationDataMax[j].GetDeltaMFCCs()[3] << ',' //59
-				<< wholeTrackobservationDataMin[j].GetDeltaMFCCs()[3] << ',' //60
-				<< wholeTrackobservationDataAverage[j].GetDeltaMFCCs()[4] << ',' //61
-				<< wholeTrackobservationDataStd[j].GetDeltaMFCCs()[4] << ',' //62
-				<< wholeTrackobservationDataMax[j].GetDeltaMFCCs()[4] << ',' //63
-				<< wholeTrackobservationDataMin[j].GetDeltaMFCCs()[4] << ',' //64
-				<< wholeTrackobservationDataAverage[j].GetDeltaMFCCs()[5] << ',' //65
-				<< wholeTrackobservationDataStd[j].GetDeltaMFCCs()[5] << ',' //66
-				<< wholeTrackobservationDataMax[j].GetDeltaMFCCs()[5] << ',' //67
-				<< wholeTrackobservationDataMin[j].GetDeltaMFCCs()[5] << ',' //68
-				<< wholeTrackobservationDataAverage[j].GetDeltaMFCCs()[6] << ',' //69
-				<< wholeTrackobservationDataStd[j].GetDeltaMFCCs()[6] << ',' //70
-				<< wholeTrackobservationDataMax[j].GetDeltaMFCCs()[6] << ',' //71
-				<< wholeTrackobservationDataMin[j].GetDeltaMFCCs()[6] << ',' //72
-				<< wholeTrackobservationDataAverage[j].GetDeltaMFCCs()[7] << ',' //73
-				<< wholeTrackobservationDataStd[j].GetDeltaMFCCs()[7] << ',' //74
-				<< wholeTrackobservationDataMax[j].GetDeltaMFCCs()[7] << ',' //75
-				<< wholeTrackobservationDataMin[j].GetDeltaMFCCs()[7] << ',' //76
-				<< wholeTrackobservationDataAverage[j].GetDeltaMFCCs()[8] << ',' //77
-				<< wholeTrackobservationDataStd[j].GetDeltaMFCCs()[8] << ',' //78
-				<< wholeTrackobservationDataMax[j].GetDeltaMFCCs()[8] << ',' //79
-				<< wholeTrackobservationDataMin[j].GetDeltaMFCCs()[8] << ',' //80
-				<< wholeTrackobservationDataAverage[j].GetDeltaMFCCs()[9] << ',' //81
-				<< wholeTrackobservationDataStd[j].GetDeltaMFCCs()[9] << ',' //82
-				<< wholeTrackobservationDataMax[j].GetDeltaMFCCs()[9] << ',' //83
-				<< wholeTrackobservationDataMin[j].GetDeltaMFCCs()[9] << ',' //84
-				<< wholeTrackobservationDataAverage[j].GetDeltaMFCCs()[10] << ',' //85
-				<< wholeTrackobservationDataStd[j].GetDeltaMFCCs()[10] << ',' //86
-				<< wholeTrackobservationDataMax[j].GetDeltaMFCCs()[10] << ',' //87
-				<< wholeTrackobservationDataMin[j].GetDeltaMFCCs()[10] << ',' //88
-				<< wholeTrackobservationDataAverage[j].GetDeltaMFCCs()[11] << ',' //89
-				<< wholeTrackobservationDataStd[j].GetDeltaMFCCs()[11] << ',' //90
-				<< wholeTrackobservationDataMax[j].GetDeltaMFCCs()[11] << ',' //91
-				<< wholeTrackobservationDataMin[j].GetDeltaMFCCs()[11] << ',' //92
-				<< wholeTrackobservationDataAverage[j].GetSpectralContrast()[0] << ','//61
-				<< wholeTrackobservationDataStd[j].GetSpectralContrast()[0] << ',' //62
-				<< wholeTrackobservationDataMax[j].GetSpectralContrast()[0] << ',' //47
-				<< wholeTrackobservationDataMin[j].GetSpectralContrast()[0] << ',' //48
-				<< wholeTrackobservationDataAverage[j].GetSpectralContrast()[1] << ',' //49
-				<< wholeTrackobservationDataStd[j].GetSpectralContrast()[1] << ',' //50
-				<< wholeTrackobservationDataMax[j].GetSpectralContrast()[1] << ',' //51
-				<< wholeTrackobservationDataMin[j].GetSpectralContrast()[1] << ',' //52
-				<< wholeTrackobservationDataAverage[j].GetSpectralContrast()[2] << ',' //53
-				<< wholeTrackobservationDataStd[j].GetSpectralContrast()[2] << ',' //54
-				<< wholeTrackobservationDataMax[j].GetSpectralContrast()[2] << ',' //55
-				<< wholeTrackobservationDataMin[j].GetSpectralContrast()[2] << ',' //56
-				<< wholeTrackobservationDataAverage[j].GetSpectralContrast()[3] << ',' //57
-				<< wholeTrackobservationDataStd[j].GetSpectralContrast()[3] << ',' //58
-				<< wholeTrackobservationDataMax[j].GetSpectralContrast()[3] << ',' //59
-				<< wholeTrackobservationDataMin[j].GetSpectralContrast()[3] << ',' //60
-				<< wholeTrackobservationDataAverage[j].GetSpectralContrast()[4] << ',' //61
-				<< wholeTrackobservationDataStd[j].GetSpectralContrast()[4] << ',' //62
-				<< wholeTrackobservationDataMax[j].GetSpectralContrast()[4] << ',' //63
-				<< wholeTrackobservationDataMin[j].GetSpectralContrast()[4] << ',' //64
-				<< wholeTrackobservationDataAverage[j].GetSpectralContrast()[5] << ',' //65
-				<< wholeTrackobservationDataStd[j].GetSpectralContrast()[5] << ',' //66
-				<< wholeTrackobservationDataMax[j].GetSpectralContrast()[5] << ',' //67
-				<< wholeTrackobservationDataMin[j].GetSpectralContrast()[5] << ',' //68
-				<< wholeTrackobservationDataAverage[j].GetSpectralValley()[0] << ','//61
-				<< wholeTrackobservationDataStd[j].GetSpectralValley()[0] << ',' //62
-				<< wholeTrackobservationDataMax[j].GetSpectralValley()[0] << ',' //47
-				<< wholeTrackobservationDataMin[j].GetSpectralValley()[0] << ',' //48
-				<< wholeTrackobservationDataAverage[j].GetSpectralValley()[1] << ',' //49
-				<< wholeTrackobservationDataStd[j].GetSpectralValley()[1] << ',' //50
-				<< wholeTrackobservationDataMax[j].GetSpectralValley()[1] << ',' //51
-				<< wholeTrackobservationDataMin[j].GetSpectralValley()[1] << ',' //52
-				<< wholeTrackobservationDataAverage[j].GetSpectralValley()[2] << ',' //53
-				<< wholeTrackobservationDataStd[j].GetSpectralValley()[2] << ',' //54
-				<< wholeTrackobservationDataMax[j].GetSpectralValley()[2] << ',' //55
-				<< wholeTrackobservationDataMin[j].GetSpectralValley()[2] << ',' //56
-				<< wholeTrackobservationDataAverage[j].GetSpectralValley()[3] << ',' //57
-				<< wholeTrackobservationDataStd[j].GetSpectralValley()[3] << ',' //58
-				<< wholeTrackobservationDataMax[j].GetSpectralValley()[3] << ',' //59
-				<< wholeTrackobservationDataMin[j].GetSpectralValley()[3] << ',' //60
-				<< wholeTrackobservationDataAverage[j].GetSpectralValley()[4] << ',' //61
-				<< wholeTrackobservationDataStd[j].GetSpectralValley()[4] << ',' //62
-				<< wholeTrackobservationDataMax[j].GetSpectralValley()[4] << ',' //63
-				<< wholeTrackobservationDataMin[j].GetSpectralValley()[4] << ',' //64
-				<< wholeTrackobservationDataAverage[j].GetSpectralValley()[5] << ',' //65
-				<< wholeTrackobservationDataStd[j].GetSpectralValley()[5] << ',' //66
-				<< wholeTrackobservationDataMax[j].GetSpectralValley()[5] << ',' //67
-				<< wholeTrackobservationDataMin[j].GetSpectralValley()[5] << ',' //68
-				<< wholeTrackobservationDataAverage[j].GetLowEnergy() << ',' //93
-				<< wholeTrackobservationDataAverage[j].GetPeriodicity() << ',' //94
-				<< wholeTrackobservationDataAverage[j].GetEntropyOfEnergy() << ',' //95
+				<< wholeTrackobservationDataAverage[0].GetRMS() << ','//1
+				<< wholeTrackobservationDataStd[0].GetRMS() << ','//2
+				<< wholeTrackobservationDataMax[0].GetRMS() << ','//3
+				<< wholeTrackobservationDataMin[0].GetRMS() << ','//4
+				<< wholeTrackobservationDataAverage[0].GetPeak() << ','//5
+				<< wholeTrackobservationDataStd[0].GetPeak() << ','//6
+				<< wholeTrackobservationDataMax[0].GetPeak() << ','//7
+				<< wholeTrackobservationDataMin[0].GetPeak() << ','//8
+				<< wholeTrackobservationDataAverage[0].GetCrestFactor() << ',' //9
+				<< wholeTrackobservationDataStd[0].GetCrestFactor() << ',' //10
+				<< wholeTrackobservationDataMax[0].GetCrestFactor() << ',' //11
+				<< wholeTrackobservationDataMin[0].GetCrestFactor() << ',' //12
+				<< wholeTrackobservationDataAverage[0].GetZCR() << ',' //13
+				<< wholeTrackobservationDataStd[0].GetZCR() << ',' //14
+				<< wholeTrackobservationDataMax[0].GetZCR()<< ',' //15
+				<< wholeTrackobservationDataMin[0].GetZCR()<< ',' //16
+				<< wholeTrackobservationDataAverage[0].GetCentroid() << ',' //17
+				<< wholeTrackobservationDataStd[0].GetCentroid() << ','  //18
+				<< wholeTrackobservationDataMax[0].GetCentroid() << ',' //19
+				<< wholeTrackobservationDataMin[0].GetCentroid() << ',' //20
+				<< wholeTrackobservationDataAverage[0].GetSpread() << ',' //21
+				<< wholeTrackobservationDataStd[0].GetSpread() << ',' //22
+				<< wholeTrackobservationDataMax[0].GetSpread() << ',' //23
+				<< wholeTrackobservationDataMin[0].GetSpread() << ',' //24
+				<< wholeTrackobservationDataAverage[0].GetSkewness() << ',' //25
+				<< wholeTrackobservationDataStd[0].GetSkewness() << ',' //26
+				<< wholeTrackobservationDataMax[0].GetSkewness() << ',' //27
+				<< wholeTrackobservationDataMin[0].GetSkewness() << ',' //28
+				<< wholeTrackobservationDataAverage[0].GetKurtosis() << ',' //29
+				<< wholeTrackobservationDataStd[0].GetKurtosis() << ',' //30
+				<< wholeTrackobservationDataMax[0].GetKurtosis() << ',' //31
+				<< wholeTrackobservationDataMin[0].GetKurtosis() << ',' //32
+				<< wholeTrackobservationDataAverage[0].GetBrightness() << ',' //33
+				<< wholeTrackobservationDataStd[0].GetBrightness() << ',' //34
+				<< wholeTrackobservationDataMax[0].GetBrightness() << ','  //35
+				<< wholeTrackobservationDataMin[0].GetBrightness() << ',' //36
+				<< wholeTrackobservationDataAverage[0].GetFlatness() << ',' //37
+				<< wholeTrackobservationDataStd[0].GetFlatness() << ',' //38
+				<< wholeTrackobservationDataMax[0].GetFlatness() << ','//39
+				<< wholeTrackobservationDataMin[0].GetFlatness() << ','//40
+				<< wholeTrackobservationDataAverage[0].GetRollOff85() << ',' //41
+				<< wholeTrackobservationDataStd[0].GetRollOff85() << ','  //42
+				<< wholeTrackobservationDataMax[0].GetRollOff85() << ','  //43
+				<< wholeTrackobservationDataMin[0].GetRollOff85() << ','  //44
+				<< wholeTrackobservationDataAverage[0].GetRollOff95() << ','  //45
+				<< wholeTrackobservationDataStd[0].GetRollOff95() << ','  //46
+				<< wholeTrackobservationDataMax[0].GetRollOff95() << ','  //47
+				<< wholeTrackobservationDataMin[0].GetRollOff95() << ','  //48
+				<< wholeTrackobservationDataAverage[0].GetSpectralEntropy() << ','//49
+				<< wholeTrackobservationDataStd[0].GetSpectralEntropy() << ',' //50
+				<< wholeTrackobservationDataMax[0].GetSpectralEntropy() << ','//51
+				<< wholeTrackobservationDataMin[0].GetSpectralEntropy() << ','//52
+				<< wholeTrackobservationDataAverage[0].GetSpectralCF() << ','//53
+				<< wholeTrackobservationDataStd[0].GetSpectralCF() << ',' //54
+				<< wholeTrackobservationDataMax[0].GetSpectralCF() << ','//55
+				<< wholeTrackobservationDataMin[0].GetSpectralCF() << ','//56
+				<< wholeTrackobservationDataAverage[0].GetSpectralFlux() << ','//57
+				<< wholeTrackobservationDataStd[0].GetSpectralFlux() << ',' //58
+				<< wholeTrackobservationDataMax[0].GetSpectralFlux() << ','//59
+				<< wholeTrackobservationDataMin[0].GetSpectralFlux() << ','//60
+				<< wholeTrackobservationDataAverage[0].GetMFCCs()[0] << ','//61
+				<< wholeTrackobservationDataStd[0].GetMFCCs()[0] << ',' //62
+				<< wholeTrackobservationDataMax[0].GetMFCCs()[0] << ',' //47
+				<< wholeTrackobservationDataMin[0].GetMFCCs()[0] << ',' //48
+				<< wholeTrackobservationDataAverage[0].GetMFCCs()[1] << ',' //49
+				<< wholeTrackobservationDataStd[0].GetMFCCs()[1] << ',' //50
+				<< wholeTrackobservationDataMax[0].GetMFCCs()[1] << ',' //51
+				<< wholeTrackobservationDataMin[0].GetMFCCs()[1] << ',' //52
+				<< wholeTrackobservationDataAverage[0].GetMFCCs()[2] << ',' //53
+				<< wholeTrackobservationDataStd[0].GetMFCCs()[2] << ',' //54
+				<< wholeTrackobservationDataMax[0].GetMFCCs()[2] << ',' //55
+				<< wholeTrackobservationDataMin[0].GetMFCCs()[2] << ',' //56
+				<< wholeTrackobservationDataAverage[0].GetMFCCs()[3] << ',' //57
+				<< wholeTrackobservationDataStd[0].GetMFCCs()[3] << ',' //58
+				<< wholeTrackobservationDataMax[0].GetMFCCs()[3] << ',' //59
+				<< wholeTrackobservationDataMin[0].GetMFCCs()[3] << ',' //60
+				<< wholeTrackobservationDataAverage[0].GetMFCCs()[4] << ',' //61
+				<< wholeTrackobservationDataStd[0].GetMFCCs()[4] << ',' //62
+				<< wholeTrackobservationDataMax[0].GetMFCCs()[4] << ',' //63
+				<< wholeTrackobservationDataMin[0].GetMFCCs()[4] << ',' //64
+				<< wholeTrackobservationDataAverage[0].GetMFCCs()[5] << ',' //65
+				<< wholeTrackobservationDataStd[0].GetMFCCs()[5] << ',' //66
+				<< wholeTrackobservationDataMax[0].GetMFCCs()[5] << ',' //67
+				<< wholeTrackobservationDataMin[0].GetMFCCs()[5] << ',' //68
+				<< wholeTrackobservationDataAverage[0].GetMFCCs()[6] << ',' //69
+				<< wholeTrackobservationDataStd[0].GetMFCCs()[6] << ',' //70
+				<< wholeTrackobservationDataMax[0].GetMFCCs()[6] << ',' //71
+				<< wholeTrackobservationDataMin[0].GetMFCCs()[6] << ',' //72
+				<< wholeTrackobservationDataAverage[0].GetMFCCs()[7] << ',' //73
+				<< wholeTrackobservationDataStd[0].GetMFCCs()[7] << ',' //74
+				<< wholeTrackobservationDataMax[0].GetMFCCs()[7] << ',' //75
+				<< wholeTrackobservationDataMin[0].GetMFCCs()[7] << ',' //76
+				<< wholeTrackobservationDataAverage[0].GetMFCCs()[8] << ',' //77
+				<< wholeTrackobservationDataStd[0].GetMFCCs()[8] << ',' //78
+				<< wholeTrackobservationDataMax[0].GetMFCCs()[8] << ',' //79
+				<< wholeTrackobservationDataMin[0].GetMFCCs()[8] << ',' //80
+				<< wholeTrackobservationDataAverage[0].GetMFCCs()[9] << ',' //81
+				<< wholeTrackobservationDataStd[0].GetMFCCs()[9] << ',' //82
+				<< wholeTrackobservationDataMax[0].GetMFCCs()[9] << ',' //83
+				<< wholeTrackobservationDataMin[0].GetMFCCs()[9] << ',' //84
+				<< wholeTrackobservationDataAverage[0].GetMFCCs()[10] << ',' //85
+				<< wholeTrackobservationDataStd[0].GetMFCCs()[10] << ',' //86
+				<< wholeTrackobservationDataMax[0].GetMFCCs()[10] << ',' //87
+				<< wholeTrackobservationDataMin[0].GetMFCCs()[10] << ',' //88
+				<< wholeTrackobservationDataAverage[0].GetMFCCs()[11] << ',' //89
+				<< wholeTrackobservationDataStd[0].GetMFCCs()[11] << ',' //90
+				<< wholeTrackobservationDataMax[0].GetMFCCs()[11] << ',' //91
+				<< wholeTrackobservationDataMin[0].GetMFCCs()[11] << ',' //92
+				<< wholeTrackobservationDataAverage[0].GetDeltaMFCCs()[0] << ','//45
+				<< wholeTrackobservationDataStd[0].GetDeltaMFCCs()[0] << ',' //46
+				<< wholeTrackobservationDataMax[0].GetDeltaMFCCs()[0] << ',' //47
+				<< wholeTrackobservationDataMin[0].GetDeltaMFCCs()[0] << ',' //48
+				<< wholeTrackobservationDataAverage[0].GetDeltaMFCCs()[1] << ',' //49
+				<< wholeTrackobservationDataStd[0].GetDeltaMFCCs()[1] << ',' //50
+				<< wholeTrackobservationDataMax[0].GetDeltaMFCCs()[1] << ',' //51
+				<< wholeTrackobservationDataMin[0].GetDeltaMFCCs()[1] << ',' //52
+				<< wholeTrackobservationDataAverage[0].GetDeltaMFCCs()[2] << ',' //53
+				<< wholeTrackobservationDataStd[0].GetDeltaMFCCs()[2] << ',' //54
+				<< wholeTrackobservationDataMax[0].GetDeltaMFCCs()[2] << ',' //55
+				<< wholeTrackobservationDataMin[0].GetDeltaMFCCs()[2] << ',' //56
+				<< wholeTrackobservationDataAverage[0].GetDeltaMFCCs()[3] << ',' //57
+				<< wholeTrackobservationDataStd[0].GetDeltaMFCCs()[3] << ',' //58
+				<< wholeTrackobservationDataMax[0].GetDeltaMFCCs()[3] << ',' //59
+				<< wholeTrackobservationDataMin[0].GetDeltaMFCCs()[3] << ',' //60
+				<< wholeTrackobservationDataAverage[0].GetDeltaMFCCs()[4] << ',' //61
+				<< wholeTrackobservationDataStd[0].GetDeltaMFCCs()[4] << ',' //62
+				<< wholeTrackobservationDataMax[0].GetDeltaMFCCs()[4] << ',' //63
+				<< wholeTrackobservationDataMin[0].GetDeltaMFCCs()[4] << ',' //64
+				<< wholeTrackobservationDataAverage[0].GetDeltaMFCCs()[5] << ',' //65
+				<< wholeTrackobservationDataStd[0].GetDeltaMFCCs()[5] << ',' //66
+				<< wholeTrackobservationDataMax[0].GetDeltaMFCCs()[5] << ',' //67
+				<< wholeTrackobservationDataMin[0].GetDeltaMFCCs()[5] << ',' //68
+				<< wholeTrackobservationDataAverage[0].GetDeltaMFCCs()[6] << ',' //69
+				<< wholeTrackobservationDataStd[0].GetDeltaMFCCs()[6] << ',' //70
+				<< wholeTrackobservationDataMax[0].GetDeltaMFCCs()[6] << ',' //71
+				<< wholeTrackobservationDataMin[0].GetDeltaMFCCs()[6] << ',' //72
+				<< wholeTrackobservationDataAverage[0].GetDeltaMFCCs()[7] << ',' //73
+				<< wholeTrackobservationDataStd[0].GetDeltaMFCCs()[7] << ',' //74
+				<< wholeTrackobservationDataMax[0].GetDeltaMFCCs()[7] << ',' //75
+				<< wholeTrackobservationDataMin[0].GetDeltaMFCCs()[7] << ',' //76
+				<< wholeTrackobservationDataAverage[0].GetDeltaMFCCs()[8] << ',' //77
+				<< wholeTrackobservationDataStd[0].GetDeltaMFCCs()[8] << ',' //78
+				<< wholeTrackobservationDataMax[0].GetDeltaMFCCs()[8] << ',' //79
+				<< wholeTrackobservationDataMin[0].GetDeltaMFCCs()[8] << ',' //80
+				<< wholeTrackobservationDataAverage[0].GetDeltaMFCCs()[9] << ',' //81
+				<< wholeTrackobservationDataStd[0].GetDeltaMFCCs()[9] << ',' //82
+				<< wholeTrackobservationDataMax[0].GetDeltaMFCCs()[9] << ',' //83
+				<< wholeTrackobservationDataMin[0].GetDeltaMFCCs()[9] << ',' //84
+				<< wholeTrackobservationDataAverage[0].GetDeltaMFCCs()[10] << ',' //85
+				<< wholeTrackobservationDataStd[0].GetDeltaMFCCs()[10] << ',' //86
+				<< wholeTrackobservationDataMax[0].GetDeltaMFCCs()[10] << ',' //87
+				<< wholeTrackobservationDataMin[0].GetDeltaMFCCs()[10] << ',' //88
+				<< wholeTrackobservationDataAverage[0].GetDeltaMFCCs()[11] << ',' //89
+				<< wholeTrackobservationDataStd[0].GetDeltaMFCCs()[11] << ',' //90
+				<< wholeTrackobservationDataMax[0].GetDeltaMFCCs()[11] << ',' //91
+				<< wholeTrackobservationDataMin[0].GetDeltaMFCCs()[11] << ',' //92
+				<< wholeTrackobservationDataAverage[0].GetSpectralContrast()[0] << ','//61
+				<< wholeTrackobservationDataStd[0].GetSpectralContrast()[0] << ',' //62
+				<< wholeTrackobservationDataMax[0].GetSpectralContrast()[0] << ',' //47
+				<< wholeTrackobservationDataMin[0].GetSpectralContrast()[0] << ',' //48
+				<< wholeTrackobservationDataAverage[0].GetSpectralContrast()[1] << ',' //49
+				<< wholeTrackobservationDataStd[0].GetSpectralContrast()[1] << ',' //50
+				<< wholeTrackobservationDataMax[0].GetSpectralContrast()[1] << ',' //51
+				<< wholeTrackobservationDataMin[0].GetSpectralContrast()[1] << ',' //52
+				<< wholeTrackobservationDataAverage[0].GetSpectralContrast()[2] << ',' //53
+				<< wholeTrackobservationDataStd[0].GetSpectralContrast()[2] << ',' //54
+				<< wholeTrackobservationDataMax[0].GetSpectralContrast()[2] << ',' //55
+				<< wholeTrackobservationDataMin[0].GetSpectralContrast()[2] << ',' //56
+				<< wholeTrackobservationDataAverage[0].GetSpectralContrast()[3] << ',' //57
+				<< wholeTrackobservationDataStd[0].GetSpectralContrast()[3] << ',' //58
+				<< wholeTrackobservationDataMax[0].GetSpectralContrast()[3] << ',' //59
+				<< wholeTrackobservationDataMin[0].GetSpectralContrast()[3] << ',' //60
+				<< wholeTrackobservationDataAverage[0].GetSpectralContrast()[4] << ',' //61
+				<< wholeTrackobservationDataStd[0].GetSpectralContrast()[4] << ',' //62
+				<< wholeTrackobservationDataMax[0].GetSpectralContrast()[4] << ',' //63
+				<< wholeTrackobservationDataMin[0].GetSpectralContrast()[4] << ',' //64
+				<< wholeTrackobservationDataAverage[0].GetSpectralContrast()[5] << ',' //65
+				<< wholeTrackobservationDataStd[0].GetSpectralContrast()[5] << ',' //66
+				<< wholeTrackobservationDataMax[0].GetSpectralContrast()[5] << ',' //67
+				<< wholeTrackobservationDataMin[0].GetSpectralContrast()[5] << ',' //68
+				<< wholeTrackobservationDataAverage[0].GetSpectralValley()[0] << ','//61
+				<< wholeTrackobservationDataStd[0].GetSpectralValley()[0] << ',' //62
+				<< wholeTrackobservationDataMax[0].GetSpectralValley()[0] << ',' //47
+				<< wholeTrackobservationDataMin[0].GetSpectralValley()[0] << ',' //48
+				<< wholeTrackobservationDataAverage[0].GetSpectralValley()[1] << ',' //49
+				<< wholeTrackobservationDataStd[0].GetSpectralValley()[1] << ',' //50
+				<< wholeTrackobservationDataMax[0].GetSpectralValley()[1] << ',' //51
+				<< wholeTrackobservationDataMin[0].GetSpectralValley()[1] << ',' //52
+				<< wholeTrackobservationDataAverage[0].GetSpectralValley()[2] << ',' //53
+				<< wholeTrackobservationDataStd[0].GetSpectralValley()[2] << ',' //54
+				<< wholeTrackobservationDataMax[0].GetSpectralValley()[2] << ',' //55
+				<< wholeTrackobservationDataMin[0].GetSpectralValley()[2] << ',' //56
+				<< wholeTrackobservationDataAverage[0].GetSpectralValley()[3] << ',' //57
+				<< wholeTrackobservationDataStd[0].GetSpectralValley()[3] << ',' //58
+				<< wholeTrackobservationDataMax[0].GetSpectralValley()[3] << ',' //59
+				<< wholeTrackobservationDataMin[0].GetSpectralValley()[3] << ',' //60
+				<< wholeTrackobservationDataAverage[0].GetSpectralValley()[4] << ',' //61
+				<< wholeTrackobservationDataStd[0].GetSpectralValley()[4] << ',' //62
+				<< wholeTrackobservationDataMax[0].GetSpectralValley()[4] << ',' //63
+				<< wholeTrackobservationDataMin[0].GetSpectralValley()[4] << ',' //64
+				<< wholeTrackobservationDataAverage[0].GetSpectralValley()[5] << ',' //65
+				<< wholeTrackobservationDataStd[0].GetSpectralValley()[5] << ',' //66
+				<< wholeTrackobservationDataMax[0].GetSpectralValley()[5] << ',' //67
+				<< wholeTrackobservationDataMin[0].GetSpectralValley()[5] << ',' //68
+				<< wholeTrackobservationDataAverage[0].GetLowEnergy() << ',' //93
+				<< wholeTrackobservationDataAverage[0].GetPeriodicity() << ',' //94
+				<< wholeTrackobservationDataAverage[0].GetEntropyOfEnergy() << ',' //95
 				<< label << ',' ;
 			foutWholeTrack << "\n";
 		}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Source/XMLWrite.cpp	Fri Feb 05 19:21:42 2016 +0000
@@ -0,0 +1,466 @@
+/*
+  ==============================================================================
+
+    XMLWrite.cpp
+    Created: 1 Feb 2016 7:34:55pm
+    Author:  David
+
+  ==============================================================================
+*/
+
+#include "XMLWrite.h"
+#include <ctime>
+#include <fstream>
+
+XMLWrite::XMLWrite(){};
+XMLWrite::~XMLWrite(){};
+
+static int count = 1;
+
+void XMLWrite::Write(std::string filename, FeatureData data)
+{
+	std::string wholetrackfilename = filename + std::to_string(data.GetPoolingTimeFactor()) + "Sec.xml";
+	std::ofstream foutWholeTrack(wholetrackfilename, std::ios::app | std::ios::out);
+
+	juce::XmlElement featureData("FeatureData" + std::to_string(count));
+
+	// create an inner element..
+	juce::XmlElement* dataXML = new juce::XmlElement("Data");
+
+	std::string label = data.GetLabel();
+	//std::string rmsavgdata;
+	//for (size_t j = 0; j < data.GetPooldedObservationDataAverage().size(); j++)
+	//{
+	//	rmsavgdata = rmsavgdata + ", " + std::to_string(data.GetPooldedObservationDataAverage()[j].GetRMS());
+	//}
+
+	//Whole Data
+
+	juce::XmlElement* rms = new juce::XmlElement("rms");
+	rms->setAttribute("FeatureType", "RMS");
+	rms->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetRMS());
+	rms->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetRMS());
+	rms->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetRMS());
+	rms->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetRMS());
+	dataXML->addChildElement(rms);
+
+	juce::XmlElement* peak = new juce::XmlElement("peak");
+	peak->setAttribute("FeatureType", "Peak");
+	peak->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetPeak());
+	peak->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetPeak());
+	peak->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetPeak());
+	peak->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetPeak());
+	dataXML->addChildElement(peak);
+
+	juce::XmlElement* crestFactor = new juce::XmlElement("crestFactor");
+	crestFactor->setAttribute("FeatureType", "CrestFactor");
+	crestFactor->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetCrestFactor());
+	crestFactor->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetCrestFactor());
+	crestFactor->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetCrestFactor());
+	crestFactor->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetCrestFactor());
+	dataXML->addChildElement(crestFactor);
+
+	juce::XmlElement* zcr = new juce::XmlElement("zcr");
+	zcr->setAttribute("FeatureType", "ZCR");
+	zcr->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetZCR());
+	zcr->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetZCR());
+	zcr->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetZCR());
+	zcr->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetZCR());
+	dataXML->addChildElement(zcr);
+
+	juce::XmlElement* centroid = new juce::XmlElement("spectralCentroid");
+	centroid->setAttribute("FeatureType", "SpectralCentroid");
+	centroid->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetCentroid());
+	centroid->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetCentroid());
+	centroid->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetCentroid());
+	centroid->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetCentroid());
+	dataXML->addChildElement(centroid);
+
+	juce::XmlElement* spread = new juce::XmlElement("spectralSpread");
+	spread->setAttribute("FeatureType", "SpectralSpread");
+	spread->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpread());
+	spread->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpread());
+	spread->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpread());
+	spread->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpread());
+	dataXML->addChildElement(spread);
+
+	juce::XmlElement* skewness = new juce::XmlElement("spectralSkewness");
+	skewness->setAttribute("FeatureType", "SpectralSkewness");
+	skewness->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSkewness());
+	skewness->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSkewness());
+	skewness->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSkewness());
+	skewness->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSkewness());
+	dataXML->addChildElement(skewness);
+
+	juce::XmlElement* kurtosis = new juce::XmlElement("spectralKurtosis");
+	kurtosis->setAttribute("FeatureType", "SpectralKurtosis");
+	kurtosis->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetKurtosis());
+	kurtosis->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetKurtosis());
+	kurtosis->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetKurtosis());
+	kurtosis->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetKurtosis());
+	dataXML->addChildElement(kurtosis);
+
+	juce::XmlElement* brightness = new juce::XmlElement("spectralBrightness");
+	brightness->setAttribute("FeatureType", "SpectralBrightness");
+	brightness->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetBrightness());
+	brightness->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetBrightness());
+	brightness->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetBrightness());
+	brightness->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetBrightness());
+	dataXML->addChildElement(brightness);
+
+	juce::XmlElement* flatness = new juce::XmlElement("Flatness");
+	flatness->setAttribute("FeatureType", "Flatness");
+	flatness->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetFlatness());
+	flatness->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetFlatness());
+	flatness->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetFlatness());
+	flatness->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetFlatness());
+	dataXML->addChildElement(flatness);
+
+	juce::XmlElement* rolloff85 = new juce::XmlElement("rolloff85");
+	rolloff85->setAttribute("FeatureType", "rolloff85");
+	rolloff85->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetRollOff85());
+	rolloff85->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetRollOff85());
+	rolloff85->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetRollOff85());
+	rolloff85->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetRollOff85());
+	dataXML->addChildElement(rolloff85);
+
+	juce::XmlElement* rolloff95 = new juce::XmlElement("rolloff95");
+	rolloff95->setAttribute("FeatureType", "rolloff95");
+	rolloff95->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetRollOff95());
+	rolloff95->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetRollOff95());
+	rolloff95->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetRollOff95());
+	rolloff95->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetRollOff95());
+	dataXML->addChildElement(rolloff95);
+
+	juce::XmlElement* spectralEntropy = new juce::XmlElement("spectralEntropy");
+	spectralEntropy->setAttribute("FeatureType", "spectralEntropy");
+	spectralEntropy->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralEntropy());
+	spectralEntropy->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralEntropy());
+	spectralEntropy->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralEntropy());
+	spectralEntropy->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralEntropy());
+	dataXML->addChildElement(spectralEntropy);
+
+	juce::XmlElement* spectralCrestFactor = new juce::XmlElement("spectralCrestFactor");
+	spectralCrestFactor->setAttribute("FeatureType", "spectralCrestFactor");
+	spectralCrestFactor->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralCF());
+	spectralCrestFactor->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralCF());
+	spectralCrestFactor->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralCF());
+	spectralCrestFactor->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralCF());
+	dataXML->addChildElement(spectralCrestFactor);
+
+	juce::XmlElement* spectralFlux = new juce::XmlElement("spectralFlux");
+	spectralFlux->setAttribute("FeatureType", "spectralFlux");
+	spectralFlux->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralFlux());
+	spectralFlux->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralFlux());
+	spectralFlux->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralFlux());
+	spectralFlux->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralFlux());
+	dataXML->addChildElement(spectralFlux);
+
+	juce::XmlElement* MFCCs = new juce::XmlElement("MFCCs");
+	MFCCs->setAttribute("FeatureType", "MFCCs");
+
+		juce::XmlElement* MFCC1 = new juce::XmlElement("MFCC1");
+		MFCC1->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[0]);
+		MFCC1->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[0]);
+		MFCC1->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[0]);
+		MFCC1->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[0]);
+		juce::XmlElement* dMFCC1 = new juce::XmlElement("deltaMFCC1");
+		dMFCC1->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[0]);
+		dMFCC1->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[0]);
+		dMFCC1->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[0]);
+		dMFCC1->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[0]);
+
+		juce::XmlElement* MFCC2 = new juce::XmlElement("MFCC2");
+		MFCC2->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[1]);
+		MFCC2->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[1]);
+		MFCC2->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[1]);
+		MFCC2->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[1]);
+		juce::XmlElement* dMFCC2 = new juce::XmlElement("deltaMFCC2");
+		dMFCC2->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[1]);
+		dMFCC2->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[1]);
+		dMFCC2->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[1]);
+		dMFCC2->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[1]);
+
+		juce::XmlElement* MFCC3 = new juce::XmlElement("MFCC3");
+		MFCC3->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[2]);
+		MFCC3->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[2]);
+		MFCC3->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[2]);
+		MFCC3->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[2]);
+		juce::XmlElement* dMFCC3 = new juce::XmlElement("deltaMFCC3");
+		dMFCC3->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[2]);
+		dMFCC3->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[2]);
+		dMFCC3->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[2]);
+		dMFCC3->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[2]);
+
+		juce::XmlElement* MFCC4 = new juce::XmlElement("MFCC4");
+		MFCC4->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[3]);
+		MFCC4->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[3]);
+		MFCC4->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[3]);
+		MFCC4->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[3]);
+		juce::XmlElement* dMFCC4 = new juce::XmlElement("deltaMFCC4");
+		dMFCC4->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[3]);
+		dMFCC4->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[3]);
+		dMFCC4->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[3]);
+		dMFCC4->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[3]);
+
+		juce::XmlElement* MFCC5 = new juce::XmlElement("MFCC5");
+		MFCC5->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[4]);
+		MFCC5->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[4]);
+		MFCC5->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[4]);
+		MFCC5->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[4]);
+		juce::XmlElement* dMFCC5 = new juce::XmlElement("deltaMFCC5");
+		dMFCC5->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[4]);
+		dMFCC5->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[4]);
+		dMFCC5->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[4]);
+		dMFCC5->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[4]);
+
+		juce::XmlElement* MFCC6 = new juce::XmlElement("MFCC6");
+		MFCC6->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[5]);
+		MFCC6->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[5]);
+		MFCC6->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[5]);
+		MFCC6->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[5]);
+		juce::XmlElement* dMFCC6 = new juce::XmlElement("deltaMFCC6");
+		dMFCC6->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[5]);
+		dMFCC6->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[5]);
+		dMFCC6->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[5]);
+		dMFCC6->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[5]);
+
+		juce::XmlElement* MFCC7 = new juce::XmlElement("MFCC7");
+		MFCC7->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[6]);
+		MFCC7->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[6]);
+		MFCC7->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[6]);
+		MFCC7->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[6]);
+		juce::XmlElement* dMFCC7 = new juce::XmlElement("deltaMFCC7");
+		dMFCC7->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[6]);
+		dMFCC7->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[6]);
+		dMFCC7->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[6]);
+		dMFCC7->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[6]);
+
+		juce::XmlElement* MFCC8 = new juce::XmlElement("MFCC8");
+		MFCC8->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[7]);
+		MFCC8->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[7]);
+		MFCC8->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[7]);
+		MFCC8->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[7]);
+		juce::XmlElement* dMFCC8 = new juce::XmlElement("deltaMFCC8");
+		dMFCC8->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[7]);
+		dMFCC8->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[7]);
+		dMFCC8->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[7]);
+		dMFCC8->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[7]);
+
+		juce::XmlElement* MFCC9 = new juce::XmlElement("MFCC9");
+		MFCC9->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[8]);
+		MFCC9->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[8]);
+		MFCC9->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[8]);
+		MFCC9->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[8]);
+		juce::XmlElement* dMFCC9 = new juce::XmlElement("deltaMFCC9");
+		dMFCC9->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[8]);
+		dMFCC9->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[8]);
+		dMFCC9->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[8]);
+		dMFCC9->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[8]);
+
+		juce::XmlElement* MFCC10 = new juce::XmlElement("MFCC10");
+		MFCC10->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[9]);
+		MFCC10->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[9]);
+		MFCC10->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[9]);
+		MFCC10->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[9]);
+		juce::XmlElement* dMFCC10 = new juce::XmlElement("deltaMFCC10");
+		dMFCC10->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[9]);
+		dMFCC10->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[9]);
+		dMFCC10->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[9]);
+		dMFCC10->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[9]);
+
+		juce::XmlElement* MFCC11 = new juce::XmlElement("MFCC11");
+		MFCC11->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[10]);
+		MFCC11->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[10]);
+		MFCC11->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[10]);
+		MFCC11->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[10]);
+		juce::XmlElement* dMFCC11 = new juce::XmlElement("deltaMFCC11");
+		dMFCC11->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[10]);
+		dMFCC11->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[10]);
+		dMFCC11->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[10]);
+		dMFCC11->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[10]);
+
+		juce::XmlElement* MFCC12 = new juce::XmlElement("MFCC12");
+		MFCC12->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[11]);
+		MFCC12->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[11]);
+		MFCC12->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[11]);
+		MFCC12->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[11]);
+		juce::XmlElement* dMFCC12 = new juce::XmlElement("deltaMFCC12");
+		dMFCC12->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[11]);
+		dMFCC12->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[11]);
+		dMFCC12->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[11]);
+		dMFCC12->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[11]);
+
+
+	MFCCs->addChildElement(MFCC1);
+	MFCCs->addChildElement(dMFCC1);
+	MFCCs->addChildElement(MFCC2);
+	MFCCs->addChildElement(dMFCC2);
+	MFCCs->addChildElement(MFCC3);
+	MFCCs->addChildElement(dMFCC3);
+	MFCCs->addChildElement(MFCC4);
+	MFCCs->addChildElement(dMFCC4);
+	MFCCs->addChildElement(MFCC5);
+	MFCCs->addChildElement(dMFCC5);
+	MFCCs->addChildElement(MFCC6);
+	MFCCs->addChildElement(dMFCC6);
+	MFCCs->addChildElement(MFCC7);
+	MFCCs->addChildElement(dMFCC7);
+	MFCCs->addChildElement(MFCC8);
+	MFCCs->addChildElement(dMFCC8);
+	MFCCs->addChildElement(MFCC9);
+	MFCCs->addChildElement(dMFCC9);
+	MFCCs->addChildElement(MFCC10);
+	MFCCs->addChildElement(dMFCC10);
+	MFCCs->addChildElement(MFCC11);
+	MFCCs->addChildElement(dMFCC11);
+	MFCCs->addChildElement(MFCC12);
+	MFCCs->addChildElement(dMFCC12);
+	dataXML->addChildElement(MFCCs);
+
+	juce::XmlElement* spectralContrast = new juce::XmlElement("spectralContrast");
+	spectralContrast->setAttribute("FeatureType", "spectralContrast");
+
+	juce::XmlElement* sc1 = new juce::XmlElement("SC1");
+	sc1->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralContrast()[0]);
+	sc1->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[0]);
+	sc1->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralContrast()[0]);
+	sc1->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[0]);
+
+	juce::XmlElement* sc2 = new juce::XmlElement("SC2");
+	sc2->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralContrast()[1]);
+	sc2->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[1]);
+	sc2->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralContrast()[1]);
+	sc2->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[1]);
+
+	juce::XmlElement* sc3 = new juce::XmlElement("SC3");
+	sc3->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralContrast()[2]);
+	sc3->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[2]);
+	sc3->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralContrast()[2]);
+	sc3->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[2]);
+
+	juce::XmlElement* sc4 = new juce::XmlElement("SC4");
+	sc4->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralContrast()[3]);
+	sc4->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[3]);
+	sc4->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralContrast()[3]);
+	sc4->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[3]);
+
+	juce::XmlElement* sc5 = new juce::XmlElement("SC5");
+	sc5->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralContrast()[4]);
+	sc5->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[4]);
+	sc5->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralContrast()[4]);
+	sc5->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[4]);
+
+	juce::XmlElement* sc6 = new juce::XmlElement("SC6");
+	sc6->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralContrast()[5]);
+	sc6->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[5]);
+	sc6->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralContrast()[5]);
+	sc6->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[5]);
+
+	spectralContrast->addChildElement(sc1);
+	spectralContrast->addChildElement(sc2);
+	spectralContrast->addChildElement(sc3);
+	spectralContrast->addChildElement(sc4);
+	spectralContrast->addChildElement(sc5);
+	spectralContrast->addChildElement(sc6);
+	dataXML->addChildElement(spectralContrast);
+
+	juce::XmlElement* spectralValley = new juce::XmlElement("spectralValley");
+	spectralValley->setAttribute("FeatureType", "spectralValley");
+
+	juce::XmlElement* sv1 = new juce::XmlElement("SV1");
+	sv1->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralValley()[0]);
+	sv1->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[0]);
+	sv1->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralValley()[0]);
+	sv1->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[0]);
+
+	juce::XmlElement* sv2 = new juce::XmlElement("SV2");
+	sv2->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralValley()[1]);
+	sv2->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[1]);
+	sv2->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralValley()[1]);
+	sv2->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[1]);
+
+	juce::XmlElement* sv3 = new juce::XmlElement("SV3");
+	sv3->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralValley()[2]);
+	sv3->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[2]);
+	sv3->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralValley()[2]);
+	sv3->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[2]);
+
+	juce::XmlElement* sv4 = new juce::XmlElement("SV4");
+	sv4->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralValley()[3]);
+	sv4->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[3]);
+	sv4->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralValley()[3]);
+	sv4->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[3]);
+
+	juce::XmlElement* sv5 = new juce::XmlElement("SV5");
+	sv5->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralValley()[4]);
+	sv5->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[4]);
+	sv5->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralValley()[4]);
+	sv5->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[4]);
+
+	juce::XmlElement* sv6 = new juce::XmlElement("SV6");
+	sv6->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralValley()[5]);
+	sv6->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[5]);
+	sv6->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralValley()[5]);
+	sv6->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[5]);
+
+	spectralValley->addChildElement(sv1);
+	spectralValley->addChildElement(sv2);
+	spectralValley->addChildElement(sv3);
+	spectralValley->addChildElement(sv4);
+	spectralValley->addChildElement(sv5);
+	spectralValley->addChildElement(sv6);
+	dataXML->addChildElement(spectralValley);
+
+	juce::XmlElement* lowEnergy = new juce::XmlElement("lowEnergy");
+	lowEnergy->setAttribute("FeatureType", "lowEnergy");
+	lowEnergy->setAttribute("Value", data.GetPooldedObservationDataAverage()[0].GetLowEnergy());
+	dataXML->addChildElement(lowEnergy);
+
+	juce::XmlElement* periodicity = new juce::XmlElement("periodicity");
+	periodicity->setAttribute("FeatureType", "periodicity");
+	periodicity->setAttribute("Value", data.GetPooldedObservationDataAverage()[0].GetPeriodicity());
+	dataXML->addChildElement(periodicity);
+
+	juce::XmlElement* entropyOfEnergy = new juce::XmlElement("entropyOfEnergy");
+	entropyOfEnergy->setAttribute("FeatureType", "entropyOfEnergy");
+	entropyOfEnergy->setAttribute("Value", data.GetPooldedObservationDataAverage()[0].GetEntropyOfEnergy());
+	dataXML->addChildElement(entropyOfEnergy);
+
+
+	dataXML->setAttribute("Label", label);
+	featureData.addChildElement(dataXML);
+
+
+	if (foutWholeTrack.is_open())
+	{
+
+		// now we can turn the whole thing into a text document..
+		juce::String myXmlDoc = featureData.createDocument(juce::String::empty);
+		foutWholeTrack << myXmlDoc.toStdString();
+
+	}
+	else
+	{
+		std::cout << "ERROR: Can't write to .csv.";
+	}
+
+	foutWholeTrack.close();
+
+	std::string dave = "Files written: " + std::to_string(count) + "  Obs Data Size:" + std::to_string(data.GetPooldedObservationDataAverage().size()) + "\n";
+	//	 OutputDebugString(dave.c_str());
+	count++;
+
+}
+
+// Get current date/time, format is YYYY-MM-DD.HH:mm:ss
+const std::string XMLWrite::currentDateTime()
+{
+	time_t     now = time(0);
+	struct tm  tstruct;
+	char       buf[80];
+	tstruct = *localtime(&now);
+	strftime(buf, sizeof(buf), "%Y-%m-%d.%H-%M-%S", &tstruct);
+
+	return buf;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Source/XMLWrite.h	Fri Feb 05 19:21:42 2016 +0000
@@ -0,0 +1,30 @@
+/*
+  ==============================================================================
+
+    XMLWrite.h
+    Created: 1 Feb 2016 7:34:54pm
+    Author:  David
+
+  ==============================================================================
+*/
+
+#ifndef XMLWRITE_H_INCLUDED
+#define XMLWRITE_H_INCLUDED
+
+#include "ObservationData.h"
+#include "FeatureData.h"
+#include "../JuceLibraryCode/modules/juce_core/juce_core.h"
+
+class XMLWrite
+{
+public:
+	XMLWrite();
+	~XMLWrite();
+	void Write(std::string filename, FeatureData data);
+	const std::string currentDateTime();
+};
+
+
+
+
+#endif  // XMLWRITE_H_INCLUDED