matlab code

Name all the element I need

properties (Access = private)

fs = 44100;

filterOrder = 5;

cutOffFreq = 1000;

Freq;

music;

signal;

y;

y1;

y2;

end

The functions it does when I just open the app

function startupFcn(app)

[app.y1,app.fs] = audioread('senbonzakura.wav',[1 1433250]);

app.signal = app.y1;

app.y2 = app.y1;

title(app.UIAxes, 'Freq');

xlabel(app.UIAxes, 'Time(s)');

end

Play Button

function PlayButtonPushed(app, event)

switch app.FreqDropDown.Value

case '1'

app.Freq = app.fs;

case '0.5'

app.Freq = 0.5 * app.fs ;

case '0.75'

app.Freq = 0.75 * app.fs ;

case '1.25'

app.Freq = 1.25 * app.fs ;

case '1.5'

app.Freq = 1.5 * app.fs;

end

app.music = audioplayer(app.signal,app.Freq);

play(app.music,app.Freq);

time = (1:length(app.signal))/app.Freq;

plot(app.UIAxes, time, app.signal);

end

Pause 、Resume、Stop、Reset Button

% Button pushed function: PauseButton

function PauseButtonPushed(app, event)

pause(app.music);

end


% Button pushed function: ResumeButton

function ResumeButtonPushed(app, event)

resume(app.music);

end


% Button pushed function: StopButton

function StopButtonPushed(app, event)

stop(app.music);

end


% Button pushed function: ResetButton

function ResetButtonPushed(app, event)

app.signal = app.y2;

end

High Pass Filter& Low Pass Filter

% Button pushed function: HighpassButton

function HighpassButtonPushed(app, event)

app.y = audioplayer(app.y1,app.fs);

time = (1:length(app.y1))/app.fs;

[b,a] = butter(app.filterOrder,app.cutOffFreq/(app.fs/2),'high');

app.signal = filter(b,a,app.y1);

end


% Button pushed function: LowpassButton

function LowpassButtonPushed(app, event)

app.y = audioplayer(app.y1,app.fs);

time = (1:length(app.y1))/app.fs;

[b,a] = butter(app.filterOrder,app.cutOffFreq/(app.fs/2),'low');

app.signal = filter(b,a,app.y1);

end

Full Code

classdef midterm_app < matlab.apps.AppBase


% Properties that correspond to app components

properties (Access = public)

UIFigure matlab.ui.Figure

PlayButton matlab.ui.control.Button

PauseButton matlab.ui.control.Button

ResumeButton matlab.ui.control.Button

StopButton matlab.ui.control.Button

UIAxes matlab.ui.control.UIAxes

HighpassButton matlab.ui.control.Button

LowpassButton matlab.ui.control.Button

ResetButton matlab.ui.control.Button

FreqDropDownLabel matlab.ui.control.Label

FreqDropDown matlab.ui.control.DropDown

end



properties (Access = private)

fs = 44100;

filterOrder = 5;

cutOffFreq = 1000;

Freq;

music;

signal;

y;

y1;

y2;

end



methods (Access = private)


% Code that executes after component creation

function startupFcn(app)

[app.y1,app.fs] = audioread('senbonzakura.wav',[1 1433250]);

app.signal = app.y1;

app.y2 = app.y1;

title(app.UIAxes, 'Freq');

xlabel(app.UIAxes, 'Time(s)');

end


% Button pushed function: PlayButton

function PlayButtonPushed(app, event)

switch app.FreqDropDown.Value

case '1'

app.Freq = app.fs;

case '0.5'

app.Freq = 0.5 * app.fs ;

case '0.75'

app.Freq = 0.75 * app.fs ;

case '1.25'

app.Freq = 1.25 * app.fs ;

case '1.5'

app.Freq = 1.5 * app.fs;

end

app.music = audioplayer(app.signal,app.Freq);

play(app.music,app.Freq);

time = (1:length(app.signal))/app.Freq;

plot(app.UIAxes, time, app.signal);

end


% Button pushed function: PauseButton

function PauseButtonPushed(app, event)

pause(app.music);

end


% Button pushed function: ResumeButton

function ResumeButtonPushed(app, event)

resume(app.music);

end


% Button pushed function: StopButton

function StopButtonPushed(app, event)

stop(app.music);

end


% Button pushed function: ResetButton

function ResetButtonPushed(app, event)

app.signal = app.y2;

end


% Button pushed function: HighpassButton

function HighpassButtonPushed(app, event)

app.y = audioplayer(app.y1,app.fs);

time = (1:length(app.y1))/app.fs;

[b,a] = butter(app.filterOrder,app.cutOffFreq/(app.fs/2),'high');

