gregoirelafay@21
|
1 function [] = coloredSpectrumVisualization(tracks,figNum,settingFigure,figuresOption,fileName,sr)
|
gregoirelafay@21
|
2
|
gregoirelafay@21
|
3 wStep=1024;
|
gregoirelafay@21
|
4 wSize=wStep*2;
|
gregoirelafay@21
|
5 maxFreqBin=400;
|
gregoirelafay@21
|
6
|
gregoirelafay@21
|
7 % Producing a colored spectrum visualization
|
mathieu@34
|
8
|
gregoirelafay@21
|
9 for i=1:size(tracks,1)
|
gregoirelafay@21
|
10 spec = log(1+abs(spectrogram(tracks(i,:), hanning(wSize), wStep, wSize)));
|
gregoirelafay@21
|
11 spec = min(1, spec ./ max(spec(:)));
|
gregoirelafay@21
|
12 spec = spec(1:maxFreqBin,:);
|
gregoirelafay@21
|
13 spec = flipud(spec);
|
mathieu@34
|
14 % black background
|
mathieu@34
|
15 % for colorComp=1:3
|
mathieu@34
|
16 % if (i==1)
|
mathieu@34
|
17 % img(:,:,colorComp) = settingFigure.cmap(i,colorComp)*spec;
|
mathieu@34
|
18 % else
|
mathieu@34
|
19 % img(:,:,colorComp) = img(:,:,colorComp)+settingFigure.cmap(i,colorComp)*spec;
|
mathieu@34
|
20 % end
|
mathieu@34
|
21 % end
|
mathieu@34
|
22 %white background
|
mathieu@34
|
23 if i==1
|
mathieu@34
|
24 img = ones(size(spec, 1), size(spec, 2), 3)*.4;
|
mathieu@34
|
25 end
|
mathieu@34
|
26 for colorComp=1:3
|
mathieu@34
|
27 img(:,:,colorComp) = (1-spec).*img(:,:,colorComp)+settingFigure.cmap(i,colorComp)*spec;
|
gregoirelafay@21
|
28 end
|
gregoirelafay@21
|
29 end
|
gregoirelafay@21
|
30
|
gregoirelafay@21
|
31
|
gregoirelafay@21
|
32
|
gregoirelafay@21
|
33
|
gregoirelafay@21
|
34 img = img/max(img(:));
|
gregoirelafay@21
|
35
|
gregoirelafay@21
|
36 switch figuresOption
|
gregoirelafay@21
|
37 case 1
|
gregoirelafay@21
|
38 f=figure('Visible', 'off');
|
gregoirelafay@21
|
39 case 2
|
gregoirelafay@21
|
40 f=figure(figNum);
|
gregoirelafay@21
|
41 end
|
gregoirelafay@21
|
42
|
gregoirelafay@21
|
43
|
gregoirelafay@21
|
44 clf;
|
gregoirelafay@21
|
45 imagesc(img);
|
gregoirelafay@21
|
46 xlim([0 size(img,2)])
|
gregoirelafay@21
|
47 ylim([0 maxFreqBin])
|
gregoirelafay@21
|
48 xtick=0:round(settingFigure.sr/wStep*20):size(img,2); % every 20 sec
|
gregoirelafay@21
|
49 ytick=0:50:maxFreqBin; % every 500 Hz
|
gregoirelafay@21
|
50 set(gca,'YTick',0:50:maxFreqBin,'YTicklabel', fliplr(round(ytick*settingFigure.sr/wSize)),'xtick',xtick,'xTicklabel',round(xtick*wStep/settingFigure.sr));
|
gregoirelafay@21
|
51 xlabel('time (sec)')
|
gregoirelafay@21
|
52 ylabel('Frequency (Hz)')
|
gregoirelafay@21
|
53
|
gregoirelafay@21
|
54 set(findall(f,'-property','FontSize'),'FontSize',settingFigure.FontSize)
|
gregoirelafay@21
|
55 set(findall(f,'-property','FontName'),'FontName','Arial')
|
gregoirelafay@21
|
56
|
mathieu@34
|
57 if figuresOption == 1
|
mathieu@34
|
58 set(f,'PaperUnits','centimeters')
|
mathieu@34
|
59 set(f,'PaperPositionMode','manual')
|
mathieu@34
|
60 set(f,'papersize',[settingFigure.width,settingFigure.height])
|
mathieu@34
|
61 set(f,'paperposition',[0,0,settingFigure.width,settingFigure.height])
|
mathieu@34
|
62
|
mathieu@34
|
63 print(f,fileName,'-dpng')
|
gregoirelafay@21
|
64 end
|
gregoirelafay@21
|
65
|