Représentation de la musique - GNU LilyPond
Description: GNU LilyPond

Suivant : Exemples d'applications, Précédent : Quels signes graver ?, Haut : Introduction

### 1.4 Représentation de la musique

Idéalement, le format d'entrée pour n'importe quel système de formatage est une description abstraite du contenu. Dans ce cas-ci, ce serait la musique elle-même. Cela pose un formidable problème : comment pouvons-nous définir ce que la musique est réellement ? Plutôt que d'essayer de trouver une réponse, nous avons renversé la question. Nous écrivons un logiciel capable de produire de la musique écrite, et adaptons le format pour atteindre la plus grande concision possible. Quand le format ne peut plus être simplifé, il nous reste par définition le contenu lui-même. Notre logiciel sert de définition formelle d'un document de musique.

La syntaxe est également l'interface utilisateur pour LilyPond, par conséquent il est facile de saisir

         c'4 d'8

c'est-à-dire un do central noire et, juste au-dessus un ré croche

Sur une échelle microscopique, une telle syntaxe est facile à utiliser. A plus grande échelle, la syntaxe a besoin aussi de structure. Comment serait-il possible autrement de rentrer des pièces complexes comme des symphonies ou des opéras? La structure est formée par le concept d'expression musicale : en combinant de petits fragments de musique pour en former de plus grands, on peut exprimer de la musique plus complexe. Par exemple

>          c4

Des accord peuvent être construits avec `<<` et `>>` autour des notes.

    <<c4 d4 e4>>

Cette expression est mise dans une séquence en l'encadrant avec des accolades `{ ... }`

    { f4 <<c4 d4 e4>> }

Ceci est également une expression, et peut donc encore une fois être combinée avec d'autres expressions simultanées (une blanche) en utilisant <<, `\\`, et >>

    << g2 \\ { f4 <<c4 d4 e4>> } >>

De telles strucutres récursives peuvent être spécifiées formellement et de manière ordonnée dans une grammaire indépendante de tout contexte. Le code d'analyse est aussi générée à partir de cette grammaire. Autrement dit, la syntaxe de LilyPond est définie clairement et sans ambiguités.

L'interface utilisateur et la syntaxe sont ce que les gens voient et manipulent le plus. Elles sont e npartie une affaire de goût, et aussi sujettes à beaucoup de discussions. Même si ces discussions sur les goûts ont leur mérite, elles ne sont pas très productives. D'un point de vue plus large sur LilyPond, l'importance de la syntaxe est minime : il est facile d'inventer une syntaxe concise, alors qu'écrire un code de formatage décent est beaucoup plus difficile. Ceci est également illustré par le nombre de lignes de codes pour les composants respectifs : l'analyse et la représentation représentent moins de 10% du code source.

Suivant : Exemples d'applications, Précédent : Quels signes graver ?, Haut : Introduction

This page is for LilyPond-2.10.33 (stable-branch).

Other languages: English.