MATLAB Answers

How to play dial tones based on user input?

4 views (last 30 days)
faith
faith on 3 May 2020
My goal is to have dial tones be played for 1 second each with 1 second pauses when the user inputs 10 numbers. I’ve already assigned the tones to variables num1,num2…. I am struggling on how identify the number that is inputted and assign it to the sound and play it with the pauses
clc;clear;
%sound for 1
fs=8192;
T=.5;
t=0:(1/fs):T;
y1=cos(2*pi*1209*t)+cos(2*pi*697*t);
%sound for 2
fs=8192;
T=.5;
t=0:(1/fs):T;
y2=cos(2*pi*1336*t)+cos(2*pi*697*t);
%sound for 3
fs=8192;
T=.5;
t=0:(1/fs):T;
y3=cos(2*pi*1477*t)+cos(2*pi*697*t);
%sound for 4
fs=8192;
T=.5;
t=0:(1/fs):T;
y4=cos(2*pi*1209*t)+cos(2*pi*770*t);
%sound for 5
fs=8192;
T=.5;
t=0:(1/fs):T;
y5=cos(2*pi*1336*t)+cos(2*pi*770*t);
%sound for 6
fs=8192;
T=.5;
t=0:(1/fs):T;
y6=cos(2*pi*1477*t)+cos(2*pi*770*t);
%sound for 7
fs=8192;
T=.5;
t=0:(1/fs):T;
y7=cos(2*pi*1209*t)+cos(2*pi*852*t);
%sound for 8
fs=8192;
T=.5;
t=0:(1/fs):T;
y8=cos(2*pi*1336*t)+cos(2*pi*852*t);
%sound for 9
fs=8192;
T=.5;
t=0:(1/fs):T;
y9=cos(2*pi*1477*t)+cos(2*pi*852*t);
%sound for 0
fs=8192;
T=.5;
t=0:(1/fs):T;
y0=cos(2*pi*1336*t)+cos(2*pi*941*t);
num1=audioplayer(y1,fs);
num2=audioplayer(y2,fs);
num3=audioplayer(y3,fs);
num4=audioplayer(y4,fs);
num5=audioplayer(y5,fs);
num6=audioplayer(y6,fs);
num7=audioplayer(y7,fs);
num8=audioplayer(y8,fs);
num9=audioplayer(y9,fs);
num0=audioplayer(y0,fs);
for ii = 1:10
x(ii) = input('Input a number: ');
end
tt= num2cell(x);
[a,b,c,d,e,f,g,h,i,j] = deal(tt{:});

  0 Comments

Sign in to comment.

Answers (1)

Vinai Datta Thatiparthi
Vinai Datta Thatiparthi on 5 May 2020
Hey,
A few ideas that could help you:
  • A simple way would be to use multiple if-else statements or switch cases within the for loop and execute your statements within these if-else/switch statements
  • You could also try the map option in MATLAB
  • Use the function pause to produce pauses between every statement execution
  • Further, since the first 3 statements for every case (fs, T & t) are the same across all cases, you don't have to write them every time. Having these lines once outside the for loop should suffice
Hope this helps!

  0 Comments

Sign in to comment.

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!