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

时间:2016-02-11 22:05:51

标签: c++ graphics cinder

已编辑,请参阅下文

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

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

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

(在继续之前让我说我是C ++的新手,我的大多数经验都是使用解释语言 - 主要是PureData和Processing)

现在回答问题:

  1. 我找到了Cinder。你认为Cinder是否适合这项任务?如果不是,您可以跳过2和3。
  2. 我没有使用OpenGL的经验。我实际上无法弄清楚Cinder是否仅使用OpenGL,或者仅在需要时使用它。我的疑问是,当使用OpenGL库时,我的应用程序只能在带有专用显卡的计算机上运行?
  3. Cinder没有创建像Qt或GTK +这样的GUI的能力。是否有可能在Qt / GTK + / SDL /等创建的另一个窗口中调用Cinder?我想要Sibelius之类的东西,你可以在符号图形窗口中集成普通的GUI(按钮,菜单等)。
  4. 如果Cinder不是一个好的选择,您可以为特定的应用需求提出什么建议? OpenCV的? SDL? SFML?
  5. 修改

    我看到这被标记为偏离主题。对不起,我是新来的。我已经看到some posts要求这种推荐,所以我认为这没关系。好吧,我会尽力做到客观和直截了当

    问题:

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

1 个答案:

答案 0 :(得分:0)

您所描述的是很多工作,对于像您这样编程经验有限的人来说,这是不可能实现的。 C ++既不是一种简单的语言,也不是一种原谅的语言..它不仅仅是学习语法(如处理或类似语言的自动垃圾收集的情况) - 它还涉及管理内存和其他资源,不变量等 - 离开除了链接,编译等的复杂性之外:反过来,这一先决条件使您可以全面了解计算机在较低级别的工作方式。

无论如何,我会尽力回答你的问题:

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

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

  3. 是的,你可以在理论上做到这一点 - 但这并不容易,对你想做的事情来说并不是真的有必要。

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