[mirtoolbox] Re: feature extraction (how to read all the feature values?)

  • From: Olivier Lartillot <olivier.lartillot@xxxxxxxxxxxxx>
  • To: mirtoolbox@xxxxxxxxxxxxx
  • Date: Wed, 13 Aug 2008 17:00:40 +0300

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/



Other related posts: