Is JUCE suitable for developing a music notation application?

Hello all! I am very new to JUCE and programming in general but have heard and read wonderful things about JUCE. I am interested in building an application that would require some basic music notation capabilities. By basic I mean the user will need to be able to input note heads and possibly chord symbols over those note heads. The user will also need to be able to view, save, print, and export the notated music from within the application. I definitely, however, will not need all the many features of a program like Finale, Sibelius, Dorico. I have spent the last few hours reading various post on this forum and have not been able to convince myself definitively one way or the other. So my question is, Is it possible to program an music notation application using JUCE? Are there other frameworks out there that might be better suited for creating a music notation application? Also, I need to be able to bring the application up as a MIDI effect inside a DAW, which I heard (creating a DAW plugin app) is super challenging to do in QT. MuseScore uses QT but it is open source. The licencing options available from JUCE seem much more attractive to me at this point when compared to QT. I’m almost sold on JUCE but before I hardcore throw myself in to learning it, I want to be as sure as I possibly can be that this is the way to go. Thanks for any feedback!:smiley:

If you need it to function as an audio plugin then JUCE is definitely the way to go.

If you need those features, but don’t need an audio plugin, or actual audio processing, then there are other languages / frameworks which could potentially be easier.

That said, you only get great at a framework by building lots of stuff with it, so it’s never a bad idea to do a simple project in a framework you’re interested in learning

3 Likes

IIRC the Belle API from Andrew Burnson < https://github.com/burnson/belle > can render in JUCE environment. Note that few years ago i forked it (to do more or less what you want to do) but i did not finished it < https://github.com/Spaghettis/Spaghettis/tree/master/libraries/belle >.

2 Likes

There is also “guido” (after Guido of Arezzo), which uses openFrameworks and seems to be able to render into juce bitmaps.

I am also in the boat of having started my own, since I wanted it to be interactive as editor. But it is far from being usable, always other priorities unfortunately.

Yes, it is possible in JUCE! I also started such project some time ago in a form of a JUCE module for scoring and also for easy notes input. I work with scores writing music so especially entering notes is something I am not fully satisfied when comes to already existing solutions - the most convenient for me would be a mixture of Notion and Guitar Pro by the way. Steinberg’s blog dedicated to Dorico has a lot of interesting information how the things should be done properly (interesting I found Dorico hard to work with but maybe it’s a matter of experience). The problem I have is similar to @daniel’s: there are always other deadlines and priorities.

1 Like

There is absolutely no printing/pdf support in juce. Also text rendering in general a bit lacking. If those two things are of concern for you i’d strongly suggest looking into a different direction.

I would not say absolutely as one can render to Postscript. But yes, even basic rendering to pdf would be a great feature.

Note that Belle (and my version) comes with a (basic) PDF renderer as well.

1 Like

We work with the GuidoEngine https://github.com/grame-cncm/guidolib, the library also render in a juce enviroment, it is possible to print (see under enviroments/juce) and works well with all operating systems (including ) Android and iOS. They also have a MusicXML parser: https://github.com/grame-cncm/libmusicxml

The library is open source with Mozilla license, which can be used for commercial purposes for free.
Disadvantages: The source code is sometimes obscure, the documentation is bad

1 Like

There is absolutely no printing/pdf support in juce. Also text rendering in general a bit lacking. If those two things are of concern for you i’d strongly suggest looking into a different direction.

Can printing and pdf export be added through other means? Say for example using another library in tandem with JUCE that provides those features? Or would that be unwise? It is very important that I give the user the ability to print and export to pdf from within the application.

As @nicolasdanet pointed out there seems to be belle and @Wah0airo mentioned GuidoEngine. I haven’t tried any of those. Just bare bone JUCE has no way of bringing up print dialogs, getting page dimensions and all of that.

There is also the (commercial) music notation SDK from Arpege Music: http://www.music-software-development.com/music-sdk.html

In the past I also encountered the SeeScore MusicXML SDK from Dolphin Computing: https://www.seescore.co.uk/developers/ (although I’m not sure if the score editing is already implemented in the SDK).

If you want it to function as an audio plugin then JUCE is sincerely the way to go.

If you want the one’s features, but don’t want an audio plugin or real audio processing, then there are other languages/frameworks which could probably be simpler.

That said, you best get wonderful at a framework by means of building plenty of stuff with it, so it’s in no way a horrific concept to do a simple assignment in a framework you’re interested in studying

Hello there!

I was wondering if you were able to use this platform to develop a basic music notation app? I am looking for a developer who could build a basic music notation editor for a music app we are developing.

I’m not a developer, but I am a music educator and musician. it’s amazing that it so hard to find a developer who understands music notation.

If there’s any information that could be helpful, I would be very grateful.

Thank you!

Antonio

Hey Antonio,

I decided to use another framework to develop my app so I never spent any time learning JUCE. For that reason I might not be the best person to ask about developing a music notation app with JUCE. I feel your pain on the developer search, music notation is a very intricate, specialized thing. As a non-developer I don’t know if you would be interested but there are a number of open source C++ music notation libraries out there that might be worth exploring, instead of hiring a developer to build one from scratch. Check out Belle by Andi Brae. Its almost all C++ and permissively licenced. If I may ask, what will you app do? Will it be like Finale, or Dorico, or one of those apps? Talk soon.

Will

Hi Will,

Thank you for your reply. We are having an app developing an app that can help jazz musicians developed their abilities to improvise jazz solos. We are currently using ABC Music Notation Library (https://www.abcjs.net) which was designed by a guy named Paul Rosen in our app. It is great for entering (and playing back) music notation from the back end, but on the front end it is not designed like a traditional music editor with the functionality of music editors like Sibelius, Finale, Muse Score, etc.

Although we are not looking for a complex editor like the ones mentioned above, I would like to have a simple music editor developed similar to the music notation editor used in programs like sound slice (https://www.soundslice.com/).

I will definitely check out Belle by Andi Brae. I wonder, do you know if it’s permissible for commercial use?

Thank you,

Antonio

Yes. It is permissible for commercial use. The licence info can be found in the repo. Sounds like a cool app concept. I’m a sax player myself so I’d love to check it out once its ready to go. Here is a song I recently released: https://www.youtube.com/watch?v=_Oa1AbVkb74 It’s more on the pop side but I love to play jazz too. Are you in the US? Best of luck with the app!

Will

Wow! Nice song! Great production & great sax playing! I’m also a sax player. Although I’m more of a straight-ahead player, here is a something on the funk side I put out some years ago. Get Down with Me - YouTube

Yes, I’m in the U.S. I live in the Washington DC area.

Thank you!

Antonio

Funky! Sounds great. I’m sure we know a lot of the same people. Haha.
My instagram is https://www.instagram.com/willcomptonmusic. Feel free to stay in touch. Also, here are a few more open source libraries for music notation. Just be sure to check the licence for each to be sure they are compatible with what you are doing. Cheers!
LilyPond: http://lilypond.org
Lomse: https://github.com/lenmus/lomse
VexFlow (javascript): https://www.vexflow.com/
Guido: http://www.music-notation.info/en/software/GUIDOLib.html
Arpege: http://www.arpegemusic.com/music-sdk.htm