lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

MSDL (Music Score Description Language


From: Jacques Menu
Subject: MSDL (Music Score Description Language
Date: Mon, 15 Mar 2021 23:06:09 +0100

Bonsoir tutti,

MSDL est un langage qui se veut proche des musicien-ne-s, tout en offrant des 
possibilités pour les arrangeurs dans l’esprit de ce que font Edition Engraver, 
arranger.ily et Abjad. 
L’idée est de pouvoir réutiliser un même fragment de musique en différents 
endroit en le manipulant, le transposant ou adaptant la dynamique et 
l’accentuation pour les besoins de l'orchestration, par exemple.


MSDL est d’un peu plus haut niveau que LilyPond et de franchement plus haut 
niveau que MusicXML.

Il peut être converti par un compilateur en du code LilyPond, musique braille, 
MusicXML et Guido. La création de fichiers MIDI est à l’agenda, mais pas pour 
tout de suite.

La suite de ce message montre les choix de conception et des exemples. La 
version 1.001 du compilateur, baptisé msdl au niveau de la ligne de commande, 
vient d’être mise à disposition sur le dépôt de la librairie libmusicxml2 de 
Grame à Lyon.


Pour installer la librairie sur Linux, Windows ou Mac OS X, il faut avoir un 
compilateur C++11 et cmake, et prendre la branche lilypond sur le dépôt de 
Grame:

        git clone -b lilypond https://github.com/grame-cncm/libmusicxml.git 
libmusicxml-git
        cd libmusicxml-git/build
        make

Les executables se retrouvent dans build/bin. 
Les mêmes fonctionalités peuvent être utilisées sans ligne de commande, comme 
depuis un site web.


Les mots-clés du langage comme pitches/hauteurs sont réservés, comme dans les 
langages de programmation, et ne sont pas introduits par un ‘\’ comme en 
LilyPond.

Le langage est multilingue pour ce qui est des mots-clés, et on peut utiliser 
le compilateur pour les traduire d’une langue dans une autre. Pour l’instant, 
il y a le français et l’anglais, mais il est facile d’en ajouter d’autres si 
l’on dispose de quelqu’un pour faire la traduction.


La syntaxe pour fournir les notes et autres éléments est très proche de celle 
de LilyPond, avec une différence majeure quant à la barre verticale :

        - elle indique non pas la fin d’une mesure, mais le fait que la musique 
qui suit va dans la mesure indiquée, comme dans |2 c2.. d’’8, où ces deux notes 
vont dans la mesure 2;

        - il est ainsi possible de ‘déposer’ de la musique dans la partition, 
comme un peintre met de la couleur par touches ou repasse où il en a déjà 
déposé;

        - cela permet de rentrer la musique non-linéairement, donc pas 
strictement de gauche à droite dans des voix.

        - c’est pour cette raison que staff/portée et voice/voix sont fondues 
en une seule notion music/musique. Il peut y avoir plusieurs couches dedans, 
selon les besoins du compositeur. 

Cet emploi de ‘|’ est une suggestion de Jean Abou-Samra, que je trouve 
excellente. 
L’exemple joint UnPetitAir.msdl, qui lui est dû, montre comment on peut créer 
une partition de piano avec cette approche.

Suite à des échanges avec Jean, il y aura prochainement :

        |3 c1      % mesure 3
        |-2 d2 e2  % 2 plus à gauche, donc la 1
        |+1 g1     % 1 plus à droite, donc la 2

Je vais aussi ajouter le mode de saisie des octaves :

        octaves absolute/absolues      % par défaut, le seul actuellement
        octaves relative/relatives
        octaves fixed/fixees d’


Comme je n’en suis qu’au début, beaucoup de choses sont encore ouvertes dans 
MSDL. 
Je m’adresse à vous pour connaître vos idées sur ce qu’il serait bien d’avoir à 
disposition dans un tel langage.

Je joins les fichiers produits par les commandes suivante, ainsi que des vues 
du résultat :

        msdl -lilypond HelloWorld.msdl -global-staff-size 40 -jianpu -o 
HelloWorld_JIANPU.ly

        msdl -musicxml HelloWorld.msdl -auto-output-file-name 


Merci de votre aide!

JM

==========================================================================

Vue de HelloWorld.xml dans MuseScore :

PNG image


==========================================================================

Premier exemple MSDL :

Attachment: HelloWorld_JIANPU.ly
Description: Binary data


%{
  The unavoidable HelloWorld score
%}


% the language used for the pitches
% -----------------------------------------------

pitches english            % default is english


% is there an anacrusis?
% -----------------------------------------------

anacrusis                 % measure numbers start at 0


% the structure
% -----------------------------------------------

% score helloWorld = "Hello World in MSPL" {

  music {
    |1 c2.. d''8
    |||                   % final bar
  }

% } % helloWorld


==========================================================================

Le langage est multilingue pour ce qui est des mots-clés :

%{
  Un exemple MSDL en français
%}


% l'identification
% -----------------------------------------------

titre       "MSDL en français"
compositeur "A. N. Onyme"


% la langue pour les hauteurs de notes
% -----------------------------------------------

hauteurs francais  % par défaut: english

% la partition
% -----------------------------------------------

partition bonjourToutLeMonde = "Bonjour tout le monde en MSDL" {

  musique {
    |1 do2.. re''8        % à placer dans la mesure 1
    |||                   % double barre finale
  }

} % bonjourToutLeMonde


==========================================================================






Attachment: UnPetitAir.msdl
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]