Esempi minimi

Cosa sono gli “Esempi minimi”?

Un esempio minimo è un esempio dal quale niente può essere tolto.

Perché crearli?

  • Più l’esempio è semplice, più rapidamente potenziali solutori possono comprenderlo e aiutarti.
  • Un esempio minimo dimostra che hai tentato di risolvere il problema da solo. Quando le persone inviano grandi porzioni di codice, sembra che non si preoccupino che li possiamo aiutare o no.
  • Creare un esempio minimo ti aiuta a capire cosa sta succedendo. Molte segnalazioni di un falso problema possono essere evitate se si prova a creare un esempio minimo; se non riesci a ricreare un “bug” in un esempio minimo, allora probabilmente il problema è una conoscenza di LilyPond insufficiente, non un vero bug!

Come crearli?

  • Includi il numero di versione nel comando \version.
  • Crea un esempio piccolo! Gli esempi che riguardano la spaziatura o la formattazione di pagina potrebbero richiedere molte battute, ma la maggior parte dei problemi può essere riprodotta con meno di una battuta.
  • Durante la preparazione di un esempio, cerca di commentare (% o %{ … %}) le sezioni del tuo file. Se riesci a commentare una porzione di codice riuscendo a mantenere chiara l’idea principale, allora elimina il materiale commentato!
  • Evita di usare note, tonalità o segni di tempo complessi a meno che il malfunzionamento non riguardi proprio il comportamento di questi elementi.
  • Non usare i comandi \override o \set, a meno che il malfunzionamento non riguardi questi comandi in particolare.
  • Eventualmente, allega un’immagine che mostri il risultato grafico desiderato.

Quanto piccoli devono essere?

Il codice seguente è un esempio minimo?

\version "2.14.1"
\include "english.ly"

\score {
  \new Staff {
    \key d \major
    \numericTimeSignature
    \time 2/4
    <cs' d'' b''>16 <cs' d'' b''>8.
    %% Here: the tie on the D's looks funny
    %% Too tall? Left-hand endpoint is not aligned with the B tie?
    ~
    <cs' d'' b''>8 [ <b d'' a''> ]
  }
}

Non è poi così grande, ma un vero esempio minimo è il seguente:

\version "2.14.1"
{
  % middle tie looks funny here:
  <c' d'' b''>8. ~ <c' d'' b''>8
}

Sono pochi gli esempi minimi che superano 10 righe di codice - spesso 4 righe sono sufficienti per illustrare il problema!