首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C++中编程的DAW使用什么来进行图形渲染和音频输出?

在C++中编程的DAW使用什么来进行图形渲染和音频输出?
EN

Stack Overflow用户
提问于 2012-05-23 11:21:24
回答 4查看 3.1K关注 0票数 2

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

在发现C# + XNA对于基于计算机的daws来说是一个糟糕的选择之后--在我开发它之后,节拍器几乎不能正确地命中它,当我修复它时,它会停止跳动--我决定现在切换到C++,因为C++是一种中级语言,而C#是高级语言;也因为跨平台兼容性。

在谷歌上搜索了几次(词条千差万别)后,我还是找不到关于这个主题的数据。有人能给我一些帮助我开始写DAW的信息吗?

如果你想知道,我之所以写一个DAW,主要是因为我需要一个DAW,我喜欢这样的想法,我可以定制一个DAW,改变它的功能等等;同时也是为了好玩。我倾向于写像这样的高级和高水平的项目作为乐趣,尽管我几乎没有完成任何...;)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-24 06:44:36

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

现在,来回答这个问题:

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

对于图形:使用系统支持的任何图形库。对于可移植性,Qt和OpenGL是很好的选择。我相信还有其他人。实际上并没有任何用于显示波形或其他内容的标准库--您可以自己完成。要做到正确和高效并不是一件非常容易的事情,但它也不是火箭科学。就display而言,您也可以选择使用高级语言。

您还可以考虑使用http://www.openframeworks.cc/http://libcinder.org/

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

PortAudio运行在may平台上,用C语言编写,良好的社区支持,比任何现有的API都更容易使用。

票数 1
EN

Stack Overflow用户

发布于 2012-06-21 07:24:35

请确保您还查看了JuceRTAudioSTK。为了回答你的问题,Juce被许多商业插件和DAW作者使用,Ableton使用他们自己的库。

票数 1
EN

Stack Overflow用户

发布于 2012-05-23 11:46:32

Qt与OpenGL (通过QGLWidget)用于快速更新视图在我的DAW应用程序中效果很好……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10713015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档