How to iterate and play sinewaves in succession..

3 views (last 30 days)
Hey all,
Slowly getting there with my program but would like some advice on the best method to preform the sine wave generation. So far it works but all waves play at the same time and i want each one to play for 1 sec in turn. Obviously my code for this is so far clumsy and long so i'd need to iterate through something to reduce my code and to get it so do the desired thing..
Below is my full code, just so you can see where some of the data and variables come from:
prompt={'1st Note:','2nd Note:','3rd Note:','4th Note:','5th Note:','6th Note:','7th Note:'};
name='Enter Note Values (C-B)..';
defaultans={'C','D','E','F','G','A','B'};
answer=inputdlg(prompt,name,[1,50],defaultans);
% These three lines replace all of your loop and elseif statements:
V = 'CDEFGAB';
idx = cellfun(@(c)find(V==c),answer);
frq = [261.626,293.665,329.628,349.228,391.995,440.000,493.883];
out = frq(idx);
% GENERATE SINE WAVES..
%samples
N = T*Fs;
Fs = 44100;
%samples vector
tX1 = 0:1/Fs:1;
tX2 = 1:1/Fs:2;
tX3 = 2:1/Fs:3;
tX4 = 3:1/Fs:4;
tX5 = 4:1/Fs:5;
tX6 = 5:1/Fs:6;
tX7 = 6:1/Fs:7;
% CREATE SINE WAVES..
Sine1 = sin(2*pi*out(1)*tX1);
Sine2 = sin(2*pi*out(2)*tX2);
Sine3 = sin(2*pi*out(3)*tX3);
Sine4 = sin(2*pi*out(4)*tX4);
Sine5 = sin(2*pi*out(5)*tX5);
Sine6 = sin(2*pi*out(6)*tX6);
Sine7 = sin(2*pi*out(7)*tX7);
% PLAY SOUNDS..
soundsc(Sine1,Fs)
soundsc(Sine2,Fs)
soundsc(Sine3,Fs)
soundsc(Sine4,Fs)
soundsc(Sine5,Fs)
soundsc(Sine6,Fs)
soundsc(Sine7,Fs)
Thanks,
Paul..
  3 Comments
N/A
N/A on 12 Feb 2019
why doesnt this generates a graph of the wave?
Star Strider
Star Strider on 12 Feb 2019
@Maaz Rao —
Do you see a plot call in that code?
I don’t.

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 17 Nov 2015
I didn’t run your code, but if you want to create an audioplayer object, you can use the playblocking function.
Otherwise, it’s likely easier to insert a pause(n) call (where ‘n’ is the number of seconds each tone lasts) after your soundsc call.
  8 Comments
Edmund Paul Malinowski
Edmund Paul Malinowski on 17 Nov 2015
That's awesome. I need to work on the plots now properly but the main sound generation bit is done. Thanks so much for your help, Star :)
Star Strider
Star Strider on 17 Nov 2015
As always, my pleasure!
I learn a lot from solving problems here, so it’s a win for all.

Sign in to comment.

More Answers (0)

Categories

Find more on Startup and Shutdown in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!