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 } |