comparison util/classes/@audio/plot.m @ 166:1495bdfa13e9 danieleb

Updated grassmanian function (restored old computation of the dictionary) and added functions to the audio class
author Daniele Barchiesi <daniele.barchiesi@eecs.qmul.ac.uk>
date Mon, 19 Sep 2011 14:53:23 +0100
parents e3035d45d014
children f8bc99a5470c
comparison
equal deleted inserted replaced
162:88578ec2f94a 166:1495bdfa13e9
1 function plot(obj) 1 function plot(obj)
2
3 figure,
4 playbackPanelH = uipanel(gcf,'Units','Normalized','Position',[.3 0 .4 .1]);
5
6 buttWidth = 1/6;
7 centers = linspace(0,1,7)-buttWidth/2;
8 rewButtonH = uicontrol(playbackPanelH,'Style','pushbutton','String','<<','Units',...
9 'Normalized','Position',[centers(2) 0.2 buttWidth 0.6]);
10 ffButtonH = uicontrol(playbackPanelH,'Style','togglebutton','String','>>','Units',...
11 'Normalized','Position',[centers(3) 0.2 buttWidth 0.6]);
12 stopButtonH = uicontrol(playbackPanelH,'Style','pushbutton','String','stop','Units',...
13 'Normalized','Position',[centers(4) 0.2 buttWidth 0.6]);
14 playButtonH = uicontrol(playbackPanelH,'Style','togglebutton','String','play','Units',...
15 'Normalized','Position',[centers(5) 0.2 buttWidth 0.6]);
16 pauseButtonH = uicontrol(playbackPanelH,'Style','togglebutton','String','||','Units',...
17 'Normalized','Position',[centers(6) 0.2 buttWidth 0.6]);
18
19 waveformPanelH = uipanel(gcf,'Units','Normalized','Position',[.02 .12 .96 .86]);
20 waveformAxesH = axes('Parent',waveformPanelH);
2 21
3 %% Plot the time domain signal 22 %% Plot the time domain signal
4 s = obj.s; 23 s = obj.s;
5 fs = obj.fs; 24 fs = obj.fs;
6 figure, plot((1:length(s))/fs,s); 25 plot((1:length(s))/fs,s);
7 title('Audio signal') 26 title('Audio signal')
8 xlabel('time (s)'); 27 xlabel('time (s)');
9 axis tight 28 axis tight
10 29
11 player = audioplayer(s,fs); 30 player = audioplayer(s,fs);
31 set(player,'TimerPeriod',0.1);
12 set(player,'StartFcn',@plotTransportBar); 32 set(player,'StartFcn',@plotTransportBar);
13 set(player,'TimerFcn',@updateTransportBar); 33 set(player,'TimerFcn',@updateTransportBar);
14 set(player,'StopFcn',@deleteTransportBar); 34 set(player,'StopFcn',@deleteTransportBar);
15 35
16 %% Add playbaack controls 36 %% Add playback controls
17 playButtonH = uicontrol(gcf,'Style','pushbutton','String','play','Units',...
18 'Normalized','Position',[0.02 + 0.39 0 0.1 0.05]);
19 stopButtonH = uicontrol(gcf,'Style','pushbutton','String','stop','Units',...
20 'Normalized','Position',[0.12 + 0.39 0 0.1 0.05]);
21
22 set(playButtonH,'Callback',@play_callback); 37 set(playButtonH,'Callback',@play_callback);
23 set(stopButtonH,'Callback',@stop_callback); 38 set(stopButtonH,'Callback',@stop_callback);
39 set(pauseButtonH,'Callback',@pause_callback);
40 set(rewButtonH,'Callback',@rew_callback);
41 set(ffButtonH,'Callback',@ff_callback);
24 42
25 function play_callback(~,~) 43 function play_callback(~,~)
26 if strcmpi(get(playButtonH,'String'),'play') 44 set(player,'SampleRate',fs);
27 play(player,player.CurrentSample); 45 play(player,player.CurrentSample);
28 set(playButtonH,'String','pause'); 46 set(pauseButtonH,'Value',0);
29 else 47 set(ffButtonH,'Value',0);
30 pause(player) 48 end
31 set(playButtonH,'String','play');
32 end
33 end
34 49
35 function stop_callback(~,~) 50 function pause_callback(~,~)
36 stop(player); 51 pause(player);
37 end 52 set(playButtonH,'Value',0);
53 set(ffButtonH,'Value',0);
54 end
55
56 function stop_callback(~,~)
57 stop(player);
58 set(playButtonH,'Value',0);
59 set(pauseButtonH,'Value',0);
60 set(ffButtonH,'Value',0);
61 end
62
63 function ff_callback(~,~)
64 set(player,'SampleRate',1.5*fs);
65 set(pauseButtonH,'Value',0);
66 set(playButtonH,'Value',0);
67 end
68
69 function rew_callback(~,~)
70 stop(player);
71 play(player);
72 set(pauseButtonH,'Value',0);
73 set(playButtonH,'Value',1);
74 end
38 75
39 %% Transport Bar functions 76 %% Transport Bar functions
40 function plotTransportBar(~,~) 77 function plotTransportBar(~,~)
41 global tbH 78 global tbH
42 xLim = get(gca,'Xlim'); 79 xLim = get(gca,'Xlim');
43 yLim = get(gca,'YLim'); 80 yLim = get(gca,'YLim');
44 tbH = line([xLim(1) xLim(1)],yLim,'Color','k'); 81 tbH = line([xLim(1) xLim(1)],yLim,'Color','k');
45 end 82 end
46
47 function updateTransportBar(hObject,~)
48 global tbH
49 currentSample = hObject.CurrentSample;
50 pos = currentSample/fs;
51 set(tbH,'XData',[pos pos]);
52 end
53 83
54 function deleteTransportBar(~,~) 84 function updateTransportBar(hObject,~)
55 global tbH 85 global tbH
56 delete(tbH); 86 currentSample = hObject.CurrentSample;
57 end 87 pos = currentSample/fs;
88 set(tbH,'XData',[pos pos]);
89 end
90
91 function deleteTransportBar(~,~)
92 global tbH
93 delete(tbH);
94 end
58 end 95 end