comparison util/classes/@audio/plot.m @ 160:e3035d45d014 danieleb

Added support classes
author Daniele Barchiesi <daniele.barchiesi@eecs.qmul.ac.uk>
date Wed, 31 Aug 2011 10:53:10 +0100
parents
children 1495bdfa13e9
comparison
equal deleted inserted replaced
159:23763c5fbda5 160:e3035d45d014
1 function plot(obj)
2
3 %% Plot the time domain signal
4 s = obj.s;
5 fs = obj.fs;
6 figure, plot((1:length(s))/fs,s);
7 title('Audio signal')
8 xlabel('time (s)');
9 axis tight
10
11 player = audioplayer(s,fs);
12 set(player,'StartFcn',@plotTransportBar);
13 set(player,'TimerFcn',@updateTransportBar);
14 set(player,'StopFcn',@deleteTransportBar);
15
16 %% Add playbaack 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);
23 set(stopButtonH,'Callback',@stop_callback);
24
25 function play_callback(~,~)
26 if strcmpi(get(playButtonH,'String'),'play')
27 play(player,player.CurrentSample);
28 set(playButtonH,'String','pause');
29 else
30 pause(player)
31 set(playButtonH,'String','play');
32 end
33 end
34
35 function stop_callback(~,~)
36 stop(player);
37 end
38
39 %% Transport Bar functions
40 function plotTransportBar(~,~)
41 global tbH
42 xLim = get(gca,'Xlim');
43 yLim = get(gca,'YLim');
44 tbH = line([xLim(1) xLim(1)],yLim,'Color','k');
45 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
54 function deleteTransportBar(~,~)
55 global tbH
56 delete(tbH);
57 end
58 end