app.signal = filter(b,a,app.y1);

end


% Button pushed function: LowpassButton

function LowpassButtonPushed(app, event)

app.y = audioplayer(app.y1,app.fs);

time = (1:length(app.y1))/app.fs;

[b,a] = butter(app.filterOrder,app.cutOffFreq/(app.fs/2),'low');

app.signal = filter(b,a,app.y1);

end

end


% App initialization and construction

methods (Access = private)


% Create UIFigure and components

function createComponents(app)


% Create UIFigure

app.UIFigure = uifigure;

app.UIFigure.Position = [100 100 760 576];

app.UIFigure.Name = 'UI Figure';


% Create PlayButton

app.PlayButton = uibutton(app.UIFigure, 'push');

app.PlayButton.ButtonPushedFcn = createCallbackFcn(app, @PlayButtonPushed, true);

app.PlayButton.BackgroundColor = [0 0.451 0.7412];

app.PlayButton.FontSize = 36;

app.PlayButton.FontColor = [0 0 1];

app.PlayButton.Position = [41 149 123 83];

app.PlayButton.Text = 'Play';


% Create PauseButton

app.PauseButton = uibutton(app.UIFigure, 'push');

app.PauseButton.ButtonPushedFcn = createCallbackFcn(app, @PauseButtonPushed, true);

app.PauseButton.FontSize = 36;

app.PauseButton.Position = [188 32 123 83];

app.PauseButton.Text = 'Pause';


% Create ResumeButton

app.ResumeButton = uibutton(app.UIFigure, 'push');

app.ResumeButton.ButtonPushedFcn = createCallbackFcn(app, @ResumeButtonPushed, true);

app.ResumeButton.FontSize = 28;

app.ResumeButton.Position = [41 32 123 83];

app.ResumeButton.Text = 'Resume';


% Create StopButton

app.StopButton = uibutton(app.UIFigure, 'push');

app.StopButton.ButtonPushedFcn = createCallbackFcn(app, @StopButtonPushed, true);

app.StopButton.BackgroundColor = [1 0 0];

app.StopButton.FontSize = 36;

app.StopButton.Position = [188 149 123 83];

app.StopButton.Text = 'Stop';


% Create UIAxes

app.UIAxes = uiaxes(app.UIFigure);

title(app.UIAxes, 'Title')

xlabel(app.UIAxes, 'X')

ylabel(app.UIAxes, 'Y')

app.UIAxes.Position = [52 241 675 326];


% Create HighpassButton

app.HighpassButton = uibutton(app.UIFigure, 'push');

app.HighpassButton.ButtonPushedFcn = createCallbackFcn(app, @HighpassButtonPushed, true);

app.HighpassButton.FontSize = 36;

app.HighpassButton.Position = [340 164 177 52];

app.HighpassButton.Text = 'High pass ';


% Create LowpassButton

app.LowpassButton = uibutton(app.UIFigure, 'push');

app.LowpassButton.ButtonPushedFcn = createCallbackFcn(app, @LowpassButtonPushed, true);

app.LowpassButton.FontSize = 36;

app.LowpassButton.Position = [340 47 177 52];

app.LowpassButton.Text = 'Low pass';


% Create ResetButton

app.ResetButton = uibutton(app.UIFigure, 'push');

app.ResetButton.ButtonPushedFcn = createCallbackFcn(app, @ResetButtonPushed, true);

app.ResetButton.FontSize = 48;

app.ResetButton.Position = [564 32 163 83];

app.ResetButton.Text = 'Reset';


% Create FreqDropDownLabel

app.FreqDropDownLabel = uilabel(app.UIFigure);

app.FreqDropDownLabel.HorizontalAlignment = 'right';

app.FreqDropDownLabel.FontSize = 24;

app.FreqDropDownLabel.Position = [561 176 55 29];

app.FreqDropDownLabel.Text = 'Freq';


% Create FreqDropDown

app.FreqDropDown = uidropdown(app.UIFigure);

app.FreqDropDown.Items = {'0.5', '0.75', '1', '1.25', '1.5'};

app.FreqDropDown.FontSize = 24;

app.FreqDropDown.Position = [631 175 96 30];

app.FreqDropDown.Value = '1';

end

end


methods (Access = public)


% Construct app

function app = midterm_app


% Create and configure components

createComponents(app)


% Register the app with App Designer

registerApp(app, app.UIFigure)


% Execute the startup function

runStartupFcn(app, @startupFcn)


if nargout == 0

clear app

end

end


% Code that executes before app deletion

function delete(app)


% Delete UIFigure when app is deleted

delete(app.UIFigure)

end

end

end