Music score rendering library?


#1

I'm looking for a cross platform library (prefer floss of course) which can render music scores and is easy to integrate with JUCE.

Would be great if it also did many more things, like allow me to color the notes, insert a cursor, sequence notes...

I've been looking for a couple of days and it's hard to identify what's usable - lots of old/abandoned tools/libs out there.. So I was wondering if anyone could recommend something which works well with JUCE ?

So far, the only candidate I've come across is http://www.seescore.co.uk/ , which is a paid SDK and I'm not sure how easy it will be to integrate it with JUCE yet.


#2

I think MuseScore is Open Source? https://musescore.org/

Not sure though, how easy it would be to integrate it with JUCE.


#3

I was just investigating MuseScore.. 

Seems that it's written with QT, which makes it kind of unusable for JUCE integration, I guess.

I kind of doubt it, but has anyone had a good experience integrating JUCE and QT code ?

 


#4

I started to write a music notation module for JUCE based on the attempt of William Andrew Burnson ( https://github.com/burnson/Belle ). TBH it is a serious challenge. After one year of work (i finally rewrite almost everything from scratch) it is very far from finished.

I searched a long time before to go that way, but it appears that nothing FOSS exists already-made. I mean if your goal is more RT oriented than full score editer oriented. MuseScore, LilyPond, INScore ( http://inscore.sourceforge.net/ ) and others are always full applications that are not IMHO simply embeddable.

My 2 cents.


#5

Thank you for your input. I'm now at the end of my 3rd day of searching and checking things out and I also agree that there's not a lot of choice out there.
Yes, my goal is more realtime than score editing/display.. Do you have anything functional atm ?

Anyway, here are some links I've gathered so far

http://www.seescore.co.uk/developers/
http://www.soundslice.com/licensing/
http://www.alphatab.com/

The last two are Javascript-based, which can also be a solution for some types of project...

 


#6

Sadly nothing usable for the moment. My goal is to automagically render MIDI sequences. The drawing part is almost achieved as well as the pitch spelling process, but there's a bunch of job that remains... for the next year.

In my concern i wanted to use C++, to manage efficiency and get full integration. But if you consider to bind to another environment (a reasonable choice) the music21 library seems also a very mature project.

http://web.mit.edu/music21/doc/about/what.html


#7

Check out lilypond (TeX for music) and rosegarden (an open source sequencer with music score edition).

www.lilypond.org/

www.rosegardenmusic.com/


#8

What's the biggest hurdle in drawing a score if you already have a bunch of midi notes or equivalent? Is it to draw two sets of 5 lines and putting the notes in the right place? Or is it to determine the right key or time signature or is it more of a graphical nature? Or something else...


#9

“Is it to draw two sets of 5 lines…”

Yes ( https://en.wikipedia.org/wiki/List_of_musical_symbols ).

“…and putting the notes in the right place?”

Yes also ( http://www.amazon.com/gp/product/0882847309?Version=1&entries=0 ).

“Or is it to determine the right key or time signature…”

Yes also ( http://users.auth.gr/emilios/papers/aaai2000.pdf ).

“Or something else…”

Yes also :wink:


#10

Thanks for the links, most appreciated!


#11

A short but good introduction:

http://icking-music-archive.org/lists/sottisier/notation.pdf


#12

Here is a very nice library:

http://www.lenmus.org/en/lomse/intro

Lomse: A music score renderization/edition library

Maybe this fits very well with Juce


#13

Thanks for the link, i didn’t knew that library.


#14

The biggest challenge is pattern recognition, i.e. separation of voices, rhythm, etc. Knowing what belongs together and what the intended meaning is of an (unquantized) recording. So unless the music is extremely simple, rendering notation means figuring out the intended structure behind a stream of notes.


#15

than to create a music score from music. And if using a midi track as input to such a score renderer, the voices are normally already separated in different tracks or channels, and often also the meter and key is readily available.


#16

As said: For simple, quantized music it’s not a problem. It’s different with Jazz piano, contemporary music or other polyphonic material with rhythm changes, key changes, etc.