【发布时间】:2015-11-25 18:07:48
【问题描述】:
我正在使用 Qt 创建一个软合成器。这意味着获得低延迟音频(缓冲区大小约为 5-10 毫秒),以便响应 UI 控件。
软合成器的组成部分是:
- 处理 UI 的主窗口
- 综合引擎,它是 QIODevice 的子类
- QAudioOutput,它是 Qt Multimedia 低延迟音频输出类
我基于我自己的破解版spectrum example 使用拉模式生成基本波表合成器。
在实践中,如果缓冲区小于 100 毫秒左右,我发现我会出现故障。这对于良好的响应能力来说太长了。
解决方案似乎是多线程,但我不清楚如何在 Qt 中构建它。我的直觉是将合成器引擎放入自己的线程中,但我不清楚
- 鉴于它已经是 QIODevice 的子类,如何执行此操作
- 这是否会干扰 QAudioOutput(无论如何它都在自己的线程中?)
【问题讨论】:
标签: c++ multithreading qt audio qtmultimedia