gpt4 book ai didi

c++ - 用 C++ 编程的 DAW 使用什么进行图形渲染和音频输出?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:55:15 28 4
gpt4 key购买 nike

标题说明了一切 - 用 C++ 编写的数字音频工作站(如 Ableton)使用什么库或代码或其他什么来渲染其图形和播放音频?

在发现 C# + XNA 对于基于计算机的 daws 来说是一个可怕的选择之后——节拍器在我开发它之后很难“击中”正确,当我修复它时,它会跑调——我决定现在我会切换到 C++,因为 C++ 是一种中级语言,而 C# 是高级语言;也因为跨平台兼容性。

经过多次(使用极其不同的术语)Google 搜索后,我无法找到有关该主题的数据。任何人都可以提供有助于我开始编写 DAW 的信息吗?

如果您想知道,我正在编写一个 DAW,主要是因为我需要一个,而且我喜欢拥有一个我可以自定义、更改什么、做什么等的想法;也是为了好玩。我倾向于编写像这样非常高级和高级的项目来取乐,尽管我几乎没有完成任何...;)

最佳答案

首先,完全有可能编写稳定的节拍器并正确处理任何语言的计时。例如,许多基于 Web 的基本 DAW 都是用 Java 和 Flash 编写的。今天的谷歌 (moog) 涂鸦在 HTML5/Javascript 中运行(如果你有 chrome)。高级语言往往会减少您对垃圾收集等事情的控制,这通常意味着您无法实现低延迟,但除非您做错了什么,否则时间绝不应该成为问题。

现在,回答这个问题:

大多数专业的商业 DAW 使用自己的库直接与系统提供的 API 交互。对于音频,在 Linux 上,这意味着 OSS 或 Alsa; Mac OS X:核心音频; Windows 有很多音频 API,因为它们讨厌你。有些公司,例如 Avid,拥有他们的 API 是因为他们也讨厌你,但他们的硬件与标准 API 兼容,因为他们并不真的讨厌你。

对于图形:使用您的系统支持的任何图形库。对于可移植性,Qt 和 OpenGL 是不错的选择。我确定还有其他人。实际上并没有任何用于显示波形或任何东西的标准库——你自己做。正确有效地做到这一点并不是一件容易的事,但这也不是火箭科学。就显示而言,您也可以毫无问题地选择使用高级语言。

你也可以考虑使用http://www.openframeworks.cc/http://libcinder.org/

对于音频,您可以使用非常流行的 PortAudio 库:http://www.portaudio.com/

PortAudio 可在多种平台上运行,用 C 语言编写,具有良好的社区支持,并且比任何现有 API 都更易于使用。

关于c++ - 用 C++ 编程的 DAW 使用什么进行图形渲染和音频输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10713015/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com