d@13: /* d@13: ============================================================================== d@13: d@13: XMLWrite.cpp d@13: Created: 1 Feb 2016 7:34:55pm d@13: Author: David d@13: d@13: ============================================================================== d@13: */ d@13: d@13: #include "XMLWrite.h" d@13: #include d@13: #include d@13: d@13: XMLWrite::XMLWrite(){}; d@13: XMLWrite::~XMLWrite(){}; d@13: d@13: static int count = 1; d@13: d@13: void XMLWrite::Write(std::string filename, FeatureData data) d@13: { d@13: std::string wholetrackfilename = filename + std::to_string(data.GetPoolingTimeFactor()) + "Sec.xml"; d@13: std::ofstream foutWholeTrack(wholetrackfilename, std::ios::app | std::ios::out); d@13: d@13: juce::XmlElement featureData("FeatureData" + std::to_string(count)); d@13: d@13: // create an inner element.. d@13: juce::XmlElement* dataXML = new juce::XmlElement("Data"); d@13: d@13: std::string label = data.GetLabel(); d@13: //std::string rmsavgdata; d@13: //for (size_t j = 0; j < data.GetPooldedObservationDataAverage().size(); j++) d@13: //{ d@13: // rmsavgdata = rmsavgdata + ", " + std::to_string(data.GetPooldedObservationDataAverage()[j].GetRMS()); d@13: //} d@13: d@13: //Whole Data d@13: d@13: juce::XmlElement* rms = new juce::XmlElement("rms"); d@13: rms->setAttribute("FeatureType", "RMS"); d@13: rms->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetRMS()); d@13: rms->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetRMS()); d@13: rms->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetRMS()); d@13: rms->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetRMS()); d@13: dataXML->addChildElement(rms); d@13: d@13: juce::XmlElement* peak = new juce::XmlElement("peak"); d@13: peak->setAttribute("FeatureType", "Peak"); d@13: peak->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetPeak()); d@13: peak->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetPeak()); d@13: peak->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetPeak()); d@13: peak->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetPeak()); d@13: dataXML->addChildElement(peak); d@13: d@13: juce::XmlElement* crestFactor = new juce::XmlElement("crestFactor"); d@13: crestFactor->setAttribute("FeatureType", "CrestFactor"); d@13: crestFactor->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetCrestFactor()); d@13: crestFactor->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetCrestFactor()); d@13: crestFactor->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetCrestFactor()); d@13: crestFactor->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetCrestFactor()); d@13: dataXML->addChildElement(crestFactor); d@13: d@13: juce::XmlElement* zcr = new juce::XmlElement("zcr"); d@13: zcr->setAttribute("FeatureType", "ZCR"); d@13: zcr->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetZCR()); d@13: zcr->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetZCR()); d@13: zcr->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetZCR()); d@13: zcr->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetZCR()); d@13: dataXML->addChildElement(zcr); d@13: d@13: juce::XmlElement* centroid = new juce::XmlElement("spectralCentroid"); d@13: centroid->setAttribute("FeatureType", "SpectralCentroid"); d@13: centroid->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetCentroid()); d@13: centroid->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetCentroid()); d@13: centroid->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetCentroid()); d@13: centroid->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetCentroid()); d@13: dataXML->addChildElement(centroid); d@13: d@13: juce::XmlElement* spread = new juce::XmlElement("spectralSpread"); d@13: spread->setAttribute("FeatureType", "SpectralSpread"); d@13: spread->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpread()); d@13: spread->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpread()); d@13: spread->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpread()); d@13: spread->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpread()); d@13: dataXML->addChildElement(spread); d@13: d@13: juce::XmlElement* skewness = new juce::XmlElement("spectralSkewness"); d@13: skewness->setAttribute("FeatureType", "SpectralSkewness"); d@13: skewness->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSkewness()); d@13: skewness->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSkewness()); d@13: skewness->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSkewness()); d@13: skewness->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSkewness()); d@13: dataXML->addChildElement(skewness); d@13: d@13: juce::XmlElement* kurtosis = new juce::XmlElement("spectralKurtosis"); d@13: kurtosis->setAttribute("FeatureType", "SpectralKurtosis"); d@13: kurtosis->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetKurtosis()); d@13: kurtosis->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetKurtosis()); d@13: kurtosis->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetKurtosis()); d@13: kurtosis->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetKurtosis()); d@13: dataXML->addChildElement(kurtosis); d@13: d@13: juce::XmlElement* brightness = new juce::XmlElement("spectralBrightness"); d@13: brightness->setAttribute("FeatureType", "SpectralBrightness"); d@13: brightness->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetBrightness()); d@13: brightness->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetBrightness()); d@13: brightness->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetBrightness()); d@13: brightness->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetBrightness()); d@13: dataXML->addChildElement(brightness); d@13: d@13: juce::XmlElement* flatness = new juce::XmlElement("Flatness"); d@13: flatness->setAttribute("FeatureType", "Flatness"); d@13: flatness->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetFlatness()); d@13: flatness->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetFlatness()); d@13: flatness->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetFlatness()); d@13: flatness->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetFlatness()); d@13: dataXML->addChildElement(flatness); d@13: d@13: juce::XmlElement* rolloff85 = new juce::XmlElement("rolloff85"); d@13: rolloff85->setAttribute("FeatureType", "rolloff85"); d@13: rolloff85->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetRollOff85()); d@13: rolloff85->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetRollOff85()); d@13: rolloff85->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetRollOff85()); d@13: rolloff85->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetRollOff85()); d@13: dataXML->addChildElement(rolloff85); d@13: d@13: juce::XmlElement* rolloff95 = new juce::XmlElement("rolloff95"); d@13: rolloff95->setAttribute("FeatureType", "rolloff95"); d@13: rolloff95->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetRollOff95()); d@13: rolloff95->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetRollOff95()); d@13: rolloff95->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetRollOff95()); d@13: rolloff95->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetRollOff95()); d@13: dataXML->addChildElement(rolloff95); d@13: d@13: juce::XmlElement* spectralEntropy = new juce::XmlElement("spectralEntropy"); d@13: spectralEntropy->setAttribute("FeatureType", "spectralEntropy"); d@13: spectralEntropy->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralEntropy()); d@13: spectralEntropy->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralEntropy()); d@13: spectralEntropy->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralEntropy()); d@13: spectralEntropy->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralEntropy()); d@13: dataXML->addChildElement(spectralEntropy); d@13: d@13: juce::XmlElement* spectralCrestFactor = new juce::XmlElement("spectralCrestFactor"); d@13: spectralCrestFactor->setAttribute("FeatureType", "spectralCrestFactor"); d@13: spectralCrestFactor->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralCF()); d@13: spectralCrestFactor->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralCF()); d@13: spectralCrestFactor->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralCF()); d@13: spectralCrestFactor->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralCF()); d@13: dataXML->addChildElement(spectralCrestFactor); d@13: d@13: juce::XmlElement* spectralFlux = new juce::XmlElement("spectralFlux"); d@13: spectralFlux->setAttribute("FeatureType", "spectralFlux"); d@13: spectralFlux->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralFlux()); d@13: spectralFlux->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralFlux()); d@13: spectralFlux->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralFlux()); d@13: spectralFlux->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralFlux()); d@13: dataXML->addChildElement(spectralFlux); d@13: d@13: juce::XmlElement* MFCCs = new juce::XmlElement("MFCCs"); d@13: MFCCs->setAttribute("FeatureType", "MFCCs"); d@13: d@13: juce::XmlElement* MFCC1 = new juce::XmlElement("MFCC1"); d@13: MFCC1->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[0]); d@13: MFCC1->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[0]); d@13: MFCC1->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[0]); d@13: MFCC1->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[0]); d@13: juce::XmlElement* dMFCC1 = new juce::XmlElement("deltaMFCC1"); d@13: dMFCC1->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[0]); d@13: dMFCC1->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[0]); d@13: dMFCC1->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[0]); d@13: dMFCC1->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[0]); d@13: d@13: juce::XmlElement* MFCC2 = new juce::XmlElement("MFCC2"); d@13: MFCC2->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[1]); d@13: MFCC2->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[1]); d@13: MFCC2->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[1]); d@13: MFCC2->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[1]); d@13: juce::XmlElement* dMFCC2 = new juce::XmlElement("deltaMFCC2"); d@13: dMFCC2->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[1]); d@13: dMFCC2->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[1]); d@13: dMFCC2->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[1]); d@13: dMFCC2->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[1]); d@13: d@13: juce::XmlElement* MFCC3 = new juce::XmlElement("MFCC3"); d@13: MFCC3->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[2]); d@13: MFCC3->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[2]); d@13: MFCC3->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[2]); d@13: MFCC3->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[2]); d@13: juce::XmlElement* dMFCC3 = new juce::XmlElement("deltaMFCC3"); d@13: dMFCC3->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[2]); d@13: dMFCC3->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[2]); d@13: dMFCC3->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[2]); d@13: dMFCC3->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[2]); d@13: d@13: juce::XmlElement* MFCC4 = new juce::XmlElement("MFCC4"); d@13: MFCC4->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[3]); d@13: MFCC4->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[3]); d@13: MFCC4->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[3]); d@13: MFCC4->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[3]); d@13: juce::XmlElement* dMFCC4 = new juce::XmlElement("deltaMFCC4"); d@13: dMFCC4->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[3]); d@13: dMFCC4->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[3]); d@13: dMFCC4->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[3]); d@13: dMFCC4->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[3]); d@13: d@13: juce::XmlElement* MFCC5 = new juce::XmlElement("MFCC5"); d@13: MFCC5->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[4]); d@13: MFCC5->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[4]); d@13: MFCC5->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[4]); d@13: MFCC5->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[4]); d@13: juce::XmlElement* dMFCC5 = new juce::XmlElement("deltaMFCC5"); d@13: dMFCC5->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[4]); d@13: dMFCC5->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[4]); d@13: dMFCC5->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[4]); d@13: dMFCC5->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[4]); d@13: d@13: juce::XmlElement* MFCC6 = new juce::XmlElement("MFCC6"); d@13: MFCC6->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[5]); d@13: MFCC6->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[5]); d@13: MFCC6->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[5]); d@13: MFCC6->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[5]); d@13: juce::XmlElement* dMFCC6 = new juce::XmlElement("deltaMFCC6"); d@13: dMFCC6->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[5]); d@13: dMFCC6->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[5]); d@13: dMFCC6->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[5]); d@13: dMFCC6->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[5]); d@13: d@13: juce::XmlElement* MFCC7 = new juce::XmlElement("MFCC7"); d@13: MFCC7->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[6]); d@13: MFCC7->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[6]); d@13: MFCC7->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[6]); d@13: MFCC7->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[6]); d@13: juce::XmlElement* dMFCC7 = new juce::XmlElement("deltaMFCC7"); d@13: dMFCC7->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[6]); d@13: dMFCC7->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[6]); d@13: dMFCC7->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[6]); d@13: dMFCC7->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[6]); d@13: d@13: juce::XmlElement* MFCC8 = new juce::XmlElement("MFCC8"); d@13: MFCC8->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[7]); d@13: MFCC8->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[7]); d@13: MFCC8->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[7]); d@13: MFCC8->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[7]); d@13: juce::XmlElement* dMFCC8 = new juce::XmlElement("deltaMFCC8"); d@13: dMFCC8->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[7]); d@13: dMFCC8->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[7]); d@13: dMFCC8->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[7]); d@13: dMFCC8->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[7]); d@13: d@13: juce::XmlElement* MFCC9 = new juce::XmlElement("MFCC9"); d@13: MFCC9->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[8]); d@13: MFCC9->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[8]); d@13: MFCC9->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[8]); d@13: MFCC9->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[8]); d@13: juce::XmlElement* dMFCC9 = new juce::XmlElement("deltaMFCC9"); d@13: dMFCC9->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[8]); d@13: dMFCC9->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[8]); d@13: dMFCC9->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[8]); d@13: dMFCC9->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[8]); d@13: d@13: juce::XmlElement* MFCC10 = new juce::XmlElement("MFCC10"); d@13: MFCC10->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[9]); d@13: MFCC10->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[9]); d@13: MFCC10->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[9]); d@13: MFCC10->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[9]); d@13: juce::XmlElement* dMFCC10 = new juce::XmlElement("deltaMFCC10"); d@13: dMFCC10->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[9]); d@13: dMFCC10->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[9]); d@13: dMFCC10->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[9]); d@13: dMFCC10->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[9]); d@13: d@13: juce::XmlElement* MFCC11 = new juce::XmlElement("MFCC11"); d@13: MFCC11->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[10]); d@13: MFCC11->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[10]); d@13: MFCC11->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[10]); d@13: MFCC11->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[10]); d@13: juce::XmlElement* dMFCC11 = new juce::XmlElement("deltaMFCC11"); d@13: dMFCC11->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[10]); d@13: dMFCC11->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[10]); d@13: dMFCC11->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[10]); d@13: dMFCC11->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[10]); d@13: d@13: juce::XmlElement* MFCC12 = new juce::XmlElement("MFCC12"); d@13: MFCC12->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetMFCCs()[11]); d@13: MFCC12->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetMFCCs()[11]); d@13: MFCC12->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetMFCCs()[11]); d@13: MFCC12->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetMFCCs()[11]); d@13: juce::XmlElement* dMFCC12 = new juce::XmlElement("deltaMFCC12"); d@13: dMFCC12->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetDeltaMFCCs()[11]); d@13: dMFCC12->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[11]); d@13: dMFCC12->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetDeltaMFCCs()[11]); d@13: dMFCC12->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetDeltaMFCCs()[11]); d@13: d@13: d@13: MFCCs->addChildElement(MFCC1); d@13: MFCCs->addChildElement(dMFCC1); d@13: MFCCs->addChildElement(MFCC2); d@13: MFCCs->addChildElement(dMFCC2); d@13: MFCCs->addChildElement(MFCC3); d@13: MFCCs->addChildElement(dMFCC3); d@13: MFCCs->addChildElement(MFCC4); d@13: MFCCs->addChildElement(dMFCC4); d@13: MFCCs->addChildElement(MFCC5); d@13: MFCCs->addChildElement(dMFCC5); d@13: MFCCs->addChildElement(MFCC6); d@13: MFCCs->addChildElement(dMFCC6); d@13: MFCCs->addChildElement(MFCC7); d@13: MFCCs->addChildElement(dMFCC7); d@13: MFCCs->addChildElement(MFCC8); d@13: MFCCs->addChildElement(dMFCC8); d@13: MFCCs->addChildElement(MFCC9); d@13: MFCCs->addChildElement(dMFCC9); d@13: MFCCs->addChildElement(MFCC10); d@13: MFCCs->addChildElement(dMFCC10); d@13: MFCCs->addChildElement(MFCC11); d@13: MFCCs->addChildElement(dMFCC11); d@13: MFCCs->addChildElement(MFCC12); d@13: MFCCs->addChildElement(dMFCC12); d@13: dataXML->addChildElement(MFCCs); d@13: d@13: juce::XmlElement* spectralContrast = new juce::XmlElement("spectralContrast"); d@13: spectralContrast->setAttribute("FeatureType", "spectralContrast"); d@13: d@13: juce::XmlElement* sc1 = new juce::XmlElement("SC1"); d@13: sc1->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralContrast()[0]); d@13: sc1->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[0]); d@13: sc1->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralContrast()[0]); d@13: sc1->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[0]); d@13: d@13: juce::XmlElement* sc2 = new juce::XmlElement("SC2"); d@13: sc2->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralContrast()[1]); d@13: sc2->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[1]); d@13: sc2->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralContrast()[1]); d@13: sc2->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[1]); d@13: d@13: juce::XmlElement* sc3 = new juce::XmlElement("SC3"); d@13: sc3->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralContrast()[2]); d@13: sc3->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[2]); d@13: sc3->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralContrast()[2]); d@13: sc3->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[2]); d@13: d@13: juce::XmlElement* sc4 = new juce::XmlElement("SC4"); d@13: sc4->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralContrast()[3]); d@13: sc4->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[3]); d@13: sc4->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralContrast()[3]); d@13: sc4->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[3]); d@13: d@13: juce::XmlElement* sc5 = new juce::XmlElement("SC5"); d@13: sc5->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralContrast()[4]); d@13: sc5->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[4]); d@13: sc5->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralContrast()[4]); d@13: sc5->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[4]); d@13: d@13: juce::XmlElement* sc6 = new juce::XmlElement("SC6"); d@13: sc6->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralContrast()[5]); d@13: sc6->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[5]); d@13: sc6->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralContrast()[5]); d@13: sc6->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralContrast()[5]); d@13: d@13: spectralContrast->addChildElement(sc1); d@13: spectralContrast->addChildElement(sc2); d@13: spectralContrast->addChildElement(sc3); d@13: spectralContrast->addChildElement(sc4); d@13: spectralContrast->addChildElement(sc5); d@13: spectralContrast->addChildElement(sc6); d@13: dataXML->addChildElement(spectralContrast); d@13: d@13: juce::XmlElement* spectralValley = new juce::XmlElement("spectralValley"); d@13: spectralValley->setAttribute("FeatureType", "spectralValley"); d@13: d@13: juce::XmlElement* sv1 = new juce::XmlElement("SV1"); d@13: sv1->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralValley()[0]); d@13: sv1->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[0]); d@13: sv1->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralValley()[0]); d@13: sv1->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[0]); d@13: d@13: juce::XmlElement* sv2 = new juce::XmlElement("SV2"); d@13: sv2->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralValley()[1]); d@13: sv2->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[1]); d@13: sv2->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralValley()[1]); d@13: sv2->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[1]); d@13: d@13: juce::XmlElement* sv3 = new juce::XmlElement("SV3"); d@13: sv3->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralValley()[2]); d@13: sv3->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[2]); d@13: sv3->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralValley()[2]); d@13: sv3->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[2]); d@13: d@13: juce::XmlElement* sv4 = new juce::XmlElement("SV4"); d@13: sv4->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralValley()[3]); d@13: sv4->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[3]); d@13: sv4->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralValley()[3]); d@13: sv4->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[3]); d@13: d@13: juce::XmlElement* sv5 = new juce::XmlElement("SV5"); d@13: sv5->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralValley()[4]); d@13: sv5->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[4]); d@13: sv5->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralValley()[4]); d@13: sv5->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[4]); d@13: d@13: juce::XmlElement* sv6 = new juce::XmlElement("SV6"); d@13: sv6->setAttribute("Average", data.GetPooldedObservationDataAverage()[0].GetSpectralValley()[5]); d@13: sv6->setAttribute("StandardDeviation", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[5]); d@13: sv6->setAttribute("Maximum", data.GetPooldedObservationDataMax()[0].GetSpectralValley()[5]); d@13: sv6->setAttribute("Minimum", data.GetPooldedObservationDataStd()[0].GetSpectralValley()[5]); d@13: d@13: spectralValley->addChildElement(sv1); d@13: spectralValley->addChildElement(sv2); d@13: spectralValley->addChildElement(sv3); d@13: spectralValley->addChildElement(sv4); d@13: spectralValley->addChildElement(sv5); d@13: spectralValley->addChildElement(sv6); d@13: dataXML->addChildElement(spectralValley); d@13: d@13: juce::XmlElement* lowEnergy = new juce::XmlElement("lowEnergy"); d@13: lowEnergy->setAttribute("FeatureType", "lowEnergy"); d@13: lowEnergy->setAttribute("Value", data.GetPooldedObservationDataAverage()[0].GetLowEnergy()); d@13: dataXML->addChildElement(lowEnergy); d@13: d@13: juce::XmlElement* periodicity = new juce::XmlElement("periodicity"); d@13: periodicity->setAttribute("FeatureType", "periodicity"); d@13: periodicity->setAttribute("Value", data.GetPooldedObservationDataAverage()[0].GetPeriodicity()); d@13: dataXML->addChildElement(periodicity); d@13: d@13: juce::XmlElement* entropyOfEnergy = new juce::XmlElement("entropyOfEnergy"); d@13: entropyOfEnergy->setAttribute("FeatureType", "entropyOfEnergy"); d@13: entropyOfEnergy->setAttribute("Value", data.GetPooldedObservationDataAverage()[0].GetEntropyOfEnergy()); d@13: dataXML->addChildElement(entropyOfEnergy); d@13: d@13: d@13: dataXML->setAttribute("Label", label); d@13: featureData.addChildElement(dataXML); d@13: d@13: d@13: if (foutWholeTrack.is_open()) d@13: { d@13: d@13: // now we can turn the whole thing into a text document.. d@13: juce::String myXmlDoc = featureData.createDocument(juce::String::empty); d@13: foutWholeTrack << myXmlDoc.toStdString(); d@13: d@13: } d@13: else d@13: { d@13: std::cout << "ERROR: Can't write to .csv."; d@13: } d@13: d@13: foutWholeTrack.close(); d@13: d@13: std::string dave = "Files written: " + std::to_string(count) + " Obs Data Size:" + std::to_string(data.GetPooldedObservationDataAverage().size()) + "\n"; d@13: // OutputDebugString(dave.c_str()); d@13: count++; d@13: d@13: } d@13: d@13: // Get current date/time, format is YYYY-MM-DD.HH:mm:ss d@13: const std::string XMLWrite::currentDateTime() d@13: { d@13: time_t now = time(0); d@13: struct tm tstruct; d@13: char buf[80]; d@13: tstruct = *localtime(&now); d@13: strftime(buf, sizeof(buf), "%Y-%m-%d.%H-%M-%S", &tstruct); d@13: d@13: return buf; d@13: }