MATLAB: How to iterate and play sinewaves in succession..

iterateloopMATLAB and Simulink Student Suitesine

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..

Best Answer

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.