diff matlab/MATLAB-Chroma-Toolbox_2.0/visualizeChroma.m @ 0:b54ee0a0be67

Import MATLAB Chroma Toolbox
author Chris Cannam
date Wed, 05 Aug 2015 21:08:56 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/matlab/MATLAB-Chroma-Toolbox_2.0/visualizeChroma.m	Wed Aug 05 21:08:56 2015 +0100
@@ -0,0 +1,141 @@
+function visualizeChroma(f_chroma,parameter)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Name: visualizeChroma
+% Date of Revision: 2011-03
+% Programmer: Meinard Mueller, Sebastian Ewert
+%
+% Description:
+% Visualization of f_chroma
+%
+% Input:
+%        f_chroma
+%        parameter.featureRate = 0;  % 0 means unknown
+%        parameter.colorbar = 1;
+%        parameter.colormap = 'hot';
+%        parameter.print = 0;
+%        parameter.printFile = 'figure.eps';
+%        parameter.printDir = '';
+%        parameter.title = '';
+%        parameter.xlabel = '';
+%        parameter.imagerange = [0 1];   % 0 means automatic
+%        parameter.fontSize = 0;   % 0 means automatic
+%        parameter.printPaperPosition = [1   10   26  15]; %[left, bottom, width, height]
+%        parameter.createAxisLabel = 1;
+%
+% License:
+%     This file is part of 'Chroma Toolbox'.
+%
+%     'Chroma Toolbox' is free software: you can redistribute it and/or modify
+%     it under the terms of the GNU General Public License as published by
+%     the Free Software Foundation, either version 2 of the License, or
+%     (at your option) any later version.
+%
+%     'Chroma Toolbox' is distributed in the hope that it will be useful,
+%     but WITHOUT ANY WARRANTY; without even the implied warranty of
+%     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+%     GNU General Public License for more details.
+%
+%     You should have received a copy of the GNU General Public License
+%     along with 'Chroma Toolbox'. If not, see <http://www.gnu.org/licenses/>.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if nargin<2
+    parameter=[];
+end
+
+if isfield(parameter,'featureRate')==0
+    parameter.featureRate = 0;
+end
+if isfield(parameter,'colorbar')==0
+    parameter.colorbar = 1;
+end
+if isfield(parameter,'colormap')==0
+    parameter.colormap = 'hot';
+end
+if isfield(parameter,'print')==0
+    parameter.print = 0;
+end
+if isfield(parameter,'printFile')==0
+    parameter.printFile = 'figure.eps';
+end
+if isfield(parameter,'printDir')==0
+    parameter.printDir = '';
+end
+if isfield(parameter,'title')==0
+    parameter.title = '';
+end
+if isfield(parameter,'xlabel')==0
+    parameter.xlabel = '';
+end
+if isfield(parameter,'imagerange')==0
+    parameter.imagerange = [0 1];
+end
+if isfield(parameter,'fontSize')==0
+    % 0 means automatic
+    parameter.fontSize = 0;
+end
+if isfield(parameter,'printPaperPosition')==0
+    parameter.printPaperPosition = [1   10   26  15]; %[left, bottom, width, height]
+end
+if isfield(parameter,'createAxisLabel')==0
+    parameter.createAxisLabel = 1;
+end
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Visualization
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+seg_num = size(f_chroma,2);
+
+chroma_names                 = ['C ';'C#';'D ';'D#';'E ';'F ';'F#';'G ';'G#';'A ';'A#';'B '];
+figure;
+set(gcf,'renderer','painters');
+
+if parameter.featureRate == 0
+    t = (1:seg_num);
+else
+    t = (0:seg_num-1)/parameter.featureRate;
+end
+
+if all(parameter.imagerange == 0)
+    imagesc(t,[1:12],f_chroma);
+else
+    imagesc(t,[1:12],f_chroma,parameter.imagerange);
+end
+set(gca,'YTick',[1:12]);
+set(gca,'YTickLabel',chroma_names);
+set(gca,'YDir','normal');
+if t(end)>t(1)
+    set(gca,'XLim',[t(1),t(end)]);
+end
+
+title(parameter.title);
+xlabel(parameter.xlabel);
+
+if ~parameter.createAxisLabel
+    set(gca, 'XTick', [], 'YTick', [])
+end
+
+colormap(parameter.colormap);
+
+if parameter.fontSize
+    set(gca,'FontSize',parameter.fontSize)
+end
+
+if parameter.colorbar == 1
+    hColorbar = colorbar;
+    if parameter.fontSize
+        set(hColorbar,'FontSize',parameter.fontSize)
+    end
+end
+drawnow;
+
+if parameter.print == 1
+    set(gcf,'PaperPosition',parameter.printPaperPosition);
+    print('-depsc2',strcat(parameter.printDir,parameter.printFile));
+end
+
+end
+
+