annotate Source/XMLWrite.cpp @ 15:585caf503ef5 tip

Tidy up for ROLI
author Geogaddi\David <d.m.ronan@qmul.ac.uk>
date Tue, 17 May 2016 18:50:19 +0100
parents a64055168b9b
children
rev   line source
d@13 1 /*
d@13 2 ==============================================================================
d@13 3
d@13 4 XMLWrite.cpp
d@13 5 Created: 1 Feb 2016 7:34:55pm
d@13 6 Author: David
d@13 7
d@13 8 ==============================================================================
d@13 9 */
d@13 10
d@13 11 #include "XMLWrite.h"
d@13 12 #include <ctime>
d@13 13 #include <fstream>
d@13 14
d@13 15 XMLWrite::XMLWrite(){};
d@13 16 XMLWrite::~XMLWrite(){};
d@13 17
d@13 18 static int count = 1;
d@13 19
d@13 20 void XMLWrite::Write(std::string filename, FeatureData data)
d@13 21 {
d@13 22 std::string wholetrackfilename = filename + std::to_string(data.GetPoolingTimeFactor()) + "Sec.xml";
d@13 23 std::ofstream foutWholeTrack(wholetrackfilename, std::ios::app | std::ios::out);
d@13 24
d@13 25 juce::XmlElement featureData("FeatureData" + std::to_string(count));
d@13 26
d@13 27 // create an inner element..
d@13 28 juce::XmlElement* dataXML = new juce::XmlElement("Data");
d@13 29
d@13 30 std::string label = data.GetLabel();
d@13 31 //std::string rmsavgdata;
d@13 32 //for (size_t j = 0; j < data.GetPooldedObservationDataAverage().size(); j++)
d@13 33 //{
d@13 34 // rmsavgdata = rmsavgdata + ", " + std::to_string(data.GetPooldedObservationDataAverage()[j].GetRMS());
d@13 35 //}
d@13 36
d@13 37 //Whole Data
d@13 38
d@13 39 juce::XmlElement* rms = new juce::XmlElement("rms");
d@13 40 rms->setAttribute("FeatureType", "RMS");
d@13 41 rms->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetRMS());
d@13 42 rms->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetRMS());
d@13 43 rms->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetRMS());
d@13 44 rms->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetRMS());
d@13 45 dataXML->addChildElement(rms);
d@13 46
d@13 47 juce::XmlElement* peak = new juce::XmlElement("peak");
d@13 48 peak->setAttribute("FeatureType", "Peak");
d@13 49 peak->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetPeak());
d@13 50 peak->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetPeak());
d@13 51 peak->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetPeak());
d@13 52 peak->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetPeak());
d@13 53 dataXML->addChildElement(peak);
d@13 54
d@13 55 juce::XmlElement* crestFactor = new juce::XmlElement("crestFactor");
d@13 56 crestFactor->setAttribute("FeatureType", "CrestFactor");
d@13 57 crestFactor->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetCrestFactor());
d@13 58 crestFactor->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetCrestFactor());
d@13 59 crestFactor->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetCrestFactor());
d@13 60 crestFactor->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetCrestFactor());
d@13 61 dataXML->addChildElement(crestFactor);
d@13 62
d@13 63 juce::XmlElement* zcr = new juce::XmlElement("zcr");
d@13 64 zcr->setAttribute("FeatureType", "ZCR");
d@13 65 zcr->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetZCR());
d@13 66 zcr->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetZCR());
d@13 67 zcr->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetZCR());
d@13 68 zcr->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetZCR());
d@13 69 dataXML->addChildElement(zcr);
d@13 70
d@13 71 juce::XmlElement* centroid = new juce::XmlElement("spectralCentroid");
d@13 72 centroid->setAttribute("FeatureType", "SpectralCentroid");
d@13 73 centroid->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetCentroid());
d@13 74 centroid->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetCentroid());
d@13 75 centroid->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetCentroid());
d@13 76 centroid->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetCentroid());
d@13 77 dataXML->addChildElement(centroid);
d@13 78
d@13 79 juce::XmlElement* spread = new juce::XmlElement("spectralSpread");
d@13 80 spread->setAttribute("FeatureType", "SpectralSpread");
d@13 81 spread->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpread());
d@13 82 spread->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpread());
d@13 83 spread->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpread());
d@13 84 spread->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpread());
d@13 85 dataXML->addChildElement(spread);
d@13 86
d@13 87 juce::XmlElement* skewness = new juce::XmlElement("spectralSkewness");
d@13 88 skewness->setAttribute("FeatureType", "SpectralSkewness");
d@13 89 skewness->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSkewness());
d@13 90 skewness->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSkewness());
d@13 91 skewness->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSkewness());
d@13 92 skewness->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSkewness());
d@13 93 dataXML->addChildElement(skewness);
d@13 94
d@13 95 juce::XmlElement* kurtosis = new juce::XmlElement("spectralKurtosis");
d@13 96 kurtosis->setAttribute("FeatureType", "SpectralKurtosis");
d@13 97 kurtosis->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetKurtosis());
d@13 98 kurtosis->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetKurtosis());
d@13 99 kurtosis->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetKurtosis());
d@13 100 kurtosis->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetKurtosis());
d@13 101 dataXML->addChildElement(kurtosis);
d@13 102
d@13 103 juce::XmlElement* brightness = new juce::XmlElement("spectralBrightness");
d@13 104 brightness->setAttribute("FeatureType", "SpectralBrightness");
d@13 105 brightness->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetBrightness());
d@13 106 brightness->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetBrightness());
d@13 107 brightness->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetBrightness());
d@13 108 brightness->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetBrightness());
d@13 109 dataXML->addChildElement(brightness);
d@13 110
d@13 111 juce::XmlElement* flatness = new juce::XmlElement("Flatness");
d@13 112 flatness->setAttribute("FeatureType", "Flatness");
d@13 113 flatness->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetFlatness());
d@13 114 flatness->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetFlatness());
d@13 115 flatness->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetFlatness());
d@13 116 flatness->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetFlatness());
d@13 117 dataXML->addChildElement(flatness);
d@13 118
d@13 119 juce::XmlElement* rolloff85 = new juce::XmlElement("rolloff85");
d@13 120 rolloff85->setAttribute("FeatureType", "rolloff85");
d@13 121 rolloff85->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetRollOff85());
d@13 122 rolloff85->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetRollOff85());
d@13 123 rolloff85->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetRollOff85());
d@13 124 rolloff85->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetRollOff85());
d@13 125 dataXML->addChildElement(rolloff85);
d@13 126
d@13 127 juce::XmlElement* rolloff95 = new juce::XmlElement("rolloff95");
d@13 128 rolloff95->setAttribute("FeatureType", "rolloff95");
d@13 129 rolloff95->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetRollOff95());
d@13 130 rolloff95->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetRollOff95());
d@13 131 rolloff95->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetRollOff95());
d@13 132 rolloff95->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetRollOff95());
d@13 133 dataXML->addChildElement(rolloff95);
d@13 134
d@13 135 juce::XmlElement* spectralEntropy = new juce::XmlElement("spectralEntropy");
d@13 136 spectralEntropy->setAttribute("FeatureType", "spectralEntropy");
d@13 137 spectralEntropy->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralEntropy());
d@13 138 spectralEntropy->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralEntropy());
d@13 139 spectralEntropy->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralEntropy());
d@13 140 spectralEntropy->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralEntropy());
d@13 141 dataXML->addChildElement(spectralEntropy);
d@13 142
d@13 143 juce::XmlElement* spectralCrestFactor = new juce::XmlElement("spectralCrestFactor");
d@13 144 spectralCrestFactor->setAttribute("FeatureType", "spectralCrestFactor");
d@13 145 spectralCrestFactor->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralCF());
d@13 146 spectralCrestFactor->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralCF());
d@13 147 spectralCrestFactor->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralCF());
d@13 148 spectralCrestFactor->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralCF());
d@13 149 dataXML->addChildElement(spectralCrestFactor);
d@13 150
d@13 151 juce::XmlElement* spectralFlux = new juce::XmlElement("spectralFlux");
d@13 152 spectralFlux->setAttribute("FeatureType", "spectralFlux");
d@13 153 spectralFlux->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralFlux());
d@13 154 spectralFlux->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralFlux());
d@13 155 spectralFlux->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralFlux());
d@13 156 spectralFlux->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralFlux());
d@13 157 dataXML->addChildElement(spectralFlux);
d@13 158
d@13 159 juce::XmlElement* MFCCs = new juce::XmlElement("MFCCs");
d@13 160 MFCCs->setAttribute("FeatureType", "MFCCs");
d@13 161
d@13 162 juce::XmlElement* MFCC1 = new juce::XmlElement("MFCC1");
d@13 163 MFCC1->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[0]);
d@13 164 MFCC1->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[0]);
d@13 165 MFCC1->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[0]);
d@13 166 MFCC1->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[0]);
d@13 167 juce::XmlElement* dMFCC1 = new juce::XmlElement("deltaMFCC1");
d@13 168 dMFCC1->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[0]);
d@13 169 dMFCC1->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[0]);
d@13 170 dMFCC1->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[0]);
d@13 171 dMFCC1->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[0]);
d@13 172
d@13 173 juce::XmlElement* MFCC2 = new juce::XmlElement("MFCC2");
d@13 174 MFCC2->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[1]);
d@13 175 MFCC2->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[1]);
d@13 176 MFCC2->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[1]);
d@13 177 MFCC2->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[1]);
d@13 178 juce::XmlElement* dMFCC2 = new juce::XmlElement("deltaMFCC2");
d@13 179 dMFCC2->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[1]);
d@13 180 dMFCC2->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[1]);
d@13 181 dMFCC2->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[1]);
d@13 182 dMFCC2->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[1]);
d@13 183
d@13 184 juce::XmlElement* MFCC3 = new juce::XmlElement("MFCC3");
d@13 185 MFCC3->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[2]);
d@13 186 MFCC3->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[2]);
d@13 187 MFCC3->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[2]);
d@13 188 MFCC3->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[2]);
d@13 189 juce::XmlElement* dMFCC3 = new juce::XmlElement("deltaMFCC3");
d@13 190 dMFCC3->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[2]);
d@13 191 dMFCC3->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[2]);
d@13 192 dMFCC3->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[2]);
d@13 193 dMFCC3->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[2]);
d@13 194
d@13 195 juce::XmlElement* MFCC4 = new juce::XmlElement("MFCC4");
d@13 196 MFCC4->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[3]);
d@13 197 MFCC4->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[3]);
d@13 198 MFCC4->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[3]);
d@13 199 MFCC4->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[3]);
d@13 200 juce::XmlElement* dMFCC4 = new juce::XmlElement("deltaMFCC4");
d@13 201 dMFCC4->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[3]);
d@13 202 dMFCC4->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[3]);
d@13 203 dMFCC4->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[3]);
d@13 204 dMFCC4->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[3]);
d@13 205
d@13 206 juce::XmlElement* MFCC5 = new juce::XmlElement("MFCC5");
d@13 207 MFCC5->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[4]);
d@13 208 MFCC5->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[4]);
d@13 209 MFCC5->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[4]);
d@13 210 MFCC5->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[4]);
d@13 211 juce::XmlElement* dMFCC5 = new juce::XmlElement("deltaMFCC5");
d@13 212 dMFCC5->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[4]);
d@13 213 dMFCC5->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[4]);
d@13 214 dMFCC5->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[4]);
d@13 215 dMFCC5->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[4]);
d@13 216
d@13 217 juce::XmlElement* MFCC6 = new juce::XmlElement("MFCC6");
d@13 218 MFCC6->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[5]);
d@13 219 MFCC6->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[5]);
d@13 220 MFCC6->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[5]);
d@13 221 MFCC6->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[5]);
d@13 222 juce::XmlElement* dMFCC6 = new juce::XmlElement("deltaMFCC6");
d@13 223 dMFCC6->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[5]);
d@13 224 dMFCC6->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[5]);
d@13 225 dMFCC6->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[5]);
d@13 226 dMFCC6->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[5]);
d@13 227
d@13 228 juce::XmlElement* MFCC7 = new juce::XmlElement("MFCC7");
d@13 229 MFCC7->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[6]);
d@13 230 MFCC7->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[6]);
d@13 231 MFCC7->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[6]);
d@13 232 MFCC7->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[6]);
d@13 233 juce::XmlElement* dMFCC7 = new juce::XmlElement("deltaMFCC7");
d@13 234 dMFCC7->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[6]);
d@13 235 dMFCC7->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[6]);
d@13 236 dMFCC7->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[6]);
d@13 237 dMFCC7->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[6]);
d@13 238
d@13 239 juce::XmlElement* MFCC8 = new juce::XmlElement("MFCC8");
d@13 240 MFCC8->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[7]);
d@13 241 MFCC8->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[7]);
d@13 242 MFCC8->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[7]);
d@13 243 MFCC8->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[7]);
d@13 244 juce::XmlElement* dMFCC8 = new juce::XmlElement("deltaMFCC8");
d@13 245 dMFCC8->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[7]);
d@13 246 dMFCC8->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[7]);
d@13 247 dMFCC8->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[7]);
d@13 248 dMFCC8->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[7]);
d@13 249
d@13 250 juce::XmlElement* MFCC9 = new juce::XmlElement("MFCC9");
d@13 251 MFCC9->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[8]);
d@13 252 MFCC9->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[8]);
d@13 253 MFCC9->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[8]);
d@13 254 MFCC9->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[8]);
d@13 255 juce::XmlElement* dMFCC9 = new juce::XmlElement("deltaMFCC9");
d@13 256 dMFCC9->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[8]);
d@13 257 dMFCC9->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[8]);
d@13 258 dMFCC9->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[8]);
d@13 259 dMFCC9->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[8]);
d@13 260
d@13 261 juce::XmlElement* MFCC10 = new juce::XmlElement("MFCC10");
d@13 262 MFCC10->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[9]);
d@13 263 MFCC10->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[9]);
d@13 264 MFCC10->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[9]);
d@13 265 MFCC10->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[9]);
d@13 266 juce::XmlElement* dMFCC10 = new juce::XmlElement("deltaMFCC10");
d@13 267 dMFCC10->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[9]);
d@13 268 dMFCC10->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[9]);
d@13 269 dMFCC10->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[9]);
d@13 270 dMFCC10->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[9]);
d@13 271
d@13 272 juce::XmlElement* MFCC11 = new juce::XmlElement("MFCC11");
d@13 273 MFCC11->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[10]);
d@13 274 MFCC11->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[10]);
d@13 275 MFCC11->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[10]);
d@13 276 MFCC11->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[10]);
d@13 277 juce::XmlElement* dMFCC11 = new juce::XmlElement("deltaMFCC11");
d@13 278 dMFCC11->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[10]);
d@13 279 dMFCC11->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[10]);
d@13 280 dMFCC11->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[10]);
d@13 281 dMFCC11->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[10]);
d@13 282
d@13 283 juce::XmlElement* MFCC12 = new juce::XmlElement("MFCC12");
d@13 284 MFCC12->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[11]);
d@13 285 MFCC12->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[11]);
d@13 286 MFCC12->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[11]);
d@13 287 MFCC12->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[11]);
d@13 288 juce::XmlElement* dMFCC12 = new juce::XmlElement("deltaMFCC12");
d@13 289 dMFCC12->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[11]);
d@13 290 dMFCC12->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[11]);
d@13 291 dMFCC12->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[11]);
d@13 292 dMFCC12->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[11]);
d@13 293
d@13 294
d@13 295 MFCCs->addChildElement(MFCC1);
d@13 296 MFCCs->addChildElement(dMFCC1);
d@13 297 MFCCs->addChildElement(MFCC2);
d@13 298 MFCCs->addChildElement(dMFCC2);
d@13 299 MFCCs->addChildElement(MFCC3);
d@13 300 MFCCs->addChildElement(dMFCC3);
d@13 301 MFCCs->addChildElement(MFCC4);
d@13 302 MFCCs->addChildElement(dMFCC4);
d@13 303 MFCCs->addChildElement(MFCC5);
d@13 304 MFCCs->addChildElement(dMFCC5);
d@13 305 MFCCs->addChildElement(MFCC6);
d@13 306 MFCCs->addChildElement(dMFCC6);
d@13 307 MFCCs->addChildElement(MFCC7);
d@13 308 MFCCs->addChildElement(dMFCC7);
d@13 309 MFCCs->addChildElement(MFCC8);
d@13 310 MFCCs->addChildElement(dMFCC8);
d@13 311 MFCCs->addChildElement(MFCC9);
d@13 312 MFCCs->addChildElement(dMFCC9);
d@13 313 MFCCs->addChildElement(MFCC10);
d@13 314 MFCCs->addChildElement(dMFCC10);
d@13 315 MFCCs->addChildElement(MFCC11);
d@13 316 MFCCs->addChildElement(dMFCC11);
d@13 317 MFCCs->addChildElement(MFCC12);
d@13 318 MFCCs->addChildElement(dMFCC12);
d@13 319 dataXML->addChildElement(MFCCs);
d@13 320
d@13 321 juce::XmlElement* spectralContrast = new juce::XmlElement("spectralContrast");
d@13 322 spectralContrast->setAttribute("FeatureType", "spectralContrast");
d@13 323
d@13 324 juce::XmlElement* sc1 = new juce::XmlElement("SC1");
d@13 325 sc1->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralContrast()[0]);
d@13 326 sc1->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[0]);
d@13 327 sc1->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralContrast()[0]);
d@13 328 sc1->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[0]);
d@13 329
d@13 330 juce::XmlElement* sc2 = new juce::XmlElement("SC2");
d@13 331 sc2->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralContrast()[1]);
d@13 332 sc2->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[1]);
d@13 333 sc2->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralContrast()[1]);
d@13 334 sc2->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[1]);
d@13 335
d@13 336 juce::XmlElement* sc3 = new juce::XmlElement("SC3");
d@13 337 sc3->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralContrast()[2]);
d@13 338 sc3->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[2]);
d@13 339 sc3->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralContrast()[2]);
d@13 340 sc3->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[2]);
d@13 341
d@13 342 juce::XmlElement* sc4 = new juce::XmlElement("SC4");
d@13 343 sc4->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralContrast()[3]);
d@13 344 sc4->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[3]);
d@13 345 sc4->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralContrast()[3]);
d@13 346 sc4->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[3]);
d@13 347
d@13 348 juce::XmlElement* sc5 = new juce::XmlElement("SC5");
d@13 349 sc5->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralContrast()[4]);
d@13 350 sc5->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[4]);
d@13 351 sc5->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralContrast()[4]);
d@13 352 sc5->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[4]);
d@13 353
d@13 354 juce::XmlElement* sc6 = new juce::XmlElement("SC6");
d@13 355 sc6->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralContrast()[5]);
d@13 356 sc6->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[5]);
d@13 357 sc6->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralContrast()[5]);
d@13 358 sc6->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[5]);
d@13 359
d@13 360 spectralContrast->addChildElement(sc1);
d@13 361 spectralContrast->addChildElement(sc2);
d@13 362 spectralContrast->addChildElement(sc3);
d@13 363 spectralContrast->addChildElement(sc4);
d@13 364 spectralContrast->addChildElement(sc5);
d@13 365 spectralContrast->addChildElement(sc6);
d@13 366 dataXML->addChildElement(spectralContrast);
d@13 367
d@13 368 juce::XmlElement* spectralValley = new juce::XmlElement("spectralValley");
d@13 369 spectralValley->setAttribute("FeatureType", "spectralValley");
d@13 370
d@13 371 juce::XmlElement* sv1 = new juce::XmlElement("SV1");
d@13 372 sv1->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralValley()[0]);
d@13 373 sv1->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[0]);
d@13 374 sv1->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralValley()[0]);
d@13 375 sv1->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[0]);
d@13 376
d@13 377 juce::XmlElement* sv2 = new juce::XmlElement("SV2");
d@13 378 sv2->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralValley()[1]);
d@13 379 sv2->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[1]);
d@13 380 sv2->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralValley()[1]);
d@13 381 sv2->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[1]);
d@13 382
d@13 383 juce::XmlElement* sv3 = new juce::XmlElement("SV3");
d@13 384 sv3->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralValley()[2]);
d@13 385 sv3->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[2]);
d@13 386 sv3->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralValley()[2]);
d@13 387 sv3->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[2]);
d@13 388
d@13 389 juce::XmlElement* sv4 = new juce::XmlElement("SV4");
d@13 390 sv4->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralValley()[3]);
d@13 391 sv4->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[3]);
d@13 392 sv4->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralValley()[3]);
d@13 393 sv4->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[3]);
d@13 394
d@13 395 juce::XmlElement* sv5 = new juce::XmlElement("SV5");
d@13 396 sv5->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralValley()[4]);
d@13 397 sv5->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[4]);
d@13 398 sv5->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralValley()[4]);
d@13 399 sv5->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[4]);
d@13 400
d@13 401 juce::XmlElement* sv6 = new juce::XmlElement("SV6");
d@13 402 sv6->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralValley()[5]);
d@13 403 sv6->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[5]);
d@13 404 sv6->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralValley()[5]);
d@13 405 sv6->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[5]);
d@13 406
d@13 407 spectralValley->addChildElement(sv1);
d@13 408 spectralValley->addChildElement(sv2);
d@13 409 spectralValley->addChildElement(sv3);
d@13 410 spectralValley->addChildElement(sv4);
d@13 411 spectralValley->addChildElement(sv5);
d@13 412 spectralValley->addChildElement(sv6);
d@13 413 dataXML->addChildElement(spectralValley);
d@13 414
d@13 415 juce::XmlElement* lowEnergy = new juce::XmlElement("lowEnergy");
d@13 416 lowEnergy->setAttribute("FeatureType", "lowEnergy");
d@13 417 lowEnergy->setAttribute("Value", data.GetPooldedObservationDataAverage()[0].GetLowEnergy());
d@13 418 dataXML->addChildElement(lowEnergy);
d@13 419
d@13 420 juce::XmlElement* periodicity = new juce::XmlElement("periodicity");
d@13 421 periodicity->setAttribute("FeatureType", "periodicity");
d@13 422 periodicity->setAttribute("Value", data.GetPooldedObservationDataAverage()[0].GetPeriodicity());
d@13 423 dataXML->addChildElement(periodicity);
d@13 424
d@13 425 juce::XmlElement* entropyOfEnergy = new juce::XmlElement("entropyOfEnergy");
d@13 426 entropyOfEnergy->setAttribute("FeatureType", "entropyOfEnergy");
d@13 427 entropyOfEnergy->setAttribute("Value", data.GetPooldedObservationDataAverage()[0].GetEntropyOfEnergy());
d@13 428 dataXML->addChildElement(entropyOfEnergy);
d@13 429
d@13 430
d@13 431 dataXML->setAttribute("Label", label);
d@13 432 featureData.addChildElement(dataXML);
d@13 433
d@13 434
d@13 435 if (foutWholeTrack.is_open())
d@13 436 {
d@13 437
d@13 438 // now we can turn the whole thing into a text document..
d@13 439 juce::String myXmlDoc = featureData.createDocument(juce::String::empty);
d@13 440 foutWholeTrack << myXmlDoc.toStdString();
d@13 441
d@13 442 }
d@13 443 else
d@13 444 {
d@13 445 std::cout << "ERROR: Can't write to .csv.";
d@13 446 }
d@13 447
d@13 448 foutWholeTrack.close();
d@13 449
d@13 450 std::string dave = "Files written: " + std::to_string(count) + " Obs Data Size:" + std::to_string(data.GetPooldedObservationDataAverage().size()) + "\n";
d@13 451 // OutputDebugString(dave.c_str());
d@13 452 count++;
d@13 453
d@13 454 }
d@13 455
d@13 456 // Get current date/time, format is YYYY-MM-DD.HH:mm:ss
d@13 457 const std::string XMLWrite::currentDateTime()
d@13 458 {
d@13 459 time_t now = time(0);
d@13 460 struct tm tstruct;
d@13 461 char buf[80];
d@13 462 tstruct = *localtime(&now);
d@13 463 strftime(buf, sizeof(buf), "%Y-%m-%d.%H-%M-%S", &tstruct);
d@13 464
d@13 465 return buf;
d@13 466 }