classdef app1 < 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
FrequencySliderLabel matlab.ui.control.Label
FrequencySlider matlab.ui.control.Slider
end
properties (Access = private)
fs = 44100;
Freq;
music;
Signal1;
signal;
volume;
y1;
end
methods (Access = private)
% Code that executes after component creation
function startupFcn(app)
[app.y1,app.fs] = audioread('13 Bach- Toccata and Fungue.wav',[1 1323000]);
app.signal = app.y1;
end
% Value changed function: VolumeSlider
function VolumeSliderValueChanged(app, event)
value = app.VolumeSlider.Value;
end
% Value changed function: FrequencySlider
function FrequencySliderValueChanged(app, event)
freq = app.FrequencySlider.Value;
end
% Button pushed function: PlayButton
function PlayButtonPushed(app, event)
value = app.VolumeSlider.Value;
freq = app.FrequencySlider.Value;
app.Signal1 = value * app.signal;
app.Freq = freq * app.fs;
app.music = audioplayer(app.Signal1 ,app.Freq);
play(app.music,app.Freq);
time = (1:length(app.signal))/app.Freq;
plot(app.UIAxes, time, app.signal);
end
% Button pushed function: StopButton
function StopButtonPushed(app, event)
stop(app.music);
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.Position = [120 412 100 22];
app.PlayButton.Text = 'Play';
% Create StopButton
app.StopButton = uibutton(app.UIFigure, 'push');
app.StopButton.ButtonPushedFcn = createCallbackFcn(app, @StopButtonPushed, true);
app.StopButton.Position = [367 412 100 22];
app.StopButton.Text = 'Stop';
% Create UIAxes
app.UIAxes = uiaxes(app.UIFigure);
title(app.UIAxes, 'Freq')
xlabel(app.UIAxes, 'time')
ylabel(app.UIAxes, 'Y')
app.UIAxes.Position = [62 19 476 280];
% Create VolumeSliderLabel
app.VolumeSliderLabel = uilabel(app.UIFigure);
app.VolumeSliderLabel.HorizontalAlignment = 'right';
app.VolumeSliderLabel.Position = [177 371 47 15];
app.VolumeSliderLabel.Text = 'Volume';
% Create VolumeSlider
app.VolumeSlider = uislider(app.UIFigure);
app.VolumeSlider.Limits = [0 2];
app.VolumeSlider.MajorTicks = [];
app.VolumeSlider.MajorTickLabels = {};
app.VolumeSlider.ValueChangedFcn = createCallbackFcn(app, @VolumeSliderValueChanged, true);
app.VolumeSlider.MinorTicks = [];
app.VolumeSlider.Position = [245 377 150 3];
app.VolumeSlider.Value = 1;
% Create FrequencySliderLabel
app.FrequencySliderLabel = uilabel(app.UIFigure);
app.FrequencySliderLabel.HorizontalAlignment = 'right';
app.FrequencySliderLabel.Position = [161 316 63 15];
app.FrequencySliderLabel.Text = 'Frequency';
% Create FrequencySlider
app.FrequencySlider = uislider(app.UIFigure);
app.FrequencySlider.Limits = [0.5 2];
app.FrequencySlider.MajorTicks = [];
app.FrequencySlider.MajorTickLabels = {};
app.FrequencySlider.ValueChangedFcn = createCallbackFcn(app, @FrequencySliderValueChanged, true);
app.FrequencySlider.MinorTicks = [];
app.FrequencySlider.Position = [245 322 150 3];
app.FrequencySlider.Value = 1;
end
end
methods (Access = public)
% Construct app
function app = app1
% 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