# Manuale di Kid3

### Urs Fleisch

sviluppo software

`<ufleisch at users.sourceforge.net>`

### Vincenzo Reale

Traduzione dell'interfaccia e della documentazione

`<smart2128vr@gmail.com>`

3.9.6

Diritto d'autore © 2024 Urs Fleisch

FDL

Sommario

Kid3 è un'applicazione per modificare i tag ID3v1 e ID3v2 nei file MP3 in modo efficiente. Sono supportati anche i tag nei file Ogg/Vorbis, Opus, DSF, FLAC, MPC, APE, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV, AIFF e nei moduli dei tracker (MOD, S3M, IT, XM). È semplice impostare i tag di più file allo stesso valore (cioè album, artista, anno e genere in tutti i file dello stesso album) e generare i tag dal nome dei file o viceversa.

Lista delle tabelle

3.1. Associazione dei tipi di frame unificati a vari formati
3.2. Voce nella tabella di valutazione

# Sinossi

`kid3` [ `--help` | `--author` | `--version` | `--license` | `--desktopfile `FILE`` ] [`FILE`...]

`kid3-qt` [`--portable`] [`Opzioni Qt`] [`FILE`...]

`kid3-cli` [`--portable`] [`--dbus`] [ `-h` | `--help` ] [`-c COMANDO1`] [`-c COMANDO2`...] [`FILE`...]

# Opzioni

`--portable`

  Archiviare la configurazione nel file `kid3.ini` nella cartella dell'applicazione.

`FILE`

  Se ``FILE`` è il percorso a una cartella, essa sarà aperta. Se sono specificati uno o più percorsi, la loro cartella comune è aperta e i file selezionati.

## kid3

`--help`

  Mostra la guida sulle opzioni.

`--author`

  Mostra le informazioni sull'autore.

`--version`

  Mostra le informazioni sulla versione.

`--license`

  Mostra le informazioni sulla licenza.

`--desktopfile `FILE``

  Il nome file della voce del desktop per questa applicazione.

## kid3-qt

`Opzioni Qt`

  Vedere qt5options(7).

## kid3-cli

`--dbus`

  Attivare l'interfaccia D-Bus.

`-c`

  Eseguire un comando. Più opzioni `-c` sono possibili, sono eseguite in sequenza. Vedere la sezione su kid3-cli per una descrizione dei comandi disponibili.

`-h`|`--help`

  Mostra la guida sulle opzioni e sui comandi.

# Capitolo 1. Introduzione

Kid3 è un'applicazione per modificare i tag ID3v1 e ID3v2 nei file MP3 in modo efficiente. Questi tag possono essere modificati dalla maggior parte dei lettori MP3, ma in modo non proprio comodo ed efficiente. Inoltre, sono supportati anche i tag nei file Ogg/Vorbis, Opus, DSF, FLAC, MPC, APE, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV, AIFF e nei moduli dei tracker (MOD, S3M, IT, XM).

Kid3 non acquisisce né codifica i file MP3, ma ha lo scopo di modificare i tag ID3 di tutti i file di un album in modo efficiente, cioè con il minor numero possibile di clic del mouse e di tasti. Dove la maggior parte degli altri programmi può modificare i tag ID3v1 o ID3v2, Kid3 ha il pieno controllo su entrambe le versioni, può convertire i tag tra i due formati e ha accesso a tutti i tag ID3v2. I tag di più file possono essere impostati sullo stesso valore, ad es. l'artista, l'album, l'anno e il genere di tutti i file di un album hanno generalmente gli stessi valori e possono essere impostati insieme. Se le informazioni per i tag sono contenute nel nome del file, i tag possono essere impostati automaticamente dal nome del file. È anche possibile impostare il nome del file in base ai tag trovati nel file in formati arbitrari.

L'attività di modifica è ulteriormente supportata dalla sostituzione automatica di caratteri o sotto-stringhe, ad esempio per rimuovere caratteri illegali dai nomi dei file. Il controllo automatico dei caratteri maiuscoli e minuscoli semplifica l'utilizzo di uno schema di denominazione coerente in tutti i tag.

Le informazioni dei tag per interi album possono essere recuperate da gnudb.org, MusicBrainz, Discogs, Amazon o altre fonti di elenchi di tracce. Il formato di importazione è liberamente configurabile tramite espressioni regolari.

Segnalare qualsiasi problema o richiesta di funzionalità all'autore.

# Capitolo 2. Utilizzare Kid3

## Funzionalità di Kid3

- Modificare i tag ID3v1.1

- Modificare tutti i frame ID3v2.3 e ID3v2.4

- Modificare i tag di più file

- Convertire tra tag ID3v1 e ID3v2

- Modificare i tag MP3, Ogg/Vorbis, Opus, DSF, FLAC, MPC, APE, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV and AIFF

- Generare i tag dal nome file

- Generare i tag dal contenuto dei campi dei tag

- Generare il nome file dai tag

- Generare e cambiare il nome delle cartelle dai tag

- Generare file della scaletta

- Conversione automatica delle maiuscole/minuscole e traduzione delle stringhe

- Importare da gnudb.org, MusicBrainz, Discogs, Amazon e altre fonti di dati

- Esportare come CSV, HTML, scaletta, Kover XML e altri formati. I file CSV esportati possono essere importati nuovamente.

## Esempio d'uso

Questa sezione descrive una sessione tipica con Kid3. Supponiamo di avere una cartella contenente file MP3 con i brani dell'album «Let's Tag» del gruppo «One Hit Wonder». La cartella è denominata nel formato «artista - album», nel nostro caso `One Hit Wonder - Let's Tag`. La cartella contiene le tracce nel formato «traccia titolo.mp3», che si pensa sia utile perché i nomi dei file sono brevi (importante quando si usano lettori MP3 mobili con schermi piccoli) e nell'ordine corretto se ordinati alfabeticamente (importante quando si usano lettori MP3 hardware che riproducono i brani in ordine alfabetico o nell'ordine in cui vengono masterizzati su CD e quell'ordine è alfabetico quando si usa mkisofs). Oltre a ciò, le informazioni sull'artista e sull'album sono già nel nome della cartella e non devono essere ripetute nel nome file. Ma torniamo al nostro esempio, l'elenco delle cartelle è simile al seguente:

`01 Intro.mp3`

`02 We Only Got This One.mp3`

`03 Outro.mp3`

