我有一个示例,相当无用的应用程序,它生成信号(某个频率的短尖峰,随后在尾部有较长的静默期),然后必须将其写入声卡。声卡本身只是用迷你插孔-迷你插孔电缆环回。因此,我的应用程序记录刚刚传输的信号,以检测以下路径的延迟:
应用程序->驱动程序->dac->线路输出->线路输入->adc->驱动程序->应用程序
首先,对于我的任务,我需要尽量减少延迟,超越亚毫秒范围。0.01-0.1ms 就足够了,因为这是 PC 平台上的声纳应用程序。
其次,我希望能够从填充整个缓冲区切换到处理单个样本。或者,最多最小化缓冲区大小以使其尽可能短。我计算出在 192khz 采样率下需要 16 个或更短的样本。完美的方法是实时处理单个样本,我听说这是可能的。
那么,我如何才能“启用实时”?我需要哪种实时 - 硬实时还是软实时?
答案1
检查您的软件包管理器,查找您的 linux 映像(内核)的“rt”版本。另一个选择是使用“rt”补丁重新编译您的内核。
有关实时内核的非常好的解释请参见关联。
答案2
我如何才能“启用实时”?
Csound 通过命令行提供音频的“实时”播放。
http://csound.github.io/download.html
http://www.csounds.com/manual/html/UsingRealTime.html
它要求您下载并安装 Csound,并使用它来代替您的默认音频设备。
我需要哪种实时——硬实时还是软实时?
Csound 是一种“软”解决方案。