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
|