GNU LilyPond

Da Wikipedia, l'enciclopedia libera.
GNU LilyPond
Logo di GNU LilyPond
Sviluppatore GNU LilyPond developers
Ultima versione 2.16.2 (4 gennaio 2013)
Sistema operativo Multipiattaforma
Linguaggio Python
Scheme
C++
Genere Programma notazionale
Licenza GPL
(Licenza libera)
Sito web lilypond.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 rilasciati 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 sorgente]

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.

Vantaggi[modifica | modifica sorgente]

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[modifica | modifica sorgente]

Gli svantaggi possibili sono:

  • una fase di apprendimento abbastanza lunga e una logica differente rispetto a quella dei software WYSIWYG;
  • lo 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, è stato scritto un programma (Denemo) che permette l'inserimento della musica (senza però le funzionalità più avanzate) per via grafica.

Interazione con LaTeX[modifica | modifica sorgente]

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 OpenOffice.org[modifica | modifica sorgente]

LilyPond può essere integrato in un documento OpenOffice.org grazie al modulo OOoLilyPond.

Esempio di file di input per LilyPond[modifica | modifica sorgente]

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 olandese: abcdefg), altezza e durata. L'altezza è rappresentata da apostrofi (') o virgole (,) che indicano un'ottava superiore o inferiore alla base ognuno. Ad esempio a'4 è un La (A nella notazione olandese è il La), un'ottava sopra la base, lunga un quarto. 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à.

Sorgente[modifica | modifica sorgente]

#!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 sorgente]

Spartito di "Fire Breathers"

Esempio di intavolatura[modifica | modifica sorgente]

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

Sorgente[modifica | modifica sorgente]

\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 sorgente]

Spartito di esempio

Note[modifica | modifica sorgente]

  1. ^ (EN) Alcuni commenti di utilizzatori del programma

Voci correlate[modifica | modifica sorgente]

Altri progetti[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

  • (DEENESNLFR) Sito ufficiale
  • (EN) LilyPond Forum - ospitato da Nabble archivia le mailing list di LilyPond in un forum con funzioni di ricerca.
  • (EN) The LilyPond Wiki
  • (EN) Mutopia, archivio di spartiti Lilypond
  • (EN) Musipedia, un'enciclopedia collaborativa sulla musica che utilizza LilyPond
  • (EN) Denemo, strumento per editare file nel formato LilyPond
  • MuseScore, software libero di composizione e notazione musicale che gestisce il formato LilyPond
  • Lilypond Notes Transposer Utilità via internet per la trasposizione delle note di Lilypond