From: Federico Bruni Date: Mon, 4 Jan 2016 12:17:05 +0000 (+0100) Subject: Doc-it: translate chapter 5 of Notation Reference X-Git-Tag: release/2.19.37-1~39 X-Git-Url: https://git.donarmstrong.com/lilypond.git?a=commitdiff_plain;h=c0ebbd9eb44bb3a7f38539d5970817fea22821a4;p=lilypond.git Doc-it: translate chapter 5 of Notation Reference --- diff --git a/Documentation/it/notation/changing-defaults.itely b/Documentation/it/notation/changing-defaults.itely index 1b4ed8dbf5..7f281e71c4 100644 --- a/Documentation/it/notation/changing-defaults.itely +++ b/Documentation/it/notation/changing-defaults.itely @@ -17,33 +17,34 @@ @chapter Modifica delle impostazioni predefinite @translationof Changing defaults -The purpose of LilyPond's design is to provide the finest quality -output by default. Nevertheless, it may happen that you need to -change this default layout. The layout is controlled through a large -number of @q{knobs and switches} collectively called @q{properties}. -A tutorial introduction to accessing and modifying these properties -can be found in the Manuale di apprendimento, see @rlearning{Modifica dell'output}. -This should be read first. This chapter covers similar ground, but -in a style more appropriate to a reference manual. +LilyPond è progettato per fornire la migliore qualità grafica mantenendo le +impostazioni predefinite. Tuttavia può capitare che sia necessario modificare +la sua formattazione predefinita. La formattazione è regolata da un gran +numero di @qq{pulsanti e interruttori} chiamati @q{proprietà}. Prima di +proseguire si consiglia di leggere una guida introduttiva su come accedere +a queste proprietà e modificarle: vedi @rlearning{Modifica dell'output}, nel +Manuale di apprendimento. Questo capitolo tratta lo stesso argomento, ma in +uno stile più adatto a un manuale. @cindex Internals Reference @cindex Guida al funzionamento interno -The definitive description of the controls available for tuning can -be found in a separate document: @rinternalsnamed{Top,the Internals -Reference}. That manual lists all the variables, functions and -options available in LilyPond. It is written as a HTML document, -which is available +La descrizione completa delle proprietà che si possono ritoccare si trova +in un documento separato: @rinternalsnamed{Top,la Guida al funzionamento +interno}. Questo manuale elenca tutte le variabili, le funzioni e le +opzioni disponibili in LilyPond. Viene fornito come un documento HTML, +disponibile @c leave the @uref as one long line. @uref{http://@/lilypond@/.org/@/doc/@/stable/@/Documentation/@/internals/,on@/-line}, -and is also included with the LilyPond documentation package. - -Internally, LilyPond uses Scheme (a LISP dialect) to provide -infrastructure. Overriding layout decisions in effect accesses the -program internals, which requires Scheme input. Scheme elements are -introduced in a @file{.ly} file with the hash -mark@tie{}@code{#}.@footnote{@rextend{Scheme tutorial}, contains a -short tutorial on entering numbers, lists, strings, and symbols in +ed è anche incluso nel pacchetto della documentazione di LilyPond. + +Internamente, LilyPond usa il linguaggio Scheme (un dialetto di LISP) per +fornire l'infrastruttura. Modificare le decisioni di formattazione prevede +in effetti l'accesso alle funzioni interne del programma, cosa che +richiede l'input Scheme. In un file @file{.ly} gli elementi Scheme +sono introdotti col segno +cancelletto@tie{}@code{#}.@footnote{@rextend{Scheme tutorial}, contiene +una breve guida sull'inserimento di numeri, liste, stringhe e simboli in Scheme.} @@ -61,16 +62,16 @@ Scheme.} @section Contesti di interpretazione @translationof Interpretation contexts -This section describes what contexts are, and how to modify them. +Questa sezione spiega cosa sono i contesti e come modificarli. @menu -* Contexts explained:: -* Creating and referencing contexts:: -* Keeping contexts alive:: -* Modifying context plug-ins:: -* Changing context default settings:: -* Defining new contexts:: -* Context layout order:: +* Tutto sui contesti:: +* Creazione e citazione di un contesto:: +* Conservazione di un contesto:: +* Modifica dei componenti aggiuntivi di un contesto:: +* Modifica delle impostazioni predefinite di un contesto:: +* Definizione di nuovi contesti:: +* Ordine di disposizione dei contesti:: @end menu @seealso @@ -89,8 +90,9 @@ Guida al funzionamento interno: @rinternals{Engravers and Performers}. -@node Contexts explained -@subsection Contexts explained +@node Tutto sui contesti +@subsection Tutto sui contesti +@translationof Contexts explained @ignore @c TODO Rethink and rewrite @@ -117,246 +119,229 @@ further explanation and with links to the IR. @c TODO Describe propagation of property values -td -Contexts are arranged hierarchically: +I contesti sono organizzati in modo gerarchico: @menu -* Output definitions - blueprints for contexts:: -* Score - the master of all contexts:: -* Top-level contexts - staff containers:: -* Intermediate-level contexts - staves:: -* Bottom-level contexts - voices:: +* Definizioni di output - gerarchia dei contesti:: +* Score - il padre di tutti i contesti:: +* Contesti del livello superiore - contenitori di righi:: +* Contesti del livello intermedio - righi:: +* Contesti del livello inferiore - voci:: @end menu -@node Output definitions - blueprints for contexts -@unnumberedsubsubsec Output definitions - blueprints for contexts +@c blueprint letteralmente indica la cianografia architettonica +@node Definizioni di output - gerarchia dei contesti +@unnumberedsubsubsec Definizioni di output - gerarchia dei contesti +@translationof Output definitions - blueprints for contexts -This section explains the relevance of output definitions when -working with contexts. Examples for actual output definitions are -given later (see @ref{Changing all contexts of the same type}). +Questa sezione spiega la rilevanza delle definizioni di output quando +si lavora coi contesti. Esempi di vere definizioni di output sono +illustrati dopo (vedi @ref{Changing all contexts of the same type}). -@cindex output definitions +@cindex output, definizioni +@cindex definizioni di output @funindex \layout -While music written in a file may refer to context types and -names, contexts are created only when the music is actually being -interpreted. LilyPond interprets music under control of an -@q{output definition} and may do so for several different output -definitions, resulting in different output. The output definition -relevant for printing music is specified using @code{\layout}. +Sebbene la musica scritta in un file possa riferirsi a un certo tipo o +nome di un contesto, i contesti vengono creati soltanto quando la musica +viene interpretata. LilyPond interpreta la musica in base a una +@qq{definizione di output} e lo fa per le varie definizioni di output, +producendo un output diverso per ciascuna. La definizione di output che +crea l'output grafico si specifica con @code{\layout}. @funindex \midi -A much simpler output definition used for producing Midi output is -specified using @code{\midi}. Several other output definitions -are used by LilyPond internally, like when using the part combiner -(@ref{Automatic part combining}) or creating music quotes -(@ref{Quoting other voices}). - -Output definitions define the relation between contexts as well as -their respective default settings. While most changes will -usually be made inside of a @code{\layout} block, Midi-related -settings will only have an effect when made within a @code{\midi} -block. +Una definizione di output molto più semplice, usata per produrre l'output +Midi, si specifica con @code{\midi}. Molte altre definizioni di output +sono usate da LilyPond internamente, come quando si usa la combinazione +automatica delle parti (@ref{Automatic part combining}) o si creano citazioni +musicali (@ref{Quoting other voices}). + +Le definizioni di output definiscono la relazione tra i contesti e le loro +rispettive impostazioni predefinite. Sebbene la maggior parte dei cambiamenti +venga fatta solitamente in un blocco @code{\layout}, le impostazioni relative +al Midi avranno effetto solo se inserite in un blocco @code{\midi}. @funindex autoBeaming -Some settings affect several outputs: for example, if -@code{autoBeaming} is turned off in some context, beams count as -melismata for the purpose of matching music to lyrics as described -in @ref{Automatic syllable durations}. This matching is done both -for printed output as well as for Midi. If changes made to -@code{autoBeaming} within a context definition of a @code{\layout} -block are not repeated in the corresponding @code{\midi} block, -lyrics and music will get out of sync in Midi. +Alcune impostazioni interessano vari tipi di output: per esempio, se +@code{autoBeaming} è disattivato in qualche contesto, le travature contano +come melismi al fine di abbinare musica e testo vocale, come descritto +in @ref{Automatic syllable durations}. Questo abbinamento viene fatto +sia per l'output grafico che per il Midi. Se le modifiche fatte a +@code{autoBeaming} in una definizione di contesto di un blocco @code{\layout} +non sono ripetute nel corrispondente blocco @code{\midi}, il testo e la +musica andranno fuori sincrono nel Midi. @seealso File installati: @file{ly/engraver-init.ly}. @file{ly/performer-init.ly}. -@node Score - the master of all contexts -@unnumberedsubsubsec Score - the master of all contexts +@node Score - il padre di tutti i contesti +@unnumberedsubsubsec Score - il padre di tutti i contesti +@translationof Score - the master of all contexts -This is the top level notation context. No other context can -contain a Score context. By default the Score context handles -the administration of time signatures and makes sure that items -such as clefs, time signatures, and key-signatures are aligned -across staves. +Questo è il contesto del livello superiore. Nessun altro contesto può +contenere un contesto Score. Per impostazione predefinita, il contesto +Score gestisce l'amministrazione delle indicazioni di tempo e garantisce +che elementi come le chiavi, le indicazioni di tempo e le armature di chiave +siano allineate da rigo a rigo. -A Score context is instantiated implicitly when a -@code{\score @{@dots{}@}} block is processed. +Un contesto Score viene istanziato implicitamente quando viene elaborato +un blocco @code{\score @{@dots{}@}}. -@node Top-level contexts - staff containers -@unnumberedsubsubsec Top-level contexts - staff containers +@node Contesti del livello superiore - contenitori di righi +@unnumberedsubsubsec Contesti del livello superiore - contenitori di righi +@translationof Top-level contexts - staff containers @strong{@emph{StaffGroup}} -Groups staves while adding a bracket on the left side, grouping -the staves together. The bar lines of the contained staves are -connected vertically. @code{StaffGroup} only consists of a collection -of staves, with a bracket in front and spanning bar lines. +Raggruppa i righi e aggiunge una parentesi quadra sul lato sinistro, che +raggruppa insieme i righi. Le stanghette dei righi in esso contenuti sono +connessi verticalmente. @code{StaffGroup} è semplicemente un insieme di righi, +con una parentesi quadra all'inizio e le stanghette che li attraversano. @strong{@emph{ChoirStaff}} -Identical to @code{StaffGroup} except that the bar lines of the -contained staves are not connected vertically. +Identico a @code{StaffGroup} eccetto che le stanghette dei righi in esso +contenuti non sono connesse verticalmente. @strong{@emph{GrandStaff}} -A group of staves, with a brace on the left side, grouping the -staves together. The bar lines of the contained staves are -connected vertically. +Un gruppo di righi, con una parentesi graffa sul lato sinistro, che raggruppa +insieme i righi. Le stanghette dei righi in esso contenuti sono +connessi verticalmente. @strong{@emph{PianoStaff}} -Just like @code{GrandStaff}, but with support for instrument names -to the left of each system. +Identico a @code{GrandStaff}, ma con il supporto ai nomi degli strumenti a +sinistra di ogni sistema. -@node Intermediate-level contexts - staves -@unnumberedsubsubsec Intermediate-level contexts - staves +@node Contesti del livello intermedio - righi +@unnumberedsubsubsec Contesti del livello intermedio - righi +@translationof Intermediate-level contexts - staves @strong{@emph{Staff}} -Handles clefs, bar lines, keys, accidentals. It can contain -@code{Voice} contexts. +Gestisce chiavi, stanghette, armature di chiave, alterazioni. Può contenere +contesti @code{Voice}. @strong{@emph{RhythmicStaff}} -Like @code{Staff} but for printing rhythms. Pitches are ignored -when engraving; the notes are printed on one line. The MIDI -rendition retains pitches unchanged. +Come @code{Staff} ma per le ritmiche. Le altezze vengono ignorate e le +note appaiono su una linea. L'output MIDI conserva le altezze inalterate. @strong{@emph{TabStaff}} -Context for generating tablature. By default lays the music -expression out as a guitar tablature, printed on six lines. +Contesto per generare l'intavolatura (o tablatura). La forma predefinita è +quella dell'intavolatura per chitarra, con sei linee. @strong{@emph{DrumStaff}} -Handles typesetting for percussion. Can contain @code{DrumVoice} +Contesto per gli strumenti percussivi. Può contenere @code{DrumVoice}. @strong{@emph{VaticanaStaff}} -Same as @code{Staff}, except that it is designed for typesetting -a piece in gregorian style. +Identico a @code{Staff}, a parte il fatto che è progettato per rappresentare +un brano in stile gregoriano. @strong{@emph{MensuralStaff}} -Same as @code{Staff}, except that it is designed for typesetting -a piece in mensural style. +Identico a @code{Staff}, a parte il fatto che è progettato per rappresentare +un brano in stile mensurale. -@node Bottom-level contexts - voices -@unnumberedsubsubsec Bottom-level contexts - voices +@node Contesti del livello inferiore - voci +@unnumberedsubsubsec Contesti del livello inferiore - voci +@translationof Bottom-level contexts - voices -Voice-level contexts initialise certain properties and start -appropriate engravers. A bottom-level context is one without -@code{defaultchild}. While it is possible to let it -accept/@/contain subcontexts, they can only be created and entered -explicitly. +I contesti al livello della voce inizializzano alcune proprietà e avviano +gli incisori adatti. Un contesto del livello inferiore è privo di +@code{defaultchild}. Sebbene sia possibile far sì che accetti/@/contenga +sottocontesti, questi possono essere creati e inseriti solo esplicitamente. @strong{@emph{Voice}} -Corresponds to a voice on a staff. This context handles the -conversion of dynamic signs, stems, beams, super- and sub-scripts, -slurs, ties, and rests. You have to instantiate this explicitly -if you require multiple voices on the same staff. +Corrisponde a una voce di un rigo. Questo contesto gestisce la +conversione di segni di dinamica, gambi, travature, apici e pedici, +legature di portamento e di valore e pause. Deve essere istanziata +esplicitamente se si hanno molteplici voci nello stesso rigo. @strong{@emph{VaticanaVoice}} -Same as @code{Voice}, except that it is designed for typesetting -a piece in gregorian style. +Identico a @code{Voice}, a parte il fatto che è progettato per rappresentare +un brano in stile gregoriano. @strong{@emph{MensuralVoice}} -Same as @code{Voice}, with modifications for typesetting a piece in -mensural style. +Identico a @code{Voice}, con delle modifiche per rappresentare un brano in +stile mensurale. @strong{@emph{Lyrics}} -Corresponds to a voice with lyrics. Handles the printing of a -single line of lyrics. +Corrisponde a una voce con testo vocale. Gestisce la stampa di una singola +linea di testo vocale. @strong{@emph{DrumVoice}} -The voice context used in a percussion staff. +Il contesto della voce usato in un rigo per percussioni. @strong{@emph{FiguredBass}} -The context in which @code{BassFigure} objects are created from -input entered in @code{\figuremode} mode. +Il contesto in cui sono creati gli oggetti @code{BassFigure} a partire +dall'input inserito in modalità @code{\figuremode}. @strong{@emph{TabVoice}} -The voice context used within a @code{TabStaff} context. Usually -left to be created implicitly. +Il contesto della voce usato all'interno di un contesto @code{TabStaff}. +Solitamente omesso così che sia creato implicitamente. @strong{@emph{CueVoice}} -A voice context used to render notes of a reduced size, intended -primarily for adding cue notes to a staff, see @ref{Formatting -cue notes}. Usually left to be created implicitly. +Un contesto della voce usato per rappresentare note a dimensione ridotta, inteso +soprattutto per aggiungere citazioni in corpo più piccolo a un rigo, vedi +@ref{Formatting cue notes}. Solitamente omesso così che sia creato implicitamente. @strong{@emph{ChordNames}} -Typesets chord names. - -@ignore -TODO - -Then the following, which I don't know what to do with: - - * GregorianTranscriptionVoice - * GregorianTranscriptionStaff +Crea e dispone i nomi degli accordi. - * FretBoards - Engraves fretboards from chords. Not easy... Not -documented. - There is now some documentation on FretBoards in the NR, under - instrument-specific notation -- cds. - * NoteNames - * Global - Hard coded entry point for LilyPond. Cannot be tuned. - * Devnull - Silently discards all musical information given to this -context. - -@end ignore - -@node Creating and referencing contexts -@subsection Creating and referencing contexts +@node Creazione e citazione di un contesto +@subsection Creazione e citazione di un contesto +@translationof Creating and referencing contexts @funindex \new @funindex \context -@cindex new contexts -@cindex referencing contexts -@cindex Contexts, creating and referencing - -LilyPond will create lower-level contexts automatically if a music -expression is encountered before a suitable context exists, but this -is usually successful only for simple scores or music fragments like -the ones in the documentation. For more complex scores it is -advisable to specify all contexts explicitly with either the -@code{\new} or @code{\context} command. The syntax of -these two commands is very similar: +@cindex nuovi contesti +@cindex citazione di un contesto +@cindex Contesti, creazione e citazione + +LilyPond crea i contesti del livello inferiore automaticamente se incontra +un'espressione musicale prima di un contesto adatto, ma questo approccio +di solito funziona soltanto per partiture semplici o frammenti musicali +simili a quelli della documentazione. Per partiture più complesse si +consiglia di specificare tutti i contesti esplicitamente coi comandi +@code{\new} o @code{\context}. La sintassi di questi due comandi è +molto simile: @example -[\new | \context] @var{Context} [ = @var{name}] [@var{music-expression}] +[\new | \context] @var{Contesto} [ = @var{nome}] [@var{espressione-musicale}] @end example @noindent -where either @code{\new} or @code{\context} may be specified. -@var{Context} is the type of context which is to be created, -@var{name} is an optional name to be given to the particular context -being created and @var{music-expression} is a single music expression -that is to be interpreted by the engravers and performers in this -context. +dove si può usare @code{\new} o @code{\context}. +@var{Contesto} è il tipo di contesto che deve essere creato, +@var{nome} è un nome opzionale da assegnare al contesto che si +sta creando e @var{espressione-musicale} è una singola espressione +musicale che deve essere interpretata dagli incisori e dai performer +in questo contesto. -The @code{\new} prefix without a name is commonly used to create -scores with many staves: +Il prefisso @code{\new} senza un nome viene usato comunemente per creare +partiture con molti righi: @lilypond[quote,verbatim] << \new Staff \relative { - % leave the Voice context to be created implicitly + % lascia che il contesto Voice sia creato implicitamente c''4 c } \new Staff \relative { @@ -366,7 +351,7 @@ scores with many staves: @end lilypond @noindent -and to place several voices into one staff: +e per mettere varie voci in un rigo: @lilypond[quote,verbatim] \new Staff << @@ -382,15 +367,15 @@ and to place several voices into one staff: @end lilypond @noindent -@code{\new} should always be used to specify unnamed contexts. +@code{\new} deve essere sempre usato per specificare contesti senza nome. -The difference between @code{\new} and @code{\context} is in the -action taken: +La differenza tra @code{\new} e @code{\context} sta nell'azione +presa: @itemize @item -@code{\new} with or without a name will always create a fresh, -distinct, context, even if one with the same name already exists: +@code{\new} con o senza un nome creerà sempre un contesto del tutto +nuovo e distinto, anche se ne esiste già uno con lo stesso nome: @lilypond[quote,verbatim] \new Staff << @@ -406,19 +391,20 @@ distinct, context, even if one with the same name already exists: @end lilypond @item -@code{\context} with a name specified will create a distinct context -only if a context of the same type with the same name in the same -context hierarchy does not already exist. Otherwise it will be taken -as a reference to that previously created context, and its music -expression will be passed to that context for interpretation. +@code{\context} seguito da un nome creerà un contesto distinto solo se +non esiste già un contesto dello stesso tipo con lo stesso nome nella +stessa gerarchia di contesto. Altrimenti sarà preso come riferimento +per quel contesto precedentemente creato, e la sua espressione musicale +verrà passata a quel contesto per la sua interpretazione. -One application of named contexts is in separating the score layout -from the musical content. Either of these two forms is valid: +Una possibile applicazione dei contesti con nome è la separazione di +formattazione della partitura e contenuto musicale. Le seguenti due +forme sono entrambe valide: @lilypond[quote,verbatim] \score { << - % score layout + % formattazione della partitura \new Staff << \new Voice = "one" { \voiceOne @@ -428,7 +414,7 @@ from the musical content. Either of these two forms is valid: } >> - % musical content + % contenuto musicale \context Voice = "one" { \relative { c''4 c c c @@ -446,7 +432,7 @@ from the musical content. Either of these two forms is valid: @lilypond[quote,verbatim] \score { << - % score layout + % formattazione della partitura \new Staff << \context Voice = "one" { \voiceOne @@ -456,7 +442,7 @@ from the musical content. Either of these two forms is valid: } >> - % musical content + % contenuto musicale \context Voice = "one" { \relative { c''4 c c c @@ -472,17 +458,17 @@ from the musical content. Either of these two forms is valid: @end lilypond @noindent -Alternatively, variables may be employed to similar effect. See +Altrimenti si possono usare le variabili per ottenere un risultato simile. Vedi @rlearning{Organizzare i brani con le variabili}. @item -@code{\context} with no name will match the first of any previously -created contexts of the same type in the same context heirarchy, -even one that has been given a name, and its music expression will be -passed to that context for interpretation. This form is rarely -useful. However, @code{\context} with no name and no music expression -is used to set the context in which a Scheme procedure specified with -@code{\applyContext} is executed: +@code{\context} senza nome corrisponderà al primo di qualsiasi contesto +precedentemente creato dello stesso tipo nella stessa gerarchia di contesto, +anche uno a cui è stato assegnato un nome, e la sua espressione musicale sarà +passata a quel contesto per la sua interpretazione. Questa forma è raramente +utile. Tuttavia, si usa @code{\context} senza nome e senza espressione +musicale per impostare il contesto in cui una procedura Scheme specificata con +@code{\applyContext} viene eseguita: @example \new Staff \relative @{ @@ -497,25 +483,25 @@ is used to set the context in which a Scheme procedure specified with @end itemize -A context must be named if it is to be referenced later, for example -when lyrics are associated with music: +Un contesto deve essere nominato se deve essere citato successivamente, per +esempio quando il testo vocale è associato alla musica: @example -\new Voice = "tenor" @var{music} +\new Voice = "tenore" @var{musica} @dots{} -\new Lyrics \lyricsto "tenor" @var{lyrics} +\new Lyrics \lyricsto "tenore" @var{testo} @end example @noindent -For details of associating lyrics with music see +Maggiori informazioni sull'associazione del testo vocale alla musica in @ref{Automatic syllable durations}. -The properties of all contexts of a particular type can be modified -in a @code{\layout} block (with a different syntax), see -@ref{Changing all contexts of the same type}. This construct also -provides a means of keeping layout instructions separate from the -musical content. If a single context is to be modified, a @code{\with} -block must be used, see @ref{Changing just one specific context}. +Le proprietà di tutti i contesti di un certo tipo possono essere modificate +in un blocco @code{\layout} (con una sintassi diversa), vedi +@ref{Changing all contexts of the same type}. Questo costrutto fornisce anche +un mezzo per mantenere le istruzioni di formattazione separate dal contenuto +musicale. Se occorre modificare un solo contesto, bisogna usare un blocco +@code{\with}, vedi @ref{Changing just one specific context}. @seealso Manuale di apprendimento: @@ -526,55 +512,54 @@ Guida alla notazione: @ref{Automatic syllable durations}. -@node Keeping contexts alive -@subsection Keeping contexts alive +@node Conservazione di un contesto +@subsection Conservazione di un contesto +@translationof Keeping contexts alive @cindex contexts, keeping alive @cindex contexts, lifetime -Contexts are usually terminated at the first musical moment in -which they have nothing to do. So @code{Voice} contexts die as -soon as they contain no events; @code{Staff} contexts die as soon -as all the @code{Voice} contexts within them contain no events; etc. -This can cause difficulties if earlier contexts which have died -have to be referenced, for example, when changing staves with -@code{\change} commands, associating lyrics with a voice with -@code{\lyricsto} commands, or when adding further musical events to -an earlier context. - -There is an exception to this general rule: inside of an -@code{@{@dots{}@}} construct (sequential music), the construct's -notion of the ``current context'' will descend whenever an element -of the sequence ends in a subcontext of the previous current -context. This avoids spurious creation of implicit contexts in a -number of situations but means that the first context descended -into will be kept alive until the end of the expression. - -In contrast, the contexts of a @code{<<@dots{}>>} construct's -(simultaneous music) expression are not carried forth, so -enclosing a context creating command in an extra pair of -@code{<<@dots{}>>} will keep the context from persisting through -all of the enclosing @code{@{@dots{}@}} sequence. - -Any context can be kept alive by ensuring it has something to do at -every musical moment. @code{Staff} contexts are kept alive by -ensuring one of their voices is kept alive. One way of doing this -is to add spacer rests to a voice in parallel with the real music. -These need to be added to every @code{Voice} context which needs to -be kept alive. If several voices are to be used sporadically it is -safest to keep them all alive rather than attempting to rely on the -exceptions mentioned above. - -In the following example, both voice A and voice B are kept alive -in this way for the duration of the piece: +I contesti vengono solitamente terminati nel primo momento musicale in +cui non hanno niente da fare. Quindi i contesti @code{Voice} muoiono +appena non contengono eventi; i contesti @code{Staff} muoiono appena +tutti i contesti @code{Voice} al loro interno non contengono eventi; etc. +Ciò può causare difficoltà se contesti precedenti, che sono stati +terminati, devono essere richiamati; per esempio, quando si cambia +il rigo col comando @code{\change}, quando si associa il testo a una +voce col comando @code{\lyricsto} o quando si aggiungono ulteriori eventi +musicali a un contesto precedente. + +C'è un'eccezione a questa regola generale: all'interno di un costrutto +@code{@{@dots{}@}} (musica sequenziale), la nozione di «contesto corrente» +scenderà di livello ogni volta che un elemento della sequenza termina in un +sottocontesto del precedente contesto corrente. Ciò evita la falsa creazione di +contesti impliciti in varie situazioni, ma significa che il primo contesto in +cui si scende verrà conservato fino alla fine dell'espressione. + +Al contrario, i contesti di un construtto @code{<<@dots{}>>} (musica simultanea) +non sono portati avanti, dunque racchiudendo un comando di creazione di contesto +in un'ulteriore coppia di @code{<<@dots{}>>} impedirà che il contesto persista +in tutta la sequenza @code{@{@dots{}@}}. + +Un contesto può essere tenuto attivo assicurandosi che abbia qualcosa +da fare in ogni momento musicale. I contesti @code{Staff} sono tenuti +attivi assicurandosi che una delle loro voci sia conservata. Un modo per +farlo consiste nell'aggiungere pause spaziatrici a una voce in parallelo +con la musica vera. Queste devono essere aggiunte a ogni contesto +@code{Voice} da tenere attivo. Se si usano sporadicamente varie voci, +è più sicuro tenerle attive invece di tentare di affidarsi alle eccezioni +menzionate sopra. + +Nell'esempio seguente, sia la voce A che la voce B sono mantenute attive +in questo modo per la durata del brano: @lilypond[quote,verbatim] musicA = \relative { d''4 d d d } musicB = \relative { g'4 g g g } keepVoicesAlive = { << - \new Voice = "A" { s1*5 } % Keep Voice "A" alive for 5 bars - \new Voice = "B" { s1*5 } % Keep Voice "B" alive for 5 bars + \new Voice = "A" { s1*5 } % Tiene la voce "A" attiva per 5 battute + \new Voice = "B" { s1*5 } % Tiene la voce "B" attiva per 5 battute >> } @@ -600,124 +585,121 @@ music = { } @end lilypond -@cindex lyrics, aligning with sporadic melody +@cindex testo vocale, allineamento con una melodia sporadica -The following example shows how a sporadic melody line with lyrics -might be written using this approach. In a real situation the -melody and accompaniment would consist of several different -sections, of course. +L'esempio seguente mostra come scrivere una linea melodica sporadica con +testo vocale usando questo approccio. Ovviamente, in una situazione reale +la melodia e l'accompagnamento consisterebbero di varie e diverse sezioni. @lilypond[quote,verbatim] -melody = \relative { a'4 a a a } -accompaniment = \relative { d'4 d d d } -words = \lyricmode { These words fol -- low the mel -- o -- dy } +melodia = \relative { a'4 a a a } +accompagnamento = \relative { d'4 d d d } +parole = \lyricmode { Queste parole seguo -- no la mel -- o -- dia } \score { << - \new Staff = "music" { + \new Staff = "musica" { << - \new Voice = "melody" { + \new Voice = "melodia" { \voiceOne - s1*4 % Keep Voice "melody" alive for 4 bars + s1*4 % Tiene la voce "melodia" attiva per 4 battute } { - \new Voice = "accompaniment" { + \new Voice = "accompagnamento" { \voiceTwo - \accompaniment + \accompagnamento } << - \context Voice = "melody" { \melody } - \context Voice = "accompaniment" { \accompaniment } + \context Voice = "melodia" { \melodia } + \context Voice = "accompagnamento" { \accompagnamento } >> - \context Voice = "accompaniment" { \accompaniment } + \context Voice = "accompagnamento" { \accompagnamento } << - \context Voice = "melody" { \melody } - \context Voice = "accompaniment" { \accompaniment } + \context Voice = "melodia" { \melodia } + \context Voice = "accompagnamento" { \accompagnamento } >> } >> } - \new Lyrics \with { alignAboveContext = #"music" } - \lyricsto "melody" { \words } + \new Lyrics \with { alignAboveContext = #"musica" } + \lyricsto "melodia" { \parole } >> } @end lilypond -An alternative way, which may be better in many circumstances, is -to keep the melody line alive by simply including spacer notes to -line it up correctly with the accompaniment: +Un modo alternativo, migliore in molte circostanze, è quello di mantenere la +linea melodica attiva semplicemente includendo le note spaziatrici in modo +che si allineino correttamente con l'accompagnamento: @lilypond[quote,verbatim] -melody = \relative { - s1 % skip a bar +melodia = \relative { + s1 % salta una battuta a'4 a a a - s1 % skip a bar + s1 % salta una battuta a4 a a a } -accompaniment = \relative { +accompagnamento = \relative { d'4 d d d d4 d d d d4 d d d d4 d d d } -words = \lyricmode { These words fol -- low the mel -- o -- dy } +parole = \lyricmode { Queste parole seguo -- no la mel -- o -- dia } \score { << - \new Staff = "music" { + \new Staff = "musica" { << - \new Voice = "melody" { + \new Voice = "melodia" { \voiceOne - \melody + \melodia } - \new Voice = "accompaniment" { + \new Voice = "accompagnamento" { \voiceTwo - \accompaniment + \accompagnamento } >> } - \new Lyrics \with { alignAboveContext = #"music" } - \lyricsto "melody" { \words } + \new Lyrics \with { alignAboveContext = #"musica" } + \lyricsto "melodia" { \parole } >> } @end lilypond -@node Modifying context plug-ins -@subsection Modifying context plug-ins +@node Modifica dei componenti aggiuntivi di un contesto +@subsection Modifica dei componenti aggiuntivi di un contesto +@translationof Modifying context plug-ins -@c TODO Should this be Modifying engravers or Modifying contexts? +I contesti della notazione (come @code{Score} e @code{Staff}) non contengono +solo le proprietà, ma anche dei componenti aggiuntivi chiamati @qq{engraver} +(incisori) che creano gli elementi della notazione. Per esempio, il contesto +@code{Voice} contiene l'incisore @code{Note_heads_engraver} e il contesto +@code{Staff} contiene l'incisore @code{Key_engraver}. -Notation contexts (like @code{Score} and @code{Staff}) not only store -properties, they also contain plug-ins called @q{engravers} that create -notation elements. For example, the @code{Voice} context contains a -@code{Note_heads_engraver} and the @code{Staff} context contains a -@code{Key_engraver}. - -For a full a description of each plug-in, see +Una descrizione completa di ogni componente aggiuntivo si trova in @ifhtml @rinternals{Engravers and Performers}. @end ifhtml @ifnothtml Guida al funzionamento interno @expansion{} Translation @expansion{} Engravers. @end ifnothtml -Every context described in +Ogni contesto descritto in @ifhtml @rinternals{Contexts} @end ifhtml @ifnothtml Guida al funzionamento interno @expansion{} Translation @expansion{} Context. @end ifnothtml -lists the engravers used for that context. +elenca gli incisori usati per quel contesto. -It can be useful to shuffle around these plug-ins. This is done by -starting a new context with @code{\new} or @code{\context}, and -modifying it, +Può essere utile sperimentare questi componenti aggiuntivi. Per farlo si +avvia un nuovo contesto con @code{\new} o @code{\context} e si modifica: @funindex \with @example -\new @var{context} \with @{ +\new @var{contesto} \with @{ \consists @dots{} \consists @dots{} \remove @dots{} @@ -725,14 +707,16 @@ modifying it, @emph{etc.} @} @{ - @emph{@dots{}music@dots{}} + @emph{@dots{}musica@dots{}} @} @end example @noindent -where the @dots{} should be the name of an engraver. Here is a simple -example which removes @code{Time_signature_engraver} and -@code{Clef_engraver} from a @code{Staff} context, +dove @dots{} deve essere sostituito dal nome dell'incisore. Il comando +@code{\remove} toglie l'incisore, mentre @code{\consists} lo mantiene. +Ecco un semplice esempio che toglie l'incisore dell'indicazione di tempo +(@code{Time_signature_engraver}) e quello della chiave (@code{Clef_engraver}) +da un contesto @code{Staff}: @lilypond[quote,verbatim] << @@ -748,22 +732,23 @@ example which removes @code{Time_signature_engraver} and >> @end lilypond -In the second staff there are no time signature or clef symbols. This -is a rather crude method of making objects disappear since it will affect -the entire staff. This method also influences the spacing, which may or -may not be desirable. More sophisticated methods of blanking objects -are shown in @rlearning{Visibilità e colore degli oggetti}. +Nel secondo rigo non ci sono indicazioni di tempo né simboli della chiave. +Questo è un metodo piuttosto grezzo per far scomparire gli oggetti, dato +che ha effetto sull'intero rigo. Questo metodo influenza anche la spaziatura, +cosa che potrebbe non essere desiderabile. Metodi più sofisticati per +nascondere gli oggetti sono mostrati in @rlearning{Visibilità e colore degli oggetti}. -The next example shows a practical application. Bar lines and time -signatures are normally synchronized across the score. This is done -by the @code{Timing_translator} and @code{Default_bar_line_engraver}. -This plug-in keeps an administration of time signature, location -within the measure, etc. By moving these engraver from @code{Score} to -@code{Staff} context, we can have a score where each staff has its own -time signature. +L'esempio successivo mostra un'applicazione pratica. Le stanghette e le +indicazioni di tempo sono normalmente sincronizzate al livello dell'intera +partitura. Ciò viene fatto da @code{Timing_translator} e +@code{Default_bar_line_engraver}. Questo componente aggiuntivo gestisce +le indicazioni di tempo, il posizionamento nella misura, etc. Spostando +questi incisori dal contesto @code{Score} al contesto @code{Staff}, possiamo +ottenere una partitura in cui ogni rigo ha la sua indicazione di tempo. -@cindex polymetric scores -@cindex time signature, multiple +@cindex polimetria +@cindex partiture polimetriche +@cindex indicazione di tempo, multipla @lilypond[quote,verbatim] \score { @@ -797,25 +782,25 @@ time signature. @knownissues -The order in which the engravers are specified is the order in -which they are called to carry out their processing. Usually the -order in which the engravers are specified does not matter, but in -a few special cases the order is important, for example where one -engraver writes a property and another reads it, or where one -engraver creates a grob and another must process it. +L'ordine in cui vengono specificati gli incisori è l'ordine in cui +vengono richiamati per compiere la loro elaborazione. Di solito +l'ordine in cui gli incisori sono specificati non conta, ma in +pochi casi speciali l'ordine è importante, per esempio quando un +incisore scrive una proprietà e un altro la legge o quando un incisore +crea un grob e un altro lo deve elaborare. -The following orderings are important: +I seguenti ordini sono importanti: @itemize @item -the @code{Bar_engraver} must normally be first, +l'incisore @code{Bar_engraver} deve essere primo di solito, @item -the @code{New_fingering_engraver} must come before the +l'incisore @code{New_fingering_engraver} deve precedere l'incisore @code{Script_column_engraver}, @item -the @code{Timing_translator} must come before the +@code{Timing_translator} deve precedere l'incisore @code{Bar_number_engraver}. @end itemize @@ -825,72 +810,73 @@ File installati: @file{ly/engraver-init.ly}. -@node Changing context default settings -@subsection Changing context default settings +@node Modifica delle impostazioni predefinite di un contesto +@subsection Modifica delle impostazioni predefinite di un contesto +@translationof Changing context default settings @cindex default context properties, changing @cindex context properties, changing defaults -Context and grob properties can be changed with @code{\set} -and @code{\override} commands, as described in -@ref{Modifying properties}. These commands create music events, -making the changes take effect at the point in time the music -is being processed. +Le proprietà dei contesti e dei grob possono essere modificate con i comandi +@code{\set} e @code{\override}, come è spiegato in +@ref{Modifying properties}. Questi comandi creano eventi musicali, +rendendo effettivi i cambiamenti nel momento temporale in cui è +elaborata la musica. -In contrast, this section explains how to change the @emph{default} -values of context and grob properties at the time the context is -created. There are two ways of doing this. One modifies the default -values in all contexts of a particular type, the other modifies the -default values in just one particular instance of a context. +Questa sezione spiega invece come cambiare i valori @emph{predefiniti} +delle proprietà dei contesti e dei grob nel momento in cui viene creato +il contesto. Esistono due modi per farlo. Uno modifica i valori +predefiniti in tutti i contesti di un certo tipo, l'altro modifica i +valori predefiniti soltanto in una certa istanza di un contesto. @menu -* Changing all contexts of the same type:: -* Changing just one specific context:: -* Order of precedence:: +* Modifica di tutti i contesti dello stesso tipo:: +* Modifica di un solo contesto specifico:: +* Ordine di precedenza:: @end menu -@node Changing all contexts of the same type -@unnumberedsubsubsec Changing all contexts of the same type +@node Modifica di tutti i contesti dello stesso tipo +@unnumberedsubsubsec Modifica di tutti i contesti dello stesso tipo +@translationof Changing all contexts of the same type -@cindex \context in \layout block +@cindex \context nel blocco \layout @funindex \context @funindex \layout -The default context settings which are to be used for typesetting in -@code{Score}, @code{Staff}, @code{Voice} and other contexts may be -specified in a @code{\context} block within any @code{\layout} -block. +Le impostazioni di contesto predefinite da usare per l'output grafico nei +contesti @code{Score}, @code{Staff}, @code{Voice} e in altri contesti possono +essere specificate in un blocco @code{\context} compreso in un qualsiasi +blocco @code{\layout}. -Settings for Midi output as opposed to typesetting will have to be -separately specified in @code{\midi} blocks (see @ref{Output -definitions - blueprints for contexts}). +Le impostazioni per l'output Midi invece devono essere specificate separatamente +in blocchi @code{\midi} (vedi @ref{Output definitions - blueprints for contexts}). -The @code{\layout} block should be placed within the @code{\score} -block to which it is to apply, after the music. +Il blocco @code{\layout} deve trovarsi all'interno del blocco @code{\score} +al quale si vuole applicare, dopo la musica. @example \layout @{ \context @{ \Voice - [context settings for all Voice contexts] + [impostazioni di contesto per tutti i contesti Voice] @} \context @{ \Staff - [context settings for all Staff contexts] + [impostazioni di contesto per tutti i contesti Staff] @} @} @end example -The following types of settings may be specified: +Si possono specificare i seguenti tipi di impostazioni: @itemize @item -An @code{\override} command, but with the context name omitted +Un comando @code{\override}, ma col nome del contesto omesso @lilypond[quote,verbatim] \score { \relative { - a'4^"Thicker stems" a a a + a'4^"Gambi più spessi" a a a a4 a a\ff a } \layout { @@ -903,12 +889,12 @@ An @code{\override} command, but with the context name omitted @end lilypond @item -Directly setting a context property +Impostando direttamente una proprietà di contesto @lilypond[quote,verbatim] \score { \relative { - a'4^"Smaller font" a a a + a'4^"Tipo di carattere più piccolo" a a a a4 a a\ff a } \layout { @@ -921,13 +907,13 @@ Directly setting a context property @end lilypond @item -A predefined command such as @code{\dynamicUp} or a music -expression like @code{\accidentalStyle dodecaphonic} +Un comando predefinito come @code{\dynamicUp} o un'espressione +musicale come @code{\accidentalStyle dodecaphonic} @lilypond[quote,verbatim] \score { \relative { - a'4^"Dynamics above" a a a + a'4^"Dinamiche sopra" a a a a4 a a\ff a } \layout { @@ -944,8 +930,8 @@ expression like @code{\accidentalStyle dodecaphonic} @end lilypond @item -A user-defined variable containing a @code{\with} block; for details -of the @code{\with} block see +Una variabile definita dall'utente contenente un blocco @code{\with}; il blocco +@code{\with} è spiegato approfonditamente in @ref{Changing just one specific context}. @lilypond[quote,verbatim] @@ -956,7 +942,7 @@ StaffDefaults = \with { \score { \new Staff { \relative { - a'4^"Smaller font" a a a + a'4^"Tipo di carattere più piccolo" a a a a4 a a a } } @@ -971,20 +957,20 @@ StaffDefaults = \with { @end itemize -Property-setting commands can be placed in a @code{\layout} block -without being enclosed in a @code{\context} block. Such settings -are equivalent to including the same property-setting commands at -the start of every context of the type specified. If no context -is specified @emph{every} bottom-level context is affected, see -@ref{Bottom-level contexts - voices}. The syntax of a -property-setting command in a @code{\layout} block is the same as -the same command written in the music stream. +I comandi che impostano una proprietà possono essere posti in un blocco +@code{\layout} senza doverli racchiudere in un blocco @code{\context}. Così +facendo si ottiene lo stesso risultato che si otterrebbe se si includessero +gli stessi comandi all'inizio di ogni contesto del tipo specificato. Se non +è specificato alcun contesto, avranno effetto su @emph{qualsiasi} contesto +di basso livello, vedi @ref{Bottom-level contexts - voices}. La sintassi di +un comando di impostazione della proprietà in un blocco @code{\layout} è +identico a quello che si userebbe in mezzo alle note. @lilypond[quote,verbatim] \score { \new Staff { \relative { - a'4^"Smaller font" a a a + a'4^"Tipo di carattere più piccolo" a a a a4 a a a } } @@ -997,35 +983,37 @@ the same command written in the music stream. @end lilypond -@node Changing just one specific context -@unnumberedsubsubsec Changing just one specific context +@node Modifica di un solo contesto specifico +@unnumberedsubsubsec Modifica di un solo contesto specifico +@translationof Changing just one specific context @cindex \with @funindex \with -The context properties of just one specific context instance can be -changed in a @code{\with} block. All other context instances of the -same type retain the default settings built into LilyPond and modified -by any @code{\layout} block within scope. The @code{\with} block -must be placed immediately after the @code{\new} @var{context-type} -command: +Le proprietà di contesto di una sola istanza di un contesto specifico possono +essere cambiate in un blocco @code{\with}. Tutte le altre istanze di contesto +dello stesso tipo manterranno le impostazioni predefinite di LilyPond e saranno +modificate da qualsiasi blocco @code{\layout} che le riguarda. Il blocco +@code{\with} deve essere posto subito dopo il +comando @code{\new} @var{tipo-contesto}: @example -\new Staff \with @{ [context settings for this context instance only] @} +\new Staff \with @{ [impostazioni di contesto per questa istanza di contesto soltanto] @} @{ @dots{} @} @end example -Since such a @q{context modification} is specified inside of -music, it will affect @emph{all} outputs (typesetting @emph{and} -Midi) as opposed to changes within an output definition. +Dato che questa @q{modifca di contesto} è specificata all'interno della +musica, avrà effetto su @emph{tutti} gli output (quello grafico @emph{e} il +Midi), diversamente da quanto avviene per le modifiche inserite in una +definizione di output. -The following types of settings may be specified: +Si possono specificare i seguenti tipi di impostazioni: @itemize @item -An @code{\override} command, but with the context name omitted +Un comando @code{\override}, ma col nome di contesto omesso @lilypond[quote,verbatim] \score { @@ -1033,7 +1021,7 @@ An @code{\override} command, but with the context name omitted \new Voice \with { \override Stem.thickness = #4.0 } { \relative { - a'4^"Thick stems" a a a + a'4^"Gambi spessi" a a a a4 a a a } } @@ -1042,21 +1030,21 @@ An @code{\override} command, but with the context name omitted @end lilypond @item -Directly setting a context property +Impostando direttamente una proprietà di contesto @lilypond[quote,verbatim] \score { << \new Staff { \relative { - a'4^"Default font" a a a + a'4^"Tipo di carattere predefinito" a a a a4 a a a } } \new Staff \with { fontSize = #-4 } { \relative { - a'4^"Smaller font" a a a + a'4^"Tipo di carattere più piccolo" a a a a4 a a a } } @@ -1065,7 +1053,7 @@ Directly setting a context property @end lilypond @item -A predefined command such as @code{\dynamicUp} +Un comando predefinito come @code{\dynamicUp} @lilypond[quote,verbatim] \score { @@ -1073,7 +1061,7 @@ A predefined command such as @code{\dynamicUp} \new Staff { \new Voice { \relative { - a'4^"Dynamics below" a a a + a'4^"Dinamiche sotto" a a a a4 a a\ff a } } @@ -1083,7 +1071,7 @@ A predefined command such as @code{\dynamicUp} \new Voice \with { \dynamicUp } { \relative { - a'4^"Dynamics above" a a a + a'4^"Dinamiche sopra" a a a a4 a a\ff a } } @@ -1094,28 +1082,28 @@ A predefined command such as @code{\dynamicUp} @end itemize -@node Order of precedence -@unnumberedsubsubsec Order of precedence +@node Ordine di precedenza +@unnumberedsubsubsec Ordine di precedenza +@translationof Order of precedence -The value of a property which applies at a particular time is -determined as follows: +Il valore di una proprietà da applicare in un certo momento viene determinato +nel modo seguente: @itemize @item -if an @code{\override} or @code{\set} command in the input stream is -in effect that value is used, +se un comando @code{\override} o @code{\set} nel flusso dell'input (le note) è +attivo viene usato quel valore, @item -otherwise the default value taken from a @code{\with} statement -on the context initiation statement is used, +altrimenti viene usato il valore predefinito preso da una dichiarazione +@code{\with} nella dichiarazione di iniziazione del contesto, @item -otherwise the default value taken from the most recent appropriate -@code{\context} block in the @code{\layout} or @code{\midi} blocks -is used, +altrimenti viene usato il valore predefinito preso dal blocco @code{\context} +appropriato più recente nei blocchi @code{\layout} o @code{\midi}, @item -otherwise the LilyPond built-in default is used. +altrimenti viene usato il valore predefinito in LilyPond. @end itemize @seealso @@ -1127,14 +1115,15 @@ Guida alla notazione: @ref{Bottom-level contexts - voices}, @ref{The set command}, @ref{The override command}, -@ref{The layout block,,The @code{@bs{}layout} block}. +@ref{The layout block,,Il blocco @code{@bs{}layout}}. -@node Defining new contexts -@subsection Defining new contexts +@node Definizione di nuovi contesti +@subsection Definizione di nuovi contesti +@translationof Defining new contexts -@cindex contexts, defining new -@cindex engravers, including in contexts +@cindex contesti, definire nuovi +@cindex incisori, includere nei contesti @funindex \alias @funindex alias @@ -1149,14 +1138,14 @@ Guida alla notazione: @funindex \denies @funindex denies -Specific contexts, like @code{Staff} and @code{Voice}, are made from -simple building blocks. It is possible to create new types of -contexts with different combinations of engraver plug-ins. +Contesti specifici, come @code{Staff} e @code{Voice}, sono creati a partire +da semplici mattoncini. È possibile creare nuovi tipi di contesto con +diverse combinazioni di incisori. -The next example shows how to build a different type of -@code{Voice} context from scratch. It will be similar to -@code{Voice}, but only prints centered slash note heads. It can be used -to indicate improvisation in jazz pieces, +Il prossimo esempio mostra come costruire un diverso tipo di contesto +@code{Voice} da zero. Sarà simile a @code{Voice}, ma stamperà soltanto +teste di nota a forma di barra posizionate al centro. Può essere usato +per indicare l'improvvisazione nei brani jazz: @lilypond[quote,ragged-right] \layout { \context { @@ -1183,8 +1172,8 @@ to indicate improvisation in jazz pieces, @end lilypond -These settings are defined within a @code{\context} block inside a -@code{\layout} block, +Queste impostazioni sono definite in un blocco @code{\context} compreso in +un blocco @code{\layout}: @example \layout @{ @@ -1194,27 +1183,26 @@ These settings are defined within a @code{\context} block inside a @} @end example -In the following discussion, the example input shown should go in place -of the @dots{} in the previous fragment. +L'input di esempio che segue sostituisce i @dots{} del frammento precedente. -First it is necessary to define a name for the new context: +Per prima cosa occorre definire un nome per il nuovo contesto: @example \name ImproVoice @end example -Since it is similar to the @code{Voice} context, we want commands that -work in (existing) @code{Voice} contexts to continue working. This is -achieved by giving the new context an alias of @code{Voice}, +Essendo simile al contesto @code{Voice}, ci servono comandi che funzionano +in contesti @code{Voice} esistenti per far sì che continuino a funzionare. Per +farlo si assegna al nuovo contesto un alias di @code{Voice}, @example \alias Voice @end example -The context will print notes and instructive texts, so we need to add -the engravers which provide this functionality, plus the engraver which -groups notes, stems and rests which occur at the same musical moment -into columns, +Il contesto stamperà note e testi di spiegazione, dunque dobbiamo +aggiungere gli incisori che forniscono queste funzionalità, più +l'incisore che raggruppa in colonne le note, i gambi e le pause che +si trovano nello stesso momento musicale: @example \consists "Note_heads_engraver" @@ -1222,40 +1210,40 @@ into columns, \consists "Rhythmic_column_engraver" @end example -The note heads should all be placed on the center line, +Le teste di nota devono essere poste tutte sulla linea centrale: @example \consists "Pitch_squash_engraver" squashedPosition = #0 @end example -The @code{Pitch_squash_engraver} modifies note heads (created -by the @code{Note_heads_engraver}) and sets their vertical -position to the value of @code{squashedPosition}, in this -case@tie{}@code{0}, the center line. +L'incisore @code{Pitch_squash_engraver} modifica le teste di nota (create +dall'incisore @code{Note_heads_engraver}) e imposta la loro posizione +verticale sul valore di @code{squashedPosition}, in questo +caso@tie{}@code{0}, la linea centrale. -The notes look like a slash, and have no stem, +Le note appaiono come una barra e non hanno gambi: @example \override NoteHead.style = #'slash \hide Stem @end example -All these plug-ins have to communicate under the control of the -context. The mechanisms with which contexts communicate are -established by declaring the context @code{\type}. Within a -@code{\layout} block, most contexts will be of type -@code{Engraver_group}. Some special contexts and contexts in -@code{\midi} blocks use other context types. Copying and -modifying an existing context definition will also fill in the -type. Since this example creates a definition from scratch, it -needs to be specified explicitly. +Tutti questi componenti aggiuntivi devono comunicare sotto il controllo +del contesto. I meccanismi con cui i contesti comunicano sono stabiliti +dichiarando il tipo di contesto con @code{\type}. In un blocco +@code{\layout}, la maggior parte dei contesti sarà del tipo +@code{Engraver_group}. Alcuni contesti speciali e i contesti nei +blocchi @code{\midi} usano altri tipi di contesto. Copiare e modificare +una definizione di contesto esistente comprenderà anche la definizione +del tipo. Poiché questo esempio crea una definizione da zero, deve essere +specificato in modo esplicito. @example \type "Engraver_group" @end example -Put together, we get +Mettendo tutte queste parti insieme otteniamo: @example \context @{ @@ -1273,10 +1261,10 @@ Put together, we get @end example @funindex \accepts -Contexts form hierarchies. We want to place the @code{ImproVoice} -context within the @code{Staff} context, just like normal @code{Voice} -contexts. Therefore, we modify the @code{Staff} definition with the -@code{\accepts} command, +I contesti formano gerarchie. Vogliamo posizionare il contesto @code{ImproVoice} +all'interno del contesto @code{Staff}, proprio come i normali contesti +@code{Voice}. Cambiamo quindi la definizione di @code{Staff} col comando +@code{\accepts}, @example \context @{ @@ -1286,20 +1274,20 @@ contexts. Therefore, we modify the @code{Staff} definition with the @end example @funindex \inherit-acceptability -Often when reusing an existing context definition, the resulting -context can be used anywhere where the original context would have -been useful. +Spesso quando si riutilizza una definizione di contesto esistente, il contesto +risultante può essere usato in qualsiasi situazione in cui il contesto originale +sarebbe stato utile. @example \layout @{ @dots{} - \inherit-acceptability @var{to} @var{from} + \inherit-acceptability @var{a} @var{da} @} @end example @noindent -will arrange to have contexts of type @var{to} accepted by all -contexts also accepting @var{from}. For example, using +farà sì che i contesti del tipo @var{a} siano accettati da tutti i +contesti che accettano anche @var{da}. Per esempio, usando @example \layout @{ @@ -1309,15 +1297,14 @@ contexts also accepting @var{from}. For example, using @end example @noindent -will add an @code{\accepts} for @code{ImproVoice} to both -@code{Staff} and @code{RhythmicStaff} definitions. +verrà aggiunto un @code{\accepts} per @code{ImproVoice} a entrambe le +definizioni di @code{Staff} e @code{RhythmicStaff}. @funindex \denies -The opposite of @code{\accepts} is @code{\denies}, -which is sometimes needed when reusing existing context definitions. +L'opposto di @code{\accepts} è @code{\denies}, +che è talvolta necessario se si riusano definizioni di contesto esistenti. -Arranging the required pieces into a @code{\layout} block leaves -us with +Sistemando i pezzi necessari in un blocco @code{\layout} ci porta a: @example \layout @{ @@ -1329,7 +1316,7 @@ us with @} @end example -Then the output at the start of this subsection can be entered as +Quindi l'output all'inizio di questa parte può essere inserito così: @example \relative @{ @@ -1343,9 +1330,9 @@ Then the output at the start of this subsection can be entered as @} @end example -To complete this example, changes affecting the context hierarchy -should be repeated in a @code{\midi} block so that Midi output -depends on the same context relations. +Per completare questo esempio, le modifiche che alterano la gerarchia dei +contesti devono essere ripetute in un blocco @code{\midi} per far sì che +l'output Midi dipenda dalle stesse relazioni di contesto. @seealso @@ -1356,30 +1343,30 @@ Guida al funzionamento interno: @rinternals{Pitch_squash_engraver}. -@node Context layout order -@subsection Context layout order +@node Ordine di disposizione dei contesti +@subsection Ordine di disposizione dei contesti +@translationof Context layout order -@cindex contexts, layout order +@cindex contesti, ordine di disposizione @funindex \accepts @funindex \denies -Contexts are normally positioned in a system from top to bottom -in the order in which they are encountered in the input file. When -contexts are nested, the outer context will include inner nested -contexts as specified in the input file, provided the inner contexts -are included in the outer context's @qq{accepts} list. Nested -contexts which are not included in the outer context's @qq{accepts} -list will be repositioned below the outer context rather than nested -within it. +Normalmente i contesti in un sistema sono posizionati dall'alto verso il +basso nell'ordine in cui sono incontrati nel file di input. Quando i +contesti sono annidati, il contesto più esterno includerà i contesti +annidati al suo interno come specificato nel file di input solo se i +contesti interni sono inclusi nell'elenco @qq{accepts} del contesto +più esterno; altrimenti saranno riposizionati sotto il contesto più +esterno invece di essere annidati al suo interno. -The @qq{accepts} list of a context can be changed with the -@code{\accepts} or @code{\denies} commands. @code{\accepts} adds a -context to the @qq{accepts} list and @code{\denies} removes a context -from the list. +L'elenco @qq{accepts} di un contesto può essere modificato coi comandi +@code{\accepts} o @code{\denies}. @code{\accepts} aggiunge un contesto +all'elenco @qq{accepts} mentre @code{\denies} lo rimuove dall'elenco. -For example, a square-braced staff group is not usually found within a -curved-braced staff with connecting staff bars, and a @code{GrandStaff} -does not accept a @code{StaffGroup} inside it by default. +Per esempio, un gruppo di righi racchiusi da una parentesi quadra non si +trova solitamente all'interno di un gruppo di righi con stanghette +connesse e racchiusi da una graffa, e @code{GrandStaff} non accetta al suo +interno @code{StaffGroup} per impostazione predefinita. @lilypond[verbatim,quote] \score { @@ -1388,13 +1375,13 @@ does not accept a @code{StaffGroup} inside it by default. \new Staff { c'1 } \new Staff { d'1 } >> - \new Staff { \set Staff.instrumentName = bottom f'1 } + \new Staff { \set Staff.instrumentName = ultimo f'1 } >> } @end lilypond -However, by using the @code{\accepts} command, @code{StaffGroup} can be -added to the @code{GrandStaff} context: +Tuttavia col comando @code{\accepts} si può aggiungere @code{StaffGroup} +al contesto @code{GrandStaff}: @lilypond[verbatim,quote] \score { @@ -1403,7 +1390,7 @@ added to the @code{GrandStaff} context: \new Staff { c'1 } \new Staff { d'1 } >> - \new Staff { \set Staff.instrumentName = bottom f'1 } + \new Staff { \set Staff.instrumentName = ultimo f'1 } >> \layout { \context { @@ -1414,58 +1401,58 @@ added to the @code{GrandStaff} context: } @end lilypond -@code{\denies} is mainly used when a new context is being based on -another, but the required nesting differs. For example, the -@code{VaticanaStaff} context is based on the @code{Staff} context, but -with the @code{VaticanaVoice} context substituted for the @code{Voice} -context in the @qq{accepts} list. +@code{\denies} si usa soprattutto quando un nuovo contesto è basato su +un altro, ma l'annidamento richiesto differisce. Per esempio, il contesto +@code{VaticanaStaff} è basato sul contesto @code{Staff}, ma col contesto +@code{VaticanaVoice} che sostituisce il contesto @code{Voice} nell'elenco +@qq{accepts}. -@cindex contexts, implicit -@cindex implicit contexts +@cindex contesti impliciti @funindex \defaultchild -Note that a context will be silently created implicitly if a -command is encountered when there is no suitable context available -to contain it. +Nota bene: un contesto verrà creato implicitamente e senza avviso se +si incontra un comando quando non c'è un contesto adatto disponibile +per contenerlo. -Within a context definition, the type of subcontext to be -implicitly created is specified using @code{\defaultchild}. A -number of music events require a @samp{Bottom} context: when such -an event is encountered, subcontexts are created recursively until -reaching a context with no @samp{defaultchild} setting. +Nella definizione di un contesto, il tipo di sottocontesto da creare +implicitamente viene specificato con @code{\defaultchild}. Vari eventi +musicali richiedono un contesto @qq{di base}: quando si incontra tale +evento, vengono creati ricorsivamente i sottocontesti finché non si +raggiunge un contesto privo di impostazione @samp{defaultchild}. -Implicit context creation can at times give rise to unexpected new -staves or scores. Using @code{\new} to create contexts explicitly -avoids those problems. +La creazione implicita di contesti può talvolta causare nuovi righi o nuove +partiture non attesi. Per evitare questi problemi è consigliabile usare +@code{\new} per creare i contesti esplicitamente. @cindex alignAboveContext @cindex alignBelowContext @funindex alignAboveContext @funindex alignBelowContext -Sometimes a context is required to exist for just a brief period, a -good example being the staff context for an ossia. This is usually -achieved by introducing the context definition at the appropriate -place in parallel with corresponding section of the main music. -By default, the temporary context will be placed below all the -existing contexts. To reposition it above the context called -@qq{main}, it should be defined like this: +Talvolta un contesto deve esistere solo per un breve periodo, come nel +caso esemplare di un contesto rigo per un ossia. Per ottenere ciò, di +solito si introduce la definizione di contesto nel punto appropriato +in parallelo con la sezione corrispondente della musica principale. +Per impostazione predefinita, il contesto temporaneo verrà posizionato +sotto tutti i contesti esistenti. Per riposizionarlo sopra il contesto +chiamato @qq{principale}, dovrebbe essere definito in questo modo: @example -@code{\new Staff \with @{ alignAboveContext = #"main" @} } +@code{\new Staff \with @{ alignAboveContext = #"principale" @} } @end example -A similar situation arises when positioning a temporary lyrics -context within a multi-staved layout such as a @code{ChoirStaff}, -for example, when adding a second verse to a repeated section. -By default the temporary lyrics context will be placed beneath the -lower staves. By defining the temporary lyrics context with -@code{alignBelowContext} it can be positioned correctly beneath -the (named) lyrics context containing the first verse. +Una situazione simile si pone quando si posiziona un contesto temporaneo +per il testo vocale all'interno di una disposizione multirigo come +@code{ChoirStaff}; per esempio, quando si aggiunge una seconda strofa a +una sezione ripetuta. Per impostazione predefinita, il contesto temporaneo +per il testo vocale verrà posizionato sotto i righi più bassi. Definendo il +contesto temporaneo per il testo vocale con @code{alignBelowContext}, questo +può essere posizionato correttamente sotto i contesti della voce (con nome) +che contengono la prima strofa. -Examples showing this repositioning of temporary contexts can be -found elsewhere --- see @rlearning{Annidare le espressioni musicali}, -@ref{Modifying single staves} and @ref{Techniques specific to lyrics}. +Esempi che mostrano questo riposizionamento di contesti temporanei possono +essere trovati altrove --- vedi @rlearning{Annidare le espressioni musicali}, +@ref{Modifying single staves} e @ref{Techniques specific to lyrics}. @seealso Manuale di apprendimento: @@ -1475,8 +1462,8 @@ Guida alla notazione: @ref{Modifying single staves}, @ref{Techniques specific to lyrics}. -Application Usage: -@rprogram{An extra staff appears}. +Utilizzo: +@rprogram{Appare un rigo in più}. File installati: @file{ly/engraver-init.ly}. @@ -1487,91 +1474,54 @@ File installati: @translationof Explaining the Internals Reference @menu -* Navigating the program reference:: -* Layout interfaces:: -* Determining the grob property:: -* Naming conventions:: +* Navigazione nella guida al programma:: +* Interfacce di formattazione:: +* Determinazione della proprietà del grob:: +* Convenzioni sui nomi:: @end menu -@node Navigating the program reference -@subsection Navigating the program reference +@node Navigazione nella guida al programma +@subsection Navigazione nella guida al programma +@translationof Navigating the program reference @c TODO remove this (it's in the LM) @c Replace with more factual directions -Suppose we want to move the fingering indication in the fragment -below: +Supponiamo di voler togliere l'indicazione di diteggiatura nel seguente +frammento: @lilypond[quote,fragment,verbatim] c''-2 @end lilypond -If you visit the documentation on fingering instructions (in -@ref{Fingering instructions}), you will notice: +Consultando la documentazione sulle istruzioni di diteggiatura (in +@ref{Fingering instructions}), si nota: @quotation -@strong{See also} +@strong{Vedi anche} Guida al funzionamento interno: @rinternals{Fingering}. @end quotation - -@c outdated info; probably will delete. -@ignore -This fragment points to two parts of the program reference: a page -on @code{FingeringEvent} and one on @code{Fingering}. - -The page on @code{FingeringEvent} describes the properties of the music -expression for the input @w{@code{-2}}. The page contains many links -forward. For example, it says - -@quotation -Accepted by: @rinternals{Fingering_engraver}, -@end quotation - -@noindent -That link brings us to the documentation for the Engraver, the -plug-in, which says - -@quotation -This engraver creates the following layout objects: @rinternals{Fingering}. -@end quotation - -In other words, once the @code{FingeringEvent}s are interpreted, the -@code{Fingering_engraver} plug-in will process them. -@end ignore - -@ignore -@c I can't figure out what this is supposed to mean. -gp - -The @code{Fingering_engraver} is also listed to create -@rinternals{Fingering} objects, - -@c old info? it doesn't make any sense to me with our current docs. -This is also the -second bit of information listed under @b{See also} in the Notation -manual. -@end ignore - @ifnothtml -The programmer's reference is available as an HTML document. It is -highly recommended that you read it in HTML form, either online or -by downloading the HTML documentation. This section will be much more -difficult to understand if you are using the -PDF manual. +La guida del programmatore è disponibile come documento HTML. È caldamente +consigliata la lettura della versione HTML, accessibile online o in locale +scaricando la documentazione HTML. Questa sezione sarà molto più difficile da +comprendere se si usa il manuale PDF. @end ifnothtml -Follow the link to @rinternals{Fingering}. At the top of the -page, you will see +Seguire il collegamento a @rinternals{Fingering}. In cima alla pagina +si vede +@c Non tradurre le parti citate del manuale Internals Reference, che non è tradotto. @quotation Fingering objects are created by: @rinternals{Fingering_engraver} and @rinternals{New_fingering_engraver}. @end quotation -By following related links inside the program reference, we can follow the -flow of information within the program: +Seguendo i collegamenti correlati nella guida del programma, possiamo seguire +il flusso di informazione del programma: @itemize @@ -1587,40 +1537,42 @@ Music event type @code{fingering-event} is in Music expressions named @rinternals{FingeringEvent} @end itemize -This path goes against the flow of information in the program: it -starts from the output, and ends at the input event. You could -also start at an input event, and read with the flow of -information, eventually ending up at the output object(s). +Questo percorso va in direzione contraria al flusso dell'informazione nel +programma: parte dall'output e termina nell'evento di input. Si può anche +partire da un evento di input e leggere seguendo il flusso di informazione +arrivando infine all'oggetto di output. -The program reference can also be browsed like a normal document. It -contains chapters on +La guida al programma può anche essere sfogliata come un normale +documento. Contiene capitoli su @ifhtml @rinternals{Music definitions}, @end ifhtml @ifnothtml @code{Music definitions} @end ifnothtml -on @rinternals{Translation}, and the @rinternals{Backend}. Every -chapter lists all the definitions used and all properties that may be -tuned. +su @rinternals{Translation}, e sul @rinternals{Backend}. Ogni capitolo +elenca tutte le definizioni usate e tutte le proprietà che possono +essere ritoccate. -@node Layout interfaces -@subsection Layout interfaces +@node Interfacce di formattazione +@subsection Interfacce di formattazione +@translationof Layout interfaces @cindex interface, layout @cindex layout interface @cindex grob -The HTML page that we found in the previous section describes the -layout object called @rinternals{Fingering}. Such an object is a -symbol within the score. It has properties that store numbers (like -thicknesses and directions), but also pointers to related objects. A -layout object is also called a @emph{Grob}, which is short for Graphical -Object. For more details about Grobs, see @rinternals{grob-interface}. +La pagina HTML che abbiamo incontrato nella sezione precedente descrive +l'oggetto di formattazione chiamato @rinternals{Fingering}. Tale oggetto +è un simbolo interno alla partitura. Ha delle proprietà che contengono +numeri (come gli spessori e le direzioni), ma anche collegamenti a oggetti +correlati. Un oggetto di formattazione viene chiamato anche @emph{Grob}, +che è un diminutivo di Graphical Object (oggetto grafico). Maggiori dettagli +sui Grob si trovano in @rinternals{grob-interface}. -The page for @code{Fingering} lists the definitions for the -@code{Fingering} object. For example, the page says +La pagina relativa al grob @code{Fingering} elenca le definizioni per l'oggetto +@code{Fingering}. Per esempio, la pagina dice @quotation @code{padding} (dimension, in staff space): @@ -1629,39 +1581,42 @@ The page for @code{Fingering} lists the definitions for the @end quotation @noindent -which means that the number will be kept at a distance of at least 0.5 -of the note head. +che significa che il numero verrà tenuto a una distanza di almento 0.5 spazi +rigo dalla testa della nota. - -Each layout object may have several functions as a notational or -typographical element. For example, the Fingering object -has the following aspects +Ogni oggetto di formattazione può avere varie funzioni come elemento +della notazione o tipografico. Per esempio, l'oggetto Fingering ha +i seguenti aspetti @itemize @item -Its size is independent of the horizontal spacing, unlike slurs or beams. +La sua dimensione è indipendente dalla spaziatura orizzontale, diversamente +da legature di portamento o travature. @item -It is a piece of text. Granted, it is usually a very short text. +È un frammento testuale, solitamente molto breve. @item -That piece of text is typeset with a font, unlike slurs or beams. +Questo frammento di testo viene rappresentato con un tipo di carattere, +diversamente da legature di portamento o travature. @item -Horizontally, the center of the symbol should be aligned to the -center of the note head. +Orizzontalmente, il centro del simbolo deve essere allineato al centro della +testa della nota. @item -Vertically, the symbol is placed next to the note and the staff. +Verticalmente, il simbolo viene posto accanto alla nota e sul rigo. @item -The vertical position is also coordinated with other superscript -and subscript symbols. +La posizione verticale viene coordinata anche con altri simboli di apici +o pedici. @end itemize -Each of these aspects is captured in so-called @emph{interface}s, -which are listed on the @rinternals{Fingering} page at the bottom +Ognuno di questi aspetti viene registrato nelle cosiddette interfacce +(@emph{interface}), che sono elencate in fondo alla +pagina @rinternals{Fingering}: +@c non tradurre @quotation This object supports the following interfaces: @rinternals{item-interface}, @@ -1671,15 +1626,15 @@ This object supports the following interfaces: @rinternals{finger-interface}, and @rinternals{grob-interface}. @end quotation -Clicking any of the links will take you to the page of the respective -object interface. Each interface has a number of properties. Some of -them are not user-serviceable (@q{Internal properties}), but others -can be modified. +Facendo clic su uno di questo collegamenti si arriva alla pagina dell'interfaccia +del rispettivo oggetto. Ogni interfaccia ha una serie di proprietà. Alcune +non sono a disposizione dell'utente (@q{Internal properties}), ma altre +possono essere modificate. -We have been talking of @emph{the} @code{Fingering} object, but actually it -does not amount to much. The initialization file (see +Abbiamo parlato dell'oggetto @code{Fingering}, ma in realtà non si tratta +di niente di troppo complesso. Il file di inizializzazione (vedi @rlearning{Altre fonti di informazione}) -@file{scm/define-grobs.scm} shows the soul of the @q{object}, +@file{scm/define-grobs.scm} mostra l'anima di questo @qq{oggetto}, @example (Fingering @@ -1705,28 +1660,30 @@ does not amount to much. The initialization file (see @end example @noindent -As you can see, the @code{Fingering} object is nothing more than a -bunch of variable settings, and the webpage in the Guida al funzionamento interno -is directly generated from this definition. +Come si può vedere, l'oggetto @code{Fingering} non è niente più di un insieme +di impostazioni di variabili e la pagina web nella Guida al funzionamento interno +è generata direttamente da questa definizione. -@node Determining the grob property -@subsection Determining the grob property +@node Determinazione della proprietà del grob +@subsection Determinazione della proprietà del grob +@translationof Determining the grob property @c TODO remove this (it's in the LM) @c Replace with more factual directions -Recall that we wanted to change the position of the @b{2} in +Volevamo cambiare la posizione del @b{2} in @lilypond[quote,fragment,verbatim] c''-2 @end lilypond -Since the @b{2} is vertically positioned next to its note, we have to -meddle with the interface associated with this positioning. This is -done using @code{side-position-interface}. The page for this interface -says +Dato che il @b{2} è posizionato verticalmente vicino alla sua nota, dobbiamo +fare delle prove con l'interfaccia associata a questo posizionamento, ovvero +@code{side-position-interface}. La pagina relativa a questa interfaccia +dice +@c non tradurre @quotation @code{side-position-interface} @@ -1737,8 +1694,9 @@ victim object relative to the support (left or right, up or down?) @cindex padding @noindent -Below this description, the variable @code{padding} is described as +Sotto questa descrizione, la variabile @code{padding} viene descritta come +@c non tradurre @quotation @table @code @item padding @@ -1748,16 +1706,15 @@ Add this much extra space between objects that are next to each other. @end table @end quotation -By increasing the value of @code{padding}, we can move the -fingering away from the note head. The following command inserts -3 staff spaces of white -between the note and the fingering: +Aumentando il valore di @code{padding}, possiamo spostare la diteggiatura +lontana dalla testa di nota. Il seguente comando inserisce 3 spazi rigo +di bianco tra la nota e la diteggiatura: @example \once \override Voice.Fingering.padding = #3 @end example -Inserting this command before the Fingering object is created, -i.e., before @code{c2}, yields the following result: +L'inserimento di questo comando prima che l'oggetto Fingering venga +creato, ovvero prima di @code{c-2}, produce il seguente risultato: @lilypond[quote,fragment,verbatim] \once \override Voice.Fingering.padding = #3 @@ -1765,41 +1722,39 @@ c''-2 @end lilypond -In this case, the context for this tweak is @code{Voice}. This -fact can also be deduced from the program reference, for the page for -the @rinternals{Fingering_engraver} plug-in says +In questo caso, il contesto per questa modifica è @code{Voice}. Questo +fatto può anche essere dedotto dalla guida al programma, dato che la pagina +per l'incisore @rinternals{Fingering_engraver} dice @quotation Fingering_engraver is part of contexts: @dots{} @rinternals{Voice} @end quotation -@node Naming conventions -@subsection Naming conventions +@node Convenzioni sui nomi +@subsection Convenzioni sui nomi +@translationof Naming conventions -Another thing that is needed, is an overview of the various naming -conventions: +È importante conoscere le convenzioni sui nomi. Ecco una panoramica: @itemize -@item scheme functions: lowercase-with-hyphens (incl. one-word -names) -@item scheme functions: ly:plus-scheme-style -@item music events, music classes and music properties: -as-scheme-functions -@item Grob interfaces: scheme-style -@item backend properties: scheme-style (but X and Y!) -@item contexts (and MusicExpressions and grobs): Capitalized or -CamelCase -@item context properties: lowercaseFollowedByCamelCase -@item engravers: -Capitalized_followed_by_lowercase_and_with_underscores +@item funzioni scheme: minuscolo-con-trattini (incl. nomi di una-parola) +@item funzioni scheme: ly:plus-scheme-style +@item eventi, classi e proprietà musicali: +come-le-funzioni-scheme +@item interfacce Grob: stile-scheme +@item proprietà del backend: stile-scheme (ma ammette X e Y!) +@item contesti (e EspressioniMusicali e grob): Maiuscolo o CamelCase +@item proprietà di contesto: minuscoloSeguitoDaCamelCase +@item incisori: +Maiuscolo_seguito_da_minuscolo_e_con_trattini_bassi @end itemize -Questions to be answered: +Domande che aspettano una risposta: @itemize -@item Which of these are conventions and which are rules? -@item Which are rules of the underlying language, and which are -LP-specific? +@item Quali di queste sono convenzioni e quali sono regole? +@item Quali sono regole del linguaggio sottostante e quali sono specifiche +di LilyPond? @end itemize @node Modifica delle proprietà @@ -1812,125 +1767,34 @@ LP-specific? @c the same time. -td @menu -* Overview of modifying properties:: -* The set command:: -* The override command:: +* Panoramica sulla modifica delle proprietà:: +* Il comando set:: +* Il comando override:: * Il comando tweak:: -* set versus override:: -* Modifying alists:: +* set vs override:: +* Modifica delle liste associative:: @end menu -@node Overview of modifying properties -@subsection Overview of modifying properties - -Each context is responsible for creating certain types of graphical -objects. The settings used for printing these objects are also stored by -context. By changing these settings, the appearance of objects can be -altered. - -There are two different kinds of properties stored in contexts: -context properties and grob properties. Context properties are -properties that apply to the context as a whole and control -how the context itself is displayed. In contrast, grob properties -apply to specific grob types that will be displayed in the context. - -The @code{\set} and @code{\unset} commands are used to change values -for context properties. The @code{\override} and @code{\revert} -commands are used to change values for grob properties. - -@ignore -The syntax for this is - -@example -\override @var{context}.@var{name} #'@var{property} = #@var{value} -@end example - -Here @var{name} is the name of a graphical object, like -@code{Stem} or @code{NoteHead}, and @var{property} is an internal -variable of the formatting system (@q{grob property} or @q{layout -property}). The latter is a symbol, so it must be quoted. The -subsection @ref{Modifying properties}, explains what to fill in -for @var{name}, @var{property}, and @var{value}. Here we only -discuss the functionality of this command. - -The command +@node Panoramica sulla modifica delle proprietà +@subsection Panoramica sulla modifica delle proprietà +@translationof Overview of modifying properties -@verbatim -\override Staff.Stem.thickness = #4.0 -@end verbatim +Ogni contesto è responsabile della creazione di certi tipi di oggetti +grafici. Le impostazioni usate per la rappresentazione grafica di +questi oggetti sono anch'esse salvate dal contesto. Cambiando queste +impostazioni, si può alterare l'aspetto degli oggetti. -@noindent -makes stems thicker (the default is 1.3, with staff line thickness as a -unit). Since the command specifies @code{Staff} as context, it only -applies to the current staff. Other staves will keep their normal -appearance. Here we see the command in action: - -@lilypond[quote,fragment,verbatim] -c''4 -\override Staff.Stem.thickness = #4.0 -c''4 -c''4 -c''4 -@end lilypond - -The @code{\override} command changes the definition of the @code{Stem} -within the current @code{Staff}. After the command is interpreted -all stems are thickened. - -Analogous to @code{\set}, the @var{context} argument may be left out, -causing the default context @code{Voice} to be used. Adding -@code{\once} applies the change during one timestep only. +Ci sono due tipi diversi di proprietà salvate nei contesti: le proprietà +del contesto e quelle del grob. Le proprietà del contesto sono proprietà +che si applicano al contesto nel suo complesso e regolano il modo in cui +il contesto stesso viene mostrato. Al contrario, le proprietà del grob +si applicano a tipi di grob specifici che verranno mostrati nel contesto. -@lilypond[quote,fragment,verbatim] -c''4 -\once \override Stem.thickness = #4.0 -c''4 -c''4 -@end lilypond +I comandi @code{\set} e @code{\unset} vengono usati per cambiare i valori +delle proprietà di contesto. I comandi @code{\override} e @code{\revert} +servono a cambiare i valori delle proprietà dei grob. -The @code{\override} must be done before the object is -started. Therefore, when altering @emph{Spanner} objects such as slurs -or beams, the @code{\override} command must be executed at the moment -when the object is created. In this example, - -@lilypond[quote,fragment,verbatim] -\override Slur.thickness = #3.0 -c''8[( c'' -\override Beam.beam-thickness = #0.6 -c''8 c'']) -@end lilypond - -@noindent -the slur is fatter but the beam is not. This is because the command for -@code{Beam} comes after the Beam is started, so it has no effect. - -Analogous to @code{\unset}, the @code{\revert} command for a context -undoes an @code{\override} command; like with @code{\unset}, it only -affects settings that were made in the same context. In other words, the -@code{\revert} in the next example does not do anything. - -@example -\override Voice.Stem.thickness = #4.0 -\revert Staff.Stem.thickness -@end example - -Some tweakable options are called @q{subproperties} and reside inside -properties. To tweak those, use commands of the form - -@c leave this as a long long -@example -\override @var{context}.@var{name} #'@var{property} #'@var{subproperty} = #@var{value} -@end example - -@noindent -such as - -@example -\override Stem.details.beamed-lengths = #'(4 4 3) -@end example - -@end ignore @seealso Guida al funzionamento interno: @@ -1941,40 +1805,42 @@ Guida al funzionamento interno: @rinternals{PropertySet}. @knownissues -The back-end is not very strict in type-checking object properties. -Cyclic references in Scheme values for properties can cause hangs -or crashes, or both. +Il backend non è molto stretto nel controllo del tipo delle proprietà di un +oggetto. Riferimenti ciclici nei valori Scheme delle proprietà possono +causare attese o crash, o entrambi. + -@node The set command -@subsection The @code{@bs{}set} command +@node Il comando set +@subsection Il comando @code{@bs{}set} +@translationof The set command -@cindex properties +@cindex proprietà @funindex \set -@cindex changing properties +@cindex modifica delle proprietà -Each context has a set of @emph{properties}, variables contained -in that context. Context properties are changed with the @code{\set} -command, which has the following syntax: +Ogni contesto ha un insieme di @emph{proprietà}, variabili contenute in +quel contesto. Le proprietà di contesto si cambiano col comando @code{\set}, +che ha la seguente sintassi: @example -\set @var{context}.@var{property} = #@var{value} +\set @var{contesto}.@var{proprietà} = #@var{valore} @end example -@var{value} is a Scheme object, which is why it must be preceded by -the @code{#}@tie{}character. +@var{valore} è un oggetto Scheme, ecco perché deve essere preceduto dal +carattere @tie{}@code{#}. -Contexts properties are usually named in -@code{studlyCaps}. They mostly control the translation from -music to notation, e.g. @code{localAlterations} (for determining -whether to print accidentals), or @code{measurePosition} (for -determining when to print a bar line). Context properties can -change value over time while interpreting a piece of music; -@code{measurePosition} is an obvious example of -this. Context properties are modified with @code{\set}. +Le proprietà dei contesti sono solitamente nominate in +@code{studlyCaps}. Perlopiù regolano la traduzione dalla musica +alla notazione, per esempio @code{localAlterations} (per determinare +se stampare le alterazioni), o @code{measurePosition} (per determinare +quando stampare una stanghetta). Le proprietà di contesto possono +cambiare nel tempo nel corso dell'interpretazione di un brano musicale; +@code{measurePosition} ne è un ovvio esempio. Le proprietà di contesto +si modificano con @code{\set}. -For example, multimeasure rests will be combined into a single bar -if the context property @code{skipBars} is set to @code{#t}: +Per esempio, le pause multiple sono combinate in una singola battuta +se la proprietà di contesto @code{skipBars} viene impostata su @code{#t}: @lilypond[quote,fragment,verbatim] R1*2 @@ -1982,9 +1848,9 @@ R1*2 R1*2 @end lilypond -If the @var{context} argument is left out, then the property will be -set in the current bottom context (typically @code{ChordNames}, -@code{Voice}, @code{TabVoice}, or @code{Lyrics}). +Se l'argomento @var{contesto} non viene specificato, la proprietà sarà +impostata nel contesto di base corrente (solitamente @code{ChordNames}, +@code{Voice}, @code{TabVoice} o @code{Lyrics}). @lilypond[quote,fragment,verbatim] \set Score.autoBeaming = ##f @@ -1998,14 +1864,15 @@ set in the current bottom context (typically @code{ChordNames}, } @end lilypond -The change is applied @q{on-the-fly}, during the music, so that the -setting only affects the second group of eighth notes. +La modifica viene applicata @q{al volo}, durante l'interpretazione della +musica, in modo che l'impostazione abbia effetto soltanto sul secondo +gruppo di note da un ottavo. -Note that the bottom-most context does not always contain the property -that you wish to change -- for example, attempting to set the -@code{skipBars} property of the default bottom context, in this case -@code{Voice}, will have no effect, because skipBars is a property of -the @code{Score} context. +Nota che il contesto più inferiore non contiene sempre la proprietà che si +desidera cambiare. Per esempio, il tentativo di impostare la proprietà +@code{skipBars} del contesto di base predefinito, in questo caso +@code{Voice}, non produrrà alcun risultato, perché skipBars è una +proprietà del contesto @code{Score}. @lilypond[quote,fragment,verbatim] R1*2 @@ -2013,24 +1880,24 @@ R1*2 R1*2 @end lilypond -Contexts are hierarchical, so if an enclosing context was specified, for -example @code{Staff}, then the change would also apply to all -@code{Voice}s in the current staff. +I contesti sono gerarchici, per cui se viene specificato un contesto che ne +racchiude altri, per esempio @code{Staff}, il cambiamento viene applicato +anche a tutti i contesti @code{Voice} del rigo corrente. @funindex \unset -The @code{\unset} command: +Il comando @code{\unset}: @example -\unset @var{context}.@var{property} +\unset @var{contesto}.@var{proprietà} @end example @noindent -is used to remove the definition of @var{property} from -@var{context}. This command removes -the definition only if it is set in @var{context}. -Properties that have been set in enclosing contexts will -not be altered by an unset in an enclosed context: +viene usato per togliere la definizione di @var{proprietà} dal +@var{contesto}. Questo comando rimuove la definizione solo se +impostata nel @var{contesto}. Le proprietà impostate nei contesti +più esterni non saranno modificate da un @code{\unset} in un contesto +più interno: @lilypond[quote,fragment,verbatim] \set Score.autoBeaming = ##t @@ -2045,8 +1912,8 @@ not be altered by an unset in an enclosed context: } @end lilypond -Like @code{\set}, the @var{context} argument does not have to be -specified for a bottom context, so the two statements +Come in @code{\set}, non è necessario specificare l'argomento @var{contesto} +per un contesto di fondo, quindi le due dichiarazioni @example \set Voice.autoBeaming = ##t @@ -2054,12 +1921,12 @@ specified for a bottom context, so the two statements @end example @noindent -are equivalent if the current bottom context is @code{Voice}. +sono equivalenti se l'attuale contesto di fondo è @code{Voice}. @cindex \once -Preceding a @code{\set} or @code{\unset} command by @code{\once} -makes the setting apply to only a single time-step: +Anteponendo @code{\once} ai comandi @code{\set} o @code{\unset} l'impostazione +verrà applicata soltanto a un singolo momento temporale: @lilypond[quote,fragment,verbatim] c''4 @@ -2068,8 +1935,8 @@ c''4 c''4 @end lilypond -A full description of all available context properties is in the -Guida al funzionamento interno, see +Una descrizione completa di tutte le proprietà di contesto disponibili si +trova nella Guida al funzionamento interno, vedi @ifhtml @rinternals{Tunable context properties}. @end ifhtml @@ -2082,30 +1949,30 @@ Guida al funzionamento interno: @rinternals{Tunable context properties}. -@node The override command -@subsection The @code{\override} command +@node Il comando override +@subsection Il comando @code{\override} +@translationof The override command -@cindex grob properties -@cindex properties, grob +@cindex grob, proprietà +@cindex proprietà dei grob @funindex \override -There is a special type of context property: the grob -description. Grob descriptions are named in @code{StudlyCaps} -(starting with capital letters). They contain the -@q{default settings} for a particular kind of grob as an -association list. See @file{scm/define-grobs.scm} -to see the settings for each grob description. Grob descriptions -are modified with @code{\override}. +Esiste un tipo particolare di proprietà di contesto: la descrizione del +grob. Le descrizioni dei grob vengono nomimate in @code{StudlyCaps} +(iniziando con lettere maiuscole). Contengono le +@qq{impostazioni predefinite} per un certo tipo di grob, come una +lista associativa. Consultare @file{scm/define-grobs.scm} +per vedere le impostazioni per ogni descrizione di grob. Le descrizioni +di grob si modificano con @code{\override}. -The syntax for the @code{\override} command is +La sintassi del comando @code{\override} è @example -\override [@var{context}.]@var{GrobName}.@var{property} = #@var{value} +\override [@var{contesto}.]@var{NomeGrob}.@var{proprietà} = #@var{valore} @end example -For example, we can increase the thickness of a note stem by -overriding the @code{thickness} property of the @code{Stem} -object: +Per esempio, possiamo aumentare lo spessore del gambo di una nota +modificando la proprietà @code{thickness} dell'oggetto @code{Stem}: @lilypond[quote,fragment,verbatim] c''4 c'' @@ -2113,8 +1980,8 @@ c''4 c'' c''4 c'' @end lilypond -If no context is specified in an @code{\override}, the bottom -context is used: +Se non viene specificato il contesto in un @code{\override}, viene usato +il contesto di base: @lilypond[quote,fragment,verbatim] \override Staff.Stem.thickness = #3.0 @@ -2130,14 +1997,15 @@ context is used: >> @end lilypond -Some tweakable options are called @q{subproperties} and reside inside -properties. To tweak those, use commands in the form +Alcune opzioni modificabili vengono chiamate @q{sottoproprietà} e stanno +dentro le proprietà. Per cambiarle, usare i comandi nella forma @example \override Stem.details.beamed-lengths = #'(4 4 3) @end example -or to modify the ends of spanners, use a form like these +o, per modificare le estremità degli estensori, usare una forma simile +alle seguenti @example \override TextSpanner.bound-details.left.text = #"left text" @@ -2145,18 +2013,18 @@ or to modify the ends of spanners, use a form like these @end example @funindex \revert -@cindex reverting overrides -@cindex overrides, reverting +@cindex ripristinare le modifiche +@cindex modifiche, ripristinare -The effects of @code{\override} can be undone by @code{\revert}. +Gli effetti di @code{\override} possono essere annullati con @code{\revert}. -The syntax for the @code{\revert} command is +La sintassi del comando @code{\revert} è @example -\revert [@var{context}.]@var{GrobName}.@var{property} +\revert [@var{contesto}.]@var{NomeGrob}.@var{proprietà} @end example -For example, +Per esempio, @lilypond[quote,verbatim] \relative { @@ -2168,8 +2036,8 @@ For example, } @end lilypond -The effects of @code{\override} and @code{\revert} apply to all -grobs in the affected context from the current time forward: +Gli effetti di @code{\override} e @code{\revert} si applicano a tutti i +grob nel contesto interessato da quel momento in poi: @lilypond[quote,verbatim] << @@ -2187,10 +2055,10 @@ grobs in the affected context from the current time forward: @end lilypond @funindex \once -@cindex overriding for only one moment +@cindex modificare in un solo istante -@code{\once} can be used with @code{\override} or @code{\revert} -to affect only the current time step: +Si può usare @code{\once} insieme a @code{\override} o @code{\revert} +per agire solo sul momento corrente: @lilypond[quote,verbatim] << @@ -2206,40 +2074,6 @@ to affect only the current time step: >> @end lilypond - -@ignore -Commands which change output generally look like - -@example -\override Voice.Stem.thickness = #3.0 -@end example - -@noindent -To construct this tweak we must determine these bits of information: - -@itemize -@item the context: here @code{Voice}. -@item the layout object: here @code{Stem}. -@item the layout property: here @code{thickness}. -@item a sensible value: here @code{3.0}. -@end itemize - -@cindex internal documentation -@cindex finding graphical objects -@cindex graphical object descriptions -@cindex tweaking -@funindex \override -@cindex internal documentation - -For many properties, regardless of the data type of the property, setting the -property to false (@code{#f}) will result in turning it off, causing -LilyPond to ignore that property entirely. This is particularly useful for -turning off grob properties which may otherwise be causing problems. - -We demonstrate how to glean this information from the notation manual -and the program reference. -@end ignore - @seealso Guida al funzionamento interno: @rinternals{Backend} @@ -2250,103 +2084,43 @@ Guida al funzionamento interno: @translationof The tweak command @funindex \tweak -@cindex tweaking +@cindex tweak -Changing grob properties -with @code{\override} causes the changes to apply to all of the -given grobs in the context at the moment the change applies. -Sometimes, however, it is desirable to have changes apply to just -one grob, rather than to all grobs in the affected context. This is -accomplished with the @code{\tweak} command, which has the following -syntax: +Modificare le proprietà dei grob con @code{\override} fa sì che i +cambiamenti siano applicati a tutti i grob in questione in quel +contesto nel momento in cui la modifica viene applicata. Talvolta, +tuttavia, si può voler applicare le modifiche a un solo grob invece +che a tutti i grob del contesto interessato. Per farlo si usa il +comando @code{\tweak}, che ha la seguente sintassi: @example -\tweak [@var{layout-object}.]@var{grob-property} @var{value} +\tweak [@var{oggetto-formattazione}.]@var{proprietà-grob} @var{valore} @end example -Specifying @var{layout-object} is optional. -The @code{\tweak} command applies to the music object that immediately -follows @var{value} in the music stream. +@var{oggetto-formattazione} è opzionale. +Il comando @code{\tweak} viene applicato all'oggetto musicale che segue +immediatamente @var{valore} nel flusso musicale. -@ignore -In some cases, it is possible to take a short-cut for tuning -graphical objects. For objects that are created directly from -an item in the input file, you can use the @code{\tweak} command. -For example: - -@lilypond[verbatim,quote] -\relative { - < c'' - \tweak color #red - d - g - \tweak duration-log #1 - a - > 4 - -\tweak padding #8 - -^ -} -@end lilypond - - - -The main use of the @code{\tweak} command is to modify just -one of a number of notation elements which start at the same musical -moment, like the notes of a chord, or tuplet brackets which start -at the same time. - -The @code{\tweak} command sets a property in the following object -directly, without requiring the grob name or context to be -specified. For this to work, it is necessary for the @code{\tweak} -command to remain immediately adjacent to the object to which it is -to apply after the input file has been converted to a music stream. -This is often not the case, as many additional elements are inserted -into the music stream implicitly. For example, when a note which is -not part of a chord is processed, LilyPond implicitly inserts a -@code{ChordEvent} event before the note, so separating the tweak -from the note. However, if chord symbols are placed round the -tweak and the note, the @code{\tweak} command comes after the -@code{ChordEvent} in the music stream, so remaining adjacent to the -note, and able to modify it. - -So, this works: - -@lilypond[verbatim,fragment,quote] -<\tweak color #red c''>4 -@end lilypond - -@noindent -but this does not: - -@lilypond[verbatim,fragment,quote] -\tweak color #red c''4 -@end lilypond - -@end ignore - -For an introduction to the syntax and uses of the tweak command -see @rlearning{Metodi di modifica}. +Per un'introduzione alla sintassi e agli usi del comando tweak leggere +@rlearning{Metodi di modifica}. -When several similar items are placed at the same musical moment, -the @code{\override} command cannot be used to modify just one of -them -- this is where the @code{\tweak} command must be used. -Items which may appear more than once at the same musical moment -include the following: +Quando molti elementi simili sono disposti nello stesso momento musicale, +non è possibile usare il comando @code{\override} per modificarne soltanto +uno. È in casi come questi che occorre usare il comando @code{\tweak}. +Ecco alcuni elementi che possono apparire più di una volta nello stesso +momento musicale: -@c TODO expand to include any further uses of \tweak @itemize -@item note heads of notes inside a chord -@item articulation signs on a single note -@item ties between notes in a chord -@item tuplet brackets starting at the same time +@item teste di note di un accordo +@item segni di articolazione su una singola nota +@item legature di valore tra note di un accordo +@item parentesi di gruppi irregolari che iniziano nello stesso momento @end itemize -@c TODO add examples of these +@cindex accordo, modificare una nota dell' -@cindex chord, modifying one note in - -In this example, the color of one note head and the type of another -note head are modified within a single chord: +In questo esempio, il colore di una testa di nota e il tipo di testa di +un'altra nota sono modificati all'interno di un accordo: @lilypond[verbatim,fragment,quote] < c'' @@ -2358,19 +2132,19 @@ note head are modified within a single chord: > 4 @end lilypond -@code{\tweak} can be used to modify slurs: +@code{\tweak} può essere usato per modificare le legature di portamento: @lilypond[verbatim,quote] \relative { c'-\tweak thickness #5 ( d e f) } @end lilypond -For the @code{\tweak} command to work, it must -remain immediately adjacent to the object to which it is -to apply after the input file has been converted to a music stream. -Tweaking a whole chord does not do anything since its music event -only acts as a container, and all layout objects are created from events -inside of the @code{EventChord}: +Perché il comando @code{\tweak} funzioni, deve trovarsi proprio accanto +all'oggetto al quale deve essere applicato dopo che il file di input è +stato convertito in un flusso musicale. Modificare un intero accordo +non cambia niente perché il suo evento musicale agisce solo come +contenitore, mentre tutti gli oggetti della formattazione sono creati +dagli eventi interni all'@tie{}@code{EventChord}: @lilypond[verbatim,fragment,quote] \tweak color #red c''4 @@ -2378,16 +2152,15 @@ inside of the @code{EventChord}: <\tweak color #red c'' e''>4 @end lilypond -The simple @code{\tweak} command cannot be used to modify any object -that is not directly created from the input. In particular -it will not affect stems, automatic -beams or accidentals, since these are generated later by -@code{NoteHead} layout objects rather than by music elements in the -input stream. +Il semplice comando @code{\tweak} non può essere usato per modificare un +oggetto che non sia creato direttamente dall'input. In particolare, non +agirà su gambi, travature automatiche o alterazioni, dato che questi sono +generati successivamente dagli oggetti della formattazione di @code{NoteHead} +invece che da elementi musicali nel flusso dell'input. -Such indirectly created layout objects can be tweaked using the form -of the @code{\tweak} command in which the grob name is specified -explicitly: +Tali oggetti della formattazione creati indirettamente possono essere tuttavia +modificati usando una forma del comando @code{\tweak} in cui il nome del grob +è indicato esplicitamente: @lilypond[fragment,verbatim,quote] \tweak Stem.color #red @@ -2395,13 +2168,13 @@ explicitly: 4 @end lilypond -@code{\tweak} cannot be used to modify clefs or time -signatures, since these become separated from any preceding -@code{\tweak} command in the input stream by the automatic -insertion of extra elements required to specify the context. +@code{\tweak} non può essere usato per modificare le chiavi o le indicazioni +di tempo, perché queste vengono separate da qualsiasi comando @code{\tweak} +precedente nel flusso dell'input a causa dell'inserimento automatico di ulteriori +elementi richiesti per specificare il contesto. -Several @code{\tweak} commands may be placed before a -notational element -- all affect it: +Si possono usare vari comandi @code{\tweak} prima di un elemento della +notazione e tutti avranno effetto su di esso: @lilypond[verbatim,fragment,quote] c' @@ -2413,12 +2186,11 @@ c' f'' @end lilypond -The music stream which is generated from a section of an input file, -including any automatically inserted elements, may be examined, -see @rextend{Displaying music expressions}. This may be helpful in -determining what may be modified by a @code{\tweak} command, or -in determining how to adjust the input to make a @code{\tweak} -apply. +Il flusso musicale generato da una sezione di un file di input, compresi +gli elementi inseriti automaticamente, può essere esaminato, vedi +@rextend{Displaying music expressions}. Ciò può essere utile nel determinare +cosa può essere modificato da un comando @code{\tweak} o nel valutare come +aggiustare l'input per far sì che un @code{\tweak} sia applicato. @seealso Manuale di apprendimento: @@ -2429,95 +2201,97 @@ Estendere LilyPond: @knownissues -@cindex tweaking control points -@cindex control points, tweaking +@cindex \tweak e punti di controllo +@cindex punti di controllo e \tweak -The @code{\tweak} command cannot be used to modify the control -points of just one of several ties in a chord, other than the first -one encountered in the input file. +Il comando @code{\tweak} non può essere usato per modificare i punti di +controllo di una sola legatura di valore tra tante in un accordo, se non +quelli della prima legatura incontrata nel file di input. -@node set versus override -@subsection @code{\set} vs. @code{\override} -@c TODO Should't a bunch of that be explained earlier? +@node set vs override +@subsection @code{\set} vs. @code{\override} +@translationof set versus override @funindex \set @funindex \override -Both @code{\set} and @code{\override} manipulate properties -associated with contexts. In either case, properties heed the -hierarchy of contexts: properties not set in a context itself show -the values of the respective parent context. - -Values and lifetime of context properties are dynamic and only -available when music is being interpreted, @q{iterated}. At the -time of context creation, properties are initialized from the -corresponding context definition and possible context -modifications. Afterwards, changes are achieved with -property-setting commands in the music itself. - -Now grob definitions are a special category of context properties. -Since their structure, bookkeeping and use is different from -ordinary context properties, they are accessed with a different -set of commands, and treated separately in the documentation. - -As opposed to plain context properties, grob definitions are -subdivided into grob properties. A @qq{grob} (graphical object) -is usually created by an engraver at the time of interpreting a -music expression and receives its initial properties from the -current grob definition of the engraver's context. The engraver -(or other @q{backend} parts of LilyPond) may subsequently add or -change properties to the grob, but that does not affect the -context's grob definition. - -What we call @q{grob properties} in the context of user-level -tweaking are actually the properties of a context's grob -definition. In contrast to ordinary context properties, grob -definitions have the bookkeeping required to keep track of its -parts, the individual grob properties (and even subproperties of -them) separately so that it is possible to define those parts in -different contexts and have the overall grob definition at the -time of grob creation be assembled from pieces provided in -different contexts among the current context and its parents. - -Grob definitions are manipulated using @code{\override} and -@code{\revert} and have a name starting with a capital letter -(like @samp{NoteHead}) whereas ordinary context properties are -manipulated using @code{\set} and @code{\unset} and are named -starting with a lowercase letter. - -@cindex tweak, relation to @code{\override} +Sia @code{\set} che @code{\override} manipolano le proprietà +associate ai contesti. In entrambi i casi, le proprietà +seguono la gerarchia dei contesti: proprietà non impostate in +un contesto mostrano i valori del rispettivo contesto padre. + +I valori e la durata delle proprietà di contesto sono dinamici e +disponibili soltanto mentre la musica viene interpretata, @qq{reiterata}. +Nel momento della creazione del contesto, le proprietà sono inizializzate +a partire dalla definizione di contesto corrispondente e dalle possibili +modifiche di contesto. Poi le modifiche vengono fatte con dei comandi +che impostano la proprietà presenti nella musica stessa. + +Le definizioni di grob sono una categoria speciale di proprietà di +contesto. Dato che la loro struttura, @qq{contabilità} e uso sono +diversi dalle normali proprietà di contesto, ad esse si accede con +un insieme diverso di comandi e sono trattate in modo separato +nella documentazione. + +Al contrario delle semplici proprietà di contesto, le definizioni di grob +sono suddivise in proprietà del grob. Un @qq{grob} (oggetto grafico) +viene solitamente creato da un incisore nel momento in cui l'espressione +musicale viene interpretata e riceve le sue proprietà iniziali dalla definizione +del grob corrente del contesto dell'incisore. L'incisore (o altre parti del +@q{backend} di LilyPond) può successivamente togliere o cambiare le proprietà +del grob, ma ciò non ha effetto sulla definizione di grob del contesto. + +Ciò che chiamiamo @q{proprietà del grob} nel contesto delle modifiche a +livello di utente sono in realtà le proprietà della definizione di grob di +un contesto. Al contrario delle normali proprietà di contesto, le definizioni +di grob hanno dei registri per tenere traccia delle sue parti e delle proprietà +individuali dei grob (e perfino delle loro sottoproprietà) separatamente, così +che sia possibile definire queste parti in contesti diversi e far sì che la +definizione di grob complessiva sia assemblata dai pezzi forniti in contesti +diversi compresi tra il contesto corrente e i suoi contesti superiori. + +Le definizioni di grob sono manipolate con @code{\override} e +@code{\revert} e hanno un nome che inizia con una lettera maiuscola +(come @samp{NoteHead}), mentre le normali proprietà di contesto sono +manipolate con @code{\set} e @code{\unset} e il loro nome inizia con +una lettera minuscola. + +@cindex tweak, relazione con @code{\override} @funindex \tweak @funindex \overrideProperty -The special commands @code{\tweak} and @code{\overrideProperty} -change grob properties bypassing context properties completely. -Instead they catch grobs as they are being created and then -directly set properties on them when they originate from a tweaked -music event or are of a particular kind, respectively. +I comandi speciali @code{\tweak} e @code{\overrideProperty} modificano le +proprietà dei grob bypassando completamente le proprietà di contesto. +Catturano i grob mentre vengono creati e poi impostano direttamente +le proprietà su di essi quando vengono da un evento musicale modificato +o sono di un tipo particolare. -@node Modifying alists -@subsection Modifying alists -Some user-configurable properties are internally represented as -@emph{alists} (association lists), which store pairs of -@emph{keys} and @emph{values}. The structure of an alist is: +@node Modifica delle liste associative +@subsection Modifica delle liste associative +@translationof Modifying alists + +Alcune proprietà configurabili dall'utente sono rappresentate internamente +come @emph{alist} (liste associative), che contengono coppie di +@emph{chiavi} e @emph{valori}. La struttura di una lista associativa è: @example -'((@var{key1} . @var{value1}) - (@var{key2} . @var{value2}) - (@var{key3} . @var{value3}) +'((@var{chiave1} . @var{valore1}) + (@var{chiave2} . @var{valore2}) + (@var{chiave3} . @var{valore3}) @dots{}) @end example -If an alist is a grob property or @code{\paper} variable, its keys -can be modified individually without affecting other keys. +Se una lista associativa è una proprietà di un grob o una variabile +@code{\paper}, le sue chiavi possono essere modificate individualmente +senza influenzare altre chiavi. -For example, to reduce the space between adjacent staves in a -staff-group, use the @code{staff-staff-spacing} property of the -@code{StaffGrouper} grob. The property is an alist with four -keys: @code{basic-distance}, @code{minimum-distance}, -@code{padding}, and @code{stretchability}. The standard settings -for this property are listed in the @qq{Backend} section of the -Guida al funzionamento interno (see @rinternals{StaffGrouper}): +Per esempio, per ridurre lo spazio tra righi adiacenti in un gruppo di +righi, si usa la proprietà @code{staff-staff-spacing} del grob +@code{StaffGrouper}. La proprietà è una lista associativa con quattro +chiavi: @code{basic-distance}, @code{minimum-distance}, +@code{padding} e @code{stretchability}. Le impostazioni predefinite +per questa proprietà sono elencate nella sezione @qq{Backend} della +Guida al funzionamento interno (vedi @rinternals{StaffGrouper}): @example '((basic-distance . 9) @@ -2526,21 +2300,21 @@ Guida al funzionamento interno (see @rinternals{StaffGrouper}): (stretchability . 5)) @end example -One way to bring the staves closer together is by reducing the -value of the @code{basic-distance} key (@code{9}) to match the -value of @code{minimum-distance} (@code{7}). To modify a single -key individually, use a @emph{nested declaration}: +Un modo per avvicinare i righi è ridurre il valore della chiave +@code{basic-distance} (@code{9}) perché corrisponda al valore +di @code{minimum-distance} (@code{7}). Per modificare una chiave +singola individualmente, usare una @emph{dichiarazione annidata}: @lilypond[quote,verbatim] -% default space between staves +% spazio predefinito tra i righi \new PianoStaff << \new Staff { \clef treble c''1 } \new Staff { \clef bass c1 } >> -% reduced space between staves +% spazio ridotto tra i righi \new PianoStaff \with { - % this is the nested declaration + % questa è la dichiarazione annidata \override StaffGrouper.staff-staff-spacing.basic-distance = #7 } << \new Staff { \clef treble c''1 } @@ -2548,15 +2322,16 @@ key individually, use a @emph{nested declaration}: >> @end lilypond -Using a nested declaration will update the specified key (such as -@code{basic-distance} in the above example) without altering any -other keys already set for the same property. +Con una dichiarazione annidata si aggiornerà la chiave specificata (come +@code{basic-distance} nell'esempio precedente) senza modificare alcuna +altra chiave già impostata per la stessa proprietà. -Now suppose we want the staves to be as close as possible without -overlapping. The simplest way to do this is to set all four alist -keys to zero. However, it is not necessary to enter four nested -declarations, one for each key. Instead, the property can be -completely re-defined with one declaration, as an alist: +Ora immaginiamo di volere che i righi siano più vicini possibile ma senza +sovrapporsi. Il modo più semplice per fare ciò è impostare tutte e quattro +le chiavi della lista su zero. Tuttavia, non è necessario inserire quattro +dichiarazioni annidate, una per ogni chiave. Si può invece ridefinire +completamente la proprietà con una sola dichiarazione, attraverso una +lista associativa: @lilypond[quote,verbatim] \new PianoStaff \with { @@ -2571,12 +2346,13 @@ completely re-defined with one declaration, as an alist: >> @end lilypond -Note that any keys not explicitly listed in the alist definition -will be reset to their @emph{default-when-unset} values. In the -case of @code{staff-staff-spacing}, any unset key-values would be -reset to zero (except @code{stretchability}, which takes the value -of @code{basic-distance} when unset). Thus the following two -declarations are equivalent: +Nota bene che qualsiasi chiave non elencata esplicitamente nella +definizione della lista associativa sarà ripristinata al suo valore +@emph{predefinito-quando-non-impostato}. Nel caso di +@code{staff-staff-spacing}, qualsiasi chiave-valore non impostata +viene ripristinata su zero (eccetto @code{stretchability}, che +prende il valore di @code{basic-distance} quando non è impostata). Dunque +le due seguenti dichiarazioni sono equivalenti: @example \override StaffGrouper.staff-staff-spacing = @@ -2589,21 +2365,25 @@ declarations are equivalent: (stretchability . 7)) @end example -One (possibly unintended) consequence of this is the removal of -any standard settings that are set in an initialization file and -loaded each time an input file is compiled. In the above example, -the standard settings for @code{padding} and -@code{minimum-distance} (defined in @file{scm/define-grobs.scm}) -are reset to their default-when-unset values (zero for both keys). -Defining a property or variable as an alist (of any size) will -always reset all unset key-values to their default-when-unset -values. Unless this is the intended result, it is safer to update -key-values individually with a nested declaration. - -@warning{Nested declarations will not work for context property -alists (such as @code{beamExceptions}, @code{keyAlterations}, -@code{timeSignatureSettings}, etc.). These properties can only be -modified by completely re-defining them as alists.} +Una conseguenza (possibilmente non voluta) di questo approccio è +l'eliminazione di eventuali impostazioni predefinite impostate in +un file di inizializzazione e caricate ogni volta che un file di +input viene compilato. Nell'esempio precedente le impostazioni +predefinite per @code{padding} e @code{minimum-distance} (definite +in @file{scm/define-grobs.scm}) sono ripristinate ai loro valori +predefiniti-quando-non-impostati (zero per entrambe le chiavi). +La definizione di una proprietà o di una variabile come una lista +associativa (di qualsiasi dimensione) ripristinerà sempre tutte +le chiavi-valori ai loro valori predefiniti-quando-non-impostati. +A meno che questo non sia il risultato voluto, è più sicuro +aggiornare le chiavi-valori individualmente con una dichiarazione +annidata. + +@warning{Le dichiarazioni annidate non funzionano per le liste +associative delle proprietà di contesto (come @code{beamExceptions}, +@code{keyAlterations}, @code{timeSignatureSettings}, etc.). Queste +proprietà possono essere modificate soltanto ridefinendole completamente +come liste associative.} @node Proprietà e concetti utili @@ -2612,144 +2392,150 @@ modified by completely re-defining them as alists.} @menu -* Input modes:: -* Direction and placement:: -* Distances and measurements:: -* Dimensions:: -* Staff symbol properties:: -* Spanners:: -* Visibility of objects:: -* Line styles:: -* Rotating objects:: +* Modalità di inserimento:: +* Direzione e posizionamento:: +* Distanze e misurazioni:: +* Dimensioni:: +* Proprietà del simbolo del rigo:: +* Estensori:: +* Visibilità degli oggetti:: +* Stili della linea:: +* Rotazione degli oggetti:: @end menu -@node Input modes -@subsection Input modes +@node Modalità di inserimento +@subsection Modalità di inserimento +@translationof Input modes -The way in which the notation contained within an input file is -interpreted is determined by the current input mode. +Il modo in cui la notazione contenuta in un file di input è interpretata è +determinato dalla modalità di inserimento corrente. -@subsubsubheading Chord mode +@subsubsubheading Modalità accordo -This is activated with the @code{\chordmode} command, and causes -input to be interpreted with the syntax of chord notation, see -@ref{Chord notation}. Chords are rendered as notes on a staff. +Viene attivata col comando @code{\chordmode} e fa sì che l'input +sia interpretato con la sintassi della notazione degli accordi, vedi +@ref{Chord notation}. Gli accordi sono visualizzati come note su +un rigo. -Chord mode is also activated with the @code{\chords} command. -This also creates a new @code{ChordNames} context and -causes the following input to be interpreted with the syntax of -chord notation and rendered as chord names in the @code{ChordNames} -context, see @ref{Printing chord names}. +La modalità accordo viene attivata anche col comando @code{\chords}. +Questo crea anche un nuovo contesto @code{ChordNames} e fa sì che +l'input che segue sia interpretato con la sintassi della notazione +degli accordi e visualizzato come nomi di accordo nel contesto +@code{ChordNames}, vedi @ref{Printing chord names}. -@subsubsubheading Drum mode +@subsubsubheading Modalità percussioni -This is activated with the @code{\drummode} command, and causes -input to be interpreted with the syntax of drum notation, see -@ref{Basic percussion notation}. +Viene attivata col comando @code{\drummode} e fa sì che l'input +sia interpretato con la sintassi della notazione delle percussioni, +vedi @ref{Basic percussion notation}. -Drum mode is also activated with the @code{\drums} command. -This also creates a new @code{DrumStaff} context and causes the -following input to be interpreted with the syntax of drum notation -and rendered as drum symbols on a drum staff, see -@ref{Basic percussion notation}. +La modalità percussioni viene attivata anche col comando @code{\drums}. +Questo crea anche un nuovo contesto @code{DrumStaff} e fa sì che +l'input che segue sia interpretato con la sintassi della notazione +delle percussioni e visualizzato come simboli di percussione su un +rigo ritmico, vedi @ref{Basic percussion notation}. -@subsubsubheading Figure mode +@subsubsubheading Modalità basso continuo -This is activated with the @code{\figuremode} command, and causes -input to be interpreted with the syntax of figured bass, see -@ref{Entering figured bass}. +Viene attivata col comando @code{\figuremode} e fa sì che +l'input che segue sia interpretato con la sintassi del basso +continuo, vedi @ref{Entering figured bass}. -Figure mode is also activated with the @code{\figures} command. -This also creates a new @code{FiguredBass} context and causes the -following input to be interpreted with the figured bass syntax -and rendered as figured bass symbols in the @code{FiguredBass} -context, see @ref{Introduction to figured bass}. +La modalità basso continuo viene attivata anche col comando @code{\figures}. +Questo crea anche un nuovo contesto @code{FiguredBass} e fa sì che +l'input che segue sia interpretato con la sintassi del basso continuo +e visualizzato come numeri di basso nel contesto @code{FiguredBass}, +vedi @ref{Introduction to figured bass}. -@subsubsubheading Fret and tab modes +@subsubsubheading Modalità tastiera e intavolatura -There are no special input modes for entering fret and tab symbols. +Non esistono speciali modalità di inserimento per i simboli della tastiera +e dell'intavolatura (o tablatura). -To create tab diagrams, enter notes or chords in note mode and -render them in a @code{TabStaff} context, see +Per creare diagrammi in intavolatura, inserire note o accordi nella modalità +nota e visualizzarli in un contesto @code{TabStaff}, vedi @ref{Default tablatures}. -To create fret diagrams above a staff, you have two choices. -You can either use the @code{FretBoards} context (see -@ref{Automatic fret diagrams} or you can enter them as a markup -above the notes using the @code{\fret-diagram} command (see +Per creare diagrammi della tastiera sopra un rigo, ci sono due opzioni. +Si può usare il contesto @code{FretBoards} (vedi +@ref{Automatic fret diagrams}) oppure inserirli come testo (markup) +sopra le note usando il comando @code{\fret-diagram} (vedi @ref{Fret diagram markups}). -@subsubsubheading Lyrics mode +@subsubsubheading Modalità testo vocale -This is activated with the @code{\lyricmode} command, and causes -input to be interpreted as lyric syllables with optional durations -and associated lyric modifiers, see @ref{Vocal music}. +Viene attivata col comando @code{\lyricmode} e fa sì che l'input +sia interpretato come sillabe del testo vocale con durate opzionali +e modificatori del testo associato, vedi @ref{Vocal music}. -Lyric mode is also activated with the @code{\addlyrics} command. -This also creates a new @code{Lyrics} context and an implicit -@code{\lyricsto} command which associates the following lyrics -with the preceding music. +La modalità testo vocale viene attivata anche col comando @code{\addlyrics}. +Questo crea anche un nuovo contesto @code{Lyrics} e un comando implicito +@code{\lyricsto} che associa il testo vocale che segue con la musica che +lo precede. -@subsubsubheading Markup mode +@subsubsubheading Modalità testo (markup) -This is activated with the @code{\markup} command, and causes -input to be interpreted with the syntax of markup, see +Viene attivata col comando @code{\markup} e fa sì che l'input +sia interpretato con la sintassi di markup, vedi @ref{Text markup commands}. -@subsubsubheading Note mode +@subsubsubheading Modalità nota -This is the default mode or it may be activated with the -@code{\notemode} command. Input is interpreted as pitches, -durations, markup, etc and typeset as musical notation on a staff. +Questa è la modalità predefinita e può essere attivata esplicitamente +col comando @code{\notemode}. L'input viene interpretato come altezze, +durate, markup, etc. e rappresentato come notazione musicale su un rigo. -It is not normally necessary to specify note mode explicitly, but -it may be useful to do so in certain situations, for example if you -are in lyric mode, chord mode or any other mode and want to insert -something that only can be done with note mode syntax. +Normalmente non è necessario specificare la modalità nota esplicitamente, ma +potrebbe essere utile farlo in alcune situazioni, per esempio se si è in +modalità testo vocale o accordo o qualsiasi altra modalità e si vuole inserire +qualcosa che può essere fatto solo con la sintassi della modalità nota. -@node Direction and placement -@subsection Direction and placement +@node Direzione e posizionamento +@subsection Direzione e posizionamento +@translationof Direction and placement -In typesetting music the direction and placement of many items is -a matter of choice. For example, the stems of notes can -be directed up or down; lyrics, dynamics, and other expressive -marks may be placed above or below the staff; text may be aligned -left, right or center; etc. Most of these choices may be left to -be determined automatically by LilyPond, but in some cases it may -be desirable to force a particular direction or placement. +Nella composizione tipografica musicale la direzione e il posizionamento di +molti elementi è una questione di gusto. Per esempio, i gambi delle note +possono essere rivolti in su o in giù; testi, dinamiche e altri segni +espressivi possono essere posti sopra o sotto il rigo; il testo può +essere allineato a sinistra, destra o al centro; etc. La maggior parte +di queste scelte possono essere lasciate alla decisione di LilyPond, ma in +alcuni casi si può voler forzare una direzione o un posizionamento particolari. @menu -* Articulation direction indicators:: -* The direction property:: +* Indicatori di direzione delle articolazioni:: +* La proprietà direction:: @end menu -@node Articulation direction indicators -@unnumberedsubsubsec Articulation direction indicators +@node Indicatori di direzione delle articolazioni +@unnumberedsubsubsec Indicatori di direzione delle articolazioni +@translationof Articulation direction indicators -By default some directions are always up or always down (e.g. -dynamics or fermata), while other things can alternate between -up or down based on the stem direction (like slurs or accents). +Per impostazione predefinita alcune direzioni sono sempre in su o sempre in +giù (es: le dinamiche o la corona), mentre altri elementi possono alternare +tra su e giù in base alla direzione del gambo (come le legature di portamento +o gli accenti). @c TODO Add table showing these -The default action may be overridden by prefixing the articulation -by a @emph{direction indicator}. Three direction indicators are -available: @code{^} (meaning @qq{up}), @code{_} (meaning @qq{down}) -and @code{-} (meaning @qq{use default direction}). The direction -indicator can usually be omitted, in which case @code{-} is assumed, -but a direction indicator is @strong{always} required before +L'azione predefinita può essere modificata anteponendo all'articolazione +un @emph{indicatore di direzione}. Sono disponbibili tre indicatori +di direzione: @code{^} (ovvero @qq{su}), @code{_} (ovvero @qq{giù}) +e @code{-} (ovvero @qq{usa la direzione predefinita}). L'indicatore di +direzione solitamente può essere omesso, nel qual caso viene supposto @code{-}, +ma un indicatore di direzione è @strong{sempre} richiesto prima di @itemize -@item @code{\tweak} commands -@item @code{\markup} commands -@item @code{\tag} commands -@item string markups, e.g. -"string" -@item fingering instructions, e.g. @w{@code{-1}} -@item articulation shortcuts, e.g. @w{@code{-.}}, @w{@code{->}}, @w{@code{--}} +@item comandi @code{\tweak} +@item comandi @code{\markup} +@item comandi @code{\tag} +@item stringhe di testo, ovvero -"stringa" +@item istruzioni di diteggiatura, come @w{@code{-1}} +@item scorciatoie delle articolazioni, come @w{@code{-.}}, @w{@code{->}}, @w{@code{--}} @end itemize -Direction indicators affect only the next note: +Gli indicatori di direzione hanno effetto soltanto sulla nota vicina: @lilypond[verbatim,quote] \relative { @@ -2760,33 +2546,34 @@ Direction indicators affect only the next note: } @end lilypond -@node The direction property -@unnumberedsubsubsec The direction property +@node La proprietà direction +@unnumberedsubsubsec La proprietà direction +@translationof The direction property -The position or direction of many layout objects is controlled by the -@code{direction} property. +La posizione della direzione di molti oggetti della formattazione è regolata +dalla proprietà @code{direction}. -The value of the @code{direction} property may be set to @code{1}, -meaning @qq{up} or @qq{above}, or to @w{@code{-1}}, meaning @qq{down} or -@qq{below}. The symbols @code{UP} and @code{DOWN} may be used instead -of @code{1} and @w{@code{-1}} respectively. The default direction may -be specified by setting @code{direction} to @code{0} or @code{CENTER}. -Alternatively, in many cases predefined commands exist to specify the -direction. These are of the form +Il valore della proprietà @code{direction} può essere impostata su @code{1}, +ovvero @qq{su} o @qq{sopra}, oppure su @w{@code{-1}}, ovvero @qq{giù} o +@qq{sotto}. I simboli @code{UP} e @code{DOWN} possono essere usati al +posto di @code{1} e @w{@code{-1}}. La direzione predefinita può essere +specificata impostando @code{direction} su @code{0} o @code{CENTER}. +Altrimenti, in molti casi esistono comandi predefiniti per specificare la +direzione. Questo hanno la forma @example -@code{\xxxUp}, @code{\xxxDown} or @code{\xxxNeutral} +@code{\xxxUp}, @code{\xxxDown} o @code{\xxxNeutral} @end example @noindent -where @code{\xxxNeutral} means @qq{use the default} direction. -See @rlearning{Oggetti interni al rigo}. +dove @code{\xxxNeutral} significa @qq{usa la direzione predefinita}. +Vedi @rlearning{Oggetti interni al rigo}. -In a few cases, arpeggio for example, the value of the @code{direction} -property can specify whether the object is to be placed to the right or -left of the parent. In this case @w{@code{-1}} or @code{LEFT} means -@qq{to the left} and @code{1} or @code{RIGHT} means @qq{to the right}. -@code{0} or @code{CENTER} means @qq{use the default} direction. +In pochi casi, per esempio l'arpeggio, il valore della proprietà @code{direction} +può specificare se l'oggetto debba essere posizionato a destra o a sinistra +dell'oggetto genitore. In questo caso @w{@code{-1}} o @code{LEFT} significano +@qq{a sinistra} e @code{1} o @code{RIGHT} significano @qq{a destra}. +@code{0} o @code{CENTER} significano @qq{usa la direzione predefinita}. @ignore These all have side-axis set to #X @@ -2797,7 +2584,7 @@ TrillPitchAccidental - not tried TrillPitchGroup - not tried @end ignore -These indications affect all notes until they are canceled. +Queste indicazioni hanno effetto su tutte le note finché non vengono annullate. @lilypond[verbatim,quote] \relative { @@ -2810,9 +2597,9 @@ These indications affect all notes until they are canceled. } @end lilypond -In polyphonic music, it is generally better to specify an explicit -@code{voice} than change an object's direction. For more information. -See @ref{Multiple voices}. +Nella musica polifonica, generalmente è meglio specificare una voce esplicita +invece di cambiare la direzione di un oggetto. Maggiori informazioni +in @ref{Multiple voices}. @seealso Manuale di apprendimento: @@ -2822,8 +2609,9 @@ Guida alla notazione: @ref{Multiple voices}. -@node Distances and measurements -@subsection Distances and measurements +@node Distanze e misurazioni +@subsection Distanze e misurazioni +@translationof Distances and measurements @cindex distances, absolute @cindex distances, scaled @@ -2833,42 +2621,43 @@ Guida alla notazione: @funindex \in @funindex \pt -Distances in LilyPond are of two types: absolute and scaled. - -Absolute distances are used for specifying margins, indents, and -other page layout details, and are by default specified in -millimeters. Distances may be specified in other units by -following the quantity by @code{\mm}, @code{\cm}, -@code{\in}@tie{}(inches), or @code{\pt}@tie{}(points, 1/72.27 of -an inch). Page layout distances can also be specified in scalable -units (see the following paragraph) by appending -@code{\staff-space} to the quantity. Page layout is described in -detail in @ref{Page layout}. - -Scaled distances are always specified in units of the staff-space -or, rarely, the half staff-space. The staff-space is the distance -between two adjacent staff lines. The default value can be changed -globally by setting the global staff size, or it can be overridden -locally by changing the @code{staff-space} property of -@code{StaffSymbol}. Scaled distances automatically scale with any -change to the either the global staff size or the -@code{staff-space} property of @code{StaffSymbol}, but fonts scale -automatically only with changes to the global staff size. -The global staff size thus enables the overall size of a rendered -score to be easily varied. For the methods of setting the global -staff size see @ref{Setting the staff size}. +Le distanze in LilyPond sono di due tipi: assolute e proporzionali. + +Le distanze assolute si usano per specificare i margini, le indentazioni e +altri dettagli della formattazione di pagina; per impostazione predefinita +sono specificate in millimetri. Le distanze possono essere specificate in +altre unità di misura appendendo alla quantità @code{\mm}, @code{\cm}, +@code{\in}@tie{}(inch, ovvero pollici) o @code{\pt}@tie{}(punti, 1/72.27 di +un pollice). Le distanze della formattazione di pagina possono essere +specificate anche in unità di misura proporzionali (vedi paragrafo seguente) +appendendo @code{\staff-space} alla quantità. La formattazione di pagina è +trattata dettagliatamente in @ref{Page layout}. + +Le distanze proporzionali sono sempre specificate in unità di spazi +rigo o, raramente, mezzo spazio rigo. Lo spazio rigo è la distanza +tra due linee del rigo adiacenti. Il valore predfinito può essere +modificato globalmente impostando la dimensione globale del rigo oppure +può essere sovrascritto localmente cambiando la proprietà @code{staff-space} +di @code{StaffSymbol}. Le distanze proporzionali vengono ridimensionate +automaticamente insieme a qualsiasi cambiamento nella dimensione globale +del rigo o nella proprietà @code{staff-space} di @code{StaffSymbol}, mentre i +tipi di carattere vengono ridimensionati automaticamente soltanto con i +cambiamenti alla dimensione globale del rigo. Questa permette quindi di +variare facilmente la dimensione complessiva di una partitura. I metodi +per impostare la dimensione globale del rigo sono descritti in +@ref{Setting the staff size}. @funindex magstep -If just a section of a score needs to be rendered to a different -scale, for example an ossia section or a footnote, the global staff -size cannot simply be changed as this would affect the entire score. -In such cases the change in size is made by overriding both the -@code{staff-space} property of @code{StaffSymbol} and the size of -the fonts. A Scheme function, @code{magstep}, is available to -convert from a font size change to the equivalent change in -@code{staff-space}. For an explanation and an example of its use, -see @rlearning{Lunghezza e spessore degli oggetti}. +Se soltanto una sezione di una partitura deve essere elaborata su una +scala diversa, per esempio una sezione ossia o una nota a piè di pagina, +non si può cambiare la dimensione globale del rigo perché ciò avrebbe +effetto sull'intera partitura. In questi casi bisogna modificare sia +la proprietà @code{staff-space} di @code{StaffSymbol} sia la dimensione +dei tipi di carattere. Esiste una funzione Scheme, @code{magstep}, che +permette di convertire una modifica della dimensione del tipo di carattere +nella modifica equivalente in @code{staff-space}. Questa funzione è spiegata +e esemplificata in @rlearning{Lunghezza e spessore degli oggetti}. @seealso Manuale di apprendimento: @@ -2879,55 +2668,56 @@ Guida alla notazione: @ref{Setting the staff size}. -@node Dimensions -@subsection Dimensions +@node Dimensioni +@subsection Dimensioni +@translationof Dimensions -@cindex dimensions -@cindex bounding box +@cindex dimensioni +@cindex riquadro intorno all'oggetto -The dimensions of a graphical object specify the positions of the left -and right edges and the bottom and top edges of the objects' bounding -box as distances from the objects' reference point in units of -staff-spaces. These positions are usually coded as two Scheme pairs. -For example, the text markup command @code{\with-dimensions} takes -three arguments, the first two of which are a Scheme pair giving the -left and right edge positions and a Scheme pair giving the bottom and -top edge positions: +Le dimensioni di un oggetto grafico specificano le posizioni delle estremità +sinistra e destra e di quelle inferiore e superiore del riquadro in cui sono +iscritti gli oggetti come distanze dal punto di riferimento degli oggetti in +unità di spazi rigo. Queste posizioni sono solitamente scritte come due +coppie Scheme. Per esempio, il comando di testo @code{\with-dimensions} prende +tre argomenti: i primi due sono una coppia Scheme che indica le posizioni +delle estremità sinistra e destra e un'altra coppia Scheme che indica le +posizioni delle estremità inferiore e superiore: @example \with-dimensions #'(-5 . 10) #'(-3 . 15) @var{arg} @end example -This specifies a bounding box for @var{arg} with its left edge at -5, -its right edge at 10, its bottom edge at -3 and its top edge at 15, -all measured from the objects' reference point in units of -staff-spaces. +Questo comando specifica un riquadro per @var{arg} il cui margine sinistro +si trova a -5, il margine destro a 10, il margine inferiore a -3 e quello +superiore a 15, tutti misurati a partire dal punto di riferimento degli +oggetti in unità di spazi rigo. @seealso Guida alla notazione: @ref{Distances and measurements}. -@node Staff symbol properties -@subsection Staff symbol properties +@node Proprietà del simbolo del rigo +@subsection Proprietà del simbolo del rigo +@translationof Staff symbol properties -@cindex adjusting staff symbol -@cindex drawing staff symbol -@cindex staff symbol, setting of +@cindex cambiare il simbolo del rigo +@cindex disegnare il simbolo del rigo +@cindex simbolo del rigo, impostazione del @c TODO Extend or remove this section. See also NR 1.6.2 Staff symbol @c Need to think of uses for these properties. Eg 'line-positions @c is used in a snippet to thicken centre line. @c If retained, add @ref to here in 1.6.2 -td -The vertical position of staff lines and the number of staff lines -can be defined at the same time. As the following example shows, -note positions are not influenced by the staff line positions. +La posizione verticale e il numero delle linee del rigo possono essere +definiti contemporaneamente. Come mostra l'esempio seguente, le posizioni +delle note non sono influenzate dalle posizioni delle linee del rigo. -@warning{The @code{'line-positions} property overrides the -@code{'line-count} property. The number of staff lines is -implicitly defined by the number of elements in the list of values -for @code{'line-positions}.} +@warning{La proprietà @code{'line-positions} sovrascrive la proprietà +@code{'line-count}. Il numero di linee del rigo è definito implicitamente +dal numero di elementi nella lista di valori per @code{'line-positions}.} @lilypond[verbatim,quote] \new Staff \with { @@ -2936,9 +2726,9 @@ for @code{'line-positions}.} \relative { a4 e' f b | d1 } @end lilypond -The width of a staff can be modified. The units are staff -spaces. The spacing of objects inside the staff is not affected by -this setting. +La larghezza di un rigo può essere modificata. Le unità sono spazi +rigo. La spaziatura degli oggetti dentro il rigo non è influenzata +da questa impostazione. @lilypond[verbatim,quote] \new Staff \with { @@ -2948,64 +2738,46 @@ this setting. @end lilypond -@node Spanners -@subsection Spanners +@node Estensori +@subsection Estensori +@translationof Spanners -Many objects of musical notation extend over several notes or even -several bars. Examples are slurs, beams, tuplet brackets, volta -repeat brackets, crescendi, trills, and glissandi. Such objects -are collectively called @qq{spanners}, and have special properties to control -their appearance and behaviour. Some of these properties are common -to all spanners; others are restricted to a sub-set of the spanners. +Molti oggetti della notazione musicale si estendono per varie note o addirittura +per molte battute. Ne sono un esempio le legature di portamento, le travature, +le parentesi dei gruppi irregolari, quelle delle volte delle ripetizioni, i +crescendi, i trilli e i glissandi. Tali oggetti vengono chiamati @qq{estensori} +(o spanner, in inglese) e hanno delle proprietà speciali per regolare il loro +aspetto e comportamento. Alcune di queste proprietà sono comuni a tutti gli +estensori; altre sono limitate a un sottoinsieme di estensori. -All spanners support the @code{spanner-interface}. A few, essentially -those that draw a straight line between the two objects, support in -addition the @code{line-spanner-interface}. +Tutti gli estensori supportano l'interfaccia @code{spanner-interface}. Ma pochi, +essenzialmente quelli che disegnano una linea dritta tra due oggetti, supportano +anche l'interfaccia @code{line-spanner-interface}. @menu -* Using the spanner-interface:: -* Using the line-spanner-interface:: +* Uso di spanner-interface:: +* Uso di line-spanner-interface:: @end menu -@node Using the spanner-interface -@unnumberedsubsubsec Using the @code{spanner-interface} - -This interface provides two properties that apply to several spanners. +@node Uso di spanner-interface +@unnumberedsubsubsec Uso di @code{spanner-interface} +@translationof Using the spanner-interface -@subsubsubheading The @code{minimum-length} property +Questa interfaccia fornisce due proprietà che si applicano a vari estensori. -The minimum length of the spanner is specified by the -@code{minimum-length} property. Increasing this usually has the -necessary effect of increasing the spacing of the notes between the -two end points. However, this override has no effect on -many spanners, as their length is determined by other considerations. -A few examples where it is effective are shown below. +@subsubsubheading La proprietà @code{minimum-length} -@ignore -Works for: - Tie - MultiMeasureRest - Hairpin - Slur - PhrasingSlur - -Works as long as callback is made: - Glissando - Beam - -Works not at all for: - LyricSpace - LyricHyphen - LyricExtender - TextSpanner - System - -@end ignore +La lunghezza minima dell'estensore è specificata dalla proprietà +@code{minimum-length}. Aumentando questa si aumenta necessariamente +anche la spaziatura delle note comprese tra le due estremità. +Tuttavia questa modifica non ha effetto su molti estensori, perché +la loro lunghezza è determinata da altre considerazioni. Di seguito +vengono mostrati alcuni esempi in cui è in funzione. @lilypond[verbatim,quote,fragment] a'~ a' a' -% increase the length of the tie +% aumenta la lunghezza della legatura di valore -\tweak minimum-length #5 ~ a' @end lilypond @@ -3014,7 +2786,7 @@ a' \relative \compressMMRests { a'1 R1*23 - % increase the length of the rest bar + % aumenta la lunghezza della misura con pausa \once \override MultiMeasureRest.minimum-length = #20 R1*23 a1 @@ -3024,14 +2796,14 @@ a' @lilypond[verbatim,quote] \relative { a' \< a a a \! - % increase the length of the hairpin + % aumenta la lunghezza della forcella \override Hairpin.minimum-length = #20 a \< a a a \! } @end lilypond -This override can also be used to increase the length of slurs and -phrasing slurs: +Questa modifica può essere usata anche per aumentare la lunghezza delle +legature di portamento e di frase: @lilypond[verbatim,quote] \relative { @@ -3047,48 +2819,47 @@ phrasing slurs: } @end lilypond -For some layout objects, the @code{minimum-length} property becomes -effective only if the @code{set-spacing-rods} procedure is called -explicitly. To do this, the @code{springs-and-rods} property should -be set to @code{ly:spanner::set-spacing-rods}. For example, -the minimum length of a glissando has no effect unless the -@code{springs-and-rods} property is set: +Per alcuni oggetti della formattazione, la proprietà @code{minimum-length} +diventa effettiva solo se viene richiamata esplicitamente la procedura +@code{set-spacing-rods}. Per farlo, la proprietà @code{springs-and-rods} +deve essere impostata su @code{ly:spanner::set-spacing-rods}. Per esempio, +la lunghezza minima di un glissando cambia solo quando si imposta la +proprietà @code{springs-and-rods}: @lilypond[verbatim,fragment,quote] % default e' \glissando c'' -% not effective alone +% non funziona da sola \once \override Glissando.minimum-length = #20 e' \glissando c'' -% effective only when both overrides are present +% funziona solo quando entrambe le modifiche sono presenti \once \override Glissando.minimum-length = #20 \once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods e' \glissando c'' @end lilypond -The same is true of the @code{Beam} object: +Lo stesso vale per l'oggetto @code{Beam}: @lilypond[verbatim,fragment,quote] -% not effective alone +% non funziona da sola \once \override Beam.minimum-length = #20 e'8 e' e' e' -% effective only when both overrides are present +% funziona solo quando entrambe le modifiche sono presenti \once \override Beam.minimum-length = #20 \once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods e'8 e' e' e' @end lilypond -@subsubsubheading The @code{to-barline} property +@subsubsubheading La proprietà @code{to-barline} -The second useful property of the @code{spanner-interface} is -@code{to-barline}. By default this is true, causing hairpins and -other spanners which are terminated on the first note of a measure to -end instead on the immediately preceding bar line. If set to false, -the spanner will extend beyond the bar line and end on the note -itself: +La seconda proprietà utile di @code{spanner-interface} è +@code{to-barline}. Il valore predefinito (vero) fa sì che le forcelle e +gli altri estensori che terminano sulla prima nota di una misura si estendano +invece fino alla stanghetta immediatamente precedente. Se impostata su falso, +l'estensore andrà oltre la stanghetta e terminerà sulla nota stessa: @lilypond[verbatim,quote] \relative { @@ -3098,15 +2869,17 @@ itself: } @end lilypond -This property is not effective for all spanners. For example, -setting it to @code{#t} has no effect on slurs or phrasing slurs -or on other spanners for which terminating on the bar line would -not be meaningful. +Questa proprietà non funziona con tutti gli estensori. Per esempio, +impostandola su @code{#t} non si produce alcun effetto su legature di +portamento o di frase, o su altri estensori per i quali terminare sulla +stanghetta non avrebbe senso. -@node Using the line-spanner-interface -@unnumberedsubsubsec Using the @code{line-spanner-interface} -Objects which support the @code{line-spanner-interface} include +@node Uso di line-spanner-interface +@unnumberedsubsubsec Uso di @code{line-spanner-interface} +@translationof Using the line-spanner-interface + +Gli oggetti che supportano l'interfaccia @code{line-spanner-interface} comprendono: @itemize @item @code{DynamicTextSpanner} @@ -3116,15 +2889,14 @@ Objects which support the @code{line-spanner-interface} include @item @code{VoiceFollower} @end itemize -The routine responsible for drawing the stencils for these spanners is -@code{ly:line-spanner::print}. This routine determines the -exact location of the two end points and draws a line -between them, in the style requested. The locations of the two -end points of the spanner are computed on-the-fly, but it is -possible to override their Y-coordinates. The -properties which need to be specified are nested -two levels down within the property hierarchy, but the syntax of -the @code{\override} command is quite simple: +La routine responsabile del disegno di questi estensori è +@code{ly:line-spanner::print}. Essa determina la posizione esatta +delle due estremità e disegna una linea tra di esse, nello stile +richiesto. Le posizioni delle due estremità dell'estensore sono +calcolate al volo, ma è possibile sovrascrivere le loro coordinate +Y. Le proprietà da specificare sono annidate di due livelli nella +gerarchia della proprietà, ma la sintassi del comando @code{\override} +è piuttosto semplice: @lilypond[quote,fragment,verbatim] e''2 \glissando b' @@ -3133,18 +2905,18 @@ e''2 \glissando b' e''2 \glissando b' @end lilypond -The units for the @code{Y} property are @code{staff-space}s, -with the center line of the staff being the zero point. -For the glissando, this is the value for @code{Y} at the -X-coordinate corresponding to the center point of each note head, -if the line is imagined to be extended to there. +Le unità di misura della proprietà @code{Y} sono gli spazi rigo +(@code{staff-space}), con la linea centrale del rigo che è il +punto zero. Per il glissando, questo è il valore per @code{Y} alla +coordinata X che corrisponde al punto centrale della testa di ogni +nota, se si immagina che la linea si estenda fino a là. -If @code{Y} is not set, the value is computed from the vertical -position of the corresponding attachment point of the spanner. +Se @code{Y} non è impostato, il valore viene calcolato dalla posizione +verticale del punto di attacco corrispondente dell'estensore. -In case of a line break, the values for the end points are -specified by the @code{left-broken} and @code{right-broken} -sub-lists of @code{bound-details}. For example: +In caso di un'interruzione di linea, i valori per le estremità sono +specificati dalle sottoliste @code{left-broken} e @code{right-broken} +di @code{bound-details}. Per esempio: @lilypond[ragged-right,fragment,verbatim,quote] \override Glissando.breakable = ##t @@ -3154,52 +2926,52 @@ f''1 @end lilypond -A number of further properties of the @code{left} and -@code{right} sub-lists of the @code{bound-details} property -may be modified in the same way as @code{Y}: +Altre proprietà delle sottoliste @code{left} e @code{right} della proprietà +@code{bound-details} possono essere modificate nello stesso modo di @code{Y}: @table @code @item Y -This sets the Y-coordinate of the end point, in @code{staff-space}s -offset from the staff center line. By default, it is the center of -the bound object, so a glissando points to the vertical center of -the note head. +Questa imposta la coordinata Y dell'estremità, che si sposta di un certo +numero di @code{staff-space} dalla linea centrale del rigo. Per impostazione +predefinita, è il centro dell'oggetto a cui è associato, dunque un glissando +punta al centro verticale della testa di nota. -For horizontal spanners, such as text spanners and trill spanners, -it is hardcoded to 0. +Nel caso di estensori orizzontali, come quelli del testo e del trillo, +il suo valore è fisso su 0. @item attach-dir -This determines where the line starts and ends in the X-direction, -relative to the bound object. So, a value of @w{@code{-1}} (or -@code{LEFT}) makes the line start/end at the left side of the note -head it is attached to. +Questa determina dove la linea inizia e termina nella direzione X, +relativa all'oggetto a cui è associato. Quindi un valore di @w{@code{-1}} (o +@code{LEFT}) fa sì che la linea inizi/termini sul lato sinistro della testa +della nota a cui è attaccata. @item X -This is the absolute X-coordinate of the end point. It is usually -computed on the fly, and overriding it has little useful effect. +Questa è la coordinata X assoluta dell'estremità. Viene solitamente calcolata +al volo e sovrascriverla produce solitamente un effetto poco utile. @item stencil -Line spanners may have symbols at the beginning or end, which is -contained in this sub-property. This is for internal use; it is -recommended that @code{text} be used instead. +Gli estensori della linea possono avere dei simboli all'inizio o alla fine, +contenuti in questa sottoproprietà. Questa proprietà è per uso interno; +si raccomanda di usare @code{text} al suo posto. @item text -This is a markup that is evaluated to yield the stencil. It is used -to put @i{cresc.}, @i{tr} and other text on horizontal spanners. +Questo è un testo markup che viene valutato per produrre lo stampo (stencil, +in inglese). Viene usato per mettere @i{cresc.}, @i{tr} e altro testo su +estensori orizzontali. @lilypond[quote,ragged-right,fragment,verbatim] \override TextSpanner.bound-details.left.text - = \markup { \small \bold Slower } + = \markup { \small \bold Rall. } \relative { c''2\startTextSpan b c a\stopTextSpan } @end lilypond @item stencil-align-dir-y @item stencil-offset -Without setting one of these, the stencil is simply put at the -end-point, centered on the line, as defined by the @code{X} and -@code{Y} sub-properties. Setting either @code{stencil-align-dir-y} -or @code{stencil-offset} will move the symbol at the edge vertically -relative to the end point of the line: +Se non si imposta una di queste proprietà, lo stampo viene messo semplicemente +all'estremità, centrato sulla linea, come definito nelle sottoproprietà +@code{X} e @code{Y}. Impostando @code{stencil-align-dir-y} o +@code{stencil-offset} il simbolo si sposterà verticalmente sul margine +rispetto all'estremità della linea: @lilypond[quote,fragment,verbatim] \override TextSpanner.bound-details.left.stencil-align-dir-y = #-2 @@ -3211,28 +2983,27 @@ relative to the end point of the line: \relative { c'4^\startTextSpan c c c \stopTextSpan } @end lilypond -Note that negative values move the text @emph{up}, contrary to the -effect that might be expected, as a value of @w{@code{-1}} or -@code{DOWN} means align the @emph{bottom} edge of the text with -the spanner line. A value of @code{1} or @code{UP} aligns -the top edge of the text with the spanner line. +Nota bene che valori negativi spostano il testo in @emph{su}, contrariamente +a quanto si potrebbe pensare, perché un valore di @w{@code{-1}} o +@code{DOWN} fa sì che si allinei il margine @emph{inferiore} del testo con +la linea dell'estensore. Un valore di @code{1} o @code{UP} allinea il margine +superiore del testo con la linea dell'estensore. @item arrow -Setting this sub-property to @code{#t} produces an arrowhead at the -end of the line. +Impostando questa sottoproprietà su @code{#t} viene generata la punta di una +freccia a un'estremità della linea. @item padding -This sub-property controls the space between the specified -end point of the line and the actual end. Without padding, a -glissando would start and end in the center of each note head. +Questa sottoproprietà regola lo spazio tra l'estremità della linea specificata +e la fine reale. Senza padding, un glissando inizia e termina nel centro della +testa di ogni nota. @end table -The music function @code{\endSpanners} terminates the spanner -which starts on the immediately following note prematurely. It -is terminated after exactly one note, or at the following bar line -if @code{to-barline} is true and a bar line occurs before the next -note. +La funzione musicale @code{\endSpanners} termina prematuramente l'estensore +che inizia nella nota immediatamente seguente. Viene terminato esattamente +dopo una nota o alla stanghetta seguente se @code{to-barline} è impostato +su vero e c'è una stanghetta prima della nota successiva. @lilypond[verbatim,quote,ragged-right] \relative c'' { @@ -3243,9 +3014,9 @@ note. } @end lilypond -When using @code{\endSpanners} it is not necessary to close -\startTextSpan with \stopTextSpan, nor is it necessary to close -hairpins with @code{\!}. +Quando si usa @code{\endSpanners} non è necessario chiudere +\startTextSpan con \stopTextSpan, né è necessario chiudere le +forcelle con @code{\!}. @seealso Guida al funzionamento interno: @@ -3256,45 +3027,49 @@ Guida al funzionamento interno: @rinternals{line-spanner-interface}. -@node Visibility of objects -@subsection Visibility of objects +@node Visibilità degli oggetti +@subsection Visibilità degli oggetti +@translationof Visibility of objects @cindex objects, visibility of @cindex grobs, visibility of @cindex visibility of objects -There are four main ways in which the visibility of layout objects -can be controlled: their stencil can be removed, they can be made -transparent, they can be colored white, or their -@code{break-visibility} property can be overridden. The first -three apply to all layout objects; the last to just a few -- the -@emph{breakable} objects. The Manuale di apprendimento introduces these -four techniques, see @rlearning{Visibilità e colore degli oggetti}. +Esistono quattro modi principali per regolare la visibilità degli oggetti della +formattazione: si può togliere il loro stampo, possono essere resi trasparenti, +possono essere colorati di bianco o si può sovrascrivere la loro proprietà +@code{break-visibility}. Le prime tre sono valide per tutti gli oggetti +della formattazione; l'ultimo solo per alcuni, gli oggetti che possono essere +@emph{interrotti}, o spezzati, (break, in inglese). +Il Manuale di apprendimento contiene un'introduzione a queste quattro tecniche +in @rlearning{Visibilità e colore degli oggetti}. -There are also a few other techniques which are specific to -certain layout objects. These are covered under Special -considerations. +Esistono anche altre tecniche che sono specifiche di alcuni oggetti della +formattazione. Queste sono trattate in @ref{Special considerations}. @menu -* Removing the stencil:: -* Making objects transparent:: -* Painting objects white:: -* Using break-visibility:: -* Special considerations:: +* Soppressione dello stampo:: +* Rendere gli oggetti trasparenti:: +* Dipingere gli oggetti di bianco:: +* Uso di break-visibility:: +* Considerazioni speciali:: @end menu -@node Removing the stencil -@unnumberedsubsubsec Removing the stencil +@node Soppressione dello stampo +@unnumberedsubsubsec Soppressione dello stampo +@translationof Removing the stencil -@cindex stencil, removing +@cindex stencil, soppressione +@cindex stampo, soppressione @funindex \omit -Every layout object has a stencil property. By default this is set -to the specific function which draws that object. If this property -is overridden to @code{#f} no function will be called and the object -will not be drawn. The default action can be recovered with -@code{\revert}. +Tutti gli oggetti della formattazione hanno una proprietà @code{stencil} (in +italiano, stampo). Per impostazione predefinita questa è impostata sulla +funzione specifica che disegna quell'oggetto. Se questa proprietà viene +sovrascritta e impostata su @code{#f}, non verrà richiamata alcuna funzione +e l'oggetto non verrà disegnato. L'azione predefinita può essere ripristinata +con @code{\revert}. @lilypond[quote,fragment,verbatim] a1 a @@ -3304,7 +3079,7 @@ a a a a a @end lilypond -This rather common operation has a shortcut @code{\omit}: +Questa operazione piuttosto comune ha una scorciatoia, @code{\omit}: @lilypond[quote,fragment,verbatim] a1 a @@ -3314,15 +3089,17 @@ a a a a a @end lilypond -@node Making objects transparent -@unnumberedsubsubsec Making objects transparent -@cindex transparent, making objects +@node Rendere gli oggetti trasparenti +@unnumberedsubsubsec Rendere gli oggetti trasparenti +@translationof Making objects transparent + +@cindex transparenti, rendere gli oggetti @funindex \hide -Every layout object has a transparent property which by default is -set to @code{#f}. If set to @code{#t} the object still occupies -space but is made invisible. +Tutti gli oggetti della formattazione hanno una proprietà @code{transparent} +la cui impostazione predefinita è @code{#f} (falso). Se impostata su @code{#t} +(vero), l'oggetto occupa sempre lo spazio ma è reso invisibile. @lilypond[quote,fragment,verbatim] a'4 a' @@ -3330,7 +3107,7 @@ a'4 a' a' a' @end lilypond -This rather common operation has a shortcut @code{\hide}: +Questa operazione piuttosto comune ha una scorciatoia, @code{\hide}: @lilypond[quote,fragment,verbatim] a'4 a' @@ -3338,45 +3115,49 @@ a'4 a' a' a' @end lilypond -@node Painting objects white -@unnumberedsubsubsec Painting objects white - -@cindex objects, coloring -@cindex coloring objects -@cindex layers -@cindex printing order -@cindex overwriting objects -@cindex objects, overwriting -@cindex grobs, overwriting - -Every layout object has a color property which by default is set -to @code{black}. If this is overridden to @code{white} the object -will be indistinguishable from the white background. However, -if the object crosses other objects the color of the crossing -points will be determined by the order in which they are drawn, -and this may leave a ghostly image of the white object, as shown -here: + +@node Dipingere gli oggetti di bianco +@unnumberedsubsubsec Dipingere gli oggetti di bianco +@translationof Painting objects white + +@cindex oggetti, colorare +@cindex colorare gli oggetti +@cindex strati +@cindex ordine di stampa +@cindex sovrascrivere gli oggetti +@cindex oggetti, sovrascrivere +@cindex grob, sovrascrivere + +Tutti gli oggetti della formattazione hanno una proprietà del colore il cui +valore predefinito è @code{black} (nero). Se questa viene sovrascritta con +@code{white} (bianco) l'oggetto non sarà più distinguibile dallo sfondo. Tuttavia +se l'oggetto attraversa altri oggetti, il colore dei punti di contatto saranno +determinati dall'ordine in cui sono disegnati, e ciò potrebbe lasciare +un'immagine @qq{spettrale} dell'oggetto bianco, come mostrato qui: @lilypond[quote,fragment,verbatim] \override Staff.Clef.color = #white a'1 @end lilypond -This may be avoided by changing the order of printing the objects. -All layout objects have a @code{layer} property which should be set -to an integer. Objects with the lowest value of @code{layer} are -drawn first, then objects with progressively higher values are drawn, -so objects with higher values overwrite objects with lower values. -By default most objects are assigned a @code{layer} value of -@code{1}, although a few objects, including @code{StaffSymbol} and -@code{BarLine}, are assigned a value of @code{0}. The order of -printing objects with the same value of @code{layer} is indeterminate. - -In the example above the white clef, with a default @code{layer} -value of @code{1}, is drawn after the staff lines (default -@code{layer} value @code{0}), so overwriting them. To change this, -the @code{Clef} object must be given in a lower value of -@code{layer}, say @w{@code{-1}}, so that it is drawn earlier: +Ciò può essere evitato cambiando l'ordine di stampa degli oggetti. +Tutti gli oggetti della formattazione hanno una proprietà @code{layer} +(strato) che deve essere impostata su un numero intero. +Gli oggetti col valore più basso di @code{layer} sono disegnati +per primi, poi vengono disegnati quelli con valori via via più +alti, dunque gli oggetti con valori più alti stanno sopra gli +oggetti con valori più bassi. Per impostazione predefinita alla +maggior parte degli oggetti viene assegnato un valore di @code{layer} +pari a @code{1}, sebbene ad alcuni oggetti, tra cui @code{StaffSymbol} e +@code{BarLine}, sia assegnato un valore di @code{0}. L'ordine con cui +vengono stampati oggetti con lo stesso valore di @code{layer} è indeterminato. + +Nell'esempio precedente la chiave bianca, con un valore predefinito di +@code{layer} di @code{1}, viene disegnato dopo le linee del rigo (il cui +valore predefinito di @code{layer} è @code{0}), dunque sta sopra di esse. +Per cambiare tale comportamento, all'oggetto @code{Clef} deve essere assegnato +un valore di @code{layer} inferiore, per esempio @w{@code{-1}}, in modo che +venga disegnato prima: @lilypond[quote,fragment,verbatim] \override Staff.Clef.color = #white @@ -3384,71 +3165,70 @@ the @code{Clef} object must be given in a lower value of a'1 @end lilypond -@node Using break-visibility -@unnumberedsubsubsec Using break-visibility +@node Uso di break-visibility +@unnumberedsubsubsec Uso di break-visibility +@translationof Using break-visibility @c TODO Add making other objects breakable @cindex break-visibility -Most layout objects are printed only once, but some like -bar lines, clefs, time signatures and key signatures, may need -to be printed twice when a line break occurs -- once at the end -of the line and again at the start of the next line. Such -objects are called @emph{breakable}, and have a property, the -@code{break-visibility} property to control their visibility -at the three positions in which they may appear -- at the -start of a line, within a line if they are changed, and at the -end of a line if a change takes place there. - -For example, the time signature -by default will be printed at the start of the first line, but -nowhere else unless it changes, when it will be printed at the -point at which the change occurs. If this change occurs at the -end of a line the new time signature will be printed at the start -of the next line and a cautionary time signature will be printed -at the end of the previous line as well. - -This behaviour is controlled by the @code{break-visibility} -property, which is explained in -@c Leave this ref on a newline - formats incorrectly otherwise -td -@rlearning{Visibilità e colore degli oggetti}. This property takes -a vector of three booleans which, in order, determine whether the -object is printed at the end of, within the body of, or at the -beginning of a line. Or to be more precise, before a line break, -where there is no line break, or after a line break. - -Alternatively, these eight combinations may be specified -by pre-defined functions, defined in @file{scm/output-lib.scm}, -where the last three columns indicate whether the layout objects -will be visible in the positions shown at the head of the columns: - -@multitable {@code{begin-of-line-invisible}} {@code{#(#t #t #t)}} {Before} {At no} {After} -@headitem Function @tab Vector @tab Before @tab At no @tab After -@headitem form @tab form @tab break @tab break @tab break - -@item @code{all-visible} @tab @code{#(#t #t #t)} @tab yes @tab yes @tab yes -@item @code{begin-of-line-visible} @tab @code{#(#f #f #t)} @tab no @tab no @tab yes -@item @code{center-visible} @tab @code{#(#f #t #f)} @tab no @tab yes @tab no -@item @code{end-of-line-visible} @tab @code{#(#t #f #f)} @tab yes @tab no @tab no -@item @code{begin-of-line-invisible} @tab @code{#(#t #t #f)} @tab yes @tab yes @tab no -@item @code{center-invisible} @tab @code{#(#t #f #t)} @tab yes @tab no @tab yes -@item @code{end-of-line-invisible} @tab @code{#(#f #t #t)} @tab no @tab yes @tab yes -@item @code{all-invisible} @tab @code{#(#f #f #f)} @tab no @tab no @tab no +La maggior parte degli oggetti della formattazione sono stampati una +volta sola, ma alcuni come le stanghette, le chiavi, le indicazioni +di tempo e le armature di chiave possono dover essere stampate +due volte quando si verifica un'interruzione di linea -- una volta al +termine della linea e di nuovo all'inizio della linea successiva. +Tali oggetti, chiamati @emph{spezzabili}, (dall'inglese breakable) +hanno una proprietà, @code{break-visibility}, per regolare +la loro visibilità nelle tre posizioni in cui potrebbero apparire: +all'inizio di una linea, in mezzo a una linea se vengono modificati +e al termine di una linea se un cambiamento ha luogo lì. + +Per esempio, l'indicazione di tempo viene stampata all'inizio della +prima linea, ma da nessuna altra parte a meno che non cambi e allora +verrà stampata nel punto in cui il cambiamento ha luogo. Se tale +cambiamento si verifica al termine di una linea, la nuova indicazione +di tempo verrà stampata all'inizio della linea successiva e un'indicazione +di tempo di precauzione verrà stampata anche al termine della linea precedente. + +Tale comportamento è regolato dalla proprietà @code{break-visibility}, che +è spiegata in @rlearning{Visibilità e colore degli oggetti}. Questa proprietà +prende un vettore di tre valori booleani che, in ordine, determinano se +l'oggetto è stampato al termine, in mezzo o all'inizio di una linea. O, per +essere più precisi, prima di un'interruzione di linea, dove non c'è +un'interruzione di linea oppure dopo un'interruzione di linea. + +Altrimenti, queste otto combinazoni possono essere specificate da +funzioni predefinite, definite in @file{scm/output-lib.scm}, +dove le ultime tre colonne indicano se gli oggetti della formattazione +saranno visibili nelle posizioni mostrate nell'intestazione delle colonne: + +@multitable {@code{begin-of-line-invisible}} {@code{#(#t #t #t)}} {Prima} {Senza} {Dopo} +@headitem Funzione @tab Forma @tab Prima di @tab Senza @tab Dopo +@headitem @tab vettoriale @tab interruzione @tab interruzione @tab interruzione + +@item @code{all-visible} @tab @code{#(#t #t #t)} @tab sì @tab sì @tab sì +@item @code{begin-of-line-visible} @tab @code{#(#f #f #t)} @tab no @tab no @tab sì +@item @code{center-visible} @tab @code{#(#f #t #f)} @tab no @tab sì @tab no +@item @code{end-of-line-visible} @tab @code{#(#t #f #f)} @tab sì @tab no @tab no +@item @code{begin-of-line-invisible} @tab @code{#(#t #t #f)} @tab sì @tab sì @tab no +@item @code{center-invisible} @tab @code{#(#t #f #t)} @tab sì @tab no @tab sì +@item @code{end-of-line-invisible} @tab @code{#(#f #t #t)} @tab no @tab sì @tab sì +@item @code{all-invisible} @tab @code{#(#f #f #f)} @tab no @tab no @tab no @end multitable -The default settings of @code{break-visibility} depend on the -layout object. The following table shows all the layout objects -of interest which are affected by @code{break-visibility} and the -default setting of this property: +Le impostazioni predefinite di @code{break-visibility} dipendono dall'oggetto +della formattazione. La tabella seguente mostra tutti gli oggetti rilevanti +che sono influenzati da @code{break-visibility} e l'impostazione predefinita +di questa proprietà: @multitable @columnfractions .3 .3 .4 -@headitem Layout object @tab Usual context @tab Default setting +@headitem Oggetto formattazione @tab Contesto abituale @tab Impostazione predefinita @c omit Ambitus as it appears not to be affected by break-visibility -td @c @item @code{Ambitus} @tab as specified @tab @code{begin-of-line-visible} -@item @code{BarLine} @tab @code{Score} @tab calculated +@item @code{BarLine} @tab @code{Score} @tab calcolato @item @code{BarNumber} @tab @code{Score} @tab @code{begin-of-line-visible} @c omit the following item until it can be explained -td @c @item @code{BreakAlignGroup} @tab @code{Score} @tab calculated @@ -3466,14 +3246,14 @@ default setting of this property: @end multitable -The example below shows the use of the vector form to control the -visibility of bar lines: +L'esempio successivo mostra l'uso della forma vettoriale per regolare la +visibilità delle stanghette: @lilypond[quote,verbatim,ragged-right] \relative { f'4 g a b f4 g a b - % Remove bar line at the end of the current line + % Toglie la stanghetta al termine della linea corrente \once \override Score.BarLine.break-visibility = ##(#f #t #t) \break f4 g a b @@ -3481,47 +3261,49 @@ visibility of bar lines: } @end lilypond -Although all three components of the vector used to override -@code{break-visibility} must be present, not all of them are -effective with every layout object, and some combinations may -even give errors. The following limitations apply: +Sebbene tutti i componenti del vettore usati per sovrascrivere +@code{break-visibility} debbano essere presenti, non tutti sono +funzionanti con qualsiasi oggetto della formattazione, e alcune +combinazioni potrebbero perfino dare errore. Esistono le seguenti +limitazioni: @itemize @bullet -@item Bar lines cannot be printed at start of line. -@item A bar number cannot be printed at the start of the first -line unless it is set to be different from 1. -@item Clef -- see below -@item Double percent repeats are either all printed or all -suppressed. Use begin-of line-invisible to print and -all-invisible to suppress. -@item Key signature -- see below -@item ClefModifier -- see below +@item Non è possibile stampare le stanghette all'inizio di una linea. +@item Un numero di battuta non può essere stampato all'inizio della prima +linea a meno che non sia impostato per essere diverso da 1. +@item Clef -- vedi sotto. +@item Le ripetizioni percentuali doppie sono o tutte stampate o tutte soppresse. +Usare begin-of-line-invisible per stampare e all-invisible per sopprimere. +@item Key signature -- vedi sotto. +@item ClefModifier -- vedi sotto. @end itemize -@node Special considerations -@unnumberedsubsubsec Special considerations -@subsubsubheading Visibility following explicit changes +@node Considerazioni speciali +@unnumberedsubsubsec Considerazioni speciali +@translationof Special considerations -@cindex key signature, visibility following explicit change +@subsubsubheading Visibilità dopo un cambio esplicito + +@cindex armatura di chiave, visibilità dopo un cambio esplicito @cindex explicitKeySignatureVisibility -@cindex clef, visibility following explicit change +@cindex chiave, visibilità dopo un cambio esplicito @cindex explicitClefVisibility -The @code{break-visibility} property controls the visibility of -key signatures and changes of clef only at the start of lines, -i.e. after a break. It has no effect on the visibility of the -key signature or clef following an explicit key change or an -explicit clef change within or at the end of a line. In the -following example the key signature following the explicit change -to B-flat major is still visible, even though @code{all-invisible} -is set. +La proprietà @code{break-visibility} controlla la visibilità delle +armature di chiave e dei cambi di chiave solo all'inizio delle linee, +ovvero dopo un'interruzione di linea. Non ha effetto sulla visibilità +dell'armatura di chiave o della chiave che seguono un cambio esplicito +dell'armatura o della chiave all'interno o alla fine di una linea. +Nell'esempio seguente l'armatura di chiave che segue il cambio esplicito +a Si bemolle maggiore è ancora visibile, anche se @code{all-invisible} +è impostata. @lilypond[quote,verbatim,ragged-right] \relative { \key g \major f'4 g a b - % Try to remove all key signatures + % Tentativo di eliminazione di tutte le armature di chiave \override Staff.KeySignature.break-visibility = #all-invisible \key bes \major f4 g a b @@ -3531,19 +3313,18 @@ is set. } @end lilypond -The visibility of such explicit key signature and clef changes is -controlled by the @code{explicitKeySignatureVisibility} and -@code{explicitClefVisibility} properties. These are the equivalent -of the @code{break-visibility} property and both take a vector of -three booleans or the predefined functions listed above, exactly like -@code{break-visibility}. Both are properties of the Staff context, -not the layout objects themselves, and so they are set using the -@code{\set} command. Both are set by default to @code{all-visible}. -These properties control only the visibility of key signatures and -clefs resulting from explicit changes and do not affect key -signatures and clefs at the beginning of lines; -@code{break-visibility} must still be overridden in the appropriate -object to remove these. +La visibilità di questi cambi espliciti di armatura e di chiave è +controllata dalle proprietà @code{explicitKeySignatureVisibility} e +@code{explicitClefVisibility}. Sono equivalenti alla proprietà +@code{break-visibility} e prendono entrambe come argomento un vettore +di tre booleani o le funzioni predefinite elencate prima, proprio +come @code{break-visibility}. Entrambe le proprietà appartengono al +contesto Staff, non agli oggetti della formattazione stessi, dunque +si impostano col comando @code{\set}. La loro impostazione predefinita +è @code{all-visible}. Queste proprietà regolano solo la visibilità +di armature di chiave e chiavi risultanti da cambi espliciti e non +quelli all'inizio delle linee; per eliminare questi ultimi bisogna +sempre sovrascrivere @code{break-visibility} nell'oggetto appropriato. @lilypond[quote,verbatim,ragged-right] \relative { @@ -3558,11 +3339,11 @@ object to remove these. } @end lilypond -@subsubsubheading Visibility of cancelling accidentals +@subsubsubheading Visibilità dei bequadri -To remove the cancelling accidentals printed at an explicit key -change, set the Staff context property @code{printKeyCancellation} -to @code{#f}: +Per eliminare i bequadri stampati su un cambio di chiave esplicito, +impostare la proprietà del contesto Staff @code{printKeyCancellation} +su @code{#f}: @lilypond[quote,verbatim,ragged-right] \relative { @@ -3578,13 +3359,13 @@ to @code{#f}: } @end lilypond -With these overrides only the accidentals before the notes remain -to indicate the change of key. +Con queste modifiche restano solo le alterazioni accanto alle note per +indicare il cambio di armatura. -Note that when changing the key to C@tie{}major or A@tie{}minor -the cancelling accidentals would be the @emph{only} indication of -the key change. In this case setting @code{printKeyCancellation} to -@code{#f} has no effect: +Nota bene che quando si cambia l'armatura su Do@tie{}maggiore o La@tie{}minore +i bequadri sono l'@emph{unica} indicazione del cambio di chiave. In questo +caso impostando @code{printKeyCancellation} su @code{#f} non si ottiene +alcun effetto: @lilypond[quote,verbatim,ragged-right] \relative { @@ -3599,9 +3380,9 @@ the key change. In this case setting @code{printKeyCancellation} to } @end lilypond -To suppress the cancelling accidentals even when the key is -changed to C@tie{}major or A@tie{}minor, override -the visibility of the @code{KeyCancellation} grob instead: +Per sopprimere i bequadri anche quando la tonalità passa a +Do@tie{}maggiore o La@tie{}minore, sovrascrivere la +visibilità del grob @code{KeyCancellation}: @lilypond[quote,verbatim,ragged-right] \relative { @@ -3618,60 +3399,60 @@ the visibility of the @code{KeyCancellation} grob instead: @c TODO Add visibility of cautionary accidentals before notes -@subsubsubheading Automatic bars +@subsubsubheading Battute automatiche @cindex automaticBars -@cindex bar lines, suppressing +@cindex stanghette, soppressione -As a special case, the printing of bar lines can also be turned off -by setting the @code{automaticBars} property in the Score context. -If set to @code{#f}, bar lines will not be printed automatically; -they must be explicitly created with a @code{\bar} command. Unlike -the @code{\cadenzaOn} predefined command, measures are still counted. -Bar generation will resume according to that count if this property -is later set to @code{#t}. When set to @code{#f}, line breaks can -occur only at explicit @code{\bar} commands. +In un caso particolare, la stampa delle stanghette può essere disattivata +impostando la proprietà @code{automaticBars} nel contesto Score. Se impostata +su @code{#f}, le stanghette non verranno stampate automaticamente; devono +invece essere create esplicitamente con un comando @code{\bar}. Diversamente +dal comando predefinito @code{\cadenzaOn}, le misure vengono comunque contate. +La generazione delle battute riprenderà in base a quel conteggio se questa +proprietà viene poi impostata su @code{#t}. Se impostata su @code{#f}, le +interruzioni di linea possono trovarsi solo su comandi @code{\bar} espliciti. @c TODO Add example -@subsubsubheading Transposed clefs +@subsubsubheading Chiavi trasposte -@cindex transposed clefs, visibility of -@cindex visibility of transposed clefs -@cindex clefs, visibility of transposition +@cindex chiavi trasposte, visibilità delle +@cindex visibilità delle chiavi trasposte +@cindex chiavi, visibilità della trasposizione -The small transposition symbol on transposed clefs is produced by the -@code{ClefModifier} layout object. Its visibility is automatically -inherited from the @code{Clef} object, so it is not necessary to apply -any required @code{break-visibility} overrides to the @code{ClefModifier} -layout objects to suppress transposition symbols for invisible clefs. +Il piccolo simbolo di trasposizione sulle chiavi trasposte è prodotto +dall'oggetto di formattazione @code{ClefModifier}. La sua visibilità +è ereditata automaticamente dall'oggetto @code{Clef}, dunque non è necessario +applicare una modifica di @code{break-visibility} agli oggetti @code{ClefModifier} +per sopprimere i simboli di trasposizione per le chiavi invisibili. -For explicit clef changes, the @code{explicitClefVisibility} -property controls both the clef symbol and any transposition symbol -associated with it. +Per cambi di chiave espliciti, la proprietà @code{explicitClefVisibility} +regola sia il simbolo della chiave che qualsiasi simbolo di trasposizione +ad esso associato. @seealso Manuale di apprendimento: @rlearning{Visibilità e colore degli oggetti}. -@node Line styles -@subsection Line styles +@node Stili della linea +@subsection Stili della linea +@translationof Line styles -Some performance indications, e.g., @i{rallentando} and -@i{accelerando} and @i{trills} are written as text and are -extended over many measures with lines, sometimes dotted or wavy. +Alcune indicazioni esecutive, come @i{rallentando}, @i{accelerando} e +@i{trilli} sono scritte in forma testuale e sono estese per varie misure +tramite delle linee, talvolta puntate o ondulate. -These all use the same routines as the glissando for drawing the -texts and the lines, and tuning their behavior is therefore also -done in the same way. It is done with a spanner, and the routine -responsible for drawing the spanners is -@code{ly:line-spanner::print}. This routine determines the -exact location of the two @i{span points} and draws a line -between them, in the style requested. +Queste usano tutte le stesse routine del glissando per disegnare i +testi e le linee, dunque il loro comportamento viene modificato nello +stesso modo. Viene fatto con un estensore, e la routine responsabile +del disegno degli estensori è @code{ly:line-spanner::print}. Questa +routine determina la posizione esatta dei due @i{punti di estensione} e +disegna una linea tra loro, nello stile richiesto. -Here is an example showing the different line styles available, -and how to tune them. +Ecco un esempio che mostra i vari stili di linea disponibili, e come +impostarli.. @lilypond[ragged-right,verbatim,quote] \relative { @@ -3687,9 +3468,8 @@ and how to tune them. } @end lilypond -The locations of the end-points of the spanner are computed -on-the-fly for every graphic object, but it is possible to -override these: +I punti delle estremità dell'estensore sono calcolati al volo per ogni +oggetto grafico, ma è possibile sovrascriverli: @c TODO Complete @lilypond[ragged-right,verbatim,quote] @@ -3700,50 +3480,52 @@ override these: } @end lilypond -The value for @code{Y} is set to @w{@code{-2}} for the right end -point. The left side may be similarly adjusted by specifying -@code{left} instead of @code{right}. +Il valore di @code{Y} è impostato su @w{@code{-2}} per l'estremità +destra. Quella sinistra può essere aggiustata ugualmente specificando +@code{left} invece di @code{right}. -If @code{Y} is not set, the value is computed from the vertical -position of the left and right attachment points of the spanner. +Se @code{Y} non è impostata, il valore è calcolato a partire dalla posizione +verticale dei punti di attacco sinistro e destro dell'estensore. -Other adjustments of spanners are possible, for details, see +Sono possibili altre modifiche degli estensori; maggiori dettagli in @ref{Spanners}. -@node Rotating objects -@subsection Rotating objects -Both layout objects and elements of markup text can be rotated by -any angle about any point, but the method of doing so differs. +@node Rotazione degli oggetti +@subsection Rotazione degli oggetti +@translationof Rotating objects + +Sia gli oggetti della formattazione che il testo compreso in un blocco markup +possono essere ruotati di qualsiasi angolo in quasi qualsiasi punto, ma il +metodo per farlo cambia. @menu -* Rotating layout objects:: -* Rotating markup:: +* Rotazione degli oggetti della formattazione:: +* Rotazione del testo:: @end menu -@node Rotating layout objects -@unnumberedsubsubsec Rotating layout objects +@node Rotazione degli oggetti della formattazione +@unnumberedsubsubsec Rotazione degli oggetti della formattazione +@translationof Rotating layout objects -@cindex rotating objects -@cindex objects, rotating +@cindex rotazione degli oggetti +@cindex oggetti, rotazione -All layout objects which support the @code{grob-interface} can be -rotated by setting their @code{rotation} property. This takes a -list of three items: the angle of rotation counter-clockwise, -and the x and y coordinates of the point relative to the object's -reference point about which the rotation is to be performed. The -angle of rotation is specified in degrees and the coordinates in -staff-spaces. +Tutti gli oggetti della formattazione che supportano l'interfaccia +@code{grob-interface} possono essere ruotati impostando la loro +proprietà @code{rotation}. Questa prende come argomento una lista +di tre elementi: l'angolo di rotazione in senso antiorario, e le +coordinate x e y del punto relativo al punto di riferimento dell'oggetto +intorno al quale si deve eseguire la rotazione. L'angolo di rotazione +è specificato in gradi e le coordinate in spazi rigo. -The angle of rotation and the coordinates of the rotation point must -be determined by trial and error. +L'angolo di rotazione e le coordinate del punto di rotazione devono essere +determinate per prova e errore. -@cindex hairpins, angled -@cindex angled hairpins +@cindex forcelle angolate -There are only a few situations where the rotation of layout -objects is useful; the following example shows one situation where -they may be: +Esistono solo poche situazioni in cui la rotazione degli oggetti della +formattazione è utile; l'esempio seguente ne mostra uno: @lilypond[quote,fragment,verbatim] g4\< e' d'' f''\! @@ -3751,41 +3533,43 @@ g4\< e' d'' f''\! g4\< e' d'' f''\! @end lilypond -@node Rotating markup -@unnumberedsubsubsec Rotating markup -All markup text can be rotated to lie at any angle by prefixing it -with the @code{\rotate} command. The command takes two arguments: -the angle of rotation in degrees counter-clockwise and the text to -be rotated. The extents of the text are not rotated: they take -their values from the extremes of the x and y coordinates of the -rotated text. In the following example the -@code{outside-staff-priority} property for text is set to @code{#f} -to disable the automatic collision avoidance, which would push some -of the text too high. +@node Rotazione del testo +@unnumberedsubsubsec Rotazione del testo +@translationof Rotating markup + +Tutto il testo in un blocco @code{\markup} può essere ruotato di qualsiasi +angolo facendolo precedere dal comando @code{\rotate}. Il comando prende +due argomenti: l'angolo di rotazione in gradi in senso antiorario e il +testo da ruotare. Le estensioni del testo non sono ruotate: prendono il +loro valore dagli estremi delle coordinate x e y del testo ruotato. +Nell'esempio seguente la proprietà @code{outside-staff-priority} del testo +è impostata su @code{#f} per disabilitare l'elusione automatica delle collisioni, +che spingerebbe parte del testo troppo in alto. @lilypond[quote,fragment,verbatim] \override TextScript.outside-staff-priority = ##f -g4^\markup { \rotate #30 "a G" } -b^\markup { \rotate #30 "a B" } -des'^\markup { \rotate #30 "a D-Flat" } -fis'^\markup { \rotate #30 "an F-Sharp" } +g4^\markup { \rotate #30 "un Sol" } +b^\markup { \rotate #30 "un Si" } +des'^\markup { \rotate #30 "un Re bemolle" } +fis'^\markup { \rotate #30 "un Fa diesis" } @end lilypond + @node Ritocchi avanzati @section Ritocchi avanzati @translationof Advanced tweaks -This section discusses various approaches to fine tuning the -appearance of the printed score. +Questa sezione discute i vari approcci che permettono di migliorare +l'aspetto delle partiture. @menu -* Aligning objects:: -* Vertical grouping of grobs:: -* Modifying stencils:: -* Modifying shapes:: -* Modifying broken spanners:: -* Unpure-pure containers:: +* Allineamento degli oggetti:: +* Raggruppamento verticale dei grob:: +* Modifica degli stampi:: +* Modifica delle forme:: +* Modifica degli estensori spezzati:: +* Contenitori unpure-pure:: @end menu @seealso @@ -3810,44 +3594,47 @@ Guida al funzionamento interno: @rinternals{All layout objects}. -@node Aligning objects -@subsection Aligning objects - -Graphical objects which support the @code{self-alignment-interface} -and/or the @code{side-position-interface} can be aligned to a previously -placed object in a variety of ways. For a list of these objects, see -@rinternals{self-alignment-interface} and @rinternals{side-position-interface}. - -All graphical objects have a reference point, a horizontal extent and a -vertical extent. The horizontal extent is a pair of numbers -giving the displacements from the reference point of the left and -right edges, displacements to the left being negative. The vertical -extent is a pair of numbers giving the displacement from the reference -point to the bottom and top edges, displacements down being negative. - -An object's position on a staff is given by the values of the -@code{X-offset} and @code{Y-offset} properties. The value of -@code{X-offset} gives the displacement from the X coordinate of -the reference point of the parent object, and the value of -@code{Y-offset} gives the displacement from the center line of the -staff. The values of @code{X-offset} and @code{Y-offset} may -be set directly or may be set to be calculated by procedures in order -to achieve alignment with the parent object. - -@warning{Many objects have special positioning considerations which -cause any setting of @code{X-offset} or @code{Y-offset} to be -ignored or modified, even though the object supports the -@code{self-alignment-interface}. Overriding the @code{X-offset} -or @code{Y-offset} properties to a fixed value causes the respective -@code{self-alignment} property to be disregarded.} - -For example, an accidental can be repositioned vertically by setting -@code{Y-offset} but any changes to @code{X-offset} have no effect. - -Rehearsal marks may be aligned with breakable objects such as bar -lines, clef symbols, time signature symbols and key signatures. There -are special properties to be found in the @code{break-aligned-interface} -for positioning rehearsal marks on such objects. +@node Allineamento degli oggetti +@subsection Allineamento degli oggetti +@translationof Aligning objects + +Gli oggetti grafici che supportano l'interfaccia @code{self-alignment-interface} +e/o l'interfaccia @code{side-position-interface} possono essere allineati a un +oggetto disposto precedentemente in vari modi. L'elenco di questi oggetti è +consultabile in @rinternals{self-alignment-interface} e +@rinternals{side-position-interface}. + +Tutti gli oggetti grafici hanno un punto di riferimento, un'estensione +orizzontale e una verticale. L'estensione orizzontale è una coppia di +numeri che determina gli spostamenti dal punto di riferimento dei margini +sinistro e destro (gli spostamenti a sinistra sono negativi). L'estensione +verticale è una coppia di numeri che determina lo spostamento dal punto di +riferimento ai margini inferiore e superiore (gli spostamenti in giù sono +negativi). + +La posizione di un oggetto su un rigo è dato dai valori delle proprietà +@code{X-offset} e @code{Y-offset}. Il valore di @code{X-offset} dà lo +spostamento dalla coordinata X del punto di riferimento dell'oggetto genitore, +mentre il valore di @code{Y-offset} dà lo spostamento dalla linea centrale del +rigo. I valori di @code{X-offset} e @code{Y-offset} possono essere impostati +direttamente oppure possono essere impostati per essere calcolati dalle +procedure in modo da consentire un allineamento con l'oggetto genitore. + +@warning{Molti oggetti hanno speciali questioni di posizionamento che fanno +sì che qualsiasi impostazione di @code{X-offset} o @code{Y-offset} sia +ignorata o modificata, anche se l'oggetto supporta l'interfaccia +@code{self-alignment-interface}. Sovrascrivendo le proprietà @code{X-offset} +o @code{Y-offset} su un valore fisso la rispettiva proprietà +@code{self-alignment} verrà ignorata.} + +Per esempio, un'alterazione può essere riposizionata verticalmente impostando +@code{Y-offset} ma qualsiasi modifica di @code{X-offset} non avrà effetto. + +I segni di chiamata possono essere allineati con oggetti spezzabili come +stanghette, simboli di chiave, simboli di indicazione di tempo e armature +di chiave. Ci sono proprietà speciali elencate nell'interfaccia +@code{break-aligned-interface} per posizionare i segni di chiamata su tali +oggetti. @seealso Guida alla notazione: @@ -3857,19 +3644,20 @@ Estendere LilyPond: @rextend{Callback functions}. @menu -* Setting X-offset and Y-offset directly:: -* Using the side-position-interface:: -* Using the self-alignment-interface:: -* Using the break-alignable-interface:: +* Impostazione diretta di X-offset e Y-offset:: +* Uso di side-position-interface:: +* Uso di self-alignment-interface:: +* Uso di break-alignable-interface:: @end menu -@node Setting X-offset and Y-offset directly -@unnumberedsubsubsec Setting @code{X-offset} and @code{Y-offset} directly +@node Impostazione diretta di X-offset e Y-offset +@unnumberedsubsubsec Impostazione diretta di @code{X-offset} e @code{Y-offset} +@translationof Setting X-offset and Y-offset directly -Numerical values may be given to the @code{X-offset} and @code{Y-offset} -properties of many objects. The following example shows three -notes with the default fingering position and the positions with @code{X-offset} -and @code{Y-offset} modified. +Si possono assegnare valori numerici alle prietà @code{X-offset} e +@code{Y-offset} di molti oggetti. L'esempio seguente mostra tre note +con la posizione predefinita della diteggiatura e le posizioni con @code{X-offset} +e @code{Y-offset} modificate. @lilypond[verbatim,fragment,quote] a'-3 @@ -3885,117 +3673,118 @@ a' @c TODO write more -@node Using the side-position-interface -@unnumberedsubsubsec Using the @code{side-position-interface} +@node Uso di side-position-interface +@unnumberedsubsubsec Uso di @code{side-position-interface} +@translationof Using the side-position-interface -An object which supports the @code{side-position-interface} can be -placed next to its parent object so that -the specified edges of the two objects touch. The object may be -placed above, below, to the right or to the left of the parent. -The parent cannot be specified; it is determined by the order of -elements in the input stream. Most objects have the associated -note head as their parent. +Un oggetto che supporta l'interfaccia @code{side-position-interface} può +essere posizionato accanto al suo oggetto genitore in modo che i margini +indicati dei due oggetti si tocchino. L'oggetto può essere posizionato +sopra, sotto, a destra o a sinistra dell'oggetto genitore. Quest'ultimo +non può essere specificato; è invece determinato dall'ordine degli elementi +nel flusso di input. La maggior parte degli oggetti ha la testa di nota +associata come oggetto genitore. -The values of the @code{side-axis} and @code{direction} properties -determine where the object is to be placed, as follows: +I valori delle proprietà @code{side-axis} e @code{direction} determinano +dove l'oggetto deve essere posizionato, in questo modo: @c TODO add an example of each to the table @multitable @columnfractions .3 .3 .3 @headitem @code{side-axis} @tab @code{direction} @tab -@headitem property @tab property @tab Placement +@headitem proprietà @tab proprietà @tab Posizionamento -@item @code{0} @tab @code{-1} @tab left -@item @code{0} @tab @code{1} @tab right -@item @code{1} @tab @code{-1} @tab below -@item @code{1} @tab @code{1} @tab above +@item @code{0} @tab @code{-1} @tab sinistra +@item @code{0} @tab @code{1} @tab destra +@item @code{1} @tab @code{-1} @tab sotto +@item @code{1} @tab @code{1} @tab sopra @end multitable -When @code{side-axis} is @code{0}, @code{X-offset} should be set to -the procedure @code{ly:side-position-interface::x-aligned-side}. -This procedure will return the correct value of @code{X-offset} to -place the object to the left or right side of the parent according -to value of @code{direction}. +Quando @code{side-axis} è @code{0}, @code{X-offset} deve essere impostato +sulla procedura @code{ly:side-position-interface::x-aligned-side}. +Questa procedura restituirà il valore corretto di @code{X-offset} per +porre l'oggetto al lato sinistro o destro dell'oggetto genitore in base +al valore di @code{direction}. -When @code{side-axis} is @code{1}, @code{Y-offset} should be set to -the procedure @code{ly:side-position-interface::y-aligned-side}. -This procedure will return the correct value of @code{Y-offset} to -place the object to the top or bottom of the parent according -to value of @code{direction}. +Quando @code{side-axis} è @code{1}, @code{Y-offset} deve essere impostato +sulla procedura @code{ly:side-position-interface::y-aligned-side}. +Questa procedura restituirà il valore corretto di @code{Y-offset} per +porre l'oggetto sopra o sotto l'oggetto genitore in base al valore di +@code{direction}. @c TODO Add examples -@node Using the self-alignment-interface -@unnumberedsubsubsec Using the @code{self-alignment-interface} - -@subsubsubheading Self-aligning objects horizontally - -The horizontal alignment of an object which supports the -@code{self-alignment-interface} is controlled by the value of -the @code{self-alignment-X} property, provided the object's -@code{X-offset} property is set to -@code{ly:self-alignment-interface::x-aligned-on-self}. -@code{self-alignment-X} may be given any -real value, in units of half the total X extent of the -object. Negative values move the object to the right, positive -to the left. A value of @code{0} centers the object on the -reference point of its parent, a value of @w{@code{-1}} aligns the -left edge of the object on the reference point of its parent, -and a value of @code{1} aligns the right edge of the object on the -reference point of its parent. The symbols @code{LEFT}, -@code{CENTER}, and @code{RIGHT} may be used instead of the values -@w{@code{-1}}, @code{0}, and @code{1}, respectively. - -Normally the @code{\override} command would be used to modify the -value of @code{self-alignment-X}, but the @code{\tweak} command -can be used to separately align several annotations on a single -note: +@node Uso di self-alignment-interface +@unnumberedsubsubsec Uso di @code{self-alignment-interface} +@translationof Using the self-alignment-interface + +@subsubsubheading Autoallineamento orizzontale degli oggetti + +L'allineamento orizzontale di un oggetto che supporta l'interfaccia +@code{self-alignment-interface} è regolato dal valore della proprietà +@code{self-alignment-X}, purché la proprietà @code{X-offset} dell'oggetto +sia impostata su @code{ly:self-alignment-interface::x-aligned-on-self}. +A @code{self-alignment-X} può essere assegnato qualsiasi numero reale, +in unità di metà del totale dell'estensione X dell'oggetto. Valori +negativi spostano l'oggetto a destra, valori positivi lo spostano a +sinistra. Un valore di @code{0} centra l'oggetto sul punto di riferimento +del suo oggetto genitore, un valore di @w{@code{-1}} allinea il margine +sinistro dell'oggetto al punto di riferimento del suo genitore, e un +valore di @code{1} allinea il margine destro dell'oggetto al punto di +riferimento del suo genitore. I simboli @code{LEFT}, @code{CENTER} e +@code{RIGHT} possono essere usati al posto dei valori @w{@code{-1}}, +@code{0} e @code{1}, rispettivamente. + +Normalmente si usa il comando @code{\override} per modificare il valore +di @code{self-alignment-X}, ma il comando @code{\tweak} può essere utile +per allineare separatamente varie annotazioni su una singola nota: @lilypond[quote,verbatim,fragment] a' -\tweak self-alignment-X #-1 -^"left-aligned" +^"allineato a sinistra" -\tweak self-alignment-X #0 -^"center-aligned" +^"allineato al centro" -\tweak self-alignment-X #RIGHT -^"right-aligned" +^"allineato a destra" -\tweak self-alignment-X #-2.5 -^"aligned further to the right" +^"allineato ancora più a destra" @end lilypond -@subsubsubheading Self-aligning objects vertically - -Objects may be aligned vertically in an analogous way to aligning -them horizontally if the @code{Y-offset} property is set to -@code{ly:self-alignment-interface::y-aligned-on-self}. However, -other mechanisms are often involved in vertical alignment: the -value of @code{Y-offset} is just one variable taken into account. -This may make adjusting the value of some objects tricky. -The units are just half the vertical extent of the object, which -is usually quite small, so quite large numbers may be required. -A value of @w{@code{-1}} aligns the lower edge of the object with -the reference point of the parent object, a value of @code{0} -aligns the center of the object with the reference point of the -parent, and a value of @code{1} aligns the top edge of the object -with the reference point of the parent. The symbols @code{DOWN}, -@code{CENTER}, and @code{UP} may be substituted for @w{@code{-1}}, -@code{0}, and @code{1}, respectively. - -@subsubsubheading Self-aligning objects in both directions - -By setting both @code{X-offset} and @code{Y-offset}, an object may -be aligned in both directions simultaneously. - -The following example shows how to adjust a fingering mark so -that it nestles close to the note head. +@subsubsubheading Autoallineamento verticale degli oggetti + +Gli oggetti possono essere allineati verticalmente in un modo analogo +al loro allineamento orizzontale se la proprietà @code{Y-offset} è +impostata su @code{ly:self-alignment-interface::y-aligned-on-self}. +Tuttavia altri meccanismi sono spesso implicati nell'allineamento +verticale: il valore di @code{Y-offset} è solo una delle variabili +da prendere in considerazione. Ciò potrebbe rendere complicato +l'aggiustamento del valore di alcuni oggetti. +Le unità sono soltanto la metà dell'estensione verticale dell'oggetto, che +è di solito piuttosto piccola, dunque potrebbero essere necessari grossi +numeri. Un valore di @w{@code{-1}} allinea il margine inferiore dell'oggetto +al punto di riferimento dell'oggetto genitore, un valore di @code{0} +allinea il centro dell'oggetto al punto di riferimento del genitore, +e un valore di @code{1} allinea il margine superiore dell'oggetto +al punto di riferimento del genitore. I simboli @code{DOWN}, +@code{CENTER} e @code{UP} possono essere usati al posto di @w{@code{-1}}, +@code{0} e @code{1}, rispettivamente. + +@subsubsubheading Autoallineamento degli oggetti in entrambe le direzioni + +Impostando sia @code{X-offset} che @code{Y-offset}, un oggetto può essere +allineato in entrambe le direzioni simultaneamente. + +L'esempio seguente mostra come aggiustare un segno di diteggiatura in modo +che stia vicino alla testa di nota. @lilypond[quote,verbatim,fragment] a' --\tweak self-alignment-X #0.5 % move horizontally left +-\tweak self-alignment-X #0.5 % sposta orizzontalmente a sinistra -\tweak Y-offset #ly:self-alignment-interface::y-aligned-on-self --\tweak self-alignment-Y #-1 % move vertically up --3 % third finger +-\tweak self-alignment-Y #-1 % sposta verticalmente in su +-3 % terzo dito @end lilypond @ignore @@ -4027,36 +3816,37 @@ example shows the difference: @c TODO The align-interface, BassFigureAlignment and VerticalAlignment -@node Using the break-alignable-interface -@unnumberedsubsubsec Using the @code{break-alignable-interface} +@node Uso di break-alignable-interface +@unnumberedsubsubsec Uso di @code{break-alignable-interface} +@translationof Using the break-alignable-interface -@cindex align to objects +@cindex allineamento sugli oggetti @cindex break-align-symbols -Rehearsal marks and bar numbers may be aligned with notation -objects other than bar lines. These objects include @code{ambitus}, -@code{breathing-sign}, @code{clef}, @code{custos}, @code{staff-bar}, -@code{left-edge}, @code{key-cancellation}, @code{key-signature}, and +I segni di chiamata e i numeri di battuta possono essere allineati con oggetti +della notazione diversi dalle stanghette. Questi oggetti comprendono +@code{ambitus}, @code{breathing-sign}, @code{clef}, @code{custos}, @code{staff-bar}, +@code{left-edge}, @code{key-cancellation}, @code{key-signature} e @code{time-signature}. -Each type of object has its own default reference point, to which -rehearsal marks are aligned: +Ogni tipo di oggetto ha il suo punto di riferimento predefinito, al quale i +segni di chiamata sono allineati: @lilypond[verbatim,quote,fragment] -% The rehearsal mark will be aligned to the right edge of the Clef +% Il segno di chiamata sarà allineato al margine destro della chiave \override Score.RehearsalMark.break-align-symbols = #'(clef) \key a \major \clef treble \mark "↓" e'1 -% The rehearsal mark will be aligned to the left edge of the Time Signature +% Il segno di chiamata sarà allineato al margine sinistro dell'indicazione di tempo \override Score.RehearsalMark.break-align-symbols = #'(time-signature) \key a \major \clef treble \time 3/4 \mark "↓" e'2. -% The rehearsal mark will be centered above the Breath Mark +% Il segno di chiamata sarà centrato sul segno di respiro \override Score.RehearsalMark.break-align-symbols = #'(breathing-sign) \key a \major \clef treble @@ -4066,30 +3856,30 @@ e'1 \mark "↓" @end lilypond -A list of possible target alignment objects may be specified. If -some of the objects are invisible at that point due to the setting -of @code{break-visibility} or the explicit visibility settings for -keys and clefs, the rehearsal mark or bar number is aligned to the -first object in the list which is visible. If no objects in the -list are visible the object is aligned to the bar line. If the bar -line is invisible the object is aligned to the place where the bar -line would be. +Si può specificare un elenco dei possibili oggetti a cui allineare. Se +alcuni oggetti sono invisibili in quel punto a causa dell'impostazione +di @code{break-visibility} o di impostazioni esplicite della visibilità +di tonalità e chiavi, il segno di chiamata o il numero di battuta viene +allineato al primo oggetto dell'elenco che è visibile. Se nessun oggetto +dell'elenco è visibile, l'oggetto è allineato alla stanghetta. Se la +stanghetta è invisibile, l'oggetto viene allineato al punto in cui si +dovrebbe trovare la stanghetta. @lilypond[verbatim,quote,fragment] -% The rehearsal mark will be aligned to the right edge of the Key Signature +% Il segno di chiamata sarà allineato al margine destro dell'armatura di chiave \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) \key a \major \clef treble \mark "↓" e'1 -% The rehearsal mark will be aligned to the right edge of the Clef +% Il segno di chiamata sarà allineato al margine destro della chiave \set Staff.explicitKeySignatureVisibility = #all-invisible \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) \key a \major \clef bass \mark "↓" gis,1 -% The rehearsal mark will be centered above the Bar Line +% Il segno di chiamata sarà centrato sopra la stanghetta \set Staff.explicitKeySignatureVisibility = #all-invisible \set Staff.explicitClefVisibility = #all-invisible \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) @@ -4099,43 +3889,44 @@ gis,1 e'1 @end lilypond -The alignment of the rehearsal mark relative to the notation object -can be changed, as shown in the following example. In a score with -multiple staves, this setting should be done for all the staves. +L'allineamento del segno di chiamata relativo all'oggetto della notazione +può essere modificato, come evidenziato nell'esempio seguente. In una +partitura con molteplici righi, questa impostazione deve essere fatta per +tutti i righi. @lilypond[verbatim,quote,fragment] -% The RehearsalMark will be aligned with the right edge of the Key Signature +% Il segno di chiamata sarà allineato al margine destro dell'armatura di chiave \override Score.RehearsalMark.break-align-symbols = #'(key-signature) \key a \major \clef treble \time 4/4 \mark "↓" e'1 -% The RehearsalMark will be centered above the Key Signature +% Il segno di chiamata sarà centrato sopra l'armatura di chiave \once \override Score.KeySignature.break-align-anchor-alignment = #CENTER \mark "↓" \key a \major e'1 -% The RehearsalMark will be aligned with the left edge of the Key Signature +% Il segno di chiamata sarà allineato al margine sinistro dell'armatura di chiave \once \override Score.KeySignature.break-align-anchor-alignment = #LEFT \key a \major \mark "↓" e'1 @end lilypond -The rehearsal mark can also be offset to the right or left of the left -edge by an arbitrary amount. The units are staff-spaces: +Il segno di chiamata può anche essere spostato a destra o a sinistra del +margine sinistro di una quantità arbitraria. Le unità sono gli spazi rigo: @lilypond[verbatim,quote,fragment] -% The RehearsalMark will be aligned with the left edge of the Key Signature -% and then shifted right by 3.5 staff-spaces +% Il segno di chiamata sarà allineato al margine sinistro dell'armatura di chiave +% e poi spostato a destra di 3.5 spazi rigo \override Score.RehearsalMark.break-align-symbols = #'(key-signature) \once \override Score.KeySignature.break-align-anchor = #3.5 \key a \major \mark "↓" e'1 -% The RehearsalMark will be aligned with the left edge of the Key Signature -% and then shifted left by 2 staff-spaces +% Il segno di chiamata sarà allineato al margine sinistro dell'armatura di chiave +% e poi spostato a sinistra di 2 spazi rigo \once \override Score.KeySignature.break-align-anchor = #-2 \key a \major \mark "↓" @@ -4143,44 +3934,45 @@ e'1 @end lilypond -@node Vertical grouping of grobs -@subsection Vertical grouping of grobs +@node Raggruppamento verticale dei grob +@subsection Raggruppamento verticale dei grob +@translationof Vertical grouping of grobs @c TODO Expand this section -The VerticalAlignment and VerticalAxisGroup grobs work together. -VerticalAxisGroup groups together different grobs like Staff, Lyrics, -etc. VerticalAlignment then vertically aligns the different grobs -grouped together by VerticalAxisGroup. There is usually only one -VerticalAlignment per score but every Staff, Lyrics, etc. has its own -VerticalAxisGroup. +I grob VerticalAlignment e VerticalAxisGroup lavorano insieme. +VerticalAxisGroup raggruppa insieme diversi grob come Staff, Lyrics, +etc. VerticalAlignment quindi allinea verticalmente i diversi grob +raggruppati insieme da VerticalAxisGroup. Di solito è presente un +solo VerticalAlignment per partitura ma ogni Staff, Lyrics, etc. ha +il suo VerticalAxisGroup. -@node Modifying stencils -@subsection Modifying stencils +@node Modifica degli stampi +@subsection Modifica degli stampi +@translationof Modifying stencils -All layout objects have a @code{stencil} property which is part of -the @code{grob-interface}. By default, this property is usually -set to a function specific to the object that is tailor-made to -render the symbol which represents it in the output. For example, -the standard setting for the @code{stencil} property of the -@code{MultiMeasureRest} object is @code{ly:multi-measure-rest::print}. +Tutti gli oggetti della formattazione hanno una proprietà @code{stencil} che +fa parte dell'interfaccia @code{grob-interface}. Per impostazione predefinita, +questa proprietà è solitamente impostata su una funzione specifica per l'oggetto +per cui è concepita in modo da creare il simbolo che lo rappresenta nell'output. +Per esempio, l'impostazione standard della proprietà @code{stencil} dell'oggetto +@code{MultiMeasureRest} è @code{ly:multi-measure-rest::print}. -The standard symbol for any object can be replaced by modifying the -@code{stencil} property to reference a different, specially-written, -procedure. This requires a high level of knowledge of the internal -workings of LilyPond, but there is an easier way which can often -produce adequate results. +Il simbolo standard di qualsiasi oggetto può essere sostituito modificando la +proprietà @code{stencil} perché faccia riferimento a una procedura diversa +e scritta appositamente. Ciò richiede una profonda conoscenza del funzionamento +interno di LilyPond, ma esiste un modo più semplice che spesso è in grado di +produrre risultati accettabili. -This is to set the @code{stencil} property to the procedure which -prints text -- @code{ly:text-interface::print} -- and to add a -@code{text} property to the object which is set to contain the -markup text which produces the required symbol. Due to the -flexibility of markup, much can be achieved -- see in particular -@ref{Graphic notation inside markup}. +Si tratta di impostare la proprietà @code{stencil} sulla procedura che stampa +testo -- @code{ly:text-interface::print} -- e aggiungere una proprietà +@code{text} all'oggetto impostato per contenere il testo markup che produce +il simbolo richiesto. Grazie alla flessibilità di markup, si può ottenere +molto -- vedi in particolare @ref{Graphic notation inside markup}. -The following example demonstrates this by changing the note head -symbol to a cross within a circle. +L'esempio seguente illustra questa procedura cambiando il simbolo della testa +di nota con una croce iscritta in un cerchio. @lilypond[verbatim,quote] XinO = { @@ -4196,8 +3988,8 @@ XinO = { } @end lilypond -Any of the glyphs in the feta Font can be supplied to the -@code{\musicglyph} markup command -- see @ref{The Feta font}. +Qualsiasi glifo del tipo di carattere Feta può essere passato al comando +markup @code{\musicglyph} -- vedi @ref{The Feta font}. @c TODO Add inserting eps files or ref to later @@ -4211,65 +4003,66 @@ Guida alla notazione: @ref{The Feta font}. -@node Modifying shapes -@subsection Modifying shapes +@node Modifica delle forme +@subsection Modifica delle forme +@translationof Modifying shapes @menu -* Modifying ties and slurs:: +* Modifica di legature di valore e di portamento:: @end menu -@node Modifying ties and slurs -@unnumberedsubsubsec Modifying ties and slurs +@node Modifica di legature di valore e di portamento +@unnumberedsubsubsec Modifica di legature di valore e di portamento +@translationof Modifying ties and slurs -@cindex slurs, modifying -@cindex ties, modifying -@cindex Bézier curves, control points -@cindex control points, Bézier curves +@cindex legature di portamento, modificare +@cindex legature di valore, modificare +@cindex curve Bézier, punti di controllo +@cindex punti di controllo, curve Bézier +@cindex Bézier, curve, punti di controllo -@code{Tie}s, @code{Slur}s, @code{PhrasingSlur}s, -@code{LaissezVibrerTie}s and @code{RepeatTie}s are all drawn as -third-order Bézier curves. If the shape of the tie or slur which -is calculated automatically is not optimum, the shape may be -modified manually in two ways: +Le legature, siano esse di valore (@code{Tie}), di portamento (@code{Slur}), +di frase (@code{PhrasingSlur}), di laisser-vibrer (@code{LaissezVibrerTie}) +o di valore ripetute (@code{RepeatTie}), sono tutte disegnate come curve Bézier +di terzo ordine. Se la forma della legatura di valore o di frase che viene +calcolata automaticamente non è ottimale, può essere modificata manualmente +in due modi: @enumerate a @item -by specifying the displacements to be made to the control points -of the automatically calculated Bézier curve, or +specificando di quanto spostare i punti di controllo della curva +Bézier calcolata automaticamente, o @item -by explicitly specifying the positions of the four control points -required to define the wanted curve. +specificando esplicitamente le posizioni dei quattro punti di controllo +richiesti per definire la curva desiderata. @end enumerate -Both methods are explained below. The first method is more suitable -if only slight adjustments to the curve are required; the second may -be better for creating curves which are related to just a single -note. - -@subsubsubheading Cubic Bézier curves - -Third-order or cubic Bézier curves are defined by four control -points. The first and fourth control points are precisely the -starting and ending points of the curve. The intermediate two -control points define the shape. Animations showing how the curve -is drawn can be found on the web, but the following description -may be helpful. The curve starts from the first control point -heading directly towards the second, gradually bending over to -head towards the third and continuing to bend over to head towards -the fourth, arriving there travelling directly from the third -control point. The curve is entirely contained in the -quadrilateral defined by the four control points. Translations, -rotations and scaling of the control points all result in exactly -the same operations on the curve. - -@subsubsubheading Specifying displacements from current control points - -@cindex shaping slurs and ties +Entrambi i metodi sono spiegati di seguito. Il primo metodo è più adatto +se sono necessari solo piccoli aggiustamenti alla curva; il secondo può +essere migliore per creare curve che riguardano soltanto una singola nota. + +@subsubsubheading Curve Bézier cubiche + +Le curve Bézier di terzo ordine o cubiche sono definite da quattro punti +di controllo. Il primo e il quarto punto di controllo sono esattamente +i punti di inizio e fine della curva. I due punti intermedi definiscono +la forma. Sul web si trovano delle animazioni che mostrano come viene +disegnata la curva, ma la seguente descrizione può comunque essere utile. +La curva inizia dal primo punto di controllo e si dirige verso il secondo, +piegandosi gradualmente per arrivare al terzo e poi al quarto, arrivando +lì direttamente dal terzo punto di controllo. La curva è contenuta +interamente nel quadrilatero definito dai quattro punti di controllo. +Traslazioni, rotazioni e ridimensionamenti dei punti di controllo risultano +tutti esattamente nelle stesse operazioni sulla curva. + +@subsubsubheading Specificare gli spostamenti dai punti di controllo correnti + +@cindex disegnare legature di valore e di portamento @funindex \shape -In this example the automatic placement of the tie is not optimum, -and @code{\tieDown} would not help. +In questo esempio la disposizone automatica della legatura di valore non è +ottimale, e @code{\tieDown} non sarebbe di aiuto. @lilypond[verbatim,quote] << @@ -4279,37 +4072,37 @@ and @code{\tieDown} would not help. >> @end lilypond -Adjusting the control points of the tie with @code{\shape} allows -the collisions to be avoided. +Cambiando i punti di controllo della legatura con @code{\shape} consente di +evitare le collisioni. -The syntax of @code{\shape} is +La sintassi di @code{\shape} è @example -[-]@code{\shape} @var{displacements} @var{item} +[-]@code{\shape} @var{spostamenti} @var{elemento} @end example -This will reposition the control-points of @var{item} by the amounts -given by @var{displacements}. The @var{displacements} argument is a -list of number pairs or a list of such lists. Each element of a pair -represents the displacement of one of the coordinates of a -control-point. If @var{item} is a string, the result is -@code{\once\override} for the specified grob type. If @var{item} is -a music expression, the result is the same music expression with an -appropriate tweak applied. - -In other words, the @code{\shape} function can act as either a -@code{\once\override} command or a @code{\tweak} command depending -on whether the @var{item} argument is a grob name, like @qq{Slur}, -or a music expression, like @qq{(}. The @var{displacements} argument -specifies the displacements of the four control points as a list of -four pairs of (dx . dy) values in units of staff-spaces (or a list -of such lists if the curve has more than one segment). - -The leading hyphen is required if and only if the @code{\tweak} form -is being used. - -So, using the same example as above and the @code{\once\override} -form of @code{\shape}, this will raise the tie by half a staff-space: +Questo comando riposiziona i punti di controllo di @var{elemento} di quanto +indicato da @var{spostamenti}. L'argomento @var{spostamenti} è una lista +di coppie di numeri o una lista di tali liste. Ogni elemento di una coppia +rappresenta lo spostamento di una delle coordinate di un punto di controllo. +Se @var{elemento} è una stringa, il risultato è @code{\once\override} per il +tipo di grob specificato. Se @var{elemento} è un'espressione musicale, il +risultato è la stessa espressione musicale con un'appropriata modifica. + +In altre parole, la funzione @code{\shape} può comportarsi come un comando +@code{\once\override} o un comando @code{\tweak} a seconda che l'argomento +@var{elemento} sia il nome di un grob, come @qq{Slur}, o un'espressione +musicale, come @qq{(}. L'argomento @var{spostamenti} specifica gli +sfasamenti dei quattro punti di controllo nella forma di una lista di +quattro coppie di valori (dx . dy) in unità di spazi rigo (o una lista +di tali liste se la curva ha più di un segmento). + +Il trattino iniziale è richiesto se e solo se si usa la forma con +@code{\tweak}. + +Dunque usando lo stesso esempio precedente e la forma @code{\once\override} +di @code{\shape}, il seguente comando alzerà la legatura di valore di +metà spazio rigo: @lilypond[verbatim,quote] << @@ -4322,9 +4115,9 @@ form of @code{\shape}, this will raise the tie by half a staff-space: >> @end lilypond -This positioning of the tie is better, but maybe it should be raised -more in the center. The following example does this, this time using -the alternative @code{\tweak} form: +Questo posizionamento è migliore, ma forse dovrebbe essere alzato di più +al centro, come viene fatto nel prossimo esempio, dove stavolta si usa +la forma alternativa @code{\tweak}: @lilypond[verbatim,quote] << @@ -4336,9 +4129,9 @@ the alternative @code{\tweak} form: >> @end lilypond -Changes to the horizontal positions of the control points may be made -in the same way, and two different curves starting at the same -musical moment may also be shaped: +Le modifiche alle posizioni orizzontali dei punti di controllo funzionano +nello stesso modo. Si possono ridefinire anche due curve diverse che +iniziano nello stesso momento musicale: @lilypond[verbatim,quote,ragged-right] \relative { @@ -4349,12 +4142,12 @@ musical moment may also be shaped: } @end lilypond -The @code{\shape} function can also displace the control points of -curves which stretch across line breaks. Each piece of the broken -curve can be given its own list of offsets. If changes to a -particular segment are not needed, the empty list can serve as a -placeholder. In this example the line break makes the single slur -look like two: +La funzione @code{\shape} può sostituire anche i punti di controllo di +curve che si estendono oltre le interruzioni di linea. A ogni pezzo +della curva spezzata può essere assegnata la sua lista di spostamenti. +Se non sono necessarie delle modifiche a un segmento in particolare, +la lista vuota può servire come segnaposto. In questo esempio l'interruzione +di linea fa sembrare doppia la legatura di portamento singola: @lilypond[verbatim,quote,ragged-right] \relative { @@ -4364,12 +4157,12 @@ look like two: } @end lilypond -Changing the shapes of the two halves of the slur makes it clearer -that the slur continues over the line break: +Cambiando le forme delle due metà della legatura di portamento diventa più +chiaro che la legatura continua oltre l'interruzione di linea: @lilypond[verbatim,quote,ragged-right] -% () may be used as a shorthand for ((0 . 0) (0 . 0) (0 . 0) (0 . 0)) -% if any of the segments does not need to be changed +% () può essere usato come una scorciatoia per ((0 . 0) (0 . 0) (0 . 0) (0 . 0)) +% nel caso in cui uno dei segmenti non necessiti di modifiche \relative c' { \shape #'( (( 0 . 0) (0 . 0) (0 . 0) (0 . 1)) @@ -4381,9 +4174,8 @@ that the slur continues over the line break: } @end lilypond -If an S-shaped curve is required the control points must always be -adjusted manually --- LilyPond will never select such shapes -automatically. +Se è richiesta una curva a forma di S, bisogna sempre definire manualmente i +punti di controllo --- LilyPond non sceglierà mai tali forme automaticamente. @lilypond[verbatim,quote] \relative c'' { @@ -4393,24 +4185,24 @@ automatically. } @end lilypond -@subsubsubheading Specifying control points explicitly - -The coordinates of the Bézier control points are specified in units -of staff-spaces. The X@tie{}coordinate is relative to the reference -point of the note to which the tie or slur is attached, and the -Y@tie{}coordinate is relative to the staff center line. The -coordinates are specified as a list of four pairs of decimal numbers -(reals). One approach is to estimate the coordinates of the two -end points, and then guess the two intermediate points. The optimum -values are then found by trial and error. Be aware that these values -may need to be manually adjusted if any further changes are made to -the music or the layout. - -One situation where specifying the control points explicitly is -preferable to specifying displacements is when they need to be -specified relative to a single note. Here is an example of this. -It shows one way of indicating a slur extending into alternative -sections of a volta repeat. +@subsubsubheading Specificare i punti di controllo esplicitamente + +Le coordinate dei punti di controllo della curva di Bézier sono specificate +in unità di spazi rigo. La coordinata@tie{}X è relativa al punto di +riferimento della nota a cui la legatura si attacca, mentre la +coordinata@tie{}Y è relativa alla linea centrale del rigo. Le coordinate +sono specificate come una lista di quattro coppie di numeri decimali +(reali). Un possibile approccio consiste nel valutare prima le coordinate +delle due estremità e poi indovinare i due punti intermedi. I valori +ottimali vengono quindi trovati per tentativi. Tenere conto del fatto +che, in caso di ulteriori modifiche alla musica o alla formattazione, questi +valori potrebbero dover essere nuovamente cambiati manualmente. + +Una situazione in cui è preferibile specificare i punti di controllo +esplicitamente invece di specificarne gli spostamenti è quella in cui +devono essere indicati per una singola nota. Il prossimo esempio +mostra un modo in cui rappresentare una legatura di portamento che +si estende nelle sezioni alternative di una volta. @lilypond[verbatim,quote] \relative { @@ -4420,14 +4212,14 @@ sections of a volta repeat. { g2) d } { g2 - % create a slur and move it to a new position - % the <> is just an empty chord to carry the slur termination + % crea una legatura di portamento e spostala in una nuova posizione + % il <> è solamente un accordo vuoto che serve a terminare la legatura -\tweak control-points #'((-2 . 3.8) (-1 . 3.9) (0 . 4) (1 . 3.4)) ( <> ) f, } { e'2 - % create a slur and move it to a new position + % crea una legatura di portamento e spostala in una nuova posizione -\tweak control-points #'((-2 . 3) (-1 . 3.1) (0 . 3.2) (1 . 2.4)) ( <> ) f, } @@ -4436,38 +4228,40 @@ sections of a volta repeat. @end lilypond @knownissues -It is not possible to modify shapes of ties or slurs by changing -the @code{control-points} property if there are multiple ties or slurs -at the same musical moment -- the @code{\tweak} command will also not -work in this case. However, the @code{tie-configuration} property of -@code{TieColumn} can be overridden to set start line and direction as -required. +Non è possibile modificare le forme di legature di valore e di portamento +cambiando la proprietà @code{control-points} se ci sono molteplici legature +nello stesso momento musicale -- anche il comando @code{\tweak} non funzionerà +in questo caso. Tuttavia si può sovrascrivere la proprietà +@code{tie-configuration} di @code{TieColumn} per impostare l'inizio della linea +e la direzione come desiderato. @seealso Guida al funzionamento interno: @rinternals{TieColumn}. -@node Modifying broken spanners -@subsection Modifying broken spanners +@node Modifica degli estensori spezzati +@subsection Modifica degli estensori spezzati +@translationof Modifying broken spanners @menu -* Using alterBroken:: +* Uso di alterBroken:: @end menu -@node Using alterBroken -@unnumberedsubsubsec Using @code{\alterBroken} +@node Uso di alterBroken +@unnumberedsubsubsec Uso di @code{\alterBroken} +@translationof Using alterBroken -@cindex spanners, modifying -@cindex broken spanners, modifying +@cindex estensori, modificare gli +@cindex estensori spezzati, modificare gli @funindex \alterBroken -When a spanner crosses a line break or breaks, each piece -inherits the attributes of the original spanner. Thus, ordinary -tweaking of a broken spanner applies the same modifications to -each of its segments. In the example below, overriding -@code{thickness} affects the slur on either side of the line -break. +Quando un estensore va a capo o si spezza, ciascun pezzo eredita gli +attributi dell'estensore originario. Dunque la normale modifica di +un estensore spezzato applica le stesse modifiche a ciascuno dei +suoi segmenti. Nell'esempio successivo, la sovrascrittura di +@code{thickness} agisce sulla legatura di portamento su entrambi +i lati rispetto all'interruzione di linea. @lilypond[verbatim,quote,ragged-right] \relative c'' { @@ -4479,34 +4273,33 @@ break. } @end lilypond -Independently modifying the appearance of individual pieces -of a broken spanner is possible with the @code{\alterBroken} -command. This command can produce either an @code{\override} -or a @code{\tweak} of a spanner property. +È possibile modificare indipendentemente l'aspetto di singoli pezzi +di un estensore spezzato col comando @code{\alterBroken}. Questo +può generare sia un @code{\override} che un @code{\tweak} della +proprietà di un estensore. -The syntax for @code{\alterBroken} is +La sintassi di @code{\alterBroken} è: @example -[-]@code{\alterBroken} @var{property} @var{values} @var{item} +[-]@code{\alterBroken} @var{proprietà} @var{valori} @var{elemento} @end example -The argument @var{values} is a list of values, one for each -broken piece. If @var{item} is a grob name like @code{Slur} or -@code{Staff.PianoPedalBracket}, the result is an @code{\override} -of the specified grob type. If @var{item} is a music expression -such as @qq{(} or @qq{[} the result is the same music expression -with an appropriate tweak applied. +L'argomento @var{valori} è una lista di valori, uno per ogni pezzo +spezzato. Se @var{elemento} è il nome di un grob come @code{Slur} o +@code{Staff.PianoPedalBracket}, il risultato è un @code{\override} +del tipo di grob specificato. Se @var{elemento} è un'espressione +musicale come @qq{(} o @qq{[}, il risultato è la stessa espressione +musicale modificata da un comando @code{\tweak}. -The leading hyphen must be used with the @code{\tweak} form. Do -not add it when @code{\alterBroken} is used as an -@code{\override}. +Il trattino iniziale è richiesto nella forma @code{\tweak}. Non aggiungerlo +se @code{\alterBroken} viene usato come un @code{\override}. -In its @code{\override} usage, @code{\alterBroken} may be -prefaced by @code{\once} or @code{\temporary} and reverted by -using @code{\revert} with @var{property}. +Nel suo uso come @code{\override}, @code{\alterBroken} può essere +preceduto da @code{\once} o @code{\temporary} e ripristinato con +@code{\revert} seguito da @var{proprietà}. -The following code applies an independent @code{\override} to -each of the slur segments in the previous example: +Il codice seguente applica un @code{\override} indipendente a ciascun +segmento della legatura di portamento dell'esempio precedente: @lilypond[verbatim,quote,ragged-right] \relative c'' { @@ -4518,17 +4311,16 @@ each of the slur segments in the previous example: } @end lilypond -The @code{\alterBroken} command may be used with any spanner -object, including @code{Tie}, @code{PhrasingSlur}, @code{Beam} -and @code{TextSpanner}. For example, an editor preparing a -scholarly edition may wish to indicate the absence of part of a -phrasing slur in a source by dashing only the segment which has -been added. The following example illustrates how this can be -done, in this case using the @code{\tweak} form of the command: +Il comando @code{\alterBroken} può essere usato con qualsiasi oggetto estensore, +inclusi @code{Tie}, @code{PhrasingSlur}, @code{Beam} e @code{TextSpanner}. Per +esempio, un editor che stia preparando un'edizione colta potrebbe voler indicare +l'assenza di parte di una legatura di frase in un manoscritto tratteggiando +solo il segmento che è stato aggiunto. L'esempio seguente mostra come farlo, +in questo caso usando la forma @code{\tweak} del comando: @lilypond[verbatim,quote,ragged-right] -% The empty list is conveniently used below, because it is the -% default setting of dash-definition, resulting in a solid curve. +% Si usa per convenienza la lista vuota, perché è l'impostazione +% predefinita di dash-definition, producendo così una curva continua. \relative { c''2-\alterBroken dash-definition #'(() ((0 1.0 0.4 0.75))) \(e \break @@ -4536,88 +4328,90 @@ done, in this case using the @code{\tweak} form of the command: } @end lilypond -It is important to understand that @code{\alterBroken} will set -each piece of a broken spanner to the corresponding value in -@var{values}. When there are fewer values than pieces, any -additional piece will be assigned the empty list. This may lead -to undesired results if the layout property is not set to the -empty list by default. In such cases, each segment should be -assigned an appropriate value. +È importante comprendere che @code{\alterBroken} imposterà ogni pezzo di +un estensore spezzato sul valore corrispondente specificato in +@var{valori}. Quando il numero di valori è inferiore a quello dei pezzi, +a qualsiasi pezzo ulteriore sarà assegnata una lista vuota. Ciò potrebbe +portare a risultati indesiderati se la proprietà di formattazione non è +impostata su una lista vuota per impostazione predefinita. In tali casi, +a ogni segmento deve essere assegnato un valore appropriato. @knownissues -Line breaks may occur in different places following changes in -layout. Settings chosen for @code{\alterBroken} may be unsuitable -for a spanner that is no longer broken or is split into more -segments than before. Explicit use of @code{\break} can guard -against this situation. - -The @code{\alterBroken} command is ineffective for spanner -properties accessed before line-breaking such as -@code{direction}. +Le interruzioni di linea possono verificarsi in punti diversi in seguito +a modifiche della formattazione. Le impostazioni scelte per @code{\alterBroken} +potrebbero non essere più adatte per un estensore che non va più a capo o è +diviso in più segmenti di prima. Per proteggersi da questa situazione +conviene fare un uso esplicito di @code{\break}. + +Il comando @code{\alterBroken} non funziona nel caso di proprietà dell'estensore +a cui si accede prima di line-breaking, come @code{direction}. @seealso Estendere LilyPond: @rextend{Difficult tweaks}. -@node Unpure-pure containers -@subsection Unpure-pure containers - -@cindex Scheme, pure containers -@cindex Scheme, unpure containers -@cindex pure containers, Scheme -@cindex unpure containers, Scheme -@cindex horizontal spacing, overriding - -Unpure-pure containers are useful for overriding @emph{Y-axis} spacing -calculations - specifically @code{Y-offset} and @code{Y-extent} - with a -Scheme function instead of a literal (i.e. a number or pair). - -For certain grobs, the @code{Y-extent} is based on the @code{stencil} -property, overriding the stencil property of one of these will -require an additional @code{Y-extent} override with an unpure-pure -container. When a function overrides a @code{Y-offset} and/or -@code{Y-extent} it is assumed that this will trigger line breaking -calculations too early during compilation. So the function is not -evaluated at all (usually returning a value of @samp{0} or -@samp{'(0 . 0)}) which can result in collisions. A @q{pure} function -will not affect properties, objects or grob suicides and therefore will -always have its Y-axis-related evaluated correctly. - -Currently, there are about thirty functions that are already considered -@q{pure} and Unpure-pure containers are a way to set functions not on -this list as @q{pure}. The @q{pure} function is evaluated @emph{before} -any line-breaking and so the horizontal spacing can be adjusted -@q{in time}. The @q{unpure} function is then evaluated @emph{after} -line breaking. - -@warning{As it is difficult to always know which functions are on this -list we recommend that any @q{pure} functions you create do not use -@code{Beam} or @code{VerticalAlignment} grobs.} - -An unpure-pure container is constructed as follows; +@node Contenitori unpure-pure +@subsection Contenitori unpure-pure +@translationof Unpure-pure containers + +@cindex Scheme, contenitori puri +@cindex Scheme, contenitori impuri +@cindex pure-container, Scheme +@cindex unpure-container, Scheme +@cindex spaziatura orizzontale, sovrascrivere la + +I contenitori unpure-pure (impuri-puri) sono utili per sovrascrivere i calcoli +di spaziatura dell'@emph{asse Y} - in particolare @code{Y-offset} e +@code{Y-extent} - tramite una funzione Scheme invece che con un numero o una +coppia di numeri. + +Per alcuni grob, il cui @code{Y-extent} è basato sulla proprietà @code{stencil}, +sovrascrivere tale proprietà renderà necessario un'ulteriore sovrascrittura di +@code{Y-extent} tramite un contenitore unpure-pure. +Quando una funzione sovrascrive @code{Y-offset} e/o @code{Y-extent}, si presume +che ciò innescherà il calcolo delle interruzioni di linea troppo presto durante +la compilazione. Dunque la funzione non viene affatto calcolata (e di solito +restituirà un valore di @samp{0} o @samp{'(0 . 0)}) e ciò può causare delle +collisioni. Una funzione @q{pure} (pura) non avrà effetto su proprietà, +oggetti o @qq{suicidi} dei grob e quindi tutto ciò che è collegato al suo +asse@tie{}Y sarà sempre calcolato correttamente. + +Attualmente, ci sono circa trenta funzioni che sono già considerate +@q{pure} e i contenitori unpure-pure sono un modo per impostare le +funzioni non ancora presenti in questa lista come @q{pure}. La funzione +@q{pure} viene calcolata @emph{prima} di qualsiasi interruzione di linea +e quindi la spaziatura orizzontale può essere regolata @qq{in tempo}. La +funzione @q{unpure} viene invece calcolata @emph{dopo} le interruzioni +di linea. + +@warning{Dato che è difficile sapere sempre quali funzioni si trovano in +questa lista, consigliamo a chi crea funzioni @q{pure} di non usare i +grob @code{Beam} o @code{VerticalAlignment}.} + +Un contenitore unpure-pure viene costruito nel modo seguente: @code{(ly:make-unpure-pure-container f0 f1)} -where @code{f0} is a function taking @var{n} arguments (@var{n >= 1}) -and the first argument must always be the grob. This is the function -that gives the actual result. @var{f1} is the function being labeled -as @q{pure} that takes @var{n + 2} arguments. Again, the first argument -must always still be the grob but the second and third are @q{start} -and @q{end} arguments. +dove @code{f0} è una funzione che prende @var{n} argomenti (@var{n >= 1}) +e il primo argomento deve sempre essere il grob. Questa è la funzione che +restituisce il vero risultato. @var{f1} è la funzione etichettata come +@q{pure} che prende @var{n + 2} argomenti. Di nuovo, il primo argomento +deve sempre essere il grob, ma il secondo e il terzo sono il punto di +partenza, @q{start}, e quello di arrivo, @q{end}. -@var{start} and @var{end} are, for all intents and purposes, dummy -values that only matter for @code{Spanners} (i.e @code{Hairpin} or -@code{Beam}), that can return different height estimations based on a -starting and ending column. +@var{start} e @var{end} sono, per tutti gli intenti e scopi, valori +fittizi che contano solo per gli estensori, o @code{Spanners}, (ovvero +@code{Hairpin} o @code{Beam}), che possono restituire calcoli diversi +dell'altezza in base a una colonna di inizio e di fine. -The rest are the other arguments to the first function (which -may be none if @var{n = 1}). +Il resto sono altri argomenti della prima funzione (che potrebbero essere +nessuno se @var{n = 1}). -The results of the second function are used as an approximation of the -value needed which is then used by the first function to get the real -value which is then used for fine-tuning much later during the spacing -process. +I risultati della seconda funzione sono usati come un'approssimazione del +valore necessario che viene poi usato dalla prima funzione per ottenere il +valore reale, che viene infine usato per la messa a punto, molto più tardi +nel corso del processo di spaziatura. @lilypond[verbatim,quote,ragged-right] #(define (square-line-circle-space grob) @@ -4649,21 +4443,21 @@ smartSquareLineCircleSpace = { } @end lilypond -In the first measure, without the unpure-pure container, the spacing -engine does not know the width of the note head and lets it collide with -the accidentals. In the second measure, with unpure-pure containers, -the spacing engine knows the width of the note heads and avoids the -collision by lengthening the line accordingly. +@c esempio obsoleto: dalla versione 2.18 LilyPond evita le collisioni di default. +Nella prima misura, senza il contenitore unpure-pure, il motore della +spaziatura non conosce la larghezza della testa di nota e lascia che +collida con le alterazioni. Nella seconda misura, che usa i contenitori +unpure-pure, il motore della spaziatura conosce la larghezza della testa +di nota e evita le collisioni allungando la linea dello spazio necessario. -Usually for simple calculations nearly-identical functions for -both the @q{unpure} and @q{pure} parts can be used, by only -changing the number of arguments passed to, and the scope of, the -function. This use case is frequent enough that -@code{ly:make-unpure-pure-container} constructs such a second -function by default when called with only one function argument. +Di solito per semplici calcoli si possono usare funzioni quasi identiche +per entrambe le parti, @q{unpure} e @q{pure}, cambiando soltanto il numero +di argomenti passati e la portata della funzione. Questo caso d'uso è così +frequente che @code{ly:make-unpure-pure-container} costruisce tale seconda +funzione automaticamente quando è richiamata con un solo argomento. -@warning{If a function is labeled as @q{pure} and it turns out not to -be, the results can be unexpected.} +@warning{Se una funzione viene etichettata come @q{pure} ma viene fuori che +non lo è, i risultati possono essere imprevedibili.} @node Uso delle funzioni musicali @@ -4672,59 +4466,59 @@ be, the results can be unexpected.} @c TODO -- add @seealso, etc. to these subsections -Where tweaks need to be reused with different music expressions, -it is often convenient to make the tweak part of a @emph{music -function}. In this section, we discuss only @emph{substitution} -functions, where the object is to substitute a variable into a -piece of LilyPond input code. Other more complex functions are -described in @rextend{Music functions}. +Quando le modifiche devono essere riusate con diverse espressioni musicali, +è spesso conveniente fare in modo che la modifica faccia parte di una +@emph{funzione musicale}. In questa sezione, trattiamo soltanto le funzioni +di @emph{sostituzione}, dove l'obiettivo è sostituire una variabile in un +punto del codice di input di LilyPond. Altre funzioni più complesse sono +descritte in @rextend{Music functions}. @menu -* Substitution function syntax:: -* Substitution function examples:: +* Sintassi della funzione di sostituzione:: +* Esempi della funzione di sostituzione:: @end menu -@node Substitution function syntax -@subsection Substitution function syntax +@node Sintassi della funzione di sostituzione +@subsection Sintassi della funzione di sostituzione +@translationof Substitution function syntax -Making a function that substitutes a variable into LilyPond -code is easy. The general form of these functions is +Creare una funzione che sostituisca una variabile presente nel codice LilyPond +è semplice. La forma generica di queste funzioni è: @example -function = +funzione = #(define-music-function (@var{arg1} @var{arg2} @dots{}) - (@var{type1?} @var{type2?} @dots{}) + (@var{tipo1?} @var{tipo2?} @dots{}) #@{ - @var{@dots{}music@dots{}} + @var{@dots{}musica@dots{}} #@}) @end example @noindent -where +dove @multitable @columnfractions .33 .66 @item @code{@var{argN}} -@tab @var{n}th argument - -@item @code{@var{typeN?}} -@tab a scheme @emph{type predicate} for which @code{@var{argN}} -must return @code{#t}. - -@item @code{@var{@dots{}music@dots{}}} -@tab normal LilyPond input, using @code{$} (in places where only -Lilypond constructs are allowed) or @code{#} (to use it as a Scheme -value or music function argument or music inside of music lists) to -reference arguments -(eg. @samp{#arg1}). +@tab @var{n}esimo argomento + +@item @code{@var{tipoN?}} +@tab un @emph{tipo di predicato} scheme per il quale @code{@var{argN}} +deve ritornare @code{#t}. + +@item @code{@var{@dots{}musica@dots{}}} +@tab il normale input LilyPond, usando @code{$} (nei punti in cui sono +consentiti solo i costrutti Lilypond) o @code{#} (per usarlo come un valore +Scheme o come argomento di una funzione musicale o come musica all'interno +di liste di musica) per riferirsi agli argomenti (es: @samp{#arg1}). @end multitable -The list of type predicates is required. Some of the most common -type predicates used in music functions are: +La lista del tipo di predicati è obbligatoria. Alcuni dei tipi di predicati +più comuni usati nelle funzioni musicali sono: @example boolean? -cheap-list? @emph{(use instead of }@q{list?}@emph{ for faster processing)} +cheap-list? @emph{(usarlo al posto di }@q{list?}@emph{ per un'elaborazione più veloce)} ly:duration? ly:music? ly:pitch? @@ -4736,9 +4530,9 @@ symbol? @end example @noindent -For a list of available type predicates, see -@ref{Predefined type predicates}. User-defined type predicates -are also allowed. +Un elenco dei tipi di predicati disponibili si trova in +@ref{Predefined type predicates}. Sono consentiti anche tipi di predicati +definiti dagli utenti. @seealso Guida alla notazione: @@ -4753,15 +4547,16 @@ File installati: @file{scm/lily.scm}. -@node Substitution function examples -@subsection Substitution function examples +@node Esempi della funzione di sostituzione +@subsection Esempi della funzione di sostituzione +@translationof Substitution function examples -This section introduces some substitution function examples. -These are not intended to be exhaustive, but rather to demonstrate -some of the possibilities of simple substitution functions. +Questa sezione presenta alcuni esempi di funzione di sostituzione. +L'obiettivo non è fornire un elenco esaustivo, ma mostrare soltanto +alcune delle possibilità di semplici funzioni di sostituzione. -In the first example, a function is defined that simplifies -setting the padding of a TextScript: +Nel primo esempio, viene definita una funzione che semplifica il +padding di un oggetto TextScript: @lilypond[quote,verbatim,ragged-right] padText = @@ -4773,16 +4568,16 @@ padText = #}) \relative { - c''4^"piu mosso" b a b + c''4^"più mosso" b a b \padText #1.8 - c4^"piu mosso" b a b + c4^"più mosso" b a b \padText #2.6 - c4^"piu mosso" b a b + c4^"più mosso" b a b } @end lilypond -In addition to numbers, we can use music expressions such -as notes for arguments to music functions: +Oltre ai numeri, si possono usare come argomenti delle funzioni musicali +anche le espressioni musicali, come le note: @lilypond[quote,verbatim,ragged-right] custosNote = @@ -4801,23 +4596,22 @@ custosNote = @end lilypond @funindex \etc -Both of those functions are simple single expressions where only -the last element of a function call or override is missing. For -those particular function definitions, there is a simpler -alternative syntax, namely just writing out the constant part of -the expression and replacing its final missing element with -@code{\etc}: +Entrambe queste funzioni sono semplici espressioni singole dove manca soltanto +l'ultimo elemento di una chiamata di una funzione o di una sovrascrittura. Per +queste particolari definizioni di funzione, esiste una sintassi alternativa +più semplice, che consiste nello scrivere interamente la parte costante +dell'espressione e sostituire il suo elemento finale mancante con @code{\etc}: @lilypond[quote,verbatim,ragged-right] padText = \once \override TextScript.padding = \etc \relative { - c''4^"piu mosso" b a b + c''4^"più mosso" b a b \padText #1.8 - c4^"piu mosso" b a b + c4^"più mosso" b a b \padText #2.6 - c4^"piu mosso" b a b + c4^"più mosso" b a b } @end lilypond @@ -4833,7 +4627,7 @@ custosNote = @end lilypond -Substitution functions with multiple arguments can be defined: +Si possono definire funzioni di sostituzione con molteplici argomenti: @lilypond[quote,verbatim,ragged-right] tempoPadded = @@ -4846,9 +4640,9 @@ tempoPadded = #}) \relative { - \tempo \markup { "Low tempo" } + \tempo \markup { "Tempo basso" } c''4 d e f g1 - \tempoPadded #4.0 "High tempo" + \tempoPadded #4.0 "Tempo alto" g4 f e d c1 } @end lilypond diff --git a/Documentation/it/notation/repeats.itely b/Documentation/it/notation/repeats.itely index 5ae16435c6..fba80f1563 100644 --- a/Documentation/it/notation/repeats.itely +++ b/Documentation/it/notation/repeats.itely @@ -271,7 +271,7 @@ All'inizio di una ripetizione: \relative { e'1 \repeat volta 2 { - \inStaffSegno % start repeat + \inStaffSegno % inizio ripetizione f2 g a b } c1_"D.S." \bar "|." @@ -285,7 +285,7 @@ Alla fine di una ripetizione: e'1 \repeat volta 2 { f2 g a b - \inStaffSegno % end repeat + \inStaffSegno % fine ripetizione } f2 g a b c1_"D.S." \bar "|." @@ -300,7 +300,7 @@ Tra due ripetizioni: \repeat volta 2 { f2 g a b } - \inStaffSegno % double repeat + \inStaffSegno % doppia ripetizione \repeat volta 2 { f2 g a b } diff --git a/Documentation/it/notation/vocal.itely b/Documentation/it/notation/vocal.itely index 5d1b369de5..1ca2de981c 100644 --- a/Documentation/it/notation/vocal.itely +++ b/Documentation/it/notation/vocal.itely @@ -383,7 +383,7 @@ in qualsiasi momento musicale. @end itemize In tutti questi tre metodi è possibile disegnare dei trattini tra -le sillabe di una parole e delle linee di estensione oltre la +le sillabe di una parola e delle linee di estensione oltre la fine di una parola. Maggiori dettagli in @ref{Extenders and hyphens}. Il contesto @code{Voice} contenente la melodia al quale il testo si