How to iterate and play sinewaves in succession..

4 次查看(过去 30 天)
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 个评论
N/A
N/A 2019-2-12
why doesnt this generates a graph of the wave?
Star Strider
Star Strider 2019-2-12
@Maaz Rao —
Do you see a plot call in that code?
I don’t.

请先登录,再进行评论。

采纳的回答

Star Strider
Star Strider 2015-11-17
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 个评论
Edmund Paul Malinowski
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 2015-11-17
As always, my pleasure!
I learn a lot from solving problems here, so it’s a win for all.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Introduction to Installation and Licensing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by