wolffd@0: % makro_import_magnatatatune wolffd@0: wolffd@0: csv2cell('annotations_final.csv','fromfile') wolffd@0: clip_info_final = csv2cell('clip_info_final.csv','fromfile'); wolffd@0: comparisons_final = csv2cell('comparisons_final.csv','fromfile'); wolffd@0: wolffd@0: % tag annotations wolffd@0: annots = strcell2matrix(annotations_final,[1 0],[0 1]); wolffd@0: annots_descripts = {annotations_final{1,:}}; wolffd@0: annots_filenames = cat(1,{annotations_final{:,1}},{annotations_final{:,end}})'; wolffd@0: wolffd@0: % comparison measures wolffd@0: comp = strcell2matrix(comparisons_final,[0 0], [0 3]); wolffd@0: comp_descripts = {comparisons_final{1,:}}; wolffd@0: wolffd@0: %% wolffd@0: % ----------------------------------------------------------- wolffd@0: % --- wolffd@0: % part two: extracting and associating Genre wolffd@0: % wolffd@0: % at first we filter out the relevant positions in clip_info_final- wolffd@0: % --- wolffd@0: wolffd@0: % prepare clip_info wolffd@0: info_ids = {clip_info_final{:,1}}; wolffd@0: info_ids = strcell2matrix(info_ids); wolffd@0: wolffd@0: % --- wolffd@0: % CAUTION: a offset because of table header is added wolffd@0: % --- wolffd@0: info_ids = info_ids(2:end); wolffd@0: wolffd@0: % prepare file annots wolffd@0: file_ids = {annots_filenames{:,1}}; wolffd@0: file_ids = strcell2matrix(file_ids); wolffd@0: file_ids = file_ids(2:end); wolffd@0: wolffd@0: % intersect ids wolffd@0: [c, ia, ib] = intersect(file_ids, info_ids); wolffd@0: wolffd@0: % and save into proper wolffd@0: clip_info_proper_names = clip_info_final(1,:); wolffd@0: clip_info_proper = clip_info_final(ib+1,:); wolffd@0: wolffd@0: % clean proper for mysterious beginnings wolffd@0: for i = 1:size(clip_info_proper,1) wolffd@0: % leave out first row; wolffd@0: for j = 2:size(clip_info_proper,2) wolffd@0: clip_info_proper{i,j} = clip_info_proper{i,j}(2:end); wolffd@0: end wolffd@0: end wolffd@0: wolffd@0: % --- wolffd@0: % % GENRE extraction wolffd@0: % wolffd@0: % now, we load the new file and search for the information on the wolffd@0: % actual excerpts we have wolffd@0: % --- wolffd@0: tmp = csv2cell('song_info.csv','fromfile'); wolffd@0: wolffd@0: %% wolffd@0: % these are for keeping book of missing items wolffd@0: not_found = []; wolffd@0: man_album_name = {}; wolffd@0: wolffd@0: rel_cols = [6,7]; wolffd@0: % make header wolffd@0: clip_info_extra_names = {'clip_id',tmp{1,rel_cols}}; wolffd@0: clip_info_extra = {}; wolffd@0: wolffd@0: for i = 1:size(clip_info_proper,1) wolffd@0: % --- wolffd@0: % search by url wolffd@0: % --- wolffd@0: % convert search string wolffd@0: s = char(clip_info_proper{i,9}); wolffd@0: idx = strcellfind(tmp(:,9),s); wolffd@0: wolffd@0: % we'll have to loosen the search wolffd@0: if idx < 1 wolffd@0: warning(sprintf('! %s, album %s, artist %s!',clip_info_proper{i,1},... wolffd@0: clip_info_proper{i,5},clip_info_proper{i,4})); wolffd@0: wolffd@0: % make note ... wolffd@0: not_found = cat(1,not_found,[str2num(clip_info_proper{i,1}), 0]); wolffd@0: wolffd@0: not_found(end,2) = 1; wolffd@0: % --- wolffd@0: % ok, no problem, lets look for the album! wolffd@0: % --- wolffd@0: s = char(clip_info_proper{i,5}); wolffd@0: idx = strcellfind(tmp(:,3),s); wolffd@0: wolffd@0: if idx < 1 wolffd@0: wolffd@0: not_found(end,2) = 2; wolffd@0: % --- wolffd@0: % search for artist wolffd@0: % --- wolffd@0: s = char(clip_info_proper{i,4}); wolffd@0: idx = strcellfind(tmp(:,1),s); wolffd@0: end wolffd@0: wolffd@0: if idx < 1 wolffd@0: wolffd@0: not_found(end,2) = 3; wolffd@0: % --- wolffd@0: % this is the last try to get hold of such artists wolffd@0: % they may be noted as a trackname or description substring in a compilation wolffd@0: % --- wolffd@0: s = char(clip_info_proper{i,4}); wolffd@0: idx = substrcellfind(tmp(:,2),s); wolffd@0: end wolffd@0: wolffd@0: if idx < 1 wolffd@0: wolffd@0: warning(sprintf(' - %s, %s \n',clip_info_proper{i,1},clip_info_proper{i,4})); wolffd@0: newinfo = {''}; wolffd@0: wolffd@0: % reset suspected success wolffd@0: not_found(end,2) = 0; wolffd@0: else wolffd@0: wolffd@0: warning(sprintf(' + associated album %s, artist %s \n',tmp{idx,3},tmp{idx,1})); wolffd@0: wolffd@0: % get relevant data wolffd@0: newinfo = {tmp{idx,[3 1 12]}}; wolffd@0: wolffd@0: % --- wolffd@0: % save genre wolffd@0: % --- wolffd@0: clip_info_extra = cat(1,clip_info_extra,{clip_info_proper{i,1},tmp{idx,rel_cols}}); wolffd@0: end wolffd@0: wolffd@0: % report new location/info of album wolffd@0: s = char(clip_info_proper{i,5}); wolffd@0: if isempty(man_album_name) || strcellfind(man_album_name(:,1),s) == -1 ; wolffd@0: man_album_name = cat(1, man_album_name, {clip_info_proper{i,5},newinfo{:}}); wolffd@0: end wolffd@0: wolffd@0: else wolffd@0: % --- wolffd@0: % save genre wolffd@0: % --- wolffd@0: clip_info_extra = cat(1,clip_info_extra,{clip_info_proper{i,1},tmp{idx,rel_cols}}); wolffd@0: end wolffd@0: end wolffd@0: wolffd@0: clear('newinfo','i','j','idx','s','ia','ib','rel_cols') wolffd@0: wolffd@0: wolffd@0: wolffd@0: wolffd@0: