function plot_chroma(C,T) % plot_chroma(C,T) % Plot chroma array in spectrogram style. % C is a 12xN chroma array, and T gives the start times of each % column. % If first element is an ENA struct, simply plot the pitches % on the segment timebase. % 2010-04-13 Dan Ellis dpwe@ee.columbia.edu if isstruct(C) ENA = C; C = ENA.pitches; T = ENA.segment; D = ENA.duration; else % predict that last segment will be the same length as % next-to-last one D = T(end) + (T(end) - T(end-1)); end [nchr, ntim] = size(C); if length(T) == 1 % Scalar T means uniform spacing T = [0:ntim] * T; % ntim + 1 times to include end of last one end if length(T) ~= ntim+1 T = [T,D]; % add duration as end of last segment end tres = 0.05; tt = 0:tres:D; CR = resample_mx(C,T,tt); disp(['CR is ', num2str(size(CR,1)), ' x ', num2str(size(CR,2))]); imagesc(tt,1:nchr,CR); axis xy set(gca,'YTick',[1 3 5 8 10 12]); set(gca,'YTickLabel','C|D|E|G|A|B'); color(1-gray);