Questi file non hanno ancora tag e vogliamo generarli utilizzando Kid3. Usiamo la voce di menu File → Apri (o il pulsante della barra degli strumenti) e selezioniamo uno dei file in questa cartella. Tutti i file saranno visualizzati nell'elenco dei file. Data la nostra pigrizia, vogliamo utilizzare le informazioni nella cartella e i nomi dei file per generare i tag. Pertanto selezioniamo tutti i file, quindi facciamo clic sul pulsante A: Tag 1 nella sezione File. Questo imposterà i valori di titolo, artista, album e traccia in tutti i file. Per impostare i valori di anno e genere di tutti i file, manteniamo tutti i file selezionati e digitiamo «2002» per Data e selezioniamo «Pop» dalla casella combinata Genere. Per impostare solo questi due valori, le loro caselle di controllo vengono automaticamente selezionate e tutti le altre caselle rimangono deselezionate. Ora cambiamo la selezione selezionando solo il primo file e vediamo che tutti i tag contengono i valori corretti. I tag degli altri file possono essere verificati anche selezionandoli uno ad uno. Quando siamo soddisfatti dei tag, utilizziamo la voce di menu File → Salva (o il pulsante della barra degli strumenti). La selezione della voce di menu File → Crea scaletta (o il pulsante della barra degli strumenti) genererà un file `One Hit Wonder - Let's Tag.m3u` nella cartella.

# Capitolo 3. Guida ai comandi

## Gli elementi della GUI

La GUI di Kid3 è separata in sei sezioni. A sinistra ci sono gli elenchi dei file e delle cartelle, a destra le sezioni File, Tag 1, Tag 2 e Tag 3.

Per navigare tra le diverse sezioni utilizzando la tastiera, sono supportate diverse scorciatoie da tastiera. Nelle sezioni dei tag, le scorciatoie sono attive quando non si modifica il testo o quando si è nella prima colonna.

- Alt+Sinistra: Vai alla sezione precedente (Command+[ su macOS®)

- Alt+Destra: Vai alla sezione successiva (Command+] su macOS®)

- Ctrl+Maiusc+V: Da altro tag other tag

- Ctrl+C: Copiare

- Ctrl+V: Incollare

- Maiusc+Canc: Rimuovere

- F2: Modificare

- Insert: Aggiungere

- Canc: Eliminare

### Elenco dei file

L'elenco dei file contiene i nomi di tutti i file nella cartella aperta che corrispondono al filtro del nome file selezionato (in genere `*.mp3 *.ogg *.opus *.dsf *.flac *.mpc *.aac *.m4a *.m4b *.m4p *.mp4 *.mp2 *.spx *.tta *.wv *.wma *.wav *.aiff *.ape`). È possibile selezionare uno o più file. Per non selezionare alcun file, fare clic nell'area vuota dopo le voci dell'elenco. La selezione determina i file interessati dalle operazioni disponibili utilizzando i pulsanti descritti di seguito.

Oltre a Nome, è possibile visualizzare anche altre colonne Dimensioni, Tipo, Data modifica con i dettagli del file. Le colonne possono essere nascoste deselezionandone il nome nel menu contestuale dell'intestazione dell'elenco. L'ordine delle colonne può essere modificato tramite trascinamento e rilascio. L'ordinamento può essere attivato facendo clic sull'intestazione della colonna.

I valori dei tag standard possono essere visualizzati e modificati anche nelle colonne dell'elenco dei file.

A sinistra dei nomi può essere visualizzata un'icona: un disco per mostrare che il file è stato modificato o informazioni su quali tag sono presenti (V1, V2, V1V2 o NO TAG, nessuna icona è visualizzata se il file non è ancora stato letto).

Le cartelle sono visualizzate con un'icona a forma di cartella. Se si apre una cartella, i suoi file vengono visualizzati in un albero gerarchico. Selezionando i file dalle sottocartelle, le operazioni possono essere eseguite su file in cartelle diverse, il che è utile se la raccolta musicale è organizzata con una cartella per ciascun artista contenente cartelle per album di questo artista.

Il clic del tasto destro del mouse all'interno dell'elenco dei file apre un menu contestuale con i seguenti comandi:

- Espandi tutto: espande tutti gli alberi delle cartelle (solo l'albero attuale se il tasto Maiusc è premuto)

- Contrai tutto: contrae l'albero tutti gli alberi delle cartelle

- Rinomina: cambia il nome di un file

- Cestina: sposta un file nel cestino

- Riproduci: riproduce un file, vedere Riproduci. Se il file selezionato è una scaletta, i file della scaletta saranno riprodotti.

- Modifica: modificare una scaletta, vedere Modificare la scaletta.

- Le voci successive sono comandi utente, che possono essere definiti nella scheda Azioni dell'utente di Configura Kid3. Qui è anche possibile attivare la riproduzione con doppio clic.

  Quando Seleziona file in riproduzione è attiva, il brano attualmente riprodotto viene selezionato automaticamente nell'elenco dei file.

### Modificare la scaletta

Una scaletta può essere creata vuota o contenente le tracce di una cartella, vedere Creare una scaletta. Il file della scaletta creato in questo modo può essere modificato facendo doppio clic o utilizzando Modifica dal menu contestuale dell'elenco dei file. Viene visualizzata una finestra con le voci della scaletta. È possibile aprire più scalette contemporaneamente.

È possibile aggiungere nuove voci trascinandole dall'elenco dei file, da un gestore file o da un'altra scaletta. Se una voce viene trascinata da un'altra scaletta, sarà spostata o copiata in base al sistema. Per invocare l'altra operazione, rispettivamente, il tasto Maiusc, Ctrl o Alt (per copiare invece che spostare su macOS®) deve essere premuto. Il riordino delle voci all'interno della scaletta è possibile anche tramite il trascinamento della selezione. In alternativa, le voci possono essere spostate utilizzando le scorciatoie da tastiera Ctrl+Maiusc+Su e Ctrl+Maiusc+Giù (su macOS® Command deve essere premuto invece di Ctrl). Una voce può essere rimossa utilizzando il tasto Elimina.

Notare quanto segue: per trascinare le voci dall'elenco dei file, devono essere tenute sul lato sinistro (vicino alle icone), lo stesso gesto sul lato destro eseguirà una selezione multipla, tale azione è ancora facilmente possibile.

Quando una scaletta è stata modificata, le modifiche possono essere archiviate utilizzando Salva o scartate utilizzando Annulla. Quando la finestra è chiusa, viene visualizzato un messaggio di conferma in caso di modifiche non salvate.

Le tracce selezionate in una scaletta saranno selezionate automaticamente nell'elenco dei file, rendendo così possibile modificare i loro tag.

Per eseguire azioni su una scaletta, è necessario selezionare il relativo file nell'elenco dei file. Modifica dal menu contestuale porta alla finestra descritta in questa sezione e Riproduci avvia il lettore multimediale con i brani della scaletta. Le azioni dell'utente possono agire sulle scalette, ad esempio Esporta cartella della scaletta, che copia i file da una scaletta in una cartella.

### Elenco delle cartelle

L'elenco delle cartelle contiene i nomi delle cartelle nella cartella aperta, nonché l'attuale (`.`) e la cartella superiore (`..`). Permette di cambiare rapidamente la cartella senza utilizzare il comando Apri o trascinare e rilasciare.

La visibilità, l'ordine e l'ordinamento delle colonne possono essere configurati come descritto nella sezione relativa all'elenco dei file.

### File

Mostra le informazioni sulla codifica (MP3, Ogg, Opus, DSF, FLAC, MPC, APE, MP2, MP4, AAC, Speex, TrueAudio, WavPack, WMA, WAV, AIFF), bit rate, frequenza di campionamento, canali e la lunghezza di il file.

Il campo di testo Nome contiene il nome del file (se viene selezionato un solo file). Se questo nome viene modificato, il file sarà rinominato quando viene utilizzato il comando Salva.

La casella combinata Formato e il campo di testo contengono il formato da utilizzare quando il nome file viene generato dal primo o dal secondo tag. Il nome file può contenere caratteri arbitrari, anche una parte di cartella separata da una barra dal nome del file, ma quella cartella deve già esistere affinché la rinomina abbia esito positivo. I seguenti codici speciali vengono utilizzati per inserire i valori dei tag nel nome file:

- %s %{title} Titolo (Brano)

- %a %{artist} Artista

- %l %{album} Album

- %c %{comment} Commento

- %y %{year} Anno

- %t %{track} Traccia (ad es. 01)

- %t %{track.n} Traccia con larghezza dei campi n (ad es. 001 per %{track.3})

- %T %{tracknumber} Traccia (senza zeri iniziali, ad es. 1)

- %g %{genre} Genere

- %{ignore} Ignorato durante la generazione di tag dal nome del file

I codici di formato non sono limitati agli esempi sopra riportati. È possibile utilizzare qualsiasi nome di frame, ad esempio nomi di frame unificati come `%{albumartist}`, `%{discnumber.1}`, `%{bpm}` o formattare nomi specifici come `%{popm}`.

È possibile anteporre e aggiungere stringhe alla sostituzione per un codice di formato aggiungendole tra virgolette doppie tra le parentesi graffe di un codice di formato. Queste stringhe saranno inserite nella stringa risultante solo se il codice del formato restituisce un valore non vuoto. Ad esempio, se il nome del file deve contenere sia il titolo che il sottotitolo, è possibile utilizzare `%{title} [%{subtitle}]` nella stringa di formato. Ciò produrrebbe una stringa che termina con `[]` se non esiste un frame di sottotitoli per un file. Al fine di omettere le parentesi se non è presente alcun sottotitolo, al suo posto deve essere utilizzato `%{title}%{"["subtitle"]"}`. Questo ometterà le parentesi, lo spazio iniziale e il sottotitolo se non esistono i sottotitoli.

L'elenco dei formati disponibili può essere modificato nella finestra di dialogo che appare quando si fa clic sul pulsante Nome file dal tag nella scheda File delle impostazioni.

Una seconda casella combinata Formato (con la freccia in giù) viene utilizzata per generare i tag dal nome file. Se il formato del nome file non corrisponde a questo modello, vengono provati alcuni altri formati comunemente utilizzati.

Alcuni formati di file comunemente utilizzati sono già disponibili nella casella combinata, ma è anche possibile digitare un formato speciale nell campo di testo.

L'elenco dei formati disponibili può essere modificato nella finestra che appare quando si fa clic sul pulsante Tag dal nome file nella scheda File delle impostazioni.

Internamente, un'espressione regolare viene creata dai codici di formato. Se sono richieste espressioni regolari avanzate, il formato per generare i tag dai nomi dei file può essere fornito come un'espressione regolare completa con catture precedute dai codici di formato, ad es. per estrarre i numeri di traccia senza rimuovere zeri iniziali, potrebbe essere utilizzato un formato come «`/%{track}(\d+)%{title}(.*)`»

Da: Tag 1, Tag 2: imposta il nome file utilizzando il formato selezionato e il primo tag o il secondo tag, rispettivamente.

A: Tag 1, Tag 2: i tag sono impostati dal nome file. Primo, è utilizzato il formato specificato in Formato. Se il nome file esistente non verifica questo formato, saranno provati i seguenti formati:

- `Artista - Album/Traccia Brano`

- `Album/Traccia - Artista - Brano`

- `/Artista - Album - Traccia - Brano`

- `Album/Artista - Traccia - Brano`

- `Album/Artista - Brano`

- `Artista/Album/Traccia Brano`

Se viene selezionato un singolo file, i controlli della GUI sono riempiti con i valori estratti dal nome file. Se vengono selezionati più file, i tag dei file sono impostati direttamente in base ai nomi dei file.

### Tag 1

I campi di testo per Titolo, Artista, Album, Commento, Data, Numero traccia e Genere sono utilizzati per modificare il valore corrispondente nel primo tag dei file selezionati. Il valore sarà modificato quando viene modificata la selezione del file o prima di operazioni come Salva ed Esci e quando viene selezionata la casella di controllo corrispondente a sinistra del nome del campo. Ciò è utile per modificare solo alcuni valori e lasciare invariati gli altri valori.

Se si seleziona un singolo file, tutte le caselle di controllo sono selezionate e i widget di modifica della riga contengono i valori trovati nei tag di questo file. Se non viene trovato un tag nel file, viene visualizzato il valore vuoto corrispondente, che è una stringa vuota per i campi di testo Titolo, Artista, Album e Commento, 0 per le modifiche numeriche Data e Numero traccia e un valore selezionato vuoto per la casella combinata Genere. I valori possono essere modificati e se la casella di controllo corrispondente è selezionata, saranno impostati per il file selezionato dopo la modifica della selezione. Il file viene quindi marcato come modificato dal simbolo di un disco nell'elenco, ma rimane invariato fino a quando non viene utilizzato il comando Salva.

Se si selezionano più file, sono visualizzati solo i valori identici in tutti i file selezionati. In tutti gli altri controlli, sono visualizzati i valori vuoti come sopra descritto. Tutte le caselle di controllo sono deselezionate per evitare modifiche indesiderate. Se un valore deve essere impostato per tutti i file selezionati, può essere modificato e la casella di controllo deve essere impostata. I valori saranno impostati per tutti i file selezionati quando la selezione viene modificata e possono essere salvati utilizzando il comando Salva.

Le caselle di selezione controllano anche il funzionamento della maggior parte dei comandi che influiscono sui tag, come copia, incolla e trasferimento tra i tag 1 e 2. Per semplificare l'utilizzo con più file in cui tutte le caselle di controllo sono deselezionate, questi comandi si comportano allo stesso modo quando tutte le caselle di controllo sono selezionate e quando tutte le caselle di controllo sono deselezionate.

Da tag 2: i campi del tag 1 sono impostati dai valori corrispondenti nel tag 2. Se è selezionato un singolo file, i controlli della GUI sono riempiti con i valori del tag 2. Se sono selezionati più file, i tag dei file sono impostati direttamente.

Copia: il buffer di copia è riempito con i valori di Tag 1. Solo i valori con la casella marcata saranno utilizzati nei seguenti comandi Incolla.

Incolla. incolla i valori dal buffer di copia nei controlli della GUI.

Rimuovi: questo imposterà tutti i controlli della GUI a un valore vuoto che si traduce nella rimozione di tutti i valori. Il file salvato non conterrà tag 1.

### Tag 2

I controlli della GUI funzionano nello stesso modo a quanto descritto per la sezione Tag 1, ma la dimensione delle stringhe non è limitata.

Per il tag 2 Genere è possibile utilizzare anche i proprio nomi oltre ai generi elencati nella casella combinata, basta digitare il nome nella riga di modifica.

Il tag 2 non può contenere solo gli stessi valori del tag 1, il formato è costruito in modo flessibile da più frame che sono essi stessi composti da più campi. La tabella tag 2 mostra tutti i frame disponibili nel file selezionato.

Modifica: questo aprirà una finestra che consente di modificare tutti i campi del frame selezionato. Se più file sono selezionati, i campi modificati sono applicati a tutti i file selezionati che contengono tale frame.

Aggiungi: apparirà un richiedente per selezionare il tipo di frame e un frame del tipo selezionato può essere modificato e aggiunto al file. Questo funziona anche per aggiungere un frame a più file selezionati.

Elimina: elimina il frame selezionato nei file selezionati.

Trascina qui la copertina dell'album viene visualizzato se il file non contiene una copertina incorporata. Un'immagine può essere aggiunta utilizzando il trascinamento della selezione da un browser o da un file manager e sarà visualizzata qui. Le cornici possono essere modificate o aggiunte facendo doppio clic su questo controllo.

### Tag 3

Alcuni file possono avere più di due tag ed è visibile una terza sezione di tag. I seguenti tipi di file possono avere una sezione Tag 3:

- I file MP3 possono avere un tag ID3v1.1, un tag ID3v2 (2.3.0 o 2.4.0) e nella terza sezione un tag APE. Tali tag APE sono utilizzati per ottenere informazioni sul guadagno di riproduzione. Nella sezione Tag 3, queste informazioni sono visibili e il tag APE può essere rimosso con il pulsante Rimuovi.

- Il blocco RIFF INFO dei file WAV è disponibile nella sezione Tag 3 perché la sezione Tag 1 è dedicata ai tag ID3v1.1 e gestisce le loro restrizioni. Il Tag 2 è ancora utilizzato per i tag ID3v2.4.0, che sono supportati anche per i file WAV, ma i blocchi RIFF INFO sembrano essere supportati meglio.

- I file FLAC normalmente utilizzano un commento Vorbis per i loro metadati. Tuttavia, ci sono file FLAC che hanno tag ID3v1 e ID3v2, che si trovano nelle sezioni Tag 1 e Tag 3. I tag ID3 nei file FLAC sono supportati solo da TagLib, pertanto l'estensione OggFlacMetadata deve essere disabilitata nella scheda Estensioni delle impostazioni.

I controlli della GUI funzionano come nella sezione Tag 2.

### Elenco frame

Kid3 può modificare la maggior parte dei frame per tutti i tipi di file supportati. È possibile accedere ad alcuni frame utilizzando nomi unificati, in modo che possano essere scambiati tra file con formati diversi. I frame che non sono unificati sono accessibili come frame specifici del formato.

Tabella 3.1. Associazione dei tipi di frame unificati a vari formati

Unificato | ID3v2.3 | ID3v2.4 | MP4 | ASF | Vorbis | RIFF
--- | --- | --- | --- | --- | --- | ---
Titolo | `TIT2` | `TIT2` | `©nam` | `Titolo` | `TITLE` | `INAM`
Artista | `TPE1` | `TPE1` | `©ART` | `Autore` | `ARTIST` | `IART`
Album | `TALB` | `TALB` | `©alb` | `WM/AlbumTitle` | `ALBUM` | `IPRD`
Commento | `COMM` | `COMM` | `©cmt` | `Descrizione` | `COMMENT` | `ICMT`
Data | `TYER` | `TDRC` | `©day` | `WM/Year` | `DATE` | `ICRD`
Numero traccia | `TRCK` | `TRCK` | `trkn` | `WM/TrackNumber` | `TRACKNUMBER` | `IPRT` o `ITRK`
Genere | `TCON` | `TCON` | `©gen` | `WM/Genre` | `GENRE` | `IGNR`
Artista dell'album | `TPE2` | `TPE2` | `aART` | `WM/AlbumArtist` | `ALBUMARTIST` |
Arrangiatore | `IPLS` | `TIPL` | `ARRANGER` | `WM/Producer` | `ARRANGER` | `IENG`
Autore | `TOLY` | `TOLY` | `AUTHOR` |  | `AUTHOR` |
BPM | `TBPM` | `TBPM` | `tmpo` | `WM/BeatsPerMinute` | `BPM` | `IBPM`
Numero di catalogo | `TXXX:CATALOGNUMBER` | `TXXX:CATALOGNUMBER` |  |  | `CATALOGNUMBER` |
Compilation | `TCMP` | `TCMP` | `cpil` |  | `COMPILATION` |
Compositore | `TCOM` | `TCOM` | `©wrt` | `WM/Composer` | `COMPOSER` | `IMUS`
Direttore | `TPE3` | `TPE3` | `CONDUCTOR` | `WM/Conductor` | `CONDUCTOR` |
Copyright | `TCOP` | `TCOP` | `cprt` | `Copyright` | `COPYRIGHT` | `ICOP`
Descrizione | `TIT3` | `TIT3` | `desc` | `WM/SubTitleDescription` | `DESCRIPTION` |
Numero disco | `TPOS` | `TPOS` | `disco` | `WM/PartOfSet` | `DISCNUMBER` |
Codificato da | `TENC` | `TENC` | `©enc` | `WM/EncodedBy` | `ENCODED-BY` | `ITCH`
Impostazioni codificatore | `TSSE` | `TSSE` | `©too` | `WM/EncodingSettings` | `ENCODERSETTINGS` | `ISFT`
Tempo di codifica |  | `TDEN` |  | `WM/EncodingTime` | `ENCODINGTIME` | `IDIT`
Raggruppamento | `GRP1` | `GRP1` | `©grp` |  | `GROUPING` |
Chiave iniziale | `TKEY` | `TKEY` |  | `WM/InitialKey` | `INITIALKEY` |
ISRC | `TSRC` | `TSRC` | `ISRC` | `WM/ISRC` | `ISRC` | `ISRC`
Lingua | `TLAN` | `TLAN` | `LANGUAGE` | `WM/Language` | `LANGUAGE` | `ILNG`
Paroliere | `TESTO` | `TESTO` | `LYRICIST` | `WM/Writer` | `LYRICIST` | `IWRI`
Testi | `USLT` | `USLT` | `©lyr` | `WM/Lyrics` | `TESTI` |
Supporto | `TMED` | `TMED` | `SOURCEMEDIA` |  | `SOURCEMEDIA` | `IMED`
Atmosfera |  | `TMOO` |  | `WM/Mood` | `MOOD` |
Album originale | `TOAL` | `TOAL` | `ORIGINALALBUM` | `WM/OriginalAlbumTitle` | `ORIGINALALBUM` |
Artista originale | `TOPE` | `TOPE` | `ORIGINALARTIST` | `WM/OriginalArtist` | `ORIGINALARTIST` |
Data originale | `TORY` | `TDOR` | `ORIGINALDATE` | `WM/OriginalReleaseYear` | `ORIGINALDATE` |
Interprete | `IPLS` | `TMCL` | `PERFORMER` |  | `PERFORMER` | `ISTR`
Immagine | `APIC` | `APIC` | `covr` | `WM/Picture` | `METADATA_BLOCK_PICTURE` |
Editore | `TPUB` | `TPUB` | `PUBLISHER` | `WM/Publisher` | `PUBLISHER` | `IPUB`
Valutazione | `POPM` | `POPM` | `valutazione` | `WM/SharedUserRating` | `RATING` | `IRTD`
Paese di uscita | `TXXX:RELEASECOUNTRY` | `TXXX:RELEASECOUNTRY` |  |  | `RELEASECOUNTRY` | `ICNT`
Data di uscita |  | `TDRL` | `RELEASEDATE` |  | `RELEASEDATE` |
Remixer | `TPE4` | `TPE4` | `REMIXER` | `WM/ModifiedBy` | `REMIXER` | `IEDT`
Ordinamento per album | `TSOA` | `TSOA` | `soal` | `WM/AlbumSortOrder` | `ALBUMSORT` |
Ordinamento per artista dell'album | `TSO2` | `TSO2` | `soaa` |  | `ALBUMARTISTSORT` |
Ordinamento per artista | `TSOP` | `TSOP` | `soar` | `WM/ArtistSortOrder` | `ARTISTSORT` |
Ordinamento per compositore | `TSOC` | `TSOC` | `soco` |  | `COMPOSERSORT` |
Ordinamento per nome | `TSOT` | `TSOT` | `sonm` | `WM/TitleSortOrder` | `TITLESORT` |
Sottotitolo |  | `TSST` | `SUBTITLE` | `WM/SubTitle` | `SUBTITLE` | `PRT1`
Sito web | `WOAR` | `WOAR` | `SITOWEB` | `WM/AuthorURL` | `SITOWEB` | `IBSU`
Lavoro | `TIT1` | `TIT1` | `©wrk` | `WM/ContentGroupDescription` | `WORK` |
File audio WWW | `WOAF` | `WOAF` |  | `WM/AudioFileURL` | `WWWAUDIOFILE` |
Forni audio WWW | `WOAS` | `WOAS` |  | `WM/AudioSourceURL` | `WWWAUDIOSOURCE` |

Osservazioni relative all'associazione ai nomi di frame unificati:

- Il numero di nomi di frame unificati è limitato dal fatto che un'associazione ragionevole deve essere possibile per tutti i formati di file supportati. La maggior parte dei tag supporta frame con nomi arbitrari; questi saranno utilizzati se non è disponibile alcun frame specifico (ad es. i nomi in maiuscolo nella colonna MP4). Se non esiste tale possibilità, alcuni tipi di frame potrebbero non essere supportati per il formato, ad es. autore e interprete per ASF (WMA).

- Le associazioni non sono scelte in modo arbitrario, ma sono orientate all'utilizzo dei frame in altre applicazioni e dispositivi. Pertanto il frame ID3v2 "TPE2 - Band/orchestra/accompagnamento" non suggerisce il suo utilizzo come artista dell'album, ma questo è comunemente utilizzato. Il vero significato di ID3v2, d'altra parte, è il motivo per cui questo frame cornice viene utilizzato per l'orchestra durante l'importazione (ad es. da Discogs), sebbene ciò possa sembrare un po 'strano per altri formati di tag.

- Le associazioni non sono sempre biettive. Per cui, ID3v2.3 utilizza un frame IPLS sia per Arrangiatore che per Interprete. Durante la lettura, entrambi i frame sono visualizzati come «Arrangiatore».

- I frame Arrangiatore e Interprete usano un formato particolare per i loro contenuti: «partecipazione 1|partecipante 1|partecipazione 2|partecipante 2|...», ad esempio «Maestro del coro|Ernst Dunshirn|Voce soprano|Anna Netrebko». Ciò creerà i frame IPLS (ID3v2.3) o TIPL/TMCL (ID3v2.4) con un elenco di stringhe nel formato specificato ("|" è utilizzato come separatore tra le stringhe). I valori in questo formato sono impostati anche quando si importano dati da server che offrono queste informazioni.

- Per utilizzare esplicitamente un nome di frame specifico che è in conflitto con un nome di frame unificato, anteporre un punto esclamativo. Ad esempio, l'aggiunta di un frame di tipo «`Media`» a un commento di Vorbis creerà un frame con il nome «`SOURCEMEDIA`» a causa dell'associazione del tipo unificata. Per aggiungere un frame con il nome «`MEDIA`» e non «`SOURCEMEDIA`», utilizzare «`!MEDIA`» per forzare il nome esplicito.

- Se hai bisogno di frame che non è in questo elenco, hai ancora la possibilità di inserire nomi arbitrari utilizzando il pulsante Aggiungi. I nomi dei frame usati spesso possono essere aggiunti ai Frame personalizzati nella configurazione dei Tag, e saranno quindi disponibili nei Frame di accesso rapido.

### Testi sincronizzati e codici di temporizzazione degli eventi

Per sincronizzare le informazioni con i dati audio, è disponibile un editor specifico. Questi frame sono supportati per i tag ID3v2.3.0 e ID3v2.4.0. Per aggiungere un frame del genere, il nome specifico del frame deve essere selezionato nell'elenco che appare quando si fa clic sul pulsante Aggiungi - Testi sincronizzati o Codici di temporizzazione evento, rispettivamente. L'editor è lo stesso per entrambi i tipi, per i codici di temporizzazione degli eventi è disponibile solo un insieme predefinito di eventi mentre per i testi sincronizzati è necessario inserire del testo. Di seguito, viene spiegata la modifica dei testi sincronizzati.

Viene selezionato un file con un tag ID3v2, si accede all'editor dei testi utilizzando Aggiungi e selezionando Testi sincronizzati. Per un frame di testi sincronizzati esistente, viene selezionato e si fa clic su Modifica. Il lettore viene aperto automaticamente con il file attuale in modo che il file possa essere riprodotto e messo in pausa per sincronizzare i testi.

Le impostazioni nella parte superiore dell'editor SYLT normalmente non devono essere modificate. Se il testo contiene caratteri che non sono presenti nell'insieme di caratteri Latin 1, è consigliabile modificare la codifica del testo in UTF16 (o UTF8 per ID3v2.4.0). Per i testi in inglese e la massima compatibilità, utilizzare ISO-8859-1.

La sezione Testi ha cinque pulsanti in alto. Aggiungi aggiungerà un nuovo evento temporale nella tabella. Il tempo è preso dalla posizione del lettore, quindi l'aggiunta di una voce durante la riproduzione della traccia aggiungerà una linea per la posizione attualmente riprodotta. Gli eventi nella tabella devono essere ordinati cronologicamente, pertanto la riga sarà inserita di conseguenza. Le voci con un orario non valido sono trattate in modo speciale: se la riga attualmente selezionata ha un orario non valido, la marca temporale relativa sarà sostituita dall'ora attuale invece di aggiungere una nuova riga. Se l'ora corrente non è valida, sarà utilizzata la prima riga con un'ora non valida. Questo comportamento dovrebbe facilitare l'aggiunta di marche temporali se il testo è già nella tabella, ma mancano le marche temporali (come nel caso dell'importazione di testi non sincronizzati). Si noti che il tempo non valido è rappresentato come 00:00.00, cioè uguale al tempo all'inizio assoluto della traccia, che non è valido. Per rendere un tempo non valido, premere il tasto Elimina o utilizzare Cancella dal menu contestuale. Le nuove righe inserite utilizzando Inserisci riga dal menu di scelta rapida o create durante l'importazione di testi non sincronizzati con Dagli appunti o Importa contengono anche marche temporali non valide. Le righe nella tabella possono essere eliminate facendo clic sul pulsante Elimina o utilizzando Elimina righe dal menu di scelta rapida.

I testi sincronizzati possono essere importati da un file utilizzando Importa. Il formato previsto è LRC semplice o avanzato. Se il file selezionato non contiene una parentesi quadra nella prima riga, si suppone che sia un semplice file di testo con testi non sincronizzati. Le righe di tale file sono quindi importate con marche temporali non valide. Le informazioni sull'ora possono essere aggiunte utilizzando il pulsante Aggiungi o tramite inserimento manuale. È anche possibile importare testi tramite copia e incolla utilizzando Dagli appunti. I testi sincronizzati possono essere scritti in file LRC utilizzando Esporta. Si noti che saranno esportate solo le voci con marche temporali valide e che le voci saranno ordinate per ora. Le voci con tempo non valido non saranno memorizzate nemmeno nel frame SYLT, assicurarsi quindi di includere tutte le informazioni di temporizzazione prima di uscire dalla finestra.

La specifica ID3 suggerisce una marca temporale ogni sillaba. Tuttavia la maggior parte dei lettori supporta solo la granularità di una riga o frase. Per supportare entrambi i casi d'uso, Kid3 segue le stesse convenzioni dell'Editor SYLT. Si presume che il testo immesso nella tabella inizi una nuova riga a meno che non inizi con uno spazio o un trattino. Eccezioni a questa regola sono possibili iniziando una riga con un trattino basso ('_') per forzare la continuazione o un cancelletto ('#') per forzare una nuova linea. Questi caratteri di escape non sono memorizzati nel frame SYLT. All'interno del frame SYLT, le nuove righe iniziano con un carattere di avanzamento di riga (esadecimale 0A) mentre le continuazioni no. Durante la lettura di frame SYLT, Kid3 controlla se la prima voce inizia con un avanzamento di riga. In caso contrario, si presume che tutte le voci siano nuove righe e che non vengano utilizzate continuazioni di sillabe.

Durante la riproduzione della traccia, viene evidenziata la riga associata alla posizione di riproduzione attuale, in modo da poter verificare la correttezza delle informazioni di sincronizzazione. Se è necessario aggiungere uno scostamento a uno o più marche temporali, questo può essere realizzato con il menu contestuale Aggiungi scostamento. I valori negativi possono essere utilizzati per ridurre il tempo. Utilizzando Scorri alla posizione nel menu contestuale, è possibile impostare la posizione di riproduzione sull'orario della riga selezionata.

Procedura consigliata per aggiungere i nuovi testi sincronizzati

- Ottenere i testi non sincronizzati, ad es. utilizzando Testi → Integra testi dal menu contestuale dell'elenco dei file.

- Copiare i testi non sincronizzati negli appunti, basta portarsi alla riga Testi nella tabella dei frame premere Ctrl+C.

- Aggiungere un frame di testi sincronizzato (Aggiungi..., Testi sincronizzati, OK), fare clic su Dagli appunti.

- Ora tutte le righe dei testi non sincronizzati sono nella tabella, tutte le marche temporali non sono valide (0:0:0.00). È possibile eliminare in anticipo le voci vuote.

- Iniziare a riprodurre il brano facendo clic sul pulsante di riproduzione ► nella barra degli strumenti di riproduzione nella parte inferiore della finestra principale.

- Quando viene visualizzata la riga del testo successiva con marca temporale non valida, fare clic su Aggiungi o premere Alt+A, la marca temporale sarà aggiornata.

- Continuare così fino a quando non sono impostate tutte le marche temporali. Se si è perso qualcosa, fermare la riproduzione e cancellare le marche temporali utilizzando il tasto Elimina o selezionandoli e utilizzando Cancella dal menu contestuale. Per riavviare la riproduzione da una determinata marca temporale, utilizzare Scorri alla posizione dal menu contestuale.

### Capitoli nei file MP4

Gli audiolibri MP4 in genere hanno un'estensione `.m4b` e sono piuttosto grandi perché contengono tutti i capitoli in un unico file. Per navigare in questi file, possono contenere contrassegni di capitolo, che possono essere modificati in Kid3 in uno pseudo-frame «Capitoli» utilizzando lo stesso editor utilizzato per testi sincronizzati. Nota, tuttavia, che questa funzione è disponibile solo con l'estensione Mp4v2Metadata, quindi assicurati che sia attivata e sopra l'estensione TaglibMetadata nella scheda Estensioni delle impostazioni se devi modificare i capitoli MP4.

Le informazioni sui capitoli negli audiolibri MP3 sono memorizzate in più frame «Capitolo» (CHAP) a cui fa riferimento un frame «Indice» (CTOC), e questi frame hanno sottoframe incorporati. Per modificare queste informazioni in un unico posto, è possibile utilizzare anche uno pseudo frame «Capitoli» per i tag ID3v2. Il suo contenuto viene utilizzato per creare il capitolo reale, l'indice e i frame incorporati: la Descrizione viene utilizzata come titolo dell'indice, la colonna Testo contiene i titoli dei capitoli e il valore Orario corrispondente sarà l'ora di inizio del capitolo e l'ora di fine del capitolo precedente. L'ora di fine dell'ultimo capitolo è determinata da Orario dell'ultima riga se il suo Testo è vuoto.

## Il menu File

File → Apri... (Ctrl+O)

  Apre una cartella. Tutti i file corrispondenti al filtro del nome file selezionato saranno visualizzati nell'elenco dei file e il file scelto sarà selezionato.

File → Apri recente

  Apre una cartella aperta di recente.

File → Apri cartella... (Ctrl+D)

  Apre una cartella. Tutti i file che corrispondono al nome del file selezionato saranno visualizzati nell'elenco.

File → Ricarica (F5)

  Ricaricare la cartella. I file modificati devono essere salvati prima. Le sottocartelle espanse saranno contratte.

File → Salva (Ctrl+S)

  Salvare tutti i file modificati nella cartella. I file modificati sono contrassegnati con un simbolo del disco nell'elenco dei file. Se sono stati modificati nomi di file, questi file saranno rinominati.

File → Scarta modifiche

  Ripristina le modifiche di uno o più file. Se non viene selezionato alcun file nell'elenco dei file, le modifiche di tutti i file saranno ripristinate, altrimenti saranno ripristinate solo le modifiche dei file selezionati.

File → Importa...

  La Finestra di importazione può essere utilizzata per importare i dati direttamente da un server freedb.org, da un server MusicBrainz, da Discogs, Amazon o altre fonti di elenchi di tracce di album in formato testuale.

  L'importazione da un server freedb.org è possibile utilizzando una finestra che appare quando è selezionato Dal server: gnudb.org. L'artista e il nome dell'album da cercare possono essere digitati nei due campi più in alto, gli album che corrispondono alla query saranno visualizzati quando si fa clic su Trova e i risultati da www.gnudb.org sono ricevuti. L'importazione dei dati delle tracce per un album viene eseguita facendo doppio clic sull'album nell'elenco. È possibile selezionare sia il server freedb.org da cui importare sia il percorso CGI. I dati importati sono visualizzati nella tabella di anteprima della finestra di importazione. Se soddisfatti delle tracce visualizzate, possono essere importati chiudendo la finestra di importazione con OK.

  Se hai già un risultato di ricerca aperto nel browser web, puoi inserire l'URL nel primo campo di ricerca. Il risultato apparirà quindi nell'elenco degli album e può essere importato direttamente in Kid3.

  Un indirizzo di posta elettronica registrato su gnudb.org può essere inserito nel campo Token.

  Una ricerca sul server di Discogs può essere eseguita utilizzando Discogs. Come nella finestra di gnudb.org, è possibile digitare artista e album e quindi scegliere da un elenco di versioni. Un Token può essere inserito per utilizzare l'API RESTful Discogs invece dell'interfaccia web, spesso modificata, impedendo così il funzionamento dell'analizzatore di importazione. È necessario registrare un account su Discogs e poi generare un token sul sito web (Impostazioni/Programmatori, Genera token). Non dimenticare Salva impostazioni dopo aver inserito il token per utilizzarlo nelle successive richieste. Se Tag standard è marcata, le informazioni standard vengono importate, ad es. artista, album e titolo. Se Tag aggiuntivi è marcata, vengono importate ulteriori informazioni se disponibili, ad es. interpreti, arrangiatori o editore. Se Copertina è marcata, la copertina sarà scaricata se disponibile.

  Una ricerca su Amazon può essere eseguita utilizzando Amazon. Come nella finestra di gnudb.org, è possibile inserire artista e album e quindi scegliere da un elenco di versioni. Se Tag aggiuntivi è marcata, vengono importate ulteriori informazioni se disponibili, ad es. interpreti, arrangiatori o editore. Se Copertina è marcata, la copertina sarà scaricata se disponibile.

  È possibile cercare nello stesso modo nella banca dati delle uscite di MusicBrainz utilizzando Da MusicBrainz Release. Il flusso è lo stesso descritto per Da gnudb.org.

  L'importazione da un server MusicBrainz è possibile utilizzando la finestra che appare quando è selezionato Da MusicBrainz Fingerprint. Il server può essere selezionato come nella finestra di importazione freedb. Segue una tabella che mostra i dati delle tracce importate. La colonna di destra mostra lo stato della query MusicBrainz, che inizia con «In sospeso» quando viene aperta la finestra. Quindi viene cercata l'impronta digitale e se non produce un risultato, viene tentata un'altra ricerca utilizzando i tag nel file. Pertanto, può essere utile che una query MusicBrainz riuscita memorizzi informazioni note (ad es. artista e album) nei tag prima dell'importazione. Se è stato trovato un risultato, la ricerca termina nello stato «Riconosciuto», altrimenti non è stato trovato nulla o più risultati ambigui e uno di essi deve essere selezionato dall'utente. OK e Applica utilizzano i dati importati, Annulla chiude la finestra. La chiusura può richiedere del tempo poiché tutto il meccanismo di MusicBrainz deve essere spento.

  Per l'importazione di dati testuali, Da file/appunti apre una sotto-finestra, in cui sono disponibili diversi formati di importazione preconfigurati. I primi due, «CSV non quotato» e «CSV quotato» possono essere utilizzati per importare dati esportati dalla finestra Esporta. I dati CSV possono essere modificati con un foglio di calcolo e devono essere scritti utilizzando le tabulazioni come delimitatori. L'importazione dovrebbe quindi essere possibile utilizzando «CSV quotato», che è più flessibile di «CSV non quotato». Tuttavia, i suoi campi non possono contenere virgolette doppie. Se si esporta solo da Kid3 e si importa in seguito, «CSV non quotato» può essere utilizzato come formato semplice per questo scopo. Si noti che ci sono anche i comandi «Esporta CSV» e «Importa CSV» nel menu contestuale dell'elenco dei file, che utilizzano gli script per esportare e importare i dati CSV in un modo più completo, potente e flessibile.

  Il formato successivo, «testo HTML di freedb», può essere usato per copiare informazioni da un pagina HTML di freedb.org. Cercare un album in freedb e se le informazioni desiderate sono visualizzate nel browser web, copiare il contenuto negli appunti. Quindi fare clic sul pulsante Dagli appunti e le tracce importate saranno visualizzate nella tabella di anteprima nella parte superiore della finestra. Se si è soddisfatti dei dati importati, chiudere la finestra con OK, che inserirà i dati nei tag della cartella attuale. La destinazione (Tag 1, Tag 2 o Tag 1 e tag 2) può essere selezionata con una casella combinata. I file nella cartella attuale devono essere nell'ordine di traccia corretto per ottenere i tag assegnati. Questo è il caso se sono numerati.

  Il formato successivo di importazione preconfigurato, «codice HTML di freedb», può essere utilizzato, se i dati sono disponibili come documento HTML. L'importazione è possibile utilizzando il pulsante Da file, che apre un selettore di file o ne copia il contenuto da un editor e quindi importa dagli appunti. Questo formato può essere utile per l'importazione non in linea, sebbene il documento HTML può anche essere aperto in un browser e quindi importato nel primo formato tramite gli appunti.

  Sono disponibili altri formati preconfigurati, ad es. «Titolo traccia Tempo». Un formato personalizzato vuoto può essere creato con Aggiungi per essere impostato dall'utente. Due righe sotto il nome del formato possono essere impostate con un'espressione regolare per acquisire i campi dal testo di importazione. La prima espressione regolare sarà analizzata una volta per ogni documento per raccogliere dati per album come artista, album, anno e genere. Si tenta di far corrispondere la seconda riga dall'inizio del documento alla fine per ottenere i dati della traccia, generalmente numero e titolo. Le espressioni regolari includono tutte le funzionalità offerte da Qt™ che è la maggior parte di ciò che Perl offre. I costrutti con parentesi «(..)» creano buffer di acquisizione per i campi da importare e sono preceduti da codici specifici di Kid3 per specificare quale campo acquisire. I codici sono gli stessi utilizzati per il formato del nome file, oltre ai codici elencati di seguito, è possibile qualsiasi nome di frame:

  - %s %{title} Titolo (Brano)

  - %a %{artist} Artista

  - %l %{album} Album

  - %c %{comment} Commento

  - %y %{year} Anno

  - %t %{track} Traccia

  - %g %{genre} Genere

  - %d %{duration} Durata

  Ad esempio, un'espressione regolare della traccia (seconda riga) da importare da una scaletta `.m3u` potrebbe essere «`%{track}(\d+) \s +%{title}(\S [^\r\n]*)\.mp3[\r\n]` ». Tutti i formati possono essere cambiati modificando le espressioni regolari e il nome e quindi facendo clic su Salva impostazioni. Saranno memorizzati nel file `kid3rc` nella cartella di configurazione. Questo file può essere direttamente modificato per avere più formati di importazione o può essere eliminato per ripristinare i formati predefiniti. I formati possono essere eliminati utilizzando Rimuovi.

  Precisione mostra una stima della corrispondenza tra le informazioni importate e le tracce fornite. Utilizza la durata delle tracce o i nomi dei file per calcolare il livello di somiglianza in percentuale. Copertina mostra l'URL dell'immagine di copertina dell'album che sarà scaricata.

  Per verificare se le tracce importate corrispondono all'insieme attuale di file, è possibile confrontare la durata delle tracce importate con la durata dei file. Questa opzione può essere abilitata con la casella di selezione Controlla la differenza di tempo massima consentita (sec): e la differenza massima tollerata nel tempo può essere impostata in secondi. Se viene rilevata una mancata corrispondenza in una lunghezza, la lunghezza viene visualizzata con uno sfondo rosso nella tabella di anteprima.

  Se i file sono ordinati in modo diverso rispetto alle tracce importate, è necessario modificare le tracce assegnate. Questa attività può essere facilitata utilizzando l'opzione Corrisponde a con i pulsanti Lunghezza, Traccia e Titolo, che riordinare le tracce in base al campo corrispondente. Per correggere manualmente le assegnazioni, è possibile trascinare una traccia con il pulsante sinistro e il tasto Ctrl premuto, quindi rilasciare nella nuova posizione.

  Se ci sono più tracce importate che file, ad esempio se la cartella attuale contiene solo il secondo disco di un album con due dischi, ma le tracce di entrambi i dischi sono importate, è possibile eliminare le tracce del primo disco selezionandole tramite un clic sull'etichetta di riga della prima traccia, quindi facendo clic sull'etichetta di riga dell'ultima traccia del primo disco tenendo premuto il tasto Maiusc e infine rimuovendo le tracce premendo il tasto Canc.

  Quando si apre la finestra di importazione, essa contiene il contenuto attuale dei tag. Il tipo di tag (Tag 1, Tag 2, Tag 1 e Tag 2) può essere selezionato utilizzando la casella combinata Destinazione. Il pulsante a destra di questa casella combinata può essere utilizzato per ripristinare la tabella al contenuto attuale dei tag. Le caselle di controllo nella prima colonna della tabella possono essere utilizzate per selezionare le tracce che vengono importate. Questo può essere utile se una cartella contiene le tracce di entrambi i CD di un doppio CD e solo le tracce del secondo CD devono essere importate.

  Per identificare le tracce importate, è possibile visualizzare i nomi dei file o i percorsi completi dei file utilizzando il menu di contestuale dell'intestazione della tabella. I valori nella tabella di importazione possono essere modificati. Il pulsante Ripristina a destra della casella combinata Destinazione può essere utilizzato per ripristinare il contenuto dei tag, che può essere utile anche dopo aver modificato la Destinazione.

  Quasi tutte le finestre dispongono di un pulsante Salva impostazioni, che può essere utilizzato per memorizzare in modo persistente le impostazioni specifiche e le dimensioni della finestra.

  Da tag porta a una sotto-finestra per impostare i frame dei tag dal contenuto di altri frame dei tag. Questo può essere usato per copiare semplicemente informazioni tra tag o estrarre una parte da un frame e inserirla in un altro.

  Come nella finestra importa da file/appunti, ci sono formati liberamente configurabili per eseguire diverse operazioni. Sono già preconfigurati formati per copiare il valore dell'album in Artista dell'album, Compositore o Direttore ed estrarre il numero di traccia dai campi del titolo che contengono un numero. Esiste anche un formato per estrarre un sottotitolo da un campo Titolo.

  L'esempio seguente spiega come aggiungere un formato personalizzato, che imposta le informazioni dal campo Sottotitoli anche nel campo Commento. Crea un nuovo formato utilizzando il pulsante Aggiungi e imposta un nuovo nome, ad es. «Sottotitolo su commento». Quindi inserire «`%{subtitle}`» in Fonte e «`%{comment}(.*)`» per Estrazione e fare clic su Salva impostazioni.

  L'espressione in Fonte può contenere codici di formato per frame di tag arbitrari, è possibile utilizzare più codici per combinare i contenuti di frame diversi. Per ogni traccia, un testo viene generato dai suoi tag utilizzando il formato Fonte e l'espressione regolare da Estrazione viene applicata a questo testo per impostare nuovi valori per i tag. I codici di formato sono utilizzati prima delle parentesi di acquisizione per specificare il frame del tag in cui deve essere memorizzato il testo acquisito. Funziona come per importa da file/appunti.

  Importa da tag... è anche disponibile direttamente dal menu File. La differenza tra queste due funzioni è che la finestra di importazione opera su tutti i file della cartella attuale mentre la funzione di menu opera sui file selezionati (che possono trovarsi in cartelle diverse). La funzione di menu supporta un codice aggiuntivo «`%{__return}`» per restituire il valore estratto, che può essere utile con le interfacce CLI e QML.

File → Importa da gnudb.org...

  Importa da un server freedb.org utilizzando la ricerca degli album di gnudb.org. Questo elemento di menu apre la stessa finestra di importazione di Importa..., ma apre direttamente la sezione gnudb.org.

File → Importa da Discogs...

  Importa dal server Discogs. Questo elemento di menu apre la stessa finestra di importazione di Importa..., ma apre direttamente la sezione Da Discogs.

File → Importa da Amazon...

  Importa da Amazon. Questo elemento di menu apre la stessa finestra di importazione di Importa..., ma apre direttamente la sezione Da Amazon.

File → Importa da MusicBrainz Release...

  Importa dalla banca dati delle uscite di MusicBrainz. Questo elemento di menu apre la stessa finestra di importazione di Importa..., ma apre direttamente la sezione Da MusicBrainz Release.

File → Importa da MusicBrainz Fingerprint...

  Importa dal server di MusicBrainz. Questo elemento di menu apre la stessa finestra di importazione di Importa..., ma apre direttamente la sezione Da MusicBrainz Fingerprint.

File → Importa da tag...

  Come Da tag, ma l'importazione è applicata ai file selezionati.

File → Importazione automatica...

  Importazione automatica consente di importare informazioni per più album da vari servizi Web. Se le cartelle sono selezionate nell'elenco dei file, saranno importati i dati di traccia per le cartelle selezionate. Se non è selezionata alcuna cartella, saranno importate tutte le cartelle nell'elenco dei file.

  Il tipo di tag (tag 1, tag 2, tag 1 e tag 2) può essere selezionato utilizzando la casella combinata Destinazione.

  I profili determinano quali server saranno contattati per recuperare le informazioni sull'album. Alcuni profili sono predefiniti (Tutti, MusicBrainz, Discogs, Copertina), i profili personalizzati possono essere aggiunti utilizzando il pulsante Aggiungi a destra della casella combinata Profilo.

  La tabella seguente mostra i server che saranno utilizzati durante l'importazione delle informazioni sull'album utilizzando il profilo selezionato. Il processo di importazione di un album è terminato se sono state trovate tutte le informazioni richieste, quindi l'ordine delle righe nella tabella è importante. Può essere modificato utilizzando i pulsanti Sposta su e Sposta giù. Modifica può essere utilizzato per modificare una voce esistente. La selezione Server offre gli stessi server che possono essere utilizzati nelle funzioni di importazione. Tag standard, Tag aggiuntivi, Copertina determinano le informazioni che devono essere recuperate dal server. Infine, Precisione è l'accuratezza minima che deve essere raggiunta per accettare i dati importati. Se la precisione non è sufficiente, sarà tentato il server successivo nell'elenco. La stessa finestra contenente le proprietà del server appare quando si fa clic su Aggiungi per aggiungere una nuova voce dei server. Le voci esistenti possono essere eliminate utilizzando Rimuovi.

  Per avviare un'importazione in serie automatica con il profilo selezionato, fare clic su Avvia. I dettagli sull'importazione in esecuzione sono visualizzati nella parte superiore della finestra. Il processo può essere interrotto con il pulsante Interrompi.

File → Preleva copertina...

  La finestra Sfoglia copertina aiuta a trovare la copertina dell'album. Artista/Album viene riempito dai tag, se possibile. Fonte offre una varietà di siti web con copertine di album. L'URL con artista e album come parametri si trova sotto il nome. I valori codificati come URL per artista e album possono essere inseriti utilizzando «`%u{artist}`» e «`% u{album}`», sono possibili altri valori dai tag anche, come descritto in Configura Kid3, Azioni dell'utente. Altre fonti possono essere inserite dopo la voce «Fonte personalizzata» sostituendo «Fonte personalizzata» con il nome della fonte, premendo Invio, quindi inserendo URL e infine premendo Salva impostazioni. Il comando del browser risultante viene visualizzato nella parte superiore della finestra e può essere avviato facendo clic su Sfoglia. Il browser, che può essere configurato nelle impostazioni, viene avviato con la fonte selezionata. Un'immagine di copertina può quindi essere trascinata dal browser nella finestra di Kid3 e sarà impostato nella cornice dei file selezionati.

  Poiché non tutti i browser supportano il trascinamento della selezione delle immagini e le immagini sui siti web spesso hanno un URL, in questi casi Kid3 riceverà l'URL e non l'immagine. Se l'URL punta a un'immagine, essa sarà scaricata. Tuttavia, se l'URL si riferisce ad altre risorse web, deve essere tradotto nell'immagine corrispondente. Tali associazioni sono definite nella tabella Estrazione URL. La colonna di sinistra Corrispondenza contiene un'espressione regolare che viene confrontata con l'URL. Se corrisponde, le espressioni catturate tra parentesi sono inserite nel modello della colonna destra Immagine e URL (nelle posizioni marcate con \1 ecc.). L'espressione regolare sostituita contiene l'URL della foto. In questo modo la copertina può essere importata da Amazon, Google Immagini, ecc. utilizzando il trascinamento della selezione. È anche possibile definire le proprie associazioni.

File → Esporta...

  La Finestra Esporta viene utilizzata per archiviare i dati dai tag in un file o negli appunti. L'editor in alto mostra un'anteprima dei dati da esportare. Se i dati di esportazione contengono caratteri di tabulazione, l'esportazione viene visualizzata in una tabella. I dati saranno generati dai tag nella cartella attuale in base al formato configurato.

  Le impostazioni del formato sono simili a quelle della finestra Importa: il campo più in alto contiene il titolo (ad es. «CSV non quotato»), seguito dall'intestazione, che sarà generata all'inizio del file. Di seguito sono riportati i dati della traccia; è usato per ogni traccia. Infine, il trailer può essere utilizzato per generare del testo finale.

  I campi del formato non contengono espressioni regolari come nella finestra Importa, ma solo espressioni di formato del risultato con speciali espressioni che iniziano con il carattere %, che saranno sostituite dai valori dei tag. Il tutto funziona come il formato del nome file e gli stessi codici sono utilizzati più alcuni codici aggiuntivi. È possibile utilizzare non solo i codici elencati di seguito, ma tutti i nomi dei frame dei tag.

  - %s %{title} Titolo (Brano)

  - %a %{artist} Artista

  - %l %{album} Album

  - %c %{comment} Commento

  - %y %{year} Anno

  - %t %{track} Traccia (ad es. 01)

  - %t %{track.n} Traccia con larghezza dei campi n (ad es. 001 per %{track.3})

  - %T %{tracknumber} Traccia (senza zeri iniziali, ad es. 1)

  - %g %{genre} Genere

  - %f %{file} Nome file

  - %p %{filepath} Percorso

  - %{modificationdate} Data di modifica

  - %{creationdate} Data di creazione

  - %u %{url} URL

  - %{dirname} Nome della cartella

  - %d %{duration} Durata in minuti:secondi

  - %D %{seconds} Durata in secondi

  - %n %{tracks} Numero di tracce dell'album

  - %e %{extension} Estensione del file

  - %O %{tag1} Il formato del tag 1 (ID3v1.1 o vuoto se non esistente)

  - %o %{tag2} Il formato del tag 2 (ID3v2.3.0, ID3v2.4.0, ID3v2.2.0, ID3v2.2.1, Vorbis, APE, MP4, ASF, o vuoto se non esistente)

  - %b %{bitrate} Bit rate in kbit/s

  - %v %{vbr} VBR o vuoto (solo per ID3v2.3 con id3lib)

  - %r %{samplerate} Campionamento in Hz

  - %m %{mode} Modalità canale (stereo o stereo congiunto)

  - %h %{channels} Numero di canali (1 o 2)

  - %k %{codec} Codificatore (ad es. MPEG 1 Layer 3, MP4, Ogg Vorbis, FLAC, MPC, APE, ASF, AIFF, WAV)

  Alcuni formati sono predefiniti. «CSV non quotato» separa i campi in schede. I dati in questo formato possono essere nuovamente importati in Kid3 utilizzando il formato di importazione con lo stesso nome. «CSV quotato» racchiude inoltre i campi tra virgolette doppie, facilitando l'importazione in applicazioni per fogli di calcolo. Tuttavia, i campi non devono contenere virgolette doppie quando si utilizza questo formato. «M3U esteso» e «PLS esteso» generano scalette con attributi estesi e nomi di percorso assoluti. «HTML» può essere utilizzato per generare una pagina HTML con collegamenti ipertestuali alle tracce. «Kover XML» crea un file che può essere importato dal programma di stampa di copertine Kover. «Dettagli tecnici» fornisce informazioni su bit rate, frequenza di campionamento, canali, ecc. Infine, «Formato personalizzato» viene lasciato vuoto per la definizione di un formato personalizzato. È possibile definire più formati personalizzati aggiungendo righe nel file `kid3rc` nella cartella di configurazione. Gli altri formati possono essere adattati alle proprie esigenze.

  La Fonte dei tag per generare i dati dell'esportazione (Tag 1 o Tag 2) può essere selezionata con una casella combinata. Premendo Su file o Negli appunti sono archiviati i dati in un file o negli appunti. OK e Annulla chiudono la finestra, mentre OK accetta le impostazioni della finestra attuale.

File → Crea scaletta...

  Crea una scaletta. Il formato e il contenuto della scaletta possono essere impostati tramite diverse opzioni.

  Il nome della scaletta può essere Come il nome della cartella oppure utilizzare un Formato con i valori dei tag, ad es. «`%{artist} - %{album}`» per avere l'artista e il nome dell'album nel nome del file della scaletta. I codici di formato sono gli stessi di Esporta. L'elenco dei formati disponibili può essere modificato nella sezione Formato della scheda File nelle impostazioni.Crea nuova scaletta vuota crea una scaletta vuota con il nome indicato. L'estensione dipende dal formato della scaletta.

  La posizione della scaletta generata è determinata dalla selezione della casella combinata Crea in.

  Cartella attuale

    La scaletta viene creata nella cartella attuale e contiene solo i file della cartella attuale. La cartella attuale è la cartella in cui si trova il file attuale. Se sono selezionati più file, il file attuale è probabilmente l'ultimo file selezionato.

  Tutte le cartelle

    Una scaletta è creata in ogni cartella che contiene i file elencati, e ogni scaletta contiene i file di quella cartella.

  Cartella principale

    Viene creata una sola scaletta nella cartella di livello superiore (cioè la cartella dell'elenco file) e contiene i file elencati della cartella di livello superiore e tutte le sue sottocartelle.

  Il Formato della scaletta può essere M3U, PLS o XSPF.

  Se è selezionato Includi solo i file selezionati, nella scaletta saranno inclusi solo i file selezionati. Se viene selezionata una cartella, saranno selezionati tutti i suoi file. Se questa casella di controllo non è attivata, tutti i file audio saranno inclusi nella scaletta.

  Ordina per nome file seleziona il solito caso in cui i file sono ordinati per nome file. Con Ordina per campo tag, è possibile ordinare in base a una stringa di formato con valori dai campi tag. Ad esempio, «`%{track.3}`» può essere utilizzato per ordinare in base al numero di traccia («`.3`» viene utilizzato per ottenere tre cifre con zeri iniziali poiché le stringhe sono utilizzate per l'ordinamento). È anche possibile utilizzare più campi, ad es. «`%{genre}%{year}`» per ordinare utilizzando una stringa composta da genere e anno.

  Le voci della scaletta avranno percorsi di file relativi o assoluti a seconda che sia impostato Usa percorso relativo per i file nella scaletta o Usa percorso completo per i file nella scaletta.

  Quando è impostato Scrivi solo un elenco di file, la scaletta conterrà solo i percorsi dei file. Per generare una scaletta estesa con informazioni aggiuntive, è possibile impostare una stringa di formato utilizzando il controllo Scrivi informazioni usando.

File → Esci (Ctrl+Q)

  Chiude l'applicazione.

## Il menu Modifica

Modifica → Seleziona tutto (Alt+A)

  Seleziona tutti i file.

Modifica → Deseleziona (Ctrl+Maiusc+A)

  Deseleziona tutti i file.

Modifica → Seleziona tutti i file nella cartella

  Seleziona tutti i file della cartella attuale.

Modifica → File precedente (Alt+Su)

  Seleziona il file precedente.

Modifica → File successivo (Alt+Giù)

  Seleziona il file successivo.

Modifica → Trova... (Ctrl+F)

  Trova le stringhe nei nomi dei file e nei tag. La finestra Trova è un sottoinsieme della finestra Sostituisci, che è descritta di seguito.

Modifica → Sostituisci... (Ctrl+R)

  Questa funzione apre una finestra per trovare e sostituire le stringhe nei nomi dei file e nei tag. L'insieme di frame in cui viene eseguita la ricerca può essere limitato disattivando la casella di controllo Seleziona tutto e selezionando i frame da cercare. Ci sono anche opzioni di ricerca disponibili per cercare all'indietro, tenendo conto delle maiuscole e per usare espressioni regolari.

  In base al numero di file, la ricerca potrebbe richiedere del tempo, perciò può essere interrotta chiudendo la finestra.

## Il menu Strumenti

Strumenti → Applica formato nome file

  Quando Applica automaticamente il formato è disattivata per il formato del nome file nella finestra di configurazione, questa voce di menu può essere utilizzata per applicare il formato configurato ai nomi dei file selezionati. Questo può anche essere utilizzato per verificare se i nomi dei file sono conformi al formato configurato applicando il formato a tutti i file salvati e quindi controllando se alcuni file sono stati modificati (e quindi marcati con il simbolo di un disco nell'elenco dei file).

Strumenti → Applica formato tag

  Quando Applica automaticamente il formato è disattivata per il formato di tag nella finestra di configurazione, questa voce di menu può essere utilizzata per applicare il formato configurato ai tag dei file selezionati. Questo può anche essere utilizzato per verificare se i tag sono conformi al formato configurato applicando il formato a tutti i file salvati e quindi controllando se alcuni file sono stati modificati (e quindi marcati con il simbolo di un disco nell'elenco dei file).

Strumenti → Applica codifica del testo

  Imposta la Codifica del testo selezionata in Impostazioni → Configura Kid3... → Sezione tag → Scheda Tag 2 per tutti i file selezionati. Se UTF8 è selezionato, UTF16 sarà utilizzato per i tag ID3v2.3.0 poiché UTF8 non è supportato per questo formato.

Strumenti → Rinomina cartella...

  Questa finestra offre la possibilità di rinominare automaticamente la cartella attualmente aperta in base ai tag nei file. Diversi formati sono preconfigurati per includere informazioni sull'artista, sull'album e sull'anno nel nome della cartella. È anche possibile impostare un formato personalizzato e Modifica l'elenco dei formati disponibili. I seguenti codici speciali vengono utilizzati per inserire i valori dei tag nel nome della cartella:

  - %s %{title} Titolo (Brano)

  - %a %{artist} Artista

  - %l %{album} Album

  - %c %{comment} Commento

  - %y %{year} Anno

  - %t %{track} Traccia (ad es. 01)

  - %t %{track.n} Traccia con larghezza dei campi n (ad es. 001 per %{track.3})

  - %T %{tracknumber} Traccia (senza zeri iniziali, ad es. 1)

  - %g %{genre} Genere

  - %{dirname} Nome della cartella (ad es. %{year" "}%{dirname} anteporrà l'anno al nome attuale della cartella)

  - %{max-year} Il valore massimo dell'anno trovato per questa cartella, può essere utilizzato per altri codici diversi da «year»

  - %{min-year} Il valore minimo dell'anno trovato per questa cartella

  - %{unq-year} Il valore unico dell'anno trovato per questa cartella o vuoto se non unico

  Se viene individuato un separatore di cartelle «/» nel formato, saranno create più cartelle. Se si desidera creare una nuova cartella anziché rinominare la cartella attuale, nella casella combinata Azione selezionare Crea cartella anziché Rinomina cartella. La Fonte delle informazioni sui tag può essere scelta tra Tag 1 e tag 2, Tag 1 e Tag 2. Un'anteprima dell'operazione di rinomina eseguita sul primo file è disponibile nelle sezioni Da e A della finestra.

  Più cartelle possono essere rinominate selezionandole

Tools → Numero tracce...

  Se i numeri delle tracce nei tag non sono impostati o hanno valori errati, questa funzione può numerare automaticamente le tracce in ordine crescente. Il numero iniziale può essere impostato nella finestra. Se è necessario numerare solo una parte delle tracce, esse devono essere selezionate.

  Quando si seleziona Numero totale di tracce, nei tag sarà impostato anche il numero di tracce.

  È possibile numerare le tracce in più cartelle. Le cartelle devono essere espanse e selezionate.

  Se è selezionato Reimposta contatore per ciascuna cartella, la numerazione delle tracce viene riavviata con il numero indicato per ciascuna cartella quando vengono selezionate più cartelle.

  La finestra di numerazione delle tracce può anche essere utilizzata per formattare i numeri di traccia esistenti senza modificare i valori quando la casella di controllo lasciata su Numero iniziale è disattivata. Il numero totale di tracce sarà aggiunto se la casella di controllo corrispondente è attiva, che può essere utilizzata per impostare il totale per tutte le tracce selezionate. Se si desidera solo la formattazione dei numeri esistenti, anche questa casella di controllo deve essere disattivata.

Strumenti → Filtro...

  Il filtro può essere utilizzato per visualizzare solo quei file che soddisfano determinati criteri. Ciò è utile se si desidera organizzare una raccolta di grandi dimensioni e modificare solo i file che non si trovano nello schema desiderato. L'espressione che definisce i file da visualizzare utilizza gli stessi codici di formato utilizzati nel formato del nome file, nell'importazione e nell'esportazione.

  - %s %{title} Titolo (Brano)

  - %a %{artist} Artista

  - %l %{album} Album

  - %c %{comment} Commento

  - %y %{year} Anno

  - %t %{track} Traccia (ad es. 01)

  - %t %{track.n} Traccia con larghezza dei campi n (ad es. 001 per %{track.3})

  - %T %{tracknumber} Traccia (senza zeri iniziali, ad es. 1)

  - %g %{genre} Genere

  - %f %{file} Nome file

  - %p %{filepath} Percorso assoluto al file

  - %e %{extension} Estensione del file

  - %O %{tag1} Il formato del tag 1 (ID3v1.1 o vuoto se non esistente)

  - %o %{tag2} Il formato del tag 2 (ID3v2.3.0, ID3v2.4.0, ID3v2.2.0, ID3v2.2.1, Vorbis, APE, MP4, ASF, o vuoto se non esistente)

  - %b %{bitrate} Bit rate in kbit/s

  - %v %{vbr} VBR o vuoto (solo per ID3v2.3 con id3lib)

  - %r %{samplerate} Campionamento in Hz

  - %m %{mode} Modalità canale (stereo o stereo congiunto)

  - %h %{channels} Numero di canali (1 o 2)

  - %k %{codec} Codificatore (ad es. MPEG 1 Layer 3, MP4, Ogg Vorbis, FLAC, MPC, APE, ASF, AIFF, WAV)

  - %w %{marked} Marcato, è 1 se il file è marcato (ad es. a causa di troncamento o violazione dello standard), vuoto altrimenti

  - %1a %1{artist}, ... Utilizzare il prefisso 1 per ottenere i valori di tag 1

  - %2a %2{artist}, ... Utilizzare il prefisso 2 per ottenere i valori di tag 2

  Questi codici sono sostituiti con i valori per il file e le stringhe risultanti possono essere confrontate con le seguenti operazioni:

  - s1 equals s2: vero se s1 e s2 sono uguali.

  - s1 contains s2: vero se s1 contiene s2, cioè s2 è una sottostringa di s1.

  - s matches re: vero se s verifica l'espressione regolare re.

  Le espressioni vere sono sostituite da 1, false da 0. I valori veri sono rappresentati da 1, true, on e yes, i valori falsi da 0, false, off e no. Le operazioni booleane sono not, and, or (in questo ordine di precedenza) e possono essere raggruppate tra parentesi.

  Alcune regole di filtro sono predefinite e possono servire da esempio per le proprie espressioni:

  Tutto

    Quando l'elenco dei file viene filtrato - questo è indicato da «[filtrato]» nel titolo della finestra - e tutti i file devono essere nuovamente visualizzati, il filtro può essere ripristinato utilizzando questo filtro.Utilizza un'espressione vuota, ma un valore vero avrebbe lo stesso effetto.

  Mancata corrispondenza tra nome file e tag

    `not (%{filepath} contains "%{artist} - %{album}/%{track} %{title}")`

    Verifica se il percorso del file è conforme al formato del nome file. Questa regola viene adattata automaticamente se cambia il formato del nome file.

  Nessun tag 1

    `%{tag1} equals ""`

    Visualizza solo i file che non hanno un tag 1.

  Nessun tag 2

    `%{tag2} equals ""`

    Visualizza solo i file che non hanno un tag 2.

  Tag ID3v2.3.0

    `%{tag2} equals "ID3v2.3.0"`

    Visualizza solo i file che non hanno un tag ID3v2.3.0.

  Tag ID3v2.4.0

    `%{tag2} equals "ID3v2.4.0"`

    Visualizza solo i file che non hanno un tag ID3v2.4.0.

  Tag 1 != Tag 2

    `not (%1{title} equals %2{title} and %1{album} equals %2{album} and %1{artist} equals %2{artist} and %1{comment} equals %2{comment} and %1{year} equals %2{year} and %1{track} equals %2{track} and %1{genre} equals %2{genre})`

    Visualizza i file con differenze tra tag 1 e tag 2.

  Tag 1 == Tag 2

    `%1{title} equals %2{title} and %1{album} equals %2{album} and %1{artist} equals %2{artist} and %1{comment} equals %2{comment} and %1{year} equals %2{year} and %1{track} equals %2{track} and %1{genre} equals %2{genre}`

    Visualizza i file con tag 1 e tag 2 identici.

  Incompleto

    `%{title} equals "" or %{artist} equals "" or %{album} equals "" or %{year} equals "" or %{tracknumber} equals "" or %{genre} equals ""`

    Visualizza i file con valori vuoti nei tag standard (titolo, artista, album, data, numero traccia, genere).

  Nessuna immagine

    `%{picture} equals ""`

    Visualizza solo i file che non hanno un'immagine.

  Marcato

    `not (%{marked} equals "")`

    Visualizza solo i file che sono marcati perché violano lo standard ID3, sono troncati o l'immagine è troppo grande.

  Filtro personalizzato

    Per aggiungere il proprio filtro, selezionare questa voce. Ad esempio, se si desidera avere un filtro per gli artisti che iniziano con «The», sostituire «Filtro personalizzato» con il nome «The Bands» e premere Invio. Quindi inserire la seguente espressione nel campo di testo:

    `%{artist} matches "The.*"`

    Quindi fare clic su Salva impostazioni. Fare clic su Applica per filtrare i file. Tutti i file elaborati sono visualizzati nella vista di testo, con un «+» per quelli che corrispondono al filtro e un «-» per gli altri. Al termine, sono visualizzati solo i file con un artista il cui nome inizia con «The» e il titolo della finestra è marcato con «[filtrato]».

Strumenti → Converti ID3v2.3 in ID3v2.4

  Se ci sono tag ID3v2.3 nei file selezionati, saranno convertiti in tag ID3v2.4. I frame che non sono supportati da TagLib saranno eliminati. Saranno convertiti solo i file senza modifiche non salvate.

Strumenti → Converti ID3v2.4 in ID3v2.3

  Se ci sono tag ID3v2.4 nei file selezionati, saranno convertiti in tag ID3v2.3. Saranno convertiti solo i file senza modifiche non salvate.

Strumenti → Riproduci

  Si apre una semplice barra degli strumenti per riprodurre file audio. Contiene i pulsanti per le operazioni di base (Riproduci/Pausa, Interrompi riproduzione, Traccia precedente, Traccia successiva, Chiudi), cursori per posizione e volume e un indicatore della posizione attuale. Se si selezionati più file, le tracce selezionate sono riprodotte, altrimenti saranno riprodotti tutti i file.

  Il tempo visualizzato può essere commutato tra tempo trascorso e tempo rimanente facendo clic sullo schermo.

## Il menu Impostazioni

Impostazioni → Mostra la barra degli strumenti

  Commuta la visualizzazione della barra degli strumenti.

Impostazioni → Mostra la barra di stato

  Commuta la visualizzazione della barra di stato, che visualizza azioni più lunghe come l'apertura o il salvataggio di una cartella.

Impostazioni → Mostra immagine

  Commuta la visualizzazione dell'immagine di anteprima della copertina dell'album.

Impostazioni → Nascondi automaticamente i tag

  I tag vuoti sono automaticamente nascosti se questa opzione è attiva. Le sezioni File, Tag 1 e Tag 2 possono essere compresse manualmente ed espanse facendo clic sui pulsanti corrispondenti -/+.

Impostazioni → Configurare scorciatoie da tastiera...

  Apre una finestra per assegnare le scorciatoie da tastiera per la maggior parte delle funzioni del programma. Ci sono anche funzioni senza menu o pulsante corrispondente disponibili, ad es. file successivo, file precedente, selezionare tutto.

Impostazioni → Configura Kid3...

  Apre la finestra di configurazione, che consiste di pagine per tag, azioni dell'utente e impostazioni di rete.

  Le opzioni specifiche dei tag sono disponibili nella pagina Tag, che è essa stessa suddivisa in quattro schede per Tag 1, Tag 2, Tag 3 e Tutti i tag.

  Se Evidenzia i campi troncati è selezionata, i campi troncati ID3v1.1 saranno marcati in rosso. I campi di testo dei tag ID3v1.1 possono contenere solo 30 caratteri, il commento solo 28 caratteri. Anche i numeri di genere e traccia sono limitati, in modo che i campi possano essere troncati quando importati o trasferiti da ID3v2. I campi troncati e il file saranno marcati in rosso e il segno sarà rimosso dopo la modifica del campo.

  Con Codifica del testo per ID3v1 è possibile impostare l'insieme di caratteri utilizzato nei tag ID3v1. Questa codifica dovrebbe essere ISO-8859-1, quindi si consiglia di mantenere questo valore predefinito. Tuttavia, ci sono tag in giro con codifica diversa, quindi può essere impostato qui e i tag ID3v1 possono essere copiati in ID3v2 che supporta Unicode.

  La casella di selezione Utilizza il formato traccia/numero totale delle tracce controlla se il campo del numero di traccia dei tag ID3v2 contiene semplicemente il numero di traccia o in aggiunta il numero totale di tracce nella cartella.

  Quando si seleziona Genere come testo anziché stringa numerica, tutti i generi ID3v2 saranno archiviati come stringa di testo anche se esiste un codice corrispondente per i generi ID3v1. Se questa opzione non è impostata, i generi per i quali esiste un codice ID3v1 vengono memorizzati come numero del codice del genere (tra parentesi per ID3v2.3). Pertanto, il genere Metal viene memorizzato come «Metal» o «(9)» a seconda di questa opzione. I generi che non sono nell'elenco dei generi ID3v1 sono sempre memorizzati come stringa di testo. Lo scopo di questa opzione è una migliore compatibilità con i dispositivi che non interpretano correttamente i codici di genere.

  Quando si seleziona File WAV con blocco ID3 minuscolo, il blocco RIFF utilizzato per archiviare i tag ID3v2 nei file WAV sarà chiamato «id3» anziché «ID3». Per impostazione predefinita, Kid3 e altre applicazioni che utilizzano TagLib accettano sia la variante minuscola sia quella maiuscola durante la lettura di file WAV, ma utilizzano «ID3» quando scrivono tag ID3v2 su file WAV. Poiché esistono altre applicazioni che accettano solo «id3» (ad es. JRiver Media Center e foobar2000), questa opzione può essere utilizzata per creare tag che possono essere letti da tali applicazioni.

  Quando si seleziona Evidenzia le violazioni dello standard, i campi ID3v2 che violano lo standard saranno marcati in rosso. I dettagli sulla violazione sono mostrati in una descrizione:

  - Deve essere unico

  - Una nuova riga non è consentita

  - Il ritorno a capo non è consentito

  - Il proprietario non può essere vuoto

  - Deve essere numerico

  - Deve essere numerico o numero/totale

  - Il formato è GGMM

  - Il formato è HHMM

  - Il formato è AAAA

  - Deve iniziare con un anno e un carattere di spaziatura

  - Deve essere una data/ora ISO 8601

  - Deve essere una chiave musicale, 3 caratteri, A-G, b, #, m, o

  - Deve avere un codice di lingua ISO 639-2, 3 caratteri minuscoli

  - Deve essere un codice ISRC, 12 caratteri

  - Deve essere un elenco di stringhe separate da «|»

  - Ha uno spazio in eccesso

  I documenti degli standard ID3 sono disponibili in linea:

  - Tag ID3 versione 2.3.0

  - Tag ID3 versione 2.4.0 - Struttura principale

  - Tag ID3 versione 2.4.0 - Frame nativi

  Codifica del testo definisce la codifica predefinita utilizzata per i frame ID3v2 e può essere impostata su ISO-8859-1, UTF16 o UTF8. UTF8 non è valido per i frame ID3v2.3.0; se impostato, sarà utilizzato UTF16. Per i frame ID3v2.4.0, sono possibili tutte e tre le codifiche.

  Versione usata per i nuovi tag determina se i nuovi tag ID3v2 sono creati come versione 2.3.0 o 2.4.0.

  Cifre del numero di traccia è il numero di cifre nei campi Numero traccia. Gli zeri iniziali sono utilizzati per la spaziatura. Ad esempio, con un valore di 2 il numero di traccia 5 è impostato come «05».

  La casella combinata Nome campo commento è rilevante solo per i file Ogg/Vorbis e FLAC e imposta il nome del campo utilizzato per i commenti. Applicazioni diverse sembrano usare nomi diversi, «`COMMENT`» ad esempio è utilizzato da XMMS, mentre Amarok utilizza «`DESCRIPTION`».

  Il formato delle immagini nei file Ogg/Vorbis è determinato da Nome campo immagine, che può essere «`METADATA_BLOCK_PICTURE`» o «`COVERART`». Il primo è lo standard ufficiale e utilizza lo stesso formato delle immagini nei tag FLAC. «`COVERART`» è un modo non ufficiale precedente di includere immagini nei commenti di Vorbis. Può essere utilizzato per la compatibilità con lettori datati.

  Se la casella di selezione Se più grande di (byte) è attivata, i file contenenti copertine degli album incorporate che superano la dimensione data in byte sono marcati in rosso. Questo può essere usato per trovare file contenenti immagini di grandi dimensioni che non sono accettate da alcune applicazioni e lettori. Il valore predefinito è 131072 byte (128 KB).

  Generi personalizzati può essere utilizzato per definire i generi che non sono disponibili nell'elenco dei generi standard, ad es. «Gothic Metal». Tali generi personalizzati appariranno nella casella combinata Genere di Tag 2. Per i tag ID3v1.1, è possibile utilizzare solo i generi predefiniti.

  L'elenco di generi personalizzati può anche essere utilizzato per ridurre il numero di generi disponibili nella casella combinata Genere a quelli normalmente utilizzati. Se la propria raccolta contiene principalmente musica nei generi Metal, Gothic Metal, Ancient e Hard Rock, è possibile inserire quei generi e marcare Mostra solo generi personalizzati. La casella combinata Tag 2 Genere conterrà quindi solo quei quattro generi e non sarà necessario cercarli nell'elenco completo dei generi. In questo esempio, solo Metal e Hard Rock saranno elencati nell'elenco dei generi di tag 1, poiché queste due voci di generi personalizzati sono generi standard. Se Mostra solo generi personalizzati non è attiva, i generi personalizzati possono essere trovati alla fine dell'elenco dei generi.

  In Frame personalizzati, è possibile definire fino a otto nomi di frame personalizzati, che possono quindi essere utilizzati come frame unificati, ad esempio come frame di accesso rapido.

  Frame di accesso rapido definisce quali tipi di frame sono mostrati sempre nella sezione Tag 2. Tali frame possono quindi essere aggiunti senza prima utilizzare il pulsante Aggiungi. L'ordine di questi frame di accesso rapido può essere modificato trascinando gli elementi.

  La casella combinata Nome campo numero traccia è rilevante solo per RIFF INFO e imposta il nome del campo utilizzato per i numeri di traccia. I numeri di traccia non sono specificati nello standard RIFF originale, ci sono applicazioni che utilizzano «`ITRK`», altri utilizzano «`IPRT`».

  Formato tag contiene opzioni per il formato dei tag. Quando è selezionato Applica automaticamente il formato, la configurazione del formato viene utilizzata automaticamente durante la modifica del testo nei campi di testo. Convalida abilita validatori nei controlli con i valori di traccia/totale e data/ora. Maiuscole/minuscole può essere impostato su Nessuna modifica, Tutte minuscole, Tutte maiuscole, Prima lettera maiuscola o Tutte le prime lettere maiuscole. Per utilizzare una conversione basata sulla localizzazione tra caratteri minuscoli e maiuscoli, è possibile selezionare una localizzazione nella casella combinata di seguito. L'elenco di sostituzione delle stringhe può essere impostato su associazioni di stringhe arbitrarie. Per aggiungere una nuova associazione, selezionare la cella Da di una riga e inserire il testo da sostituire, quindi portarsi sulla colonna A e inserire il testo sostitutivo. Quando il testo da sostituire inizia e termina con una barra ("/"), viene utilizzata un'espressione regolare. Per le espressioni regolari contenenti gruppi di acquisizione, le occorrenze di \1, \2, ... in A vengono sostituite con la stringa acquisita dal gruppo di acquisizione corrispondente. Per rimuovere un'associazione impostare la cella Da su un valore vuoto (ad es. digitando prima lo spazio e poi il backspace). L'inserimento e l'eliminazione di righe è anche possibile utilizzando un menu di scelta rapida che viene visualizzato quando si fa clic sul pulsante destro. La sostituzione è attiva solo se la casella di selezione Sostituzione stringa è marcata.

  La tabella in Valutazione contiene l'associazione delle valutazioni in stelle ai valori effettivi memorizzati nel tag. I frame con informazioni di valutazione sono elencati nella riga Valutazione dell'elenco dei frame. Per questi frame, la valutazione può essere impostata assegnando un numero di stelle su cinque. Diversi formati di tag e diverse applicazioni utilizzano valori diversi per associare la valutazione in stelle al valore memorizzato nel tag. Per visualizzare il numero corretto di stelle, Kid3 cercherà una mappa in questa tabella. La chiave per cercare l'associazione è il nome del frame, ad esempio «RATING» utilizzato per i commenti di Vorbis o «IRTD» per RIFF INFO. Per i tag ID3v2, viene utilizzata una chiave combinata costituita dal frame ID «POPM» del frame Popularimeter e dal suo campo «Email», separati da un punto. Pertanto, esistono diverse chiavi per ID3v2, ad es. «POPM.Windows Media Player 9 Series» per l'associazione utilizzata da Windows Media Player ed Explorer, e semplicemente «POPM» per i frame POPM con un campo «Email» vuoto. Poiché possono esistere più voci per «POPM», il loro ordine è importante. Quando Kid3 aggiunge un nuovo frame Popularimeter, utilizzerà la prima voce «POPM» per determinare il valore da scrivere nel campo «Email». Questo valore specificherà quindi l'associazione da utilizzare per le stelle. La prima voce viene utilizzata anche se non viene trovata alcuna chiave, pertanto è la voce predefinita.

  Oltre alla colonna Nome contenente le chiavi, la tabella ha le colonne da 1 a 5 per i valori da memorizzare quando viene dato il numero di stelle corrispondente . Al contrario, i valori determinano il numero di stelle visualizzate per il valore memorizzato nel frame. Ad esempio, la riga nella tabella seguente contiene i valori 1, 64, 128, 196, 255. Le soglie per il numero di stelle da visualizzare si trovano tra questi valori e sono compatibili con ciò che Windows® Explorer utilizza.

  Tabella 3.2. Voce nella tabella di valutazione

  Nome | 1 | 2 | 3 | 4 | 5
  --- | --- | --- | --- | --- | ---
  POPM | 1 | 64 | 128 | 196 | 255
  Intervallo | 1-31 | 32-95 | 96-159 | 160-223 | 224-255

  Nella pagina File la casella di selezione Carica gli ultimi file aperti può essere contrassegnata in modo che Kid3 si aprirà e selezionerà l'ultimo file selezionato al successivo avvio. Mantieni data/ora del file può essere marcata per conservare la marca temporale di modifica del file. Nome file per copertina imposta il nome suggerito quando un'immagine incorporata viene esportata in un file. Con Codifica del testo (esportazione, scaletta) è possibile impostare la codifica utilizzata durante la scrittura dei file. Il Sistema predefinito può essere modificato, ad esempio, se le scalette devono essere utilizzate su un dispositivo diverso.

  Se Marca le modifiche è attiva, i campi modificati sono marcati con uno sfondo grigio chiaro.

  La sezione Elenco file determina quali file vengono visualizzati nell'elenco dei file. Un Filtro può essere utilizzato per limitare gli elementi in questo elenco ai file con estensioni supportate. Per specificare esplicitamente quali cartelle visualizzare nell'elenco dei file o escludere determinate cartelle, è possibile utilizzare le opzioni Includi cartelle e Escludi cartelle. Possono contenere espressioni con metacaratteri, ad esempio `*/Musica/*` per includere solo la cartella `Musica` o `*/iTunes/*` per escludere la cartella iTunes dall'elenco dei file. Se devono essere utilizzate più espressioni di questo tipo, possono essere separate da spazi o punti e virgola.

  I pulsanti Nome file dal tag e Tag dal nome file nella sezione Formato aprono le finestre per modificare i formati disponibili nelle caselle combinate Formato (con le frecce su e giù), che si trovano nella sezione File della finestra principale.

  Il pulsante Scaletta può essere utilizzato per modificare i formati dei nomi dei file disponibili nella finestra Crea scaletta.

  Formato nome file contiene opzioni per il formato dei nomi dei file. Sono disponibili le stesse opzioni di Formato tag.

  Inoltre, è possibile impostare la Lunghezza massima consentita per i nomi dei file. La maggior parte dei file system moderni ha un limite di 255 caratteri, ma se vuoi masterizzare i file su CD, dovresti impostare il limite a 64. Se Usa per i nomi di scalette e cartelle è selezionata, il formato del nome del file viene utilizzato anche durante la creazione di scalette e la rinomina delle cartelle.

  La pagina Azioni dell'utente contiene una tabella con i comandi disponibili nel menu contestuale dell'elenco dei file. Per operazioni critiche come l'eliminazione di file, è consigliabile marcare Conferma per visualizzare una finestra di conferma prima di eseguire il comando. Risultato può essere contrassegnato per vedere il risultato scritto dei comandi della console (standard output e standard error). Nome è il nome visualizzato nel menu contestuale. Comando è la riga di comando da eseguire. Gli argomenti possono essere passati utilizzando i seguenti codici:

  - %F %{files} Percorsi dei file (un elenco se sono selezionati più file)

  - %f %{file} Percorso di un file singolo

  - %uF %{urls} URL (un elenco se più file sono selezionati)

  - %uf %{url} URL a un file singolo

  - %d %{directory} Cartella

  - %s %{title} Titolo (Brano)

  - %a %{artist} Artista

  - %l %{album} Album

  - %c %{comment} Commento

  - %y %{year} Anno

  - %t %{track} Traccia (ad es. 01)

  - %t %{track.n} Traccia con larghezza dei campi n (ad es. 001 per %{track.3})

  - %T %{tracknumber} Traccia (senza zeri iniziali, ad es. 1)

  - %g %{genre} Genere

  - %b %{browser} Comando per avviare il browser web

  - %q %{qmlpath} Cartella di base per i file QML forniti

  Il codice speciale @separator può essere impostato come comando per inserire un separatore nel menu contestuale delle azioni dell'utente. Le voci di menu possono essere inserite in un sottomenu racchiudendole con i comandi @beginmenu e @endmenu. Il nome del sottomenu è determinato dalla colonna Nome del comando @beginmenu.

  Per eseguire gli script QML, @qml viene utilizzato come nome di comando. Il percorso dello script QML viene passato come parametro. Gli script forniti sono disponibili nella cartella `%{qmlpath}/script/` (su Linux® in genere `/usr/share/kid3/qml/script/`, su Windows `qml/script/` all'interno della cartella di installazione e su macOS® nella cartella dell'applicazione `kid3.app/Contents/Resources/qml/script/`). Gli script personalizzati possono essere archiviati in qualsiasi cartella. Se il codice QML utilizza componenti della GUI, @qmlview sarà utilizzato al posto di @qml. Ulteriori parametri vengono passati allo script QML dove saranno disponibili tramite la funzione `getArguments()`. Una panoramica di alcune funzioni e proprietà disponibili in QML è disponibile nell'appendice Interfaccia QML.

  Il comando che sarà inserito con %{browser} può essere definito nella riga Browser web sopra. I comandi che iniziano con %{browser} possono essere utilizzati per recuperare informazioni sui file audio dal web, ad esempio

      %{browser} http://lyricwiki.org/%u{artist}:%u{title}

  interrogherà i testi del brano attuale in LyricWiki. La «u» in %u{artist} e %u{title} viene utilizzata per la codifica come URL delle informazioni relative all'artista %{artist} e al brano %{title}. È facile definire le proprie query allo stesso modo, ad es. una ricerca di immagini con Google:

      %{browser} http://images.google.com/images?q=%u{artist}%20%u{album}

  Per aggiungere la copertina dell'album al tag 2, è possibile cercare immagini con Google o Amazon utilizzando i comandi descritti sopra. L'immagine può essere aggiunta al tag con il trascinamento della selezione. È possibile aggiungere un'immagine anche con Aggiungi, quindi selezionare il frame Immagine e importare un file di immagine o incollarlo dagli appunti. I frame sono supportati per i tag ID3v2, MP4, FLAC, Ogg e ASF.

  Per aggiungere ed eliminare voci nella tabella, può essere utilizzato un menu contestuale.

  La pagina Rete contiene solo un campo per inserire l'indirizzo proxy e facoltativamente la porta, separati da due punti. Il proxy sarà utilizzato durante l'importazione da un server Internet quando la casella di selezionate è marcata.

  Nella pagina Estensioni, le estensioni disponibili possono essere abilitate o disabilitate. Le estensioni sono divise in due sezioni. L'elenco Estensioni metadati e priorità contiene estensioni che supportano i formati di file audio. L'ordine delle estensioni è importante perché vengono provate dall'alto verso il basso. Alcuni formati sono supportati da più estensioni, quindi i file saranno aperti con la prima estensione che li supporta. TaglibMetadata supporta la maggior parte dei formati, se si trova in cima all'elenco, aprirà la maggior parte dei file. Se si desidera utilizzare un'estensione diversa per un formato di file, assicurarsi che sia elencata prima dell'estensione TaglibMetadata. I dettagli sull'estensione dei metadati e sul motivo per cui si potrebbe volerla utilizzare al posto di TagLib sono elencati di seguito.

  - Id3libMetadata: utilizza id3lib per i tag ID3v1.1 e ID3v2.3 nei file MP3, MP2, AAC. Supporta alcuni tipi di frame in più rispetto a TagLib.

  - OggFlacMetadata: utilizza libogg, libvorbis, libvorbisfile per i file Ogg e inoltre libFLAC ++ e libFLAC per i file FLAC. Queste sono le librerie ufficiali per questi formati.

  - TaglibMetadata: utilizza TagLib che supporta molti formati di file audio. Può essere usato per tutti i file audio supportati da Kid3.

  - Mp4v2Metadata: mp4v2 è stato originariamente utilizzato da Kid3 per supportare i file M4A. Può essere utilizzato in caso di problemi con il supporto M4A di TagLib.

  La sezione Estensioni disponibili elenca le estensioni rimanenti. Il loro ordine non è importante, ma possono essere abilitate o disabilitate utilizzando le caselle di controllo.

  - AmazonImport: utilizzata per la funzione Importa da Amazon....

  - DiscogsImport: utilizzata per la funzione Importa da Discogs....

  - FreedbImport: utilizzata per la funzione Importa da gnudb.org....

  - MusicBrainzImport: utilizzata per la funzione Importa da MusicBrainz Release....

  - AcoustidImport: utilizzata per la funzione Importa da MusicBrainz Fingerprint..., che dipende dalle librerie Chromaprint e libav.

  Le estensioni disabilitate non saranno caricate. Questo può essere utilizzato per ottimizzare l'utilizzo delle risorse e i tempi di avvio. Le impostazioni in questa pagina hanno effetto solo dopo il riavvio di Kid3.

## Il menu Aiuto

Aiuto → Manuale di Kid3

  Apre questo manuale.

Aiuto → Informazioni su Kid3

  Visualizza brevi informazioni su Kid3.

# Capitolo 4. kid3-cli

## Comandi

kid3-cli offre un'interfaccia a riga di comando per Kid3. Se si utilizza il percorso di una cartella, la cartella viene aperta. Se si forniscono uno o più percorsi di file, sarà aperta la cartella comune e i file saranno selezionati. I comandi successivi funzioneranno quindi su questi file. I comandi sono specificati utilizzando le opzioni `-c`. Se vengono passati più comandi, saranno eseguiti nell'ordine indicato. Se i file vengono modificati dai comandi, saranno salvati alla fine. Se non vengono passate opzioni di comando, kid3-cli si avvia in modalità interattiva. I comandi possono essere inseriti e opereranno sulla selezione attuale. Le seguenti sezioni elencano tutti i comandi disponibili.

### Aiuto

`help` [`NOME-COMANDO`]

Visualizza un guida relativa ai parametri di `NOME-COMANDO` o su tutti i comandi, se nessun nome comando è specificato.

### Tempo massimo

`timeout` [ default | off | `TEMPO` ]

Sovrascrivere il tempo massimo del comando predefinito. I comandi CLI si interrompono dopo che è scaduto un tempo massimo specifico del comando. Questo tempo massimo è di 10 secondi per ls e albumart, 60 secondi per autoimport e filter e 3 secondi per tutti gli altri comandi. Se è necessario elaborare un numero enorme di file, questi tempi potrebbero essere troppo restrittivi, pertanto il tempo massimo per tutti i comandi può essere impostato su `TIME` ms, disattivato del tutto o lasciato ai valori predefiniti.

### Chiudere l'applicazione

`exit` [force]

Chiudere l'applicazione. Se ci sono file modificati e non salvati, è richiesto il parametro `force`.

### Cambiare cartella

`cd` [`CARTELLA`]

Se non viene specificato `FOLDER`, passare alla cartella principale. Se viene fornita una cartella, passare alla cartella. Se vengono forniti uno o più percorsi di file, passare alla loro cartella comune e selezionare i file.

### Stampare il nome della cartella attuale

`pwd`

Stampa il nome della cartella di lavoro attuale.

### Elenco delle cartelle

`ls`

Elenca il contenuto della cartella attuale. Questo corrisponde all'elenco dei file nella GUI di Kid3. Cinque caratteri prima dei nomi dei file mostrano lo stato del file.

- `>` Il file è selezionato.

- `*` Il file è modificato.

- `1` Il file ha un tag 1, altrimenti '`-`' è visualizzato.

- `2` Il file ha un tag 2, altrimenti '`-`' è visualizzato.

- `3` Il file ha un tag 3, altrimenti '`-`' è visualizzato.

    kid3-cli> ls
      1-- 01 Intro.mp3

    > 12- 02 We Only Got This One.mp3
     *1-- 03 Outro.mp3

In questo esempio, tutti i file hanno un tag 1, il secondo file ha anche un tag 2 ed è selezionato. Il terzo file è modificato.

### Salvare i file modificati

`save`

### Selezionare i file

`select` [ all | none | first | previous | next | `FILE`... ]

Per selezionare tutti i file, digitare `select all`, per deselezionare tutti i file, digitare `select none`. Per attraversare i file nella cartella attuale iniziare con `select first`, quindi andare avanti utilizzando `select next` o indietro utilizzando `select previous`. È possibile aggiungere file specifici alla selezione attuale assegnando i nomi ai file. I metacaratteri sono possibili, quindi `select *.mp3` selezionerà tutti i file MP3 nella cartella attuale.

    kid3-cli> select first
    kid3-cli> ls

    > 1-- 01 Intro.mp3
      12- 02 We Only Got This One.mp3
     *1-- 03 Outro.mp3
    kid3-cli> select next
    kid3-cli> ls
      1-- 01 Intro.mp3

    > 12- 02 We Only Got This One.mp3
     *1-- 03 Outro.mp3
    kid3-cli> select *.mp3
    kid3-cli> ls

    > 1-- 01 Intro.mp3

    > 12- 02 We Only Got This One.mp3

    >*1-- 03 Outro.mp3

### Selezionare i tag

`tag` [`NUMERI-TAG`]

Molti comandi hanno un parametro `TAG-NUMBERS` facoltativo, che specifica se il comando opera sui tag 1, 2 o 3. Se questo parametro viene omesso, vengono utilizzati i numeri dei tag predefiniti, che possono essere impostati da questo comando. All'avvio, è impostato su `12`, il che significa che le informazioni vengono lette dal tag 2 se disponibili, altrimenti dal tag 1; le modifiche sono apportate al tag 2. ``TAG-NUMBERS`` può essere impostato su `1`, `2` o `3` per operare solo sul tag corrispondente. Se il parametro viene omesso, viene visualizzata l'impostazione attuale.

### Ottenere il frame del tag

`get` [ all | `NOME-FRAME` ] [`NUMERI-TAG`]

Questo comando può essere utilizzato per leggere il valore del frame di un tag specifico o ottenere informazioni su tutti i frame di tag (se l'argomento viene omesso o viene utilizzato `all`). I frame modificati sono marcati con un '`*`'.

    kid3-cli> get
    File: MPEG 1 Layer 3 192 kbps 44100 Hz Joint Stereo
      Name: 01 Intro.mp3
    Tag 1: ID3v1.1
      Title         Intro
      Artist        One Hit Wonder
      Album         Let's Tag
      Date          2013
      Track Number  1
      Genre         Pop
    kid3-cli> get title
    Intro

Per salvare il contenuto del frame di un'immagine in un file, utilizzare

    get picture:'/percorso/a/folder.jpg'

Per salvare i testi sincronizzati in un file LRC, utilizzare

    get SYLT:'/percorso/a/testo.lrc'

È possibile ottenere solo un campo specifico da un frame, ad esempio `get POPM.Email` per il campo Email di un frame Popularimeter. Se un file ha più frame dello stesso tipo, i diversi frame possono essere indicizzati con parentesi, ad esempio il primo interprete da un commento di Vorbis può essere recuperato utilizzando `get performer [0]`, il secondo utilizzando `get performer [1]`.

Il nome dello pseudo-campo «selected» può essere utilizzato per verificare se è selezionata un frame, ad esempio `get artist.selected` restituirà `1` se è selezionato il frame dell'artista, altrimenti `0`.

Il nome dello pseudo-frame «ratingstars» può essere utilizzato per ottenere il valore del frame «rating» come valore specifico del formato corrispondente al numero di stelle (da 0 a 5). Quando si utilizza «rating», viene restituito il valore interno.

### Impostare il frame del tag

`set` {`NOME-FRAME`} {`VALORE-FRAME`} [`NUMERI-TAG`]

Questo comando imposta il valore del frame di un tag specifico. Se `FRAME-VALUE` è vuoto, il frame viene eliminato.

    kid3-cli> set remixer 'O.H. Wonder'

Per impostare il contenuto di un frame da un file, utilizzare

    set picture:'/percorso/a/folder.jpg' 'Descrizione immagine'

Per impostare i testi sincronizzati da un file LRC, utilizzare

    set SYLT:'/percorso/a/testo.lrc' 'Descrizione del testo'

Per impostare un campo specifico di un frame, il nome del campo può essere dato dopo un punto, ad es. per impostare il campo Contatore di un frame Popularimeter, utilizzare

    set POPM.Counter 5

Un'applicazione per le specifiche del campo è il caso in cui si desidera un frame TXXX personalizzato con descrizione «rating» anziché un frame Popularimeter standard (questo sembra essere utilizzato da alcune estensioni). È possibile creare un frame di classificazione TXXX con kid3-cli, tuttavia è necessario prima creare un frame TXXX con la descrizione «rating» e quindi impostare il valore di questo frame sul valore di rating.

    kid3-cli> set rating ""
    kid3-cli> set TXXX.Description rating
    kid3-cli> set rating 5

Il primo comando eliminerà un frame POPM esistente, perché se esiste un frame del genere, `set rating 5` imposterà il frame POPM e non il frame TXXX. Un'altra possibilità sarebbe quella di utilizzare `set TXXX.Text 5`, ma funzionerebbe solo se non fosse presente nessun altro frame TXXX.

Per impostare più frame dello stesso tipo, è possibile indicare un indice tra parentesi, ad es. per impostare più performer in un commento di Vorbis, utilizzare

    kid3-cli> set performer[0] 'Liza don Getti (soprano)'
    kid3-cli> set performer[1] 'Joe Barr (piano)'

Per selezionare determinati frame prima di copiare, incollare o rimuovere un'azione, è possibile utilizzare il nome dello pseudo-campo «selected». Normalmente, tutti i frame sono selezionati, per deselezionare tutto, utilizzare `set '*.selected' 0`, quindi ad esempio `set artist.selected 1` per selezionare il frame dell'artista.

Il nome dello pseudo-frame «ratingstars» può essere utilizzato per impostare il valore del frame «rating» sul valore specifico del formato corrispondente al numero di stelle (da 0 a 5). Il nome del frame «rating» può essere utilizzato per impostare il valore interno.

L'impostazione di «ratingstars» su più file con formati di tag diversi non funzionerà perché il frame con il valore mappato dal conteggio delle stelle viene creato per il primo file e poi utilizzato per tutti i file. Quindi invece di `kid3-cli -c "set ratingstars 2" *` dovresti piuttosto usare `for f in *; do kid3-cli -c "set ratingstars 2" "$f"; done`.

### Ripristinare

`revert`

Annullare tutte le modifiche nei file selezionati (o tutti i file se non è selezionato alcun file).

### Importare da file

`import` {`FILE`} {`NOME-FORMATO`} [`NUMERI-TAG`]

I tag sono importati dal file `FILE` nel formato con il nome `FORMAT-NAME` (ad es. `«CSV non quotato»` , vedere Importa).

Se `tags` viene fornito per `FILE`, i tag sono importati da altri tag. Invece di `FORMAT-NAME` sono richiesti i parametri `SOURCE` e `EXTRACTION`, vedere Importa da tag. Per applicare l'importazione dai tag sui file selezionati, utilizzare `tagsel` invece di `tag`. Questa funzione supporta anche il risultato del valore estratto utilizzando un `EXTRACTION` con il valore `%{__return}(.+)`.

### Importazione automatica

`autoimport` [`NOME-PROFILO`] [`NUMERI-TAG`]

Importazione in serie utilizzando il profilo `PROFILE-NAME` (vedere Importazione automatica, `"All"` viene utilizzato se omesso).

### Scaricare le copertine

`albumart` {`URL`} [all]

Impostare la copertina dell'album scaricando un'immagine da `URL`. Le regole definite nella finestra Sfoglia copertina sono utilizzate per trasformare gli URL generici (ad es. da Amazon) in un URL di un'immagine. Per impostare la copertina dell'album da un file di immagine locale, utilizzare il comando set.

    kid3-cli> albumart
    http://www.amazon.com/Versus-World-Amon-Amarth/dp/B000078DOC

### Esporta su file

`export` {`FILE`} {`NOME-FORMATO`} [`NUMERI -TAG`]

I tag sono esportati nel file `FILE` nel formato con il nome `FORMAT-NAME` (ad es. `«CSV non quotato»`, vedere Esportazione).

### Creare una scaletta

`playlist`

Creare una scaletta nel formato impostato nella configurazione, vedere Creare una scaletta.

### Applicare il formato al nome file

`filenameformat`

Applicare il formato al nome file impostato nella configurazione, vedere Applicare il formato al nome file.

### Applicare il formato al tag

`tagformat`

Applicare il formato del nome del tag impostato nella configurazione, vedere Applica il formato al tag.

### Applicare la codifica del testo

`textencoding`

Applicare la codifica del testo impostata nella configurazione, vedere Applicare la codifica del testo.

### Rinominare una cartella

`renamedir` [`FORMATO`] [ create | rename | dryrun ] [`NUMERI-TAG`]

Rinominare o creare cartelle dai valori nei tag in base a un determinato `FORMAT` (ad es. `%{artist} - %{album}`, vedere Rinomina cartella), se non viene fornito alcun formato, viene utilizzato il formato definito nella finestra Rinomina cartella. La modalità predefinita è `rename`; per creare cartelle, `create` deve essere esplicitamente indicata. Le azioni di rinomina saranno eseguite immediatamente, per verificare ciò che dovrebbe avvenire, utilizzare l'opzione `dryrun`.

### Numera le tracce

`numbertracks` [`NUMERO-TRACCIA`] [`NUMERI-TAG`]

Numerare le tracce selezionate che iniziano con `TRACK-NUMBER` (`1` se omesso).

### Filtro

`filter` [ `NOME-FILTRO` | `FORMATO FILTRO` ]

Filtrare i file in modo che siano visibili solo i file corrispondenti a `FILTER-FORMAT`. È possibile utilizzare il nome di un'espressione di filtro predefinita (ad es. `«Mancata corrispondenza tra nome file e tag»`) anziché un'espressione di filtro, vedere Filtro.

    kid3-cli> filter '%{title} contains "tro"'
    Started
      /home/urs/One Hit Wonder - Let's Tag
    + 01 Intro.mp3
    - 02 We Only Got This One.mp3
    + 03 Outro.mp3
    Finished
    kid3-cli> ls
      1-- 01 Intro.mp3
      1-- 03 Outro.mp3
    kid3-cli> filter All
    Started
      /home/urs/One Hit Wonder - Let's Tag
    + 01 Intro.mp3
    + 02 We Only Got This One.mp3
    + 03 Outro.mp3
    Finished
    kid3-cli> ls
      1-- 01 Intro.mp3
      12- 02 We Only Got This One.mp3
      1-- 03 Outro.mp3

### Convertire ID3v2.3 in ID3v2.4

`to24`

### Convertire ID3v2.4 in ID3v2.3

`to23`

### Nome file da tag

`fromtag` [`FORMATO`] [`NUMERI-TAG`]

Impostare i nomi dei file selezionati dai valori nei tag, ad esempio `fromtag '%{track} - %{title}' 1`. Se non si specifica alcun formato, è utilizzato invece il formato impostato nella GUI.

### Tag da nome file

`totag` [`FORMATO`] [`NUMERI-TAG`]

Impostare i frame dei tag dai nomi dei file, ad esempio `totag '%{albumartist} - %{album}/%{track}%{title}' 2`. Se non si specificato alcun formato, è utilizzato il formato impostato nella GUI. Se il formato del nome file non corrisponde a questo modello, vengono provati altri formati comunemente utilizzati.

### Tag in altro tag

`syncto` {`NUMERO-TAG`}

Copiare i frame dei tag da un tag all'altro tag, ad es. per impostare il tag ID3v2 dal tag ID3v1, utilizzare `syncto 2`.

### Copia

`copy` [`NUMERO-TAG`]

Copiare i frame dei tag dei file selezionati nel buffer interno di copia. Essi possono essere impostati su un altro file utilizzando il comando paste.

Per copiare solo un sottoinsieme dei frame, utilizzare lo pseudo-campo «selected» con il comando set. Ad esempio, per copiare solo il numero del disco e i frame del copyright, utilizzare

    set '*.selected' 0
    set discnumber.selected 1
    set copyright.selected 1
    copy

### Incolla

`paste` [`NUMERO-TAG`]

Impostare i frame dei tag dal contenuto del buffer copy nei file selezionati.

### Rimuovi

`remove` [`NUMERO-TAG`]

Rimuovere un tag.

È possibile rimuovere solo un sottoinsieme dei frame selezionandoli come descritto nel comando copy.

### Configura Kid3

`config` [`OPZIONE`] [`VALORE`]

Interroga o imposta un'opzione di configurazione.

L'`OPZIONE` è composta da un nome di gruppo e un nome della proprietà separato da un punto. Quando nessuna `OPZIONE` viene fornito, vengono visualizzati tutti i gruppi disponibili. Se viene fornito solo un nome di gruppo, vengono visualizzate tutte le proprietà disponibili del gruppo. Per un dato gruppo e proprietà, viene visualizzato il valore attualmente configurato. Per modificare l'impostazione, il nuovo valore può essere passato come secondo argomento.

Se il valore di un'impostazione è un elenco, tutti gli elementi dell'elenco devono essere forniti come argomenti. Ciò significa che per aggiungere un elemento a un elenco esistente di elementi, tutti gli elementi esistenti devono essere passati seguiti dal nuovo elemento. In una situazione del genere, è più facile utilizzare la modalità JSON, dove l'elenco attuale può essere copiato con il nuovo elemento aggiunto.

### Esegui programma o script QML

`execute` [@qml] {`FILE`} [`ARGOMENTI`]

Esegui uno script QML o un eseguibile.

Senza `@qml` un programma è eseguito con argomenti. Quando `@qml` viene fornito come primo argomento, i seguenti argomenti sono lo script QML e i suoi argomenti. Ad esempio, le etichette di una cartella possono essere esportate nel file `export.csv` con il comando seguente.

    kid3-cli -c "execute @qml
    /usr/share/kid3/qml/script/ExportCsv.qml export.csv"
    /percorso/cartella/

Qui `export.csv` è l'argomento per lo script `ExportCsv.qml`, mentre `/percorso/a/cartella/` è l'argomento ``FILE`` per kid3-cli.

## Esempi

Imposta il titolo contenente un apostrofo. I comandi passati a kid3-cli con `-c` devono essere tra virgolette se non consistono in una sola parola. Se un comando di questo tipo ha un argomento contenente spazi, anche quell'argomento deve essere citato. Nelle shell UNIX® possono essere utilizzate virgolette singole o doppie, ma nel prompt dei comandi di Windows è importante che le virgolette esterne vengano eseguite utilizzando virgolette doppie e all'interno di queste virgolette vengano utilizzate virgolette singole. Se il testo all'interno delle virgolette singole contiene una virgoletta singola, è necessario eseguirne l'escape utilizzando un carattere di barra rovesciata, come mostrato nell'esempio seguente:

    kid3-cli -c "set title 'I\'ll be there for you'" percorso/a/cartella

Impostare la copertina dell'album in tutti i file di una cartella utilizzando la funzione di importazione in serie:

    kid3-cli -c "autoimport 'Cover Art'" /percorso/a/cartella

Rimuovere i frame dei commenti e applicare il formato dei tag in entrambi i tag di tutti i file MP3 di una cartella:

    kid3-cli -c "set comment '' 1" -c "set comment '' 2" \
    -c "tagformat 1" -c "tagformat 2" /percorso/a/cartella/*.mp3

Importare automaticamente tag 2, sincronizzare con tag 1, impostare i nomi dei file da tag 2 e alla fine creare una scaletta:

    kid3-cli -c autoimport -c "syncto 1" -c fromtag -c playlist \
      /percorso/a/cartella/*.mp3

Per tutti i file con un tag ID3v2.4.0, convertire in ID3v2.3.0 e rimuovere il frame dell'arrangiatore:

    kid3-cli -c "filter 'ID3v2.4.0 Tag'" -c "select all" -c to23 \
      -c "set arranger ''" /percorso/a/cartella

Questo script Python utilizza kid3-cli per generare frame iTunes Sound Check iTunNORM dalle informazioni di guadagno di riproduzione.

    #!/usr/bin/env python3
    # Genera iTunes Sound Check dal guadagno di riproduzione.
    import os, sys, subprocess

    def rg2sc(dirpath):
      for root, dirs, files in os.walk(dirpath):
        for name in files:
          if name.endswith(('.mp3', '.m4a', '.aiff', '.aif')):
            fn = os.path.join(root, name)
            rg = subprocess.check_output([
              'kid3-cli', '-c', 'get "replaygain_track_gain"',
               fn]).strip()
            if rg.endswith(b' dB'):
              rg = rg[:-3]
            try:
              rg = float(rg)
            except ValueError:
              print('Value %s of %s in not a float' % (rg, fn))
              continue
            sc = (' ' + ('%08X' % int((10 ** (-rg / 10)) * 1000) )) * 10
            subprocess.call([
              'kid3-cli', '-c', 'set iTunNORM "%s"' % sc, fn])

    if __name__ == '__main__':
      rg2sc(sys.argv[1])

## Formato JSON

Per facilitare l'analisi dei risultati da kid3-cli, è possibile ottenere l'output in formato JSON. Quando la richiesta è in formato JSON, la risposta sarà anche JSON. Un formato compatto della richiesta fornirà anche una rappresentazione compatta della risposta. Se la richiesta contiene un campo «id», si presume che sia una richiesta JSON-RPC e la risposta conterrà un campo «jsonrpc» e «id» della richiesta. Il formato della richiesta utilizza gli stessi comandi della CLI standard, il campo «method» contiene il comando e i parametri (se presenti) sono indicati nell'elenco «params». La risposta contiene un oggetto «result», che può anche essere nullo se il comando kid3-cli non restituisce un risultato. In caso di errore, viene restituito un oggetto «error» con i campi «code» e «message» come usato in JSON-RPC.

    kid3-cli> {"method":"set","params":["artist","Un artista"]}
    {"result":null}
    kid3-cli> {"method":"get","params":["artist",2]}
    {"result":"An Artist"}
    kid3-cli> {"method": "get", "params": ["artist"]}
    {
        "result": "Un artista"
    }

    kid3-cli> {"jsonrpc":"2.0","id":"123","method":"get","params":["artist"]}
    {"id":"123","jsonrpc":"2.0","result":"Un artista"}

# Capitolo 5. Riconoscimenti e licenza

Kid3

Programma scritto da Urs Fleisch `<ufleisch at users.sourceforge.net>`

Traduzione: Vincenzo Reale `<smart2128vr@gmail.com>`

FDL

GPL

# Appendice A. Installazione

## Come ottenere Kid3

Kid3 è disponibile su https://kid3.kde.org.

## Requisiti

Kid3 necessita di Qt™. KDE è consigliato, ma non necessario, poiché Kid3 può anche essere compilato come applicazione Qt™. Kid3 può essere compilato per sistemi in cui sono disponibili queste librerie, ad es. per GNU/Linux®, Windows® e macOS®. Per applicare tag ai file Ogg/Vorbis, libogg, libvorbis e libvorbisfile sono necessarie, per i file FLAC libFLAC ++ e libFLAC. id3lib è utilizzata per i file MP3. Questi quattro formati sono supportati anche da TagLib, che può gestire anche Opus, MPC, APE, MP2, Speex, TrueAudio, WavPack, WMA, WAV, file AIFF e moduli tracker. Per importare da impronte digitali acustiche, sono utilizzate Chromaprint e libav .

Kid3 è disponibile per la maggior parte delle distribuzioni Linux®, Windows® e macOS®. I collegamenti sono disponibili su https://kid3.kde.org.

## Compilazione e installazione

È possibile compilare Kid3 con o senza KDE. Senza KDE, Kid3 è una semplice applicazione Qt™ e manca di alcune funzionalità di configurazione e sessione.

Per una versione di KDE, spostarsi nella cartella principale e digitare

    % cmake .
    % make
    % make install

Compilare per diverse versioni di Qt™ oppure KDE, impostare le corrispondenti opzioni di `cmake`.

Se non sono presenti tutte le librerie, Kid3 è compilato con funzionalità ridotta. Quindi è necessario aver cura di avere tutti i pacchetti di sviluppo desiderati installati. Dall'altro lato, le opzioni di `cmake` controllano quali librerie sono compilate. L'impostazione predefinita è `-DWITH_TAGLIB:BOOL=ON -DWITH_MP4V2:BOOL=OFF -DWITH_ID3LIB:BOOL=ON -DWITH_CHROMAPRINT:BOOL=ON -DWITH_VORBIS:BOOL=ON -DWITH_FLAC:BOOL=ON`. Queste opzioni possono essere disabilitate utilizzando `OFF`.

Per compilare Kid3 come un'applicazione Qt™ senza KDE, utilizzare l'opzione `-DWITH_APPS=Qt` di `cmake`. Per compilare sia un'applicazione KDE che una Qt™,impostare `-DWITH_APPS="Qt;KDE"`.

Per utilizzare un'installazione specifica di Qt™, impostare `-DQT_QMAKE_EXECUTABLE=/percorso/a/qmake`.

La generazione di pacchetti RPM è supportata dal file `kid3.spec`, per i pacchetti Debian®, eseguire `build.sh deb`.

L'applicazione Qt™ può essere compilata anche per Windows® e macOS®. Lo script `build.sh` può essere utilizzato per scaricare e compilare tutte le librerie necessarie e crea un pacchetto di Kid3.

## Configurazione

Con KDE, le impostazioni sono archiviate in `.config/kid3rc`, lo stato dell'applicazione in `.local/share/kid3/kid3staterc`. Come applicazione Qt™, questo file è in `.config/Kid3/Kid3.conf`. Su Windows®. la configurazione è archiviata nel registro, su macOS® in un file plist.

La variabile di ambiente `KID3_CONFIG_FILE` può essere utilizzata per impostare il percorso del file di configurazione.

# Appendice B. Interfaccia D-Bus

## Esempi di D-Bus

Su Linux®. un'interfaccia D-Bus può essere utilizzata per controllare Kid3 tramite script. Gli script possono essere scritti in qualsiasi linguaggio con associazioni D-Bus (ad es. in Python) e possono essere aggiunti alle Azioni dell'utente per estendere le funzionalità di Kid3.

L'artista nel tag 2 del file attuale può essere impostato sul valore «One Hit Wonder» con il seguente codice:

Shell

      dbus-send --dest=org.kde.kid3 --print-reply=literal \
      /Kid3 org.kde.Kid3.setFrame int32:2 string:'Artist' \
      string:'One Hit Wonder'

  o più semplicemente con qdbus di Qt™ (qdbusviewer può essere utilizzato per esplorare l'interfaccia in una GUI):

      qdbus org.kde.kid3 /Kid3 setFrame 2 Artist \
      'One Hit Wonder'

Python

      import dbus
      kid3 = dbus.SessionBus().get_object(
        'org.kde.kid3', '/Kid3')
      kid3.setFrame(2, 'Artist', 'One Hit Wonder')

Perl

      use Net::DBus;
      $kid3 = Net::DBus->session->get_service(
        "org.kde.kid3")->get_object(
        "/Kid3", "org.kde.Kid3");
      $kid3->setFrame(2, "Artist", "One Hit Wonder");

## API D-Bus

Le API D-Bus è specificata in `org.kde.Kid3.xml`. L'interfaccia di Kid3 ha i seguenti metodi:

### Aprire un file o una cartella

`boolean openDirectory(` | percorso`)`; |

`string percorso`;

`percorso`

  percorso a un file o a una cartella

Restituisce vero se OK.

### Scaricare i tag di tutti i file che non sono stati modificati o selezionati

`unloadAllTags(` | `)`; |

### Salvare tutti i file modificati

`boolean save(` | `)`; |

Restituisce vero se OK.

### Ricevere un messaggio di errore dettagliato fornito da alcuni metodi

`string getErrorMessage(` | `)`; |

Restituisce il messaggio di errore dettagliato.

### Ripristina le modifiche nei file selezionati

`revert(` | `)`; |

### Avvia un'importazione in serie automatica

`boolean batchImport(` | tagMask, |
| NomeProfilo`)`; |

`int32 tagMask`;
`string NomeProfilo`;

`tagMask`

  maschera del tag (bit 0 per tag 1, bit 1 per tag 2)

`profileName`

  nome del profilo di importazione in serie da utilizzare

### Importare i tag da un file

`boolean importFromFile(` | tagMask, |
| percorso, |
| fmtIdx`)`; |

`int32 tagMask`;
`string percorso`;
`int32 fmtIdx`;

`tagMask`

  bit del tag (1 per tag 1, 2 per tag 2)

`percorso`

  percorso del file

`fmtIdx`

  Indice di formato

Restituisce vero se OK.

### Importare i tag da altri tag

`importFromTags(` | tagMask, |
| origine, |
| estrazione`)`; |

`int32 tagMask`;
`string origine`;
`string estrazione`;

`tagMask`

  bit del tag (1 per tag 1, 2 per tag 2)

`origine`

  formato per ottenere il testo originale dai tag

`estrazione`

  espressione regolare con i nomi dei frame e le catture per estrarre il testo originale

### Importare i tag da altri tag sui file selezionati

`array importFromTagsToSelection(` | tagMask, |
| origine, |
| estrazione`)`; |

`int32 tagMask`;
`string origine`;
`string estrazione`;

`tagMask`

  bit del tag (1 per tag 1, 2 per tag 2)

`origine`

  formato per ottenere il testo originale dai tag

`estrazione`

  espressione regolare con i nomi dei frame e le catture per estrarre il testo originale

`returnValues`

  valore estratto per «%{__return}(.+)»

### Scaricare la copertina dell'album

`downloadAlbumArt(` | url, |
| allFilesInDir`)`; |

`string url`;
`boolean allFilesInDir`;

`url`

  URL di un'immagine o di una copertina

`allFilesInDir`

  vero per aggiungere l'immagine a tutti i file nella cartella

### Esportare tag in un file

`boolean exportToFile(` | tagMask, |
| percorso, |
| fmtIdx`)`; |

`int32 tagMask`;
`string percorso`;
`int32 fmtIdx`;

`tagMask`

  bit del tag (1 per tag 1, 2 per tag 2)

`percorso`

  percorso del file

`fmtIdx`

  Indice di formato

Restituisce vero se OK.

### Creare una scaletta

`boolean createPlaylist(` | `)`; |

Restituisce vero se OK.

### Ottenere gli elementi di una scaletta

`array getPlaylistItems(` | percorso`)`; |

`string percorso`;

`percorso`

  percorso al file della scaletta

Restituisce un elenco di percorsi assoluti agli elementi della scaletta.

### Impostare gli elementi di una scaletta

`boolean setPlaylistItems(` | percorso, |
| elementi`)`; |

`string percorso`;
`array elementi`;

`percorso`

  percorso al file della scaletta

`elementi`

  elenco di percorsi assoluti agli elementi della scaletta

Restituisce vero se OK, falso se non tutti gli elementi sono stati trovati e aggiunti o il salvataggio non è riuscito.

### Uscire dall'applicazione

`quit(` | `)`; |

### Selezionare tutti i file

`selectAll(` | `)`; |

### Deselezionare tutti i file

`deselectAll(` | `)`; |

### Impostare il primo file come file attuale

`boolean firstFile(` | `)`; |

Restituisce vero se esiste un primo file.

### Impostare il file precedente come file attuale

`boolean previousFile(` | `)`; |

Restituisce vero se esiste un file precedente.

### Impostare il file successivo come file attuale

`boolean nextFile(` | `)`; |

Restituisce vero se esiste un file successivo.

### Selezionare il primo file

`boolean selectFirstFile(` | `)`; |

Restituisce vero se esiste un primo file.

### Selezionare il file precedente

`boolean selectPreviousFile(` | `)`; |

Restituisce vero se esiste un file precedente.

### Selezionare il file successivo

`boolean selectNextFile(` | `)`; |

Restituisce vero se esiste un file successivo.

### Selezionare il file attuale

`boolean selectCurrentFile(` | `)`; |

Restituisce vero se esiste un file attuale.

### Espandere o contrarre l'elemento attuale se è una cartella

`boolean expandDirectory(` | `)`; |

Una voce dell'elenco dei file è una cartella se getFileName() restituisce un nome con «/» come ultimo carattere.

Restituisce vero se l'elemento attuale è una cartella.

### Applicare il formato del nome del file

`applyFilenameFormat(` | `)`; |

### Applicare il formato del tag

`applyTagFormat(` | `)`; |

### Applicare la codifica del testo

`applyTextEncoding(` | `)`; |

### Impostare il nome della cartella dai tag

`boolean setDirNameFromTag(` | tagMask, |
| formato, |
| creare`)`; |

`int32 tagMask`;
`string formato`;
`boolean creare`;

`tagMask`

  maschera del tag (bit 0 per tag 1, bit 1 per tag 2)

`formato`

  formato del nome della cartella

`creare`

  vero per creare, falso per rinominare

Restituisce vero se OK, altrimenti il messaggio di errore è disponibile utilizzando getErrorMessage().

### Impostare i numeri di traccia successivi nei file selezionati

`numberTracks(` | tagMask, |
| firstTrackNr`)`; |

`int32 tagMask`;
`int32 firstTrackNr`;

`tagMask`

  maschera del tag (bit 0 per tag 1, bit 1 per tag 2)

`firstTrackNr`

  numero da utilizzare per il primo file

### Filtrare i file

`filter(` | espressione`)`; |

`string espressione`;

`espressione`

  espressione di filtro

### Convertire i tag ID3v2.3 in ID3v2.4

`convertToId3v24(` | `)`; |

### Convertire i tag ID3v2.4 in ID3v2.3

`convertToId3v23(` | `)`; |

Restituisce vero se OK.

### Ottenere il percorso della cartella

`string getDirectoryName(` | `)`; |

Restituisce il percorso assoluto a una cartella.

### Ottenere il nome del file attuale

`string getFileName(` | `)`; |

Restituisce il vero nome file assoluto, termina con «/» se si tratta di una cartella.

### Impostare il nome del file selezionato

`setFileName(` | nome`)`; |

`string nome`;

`nome`

  nome file

Il file sarà rinominato al salvataggio della cartella.

### Impostare il formato da utilizzare quando si imposta il nome file dai tag

`setFileNameFormat(` | formato`)`; |

`string formato`;

`formato`

  formato del nome file

### Impostare i nomi dei file selezionati dai tag

`setFileNameFromTag(` | tagMask`)`; |

`int32 tagMask`;

`tagMask`

  bit del tag (1 per tag 1, 2 per tag 2)

### Ottenere il valore del frame

`string getFrame(` | tagMask, |
| nome`)`; |

`int32 tagMask`;
`string nome`;

`tagMask`

  bit del tag (1 per tag 1, 2 per tag 2)

`nome`

  nome del frame (ad es. "artista")

Per ottenere dati binari come un'immagine, il nome di un file da scrivere può essere aggiunto dopo il `nome`, ad es. «Picture:/percorso/a/file». Allo stesso modo, i testi sincronizzati possono essere esportati, ad es. «SYLT:/percorso/a/file».

Restituisce il valore del frame.

### Impostare il valore del frame

`boolean setFrame(` | tagMask, |
| nome, |
| valore`)`; |

`int32 tagMask`;
`string nome`;
`string valore`;

`tagMask`

  bit del tag (1 per tag 1, 2 per tag 2)

`nome`

  nome del frame (ad es. "artista")

`valore`

  valore del frame

Per il tag 2 (`tagMask` 2), se non esiste un frame con `nome`, viene aggiunto un nuovo frame, se il `valore` è vuoto, il frame è eliminato. Per aggiungere dati binari come un'immagine, è possibile aggiungere un file dopo il `nome`, ad es. «Picture:/percorso/a/file». «SYLT:/percorso/a/file» può essere usato per importare testi sincronizzati.

Restituisce vero se OK.

### Ottenere tutti i frame da un tag

`array of string getTag(` | tagMask`)`; |

`int32 tagMask`;

`tagMask`

  bit del tag (1 per tag 1, 2 per tag 2)

Restituisce un elenco con nomi e valori di frame alternati.

### Ottenere informazioni tecniche sul file

`array di stringhe getInformation(` | `)`; |

Le proprietà sono Formato, Bitrate, Campionamento, Canali, Durata, Modalità canale, VBR, Tag 1, Tag 2. Le proprietà non disponibili sono omesse.

Restituisce un elenco con nomi e valori di proprietà alternati.

### Impostare un tag dal nome del file

`setTagFromFileName(` | tagMask`)`; |

`int32 tagMask`;

`tagMask`

  bit del tag (1 per tag 1, 2 per tag 2)

### Impostare un tag da un altro tag

`setTagFromOtherTag(` | tagMask`)`; |

`int32 tagMask`;

`tagMask`

  bit del tag (1 per tag 1, 2 per tag 2)

### Copiare un tag

`copyTag(` | tagMask`)`; |

`int32 tagMask`;

`tagMask`

  bit del tag (1 per tag 1, 2 per tag 2)

### Incollare un tag

`pasteTag(` | tagMask`)`; |

`int32 tagMask`;

`tagMask`

  bit del tag (1 per tag 1, 2 per tag 2)

### Rimuovere un tag

`removeTag(` | tagMask`)`; |

`int32 tagMask`;

`tagMask`

  bit del tag (1 per tag 1, 2 per tag 2)

### Elaborare nuovamente la configurazione

`reparseConfiguration(` | `)`; |

Le modifiche automatizzate alla configurazione sono possibili modificando il file di configurazione e quindi elaborando nuovamente la configurazione.

### Riproduce i file selezionati

`playAudio(` | `)`; |

# Appendice C. Interfaccia QML

## Esempi di QML

Gli script QML possono essere richiamati tramite il menu contestuale dell'elenco file e possono essere impostati nella scheda Azioni dell'utente della finestra delle impostazioni. Gli script impostati lì possono essere utilizzati come esempi per programmare script personalizzati. QML utilizza JavaScript ecco il «Ciao mondo» obbligatorio:

    import Kid3 1.0

    Kid3Script {
      onRun: {
        console.log("Ciao mondo, la cartella è", app.dirName)
        Qt.quit()
      }
    }

Se questo script viene salvato come `/percorso/a/Esempio.qml`, il comando utente può essere definito come @qml/percorso/a/Esempio.qml con nome `Test QML` e Risultato selezionati. Può quindi essere avviato utilizzando l'elemento Test QML nel menu contestuale dell'elenco dei file e il risultato sarà visibile nella finestra.

Sfortunatamente, avviando gli script QML utilizzando qml (ad es. qml -apptype widget -I /usr/lib/kid3/plugins/imports /percorso/a/Esempio.qml) non funziona correttamente nelle versioni recenti di Qt. kid3-cli offre un modo alternativo per eseguire uno script QML dalla riga di comando utilizzando il suo comando execute.

    kid3-cli -c "execute @qml /percorso/a/Esempio.qml"

Per elencare i titoli nei tag 2 di tutti i file nella cartella attuale, è possibile utilizzare il seguente script:

    import Kid3 1.0

    Kid3Script {
      onRun: {
        app.firstFile()
        do {
          if (app.selectionInfo.tag(Frame.Tag_2).tagFormat) {
            console.log(app.getFrame(tagv2, "titolo"))
          }
        } while (app.nextFile())
      }
    }

Se la cartella contiene molti file, uno script del genere potrebbe bloccare l'interfaccia utente per qualche tempo. Per operazioni più lunghe, dovrebbe quindi avere una pausa di tanto in tanto. L'implementazione alternativa di seguito ha il compito per un singolo file spostato in una funzione. Questa funzione si richiama alla fine con un timeout di 1 ms, dato che è necessario elaborare più file. Questo assicurerà che la GUI rimanga reattiva mentre lo script è in esecuzione.

    import Kid3 1.0

    Kid3Script {
      onRun: {
        function doWork() {
          if (app.selectionInfo.tag(Frame.Tag_2).tagFormat) {
            console.log(app.getFrame(tagv2, "titolo"))
          }
          if (!app.nextFile()) {
            Qt.quit()
          } else {
            setTimeout(doWork, 1)
          }
        }

        app.firstFile()
        doWork()
      }
    }

Quando si utilizza app.firstFile() con app.nextFile(), saranno elaborati tutti i file della cartella attuale. Se sono interessati solo i file selezionati, utilizzare invece firstFile() e nextFile(), queste sono funzioni utili del componente `Kid3Script`. L'esempio seguente è uno script che copia solo il numero del disco e i frame del copyright del file selezionato.

    import Kid3 1.1

    Kid3Script {
      onRun: {
        function doWork() {
          if (app.selectionInfo.tag(Frame.Tag_2).tagFormat) {
            app.setFrame(tagv2, "*.selected", false)
            app.setFrame(tagv2, "discnumber.selected", true)
            app.setFrame(tagv2, "copyright.selected", true)
            app.copyTags(tagv2)
          }
          if (!nextFile()) {
            Qt.quit()
          } else {
            setTimeout(doWork, 1)
          }
        }

        firstFile()
        doWork()
      }
    }

Altri script di esempio sono forniti da Kid3 e sono già registrati come comandi dell'utente.

- ReplayGain in SoundCheck (`ReplayGain2SoundCheck.qml`): creare informazioni iTunNORM SoundCheck dai frame del guadagno di riproduzione.

- Ridimensionare le copertine degli album (`ResizeAlbumArt.qml`): ridimensionare le immagini di copertina integrate che sono più grandi di 500x500 pixel.

- Estrarre le copertine degli album (`ExtractAlbumArt.qml`): estrarre le immagini di copertina integrate evitando i duplicati.

- Integrare le copertine degli album (`EmbedAlbumArt.qml`): integrare le copertine trovate nei file di immagine trovati nei file audio nella stessa cartella.

- Integrare i testi (`EmbedLyrics.qml`): recuperare i testi non sincronizzati da un servizio web.

- Codifica del testo ID3v1 (`ShowTextEncodingV1.qml`): aiuta a trovare la codifica dei tag ID3v1 mostrando i tag del file attuale in tutte le codifiche di caratteri disponibili.

- ID3v1 a ASCII (`Tag1ToAscii.qml`): Traslitterare caratteri latini estesi nel tag ID3v1 in ASCII.

- Maiuscole dei titoli inglesi (`TitleCase.qml`): Formatta il testo nei tag in con i criteri inglesi di utilizzo delle maiuscole nei titoli.

- Riscrivi tag (`RewriteTags.qml`): Riscrivi tutti i tag dei file selezionati.

- Esporta CSV (`ExportCsv.qml`): Esporta ricorsivamente tutti i tag di tutti i file in un file CSV.

- Import CSV (`ImportCsv.qml`): Importa ricorsivamente tutti i tag di tutti i file da un file CSV.

- Esporta JSON (`ExportJson.qml`): Esporta ricorsivamente tutti i tag di tutti i file in un file JSON.

- Importa JSON (`ImportJson.qml`): Importa ricorsivamente tutti i tag di tutti i file in un file JSON.

- Esportare la cartella della scaletta (`ExportPlaylist.qml`): copiare tutti i file di una scaletta in una cartella e rinominarli in base alla loro posizione.

- QML Console (`QmlConsole.qml`): Semplice console per fare pratica con le API QML di Kid3.

## API QML

L'API può essere facilmente esplorata utilizzando la console QML, disponibile come script di esempio con un'interfaccia utente.

### Kid3Script

`Kid3Script` è un normale componente QML situato nella cartella delle estensioni. È possibile utilizzare anche un altro componente QML. L'uso di `Kid3Script` semplifica l'avvio della funzione di script utilizzando il gestore di segnali `onRun`. Inoltre offre alcune funzioni:

    onRun: gestore dei segnali che è invocato quando lo script è avviato
    tagv1, tagv2, tagv2v1: costanti per i parametri dei tag
    script: accesso alle funzioni di scripting
    configs: accesso agli oggetti di configurazione
    getArguments(): elenco degli argomenti degli script
    isStandalone(): vero se lo script non era stato avviato dall'interno di Kid3
    setTimeout(callback, ritardo): avvia callback dopo ms di ritardo
    firstFile(): al primo file selezionato
    nextFile(): al successivo file selezionato

### Funzioni per creare script

Come JavaScript e quindi anche QML ha solo un insieme limitato di funzioni per gli script, l'oggetto `script` ha alcuni metodi aggiuntivi, ad esempio:

    script.properties (oggetto): stringa con proprietà Qt
    script.writeFile (percorsoFile, dati): scrivere i dati nel file, vero se OK
    script.readFile (percorsoFile): leggere i dati dal file
    script.removeFile (percorsoFile): eliminare il file, vero se OK
    script.fileExists (percorsoFile): vero se il file esiste
    script.fileIsWritable (percorsoFile): vero se il file è scrivibile
    script.getFilePermissions (percorsoFile): ottenere bit dei permessi del file
    script.setFilePermissions (percorsoFile, bitModalità): impostare i bit dei permessi del file
    script.classifyFile (percorsoFile): ottenere la classe del file (cartella "/", collegamento simbolico "@", exe "*",
      file " ")
    script.renameFile (vecchioNome, nuovoNome): rinominare il file, vero se OK
    script.copyFile (origine, destinazione): copiare il file, vero se OK
    script.makeDir (percorso): creare la cartella, vero se OK
    script.removeDir (percorso): rimuovere la cartella, vero se OK
    script.tempPath (): percorso della cartella temporanea
    script.musicPath (): percorso della cartella musicale
    script.listDir (percorso, [filtriNome], [classificare]): elencare le voci della cartella
    script.system (programma, [arg], [msec]): avviare un comando di sistema in modo sincrono,
      [codice di uscita, standard output, standard error] se non scade il tempo limite
    script.systemAsync (programma, [arg], [callback]): avviare un comando di sistema in modo comando
    asincrono, la callback sarà invocata con [codice di uscita, standard output, standard
    error]
    script.getEnv (nomeVar): ottenere il valore della variabile d'ambiente
    script.setEnv (nomeVar, valore): impostare il valore della variabile d'ambiente
    script.getQtVersion (): stringa versione Qt, ad es. "5.4.1"
    script.getDataMd5 (dati): ottenere la stringa esadecimale dell'hash MD5 dei dati
    script.getDataSize (dati): ottenere la dimensione dell'array di byte
    script.dataToImage (dati, [formato]): creare un'immagine da byte di dati
    script.dataFromImage (img, [formato]): ottenere byte di dati dall'immagine
    script.loadImage (percorsoFile): caricare un'immagine da un file
    script.saveImage (img, percorsoFile, [formato]): salvare un'immagine in un file, vero se OK
    script.imageProperties (img): ottenere le proprietà di un'immagine, una mappa contenente
      "larghezza", "altezza", "profondità" e "colorCount", vuoto se l'immagini non è valida
    script.scaleImage (img, larghezza, [altezza]): ridimensionare un'immagine, restituisce un'immagine ridimensionata

### Contesto dell'applicazione

Utilizzando QML, gran parte delle funzioni di Kid3 sono accessibili. L'API è simile a quella utilizzata per D-Bus. Per i dettagli, consultare le rispettive note.

    app.openDirectory(percorso): aprire una cartella
    app.unloadAllTags(): scaricare tutti i tag
    app.saveDirectory(): salvare una cartella
    app.revertFileModifications(): ripristinare
    app.importTags(tag, percorso, fmtIdx): importare i file
    app.importFromTags(tag, origine, estrazione): importare dai tag
    app.importFromTagsToSelection(tag, origine, estrazione): importare dai tag dei file selezionati
    app.downloadImage(url, allFilesInDir): scaricare un'immagine
    app.exportTags(tag, percorso, fmtIdx): esportare i file
    app.writePlaylist(): scaricare una scaletta
    app.getPlaylistItems(percorso): ottenere gli elementi di una scaletta
    app.setPlaylistItems(percorso, elementi): impostare gli elementi id una scaletta
    app.selectAllFiles(): selezionare tutto
    app.deselectAllFiles(): deselezionare
    app.firstFile([selezione], [soloFileConTag]): al primo file
    app.nextFile([selezione], [soloFileConTag]): al file successivo
    app.previousFile([selezione], [soloFileConTag]): al file precedente
    app.selectCurrentFile([selezione]): selezionare un file attuale
    app.selectFile(path, [selezione]): selezionare un file specifico
    app.getSelectedFilePaths([soloFileConTag]): ottenere i percorsi dei file selezionati
    app.requestExpandFileList(): espandere tutto
    app.applyFilenameFormat(): applicare il formato ai nomi dei file
    app.applyTagFormat(): applicare il formato al tag
    app.applyTextEncoding(): applicare la codifica del testo
    app.numberTracks(nr, totale, tag, [opzioni]): Numerare le tracce
    app.applyFilter(espressione): filtro
    app.convertToId3v23(): convertire ID3v2.4.0 in ID3v2.3.0
    app.convertToId3v24(): convertire ID3v2.3.0 in ID3v2.4.0
    app.getFilenameFromTags(tag): nomi dei file dai tag
    app.getTagsFromFilename(tag): nomi dei file ai tag
    app.getAllFrames(tag): ottenere oggetti con tutti i frame
    app.getFrame(tag, nome): ottenere un frame
    app.setFrame(tag, nome, valore): impostare un frame
    app.getPictureData(): ottenere i dati da un frame di immagine
    app.setPictureData(dati): impostare i dati in un frame di immagine
    app.copyToOtherTag(tag): tag ad altri tag
    app.copyTags(tag): copiare
    app.pasteTags(tag): incollare
    app.removeTags(tag): Rimuovere
    app.playAudio(): Riprodurre
    app.readConfig(): Leggere la configurazione
    app.applyChangedConfiguration(): Applicare la configurazione
    app.dirName: Nome della cartella
    app.selectionInfo.fileName: Nome del file
    app.selectionInfo.filePath: Percorso assoluto del file
    app.selectionInfo.detailInfo: Dettagli di formato
    app.selectionInfo.tag(Frame.Tag_1).tagFormat: Formato tag 1
    app.selectionInfo.tag(Frame.Tag_2).tagFormat: Formato tag 2
    app.selectionInfo.formatString(tag, formato): Sostituire i codici nella stringa di formato
    app.selectFileName(titolo, cartella, filtro, saveFile): Aprire la finestra per
    selezionare un file
    app.selectDirName(titolo, cartella): Aprire la finestra per selezionare una cartella

Per operazioni asincrone, le callback possono essere collegate ai segnali.

    function automaticImport(profile) {
      function onAutomaticImportFinished() {
        app.batchImporter.finished.disconnect(onAutomaticImportFinished)
      }
      app.batchImporter.finished.connect(onAutomaticImportFinished)
      app.batchImport(profile, tagv2)
    }

    function renameDirectory(format) {
      function onRenameActionsScheduled() {
        app.renameActionsScheduled.disconnect(onRenameActionsScheduled)
        app.performRenameActions()
      }
      app.renameActionsScheduled.connect(onRenameActionsScheduled)
      app.renameDirectory(tagv2v1, format, false)
    }

### Oggetti di configurazione

Le diverse sezioni di configurazione sono accessibili tramite i metodi di `configs`. Le loro proprietà possono essere elencate nella console QML.

    script.properties (configs.networkConfig())

È possibile impostare le proprietà:

    configs.networkConfig().useProxy = false

    configs.batchImportConfig()
    configs.exportConfig()
    configs.fileConfig()
    configs.filenameFormatConfig()
    configs.filterConfig()
    configs.findReplaceConfig()
    configs.guiConfig()
    configs.importConfig()
    configs.mainWindowConfig()
    configs.networkConfig()
    configs.numberTracksConfig()
    configs.playlistConfig()
    configs.renDirConfig()
    configs.tagConfig()
    configs.tagFormatConfig()
    configs.userActionsConfig()