Mercurial > hg > camir-aes2014
diff core/magnatagatune/MTTClip.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/magnatagatune/MTTClip.m Tue Feb 10 15:05:51 2015 +0000 @@ -0,0 +1,98 @@ +% --- +% This is the class for magnatagatune clips +% --- + +classdef MTTClip < Clip + + % --- + % here come the internal clip properties. + % the database is stored as a global variable + % --- + + % --- + % simple constructor + % --- + methods + function clip = MTTClip(varargin) + clip = clip@Clip(varargin{:},'db_MTTClip'); + end + + function out = mp3file(this) + % returns filename for given genre id + + out = this.my_db.clip_info_proper{this.my_dbpos,10}; + end + + + function filename = mp3file_full(this) + % returns mp3 filename for given clip id + + global globalvars; + filename = strcat(globalvars.tstaudiopath,this.mp3file()); + filename = strrep(filename,'\',globalvars.systemslash); + filename = strrep(filename,'/',globalvars.systemslash); + end + + function filename = featurefile_full(this) + % returns xml filename for given clip id + + % --- + % NOTE: the xml files are supposed to be in the folder + % "xml" as subfolder of the mp3 file path + % --- + global globalvars; + filename = strcat(globalvars.tstaudiopath,'xml\',... + this.mp3file,'.xml'); + + filename = strrep(filename,'/',globalvars.systemslash); + filename = strrep(filename,'\',globalvars.systemslash); + end + + + % caution. last.fm dbs take a clip + function [out, score, annotids] = fmtags(this) + + [out, score, annotids] = this.my_db.fmtagdb.annots(this); + end + + % caution. last.fm dbs take a clip + % TODO: revert this to general annotdb for compability + function [out, score] = fmtag_ids(this) + + [out, score] = this.my_db.fmtagdb.annotids_for_owner(this); + end + + function [out, score] = genre_ids(this) + % returns clip genre for given clip id + + [out, score] = this(1).my_db.genredb.annotids_for_owner([this.id]); + end + + function [out, score, annotids] = genres(this) + % returns name strings for given genre position ids + + [out, score, annotids] = this(1).my_db.genredb.annots([this.id]); + end + + function print(this) + % prints out the album info + + fprintf('clip %d: %s by %s,\n on %s \n',this.id, ... + this.title(), this.artist(), this.album()); + + v = strcat(this.genres(),', '); + fprintf(' genres: %s\n', strcat(v{:})); + + v = strcat(this.tags(),', '); + fprintf(' tags: %s\n', strcat(v{:})); + + v = strcat(this.fmtags(),', '); + fprintf(' last.fm tags: %s\n', strcat(v{:})); + + % if nargout == 0 + % fprintf(out) + % end + end + + end +end \ No newline at end of file