What you are describing is a LOT of work and something impossible for someone with limited programming experience such as yourself. C++ is neither an easy language nor a language that forgives.. it’s not just about learning the syntax (as is the case with processing or similar languages with automatic garbage collection) – it’s also about managing memory and other resources, invariants, etc – leaving aside the complexities of linkage, compilation, etc: in turn this prerequisites that you have a thorough understanding of how computers work at a lower level.
Anyway, I’ll try to answer your questions:
-
You could do this with cinder – this would probably mean having to re-invent the wheel – but you can do. I wouldn’t say, however, that cinder is really suitable for such a task. This is meant for accelerated 2D/3D computer graphics. What you want is some more generic GUI library (maybe QT?). Regarding midi-support, you’ll probably have to rely on some other library for this anyway.
-
Most computers these days do support openGL. Again you don’t really need openGL for what you want to do.
-
Yes you can do this in theory – but it won’t be easy and it’s not really necessary for what you want to do.
-
OpenCV definitely NOT. This is for image processing – i.e. raster graphics – you need vector graphics. Let aside that OpenCV’s Highgui is really slow on certain things so you’d have to use some other library for rendering anyway. I have no experience with the other libraries. My suggestion would be to either use some interpreted language such as python, luaAV or maybe SuperCollider (which does have built-in midi support by the way) which is far easier than C++, or to search for some open-source music-notation alternative (if there any) -> you can always build something of your own upon an existent code-base – reinventing the wheel is not necessary…
9
solved Graphics for C++ cross-platform music making software [closed]