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