Hello Alberto/everybody, Yes, there is a simpler way to retrieve the data. f = mirfeatures(...) d = mirgetdata(f)d is a structure array that respects the same arborescence than f. So d.dynamics.rms will return a column vector corresponding to the RMS, d.timbre.zerocross the zero-crossing rates, and so on.
d is a structure array instead of a matrix, because the various features can have different sizes.
The complete list of features is documented in the user's guide, on pages 128-129.
Regards Olivier Alberto Novello kirjoitti 12.8.2008 kello 17.06:
Hello Olivier/everybody,i'm trying to develop a mdel using extracted features. I use mirfeatures. The output is quite complex in its architechture. I'm trying to have it formatted in my own way: features on rows and values on the columns. I searched a lot in the three of output data and i found these way of getting the values for the fatures:mirgetdata(buf.feat.rhythm.tempo) mirgetdata(buf.feat.rhythm.fluctuation.centroid) mirgetdata(buf.feat.rhythm.attack.slope) mirgetdata(buf.feat.rhythm.attack.time) mirgetdata(buf.feat.tonal.hcdf) mirgetdata(buf.feat.tonal.keyclarity) mirgetdata(buf.feat.tonal.mode) mirgetdata(buf.feat.timbre.centroid) mirgetdata(buf.feat.timbre.brightness) mirgetdata(buf.feat.timbre.ddmfcc.mirdata) %mat mirgetdata(buf.feat.timbre.dmfcc.mirdata) %mat mirgetdata(buf.feat.timbre.flatness) mirgetdata(buf.feat.timbre.inharmonicity) mirgetdata(buf.feat.timbre.irregularity) mirgetdata(buf.feat.timbre.kurtosis) mirgetdata(buf.feat.timbre.lowenergy) mirgetdata(buf.feat.timbre.mfcc.mirdata) %mat mirgetdata(buf.feat.timbre.rolloff85) mirgetdata(buf.feat.timbre.rolloff95) mirgetdata(buf.feat.timbre.roughness) mirgetdata(buf.feat.timbre.skewness) mirgetdata(buf.feat.timbre.spectentropy) mirgetdata(buf.feat.timbre.spectralflux) mirgetdata(buf.feat.timbre.spread) mirgetdata(buf.feat.timbre.zerocross) mirgetdata(buf.feat.pitch.salient) mirgetdata(buf.feat.pitch.chromagram.centroid) mirgetdata(buf.feat.pitch.chromagram.peak.mirdata) mirgetdata(buf.feat.tmp.onsets.mirtemporal.mirdata) mirgetdata(buf.feat.tmp.keystrengths.mirdata) buf.feat.rhythm.fluctuation.peak.phase{1}{1} Questions: Is there a less indirect way of retrieving the data i need? Are there all the extracted features here in the list i made? Thanks Alberto Alberto Novello Philips Research Laboratories Eindhoven Digital Signal Processing, WO P088 Prof. Holstlaan 4 5656 AA Eindhoven The Netherlands tel: 0031-(0)-40-2743160 fax: 0031-(0)-40-2744675 mailto: alberto.novello@xxxxxxxxxxx
Olivier Lartillot Finnish Centre of Excellence in Interdisciplinary Music Research Department of Music PO Box 35(M) 40014 University of Jyväskylä Finland http://users.jyu.fi/~lartillo/