Mercurial > hg > smallbox
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 |