Manuale di apprendimento di LilyPond: 5.7.4 Altre fonti di informazione

### 5.7.4 Altre fonti di informazione

La guida al Funzionamento interno contiene molte informazioni su LilyPond, ma si possono trovare ancora più informazioni nei file interni di LilyPond. Per studiarli devi prima trovare la giusta directory nel tuo sistema operativo. Il percorso di questa directory dipende da quale sistema operativo si sta usando e da come si è ottenuto LilyPond, se scaricando un binario precompilato da lilypond.org oppure installandolo da un gestore di pacchetti (come nelle distribuzioni GNU/Linux o nelle istallazioni tramite fink o cygwin) o compilandolo dai sorgenti:

#### Scaricato da lilypond.org

- GNU/Linux

  Vai in

  >     ‘INSTALLDIR/lilypond/usr/share/lilypond/current/’

- MacOS X

  Vai in

  >     ‘INSTALLDIR/LilyPond.app/Contents/Resources/share/lilypond/current/’

  usando `cd` in un terminale per entrare in questa directory oppure facendo un Ctrl+click sull’applicazione LilyPond e scegliendo “Mostra i contenuti dei pacchetti”.

- Windows

  Con Windows Explorer vai in

  >     ‘INSTALLDIR/LilyPond/usr/share/lilypond/current/’

#### Istallato da un gestore di pacchetti o compilato da sorgenti

Vai in ‘`PREFIX/share/lilypond/X.Y.Z/`’, dove PREFIX è definito dal gestore pacchetti o dallo script `configure` e X.Y.Z è il numero di versione di LilyPond.

All’interno di questa directory le due sottodirectory interessanti sono

- ‘`ly/`’ - contiene i file nel linguaggio di LilyPond
- ‘`scm/`’ - contiene i file nel linguaggio Scheme

Iniziamo col vedere alcuni file in ‘`ly/`’. Apri ‘`ly/property-init.ly`’ in un editor di testo. Quello che usi normalmente per i file `.ly` va bene. Questo file contiene le definizioni di tutti i comandi predefiniti standard di LilyPond, come `\tieUp` e `\slurDotted`. Vedrai che questi non sono altro che definizioni di variabili che contengono uno o più comandi `\override`. Ad esempio, `\tieDotted` è definito così:

>     tieDotted = {
>       \override Tie.dash-period = #0.75
>       \override Tie.dash-fraction = #0.1
>     }

Se non ti piacciono i valori predefiniti, puoi facilmente definire nuovamente questi comandi, proprio come qualsiasi altra variabile, all’inizio del file di input.

Ecco i file più utili che si trovano in ‘`ly/`’:

Nome del file | Contenuti
--- | ---
‘`ly/engraver-init.ly`’ | Definizioni dei contesti degli incisori (engraver)
‘`ly/paper-defaults-init.ly`’ | Specifiche dei valori predefiniti relativi al foglio
‘`ly/performer-init.ly`’ | Definizioni dei contesti dei performer
‘`ly/property-init.ly`’ | Definizioni di tutti i comandi predefiniti più comuni
‘`ly/spanner-init.ly`’ | Definizioni dei comandi predefiniti relativi agli estensori (spanner)

Altre impostazioni (come le definizioni dei comandi di markup) sono salvate come file ‘`.scm`’ (Scheme). Il linguaggio di programmazione Scheme serve a fornire un’interfaccia di programmazione per modificare il funzionamento interno di LilyPond. Una spiegazione dettagliata di questi file non rientra nell’obiettivo di questo manuale, dal momento che è necessario conoscere il linguaggio Scheme. Avvisiamo gli utenti che è richiesta una notevole quantità di abilità tecnica o di tempo per comprendere Scheme e questi file (vedi Scheme tutorial).

Nel caso tu conosca Scheme, i file che potrebbero essere di interesse sono:

Nome del file | Contenuti
--- | ---
‘`scm/auto-beam.scm`’ | Valori predefiniti della disposizione delle travature
‘`scm/define-grobs.scm`’ | Impostazioni predefinite delle proprietà dei grob
‘`scm/define-markup-commands.scm`’ | Definizione di tutti i comandi di markup
‘`scm/midi.scm`’ | Impostazioni predefinite dell’output MIDI
‘`scm/output-lib.scm`’ | Impostazioni che modificano l’aspetto di tasti, colori, alterazioni, stanghette, etc.
‘`scm/parser-clef.scm`’ | Definizioni delle chiavi supportate
‘`scm/script.scm`’ | Impostazioni predefinite delle articolazioni

#### LilyPond — Manuale di apprendimento v2.24.4 (ramo stabile).