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[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 LilyPondCi sono diversi progetti web che utilizzano LilyPond (anche per il fatto che è facilmente integrabile in pagine web):
VantaggiI vantaggi di questo software, oltre al fatto che si tratti di un software libero, sono:
SvantaggiGli svantaggi possibili sono:
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:
Interazione con LaTeXUna 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 LibreOfficeLilyPond può essere integrato in un documento Apache OpenOffice ed in LibreOffice grazie al modulo OOoLilyPond.[2][3] Esempio di file di input per LilyPondI 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, 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#!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 corrispondenteEsempio di intavolaturaCon LilyPond è possibile anche comporre intavolature per gli strumenti. Viene mostrato qui un semplice esempio di intavolatura per chitarra della scala pentafonica in La. 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 corrispondenteNote
Voci correlateAltri progetti
Collegamenti esterni
|