【问题标题】:ALSA API using in Matlab - buffer issue在 Matlab 中使用 ALSA API - 缓冲区问题
【发布时间】:2015-08-15 19:51:43
【问题描述】:

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

代码本身有点长,所以我没有放在这里,而是提供一个链接。

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

我认为这与我设置的参数有关。尽管我尝试了很多案例,但我没有找到解决方案。

看看周期大小、缓冲区大小、周期和 sbplay(..) 函数。 PS.:我的硬件设置为缓冲区大小 = 周期大小 * 周期

我希望你能以某种方式帮助我!在此先感谢

Code

Output WAV

顺便说一句:ALSA: buffer underrun on snd_pcm_writei call 对我帮助不大...

【问题讨论】:

    标签: c linux matlab audio alsa


    【解决方案1】:

    Efe,

    为什么不试试 MATLAB 中的音频播放器/录音机功能。他们在 Linux 上也使用。如果您想更好地控制延迟,请尝试使用 dsp.AudioPlayer/AudioRecorder 系统对象。

    饭菜

    【讨论】:

    • 感谢迪内什的建议!我稍后会尝试一下。希望我的顾问对那个解决方案很好:))
    猜你喜欢
    • 1970-01-01
    • 2018-02-28
    • 2014-05-28
    • 1970-01-01
    • 2013-03-27
    • 2017-01-05
    • 1970-01-01
    • 2014-07-09
    相关资源
    最近更新 更多