GNU LilyPond
# GNU LilyPond

GNU LilyPond è un software libero per la notazione musicale, disponibile per tutti i principali sistemi operativi. Utilizza una notazione testuale per la musica basata sull'insieme dei caratteri ASCII (secondo il modello utilizzato anche da LaTeX), che viene poi compilata per ottenere documenti in PDF, PostScript, SVG, PNG e altri formati. LilyPond può inoltre generare un file MIDI.

A differenza di altri diffusi programmi commerciali come Finale e Sibelius, LilyPond non possiede un'interfaccia grafica integrata per la creazione degli spartiti. Ha, comunque, lo stesso obiettivo di produrre un output comparabile agli spartiti stampati professionalmente. Alcuni programmi grafici di notazione musicale esportano file in formato LilyPond.

Uno dei principali vantaggi di LilyPond è quello di produrre spartiti di alta qualità, disegnati seguendo le regole di scrittura tradizionali, ispirandosi all'epoca in cui i punzoni di stampa degli spartiti erano posizionati a mano. Spesso gli spartiti prodotti con LilyPond vengono considerati migliori di quelli fatti con programmi commerciali, nonostante questi ultimi siano molto migliorati negli ultimi anni.

LilyPond è sviluppato da una comunità molto attiva: sono pubblicati continui aggiornamenti consistenti in risoluzioni di bug per la versione stabile, e in aggiunta di nuove funzionalità per la versione in sviluppo. Inoltre, essendo scritto in C++ ed assemblato mediante una libreria Scheme (GNU Guile), consente all'utente l'aggiunta di estensioni e personalizzazioni.

## Progetti web che utilizzano LilyPond

Ci sono diversi progetti web che utilizzano LilyPond (anche per il fatto che è facilmente integrabile in pagine web):

* Il progetto Mutopia, che raccoglie e distribuisce musica libera utilizza LilyPond come formato di distribuzione.
* Musipedia, un'enciclopedia online della musica, utilizza LilyPond per inserire e visualizzare gli spartiti.
* Il software MediaWiki, sul quale Wikipedia si basa, ha un'interfaccia chiamata WikiTeX che tra le altre cose permette l'inserimento di musica negli articoli attraverso il formato di LilyPond.
* Il programma notazionale online Wikifonia.

## Vantaggi

I vantaggi di questo software, oltre al fatto che si tratti di un software libero, sono:

* la capacità di realizzare partiture dall'aspetto professionale, senza intervenire sulla formattazione;
* la facilità di comunicare i dati, che possono essere elaborati con un qualunque editor di testo;
* la capacità di realizzare qualsiasi tipo di musica, dalla partitura orchestrale al canto gregoriano;
* la disponibilità di documentazione libera di altissima qualità, che permette l'apprendimento a qualsiasi livello;
* la capacità di concepire la musica a un alto livello d'astrazione, facendo riferimento a temi o motivi piuttosto che vederla come una successione di note.

## Svantaggi

Gli svantaggi possibili sono:

* una fase di apprendimento abbastanza lunga e una logica differente rispetto a quella dei software WYSIWYG;
* la lunghezza, in numero di caratteri, dei codici di compilazione;
* la sintassi, che diventa abbastanza complicata per l'uso delle funzioni avanzate;
* la difficoltà di imporre al compilatore di sottostare a particolari esigenze, come, ad esempio, stare in un numero massimo di pagine;
* la povertà, al momento, del meccanismo che genera i file MIDI.

Per quanto riguarda quest'ultimo punto, bisogna tenere presente che generalmente la logica di sviluppo del software libero è differente da quella di sviluppo del software commerciale, ovvero si intende creare un prodotto che sappia fare solo un'unica cosa, ma fatta estremamente bene. Il file MIDI è dunque da intendersi come un modo per controllare che non ci siano errori di trascrizione, e non come un risultato utilizzabile in altro modo. Difatti, per questi compiti, esistono software appositi, anche compatibili con LilyPond, come ad esempio Rosegarden.

Per gli utenti che sono particolarmente affezionati all'interfaccia grafica, o che non se la sentono di apprendere la sintassi di LilyPond, sono stati scritti vari programmi, fra i quali:

* Denemo, che permette l'inserimento della musica (senza però le funzionalità più avanzate) per via grafica;
* Frescobaldi, creato per fornire un'interfaccia utente di tipo grafico a LilyPond.

## Interazione con LaTeX

Una variante chiamata lilypond-book permette di costruire dei documenti $L^AT_EX$ elaborati, contenenti frammenti di musica di lunghezza variabile (da una nota a tutto un libro) mischiati con del testo.

Si può anche lanciare LilyPond con il parametro—tex che genera del codice $T_EX$ che può in seguito essere integrato in un altro file.

## Integrazione in LibreOffice

LilyPond può essere integrato in un documento Apache OpenOffice ed in LibreOffice grazie al modulo OOoLilyPond.

## Esempio di file di input per LilyPond

I testi dopo il simbolo di percento (%) sono commenti. Il doppio percento è utilizzato per migliorare la leggibilità.

In LilyPond le note sono inserite come sequenza di nota (notazione anglosassone: abcdefg), altezza e durata. Uno o più apostrofi (') o virgole (,) poste dopo la nota indicano rispettivamente un'ottava superiore o inferiore a quella di riferimento. Le durate si indicano col denominatore della frazione d'intero (breve) desiderata (numeri 1, 2, 4, 8 ecc.). Ad esempio, a'4 è un La a 440Hz (A nella notazione anglosassone è il La), un'ottava sopra quella di base, della durata di un quarto (semiminima). Una curiosa nota sulla sintassi è il fatto che qualunque altro modificatore della nota, che di norma viene scritto prima della nota stessa, in LilyPond va scritto dopo.

In LilyPond ci sono due modi di introdurre l'altezza di una nota: assoluta o relativa. In maniera assoluta, per ogni nota va specificata l'altezza relativa alla base, mentre in maniera relativa, quando la melodia rientra in dei limiti, le note senza altezza specificata vengono considerate "vicine" alle note che le precedono, e quindi l'altezza va specificata solo se la nota dista più di mezza ottava dalla precedente. L'esempio che segue utilizza il modo relativo.

La codifica che si invita ad utilizzare per la scrittura del sorgente è l'UTF-8. Questa codifica permette di inserire del testo (titolo, autore, ecc.) con qualsiasi alfabeto esistente, e anche con qualcuno non esistente. La prima riga dell'esempio seguente dice ad Emacs di utilizzare questa codifica. Se usate un altro editor, assicuratevi che utilizzi l'UTF-8, altrimenti qualunque cosa (a parte l'ASCII) non funzionerà.

## Esempio di intavolatura

Con LilyPond è possibile anche comporre intavolature per gli strumenti. Viene mostrato qui un semplice esempio di intavolatura per chitarra della scala pentafonica in La.

