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