Play, Stop, Pause, Resume and Volume control in Real-Time with Audio System Toolbox
    14 views (last 30 days)
  
       Show older comments
    
So I am designing a GUI for an equalizer and have just made the buttons and sliders mentioned in the title. The thing is that I tried to make this with audioplayer's objects. The problem is that with the code that I am attaching this doesn't work in real-time. I read about Audio System Toolbox for this matter and I think I can play and stop audio without any problem, but I really can't think of a way to pause and resume and to chnge the volume with a slider in real-time. I hope soeone could guide me about this matter. I attach the code I used. Play, Stop, Puse, Resume:
 properties (Access = private)
        Property % Description
        fileName
        player
    end
    methods (Access = private)
        % Value changed function: PauseButton
        function PauseButtonValueChanged(app, event)
            value = app.PauseButton.Value;
            pause(app.player);
        end
        % Value changed function: PlayButton
        function PlayButtonValueChanged(app, event)
      value = app.PlayButton.Value;
        try
       [y, Fs] = audioread(app.fileName);
       app.player=audioplayer(app.Volume.Value*y,Fs);
       % Play audio
       play(app.player)
     catch ME
      uiwait(msgbox('Could not open that file with Audioread'));
        end
        end
        % Value changed function: ResumeButton
        function ResumeButtonValueChanged(app, event)
            value = app.ResumeButton.Value;
            try
            resume(app.player);
            catch ME
      uiwait(msgbox('Could not open that file with Audioread'));
            end
        end
        % Value changed function: StopButton
        function StopButtonValueChanged(app, event)
            value = app.StopButton.Value;
            try
            stop(app.player);
            catch ME
      uiwait(msgbox('Could not open that file with Audioread'));
            end
        end
And for the volume:
        function VolumeValueChanged(app, event)
            valueVol = app.Volume.Value;
            pause(app.player);
            NewStart=get(app.player,'CurrentSample')+1;
            stop(app.player);
            [x, Fs] = audioread(app.fileName);
            x=x(NewStart:end,:);
            app.player=audioplayer(x*valueVol,Fs);
            play(app.player);
I didn't include the code for the browser because it just opens the path of the file. 
0 Comments
Answers (1)
See Also
Categories
				Find more on Audio and Video Data in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
