I want to increase/decrease volume of audio file using the slider,is it necessary to run audio data from slider?

7 views (last 30 days)
global filename;
[y,Fs] = audioread(filename);
slider_val = get(hObject, 'Value');
if slider_val == 0
x = y/5; % Decrease volume
player = audioplayer(x, Fs);
play(player,[1 (get(player, 'SampleRate')*3)]);
elseif slider_val == 1
x = y*5; % Increase volume
player = audioplayer(x, Fs);
play(player,[1 (get(player, 'SampleRate')*3)]);

Accepted Answer

Walter Roberson
Walter Roberson on 12 Dec 2018
You should use the Audio Systems Toolbox. At each point you would fetch a batch of samples and multiply them by the current slider value, and queue them to be played as audio.
Creating a separate audio player for each batch of sounds is too much overhead, and there is no feasible way to update the sound samples of an audioplayer once it is built.
  6 Comments
Madhav Sapkota
Madhav Sapkota on 14 Dec 2018
Edited: Madhav Sapkota on 14 Dec 2018
[x,Fs]= audioread('G:\Year3\MediaTechnology\Assignment\Sune Khabar.mp3');
slider_val = get(hObject, 'Value'); % for getting the slider value
disp(get(hObject,'Value')); % displaying the slider value
k = slider_val; % Setting slidervalue in k
% player = audioplayer(x,Fs*k);
[loudness,loudnessRange] = integratedLoudness(x,Fs);
volume = [loudness*k,loudnessRange];
player = audioplayer(volume);
play(player); %play
guidata(hObject,handles);

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!