Avis de non-responsabilité : Je ne connais rien à la musique ;-)
Vous avez des exigences assez strictes ;-) J'ai des suggestions, mais elles ne répondent pas à tous vos besoins :-(
MusicXML
Comme vous le savez peut-être déjà, il existe un format XML appelé MusicXML Les spécifications ont été conçues par Recordare qui peut être utilisé pour mettre en page de la musique en notation XML.
Par exemple, "un morceau de musique d'une mesure qui contient une note entière sur le do central, basé sur le temps 4/4". ressemblerait à ceci :
Le MusicXML pour le rendre serait quelque chose comme :
<score-partwise version="2.0">
<part-list>
<score-part id="P1">
<part-name>Music</part-name>
</score-part>
</part-list>
<part id="P1">
<measure number="1">
<attributes>
<divisions>1</divisions>
<key>
<fifths>0</fifths>
</key>
<time>
<beats>4</beats>
<beat-type>4</beat-type>
</time>
<clef>
<sign>G</sign>
<line>2</line>
</clef>
</attributes>
<note>
<pitch>
<step>C</step>
<octave>4</octave>
</pitch>
<duration>4</duration>
<type>whole</type>
</note>
</measure>
</part>
</score-partwise>
Cela semble donc être un format standardisé que vous pourriez suivre, en supposant que vous développiez votre propre bibliothèque ( ce que vous ne faites pas ).
Cependant, ce format semble être très populaire : il y a une tout un tas de logiciels que Recordare liste comme lisant et écrivant MusicXML, mais je n'ai pas pu trouver tout ce qui est qui répond à vos exigences (bibliothèque Java, licence non virale). abc4j semble correct, mais vous l'avez déjà mentionné comme n'ayant pas toutes les fonctionnalités que vous vouliez.
Zong!Viewer par Xenoage Software est un programme Java gratuit qui lit et écrit MusicXML. Cependant, il est sous licence GPL :-(
Je suppose que si vous n'êtes pas intéressé par la création de votre propre bibliothèque, MusicXML ne vous intéresse pas.
Format de fichier d'échange de notations
Quoi qu'il en soit, il existe également un format appelé Format de fichier d'échange de notations qui ne semble pas être aussi populaire que le programme MusicXML . Cependant, j'ai trouvé une applet Java appelée "Niffty NIFF File Viewer". qui, en fonction de la notation NIFF, affiche des notations musicales graphiques. Ce logiciel est également sous licence GPL.
Le gars de Niffty a aussi écrit un article très détaillé Guide du programmeur qui explique comment travailler avec le code source de Niffty. Cela pourrait être utile ?
Notation ABC
Il existe une autre forme de notation appelée Notation ABC qui a apparemment "est utilisé depuis au moins le 19ème siècle" . Il y a une grande variété de logiciels qui l'utilise. Je n'ai pas regardé la plupart des programmes répertoriés, mais l'un d'entre eux, que je voyais constamment mentionné dans diverses recherches sur Google, était le suivant Skink à cinq lignes .
Skink à cinq lignes "est une application de bureau qui est utilisée pour créer la notation de la portée musicale en utilisant le standard abc" . Il est écrit en Java et est gratuit (comme dans bière, pas comme dans discours). Je n'ai pas vu de mention d'une licence spécifique, cependant :
Skink est un logiciel libre. Si vous souhaitez faire un don pour l'acquérir, vous pouvez le faire via le bouton PayPal ci-dessous (utilisez l'adresse ci-dessus). Il est possible que je le rende open-source, selon que je parvienne ou non à le faire évoluer au point de vouloir montrer mes erreurs au monde entier... J'ai encore beaucoup de choses à faire d'ici là, alors ne demandez pas !
Peut-être devriez-vous le demander quand même, sous la forme d'une belle donation ;-) Dites à l'auteur ce que vous essayez de faire.
OK ! J'espère que ces informations vous aideront. Bonne chance !