annotate 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
rev   line source
daniele@160 1 function plot(obj)
daniele@160 2
daniele@160 3 %% Plot the time domain signal
daniele@160 4 s = obj.s;
daniele@160 5 fs = obj.fs;
daniele@160 6 figure, plot((1:length(s))/fs,s);
daniele@160 7 title('Audio signal')
daniele@160 8 xlabel('time (s)');
daniele@160 9 axis tight
daniele@160 10
daniele@160 11 player = audioplayer(s,fs);
daniele@160 12 set(player,'StartFcn',@plotTransportBar);
daniele@160 13 set(player,'TimerFcn',@updateTransportBar);
daniele@160 14 set(player,'StopFcn',@deleteTransportBar);
daniele@160 15
daniele@160 16 %% Add playbaack controls
daniele@160 17 playButtonH = uicontrol(gcf,'Style','pushbutton','String','play','Units',...
daniele@160 18 'Normalized','Position',[0.02 + 0.39 0 0.1 0.05]);
daniele@160 19 stopButtonH = uicontrol(gcf,'Style','pushbutton','String','stop','Units',...
daniele@160 20 'Normalized','Position',[0.12 + 0.39 0 0.1 0.05]);
daniele@160 21
daniele@160 22 set(playButtonH,'Callback',@play_callback);
daniele@160 23 set(stopButtonH,'Callback',@stop_callback);
daniele@160 24
daniele@160 25 function play_callback(~,~)
daniele@160 26 if strcmpi(get(playButtonH,'String'),'play')
daniele@160 27 play(player,player.CurrentSample);
daniele@160 28 set(playButtonH,'String','pause');
daniele@160 29 else
daniele@160 30 pause(player)
daniele@160 31 set(playButtonH,'String','play');
daniele@160 32 end
daniele@160 33 end
daniele@160 34
daniele@160 35 function stop_callback(~,~)
daniele@160 36 stop(player);
daniele@160 37 end
daniele@160 38
daniele@160 39 %% Transport Bar functions
daniele@160 40 function plotTransportBar(~,~)
daniele@160 41 global tbH
daniele@160 42 xLim = get(gca,'Xlim');
daniele@160 43 yLim = get(gca,'YLim');
daniele@160 44 tbH = line([xLim(1) xLim(1)],yLim,'Color','k');
daniele@160 45 end
daniele@160 46
daniele@160 47 function updateTransportBar(hObject,~)
daniele@160 48 global tbH
daniele@160 49 currentSample = hObject.CurrentSample;
daniele@160 50 pos = currentSample/fs;
daniele@160 51 set(tbH,'XData',[pos pos]);
daniele@160 52 end
daniele@160 53
daniele@160 54 function deleteTransportBar(~,~)
daniele@160 55 global tbH
daniele@160 56 delete(tbH);
daniele@160 57 end
daniele@160 58 end