用于C++跨平台音乐制作软件的图形



已编辑,见下文

我需要一个库来显示音乐制作软件上的乐谱图形。它将类似于 Sibelius:基本上用户创建乐谱,应用程序发送 midi 输出。

不是在寻找一个库来显示乐谱,因为出于各种原因,我必须自己实现它。此外,我正在寻找的库必须是跨平台的(至少应该在Windows和Linux上运行(。

图形将基于矢量或使用"line(point1, point2(;"等函数绘制

(在继续之前,让我声明我是C++新手,我的大部分经验都是使用解释语言 - PureData和处理,主要是(

现在来问问题:

  1. 我找到了煤渣。你认为辛德可以胜任这项任务吗?如果没有,则可以跳过 2 和 3。
  2. 我没有OpenGL的经验。我实际上无法弄清楚Cinder是专门使用OpenGL还是仅按需使用它。我的疑问是,当使用OpenGL库时,我的应用程序只能在带有专用显卡的计算机上运行?
  3. Cinder没有创建像Qt或GTK+这样的GUI的能力。是否可以将Cinder集成到另一个由Qt/GTK+/SDL/etc创建的窗口中?我想要像 Sibelius 这样的东西,您可以在符号图形窗口中集成普通的 GUI(按钮、菜单等(。
  4. 如果 Cinder 不是一个好的选择,您可能会针对特定的应用需求推荐什么?公开简历?SDL?SFML?

编辑:

我看到这被标记为题外话。对不起,我是新来的。我看到一些帖子要求这种推荐,所以我认为没关系。好吧,我会尽量客观和直截了当

问题:

我需要绘制乐谱图形,但我不想处理低级的东西(如Cinder,SDL,SFML,Ati-Grain(。那么,还有哪些其他可用的技术呢?也就是说,还有什么其他选择?

你所描述的是大量的工作,对于像你这样编程经验有限的人来说是不可能的。C++既不是一種簡單的語言,也不是一種寬恕的語言。这不仅仅是学习语法(就像处理或具有自动垃圾收集的类似语言一样( - 它还涉及管理内存和其他资源,不变量等 - 撇开链接,编译等的复杂性:反过来,这是先决条件,即您对计算机如何在较低级别工作有透彻的了解。

无论如何,我会尝试回答你的问题:

    你可以
  1. 用煤渣来做到这一点——这可能意味着必须重新发明轮子——但你可以做到。但是,我不会说煤渣真的适合这样的任务。这适用于加速的 2D/3D 计算机图形。你想要的是一些更通用的GUI库(也许是QT?关于 midi 支持,无论如何,您可能必须依赖其他库。

  2. 如今,大多数计算机都支持openGL。同样,你真的不需要openGL来完成你想做的事情。

  3. 是的,理论上你可以这样做 - 但这并不容易,而且对于你想做的事情来说并不是真正必要的。

  4. OpenCV绝对不是。这是用于图像处理 - 即光栅图形 - 您需要矢量图形。撇开OpenCV的Highgui在某些事情上真的很慢,所以无论如何你都必须使用其他库来渲染。我没有使用其他图书馆的经验。我的建议是要么使用一些解释性语言,如python,luaAV或超级Collider(顺便说一下,它确实有内置的midi支持(,这比C++容易得多,或者搜索一些开源的音乐符号替代品(如果有的话(->您始终可以在现有的代码库上构建自己的东西-没有必要重新发明轮子...

最新更新