midterm
This is my code, please feel free to take a look and do the reference.
CODE:
classdef app2 < matlab.apps.AppBase
% Properties that correspond to app components
properties (Access = public)
UIFigure matlab.ui.Figure
playButton matlab.ui.control.Button
stopButton matlab.ui.control.Button
UIAxes matlab.ui.control.UIAxes
VolumeSliderLabel matlab.ui.control.Label
VolumeSlider matlab.ui.control.Slider
FrequenceSliderLabel matlab.ui.control.Label
FrequenceSlider matlab.ui.control.Slider
reverseButton matlab.ui.control.StateButton
FourierButton matlab.ui.control.Button
applauseButton matlab.ui.control.Button
laughter20Button matlab.ui.control.Button
end
methods (Access = private)
% Button pushed function: playButton
function playButtonPushed(app, event)
[y,fs]=audioread('D:\S&S\matlab.mid\哆啦A夢 主題曲.mp3');
time = (1:length(y))/fs;
plot(app.UIAxes, time, y);
sound(y,fs);
end
% Button pushed function: stopButton
function stopButtonPushed(app, event)
clear sound;
end
% Value changed function: VolumeSlider
function VolumeSliderValueChanged(app, event)
value = app.VolumeSlider.Value;
[y,fs]=audioread('D:\S&S\matlab.mid\哆啦A夢 主題曲.mp3');
time = (1:length(y))/fs;
plot(app.UIAxes, time, value*y);
sound(value*y,fs);
end
% Callback function
function SpinnerValueChanged(app, event)
end
% Value changed function: FrequenceSlider
function FrequenceSliderValueChanged(app, event)
value = app.FrequenceSlider.Value;
[y,fs]=audioread('D:\S&S\matlab.mid\哆啦A夢 主題曲.mp3');
time = (1:length(y))/(value*fs);
plot(app.UIAxes, time, y);
sound(y,value*fs);
end
% Value changed function: reverseButton
function reverseButtonValueChanged(app, event)
value = app.reverseButton.Value;
[y,fs]=audioread('D:\S&S\matlab.mid\哆啦A夢 主題曲.mp3');
sound(flipud(y),value*fs);
time = (1:length(y))/(value*fs);
plot(app.UIAxes, time, flipud(y));
end
% Button pushed function: FourierButton
function FourierButtonPushed(app, event)
[y,fs]=audioread('D:\S&S\matlab.mid\哆啦A夢 主題曲.mp3');
time=248;
time2 = (1:length(y))/fs;
FT=fft(y);
Y=abs(FT/time);
Y2=Y(1:time/2+1);
Y2(2:end-1)=2*Y2(2:end-1);
f2=fs*(0:(time/2))/time;
plot(f2,Y2);
end
% Button pushed function: applauseButton
function applauseButtonPushed(app, event)
[y,fs]=audioread('D:\S&S\matlab.mid\applause.mp3');
sound(y,fs);
end
% Button pushed function: laughter20Button
function laughter20ButtonPushed(app, event)
[y,fs]=audioread('D:\S&S\matlab.mid\罐頭笑聲 音效.mp3');
sound(2*y,fs);
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 640 480];
app.UIFigure.Name = 'UI Figure';
% Create playButton
app.playButton = uibutton(app.UIFigure, 'push');
app.playButton.ButtonPushedFcn = createCallbackFcn(app, @playButtonPushed, true);
app.playButton.FontSize = 32;
app.playButton.Position = [85 386 138 61];
app.playButton.Text = {'play'; ''};
% Create stopButton
app.stopButton = uibutton(app.UIFigure, 'push');
app.stopButton.ButtonPushedFcn = createCallbackFcn(app, @stopButtonPushed, true);
app.stopButton.BackgroundColor = [1 0 0];
app.stopButton.FontSize = 32;
app.stopButton.FontColor = [0 0 1];
app.stopButton.Position = [85 190 138 80];
app.stopButton.Text = 'stop';
% Create UIAxes
app.UIAxes = uiaxes(app.UIFigure);
title(app.UIAxes, 'Plot')
xlabel(app.UIAxes, 'time')
ylabel(app.UIAxes, 'magnitude')
app.UIAxes.Position = [284 254 300 185];
% Create VolumeSliderLabel
app.VolumeSliderLabel = uilabel(app.UIFigure);
app.VolumeSliderLabel.HorizontalAlignment = 'right';
app.VolumeSliderLabel.Position = [31 111 46 22];
app.VolumeSliderLabel.Text = 'Volume';
% Create VolumeSlider
app.VolumeSlider = uislider(app.UIFigure);
app.VolumeSlider.Limits = [0 5];
app.VolumeSlider.ValueChangedFcn = createCallbackFcn(app, @VolumeSliderValueChanged, true);
app.VolumeSlider.Position = [98 120 150 3];
% Create FrequenceSliderLabel
app.FrequenceSliderLabel = uilabel(app.UIFigure);
app.FrequenceSliderLabel.HorizontalAlignment = 'right';
app.FrequenceSliderLabel.Position = [23 36 63 22];
app.FrequenceSliderLabel.Text = 'Frequence';
% Create FrequenceSlider
app.FrequenceSlider = uislider(app.UIFigure);
app.FrequenceSlider.Limits = [0 4];
app.FrequenceSlider.ValueChangedFcn = createCallbackFcn(app, @FrequenceSliderValueChanged, true);
app.FrequenceSlider.Position = [107 45 150 3];
% Create reverseButton
app.reverseButton = uibutton(app.UIFigure, 'state');
app.reverseButton.ValueChangedFcn = createCallbackFcn(app, @reverseButtonValueChanged, true);
app.reverseButton.Text = 'reverse';
app.reverseButton.BackgroundColor = [0 0 0];
app.reverseButton.FontSize = 32;
app.reverseButton.FontColor = [1 1 1];
app.reverseButton.Position = [84 293 164 65];
% Create FourierButton
app.FourierButton = uibutton(app.UIFigure, 'push');
app.FourierButton.ButtonPushedFcn = createCallbackFcn(app, @FourierButtonPushed, true);
app.FourierButton.BackgroundColor = [1 0.4118 0.1608];
app.FourierButton.FontSize = 32;
app.FourierButton.Position = [344 190 191 42];
app.FourierButton.Text = 'Fourier';
% Create applauseButton
app.applauseButton = uibutton(app.UIFigure, 'push');
app.applauseButton.ButtonPushedFcn = createCallbackFcn(app, @applauseButtonPushed, true);
app.applauseButton.BackgroundColor = [1 1 0];
app.applauseButton.FontSize = 30;
app.applauseButton.Position = [346 122 176 48];
app.applauseButton.Text = 'applause';
% Create laughter20Button
app.laughter20Button = uibutton(app.UIFigure, 'push');
app.laughter20Button.ButtonPushedFcn = createCallbackFcn(app, @laughter20ButtonPushed, true);
app.laughter20Button.BackgroundColor = [1 1 0];
app.laughter20Button.FontSize = 30;
app.laughter20Button.Position = [344 57 178 43];
app.laughter20Button.Text = 'laughter2.0';
end
end
methods (Access = public)
% Construct app
function app = app2
% Create and configure components
createComponents(app)
% Register the app with App Designer
registerApp(app, app.UIFigure)
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