| [ << Modifica dell'output ] | [Inizio][Contenuti][Indice] | [ Modelli >> ] |
| [ < Collisioni tra oggetti ] | [ Su : Collisioni tra oggetti ] | [ Correggere elementi della notazione sovrapposti > ] |
4.6.1 Spostare gli oggetti
Per quanto possa apparire sorprendente, LilyPond non è perfetto. Alcuni elementi della notazione possono sovrapporsi. Si tratta di un caso spiacevole, anche se in realtà piuttosto raro. Di solito l’esigenza di spostare gli oggetti dipende da motivi di chiarezza o da ragioni estetiche: gli elementi possono ottenere un aspetto migliore con un po’ più o un po’ meno spazio intorno.
Esistono tre principali approcci per risolvere la sovrapposizione degli elementi della notazione. Vediamoli nel seguente ordine:
- Si può cambiare la direzione di uno degli oggetti che si sovrappongono usando i comandi predefiniti elencati prima, in riferimento agli oggetti interni al rigo (vedi Oggetti interni al rigo). In questo modo si possono riposizionare facilmente gambi, legature di portamento e di valore, travature, segni di dinamica, testo e gruppi irregolari. La limitazione è che si tratta di una scelta circoscritta a due sole posizioni, nessuna delle quali potrebbe essere appropriata.
-
Le proprietà degli oggetti, che LilyPond usa quando dispone
gli oggetti di formattazione, si possono modificare con
\override. I vantaggi dell’intervenire su questo tipo di proprietà sono che (a) gli altri oggetti saranno spostati automaticamente se è necessario far spazio, e (b) ogni sovrascrittura può essere applicata a tutte le occorrenze di oggetti dello stesso tipo. Tali proprietà sono:-
directionQuesta è già stata trattata in dettaglio (vedi Oggetti interni al rigo).
-
padding,right-padding,staff-paddingQuando un oggetto viene posizionato, il valore della sua proprietà
paddingspecifica lo spazio intermedio da lasciare tra l’oggetto stesso e il bordo più vicino di quello accanto a cui si trova. Nota che si tratta del valore dipaddingdell’oggetto che si sta posizionando, mentre quello dell’oggetto già posizionato viene ignorato. Gli spazi specificati dapaddingpossono essere applicati a tutti gli oggetti che supportano l’interfacciaside-position-interface.Invece che da
padding, la disposizione dei gruppi di alterazioni è regolata daright-padding. Questa proprietà appartiene all’oggettoAccidentalPlacementche si trova nel contesto Staff. Il processo di formattazione della partitura crea per prime le teste di nota e poi, se presenti, aggiunge le alterazioni alla sinistra delle teste di nota usando la proprietàright-paddingper stabilire la distanza tra le teste e le singole alterazioni. Dunque, solo la proprietàright-paddingdell’oggettoAccidentalPlacementproduce un effetto sul posizionamento delle alterazioni.La proprietà
staff-paddingè strettamente connessa alla proprietàpadding:paddingregola la quantità minima di spazio tra qualsiasi oggetto che supporti l’interfacciaside-position-interfacee quello più vicino (solitamente, la nota o le linee del rigo);staff-paddingsi applica solo a quegli oggetti che stanno sempre fuori dal rigo e regola la distanza minima tra l’oggetto e il rigo. Nota chestaff-paddingnon ha alcun effetto sugli oggetti disposti relativamente alla nota invece che al rigo, anche se può essere sovrascritto senza generare degli errori per tali oggetti; quindi viene semplicemente ignorata.Per scoprire quale proprietà padding è richiesta per l’oggetto che desideri riposizionare, devi tornare alla guida del Funzionamento interno e cercare le proprietà dell’oggetto. Presta attenzione al fatto che le proprietà padding potrebbero non trovarsi nell’oggetto più ovvio; in tal caso devi cercare negli oggetti simili.
I valori delle proprietà padding sono misurati in spazi del rigo. Il valore predefinito della maggior parte degli oggetti è circa 1.0 o meno (a seconda dell’oggetto). Può essere sovrascritto per ottenere una distanza maggiore o minore.
-
self-alignment-XQuesta proprietà serve ad allineare l’oggetto a sinistra, a destra o al centro rispetto al punto di riferimento dell’oggetto genitore. Si può usare con tutti gli oggetti che supportano l’interfaccia
self-alignment-interface. Generalmente si tratta di oggetti che contengono testo. I valori sonoLEFT(sinistra),RIGHT(destra) oCENTER(centro). Altrimenti, è possibile definire un valore numerico compreso tra-1e+1, dove-1indica allineamento a sinistra e+1allineamento a destra, mentre gli altri numeri spostano progressivamente il testo dall’allineamento a sinistra all’allineamento a destra. È possibile specificare valori numerici maggiori di1, per spostare il testo ancora più a sinistra, o valori inferiori a-1, per spostarlo ancora più a destra. Ogni modifica di1nel valore corrisponde a uno spostamento pari alla metà della lunghezza del testo. -
extra-spacing-widthQuesta proprietà è disponibile per tutti gli oggetti che supportano l’interfaccia
item-interface. Accetta due numeri: il primo è aggiunto all’estensione più a sinistra, il secondo a quella più a destra. I numeri negativi spostano il bordo verso sinistra, quelli positivi verso destra: quindi, per allargare un oggetto il primo numero deve essere negativo, il secondo deve essere positivo. Nota che non tutti gli oggetti rispettano entrambi i numeri. Ad esempio, l’oggettoAccidentalconsidera soltanto il primo numero (bordo sinistro). -
staff-positionstaff-positionè una proprietà dell’interfacciastaff-symbol-referencer-interface, supportata dagli oggetti che vengono posizionati in relazione al rigo. Specifica in unità di mezzo spazio di rigo la posizione verticale dell’oggetto rispetto alla linea centrale del rigo stesso. È utile per risolvere collisioni tra oggetti come le pause di più misure, le legature di valore e le note in voci diverse. -
horizontal-shiftAll’interno di una voce, tutte le note che si trovano nello stesso momento musicale sono raggruppate in una colonna di note, e viene creato un oggetto
NoteColumnper controllare il posizionamento orizzontale di quel gruppo di note (vedi “Colonne di note” in Definire esplicitamente le voci). Se e solo se due o più colonne di note in un solo contesto Staff, entrambe con i gambi nella stessa direzione, si trovano sullo stesso momento musicale, i valori delle loro proprietàhorizontal-shiftsono usati per attribuire un punteggio e le colonne che hanno un punteggio più alto vengono progressivamente spostate per evitare le collisioni delle teste di nota. Questa proprietà viene impostata dai comandi\voiceXXXe può essere scavalcata direttamente con un comando\overrideo, di solito, dai comandi\shiftOn. Attenzione: questa proprietà viene usata per dare un punteggio alle colonne di note per spostarle orizzontalmente; non specifica la grandezza dello spostamento, che viene aumentata progressivamente per gradi in base alla larghezza della testa di nota per ogni punteggio. I gradi sono solitamente di metà della larghezza della testa di nota, ma possono essere della larghezza intera della testa quando c’è un gruppo di note molto ravvicinate. -
force-hshiftLa proprietà
force-hshiftappartiene aNoteColumn(più precisamente all’interfaccianote-column-interface). Modificandola è possibile spostare la colonna di note in situazioni in cui le colonne di note sono sovrapposte. Non ha effetto su colonne di note non sovrapposte. Viene specificata in unità appropriate per una colonna di note, ovvero la larghezza della testa della nota nella prima voce. Si usa in situazioni complesse in cui i normali comandi\shiftOn(vedi Definire esplicitamente le voci) non risolvono adeguatamente le collisioni tra le note. Per questo scopo, è preferibile alla proprietàextra-offsetperché non c’è bisogno di trovare la giusta distanza in spazi di rigo e lo spostamento delle note dentro o fuori da unaNoteColumnsi ripercuote su altre azioni, come il congiungimento delle teste delle note.
-
-
Infine, se i metodi precedenti non funzionano, si possono riposizionare
verticalmente gli oggetti rispetto alla linea centrale del rigo
oppure collocarli a una qualsiasi distanza rispetto a una nuova
posizione. Gli svantaggi di questo metodo consistono nel fatto che i corretti
valori per il riposizionamento debbano essere trovati per tentativi e per ogni
singolo oggetto; inoltre, dato che lo spostamento avviene dopo che LilyPond
ha posizionato tutti gli altri oggetti, spetta all’utente evitare le
eventuali collisioni. La principale
difficoltà che questo approccio comporta, però, è che i valori di riposizionamento
potrebbero dover essere ricalcolati se la musica venisse successivamente
modificata. Le proprietà che si possono usare con questo tipo di
riposizionamento manuale sono:
-
extra-offset -
Questa proprietà si applica a qualsiasi oggetto di formattazione che supporta l’interfaccia
grob-interface. Accetta come valore una coppia di numeri che specificano l’ulteriore spostamento nelle direzioni orizzontale e verticale. I numeri negativi spostano l’oggetto a sinistra o in basso. Le unità sono gli spazi del rigo. Questo spostamento aggiuntivo è applicato dopo la formattazione degli oggetti, dunque gli oggetti possono essere riposizionati ovunque senza incidere sugli altri. -
positions -
Questa proprietà è utile specialmente per correggere manualmente l’inclinazione e l’altezza di travature, legature di portamento e graffette dei gruppi irregolari. Accetta come valore una coppia di numeri, che specifica la posizione dei bordi sinistro e destro della travatura, della legatura, etc., rispetto alla linea centrale del rigo. L’unità di misura è lo spazio del rigo. Considera, però, che le legature di portamento e di frase non possono essere riposizionate del tutto arbitrariamente. LilyPond, infatti, genera prima una lista delle possibili posizioni per la legatura e poi determina la legatura che “ritiene migliore”. Se la proprietà
positionsè stata sovrascritta, viene scelta dalla lista la legatura più vicina alle posizioni richieste.
-
Alcuni oggetti potrebbero non disporre di tutte queste proprietà. Occorre andare a vedere nella guida al Funzionamento interno quali proprietà siano disponibili per l’oggetto che si intende modificare.
Segue una lista degli oggetti che hanno la maggiore probabilità di essere coinvolti in collisioni, insieme al nome dell’oggetto che deve essere cercato nella guida al Funzionamento interno per poter sapere quali proprietà si possono usare per spostarlo.
| Tipo di oggetto | Nome dell’oggetto |
|---|---|
| Articolazioni | Script |
| Travature | Beam |
| Dinamiche (verticalmente) | DynamicLineSpanner |
| Dinamiche (orizzontalmente) | DynamicText |
| Diteggiature | Fingering |
| Numeri di chiamata / Testi | RehearsalMark |
| Legature di portamento | Slur |
Testi, ovvero ^"testo" | TextScript |
| Legature di valore | Tie |
| Gruppi irregolari | TupletBracket |
| [ << Modifica dell'output ] | [Inizio][Contenuti][Indice] | [ Modelli >> ] |
| [ < Collisioni tra oggetti ] | [ Su : Collisioni tra oggetti ] | [ Correggere elementi della notazione sovrapposti > ] |