Clear Filters
Clear Filters

How to reset or close sound() player?

2 views (last 30 days)
J. McCabe
J. McCabe on 18 Jan 2017
Answered: J. McCabe on 20 Jan 2017
I have a script with two calls to the soundsc() function in Matlab. The first plays an array of samples, the second plays a modified array for comparison. However, only the first is played. I assume I need to close or reset the soundsc() player between subsequent calls, but can't find anything on how to do that. I tried
clear playsnd
clear sound
but neither works.
Anyone know what I'm doing wrong? Thanks.
  1 Comment
Jan
Jan on 18 Jan 2017
Edited: Jan on 18 Jan 2017
Please post the relevant code. There is no need to "clear" a builtin command. There must be another reason for the observed behavior.

Sign in to comment.

Accepted Answer

J. McCabe
J. McCabe on 20 Jan 2017
After some research I figured the answer to the question. Apparently,subsequent calls to 'sound' or 'soundsc' are executed asynchronously, which means if you have
sound(x)
sound(y)
in your script, both will be executed virtually simultaneously. One way to get around that is to insert a 'pause()' after the first call, and set the pause value at > the time it takes to play the first 'sound()':
sound(x)
pause(5)
sound(y)

More Answers (1)

Jan
Jan on 18 Jan 2017
Perhaps the modern audioplayer can help you.
  1 Comment
J. McCabe
J. McCabe on 18 Jan 2017
Thanks, I appreciate the help. The reason I like the soundsc() function over the audioplayer is it automatically scales the magnitude between -1 to +1, and also it seems (IMO at least) a bit more messy to have to instantiate an audioplayer if I'm just playing some sine waves. What I ended up doing is just
z = horzcat(x,y);
soundsc(z,3600);
That seems to work fine. BTW, I did try to set up two audioplayers for the signals and play sequentially, but it still only played one signal. The horzcat played both. Wierd...

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!