GNU LilyPond

GNU LilyPond
software
Logo
Logo
Schermata di esempio
Schermata di esempio
GenereProgramma notazionale
SviluppatoreGNU LilyPond developers
Data prima versione1º agosto 1997
Ultima versione2.24.4 (21 luglio 2024)
Ultima beta2.25.21 (27 ottobre 2024)
Sistema operativoMultipiattaforma
LinguaggioScheme
Python
C++
LicenzaGNU GPL v3+
(licenza libera)
Sito weblilypond.org

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[1].

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

[modifica | modifica wikitesto]
Prime battute dell'Adeste fideles, generato da 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.

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.

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

[modifica | modifica wikitesto]

Una variante chiamata lilypond-book permette di costruire dei documenti LATEX 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 TEX che può in seguito essere integrato in un altro file.

Integrazione in LibreOffice

[modifica | modifica wikitesto]

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

Esempio di file di input per LilyPond

[modifica | modifica wikitesto]

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à.

#!lilypond firebreathers.ly -*- coding: utf-8; -*- %% Tema per "Fire Breathers", un gioco in continuo sviluppo %% Composto da Urpo Lankinen.  %% Nota: il compositore ha reso disponibile questo codice sorgente %% a Wikipedia sotto licenza GFDL. Le versioni al di fuori di Wikipedia %% Sono tipicamente sotto CC BY-SA.  %% Questo file utilizza la notazione finnica (ad esempio, dove %% gli americani utilizzano "F#" e "Bb", i Finnici utilizzano "Fis" e "B").  %% I nomi olandesi sono utilizzati di default. \include "suomi.ly"  %% Helper opzionale di aggiornamento del linguaggio \version "2.6.0"  %% Il blocco Header definisce i titoli \header {     title = "Theme to ``Fire Breathers!''"     instrument = "For the 2A03 or SID"     composer = "Urpo Lankinen"     enteredby = "Urpo Lankinen"     updatedby = "Jan Nieuwenhuizen"     date = "June 2005" }  Melody = \relative c'' {    \clef treble    \time 3/4    \key a \minor     %% Il pezzo inizia con una battuta parziale lunga un quarto, "\partial 4"    %% lo dice a LilyPond.    \partial 4    a4 | e'4.( d8[ c]) r8 | d4.( c8[ h]) r8 | a2. | e2    a4 | e'4.( d8[ c]) r8 | d4.( e8[ f]) r8 | e2. | r2    e4 |  f4.( e8[ d]) r8 | d4.( c8[ h]) r8 | a2. | e2    a4 | e'4.( d8[ c]) r8 | d4.( c8[ h]) r8 | a2. ~ a2 r4 | \bar "|." }  %% Questa è la seconda voce SecondVoice = \relative c {    \clef bass    \time 3/4    \key a \minor     \partial 4     r4 | e2.              | d2.             | a2. | e2     a4 | e'2.             | d2       f4     | e2. | r2.        |  f2.             | d2.             | a2. | e2     a4 | e'2.             | d2       h4     | a2. ~ a2 r4 | \bar "|." }  %% Le melodie, le parole e gli accordi possono essere assegnati a %% variabili e in seguito riutilizzate da altre parti. Qui ci sono %% tre diversi  pezzi di accompagnamento, che vengono poi utilizzati %% nella melodia di accompagnamento AccompA = \relative c { a4 e'8 a, e' a, | } AccompB = \relative c { g4 d'8 g, d' g, | } AccompC = \relative c { e,4 h'8 e, h' e, | }  Accompaniment = {    \clef bass    \time 3/4    \key a \minor     \partial 4     r4 | \AccompA \AccompB \AccompA \AccompA         \AccompA \AccompB \AccompA \AccompA         \AccompC \AccompC \AccompA \AccompA         \AccompA \AccompB \AccompA | a2 r4 | \bar "|." }  %% La definizione della musica. «   \new Staff \Melody   \new Staff \Accompaniment   \new Staff \SecondVoice » 

Prodotto corrispondente

[modifica | modifica wikitesto]

Spartito di "Fire Breathers"

Esempio di intavolatura

[modifica | modifica wikitesto]

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

\version "2.10"  \paper {    #(define dump-extents #t)    indent = 0\mm    ragged-right = ##t }  \layout {     \context {       \Score       timing = ##f    }    \context {       \Staff       \remove Time_signature_engraver    }    \context {       \TabStaff       \remove Time_signature_engraver    }  }  gammeLaMinPenta = {    a8[ c d e] g[ a c d] e[ g a c]    c[ a g e] d[ c a g] e[ d c a] }  «     \new Staff \relative c {       \clef "G_8"       \gammeLaMinPenta       \bar "|"    }     \new TabStaff \relative c {       \set TabStaff.minimumFret = #5       \gammeLaMinPenta       \bar "|"    }  » 

Prodotto corrispondente

[modifica | modifica wikitesto]

Spartito di esempio

  1. ^ Produzioni che usano LilyPond, su lilypond.org. URL consultato il 10 dicembre 2016.
  2. ^ OpenOffice e LibreOffice, su lilypond.org. URL consultato il 10 dicembre 2016.
  3. ^ (EN) OOoLilyPond, su ooolilypond.sourceforge.net. URL consultato il 10 dicembre 2016.

Voci correlate

[modifica | modifica wikitesto]

Altri progetti

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]