annotate matlab/MATLAB-Chroma-Toolbox_2.0/visualizeChroma.m @ 60:1ea2aed23d4a tip

Fix version
author Chris Cannam
date Thu, 13 Feb 2020 13:37:36 +0000
parents b54ee0a0be67
children
rev   line source
Chris@0 1 function visualizeChroma(f_chroma,parameter)
Chris@0 2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Chris@0 3 % Name: visualizeChroma
Chris@0 4 % Date of Revision: 2011-03
Chris@0 5 % Programmer: Meinard Mueller, Sebastian Ewert
Chris@0 6 %
Chris@0 7 % Description:
Chris@0 8 % Visualization of f_chroma
Chris@0 9 %
Chris@0 10 % Input:
Chris@0 11 % f_chroma
Chris@0 12 % parameter.featureRate = 0; % 0 means unknown
Chris@0 13 % parameter.colorbar = 1;
Chris@0 14 % parameter.colormap = 'hot';
Chris@0 15 % parameter.print = 0;
Chris@0 16 % parameter.printFile = 'figure.eps';
Chris@0 17 % parameter.printDir = '';
Chris@0 18 % parameter.title = '';
Chris@0 19 % parameter.xlabel = '';
Chris@0 20 % parameter.imagerange = [0 1]; % 0 means automatic
Chris@0 21 % parameter.fontSize = 0; % 0 means automatic
Chris@0 22 % parameter.printPaperPosition = [1 10 26 15]; %[left, bottom, width, height]
Chris@0 23 % parameter.createAxisLabel = 1;
Chris@0 24 %
Chris@0 25 % License:
Chris@0 26 % This file is part of 'Chroma Toolbox'.
Chris@0 27 %
Chris@0 28 % 'Chroma Toolbox' is free software: you can redistribute it and/or modify
Chris@0 29 % it under the terms of the GNU General Public License as published by
Chris@0 30 % the Free Software Foundation, either version 2 of the License, or
Chris@0 31 % (at your option) any later version.
Chris@0 32 %
Chris@0 33 % 'Chroma Toolbox' is distributed in the hope that it will be useful,
Chris@0 34 % but WITHOUT ANY WARRANTY; without even the implied warranty of
Chris@0 35 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Chris@0 36 % GNU General Public License for more details.
Chris@0 37 %
Chris@0 38 % You should have received a copy of the GNU General Public License
Chris@0 39 % along with 'Chroma Toolbox'. If not, see <http://www.gnu.org/licenses/>.
Chris@0 40 %
Chris@0 41 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Chris@0 42
Chris@0 43 if nargin<2
Chris@0 44 parameter=[];
Chris@0 45 end
Chris@0 46
Chris@0 47 if isfield(parameter,'featureRate')==0
Chris@0 48 parameter.featureRate = 0;
Chris@0 49 end
Chris@0 50 if isfield(parameter,'colorbar')==0
Chris@0 51 parameter.colorbar = 1;
Chris@0 52 end
Chris@0 53 if isfield(parameter,'colormap')==0
Chris@0 54 parameter.colormap = 'hot';
Chris@0 55 end
Chris@0 56 if isfield(parameter,'print')==0
Chris@0 57 parameter.print = 0;
Chris@0 58 end
Chris@0 59 if isfield(parameter,'printFile')==0
Chris@0 60 parameter.printFile = 'figure.eps';
Chris@0 61 end
Chris@0 62 if isfield(parameter,'printDir')==0
Chris@0 63 parameter.printDir = '';
Chris@0 64 end
Chris@0 65 if isfield(parameter,'title')==0
Chris@0 66 parameter.title = '';
Chris@0 67 end
Chris@0 68 if isfield(parameter,'xlabel')==0
Chris@0 69 parameter.xlabel = '';
Chris@0 70 end
Chris@0 71 if isfield(parameter,'imagerange')==0
Chris@0 72 parameter.imagerange = [0 1];
Chris@0 73 end
Chris@0 74 if isfield(parameter,'fontSize')==0
Chris@0 75 % 0 means automatic
Chris@0 76 parameter.fontSize = 0;
Chris@0 77 end
Chris@0 78 if isfield(parameter,'printPaperPosition')==0
Chris@0 79 parameter.printPaperPosition = [1 10 26 15]; %[left, bottom, width, height]
Chris@0 80 end
Chris@0 81 if isfield(parameter,'createAxisLabel')==0
Chris@0 82 parameter.createAxisLabel = 1;
Chris@0 83 end
Chris@0 84
Chris@0 85 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Chris@0 86 % Visualization
Chris@0 87 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Chris@0 88
Chris@0 89 seg_num = size(f_chroma,2);
Chris@0 90
Chris@0 91 chroma_names = ['C ';'C#';'D ';'D#';'E ';'F ';'F#';'G ';'G#';'A ';'A#';'B '];
Chris@0 92 figure;
Chris@0 93 set(gcf,'renderer','painters');
Chris@0 94
Chris@0 95 if parameter.featureRate == 0
Chris@0 96 t = (1:seg_num);
Chris@0 97 else
Chris@0 98 t = (0:seg_num-1)/parameter.featureRate;
Chris@0 99 end
Chris@0 100
Chris@0 101 if all(parameter.imagerange == 0)
Chris@0 102 imagesc(t,[1:12],f_chroma);
Chris@0 103 else
Chris@0 104 imagesc(t,[1:12],f_chroma,parameter.imagerange);
Chris@0 105 end
Chris@0 106 set(gca,'YTick',[1:12]);
Chris@0 107 set(gca,'YTickLabel',chroma_names);
Chris@0 108 set(gca,'YDir','normal');
Chris@0 109 if t(end)>t(1)
Chris@0 110 set(gca,'XLim',[t(1),t(end)]);
Chris@0 111 end
Chris@0 112
Chris@0 113 title(parameter.title);
Chris@0 114 xlabel(parameter.xlabel);
Chris@0 115
Chris@0 116 if ~parameter.createAxisLabel
Chris@0 117 set(gca, 'XTick', [], 'YTick', [])
Chris@0 118 end
Chris@0 119
Chris@0 120 colormap(parameter.colormap);
Chris@0 121
Chris@0 122 if parameter.fontSize
Chris@0 123 set(gca,'FontSize',parameter.fontSize)
Chris@0 124 end
Chris@0 125
Chris@0 126 if parameter.colorbar == 1
Chris@0 127 hColorbar = colorbar;
Chris@0 128 if parameter.fontSize
Chris@0 129 set(hColorbar,'FontSize',parameter.fontSize)
Chris@0 130 end
Chris@0 131 end
Chris@0 132 drawnow;
Chris@0 133
Chris@0 134 if parameter.print == 1
Chris@0 135 set(gcf,'PaperPosition',parameter.printPaperPosition);
Chris@0 136 print('-depsc2',strcat(parameter.printDir,parameter.printFile));
Chris@0 137 end
Chris@0 138
Chris@0 139 end
Chris@0 140
Chris@0 141