Matlab Freezes after playing tone couple of times.
3 次查看(过去 30 天)
显示 更早的评论
Hi;
I built a Matlab program that presents tones to an individual. On the screen, the user is presented with two buttons, volume up, volume down. Each time they press on a button the amplitude of the tone changes and the new tone is presented. However, after going back and forth between volume up and volume down, matlab freezes and I get an error: "MATLAB has causes an internal error to occur"
The way I am generating the tone is as follows:
C = [y1 y2];
ap = audioplayer(C,Fs);
playblocking(ap);
This is part of a bigger code that is in a function that is being accessed each time the user tune up or down the volume.
Can MATLAB handle sound that is being played in quick succession? I notice that the problem is not present if I am only tuning up or down and not jumping back and forth inbetween those two.
Thanks for your help; Really appreciate it
回答(1 个)
Daniel Shub
2013-8-8
The standard MATLAB sound commands have overhead associated with stopping and starting the soundcard so you cannot do what you are trying in a simple way. In order to do what you want you need the lower level control of the soundcard that port audio provides. The DSP toolbox in "newer" versions of MATLAB (I think R2012a) provides port audio support, but I am not sure to what extent. I almost always suggest the PsychToolbox even though it comes with a lot of baggage compared to some of the stand alone functions (e.g., playrec or pa_wavplay). Given what you are trying to do, it sounds like the baggage may actually be helpful.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!