在Matlab中使用ALSA API - 缓冲区问题

时间:2015-08-15 19:51:43

标签: c linux matlab audio alsa

作为实验课程的一部分,我必须更新有关脉冲编码调制的模拟。最初,模拟是在1998年使用OSS(开放式声音系统)编写的,之后从未更新过。我重写了整个代码并将其移植到ALSA。

代码本身有点长,这就是我没有把它放在这里但提供链接的原因。

现在我的问题:每当我想播放包含许多样本的随机长度的矢量时,我就会开始听到奇怪的周期性随机噪声。我有一种感觉,这是由于缓冲区不足。为了更好地理解,我记录了输出。

我相信它必须对我设置的参数做些什么。尽管我尝试了很多案例,但我没有找到解决方案。

只需查看期间大小,缓冲区大小,句点和sbplay(..)函数。 PS。:我的HW设置为缓冲区大小=周期大小*周期

我希望你能以某种方式帮助我!提前致谢

Code

Output WAV

BTW。:ALSA: buffer underrun on snd_pcm_writei call 对我帮助不大......

1 个答案:

答案 0 :(得分:0)

埃菲,

为什么不在MATLAB中尝试audioplayer / audiorecorder功能。他们在Linux上使用ALSO。如果您想要更好地控制延迟,请尝试使用dsp.AudioPlayer / AudioRecorder系统对象。

的Dinesh