Description: O Kid3 é uma aplicação para editar as marcas de ID3v1 e ID3v2 nos ficheiros MP3 de forma eficiente. Da mesma forma, também são suportadas as marcas nos ficheiros Ogg/Vorbis, Opus, DSF, FLAC, MPC, APE, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV, AIFF e módulos do Tracker (MOD, S3M, IT, XM). É fácil configurar as marcas de vários ficheiros com os mesmos valores (p.ex. álbum, artista, ano e género em todos os ficheiros do mesmo álbum) e gerar as marcas a partir do nome do ficheiro ou vice-versa.
Keywords: KDE, kdemultimedia, MP3, ID3, ID3v1, ID3v2, Ogg, Vorbis, FLAC, MPC, APE, Musepack, MP4, M4A, MP2, Speex, TrueAudio, WavPack, WMA, WAV, AIFF, MOD, S3M, IT, XM, Opus, DSF

# O Manual do Kid3

### Urs Fleisch

Desenvolvimento da aplicação

`<ufleisch at users.sourceforge.net>`

### José Pires

Tradução

`<zepires@gmail.com>`

3.9.2

Copyright © 2022 Urs Fleisch

FDL

Resumo

O Kid3 é uma aplicação para editar as marcas de ID3v1 e ID3v2 nos ficheiros MP3 de forma eficiente. Da mesma forma, também são suportadas as marcas nos ficheiros Ogg/Vorbis, Opus, DSF, FLAC, MPC, APE, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV, AIFF e módulos do Tracker (MOD, S3M, IT, XM). É fácil configurar as marcas de vários ficheiros com os mesmos valores (p.ex. álbum, artista, ano e género em todos os ficheiros do mesmo álbum) e gerar as marcas a partir do nome do ficheiro ou vice-versa.

Lista de Tabelas

3.1. Associação dos Tipos de Pacotes Unificados aos Vários Formatos
3.2. Elemento na Tabela de Classificação

# Sintaxe

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

`kid3-qt` [`--portable`] [`opções do Qt`] [`FICHEIRO`...]

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

# Opções

`--portable`

  Guarda a configuração no ficheiro `kid3.ini` dentro da pasta da aplicação.

`FICHEIRO`

  Se o ``FICHEIRO`` for a localização de uma pasta, a mesma será aberta. Se forem indicados um ou mais ficheiros, a sua pasta comum é aberta, ficando os ficheiros seleccionados.

## kid3

`--help`

  Mostra a ajuda acerca das opções.

`--author`

  Mostra informações sobre o autor.

`--version`

  Mostra a informação da versão.

`--license`

  Mostra informações acerca da licença.

`--desktopfile `FICHEIRO``

  O nome de base do ficheiro do item '.desktop' para esta aplicação.

## kid3-qt

`Opções do Qt`

  Veja o qt5options(7).

## kid3-cli

`--dbus`

  Activa a interface de D-Bus.

`-c`

  Executa um comando. É possível passar várias opções `-c`, sendo as mesmas executadas em sequência. Veja a secção acerca do kid3-cli para obter uma descrição dos comandos disponíveis.

`-h`|`--help`

  Mostra ajuda sobre as opções e comandos.

# Capítulo 1. Introdução

O Kid3 é uma aplicação para editar as marcas ID3v1 e ID3v2 nos ficheiros MP3 de forma eficiente. Estas marcas poderão ser editadas pela maioria dos leitores de MP3, mas não de forma confortável e eficiente. Para além disso, também são suportadas as marcas nos ficheiros Ogg/Vorbis, Opus, DSF, FLAC, MPC, APE, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV, AIFF e nos módulos do Tracker (MOD, S3M, IT, XM).

O Kid3 não captura nem codifica os ficheiros MP3, mas está vocacionado para editar as marcas de ID3 de todos os ficheiros de um álbum de forma eficiente, i.e. com o mínimo de 'clicks' de rato e combinações de teclas possível. Embora a maioria dos outros programas consigam editar as marcas de ID3v1 ou ID3v2, o Kid3 tem controlo completo sobre ambas as versões, consegue converter as marcas entre os dois formatos e tem acesso a todas as marcas de ID3v2. As marcas dos vários ficheiros poderão ser configuradas com o mesmo valor, p.ex. o artista, o álbum, o ano e o género de todos os ficheiros de um álbum tipicamente têm os mesmos valores e poderão ser definidas em conjunto. Se a informação das marcas estiver contida no nome do ficheiro, as marcas poderão ser configuradas automaticamente a partir do nome do ficheiro. Também é possível configurar o nome do ficheiro de acordo com as marcas encontras no ficheiro em formatos arbitrários.

A tarefa de edição ainda passa pela substituição automática de caracteres ou sub-textos, por exemplo para remover caracteres proibidos dos nomes dos ficheiros. O controlo automático das maiúsculas ou minúsculas facilita a utilização de uma nomenclatura consistente em todas as marcas.

Poderá obter a informação das marcas para álbuns inteiros a partir do gnudb.org, MusicBrainz, Discogs, Amazon ou de outras fontes de listas de faixas. O formato de configuração é facilmente configurável à custa de expressões regulares.

Por favor comunique todos os problemas ou pedidos de funcionalidades ao autor.

# Capítulo 2. Utilização do Kid3

## Funcionalidades do Kid3

- Editar as marcas de ID3v1.1

- Editar todos os pacotes de ID3v2.3 e ID3v2.4

- Editar as marcas de vários ficheiros

- Converter as marcas entre ID3v1 e ID3v2

- Editar as marcas de MP3, Ogg/Vorbis, Opus, DSF, FLAC, MPC, APE, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV e AIFF

- Gerar as marcas a partir do nome do ficheiro

- Gerar marcas a partir dos conteúdos dos campos de marcas

- Gerar o nome do ficheiro a partir das marcas

- Gerar e mudar os nomes das pastas a partir das marcas

- Gerar um ficheiro de lista de reprodução

- Conversão automática de capitalização e traduções de textos

- Importação das fontes de dados gnudb.org, MusicBrainz, Discogs, Amazon, entre outras.

- Exportar como CSV, HTML, lista de reprodução, Kover XML e outros formatos. Os ficheiros CSV podem ser importados de novo.

## Exemplo de Utilização

Esta secção descreve uma típica sessão com o Kid3. Vamos assumir que temos uma pasta que contém ficheiros MP3 com as faixas do álbum "Vamos Marcar" da banda "Famoso Desconhecido". A pasta tem o nome no formato "artista - álbum", sendo no nosso caso `Famoso Desconhecido - Vamos Marcar`. A pasta contém as faixas no formato "faixa título.mp3", o que poderá ser útil porque os nomes dos ficheiros são curtos (é importante quando estiver a usar leitores de MP3 portáteis com ecrãs pequenos) e fica pela ordem correcta quando for ordenado por ordem alfabética (importante ao usar leitores de MP3 por 'hardware', que tocam os MP3 por ordem alfabética ou pela ordem com que são gravados no CD, ficando essa ordem alfabética ao usar o mkisofs). Para além disso, a informação do artista e do álbum já está no nome da pasta e não tem de ser repetida no nome do ficheiro. Contudo, voltando ao nosso exemplo, a listagem da pasta deverá ser algo semelhante a isto:

`01 Intro.mp3`

`02 So Temos Este.mp3`

`03 Final.mp3`

Estes ficheiros ainda não têm marcas e desejamos gerá-las com o Kid3. Use a opção Abrir (menu Ficheiro ou barra de ferramentas) e seleccione um dos ficheiros nesta pasta. Todos os ficheiros serão apresentados na lista de ficheiros. Para facilitar, pretende-se usar esta informação no nome das pastas e dos ficheiros para gerar marcas. Como tal, serão seleccionados todos os ficheiros, podendo carregar depois no botão Para: Marca 1 na secção Ficheiro. Isto irá definir os valores do título, do artista, do álbum e da faixa para todos os ficheiros. Para configurar os valores do ano e do género de todos os ficheiros, são mantidos todos os ficheiros seleccionados, podendo depois escrever "2002" na Data e seleccionando "Pop" na lista Género. Para configurar apenas estes dois valores, as suas opções de marcação ficam automaticamente assinaladas e todas as outras opções de marcação são deixadas inalteradas. Agora, será alterada a selecção, seleccionando apenas o primeiro ficheiro e vendo que todas as marcas contêm os valores correctos. Poderá verificar as marcas dos outros ficheiros da mesma forma se as seleccionar uma a uma. Quando estiver satisfeito com as marcas, poderá usar a opção Gravar (menu Ficheiro ou barra de ferramentas). Se seleccionar a opção Criar uma Lista de Reprodução do menu Ficheiro para gerar um ficheiro `Famoso Desconhecido - Vamos Marcar.m3u` na pasta.

# Capítulo 3. Referência de Comandos

## Os Elementos da GUI

A interface GUI do Kid3 está separada em seis secções: À esquerda encontra-se a lista de ficheiros e pastas, enquanto o lado direito contém as secções Ficheiro, Marca 1, Marca 2 e Marca 3.

Para navegar pelas diferentes secções com o teclado, são suportadas diversas combinações de teclas. Nas secções das marcas, os atalhos ficam activos quando não estiver a editar texto ou quando estiver na primeira coluna.

- Alt+Esquerda: Vai para a secção anterior (Command+[ no macOS®)

- Alt+Direita: Vai para a secção seguinte (Command+] no macOS®)

- Ctrl+Shift+V: De outra marca

- Ctrl+C: Copiar

- Ctrl+V: Colar

- Shift+Delete: Remover

- F2: Editar

- Insert: Adicionar

- Delete: Apagar

### Lista de Ficheiros

A lista de ficheiros contém os nomes de todos os ficheiros na pasta aberta que correspondam ao filtro de nomes de ficheiros seleccionados (tipicamente o `*.mp3 *.ogg *.opus *.dsf *.flac *.mpc *.aac *.m4a *.m4b *.m4p *.mp4 *.mp2 *.spx *.tta *.wv *.wma *.wav *.aiff *.ape`). Poderá ser seleccionado um ou vários ficheiros. Para não seleccionar nenhum ficheiro, carregue na área vazia a seguir aos itens da lista. A selecção determina os ficheiros que são afectados pelas operações que ficam disponíveis através dos botões descritos em baixo.

Para além do Nome, também poderá mostrar as outras colunas Tamanho, Tipo, Data de Modificação com os detalhes dos ficheiros. Poderá esconder as colunas, desmarcando o nome das mesmas no menu de contexto que existe no cabeçalho da lista. A ordem das colunas pode ser alterada por arrastamento. O sentido de ordenação poderá ser comutado se carregar no cabeçalho da coluna.

Os valores das marcas-padrão também podem ser apresentados e editados nas colunas da lista de ficheiros.

À esquerda dos nomes, poderá aparecer um ícone: um disco para indicar que o ficheiro modificado ou informações sobre as marcas que estão presentes (V1, V2, V1V2 ou SEM MARCAS - não é apresentado nenhum ícone se o ficheiro ainda não tiver sido lido).

As pastas são apresentadas com um ícone de pasta. Se abrir uma pasta, os seus ficheiros são apresentados numa árvore hierárquica. Ao seleccionar os ficheiros das sub-pastas, poderá efectuar operações sobre os ficheiros das diferentes pastas, o que é útil se a colecção de música estiver organizadas com uma pasta para cada artista, contendo pastas para os álbuns desse artista.

Se carregar com o botão direito do rato dentro da lista de ficheiros, irá abrir um menu de contexto com os seguintes comandos:

- Expandir tudo: Expande todas as árvores de pastas (só a árvore actual se estiver a carregar na tecla Shift)

- Fechar tudo: Fecha todas as árvores de pastas

- Mudar o Nome: Muda o nome de um ficheiro

- Enviar para o Lixo: Move um ficheiro para o lixo

- Reproduzir: Reproduz um ficheiro; veja a secção Reproduzir. Se o ficheiro seleccionado for uma lista de reprodução, então serão reproduzidos os ficheiros na lista de reprodução.

- Editar: Edita uma lista de reprodução; veja a secção Editar a Lista de Reprodução.

- Os itens seguintes são comandos do utilizador, os quais podem ser definidos na página de Acções do Utilizador do Configurar o Kid3. A reprodução através de duplo-click pode também ser activada aí.

### Editar a Lista de Reprodução

Poderá criar uma lista de reprodução vazia ou a conter as faixas de uma determinada pasta; veja como Criar uma Lista de Reprodução. O ficheiro da lista de reprodução criado dessa forma poderá ser editado com um duplo-click ou usando a opção Editar do menu de contexto da lista de ficheiros. Será apresentada uma janela com os elementos da lista de reprodução. É possível abrir várias listas de reprodução em simultâneo.

Poderá adicionar novos itens por arrastamento a partir da lista de ficheiros, de um gestor de ficheiros ou de outra lista de reprodução. Se for arrastado um item de outra lista de reprodução, o mesmo será movido ou copiado de acordo com o sistema. Para invocar a outra operação, respectivamente, terá de manter carregada a tecla Shift, Ctrl ou Alt (para copiar em vez de mover no macOS®). A reordenação de itens dentro da lista também é possível por arrastamento. Em alternativa, os itens podem ser movidos com os atalhos de teclado Ctrl+Shift+Cima e Ctrl+Shift+Baixo (no macOS® terá de carregar no Command em vez do Ctrl). Poderá remover um item se usar a tecla Delete.

Repare por favor no seguinte: Para arrastar itens da lista de ficheiros, os mesmos terão de ser mantidos do lado esquerdo (perto dos ícones), sendo que o mesmo gesto do lado direito irá efectuar uma selecção múltipla, para que esta acção seja possível e simples.

Quando tiver modificado uma lista de reprodução, as alterações poderão ser guardadas com o botão Gravar ou eliminadas com o Cancelar. Quando a janela for fechada, será apresentada uma mensagem de confirmação caso existam modificações por gravar.

As faixas seleccionadas numa lista de reprodução ficarão automaticamente seleccionadas na lista de ficheiros, podendo deste modo editar as suas marcas.

Para executar acções sobre uma lista de reprodução, o seu ficheiro deverá estar seleccionado na lista de ficheiros. O Editar do menu de contexto irá conduzir à janela descrita nesta secção, enquanto o Reproduzir irá iniciar o leitor multimédia com as faixas da lista de reprodução. As acções do utilizador poderão actuar sobre as listas de reprodução, como por exemplo o Exportar a Pasta da Lista de Reprodução, qur irá copiar os ficheiros de uma lista de reprodução para uma pasta.

### Lista de Pastas

A lista de pastas contém os nomes das pastas na pasta aberta de momento, assim como a própria (`.`) e a sua pasta-mãe (`..`). Permite a mudança fácil de pasta sem ter de usar o comando Abrir... ou o arrastamento.

A visibilidade, ordem e sentido de ordenação poderão ser configurados da forma descrita na secção sobre a lista de ficheiros.

### Ficheiro

Mostra informações sobre a codificação (MP3, Ogg, Opus, DSF, FLAC, MPC, APE, MP2, MP4, AAC, Speex, TrueAudio, WavPack, WMA, WAV, AIFF), taxa de dados, taxa de amostragem, os canais e o tamanho do ficheiro.

O campo de texto Nome contém o nome do ficheiro (se só estiver um único ficheiro seleccionado). Se este nome for alterado, o ficheiro irá mudar de nome quando for usado o comando Gravar.

A lista Formato e o campo de texto contém o formato a ser usado quando o nome do ficheiro for gerado a partir da primeira ou segunda marca. O nome do ficheiro poderá conter caracteres arbitrários, podendo incluir uma componente de sub-pastas separadas por uma barra face ao nome do ficheiro, se bem que essa pasta já deva existir para a mudança de nome ser bem sucedida. São usados os seguintes códigos especiais para inserir os valores das marcas no nome do ficheiro:

- %s %{title} Título (Música)

- %a %{artist} Artista

- %l %{album} Álbum

- %c %{comment} Comentário

- %y %{year} Ano

- %t %{track} Faixa (p.ex. 01)

- %t %{track.n} Faixa com o tamanho do campo 'n' (p.ex. 001 para %{track.3})

- %T %{tracknumber} Faixa (sem os zeros iniciais, p.ex. 1)

- %g %{genre} Género

- %{ignore} Ignorado quando gerar marcas a partir do nome do ficheiro

Os códigos de formato não estão restritos aos exemplos apresentados acima. Pode usar qualquer nome de pacote, como os nomes de pacotes unificados, por exemplo `%{albumartist}`, `%{discnumber.1}`, `%{bpm}` ou nomes específicos do formato, como `%{popm}`.

É possível anteceder e adicionar textos ao substituto de um código de formato, adicionando-os entre aspas dentro das chavetas do código de formato. Estes textos só serão colocados no texto resultante se o código do formato tiver um valor não-vazio. Por exemplo, se o nome do ficheiro deve conter tanto o título como o sub-título, uma pessoa poderá usar o `%{title} [%{subtitle}]` no texto do formato. Contudo, isto poderia resultar num texto que termina em `[]` se não existir nenhum pacote de sub-título para um dado ficheiro. Para omitir os parêntesis rectos caso não esteja presente nenhum sub-título, o `%{title}%{" ["subtitle"]"}` deverá ser usado como alternativa. Isto irá omitir os parêntesis rectos, o espaço inicial e o sub-título se este último não existir.

A lista de formatos disponíveis poderá ser editada na janela que aparece quando carregar no botão Nome do ficheiro a partir da marca da página Ficheiro da configuração.

É usada uma segunda lista Formato (com uma seta para baixo) para gerar as marcas a partir do nome do ficheiro. Se o formato do nome do ficheiro não corresponder a este padrão, serão testados alguns outros formatos usados de forma comum.

Alguns dos campos normalmente usados já estão na lista, mas também é possível escrever algum formato especial no campo de edição.

A lista de formatos disponíveis poderá ser editada na janela que aparece quando carregar no botão Marca a partir do nome do ficheiro da página Ficheiro da configuração.

Internamente, uma expressão regular é composta a partir dos códigos do formato. Se forem necessárias expressões regulares avançadas, o formato para gerar as marcas a partir dos nomes dos ficheiros pode ser indicado como uma expressão regular completa com capturas, as quais são antecedidas dos códigos de formato; p.ex., par extrair os números das faixas sem remover os zeros inicias, poderá usar um formato como por exemplo "`/%{track}(\d+) %{title}(.*)`".

De: Marca 1, Marca 2: Define o nome do ficheiro com o formato seleccionado e a primeira ou segundo marcas, respectivamente.

Para: Marca 1, Marca 2: As marcas são definidas a partir do nome do ficheiro. Em primeiro lugar, será usado o formato definido em Formato. Se o nome do ficheiro existente não corresponder a este formato, serão testados os seguintes formatos:

- `Artista - Álbum/Número Música`

- `Álbum/Número - Artista - Música`

- `/Artista - Álbum - Número - Música`

- `Álbum/Artista - Número - Música`

- `Álbum/Artista - Música`

- `Artista/Álbum/Número Música`

Se for seleccionado apenas um ficheiro, os controlos da GUI são preenchidos com os valores do nome do ficheiro. Se forem seleccionados vários ficheiros, as marcas dos ficheiros são configuradas directamente.

### Marca 1

Os campos de texto do Título, Artista, Álbum, Comentário, Data, Número de Faixa e Género são usados para editar o valor correspondente na primeira marca dos ficheiros seleccionados. O valor será alterado quando a selecção de ficheiros mudar ou antes de algumas operações como a Gravar ou Sair e quando a opção de marcação correspondente à esquerda do nome do campo estiver assinalada. Isto é útil para mudar apenas alguns valores e deixar os outros valores inalterados.

Se estiver seleccionado um único ficheiro, todas as opções de marcação estão assinaladas e os campos de texto contêm os valores encontrados nas marcas deste ficheiro. Se não existir uma dada marca no ficheiro, o valor vazio correspondente é apresentado, o qual é um texto vazio para o Título, Artista, Álbum e Comentário, ou 0 para os campos numéricos da Data e Número da Faixa e um valor seleccionado em branco para a lista Género. Os valores podem ser alterados e, caso a opção de marcação correspondente esteja assinalada, serão configurados para o ficheiro seleccionado após modificar a selecção. O ficheiro fica então marcado como modificado com um símbolo de disco na lista de ficheiros, mas permanecerá inalterado até que use o comando Gravar.

Se estiverem seleccionados vários ficheiros, só os valores que são idênticos em todos os ficheiros seleccionados é que são apresentados. Em todos os outros controlos, os valores vazio descritos acima são apresentados. Todas as opções de marcação estão desmarcadas para evitar modificações indesejadas. Se tiver de definir um valor para todos os ficheiros seleccionados, poderá ser editado e a opção de marcação terá de estar assinalada. Os valores serão configurados para todos os ficheiros seleccionados quando a selecção é modificada e poderá ser gravado com o comando Gravar.

As opções de marcação também controlam a operação da maioria dos comandos que afectam as marcas, como a cópia, colagem e transferência entre as marcas 1 e 2. Para facilitar o uso com vários ficheiros, onde todas as opções de marcação estão desligadas, estes comandos comportam-se da mesma forma quando todas as opções estão assinaladas ou quando estão todas não-assinaladas.

Da Marca 2: Os campos da marca 1 são definidos a partir dos valores da marca 2. Se for seleccionado apenas um ficheiro, os controlos da GUI são preenchidos com os valores da marca 2. Se forem seleccionados vários ficheiros, as marcas dos ficheiros são configuradas directamente.

Copiar: A área de cópia fica preenchida com os valores da Marca 1. Só os valores assinalados serão usados nos campos Colar subsequentes.

Colar: Cola os valores da área de cópia para os controlos da GUI.

Remover: Isto irá configurar todos os controlos da GUI com os seus valores vazios, o que faz com que se removam todos os valores. O ficheiro gravado não irá ter a marca 1.

### Marca 2

Os controlos da GUI funcionam da mesma forma que foi descrita para a secção da Marca 1, só que o tamanho dos textos não fica limitado.

Para a marca 2 Género, também poderá usar os seus próprios nomes para além dos géneros apresentados na lista, bastando para tal escrever o nome no campo de texto.

A marca 2 não só pode conter os mesmos valores que a marca 1, como o formato é composto de forma flexível a partir de vários pacotes que, por sua vez, são compostos por vários campos. A tabela da marca 2 mostra todos os pacotes que estão disponíveis no ficheiro seleccionado.

Editar: Isto irá abrir uma janela que permite a uma pessoa editar todos os campos do pacote seleccionado. Se estiverem seleccionados vários ficheiros, os campos editados serão aplicados a todos os ficheiros seleccionados que tiverem esse pacote.

Adicionar: Um pedido para seleccionar o tipo de pacote que irá aparecer, para que possa editar um pacote do tipo seleccionado e adicionado ao ficheiro. Isto funciona também para adicionar um pacote de dados aos vários ficheiros seleccionados.

Apagar: Remove o pacote seleccionado nos ficheiros seleccionados.

A opção Arraste as imagens do álbum para aqui aparece se o ficheiro não tiver incorporada a imagem da capa. Poderá adicionar uma imagem por arrastamento a partir de um navegador ou gestor de ficheiros e será aqui apresentada. Os pacotes das imagens poderão ser editados ou adicionados se fizer duplo-click sobre este controlo.

### Marca 3

Alguns ficheiros poderão ter mais que duas marcas, ficando assim uma terceira secção de marca visível. Os seguintes tipos de ficheiros poderão ter uma dessas secções Marca 3:

- Os ficheiros MP3 poderão ter uma marca ID3v1.1, uma marca ID3v2 (2.3.0 ou 2.4.0) e na terceira secção uma marca APE. Essas marcas APE são usadas para a informação do ganho de reprodução. Na secção Marca 3, esta informação fica visível e a marca APE poderá ser removida com o botão Remover.

- O bloco INFO do RIFF dos ficheiros WAV está disponível na secção Marca 3 dado que a secção Marca 1 está dedicada à marcas ID3v1.1 e trata das suas restrições. A secção Marca 2 ainda é usada para as marcas ID3v2.4.0, que também são suportadas nos ficheiros WAR, mas os blocos INFO do RIFF parecem ser melhor suportados.

- Os ficheiros FLAC normalmente usam um comentário Vorbis para os seus meta-dados. Contudo, existem ficheiros FLAC que têm marcas ID3v1 e ID3v2, que poderão ser encontradas nas secções Marca 1 e Marca 3. As marcas ID3 nos ficheiros FLAC só são suportadas na TagLib; como tal, o 'plugin' OggFlacMetadata tem de estar desactivado na página Plugins da configuração.

Os controlos da GUI funcionam da mesma forma que foi descrita para a secção da Marca 2.

### Lista de Pacotes

O Kid3 consegue editar a maioria dos pacotes para todos os tipos de ficheiros suportados. Alguns dos pacotes são acedidos através dos nomes unificados, para que possam ser trocados entre ficheiros com diferentes formatos. Os pacotes que não são unificados poderão ser acedidos como pacotes específicos do formato.

Tabela 3.1. Associação dos Tipos de Pacotes Unificados aos Vários Formatos

Unificado | ID3v2.3 | ID3v2.4 | MP4 | ASF | Vorbis | RIFF
--- | --- | --- | --- | --- | --- | ---
Título | `TIT2` | `TIT2` | `©nam` | `Título` | `TÍTULO` | `INAM`
Artista | `TPE1` | `TPE1` | `©ART` | `Autor` | `ARTIST` | `IART`
Álbum | `TALB` | `TALB` | `©alb` | `WM/AlbumTitle` | `ALBUM` | `IPRD`
Comentário | `COMM` | `COMM` | `©cmt` | `Descrição` | `COMMENT` | `ICMT`
Data | `TYER` | `TDRC` | `©day` | `WM/Year` | `DATE` | `ICRD`
Número de Faixa | `TRCK` | `TRCK` | `trkn` | `WM/TrackNumber` | `TRACKNUMBER` | `IPRT` ou `ITRK`
Género | `TCON` | `TCON` | `©gen` | `WM/Genre` | `GENRE` | `IGNR`
Artista do Álbum | `TPE2` | `TPE2` | `aART` | `WM/AlbumArtist` | `ALBUMARTIST` |
Arranger | `IPLS` | `TIPL` | `ARRANGER` | `WM/Producer` | `ARRANGER` | `IENG`
Autor | `TOLY` | `TOLY` | `AUTOR` |  | `AUTOR` |
BPM | `TBPM` | `TBPM` | `tmpo` | `WM/BeatsPerMinute` | `BPM` | `IBPM`
Número do Catálogo | `TXXX:CATALOGNUMBER` | `TXXX:CATALOGNUMBER` |  |  | `CATALOGNUMBER` |
Compilação | `TCMP` | `TCMP` | `cpil` |  | `COMPILATION` |
Compositor | `TCOM` | `TCOM` | `©wrt` | `WM/Composer` | `COMPOSER` | `IMUS`
Condutor | `TPE3` | `TPE3` | `CONDUCTOR` | `WM/Conductor` | `CONDUCTOR` |
Direitos de cópia | `TCOP` | `TCOP` | `cprt` | `Direitos de cópia` | `COPYRIGHT` | `ICOP`
Descrição | `TIT3` | `TIT3` | `desc` | `WM/SubTitleDescription` | `DESCRIÇÃO` |
Número do Disco | `TPOS` | `TPOS` | `disco` | `WM/PartOfSet` | `DISCNUMBER` |
Encoded-by | `TENC` | `TENC` | `©enc` | `WM/EncodedBy` | `ENCODED-BY` | `ITCH`
Configuração do Codificador | `TSSE` | `TSSE` | `©too` | `WM/EncodingSettings` | `ENCODERSETTINGS` | `ISFT`
Hora da Codificação |  | `TDEN` |  | `WM/EncodingTime` | `ENCODINGTIME` | `IDIT`
Agrupamento | `GRP1` | `GRP1` | `©grp` |  | `GROUPING` |
Chave Inicial | `TKEY` | `TKEY` |  | `WM/InitialKey` | `INITIALKEY` |
ISRC | `TSRC` | `TSRC` | `ISRC` | `WM/ISRC` | `ISRC` | `ISRC`
Língua | `TLAN` | `TLAN` | `LANGUAGE` | `WM/Language` | `LANGUAGE` | `ILNG`
Letrista | `TEXT` | `TEXT` | `LYRICIST` | `WM/Writer` | `LYRICIST` | `IWRI`
Letras Musicais | `USLT` | `USLT` | `©lyr` | `WM/Lyrics` | `LYRICS` |
Meio | `TMED` | `TMED` | `SOURCEMEDIA` |  | `SOURCEMEDIA` | `IMED`
Espírito |  | `TMOO` |  | `WM/Mood` | `MOOD` |
Álbum Original | `TOAL` | `TOAL` | `ORIGINALALBUM` | `WM/OriginalAlbumTitle` | `ORIGINALALBUM` |
Artista Original | `TOPE` | `TOPE` | `ORIGINALARTIST` | `WM/OriginalArtist` | `ORIGINALARTIST` |
Data Original | `TORY` | `TDOR` | `ORIGINALDATE` | `WM/OriginalReleaseYear` | `ORIGINALDATE` |
Artista | `IPLS` | `TMCL` | `PERFORMER` |  | `PERFORMER` | `ISTR`
Imagem | `APIC` | `APIC` | `covr` | `WM/Picture` | `METADATA_BLOCK_PICTURE` |
Publicador | `TPUB` | `TPUB` | `PUBLISHER` | `WM/Publisher` | `PUBLISHER` | `IPUB`
Classificação | `POPM` | `POPM` | `taxa` | `WM/SharedUserRating` | `RATING` | `IRTD`
País de Lançamento | `TXXX:RELEASECOUNTRY` | `TXXX:RELEASECOUNTRY` |  |  | `RELEASECOUNTRY` | `ICNT`
Data de Lançamento |  | `TDRL` | `RELEASEDATE` |  | `RELEASEDATE` |
Mistura | `TPE4` | `TPE4` | `REMIXER` | `WM/ModifiedBy` | `REMIXER` | `IEDT`
Ordenar pelo Álbum | `TSOA` | `TSOA` | `soal` | `WM/AlbumSortOrder` | `ALBUMSORT` |
Ordenar pelo Artista do Álbum | `TSO2` | `TSO2` | `soaa` |  | `ALBUMARTISTSORT` |
Ordenar pelo Artista | `TSOP` | `TSOP` | `soar` | `WM/ArtistSortOrder` | `ARTISTSORT` |
Ordenar pelo Commpositor | `TSOC` | `TSOC` | `soco` |  | `COMPOSERSORT` |
Nome da Ordenação | `TSOT` | `TSOT` | `sonm` | `WM/TitleSortOrder` | `TITLESORT` |
Legenda |  | `TSST` | `SUBTITLE` | `WM/SubTitle` | `SUBTITLE` | `PRT1`
Página Web | `WOAR` | `WOAR` | `WEBSITE` | `WM/AuthorURL` | `WEBSITE` | `IBSU`
Trabalho | `TIT1` | `TIT1` | `©wrk` | `WM/ContentGroupDescription` | `WORK` |
Ficheiro de Áudio da WWW | `WOAF` | `WOAF` |  | `WM/AudioFileURL` | `WWWAUDIOFILE` |
Fonte de Áudio da WWW | `WOAS` | `WOAS` |  | `WM/AudioSourceURL` | `WWWAUDIOSOURCE` |

Comentários referentes às associações aos nomes de pacotes unificados:

- O número de nomes de pacotes unificados é limitado com base no facto de que uma associação adequada deverá ser possível para todos os formatos de ficheiros suportados. A maioria das marcas suportam pacotes com nomes arbitrários; estes serão usados se não estiver disponível nenhum pacote específico (p.ex. os nomes em maiúsculas na coluna MP4). Se não existir essa possibilidade, alguns tipos de pacotes poderão não ser suportados para o formato, p.ex. o Autor e o Artista no ASF (WMA).

- As associações não são escolhidas de forma arbitrária; elas são vocacionadas para a utilização dos pacotes nas outras aplicações e dispositivos. Como tal, o pacote de ID3v2 "TPE2 - Banda/orquestra/acompanhamento" não sugere a sua utilização como Artista do Álbum, embora este seja usado frequentemente. O significado actual para o ID3v2, por outro lado, é a razão pela qual este pacote é usado para a orquestra na importação (p.ex. a partir do Discogs), ainda que isto possa parecer um pouco estranho para os outros formatos de marcas.

- As associações nem sempre são bijectivas. Como tal, o ID3v2.3 usa um pacote IPLS para o Maestro e Artista. Ao ler de volta, ambos os pacotes são apresentados como "Maestro".

- Os pacotes Maestro e Artista usam um formato específico para o conteúdo deles: "envolvimento 1|envolvido 1|envolvimento 2|envolvido 2|...", por exemplo "Maestro de Coro|Ernst Dunshirn|Voz Soprano|Anna Netrebko". Isto irá criar pacotes IPLS (ID3v2.3) ou TIPL/TMCL (ID3v2.4) com uma lista de textos no formato indicado (o "|" é usado como separador entre textos). Os valores neste formato são também configurados ao importar os dados a partir dos servidores que oferecem esta informação.

- Para usar de forma explícita um nome de pacote específico que entre em conflito com um nome de pacote unificado, anteceda-o com um ponto de exclamação. Por exemplo, se adicionar um pacote do tipo "`Meio`" num comentário do Vorbis, irá criar um pacote com o nome "`SOURCEMEDIA`" devido à associação de tipos unificada. Para adicionar um pacote com o nome "`MEIO`" e não "`SOURCEMEDIA`", use "`!MEIO`" para forçar o nome explícito.

- Se necessitar de um pacote que não esteja nesta lista, ainda tem a possibilidade de introduzir nomes arbitrários com o botão Adicionar. Os nomes de pacotes mais usados podem ser adicionados aos Pacotes Personalizados na configuração das Marcas, ficando então disponíveis nos Pacotes de Acesso Rápido.

### Letras Sincronizadas e Códigos de Tempos Sincronizados

Para ter a informação sincronizada com os dados de áudio, está disponível um editor específico. Estes pacotes têm suporte para as marcas ID3v2.3.0 e ID3v2.4.0. Para adicionar uma dessas marcas, o nome do pacote específico tem de ser seleccionado na lista que aparece quando carrega no botão Adicionar - Letras Sincronizadas ou Códigos de Temporização de Eventos, respectivamente. O editor é o mesmo para ambos os tipos; para os códigos de temporização de eventos, só está disponível um conjunto predefinido de eventos enquanto que, nas letras sincronizadas, terá de introduzir texto. No texto seguinte é explicada a edição de letras sincronizadas.

Um ficheiro que tenha uma marca ID3v2 fica seleccionado, pelo que poderá entrar no editor de letras musicais se usar o botão Adicionar e seleccionar as Letras Sincronizadas. Para uma área de Letras Sincronizadas existente, ao seleccionar o mesmo poderá carregar no botão Editar. O leitor é automaticamente aberto com o ficheiro actual, para que possa reproduzir e pausar o ficheiro para sincronizar as letras musicais.

A configuração no topo do editor do SYLT normalmente não tem de ser alterada. Se as letras tiverem caracteres que não estejam presentes no conjunto de caracteres Latin 1, a mudança da codificação de texto para UTF16 (ou UTF8 o caso do ID3v2.4.0) será aconselhada. Para as letras em Inglês e para o máximo de compatibilidade, deverá ser usado o ISO-8859-1.

A secção das Letras Musicais tem cinco botões no topo. O Adicionar irá adicionar um novo evento de tempo na tabela. O tempo é retirado a partir da posição do leitor, adicionando assim um item enquanto reproduz a faixa irá adicionar uma linha para a posição reproduzida de momento. Os eventos na tabela têm de estar ordenados de forma cronológica, como tal a linha será inserida na posição adequada. Os itens com tempos inválidos são tratados de forma especial: Se a linha seleccionada de momento tiver um tempo inválido, a sua data/hora será substituída pelo tempo actual em vez de adicionar uma nova linha. Se o tempo actal não for inválido, a primeira linha com um tempo inválido será usada caso exista. Este comportamento deverá facilitar a adição de tempos se o texto das letras já estiver na tabela, mas estiverem a faltar os tempos (o que é o caso ao importar letras não sincronizadas). Lembre-se que o tempo inválido é representado como 00:00.00, i.e. o mesmo que o tempo no início absoluto da faixa, que não é inválido. Para invalidar um tempo, carregue na tecla Delete ou use a opção Limpar do menu de contexto. As novas linhas introduzidas com a opção Inserir uma linha do menu de contexto ou criadas quando importar as letras não sincronizadas com as opções Da Área de Transferência ou Importar também contêm tempos inválidos. As linhas na tabela poderão ser removidas se carregar no botão Apagar ou se usar a opção Apagar as linhas do menu de contexto.

As letras sincronizadas poderão ser importadas a partir de um ficheiro com o botão Importar. O formato esperado é o LRC simples ou o avançado. Se o ficheiro seleccionado não tiver um parêntesis recto na primeira linha, é suposto ser um ficheiro de texto simples com letras não sincronizadas. As linhas desse ficheiro são então importadas com horas inválidas. A informação da data/hora poderá ser adicionada através do botão Adicionar ou introduzidas manualmente. Também é possível importar as letras se copiar-colar com a opção Da Área de Transferência. Poderá gravar as letras sincronizadas nos ficheiros LRC com a opção Exportar. Lembre-se que só os itens com tempos válidos serão exportados e que os itens serão ordenados por esses tempos. Os itens com tempos inválidos não serão guardados no editor de pacotes SYLT, por isso certifique-se que adiciona toda a informação de tempos antes de sair da janela.

A especificação do ID3 sugere uma data/hora para cada sílaba. Contudo, a maioria dos leitores só suportam a granularidade de uma linha ou frase. Para suportar ambos os casos de uso, o Kid3 segue as mesmas convenções que o Editor do SYLT. O texto que é introduzido na tabela assume-se que inicia uma nova linha, a mesmo que comece por um espaço ou hífen. São possíveis excepções a esta regra se iniciar uma linha com um sublinhado ('_') para forçar a continuação ou um cardinal ('#') para forçar uma linha nova. Estes caracteres de escape não são guardados dentro do pacote SYLT. Dentro do mesmo pacote, as novas linhas começam com um carácter de mudança de linha (hex 0A), enquanto as continuações não. Ao ler os pacotes SYLT, o Kid3 verifica se o primeiro elemento começa com uma mudança de linha. Se este não for o caso, assume-se que todos os elementos são linhas novas e que não são usadas continuações de sílabas.

Quando a faixa é reproduzida, a linha associada com a posição actual de reprodução fica realçada, para que a correcção da informação de sincronização possa ser validada. Se tiver de adicionar um deslocamento a uma ou mais datas/horas, podê-lo-´a fazer com o menu de contexto Adicionar um deslocamento. Poderá usar valores negativos para reduzir o tempo. Se usar o Ir para a posição no menu de contexto, é possível definir a posição de reprodução com a hora da linha seleccionada.

O procedimento recomendado é adicionar novas letras musicais sincronizadas

- Obtenha as letras musicais não sincronizadas, p.ex. usando a opção Letras → Incorporar as Letras no menu de contexto da lista de ficheiros.

- Copie as letras não sincronizadas para a área de transferência, bastando para tal ir à linha Letras na tabela de pacotes e carregando em Ctrl+C.

- Adicione um pacote de letras sincronizadas (Adicionar..., Letras Sincronizadas, OK), carregando depois em Da Área de Transferência.

- Agora todas as linhas das letras musicais não sincronizadas estão na tabela, tendo todas as horas inválidas (0:0:0.00). Poderá apagar os elementos vazios antes de mais nada.

- Comece a tocar a música, carregando para tal no botão de reprodução ► na barra de reprodução no fundo da janela principal.

- Quando chegar à linha seguinte de letras musicais com datas inválidas, carregue em Adicionar ou carregue em Alt+A, actualizando assim a data/hora.

- Continue desta forma até que todas as datas/horas estejam configuradas. Se lhe faltar algo, pare a reprodução e limpe as datas/horas com a tecla Delete ou seleccionando-as e usando a opção Limpar do menu de contexto. Para retomar a reprodução a partir de um determinado momento, use a opção Mudar para a posição do menu de contexto.

### Capítulos nos Ficheiros MP4

Os livros de áudio em MP4 normalmente têm uma extensão `.m4b` e são relativamente grandes, porque contêm todos os capítulos num único ficheiro. Para navegar nesses ficheiros, eles poderão ter marcações dos capítulos, que podem ser editadas no Kid3, numa área de pseudo-"Capítulos", usando o mesmo editor das letras musicais sincronizadas. Lembre-se, contudo, que esta funcionalidade só está disponível com o 'plugin' Mp4v2Metadata, por isso certifique-se que o mesmo está activado e acima do 'plugin' TaglibMetadata da página de Plugins da configuração, caso tenha de editar capítulos em MP4.

## O Menu Ficheiro

Ficheiro → Abrir... (Ctrl+O)

  Abre uma pasta. Todos os ficheiros que corresponderem ao filtro de nomes indicado serão apresentados na lista de ficheiros, ficando seleccionado o ficheiro pretendido.

Ficheiro → Abrir um Recente

  Abre uma pasta aberta recentemente.

Ficheiro → Abrir uma Pasta... (Ctrl+D)

  Abre uma pasta. Todos os ficheiros que corresponderem ao filtro de nomes indicado serão apresentados na lista de ficheiros.

Ficheiro → Recarregar (F5)

  Actualiza o conteúdo da pasta. Os ficheiros modificados têm de ser gravados antes. As sub-pastas expandidas serão fechadas.

Ficheiro → Gravar (Ctrl+S)

  Grava todos os ficheiros alterados na pasta. Os ficheiros alterados são marcados com um símbolo de disco na lista de ficheiros. Se algum dos nomes dos ficheiros tiver sido modificado, estes ficheiros irão mudar de nome.

Ficheiro → Reverter

  Reverte as alterações de um ou mais ficheiros. Se não estiverem ficheiros seleccionados na lista, as modificações de todos os ficheiros serão revertidas, caso contrário só serão revertidas as modificações dos ficheiros seleccionados.

Ficheiro → Importar...

  A janela de Importação pode ser usada para importar os dados directamente de um servidor do freedb.org server, de um servidor do MusicBrainz, do Discogs, da Amazon ou de outras fontes de listas de faixas de álbuns num formato de texto.

  A importação de um servidor do freedb.org é possível se usar a janela que aparece quando selecciona a opção Do Servidor: gnudb.org. O nome do artista ou do álbum a procurar pode ser introduzido nos dois campos do topo, sendo apresentados os álbuns que correspondam à pesquisa quando carregar em Procurar e depois de receber os resultados do www.gnudb.org. A importação dos dados da faixa de álbum é feita ao fazer duplo-click sobre o álbum na lista. O servidor de freedb.org a importar poderá ser seleccionado, assim como a localização do CGI. Os dados importados são apresentados na tabela de antevisão da janela de importação. Quando estiver satisfeito com as faixas apresentadas, as mesmas podem ser importadas se terminar a janela de importação com o OK.

  Se já tiver um resultado da pesquisa aberto no navegador Web, poderá introduzir o URL no primeiro campo de edição. O resultado irá então aparecer na lista de álbuns e poderá ser importado directamente no Kid3.

  Poderá efectuar uma pesquisa no servidor do Discogs com a opção Discogs. Como na janela do gnudb.org, poderá introduzir o artista e o álbum, escolhendo depois dentro de uma lista de lançamentos.Poderá introduzir um Código para usar a API RESTful do Discogs em vez de usar a interface Web deles, a qual muda com frequência, comprometendo assim o processamento da importação. Terá de criar uma conta no Discogs e depois gerar um código na página Web deles ("Settings/Developers, Generate new token" (Configuração/Programadores, Gerar um novo código)). Não se esqueça de Gravar a Configuração depois de introduzir o código para o usar também nos pedidos subsequentes. Se as Marcas-Padrão estiverem assinaladas, é importada a informação-padrão, p.ex. artista, álbum e título. Se estiverem assinaladas as Marcas Adicionais, poderá importar mais informações se estiverem disponíveis, p.ex. artistas, maestros ou o publicador. Se as Imagens das Capas estiver assinalada, será transferida a imagem da capa, se estiver disponível.

  Poderá efectuar uma pesquisa na Amazon com a opção Amazon. Tal como na janela do gnudb.org, poderá introduzir o artista e o álbum, escolhendo depois a partir de uma lista de lançamentos. Se as Marcas Adicionais estiverem marcadas, poderá importar mais informação desde que esteja disponível, p.ex. cantores, maestros ou publicadores. Se as Imagens da Capa estiver assinalada, será transferida a imagem da capa caso esteja disponível.

  Poderá pesquisar da mesma forma na base de dados de lançamentos do MusicBrainz, usando a opção Da Versão do MusicBrainz. O procedimento é o mesmo que está descrito em Do gnudb.org.

  A importação de um servidor do MusicBrainz é possível se usar a janela que aparece quando seleccionar a opção Da Impressão Digital do MusicBrainz. Poderá seleccionar o Servidor como na janela de importação do freedb. Em baixo encontra-se uma tabela que apresenta os dados das faixas importadas. A coluna da direita mostra o estado da pesquisa no MusicBrainz, a qual começa como "Pendente" quando a janela é aberta. Depois é pesquisada a impressão digital e, se não devolver resultados, será testada outra pesquisa com as marcas no ficheiro. Como tal, pode ser útil para uma pesquisa com sucesso no MusicBrainz guardar a informação conhecida (p.ex. artista e álbum) nas marcas antes da importação. Se for encontrado um resultado, a pesquisa termina no estado "Reconhecida"; caso contrário, se não tiver sido encontrado nada ou se forem devolvidos resultados ambíguos, terá de ser seleccionado um deles pelo utilizador. O OK e o Aplicar usam os dados importados, enquanto o Cancelar fecha a janela. O fecho poderá demorar algum tempo, dado que todo o processo do MusicBrainz terá de ser encerrado.

  Para a importação de dados textuais, a opção Do Ficheiro/Área de Transferência abre uma sub-janela, onde estão disponíveis vários formatos de importação pré-configurados. Os dois primeiros, "CSV sem aspas" e "CSV com aspas", podem ser usados para importar dados que tenham sido exportados na janela de Exportação. Os dados em CSV podem ser editados numa folha de cálculo e devem ser gravados com tabulações como separadores. A importação deverá ser possível com o "CSV com aspas", que é mais flexível que a versão "CSV sem aspas". Contudo, os seus campos não podem ter aspas no conteúdo. Se só exportar do Kid3 e importar mais tarde, o "CSV sem aspas" pode ser usado como um formato simples para esse fim. Lembre-se que também existem as opções "Exportar o CSV" e "Importar o CSV" no menu de contexto da lista de ficheiros, que usam programas para exportar e importar os dados em CSV de uma forma mais completa, poderosa e flexível.

  O próximo formato, "texto HTML do freedb", pode ser usado para copiar informações de uma página HTML do freedb.org. Pesquise um álbum no freedb e, se a informação desejada aparecer no navegador Web, copie o conteúdo para a área de transferência. Depois carregue no botão Da Área de Transferência para que as faixas importadas apareçam na tabela de antevisão no topo da janela. Se estiver satisfeito com os dados importados, termine a janela com o botão OK, que irá inserir os dados nas marcas da pasta actual. O destino (Marca 1, Marca 2 ou Marca 1 e Marca 2) pode ser seleccionado numa lista. Os ficheiros na pasta actual deverão estar na ordem de faixas correctamente para ter as suas marcas atribuídas. Este é o caso caso elas estejam numeradas.

  O próximo formato de importação pré-configurado, o "código HTML do freedb", poderá ser usado se os dados estiverem disponíveis como um documento em HTML. A importação é possível com o botão Do Ficheiro, que abre um selector de ficheiros, ou copiando o seu conteúdo a partir de um editor e depois importando-o a partir da área de transferência. Este formato pode ser útil para a importação 'offline', ainda que o documento HTML possa também ser aberto num navegador e depois ser importado no primeiro formato através da área de transferência.

  Estão disponíveis mais formatos pré-configurados, p.ex. "Tempo do Título da Faixa". Poderá criar um formato personalizado vazio com o botão Adicionar para ser definido pelo utilizador. As duas linhas abaixo do nome do formato podem ser configuradas com uma expressão regular para capturar os campos a partir do texto a importar. A primeira expressão regular será processada uma vez por cada documento para reunir os dados de cada álbum, como o artista, o álbum, o ano e o género. A segunda linha é testada para corresponder a partir do início do documento até ao fim para obter os dados da faixa, normalmente o número e o título. As expressões regulares incluem todas as funcionalidades oferecidas pelo Qt™, que correspondem à maior parte do que o Perl oferece. As construções com parêntesis "(..)" criam áreas de captura para os campos a importar e são antecedidas de códigos específicos do Kid3 para indicar qual o campo a capturar. Os códigos são os mesmos que são usados no formato dos nomes dos ficheiros, para além dos códigos apresentados abaixo; é possível qualquer nome de pacote:

  - %s %{title} Título (Música)

  - %a %{artist} Artista

  - %l %{album} Álbum

  - %c %{comment} Comentário

  - %y %{year} Ano

  - %t %{track} Faixa

  - %g %{genre} Género

  - %d %{duration} Duração

  Por exemplo, a expressão regular de uma faixa (segunda linha) para importar a partir de uma lista de reprodução .m3u poderia ser "`%{track}(\d+)\s+%{title}(\S[^\r\n]*)\.mp3[\r\n]`". Todos os formatos podem ser alterados se editar as expressões regulares e o nome, carregando depois em Gravar a Configuração. Elas ficarão guardadas no ficheiro `kid3rc` na pasta de configuração. Este ficheiro poderá ser editado directamente para ter mais formatos de importação ou poderá ser apagado para voltar aos formatos predefinidos. Os formatos podem ser apagados com Remover.

  A Precisão mostra uma estimativa de quão boa é a informação importada ao corresponder às faixas indicadas. Ele usa as durações das faixas ou os nomes dos ficheiros para calcular o nível de semelhança em percentagem. A Imagem da Capa mostra o URL da imagem da capa do álbum que será transferida.

  Para verificar se as faixas importadas correspondem ao conjunto actual de ficheiros, a duração das faixas importadas poderá ser comparada com a duração dos ficheiros. Esta funcionalidade poderá ser activada com a opção Verificar a diferença máxima de tempo permitida (s): para definir esse valor máximo de tolerância em segundos. Se ocorrer uma discrepância de valores, a duração aparece com um fundo vermelho na tabela de antevisão.

  Se os ficheiros estiverem ordenados de forma diferente das faixas importadas, as suas faixas atribuídas terão de ser alteradas. Esta tarefa poderá ser simplificada se usar os botões para Corresponder a Duração, Faixa e Título, os quais irão reordenar as faixas de acordo com o campo correspondente. Para corrigir manualmente as atribuições, poderá arrastar uma faixa com o botão esquerdo do rato e a tecla Ctrl carregada, sendo depois largada na nova posição.

  Quando a janela de importação estiver aberta, ela possui o conteúdo actual das marcas. O tipo de marca (Marca 1, Marca 2, Marca 1 e Marca 2) poderá ser seleccionado com a lista Destino. O botão à direita desta lista poderá ser usado para reverter a tabela ao conteúdo actual das marcas. As opções de marcação na primeira coluna da tabela poderão ser usadas para seleccionar as faixas que serão importadas. Isto pode ser útil se uma pasta possuir as faixas de ambos os CD's de um CD duplo e só necessitar de importar as faixas do segundo CD.

  Para identificar as faixas que são importadas, é possível mostrar os nomes dos ficheiros ou as localizações completas dos mesmos, usando o menu de contexto do cabeçalho da tabela. Os valores na tabela de importação poderão ser editados. O botão de reverão à direita da lista Destino poderá ser usado para repor o conteúdo das marcas, o que também poderá ser útil depois de alterar o Destino.

  Quase todas as janelas possuem um botão Gravar a Configuração, que pode ser usado para guardar as definições específicas da janela, bem como o seu tamanho, de forma persistente.

  A opção Das Marcas conduz a uma sub-janela para configurar os pacotes das marcas a partir do conteúdo de outros pacotes de marcas. Isto pode ser usado para simplificar a cópia de informação entre marcas ou para extrair uma parte de um pacote e inseri-la noutro.

  Tal como na janela para importar a partir de um ficheiro/área de transferência, existem formatos configuráveis à vontade para efectuar diferentes operações. Já existem alguns formatos pré-configurados para copiar o valor do Álbum para o Artista, Compositor ou Condutor do Álbum, assim como para extrair o número da faixa dos campos de Título que incluam um número. Existe também um formato para extrair um Sub-Título a partir de um campo de Título.

  O seguinte exemplo explica como adicionar um formato personalizado, o qual define a informação a partir do campo de Sub-Título também no campo de Comentário. Crie um novo formato com a opção Adicionar e indique um novo nome, p.ex. "`Sub-título para Comentário`". Depois indique "`%{subtitle}`" na Origem e "`%{comment}(.*)`" na Extracção, carregando finalmente em Gravar a Configuração.

  A expressão na Origem poderá conter os códigos de formato para os pacotes de marcas arbitrários, podendo usar vários códigos para combinar o conteúdo dos diferentes pacotes. Para cada faixa, é gerado um texto a partir das suas marcas com o formato da Origem e a expressão regular da Extracção é aplicada a este texto para definir valores novos para as marcas. Os códigos dos formato são usados antes dos parêntesis de captura para indicar o pacote de marcas onde será guardado o texto capturado. Funciona da mesma forma que na importação de ficheiros/área de transferência.

  A opção Importar a Partir das Marcas... também está directamente disponível a partir do menu Ficheiro. A diferença entre estas duas funções é que a sub-janela de importação funciona sobre todos os ficheiros da pasta actual, enquanto a função do menu se aplica sobre os ficheiros seleccionados (que poderão estar em diferentes pastas). A função do menu suporta um código adicional "`%{__return}`" para devolver o valor extraído, o que poderá ser útil com as interfaces CLI e QML.

Ficheiro → Importar do gnudb.org...

  Importa a partir de um servidor do freedb.org, usando a pesquisa de álbuns do gnudb.org. Este item de menu abre a mesma janela de importação que o Importar..., mas abre directamente a janela do gnudb.org.

Ficheiro → Importar do Discogs...

  Importa a partir do servidor do Discogs. Este item de menu abre a mesma janela de importação que o Importar..., mas abre directamente a janela do Discogs.

Ficheiro → Importar da Amazon...

  Importa a partir da Amazon. Este item de menu abre a mesma janela de importação que o Importar..., mas abre directamente a janela da Amazon.

Ficheiro → Importar da Versão do MusicBrainz...

  Importa a partir do serviço de lançamentos do MusicBrainz. Este item de menu abre a mesma janela de importação que o Importar..., mas abre directamente a janela da MusicBrainz.

Ficheiro → Importar da Impressão Digital do MusicBrainz...

  Importa a partir de um servidor do MusicBrainz. Este item de menu abre a mesma janela de importação que o Importar..., mas abre directamente a janela de Impressões Digitais do MusicBrainz.

Ficheiro → Importar das Marcas...

  Como o Das Marcas, mas a importação é aplicada aos ficheiros seleccionados.

Ficheiro → Importação Automática...

  A Importação Automática permite a uma pessoa importar informações para vários álbuns a partir de vários serviços na Web. Se forem seleccionadas pastas na lista de ficheiros, serão importados os dados das faixas para as pastas seleccionadas. Se não for seleccionada nenhuma pasta, todas as pastas na lista de ficheiros serão importadas.

  O tipo de marca (Marca 1, Marca 2, Marca 1 e Marca 2) podem ser seleccionados com a lista Destino.

  Os perfis determinam quais os servidores que serão contactados para obter a informação do álbum. Alguns dos perfis são predefinidos (Tudo, MusicBrainz, Discogs, Imagens de Capas), sendo que poderá adicionar perfis personalizados com o botão Adicionar à direita da lista do Perfil.

  A tabela abaixo mostra os servidores que serão usados quando importar os dados dos álbuns com o perfil seleccionado. O processo de importação de um álbum termina se toda a informação necessária for encontrada, pelo que a ordem das linhas na tabela é importante. Poderá ser alterada com os botões Subir e Descer. O Editar pode ser usado para modificar um item existente. A selecção do Servidor oferece os mesmos servidores que podem ser usados nas funções de importação. As Marcas-Padrão, as Marcas Adicionais e as Imagens das Capas determinam a informação que será obtida a partir do servidor. Finalmente, a Precisão é a granularidade mínima que deverá ser obtida para aceitar os dados importados. Se a precisão for insuficiente, será usado o próximo servidor na lista. A mesma janela que contém as propriedades do servidor aparece quando carregar em Adicionar para adicionar um novo item de servidor. Os itens existentes poderão ser removidos com o botão Remover.

  Para invocar uma importação automática em lote com o perfil seleccionado, carregue em Iniciar. Os detalhes sobre a importação em curso são apresentados no topo da janela. O processo poderá ser interrompido com o botão Interromper.

Ficheiro → Escolher as Imagens de Capas...

  A janela para Escolher as Imagens das Capas ajuda a descobrir as imagens das capas dos álbuns. O Artista/Álbum é preenchido a partir das marcas, se tal for possível. A Origem oferece uma variedade de páginas Web com imagens das capas dos álbuns. O URL com o artista e o álbum como parâmetros poderá ser consultado por baixo do nome. Poderá inserir valores codificados como URL's para o artista se usar o "`%u{artist}`" e "`%u{album}`"; também são possíveis os outros valores a partir das marcas, tal como descrito em Configurar o Kid3, Acções do Utilizador. Poderá introduzir mais fontes a seguir ao elemento "Origem Personalizada", substituindo a "Origem Personalizada" pelo nome da fonte e carregar em Enter, introduzindo depois o URL e carregando finalmente em Gravar a Configuração. O comando do navegador resultante aparece no topo da janela e pode ser iniciado se carregar em Escolher. O navegador, que pode ser definido na configuração, é iniciado com a origem seleccionada. Poderá então arrastar uma imagem de capa a partir do navegador para a janela do Kid3, para que a mesma fique configurada no pacote de imagem dos ficheiros seleccionados.

  Dado que nem todos os navegadores suportam o arrastamento de imagens e as imagens das páginas Web normalmente têm um URL, nesses casos o Kid3 irá receber o URL e não a imagem. Se o URL apontar para uma imagem, a mesma será transferida. Contudo, se o URL fizer referência a outro recurso qualquer da Web, terá de ser traduzido para a imagem correspondente. Essas associações estão definidas na tabela de extracção do URL. A coluna da esquerda Corresponder contém uma expressão regular que é comparada com o URL. Se corresponder, as expressões capturadas entre parêntesis são introduzidas no padrão da coluna URL da Imagem à direita (nas posições marcadas com o \1 etc.). A expressão regular substituída contém o URL da imagem. Com este mecanismo, as imagens das capas poderão ser importadas a partir da Amazon, Google Images, etc. por arrastamento. Também é possível definir as suas próprias associações.

Ficheiro → Exportar...

  A Janela de Exportação é usada para guardar os dados das marcas num ficheiro ou na área de transferência. O editor no topo mostra uma antevisão dos dados a exportar. Se os dados da exportação tiverem tabulações, a exportação será apresentada numa tabela. Os dados serão gerados a partir das marcas na pasta actual, de acordo com o formato configurado.

  A configuração do formato é semelhante à da janela de Importação: O campo no topo contém o título (p.ex. "CSV sem aspas"), seguido do cabeçalho que será gerado no início do ficheiro. Os dados da faixa vêm a seguir; é usado para cada faixa. Finalmente, o rodapé pode ser usado para gerar algum texto final.

  Os campos de formato não contêm expressões regulares como na janela de Importação, mas apenas as expressões do formato de saída com expressões-% especiais, as quais serão substituídas pelos valores das marcas. O processo inteiro funciona como no formato dos nomes dos ficheiros, sendo usados os mesmos códigos para além de alguns códigos adicionais. Não só os códigos apresentados abaixo mas todos os nomes de pacotes de marcas poderão ser usados.

  - %s %{title} Título (Música)

  - %a %{artist} Artista

  - %l %{album} Álbum

  - %c %{comment} Comentário

  - %y %{year} Ano

  - %t %{track} Faixa (p.ex. 01)

  - %t %{track.n} Faixa com o tamanho do campo 'n' (p.ex. 001 para %{track.3})

  - %T %{tracknumber} Faixa (sem os zeros iniciais, p.ex. 1)

  - %g %{genre} Género

  - %f %{file} Nome do ficheiro

  - %p %{filepath} Localização

  - %{modificationdate} Data de modificação

  - %{creationdate} Data de criação

  - %u %{url} URL

  - %{dirname} Nome da pasta

  - %d %{duration} Duração em minutos:segundos

  - %D %{seconds} Duração em segundos

  - %n %{tracks} Número de faixas do álbum

  - %e %{extension} Extensão do ficheiro

  - %O %{tag1} O formato da marca 1 (ID3v1.1 ou vazio se inexistente)

  - %o %{tag2} O formato da marca 2 (ID3v2.3.0, ID3v2.4.0, ID3v2.2.0, ID3v2.2.1, Vorbis, APE, MP4, ASF ou vazio se inexistente)

  - %b %{bitrate} Taxa de dados em kbit/s

  - %v %{vbr} VBR ou vazio (apenas para o ID3v2.3 com a id3lib)

  - %r %{samplerate} Taxa de amostragem em Hz

  - %m %{mode} Modo do canal (Estéreo ou Estéreo Conjunto)

  - %h %{channels} Número de canais (1 ou 2)

  - %k %{codec} Codificador (p.ex. MPEG 1 Nível 3, MP4, Ogg Vorbis, FLAC, MPC, APE, ASF, AIFF, WAV)

  Existem alguns formatos predefinidos. O "CSV sem aspas" separa os campos com tabulações. Os dados neste formato poderão ser importados de novo para o Kid3, usando o formato de importação com o mesmo nome. O "CSV com aspas" delimita adicionalmente os campos com aspas, o que facilita a importação para as folhas de cálculo. Contudo, os campos não poderão ter eles próprios aspas quando usar este formato. O "M3U Estendido" e o "PLS Estendido" geram listas de reprodução com atributos estendidos e com nomes de locais absolutos. O "HTML" pode ser usado para gerar uma página HTML com hiperligações para as faixas. O "Kover XML" cria um ficheiro que poderá ser importado pelo programa de impressão de capas Kover. Os "Detalhes Técnicos" oferecem informações sobre a taxa de dados, taxa de amostragem, canais, etc. Finalmente, o "Formato Personalizado" é deixado em branco para a definição de um formato personalizado. Poderá definir mais formatos seus se adicionar linhas no ficheiro , `kid3rc` na pasta de configuração. Os outros formatos poderão ser adaptados de acordo com as suas necessidades.

  A Origem das marcas para gerar os dados de exportação (Marca 1 ou Marca 2) poderá ser seleccionada com uma lista. Se carregar em Para um Ficheiro ou Para a Área de Transferência, irá guardar os dados nesses destinos. Os botões OK e Cancelar fecham a janela, sendo que o OK aceita as definições da janela actual.

Ficheiro → Criar uma Lista de Reprodução...

  Cria uma lista de reprodução. O formato e conteúdo da lista de reprodução poderão ser definidos com várias opções.

  O nome da lista de reprodução poderá ser o Mesmo que o nome da pasta ou usar um Formato com valores das marcas, p.ex. "`%{artist} - %{album}`" para ter o nome do artista e do álbum no nome do ficheiro da lista de reprodução. Os códigos do formato são os mesmos que em Exportar. A opção Criar uma nova lista de reprodução vazia irá criar uma lista de reprodução vazia com o nome indicado. A extensão depende do formato da lista de reprodução.

  A localização da lista de reprodução gerada é determinada pela selecção da lista Criar em.

  Pasta actual

    A lista de reprodução é criada na pasta actual e só contém os ficheiros da pasta actual. A pasta actual é a pasta onde se encontra o ficheiro actual. Se estiverem seleccionados vários ficheiros, o ficheiro actual será provavelmente o último ficheiro seleccionado.

  Todas as pastas

    Uma lista de reprodução é criada em todas as pastas que contêm os ficheiros listados, sendo que cada lista contém os ficheiros dessa pasta.

  Pasta de topo

    Só é criada uma lista de reprodução na pasta de topo (i.e., a pasta da lista de ficheiros) e contém os ficheiros listados na pasta de topo e em todas as suas sub-pastas.

  O Formato da lista de reprodução poderá ser o M3U, PLS ou XSPF.

  Se a opção Incluir apenas os ficheiros seleccionados estiver assinalada, só serão incluídos os ficheiros seleccionados na lista de reprodução. Se uma dada pasta for seleccionada, serão seleccionados todos os seus ficheiros. Se esta opção de marcação não estiver assinalada, todos os ficheiros de áudio serão incluídos na lista de reprodução.

  O Ordenar pelo nome do ficheiro selecciona o caso normal, onde os ficheiros são ordenados pelo nome do ficheiro. Com a opção Ordenar pelo campo da marca, é possível ordenar por um dado texto de formato com os valores dos campos das marcas. Por exemplo, o "`%{track.3}`" pode ser usado para ordenar pelo número da faixa (o "`.3`" é usado para obter três algarismos com zeros iniciais, dado que são usados textos nas ordenação). Também é possível usar vários campos, p.ex. "`%{genre}%{year}`" para ordenar por um texto composto pelo género e ano.

  Os elementos da lista de reprodução terão locais relativos ou absolutos, dependendo se as opções Usar uma localização relativa para os ficheiros na lista de reprodução ou a Usar a localização completa para os ficheiros na lista de reprodução estiver definida.

  Quando estiver assinalada a opção Escrever apenas a lista de ficheiros, a lista de reprodução só irá conter as localizações dos ficheiros. Para gerar uma lista estendida com informações adicionais, poderá definir um texto de formato com o controlo Gravar a informação com.

Ficheiro → Sair (Ctrl+Q)

  Sai da aplicação.

## O Menu Editar

Editar → Seleccionar Tudo (Alt+A)

  Selecciona todos os ficheiros.

Editar → Deseleccionar (Ctrl+Shift+A)

  Deselecciona todos os ficheiros.

Editar → Seleccionar Tudo na Pasta

  Selecciona todos os ficheiros na pasta actual.

Editar → Ficheiro Anterior (Alt+Cima)

  Selecciona o ficheiro anterior.

Editar → Ficheiro Seguinte (Alt+Baixo)

  Selecciona o ficheiro seguinte.

Editar → Procurar... (Ctrl+F)

  Procura por determinados textos nos nomes dos ficheiros e nas marcas. A janela Procurar é um sub-conjunto da janela Substituir, a qual está descrita em baixo.

Editar → Substituir... (Ctrl+R)

  Esta função abre uma janela para procurar e substituir os textos nos nomes dos ficheiros e nas marcas. O conjunto de pacotes onde é efectuada a pesquisa poderá ser restrito se desactivar a opção Seleccionar tudo e seleccionar os pacotes que devem ser pesquisados. Também existem opções de pesquisa para poder procurar para trás, para distinguir a capitalização e para usar as expressões regulares.

  Dependendo do número de ficheiros, a pesquisa poderá demorar algum tempo, como tal poderá ser interrompida se fechar a janela.

## O Menu Ferramentas

Ferramentas → Aplicar o Formato do Nome do Ficheiro

  Quando a opção Aplicar automaticamente o formato estiver desligada para o formato de nomes dos ficheiros na janela de configuração, este item do menu pode ser usado para aplicar o formato configurado aos nomes dos ficheiros seleccionados. Isto também pode ser usado para verificar se os nomes dos ficheiros estão em conformidade com o formato configurado, aplicando o formato a todos os ficheiros gravados e depois verificando se alguns dos ficheiros foram modificados (e, deste modo, marcados com um símbolo de disco na lista de ficheiros).

Ferramentas → Aplicar o Formato das Marcas

  Quando a opção Aplicar automaticamente o formato estiver desligada para o formato das marcas na janela de configuração, este item do menu pode ser usado para aplicar o formato configurado às marcas dos ficheiros seleccionados. Isto também pode ser usado para verificar se as marcas estão em conformidade com o formato configurado, aplicando o formato a todos os ficheiros gravados e depois verificando se alguns dos ficheiros foram modificados (e, deste modo, marcados com um símbolo de disco na lista de ficheiros).

Ferramentas → Aplicar a Codificação do Texto

  Define a Codificação de texto seleccionada em Configuração → Configurar o Kid3... → secção de Marcas → página da Marca 2 para todos os ficheiros seleccionados. Se estiver seleccionado o UTF8, será usado o UTF16 para as marcas ID3v2.3.0, dado que o UTF8 não é suportado para este formato.

Ferramentas → Mudar o Nome da Pasta...

  Esta janela oferece a possibilidade de mudar automaticamente de nome a pasta aberta de momento, de acordo com as marcas nos ficheiros. Estão pré-configurados diversos formatos para incluir informações sobre o artista, o álbum e o ano no nome da pasta. Também é possível definir um formato personalizado e Editar a lista de formatos disponíveis. São usados os seguintes códigos especiais para inserir os valores das marcas no nome da pasta:

  - %s %{title} Título (Música)

  - %a %{artist} Artista

  - %l %{album} Álbum

  - %c %{comment} Comentário

  - %y %{year} Ano

  - %t %{track} Faixa (p.ex. 01)

  - %t %{track.n} Faixa com o tamanho do campo 'n' (p.ex. 001 para %{track.3})

  - %T %{tracknumber} Faixa (sem os zeros iniciais, p.ex. 1)

  - %g %{genre} Género

  - %{dirname} Nome da pasta (p.ex. %{year" "}%{dirname} irá anteceder o ano ao nome da pasta actual)

  - %{max-year} O valor máximo do ano encontrado para esta pasta; também poderá ser usado com outros códigos que não o "year"

  - %{min-year} O valor mínimo do ano encontrado para esta pasta

  - %{unq-year} O valor único do ano encontrado para esta ou vazio se não for único

  Se for encontrado um separador de pastas "/" no formato, são criadas várias pastas. Se quiser criar uma nova pasta em vez de mudar o nome da pasta actual, seleccione Criar uma Pasta em vez de Mudar o Nome da Pasta. A Origem da informação da marca poderá ser escolhida entre Da Marca 1 e Marca 2, Da Marca 1 e Da Marca 2. Poderá ter uma antevisão da operação de mudança de nome efectuada no primeiro ficheiro nas secções De e Para da janela.

  Poderá mudar o nome de várias pastas se as seleccionar.

Ferramentas → Numerar as Faixas...

  Se os números de faixa nas marcas não estiverem definidos ou tiverem valores errados, esta função poderá numerar as faixas de forma automática, por ordem ascendente. O número inicial poderá ser definido na janela. Se só tiver de numerar parte das faixas, as mesmas devem estar seleccionadas.

  Quando o Número total de faixas estiver assinalado, também será definido o número de faixas nas marcas.

  É possível numerar as faixas por várias pastas. As pastas têm de estar expandidas e seleccionadas.

  Se a opção Repor o contador para cada pasta estiver assinalada, a numeração de faixas é reiniciada com o número indicado para cada pasta, sempre que estiverem seleccionadas várias pastas.

  A janela de numeração das faixas também pode ser usada para formatar os números de faixas existentes sem modificar os valores quando a opção de marcação à esquerda do Número de início estiver desactivada. O número total de faixas será adicionado se a opção de marcação correspondente estiver activa, o que poderá ser usado para definir o total de todas as faixas seleccionadas. Se só for desejada a formatação dos números existentes, esta opção de marcação também tem de ser desactivada.

Ferramentas → Filtrar...

  O filtro poderá ser usado para mostrar apenas os ficheiros que correspondem a determinados critérios. Isto é útil se quiser organizar uma colecção grande e só editar os ficheiros que não estejam no esquema desejado. A expressão que define quais os valores a apresentar usa os mesmos códigos de formato que são usados no formato dos nomes de ficheiros, na importação e na exportação.

  - %s %{title} Título (Música)

  - %a %{artist} Artista

  - %l %{album} Álbum

  - %c %{comment} Comentário

  - %y %{year} Ano

  - %t %{track} Faixa (p.ex. 01)

  - %t %{track.n} Faixa com o tamanho do campo 'n' (p.ex. 001 para %{track.3})

  - %T %{tracknumber} Faixa (sem os zeros iniciais, p.ex. 1)

  - %g %{genre} Género

  - %f %{file} Nome do ficheiro

  - %p %{filepath} Localização absoluta do ficheiro

  - %e %{extension} Extensão do ficheiro

  - %O %{tag1} O formato da marca 1 (ID3v1.1 ou vazio se inexistente)

  - %o %{tag2} O formato da marca 2 (ID3v2.3.0, ID3v2.4.0, ID3v2.2.0, ID3v2.2.1, Vorbis, APE, MP4, ASF ou vazio se inexistente)

  - %b %{bitrate} Taxa de dados em kbit/s

  - %v %{vbr} VBR ou vazio (apenas para o ID3v2.3 com a id3lib)

  - %r %{samplerate} Taxa de amostragem em Hz

  - %m %{mode} Modo do canal (Estéreo ou Estéreo Conjunto)

  - %h %{channels} Número de canais (1 ou 2)

  - %k %{codec} Codificador (p.ex. MPEG 1 Nível 3, MP4, Ogg Vorbis, FLAC, MPC, APE, ASF, AIFF, WAV)

  - %w %{marked} Marcado; é igual a 1 se o ficheiro estiver marcado (p.ex. por estar truncado ou a violar a norma), sendo vazio em caso contrário

  - %1a %1{artist}, ... Use o prefixo 1 para obter os valores da marca 1

  - %2a %2{artist}, ... Use o prefixo 2 para obter os valores da marca 2

  Estes códigos são substituídos pelos valores do ficheiro, sendo que os textos resultantes podem ser comparados com as seguintes operações:

  - t1 equals t2: verdadeiro se o t1 e o t2 forem iguais.

  - t1 contains t2: verdadeiro se o t1 conter o t2, i.e. o t2 for um sub-texto de t1.

  - t matches er: verdadeiro se o t corresponder à expressão regular er.

  As expressões verdadeiras são substituídas por 1 e as falsas por 0. Os valores verdadeiros são representados como 1, true, on e yes, enquanto os valores falsos são por 0, false, off e no. As operações booleanas são o 'not', 'and' e 'or' (por esta ordem de precedência) e podem ser agrupadas com parêntesis.

  Algumas regras de filtragem são predefinidas e podem servir de exemplos para as suas próprias expressões:

  Tudo

    Quando a lista de ficheiros estiver filtrada - isso aparece como "[filtrado]" no título da janela - e caso deseje mostrar todos os ficheiros de novo, a filtragem pode ser revertida com este filtro. Ela usa uma expressão vazia, mas um valor verdadeiro terá o mesmo efeito.

  Inconsistência da Marca do Nome do Ficheiro

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

    Testa de a localização do ficheiro está em conformidade com o formato de nomes de ficheiros. Esta regra é adaptada automaticamente se o formato do nome do ficheiro mudar.

  Sem Marca 1

    `%{tag1} equals ""`

    Mostra apenas os ficheiros que não tiverem uma marca 1.

  Sem Marca 2

    `%{tag2} equals ""`

    Mostra apenas os ficheiros que não tiverem uma marca 2.

  Marca de ID3v2.3.0

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

    Mostra apenas os ficheiros que tiverem uma marca de ID3v2.3.0.

  Marca de ID3v2.4.0

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

    Mostra apenas os ficheiros que tiverem uma marca de ID3v2.4.0.

  Marca 1 != Marca 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})`

    Mostra os ficheiros com diferenças entre a marca 1 e a marca 2.

  Marca 1 == Marca 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}`

    Mostra os ficheiros com a marca 1 e a marca 2 idênticas.

  Incompleto

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

    Mostra os ficheiros com valores vazios nas marcas-padrão (title, artist, album, date, track number, genre).

  Sem Imagem

    `%{picture} equals ""`

    Mostra apenas os ficheiros que não tiverem uma imagem.

  Marcado

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

    Mostra apenas os ficheiros que estiverem marcados por violarem a norma ID3, estejam truncados ou a imagem for demasiado grande.

  Filtro Personalizado

    Para adicionar o seu próprio filtro, seleccione este item. Por exemplo, se quiser um filtro por artistas que comecem por "The", substitua o "Filtro Personalizado" pelo nome "Bandas 'The'" e carregue em Enter. Depois indique a seguinte expressão no campo de texto:

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

    Depois carregue em Gravar a Configuração. Carregue em Aplicar para filtrar os ficheiros. Todos os ficheiros processados são apresentados no campo de texto, com um "+" para as correspondências ao filtro e um "-" para os outros. Quando terminar só os ficheiros com um artista que comece por "The" são apresentados, assim como o título da janela fica marcada como "[filtrado]".

Ferramentas → Converter o ID3v2.3 para ID3v2.4

  Se existirem algumas marcas de ID3v2.3 nos ficheiros seleccionados, as mesmas serão convertidas para marcas de ID3v2.4. Os pacotes que não forem suportados pela TagLib serão descartados. Só os ficheiros sem modificações por gravar é que serão convertidos.

Ferramentas → Converter o ID3v2.4 para ID3v2.3

  Se existirem algumas marcas de ID3v2.4 nos ficheiros seleccionados, as mesmas serão convertidas para marcas de ID3v2.3. Os pacotes que não forem suportados pela TagLib serão descartados. Só os ficheiros sem modificações por gravar é que serão convertidos.

Ferramentas → Reproduzir

  Isto abre uma barra de ferramentas simples para tocar ficheiros de áudio. Contém botões para as operações básicas (Reproduzir/Pausa, Parar a reprodução, Faixa Anterior, Faixa Seguinte, Fechar), barras de posição e de volume e um mostrador da posição actual. Se tiver seleccionado vários ficheiros, as faixas seleccionadas serão reproduzidas, caso contrário serão reproduzidos todos os ficheiros.

## O Menu Configuração

Configuração → Mostrar a Barra de Ferramentas

  Activa/desactiva a apresentação da barra de ferramentas.

Configuração → Mostrar a Barra de Estado

  Comuta a apresentação da barra de estado, que mostra as acções mais longas como a abertura ou gravação de uma dada pasta.

Configuração → Mostrar a Imagem

  Comuta a apresentação da imagem de antevisão das capas do álbum.

Configuração → Auto-Esconder as Marcas

  As marcas vazias ficam automaticamente escondidas se esta opção estiver activa. As secções Ficheiro, Marca 1 e Marca 2 poderão ser fechadas e expandidas manualmente se carregar nos botões -/+ respectivos.

Configuração → Configurar as Teclas de Atalho...

  Abre uma janela para atribuir atalhos de teclado à maior parte das funções do programa. Existem até funções sem menu ou botão disponível, p.ex. ficheiro seguinte, ficheiro anterior, seleccionar tudo.

Configuração → Configurar o Kid3...

  Abre a janela de configuração, que consiste nas páginas das marcas, ficheiros, acções do utilizador e configuração da rede.

  As opções específicas das marcas poderão ser encontradas na página Marcas, que por sua vez está dividida em quatro páginas para a Marca 1, Marca 2, Marca 3 e Todas as Marcas.

  Se a opção Marcar os campos truncados estiver assinalada, os campos de ID3v1.1 truncados ficarão marcados a vermelho. Os campos de texto das marcas ID3v1.1 só poderão ter 30 caracteres, assim como o comentário só poderá ter 28 caracteres. Do mesmo modo, o género e os números de faixas são restritos, pelo que os campos poderão ficar truncados quando forem importados ou transferidos a partir do ID3v2. Os campos truncados e o nome do ficheiro ficarão marcados a vermelho, sendo que a marca será removida após editar o campo.

  Com a Codificação do texto para o ID3v1, é possível definir o conjunto de caracteres usado nas marcas ID3v1. Esta codificação é supostamente a ISO-8859-1, pelo que se recomenda manter este valor predefinido. Contudo, existem marcas com codificações diferentes, pelo que a mesma pode ser definida aqui e as marcas ID3v1 possam então ser copiadas para o ID3v2, que suporta o Unicode.

  A opção de marcação Usar o formato faixa/número total de faixas controla se o campo do número da faixa das marcas ID3v2 contém apenas o número da faixa ou também o número total de faixas na pasta.

  Quando estiver assinalada a opção Género como texto em vez de texto numérico, todos os géneros do ID3v2 serão guardados como uma sequência de texto, mesmo que exista um código correspondente para os géneros de ID3v1. Se esta opção não estiver activa, os géneros para os quais exista um código de ID3v1 são guardados como o número de código do género (entre parêntesis para o ID3v2.3). Como tal, o género Metal está guardado como "Metal" ou "(9)", dependendo desta opção. Os géneros que não constem na lista de géneros ID3v1 são sempre guardados como uma sequência de texto. O objectivo desta opção é melhorar a compatibilidade com os dispositivos que não interpretam correctamente os códigos de géneros.

  Quando a opção Ficheiros WAV com bloco de ID3 em minúsculas estiver assinalada, o bloco de RIFF usado para guardar as marcas ID3v2 nos ficheiros WAV terá o nome "id3 " em vez de "ID3 ". Por omissão, o Kid3 e outras aplicações que usam a TagLib aceitam tanto a versão em maiúsculas como em minúsculas ao ler os ficheiros WAV, mas irão usar a versão "ID3 " quando gravar as marcas ID3v2 nos ficheiros WAV. Dado que existem outras aplicações que só aceitam a versão "id3 " (p.ex. JRiver Media Center e foobar2000), esta opção poderá ser usada para criar marcas que possam ser lidas por essas aplicações.

  Quando a opção Marcar as violações da norma estiver assinalada, os campos de ID3v2 que violem os padrões serão marcados a vermelho. Os detalhes sobre a violação aparecerão numa dica:

  - Deve ser único

  - Não é permitida uma mudança de linha

  - Não é permitido o retorno de linha

  - O dono não pode estar em branco

  - Deve ser numérico

  - Deve ser numérico ou número/total

  - O formato é DDMM

  - O formato é HHMM

  - O formato é AAAA

  - Deve começar por um ano e um espaço

  - Deve ser uma data/hora no formato ISO 8601

  - Deve ser uma nota musical, 3 caracteres, A-G, b, #, m, o

  - Deve ser um código de língua ISO 639-2, 3 caracteres minúsculos

  - Deve ser um código ISRC de 12 caracteres

  - Deve ser uma lista de textos separados por '|'

  - Tem espaços em excesso

  Os documentos da norma ID3 estão disponíveis 'online':

  - Marca ID3 na versão 2.3.0

  - Marca ID3 na versão 2.4.0 - Estrutura Principal

  - Marca ID3 na versão 2.4.0 - Pacotes Nativos

  A Codificação do texto define a codificação predefinida usada para os pacotes ID3v2 e poderá ser configurada como ISO-8859-1, UTF16 ou UTF8. O UTF8 não é válido para os pacotes ID3v2.3.0; se estiver configurado, será usado em alternativa o UTF16. Para os pacotes de ID3v2.4.0, todas as três codificações são permitidas.

  A Versão usada para as marcas novas determina se as marcas ID3v2 novas são criadas na versão 2.3.0 ou 2.4.0.

  Os Algarismos do número de faixa é o número de algarismos nos campos do Número de Faixa. Os zeros iniciais são usados para preencher. Por exemplo, com um valor igual a 2, o número de faixa 5 fica igual a "05".

  A lista Nome do campo de comentário só é relevante para os ficheiros Ogg/Vorbis e FLAC e define o nome do campo que é usado para os comentários. As diferentes aplicações parecem usar nomes diferentes, sendo por exemplo usado no XMMS o "`COMMENT`", enquanto o Amarok usa o "`DESCRIPTION`".

  O formato das imagens nos ficheiros Ogg/Vorbis é determinado pelo campo Nome do campo de imagem, o qual poderá ser igual a "`METADATA_BLOCK_PICTURE`" ou "`COVERART`". O primeiro faz parte da norma oficial e usa o mesmo formato que as imagens nas marcas FLAC. O COVERART é uma forma mais antiga e não oficial de incluir imagens nos comentários do Vorbis. Pode ser usado por compatibilidade com os leitores antigos.

  Se a opção Marcar se maior que (bytes) estiver activada, os ficheiros que contêm imagens de capa incorporadas que ultrapassem o tamanho indicado em 'bytes' ficarão marcados a vermelho. Isto pode ser usado para descobrir os ficheiros que têm imagens demasiado grandes e que, por isso, possam não ser aceites por algumas aplicações e leitores. O valor por omissão é de 131072 bytes (128 KB).

  Os Géneros Personalizados poderão ser usados para definir géneros que não estejam disponíveis na lista de géneros-padrão, p.ex. "Gothic Metal". Esses géneros personalizados irão aparecer na lista Género da Marca 2. Para as marcas ID3v1.1, só poderão ser usados os géneros predefinidos.

  A lista de géneros personalizados também poderá ser usada para reduzir o número de géneros disponíveis na lista Género aos que são tipicamente usados. Se a sua colecção consistir principalmente em músicas dos géneros Metal, Gothic Metal, Ancient e Hard Rock, poderá inserir esses géneros e marcar a opção Mostrar apenas os géneros personalizados. A lista Género da Marca 2 só irá conter esses quatro géneros e não terá de pesquisar pela lista completa de géneros deles. Neste exemplo, só irá aparecer Metal e Hard Rock na lista de géneros da marca 1, dado que esses itens de géneros personalizados ainda são géneros-padrão. Se a opção Mostrar apenas os géneros personalizados não estiver activa, os géneros personalizados poderão ser encontrados no fim da lista de géneros.

  Nos Pacotes Personalizados, poderá definir até oito nomes de pacotes personalizados, os quais poderão então ser usados como pacotes unificados - por exemplo, como pacotes de acesso rápido.

  Os Pacotes de Acesso Rápido definem quais os tipos de pacotes que ficam sempre visíveis na secção da Marca 2. Esses pacotes poderão então ser adicionados sem usar primeiro o botão Adicionar. A ordem desses pacotes de acesso rápido poderá ser alterada se arrastar os itens respectivos.

  A lista Nome do campo de número de faixa só relevante para o RIFF INFO e define o nome do campo usado para os números de faixas. Os números de faixa não fazem parte da norma RIFF original, sendo que existem aplicações que usam o "`ITRK`" e outras o "`IPRT`".

  O Formato das Marcas contém opções para o formato das marcas. Quando a opção Aplicar automaticamente o formato estiver assinalada, a configuração do formato é usada automaticamente ao editar o texto nos campos de edição. A Validação activa algumas validações nos controlos com os valores da faixa/total e data/hora. A Conversão de capitalização pode ser configurada como Sem alterações, Tudo em minúsculas, Tudo em maiúsculas, Primeira letra maiúscula ou Todas as primeiras letras maiúsculas. Para usar uma conversão com suporte regional entre maiúsculas e minúsculas, poderá seleccionar uma região na lista abaixo. A lista de substituições de textos poderá ser configuradas com associações de texto arbitrárias. Para adicionar uma nova associação, seleccione a célula De de uma linha e introduza o texto a substituir, indo depois à coluna Para e indicando o texto de substituição. Quando o texto a substituir começar por uma barra ("/"), é usada uma expressão regular. Para as expressões regulares que tiverem grupos de captura, as ocorrências de \1, \2, ... no campo Para são substituídas pelo texto capturado no grupo de captura correspondente. Para remover uma associação, configure a célula de como um valor vazio (p.ex. escrevendo um espaço e depois apagando-o). A inserção e remoção de linhas também é possível com o menu de contexto que aparece quando carregar no botão direito do rato. A substituição só fica activa se a opção de marcação Substituição de texto estiver assinalada.

  A tabela na Classificação contém a associação das classificações com estrelas aos valores efectivos que são guardados na marca. Os pacotes com informação de classificação aparecem na linha Classificação da lista de pacotes. Para esses pacotes, a classificação poderá ser definida se indicar um número de estrelas até cinco. Os diferentes formatos de marcas e diferentes aplicações usam diferentes valores para associar a classificação por estrelas ao valor guardado na marca. Para mostrar o número correcto de estrelas, o Kid3 irá procurar por um mapa nesta tabela. A chave para procurar nesse mapa é o nome do pacote, como por exemplo "RATING" se for usado nos comentários do Vorbis ou "IRTD" para o INFO do RIFF. Para as marcas de ID3v2, é usada uma chave composta que consiste no ID do pacote "POPM" da Medicação de Popularidade e no seu campo "E-mail", separados por um ponto. Como tal, existem diferentes chaves para o ID3v2, p.ex. "POPM.Windows Media Player 9 Series" para a associação usadas pelo Windows Media Player e pelo Explorer, ou simplesmente "POPM" para os pacotes POPM com um campo de "E-mail" vazio. Dado que poderão existir vários itens para o "POPM", a sua ordem é importante. Quando o Kid3 adiciona um novo pacote de Medição de Popularidade, irá usar o primeiro item "POPM" para determinar o valor a ser gravado no campo "E-mail". Este valor irá então definir a associação a usar para as classificações por estrelas. É usado o primeiro item também se não for encontradas nenhuma chave, sendo assim o item predefinido.

  Para além da coluna Nome que contém as chaves, a tabela tem colunas da 1 até à 5 para os valores a guardar quando é atribuído o número correspondente de estrelas. De igual forma, os valores determinam o número de estrelas que são apresentadas para o valor guardado no pacote. Por exemplo, a linha na tabela abaixo contém os valores 1, 64, 128, 196, 255. Os limites para apresentar os números de estrelas situam-se entre estes valores e são compatíveis com que o Windows® Explorer usa.

  Tabela 3.2. Elemento na Tabela de Classificação

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

  Na página Ficheiros, a opção Carregar os últimos ficheiros abertos poderá ser assinalada para que o Kid3 abra e seleccione o último ficheiro seleccionado quando for iniciado da próxima vez. A opção Preservar a data do ficheiro pode ser assinalada para preservar a data de modificação do ficheiro. O Nome do ficheiro da capa define o nome que é sugerido quando uma imagem incorporada for exportada para um ficheiro. Com a opção Codificação de texto (Exportar, Lista de Reprodução), poderá definir a codificação usada para gravar os ficheiros. O valor predefinido Sistema poderá ser alterado por exemplo se as listas de reprodução tiverem de ser usadas num dispositivo diferente.

  Se a opção Marcar as modificações estiver activa, os campos alterados estão marcados com um fundo da legenda em cinzento claro.

  A secção Lista de Ficheiros define quais os ficheiros que aparecem na lista de ficheiros. Poderá usar um Filtro para restringir os itens nesta lista para os ficheiros com as extensões suportadas. Para indicar de forma explícita quais as pastas a apresentar na lista de ficheiros ou para excluir certas pastas, poderá usar as opções Incluir as pastas e Excluir as pastas. Poderão contém caracteres especiais, como por exemplo `*/Música/*` para incluir apenas a pasta `Música` ou `*/iTunes/*` para excluir a pasta do iTunes da lista de ficheiros. Se tiver de usar várias expressões deste tipo, as mesmas poderão ser separadas por espaços ou pontos-e-vírgulas.

  Os botões Nome do ficheiro a partir da marca e Marca a partir do nome do ficheiro na secção Formato abrem janelas para editar os formatos que ficam disponíveis na lista Formato (com setas para cima e para baixo), as quais poderão ser encontradas na secção Ficheiro da janela principal.

  O botão da Lista de Reprodução pode ser usado para editar os formatos de nomes dos ficheiros disponíveis na janela para Criar uma Lista de Reprodução.

  O Formato dos Nomes de Ficheiros contém opções para o formato dos nomes dos ficheiros. Estão disponíveis as mesmas opções que no Formato das Marcas.

  Adicionalmente, poderá definir o Tamanho máximo para os nomes dos ficheiros. A maioria dos sistemas de ficheiros modernos têm um limite de 255 caracteres, mas se quiser gravar os ficheiros em CD's, deverá configurar o limite como 64. Se assinalar a opção Usar para os nomes das listas de reprodução e pastas, o formato do nome do ficheiro também é usado na criação das listas de reprodução e ao mudar os nomes das pastas.

  A página de Acções do Utilizador contém uma tabela com os comandos que estão disponíveis no menu de contexto da lista de ficheiros. Para as operações críticas, como a remoção de ficheiros, aconselha-se que marque o Confirmar para apresentar uma janela de confirmação antes de executar o comando. O Resultado pode ficar marcado para ver o resultado escrito pelos comandos da consola (no 'standard output' e 'standard error'). O Nome é o nome apresentado no menu de contexto. O Comando é a linha de comandos a executar. Os argumentos podem ser passados com os seguintes códigos:

  - %F %{files} Localizações dos ficheiros (uma lista se estiverem vários ficheiros seleccionados)

  - %f %{file} Localização de um único ficheiro individual

  - %uF %{urls} URLs (uma lista se estiverem vários ficheiros seleccionados)

  - %uf %{url} URL de um único ficheiro individual

  - %d %{directory} Pasta

  - %s %{title} Título (Música)

  - %a %{artist} Artista

  - %l %{album} Álbum

  - %c %{comment} Comentário

  - %y %{year} Ano

  - %t %{track} Faixa (p.ex. 01)

  - %t %{track.n} Faixa com o tamanho do campo 'n' (p.ex. 001 para %{track.3})

  - %T %{tracknumber} Faixa (sem os zeros iniciais, p.ex. 1)

  - %g %{genre} Género

  - %b %{browser} Comando para iniciar o navegador Web

  - %q %{qmlpath} Pasta de base dos ficheiros QML fornecidos

  O código especial @separator pode ser configurado como um comando para inserir um separador no menu de contexto das acções do utilizador. Poderá colocar os itens de menu num submenu se os rodear com comandos @beginmenu e @endmenu. O nome do submenu é determinado pela coluna Nome do comando @beginmenu.

  Para executar os programas em QML, o @qml é usado como um nome de comando. A localização do programa em QML é passada como um parâmetro. Os programas existentes poderão ser encontrados na pasta `%{qmlpath}/script/` (no Linux® é tipicamente a `/usr/share/kid3/qml/script/`, no Windows a `qml/script/` dentro da pasta de instalação e no macOS® na pasta da aplicação `kid3.app/Contents/Resources/qml/script/`). Poderá guardar os programas personalizados em qualquer pasta. Se o código QML usar componentes GUI, o @qmlview deverá ser usado em vez do @qml. Os parâmetros adicionais são passados ao programa em QML, onde ficarão disponíveis através da função `getArguments()`. Poderá ter uma visão geral de algumas funções e propriedades que estão disponíveis no apêndice da Interface de QML.

  O comando que será introduzido com o %{browser} pode ser definido no campo de texto Navegador Web acima. Os comandos que comecem por %{browser} podem ser usados para obter informações acerca dos ficheiros de áudio na Web; por exemplo

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

  irá pesquisar pelas letras da música actual no LyricWiki. O "u" em %u{artist} e %u{title} é usado para codificar como URL os dados do artista %{artist} e da música %{title}. É fácil definir as suas próprias pesquisas da mesma forma, p.ex. uma pesquisa por imagens no Google:

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

  Para adicionar as imagens das capas dos álbuns à marca 2, poderá procurar por imagens no Google ou na Amazon com os comandos descritos acima. A imagem poderá ser adicionada à marca por arrastamento. Também poderá adicionar uma imagem com o botão Adicionar, seleccionando depois o pacote da Imagem e importar um ficheiro de imagem ou colá-lo a partir da área de transferência. Os pacotes de imagens são suportados nas marcas de ID3v2, MP4, FLAC, Ogg e ASF.

  Para adicionar e remover itens da tabela, poderá usar um menu de contexto.

  A página Rede contém apenas um campo para inserir o endereço do 'proxy' e, opcionalmente, o porto separados por dois-pontos. O 'proxy' será usado ao importar os dados a partir de um servidor na Internet quando a opção estiver assinalada.

  Na página de Plugins, poderá activar ou desactivar os 'plugins' disponíveis. Os mesmos estão separados em duas secções. A lista 'Plugins' de Meta-Dados & Prioridade contém os 'plugins' que suportam os formatos de ficheiros de áudio. A ordem dos 'plugins' é importante porque são avaliados de cima para baixo. Alguns dos formatos são suportados por vários 'plugins', pelo que os ficheiros serão abertos com o primeiro 'plugin' com suporte para os mesmos. O TaglibMetadata tem suporte para a maioria dos formatos, sendo que irá abrir a maior parte dos ficheiros, caso esteja no topo da lista. Se quiser usar um 'plugin' diferente para um formato de ficheiros, certifique-se que aparece antes do 'plugin' TaglibMetadata. Os detalhes sobre os 'plugins' de meta-dados, bem como o motivo pelo qual os poderá querer usar em vez da TagLib, estão enumerados em baixo.

  - Id3libMetadata: Usa o id3lib para as marcas ID3v1.1 e ID3v2.3 nos ficheiros MP3, MP2, AAC. Suporta mais alguns tipos de pacotes que a TagLib.

  - OggFlacMetadata: Usa a libogg, a libvorbis, libvorbisfile para os ficheiros Ogg e adicionalmente a libFLAC++ e a libFLAC para os ficheiros FLAC. Estas são as bibliotecas oficiais para estes formatos.

  - TaglibMetadata: Usa a TagLib que suporta um conjunto de formatos de ficheiros de áudio. Pode ser usado para todos os ficheiros de áudio suportados pelo Kid3.

  - Mp4v2Metadata: o mp4v2 foi usado originalmente pelo Kid3 para suportar os ficheiros M4A. Pode ser usado em caso de problemas com o suporte de M4A na TagLib.

  A secção de 'Plugins' Disponíveis apresenta os restantes 'plugins'. A sua ordem não é relevante, mas poderão ser activados ou desactivados com as opções de marcação.

  - AmazonImport: Usado na função Importar da Amazon....

  - DiscogsImport: Usado na função Importar da Discogs....

  - FreedbImport: Usado na função Importar da gnudb.org....

  - MusicBrainzImport: Usado na função Importar da Versão do MusicBrainz....

  - AcoustidImport: Usado para a função Importar da Impressão Digital do MusicBrainz.... que depende das bibliotecas Chromaprint e libav.

  Os 'plugins' que estiverem desactivados não serão carregados. Isto poderá ser usado para optimizar a utilização dos recursos e o tempo de arranque. A configuração nesta página só fará efeito após reiniciar o Kid3.

## O Menu Ajuda

Ajuda → Manual do Kid3

  Abre este manual.

Ajuda → Acerca do Kid3

  Mostra uma breve informação sobre o Kid3.

# Capítulo 4. kid3-cli

## Comandos

O kid3-cli oferece uma interface de linha de comandos para o Kid3. Se for usada a localização de uma pasta, a mesma será aberta. Se forem indicadas as localizações de um ou mais ficheiros, será aberta a pasta comum com os ficheiros seleccionados. Os comandos subsequentes irão então funcionar sobre esses ficheiros. Os comandos são indicados através das opções `-c`. Se forem passados vários comandos, os mesmos serão executados pela ordem indicada. Se os ficheiros forem modificados pelos comandos, eles serão gravados no fim. Se não forem passadas opções de comandos, o kid3-cli inicia no modo interactivo. Os comandos poderão então ser introduzidos e irão funcionar sobre a selecção actual. As seguintes secções apresentam todos os comandos disponíveis.

### Ajuda

`help` [`NOME-COMANDO`]

Mostra ajuda sobre os parâmetros do `NOME-COMANDO` ou sobre todos os comandos, caso não seja indicado nenhum nome de comando.

### Tempo-limite

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

Substitui o tempo-limite predefinido dos comandos. Os comandos da CLI são interrompidos após ser ultrapassado um dado tempo-limite para os comandos. Este tempo-limite é de 10 segundos para o ls e o albumart, de 60 segundos para o autoimport e filter e de 3 segundos para todos os outros comandos. Se tiver de processar um número enorme de ficheiros, estes tempos-limites podem ser demasiado restritos; como tal, poderá definir o tempo-limite para todos os comandos como sendo `TEMPO` ms, desligado por completo ou deixar com os valores predefinidos.

### Sair da aplicação

`exit` [force]

Sai da aplicação. Se existirem ficheiros por gravar modificados, o parâmetro `force` é obrigatório.

### Mudar de pasta

`cd` [`PASTA`]

Se não for indicada nenhuma `PASTA`, muda para a pasta pessoal. Se for indicada uma pasta, muda para dentro dessa pasta. Se forem indicadas uma ou mais localizações de ficheiros, muda para a pasta comum entre elas e selecciona os ficheiros.

### Imprime o nome da pasta actual

`pwd`

Imprime o nome da pasta de trabalho actual.

### Lista de pastas

`ls`

Apresenta o conteúdo da pasta actual. Isto corresponde à lista de ficheiros na GUI do Kid3. Cinco caracteres antes dos nomes dos ficheiros mostram o estado do ficheiro.

- `>` O ficheiro está seleccionado.

- `*` O ficheiro está modificado.

- `1` O ficheiro tem uma marca 1, caso contrário aparece '`-`'.

- `2` O ficheiro tem uma marca 2, caso contrário aparece '`-`'.

- `3` O ficheiro tem uma marca 3, caso contrário aparece '`-`'.

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

    > 12- 02 So Temos Este.mp3
     *1-- 03 Final.mp3

Neste exemplo, todos os ficheiros têm uma marca 1, enquanto o segundo ficheiro também tem uma marca 2 e a mesma está seleccionada. O terceiro ficheiro está modificado.

### Gravar os ficheiros alterados

`save`

### Seleccionar o ficheiro

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

Para seleccionar todos os ficheiros, introduza `select all`; para deseleccionar todos os ficheiros, indique `select none`. Para percorrer os ficheiros na pasta actual, comece com o `select first` e vá avançando com o `select next` ou recuando com o `select previous`. Poderá adicionar ficheiros específicos à selecção actual, indicando para tal os seus nomes. São permitidas sequências especiais; como tal, o `select *.mp3` irá seleccionar todos os ficheiros MP3 na pasta actual.

    kid3-cli> select first
    kid3-cli> ls

    > 1-- 01 Intro.mp3
      12- 02 So Temos Este.mp3
     *1-- 03 Final.mp3
    kid3-cli> select next
    kid3-cli> ls
      1-- 01 Intro.mp3

    > 12- 02 So Temos Este.mp3
     *1-- 03 Final.mp3
    kid3-cli> select *.mp3
    kid3-cli> ls

    > 1-- 01 Intro.mp3

    > 12- 02 So Temos Este.mp3

    >*1-- 03 Final.mp3

### Seleccionar a marca

`tag` [`NÚMEROS-MARCAS`]

Muitos dos comandos têm um parâmetro opcional `NÚMEROS-MARCAS`, que define se o comando funciona na marca 1, 2 ou 3. Se este parâmetro for omitido, serão usados os números de marcas predefinidos, os quais poderão ser definidos por este comando. No arranque está configurado como `12`, o que significa que a informação é lida da marca 2, se disponível, caso contrário da marca 1; as modificações são efectuadas na marca 2. O parâmetro ``NÚMEROS-MARCAS`` poderá ser configurado como `1`, `2` ou `3` para funcionar apenas na marca correspondente. Se o parâmetro for omitido, é apresentado o valor actual.

### Obter os dados da marca

`get` [ all | `NOME-PACOTE` ] [`NÚMEROS-MARCAS`]

Este comando pode ser usado para ler o valor de um dado pacote de marcas ou para obter informações sobre todos os pacotes de marcas (se o argumento for omitido ou for usado o `all`). Os pacotes modificados estão marcados com um '`*`'.

    kid3-cli> get
    Ficheiro: MPEG 1 Layer 3 192 kbps 44100 Hz Joint Stereo
      Name: 01 Intro.mp3
    Marca 1: ID3v1.1
      Título        Intro
      Artista       Famoso Desconhecido
      Álbum         Vamos Marcar
      Date          2013
      Track Number  1
      Genre         Pop
    kid3-cli> get title
    Intro

Para gravar o conteúdo de uma marca de imagem para um ficheiro, use

    get picture:'/local/da/pasta.jpg'

Para gravar as letras sincronizadas para um ficheiro LRC, use

    get SYLT:'/local/das/letras.lrc'

É possível obter apenas um campo específico de um pacote, como por exemplo `get POPM.Email` para o campo de E-Mail de um pacote de Medição de Popularidade. Se um ficheiro tiver vários pacotes do mesmo tipo, poderá indexar os diferentes pacotes com parêntesis rectos; por exemplo, o primeiro artista de um comentário de Vorbis poderá ser obtido com a expressão `get performer[0]` e o segundo com `get performer[1]`.

O pseudo-nome de campo "selected" pode ser usado para verificar se um dado pacote está seleccionado, por exemplo `get artist.selected` irá devolver `1` se o pacote do artista estiver seleccionado, caso contrário devolve `0`.

O nome do pseudo-pacote "ratingstars" pode ser usado para obter o valor do pacote "rating", dado que o formato do valor corresponde ao número de estrelas (0 a 5). Ao usar o "rating", é devolvido o valor interno.

### Modificar os dados da marca

`set` {`NOME-PACOTE`} {`VALOR-PACOTE`} [`NÚMEROS-MARCAS`]

Este comando configura o valor de um dado pacote de marca em específico. Se o `VALOR-PACOTE` estiver vazio, o pacote é apagado.

    kid3-cli> set remixer 'Fam. Desconhecido'

Para configurar o conteúdo de um pacote de imagem a partir de um ficheiro, use

    set picture:'/local/da/pasta.jpg' 'Descrição da Imagem'

Para configurar as letras sincronizadas a partir de um ficheiro LRC, use

    set SYLT:'/local/das/letras.lrc' 'Descrição das Letras'

Para configurar um dado campo específico de um pacote, o nome do campo pode ser definido a seguir a um ponto, p.ex. para configurar o campo Contador de um pacote Medição de Popularidade, use

    set POPM.Counter 5

Uma aplicação para as definições dos campos é o caso em que deseja usar um pacote TXXX personalizado com a descrição da "classificação" em vez de um pacote de Medição de Popularidade (isso parece ser o caso usado por alguns 'plugins'). Poderá criar um desses pacotes de classificação TXXX com o kid3-cli; contudo, terá primeiro de criar um pacote TXXX com a descrição "rating" e depois configurar o valor deste pacote com o valor da classificação.

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

O primeiro comando irá apagar um pacote POPM existente, porque se existir um desses pacotes o `set rating 5` iria configurar o pacote POPM e não o pacote TXXX. Outra possibilidade seria usar o `set TXXX.Text 5`, mas só iria funcionar se não estivesse presente nenhum outro pacote TXXX.

Para configurar vários pacotes do mesmo tipo, poderá indicar um índice entre parêntesis, p.ex. para definir vários artistas num comentário de Vorbis, use

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

Para seleccionar certos pacotes antes de uma operação para copiar, colar ou remover, o nome do pseudo-campo "selected" pode ser usado. Normalmente, todos os pacotes estão seleccionados; para deseleccionar tudo, use o comando `set '*.selected' 0` e depois por exemplo `set artist.selected 1` para seleccionar o pacote do artista.

O nome do pseudo-pacote "ratingstars" pode ser usado para obter o valor do pacote "rating", dado que o formato do valor corresponde ao número de estrelas (0 a 5). O nome do pacote "rating" pode ser usado para definir o valor interno.

Se definir o "ratingstars" em vários ficheiros que tenham diferentes formatos de marcas, isso não irá funcionar, porque o pacote com o valor associado ao número de estrelas é criado para o primeiro ficheiro e depois é usado em todos os ficheiros. Por isso, em vez de usar `kid3-cli -c "set ratingstars 2" *`, deveria usar `for f in *; do kid3-cli -c "set ratingstars 2" "$f"; done`.

### Reverter

`revert`

Reverte todas as modificações nos ficheiros seleccionados (ou todos os ficheiros se não estiver nenhum seleccionado).

### Importar de ficheiro

`import` {`FICHEIRO`} {`NOME-FORMATO`} [`NÚMEROS-MARCAS`]

As marcas são importadas a partir do ficheiro `FICHEIRO` no formato com o nome `NOME-FORMATO` (p.ex. `"CSV sem aspas"`, veja como Importar).

Se for usado o `tags` para o `FICHEIRO`, as marcas são importadas a partir das outras marcas. Em vez dos parâmetros `NOME-FORMATO`, são obrigatórios a `ORIGEM` e a `EXTRACÇÃO`; veja mais em Importar a Partir das Marcas. Para aplicar a importação a partir das marcas nos ficheiros seleccionados, use o `tagsel` em vez do `tags`. Esta função também suporta o resultado do valor extraído, usando uma `EXTRACÇÃO` com o valor `%{__return}(.+)`.

### Importação automática

`autoimport` [`NOME-PERFIL`] [`NÚMEROS-MARCAS`]

Faz uma importação em lote, usando para tal o perfil `NOME-PERFIL` (veja a Importação Automática, `"Tudo"` é usado por omissão).

### Obter as imagens da capa do álbum

`albumart` {`URL`} [all]

Configura as imagens do álbum, transferindo uma imagem a partir do `URL`. As regras definidas na janela para Escolher as Imagens das Capas são usadas para transformar os URL's gerais (p.ex. da Amazon) num URL de imagem. Para configurar a capa do álbum para um ficheiro de imagem local, use o comando set.

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

### Exportar para um ficheiro

`export` {`FICHEIRO`} {`NOME-FORMATO`} [`NÚMEROS-MARCAS`]

As marcas são exportadas para o ficheiro `FICHEIRO` no formato com o nome `NOME-FORMATO` (p.ex. `"CSV sem aspas"`, ver como Exportar).

### Criar a lista de reprodução

`playlist`

Cria uma lista de reprodução no formato definido na configuração; veja como Criar uma Lista de Reprodução.

### Aplicar o formato de nomes dos ficheiros

`filenameformat`

Aplica o formato de nomes de ficheiros definido na configuração; veja como Aplicar o Formato de Nomes de Ficheiros.

### Aplicar o formato das marcas

`tagformat`

Aplica o formato de marcas definido na configuração; veja como Aplicar o Formato de Marcas.

### Aplicar a codificação do texto

`textencoding`

Aplica a codificação de texto definida na configuração; veja como Aplicar a Codificação do Texto.

### Mudar o nome da pasta

`renamedir` [`FORMATO`] [ create | rename | dryrun ] [`NÚMEROS-MARCAS`]

Muda o nome ou cria pastas a partir dos valores nas marcas, de acordo com um dado `FORMATO` (p.ex. `%{artist} - %{album}`; veja mais em Mudar o Nome da Pasta); se não for indicado nenhum formato, é usado o formato definido na janela para Mudar o nome da pasta. O modo predefinido é `rename`; para criar pastas, deverá ser indicado de forma explícita o `create`. As acções de mudança de nome serão efectuadas de imediato. Para ver o que irá ser feito, use a opção `dryrun`.

### Numerar as faixas

`numbertracks` [`NÚMERO-FAIXA`] [`NÚMEROS-MARCAS`]

Numera as faixas seleccionadas a começar em `NÚMERO-FAIXA` (`1` por omissão).

### Filtro

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

Filtra os ficheiros de forma que apenas os ficheiros correspondentes ao `FORMATO-FILTRO` fiquem visíveis. O nome de uma expressão de filtro predefinida (p.ex. `"Falta de Correspondência Entre Nomes de Ficheiros e Marcas"`) pode ser usado em vez de uma expressão de filtro; veja o Filtro.

    kid3-cli> filter '%{title} contains "tro"'
    Iniciado
      /home/utilizador/Famoso Desconhecido - Vamos Marcar
    + 01 Intro.mp3
    - 02 So Temos Este.mp3
    + 03 Final.mp3
    Terminado
    kid3-cli> ls
      1-- 01 Intro.mp3
      1-- 03 Final.mp3
    kid3-cli> filter All
    Iniciado
      /home/utilizador/Famoso Desconhecido - Vamos Marcar
    + 01 Intro.mp3
    + 02 So Temos Este.mp3
    + 03 Final.mp3
    Terminado
    kid3-cli> ls
      1-- 01 Intro.mp3
      12- 02 So Temos Este.mp3
      1-- 03 Final.mp3

### Converter o ID3v2.3 para ID3v2.4

`to24`

### Converter o ID3v2.4 para ID3v2.3

`to23`

### Nome do ficheiro a partir da marca

`fromtag` [`FORMATO`] [`NÚMEROS-MARCAS`]

Configura os nomes dos ficheiros seleccionados a partir dos valores nas marcas; por exemplo `fromtag '%{track} - %{title}' 1`. Se não for indicado nenhum formato, será usado o formato definido na GUI.

### Marca a partir do nome do ficheiro

`totag` [`FORMATO`] [`NÚMEROS-MARCAS`]

É usada uma segunda lista Formato (com uma seta para baixo) para gerar as marcas a partir do nome do ficheiro. Se o formato do nome do ficheiro não corresponder a este padrão definido na GUI, serão testados alguns outros formatos usados de forma comum.

### Marca para outra marca

`syncto` {`NÚMERO-MARCA`}

Copia os pacotes de marcas de uma marca para a outra; p.ex. para configurar a marca ID3v2 a partir da marca ID3v1, use o `syncto 2`.

### Copiar

`copy` [`NÚMERO-MARCA`]

Copia os pacotes de marcas do ficheiro seleccionado para a área de cópia interna. Eles poderão ser configurados noutro ficheiro, usando o comando paste.

Para copiar apenas um sub-conjunto dos pacotes, use o pseudo-campo "selected" com o comando set. Por exemplo, para copiar apenas o número do disco e os direitos de cópia, use

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

### Colar

`paste` [`NÚMERO-MARCA`]

Configura os pacotes de marcas a partir do conteúdo da área do comando copy sobre os ficheiros seleccionados.

### Remover

`remove` [`NÚMERO-MARCA`]

Remove uma marca.

É possível remover apenas um sub-conjunto dos pacotes se os seleccionar como descrito no comando copy.

### Configurar o Kid3

`config` [`OPÇÃO`] [`VALOR`]

Consulta ou modifica uma opção de configuração.

Uma `OPÇÃO` consiste no nome de um grupo e de uma propriedade, separados por um ponto. Quando não for indicada nenhuma `OPÇÃO`, aparecem todos os grupos disponíveis. Para um dado grupo e propriedade, aparece o valor configurado de momento. Para mudar a configuração, o novo valor pode ser passado como segundo argumento.

Se o valor de uma dada opção for uma lista, todos os elementos da lista têm de ser indicados como argumentos. Isto significa que, para adicionar um elemento a uma lista de elementos existente, todos os elementos existentes terão de ser passados seguidos pelo novo elemento. Nessa situação, é mais fácil usar o modo JSON, onde a lista actual poderá ser copiada com o novo elemento adicionado.

### Executar um binário ou um programa em QML

`execute` [@qml] {`FICHEIRO`} [`ARGUMENTOS`]

Executa um programa em QML ou um executável.

Sem o `@qml`, é executado um programa binário com os argumentos. Quando o `@qml` é passado como primeiro argumento, os seguintes são o programa em QML e os seus argumentos. Por exemplo, as marcas de uma pasta podem ser exportadas para o ficheiro `exportacao.csv` com o seguinte comando.

    kid3-cli -c "execute @qml
    /usr/share/kid3/qml/script/ExportCsv.qml exportacao.csv"
    /localização/da/pasta/

Aqui o `exportacao.csv` é o argumento do programa `ExportarCsv.qml`, onde a `/localização/da/pasta/` é o argumento ``FICHEIRO`` do kid3-cli.

## Exemplos

Configura o título contendo um apóstrofo. Os comandos passados ao kid3-cli com o `-c` têm de estar entre aspas se não consistirem apenas numa única palavra. Se um destes comandos tiver ele próprio um argumento com espaços, esse argumento também terá de estar entre aspas. Nas consolas de UNIX®, poderá usar plicas ou aspas, mas na Linha de Comandos do Windows, é importante que as aspas exteriores sejam feitas com aspas e as interiores com plicas. Se o texto dentro das plicas tiverem uma plica, a mesma terá de ser escapada com uma barra invertida, como é demonstrado no seguinte exemplo:

    kid3-cli -c "set title 'I\'ll be there for you'" /local/da/pasta

Configure a capa do álbum de todos os ficheiros de uma pasta com a função de importação em lote:

    kid3-cli -c "autoimport 'Cover Art'" /local/da/pasta

Remover os pacotes de comentários e aplicar o formato da marca em ambas as marcas de todos os ficheiros MP3 de uma pasta:

    kid3-cli -c "set comment '' 1" -c "set comment '' 2" \
    -c "tagformat 1" -c "tagformat 2" /local/da/pasta/*.mp3

Importar automaticamente a marca 2, sincronizar com a marca 1, configura os nomes dos ficheiros a partir da marca 2 e finalmente criar uma lista de reprodução:

    kid3-cli -c autoimport -c "syncto 1" -c fromtag -c playlist \
      /local/da/pasta/*.mp3

Para todos os ficheiros com uma marca ID3v2.4.0, converte para ID3v2.3.0 e remove o pacote do maestro:

    kid3-cli -c "filter 'ID3v2.4.0 Tag'" -c "select all" -c to23 \
      -c "set arranger ''" /local/da/pasta

Este programa em Python usa o kid3-cli para gerar pacotes do iTunes Sound Check iTunNORM a partir dos dados de ganho da reprodução.

    #!/usr/bin/env python3
    # Gerar o iTunes Sound Check a partir do Ganho de Reprodução.
    import os, sys, subprocess

    def rg2sc(dirpath):
      for raiz, pastas, ficheiros in os.walk(pasta):
        for nome in ficheiros:
          if nome.endswith(('.mp3', '.m4a', '.aiff', '.aif')):
            fn = os.path.join(raiz, nome)
            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('O valor %s de %s não é um número fraccionário' % (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

Para facilitar o processamento dos resultados do kid3-cli, é possível obter o resultado no formato JSON. Quando o pedido vier no formato JSON, a resposta será também em JSON. Um formato compacto do pedido irá também dar uma representação compacta da resposta. Se o pedido tiver um campo "id", assume-se que é um pedido de JSON-RPC e a resposta irá devolver um campo "jsonrpc" e o "id" do pedido. O formato do pedido usa os mesmos comandos que a CLI normal, sendo que o campo "method" contém o comando e os parâmetros (se existirem) são fornecidos na lista "params". A resposta contém um objecto "result", que também poderá ser nulo se o comando kid3-cli correspondente não devolver um resultado. Em caso de erro, é devolvido um objecto "error" com os campos "code" e "message" usados da mesma forma que o JSON-RPC.

    kid3-cli> {"method":"set","params":["artist","Um Artista"]}
    {"result":null}
    kid3-cli> {"method":"get","params":["artist",2]}
    {"result":"Um Artista"}
    kid3-cli> {"method": "get", "params": ["artist"]}
    {
        "result": "Um Artista"
    }

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

# Capítulo 5. Créditos e Licença

Kid3

Programa criado por Urs Fleisch `<ufleisch at users.sourceforge.net>`

Tradução de José Nuno Pires `<zepires@gmail.com>`

FDL

GPL

# Apêndice A. Instalação

## Como obter o Kid3

Poderá encontrar o Kid3 em https://kid3.kde.org.

## Requisitos

O Kid3 precisa do Qt™. O KDE é recomendado, mas não é necessário, dado que o Kid3 também pode ser compilado como uma aplicação do Qt™. O Kid3 pode ser compilado nos sistemas onde essas bibliotecas estão disponíveis, p.ex. para o GNU/Linux®, Windows® e macOS®. Para marcar os ficheiros Ogg/Vorbis, são necessárias as bibliotecas libogg, libvorbis e libvorbisfile, para os ficheiros FLAC, são necessárias a libFLAC++ e a libFLAC. A id3lib é usada para os ficheiros MP3. Estes quatro formatos também são suportados pela TagLib, que também consegue lidar com ficheiros Opus, MPC, APE, MP2, Speex, TrueAudio, WavPack, WMA, WAV, AIFF e módulos do Tracker. Para importar a partir de impressões-digitais acústicas, são usados o Chromaprint e a libav.

O Kid3 está disponível na maioria das distribuições de Linux®, Windows® e macOS®. Poderá encontrar referências para o mesmo em https://kid3.kde.org.

## Compilação e Instalação

Poderá compilar o Kid3 com ou sem o KDE. Sem o KDE, o Kid3 é uma aplicação simples em Qt™ e poderá perder algumas funcionalidades de configuração e de sessões.

Para uma versão para o KDE, vá à pasta de topo e escreva

    % cmake .
    % make
    % make install

Para compilar para diferentes versões do Qt™ ou do KDE, defina as seguintes opções correspondentes ao `cmake`.

Se nem todas as bibliotecas estiverem presentes, o Kid3 será compilado com funcionalidades reduzidas. Por isso, deverá ter o cuidado de ter todos os pacotes de desenvolvimento desejados instalados. Por outro lado, as opções do `cmake` controlam quais as bibliotecas que são compiladas. Por omissão, o valor é `-DWITH_TAGLIB:BOOL=ON -DWITH_MP4V2:BOOL=OFF -DWITH_ID3LIB:BOOL=ON -DWITH_CHROMAPRINT:BOOL=ON -DWITH_VORBIS:BOOL=ON -DWITH_FLAC:BOOL=ON` . Estas opções podem ser desactivas se usar o `OFF`.

Para compilar o Kid3 como uma aplicação do Qt™ sem o KDE, use a opção do `cmake` `-DWITH_APPS=Qt`. Para compilar tanto a versão para KDE como para Qt™, configure como `-DWITH_APPS="Qt;KDE"`.

Para usar um a instalação específica do Qt™, configure `-DQT_QMAKE_EXECUTABLE=/local/do/qmake`.

A geração de pacotes RPM é suportada pelo ficheiro `kid3.spec`; para os pacotes da Debian®, o programa `build.sh deb` está disponível.

A aplicação do Qt™ também pode ser compilada para o Windows® e o macOS®. O programa `build.sh` pode ser usado para obter e compilar todas as bibliotecas necessárias e criar um pacote do Kid3.

## Configuração

Com o KDE, a configuração é gravada em `.config/kid3rc` e o estado da aplicação em `.local/share/kid3/kid3staterc`. Como uma aplicação do Qt™, este ficheiro encontra-se em `.config/Kid3/Kid3.conf`. No Windows®, a configuração é guardada no Registry e no macOS® é guardada num ficheiro 'plist'.

A variável de ambiente `KID3_CONFIG_FILE` pode ser usada para definir a localização do ficheiro de configuração.

# Apêndice B. A Interface de D-Bus

## Exemplos de D-Bus

No Linux®, poderá usar uma interface do D-Bus para controlar o Kid3 através de programas. Os programas poderão ser criados em qualquer linguagem que tenha interfaces para o D-Bus (p.ex. em Python) e podem ser adicionadas às Acções do Utilizador para estender a funcionalidade do Kid3.

O artista na marca 2 do ficheiro actual poderá ser configurado com o valor "Famoso Desconhecido" com o seguinte código:

Linha de comandos

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

  ou ainda mais facilmente com o qdbus do Qt™ (o qdbusviewer pode ser usado para explorar a interface numa GUI):

      qdbus org.kde.kid3 /Kid3 setFrame 2 Artist \
      'Famoso Desconhecido'

Python

      import dbus
      kid3 = dbus.SessionBus().get_object(
        'org.kde.kid3', '/Kid3')
      kid3.setFrame(2, 'Artist', 'Famoso Desconhecido')

Perl

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

## API de D-Bus

A API de D-Bus está definida em `org.kde.Kid3.xml`. A interface do Kid3 tem os seguintes métodos:

### Abrir um ficheiro ou pasta

`boolean openDirectory(` | localização`)`; |

`string localização`;

`localização`

  localização de um ficheiro ou pasta

Devolve verdadeiro se OK.

### Descarrega as marcas de todos os ficheiros que não estejam modificados ou seleccionados

`unloadAllTags(` | `)`; |

### Grava todos os ficheiros modificados

`boolean save(` | `)`; |

Devolve verdadeiro se OK.

### Obtém uma mensagem de erro detalhada oferecida por alguns dos métodos

`string getErrorMessage(` | `)`; |

Devolve uma mensagem de erro detalhada.

### Reverte as modificações nos ficheiros seleccionados

`revert(` | `)`; |

### Inicia uma importação automática em lote

`boolean batchImport(` | mascaraMarcas, |
| nomePerfil`)`; |

`int32 mascaraMarcas`;
`string nomePerfil`;

`mascaraMarcas`

  máscara de marcas (bit 0 para a marca 1, bit 1 para a marca 2)

`nomePerfil`

  nome do perfil de importação em lote a usar

### Importar as marcas de um ficheiro

`boolean importFromFile(` | mascaraMarcas, |
| localização, |
| indFmt`)`; |

`int32 mascaraMarcas`;
`string localização`;
`int32 indFmt`;

`mascaraMarcas`

  bit da marca (1 para a marca 1, 2 para a marca 2)

`localização`

  localização do ficheiro

`indFmt`

  índice do formato

Devolve verdadeiro se OK.

### Importar as marcas de outras marcas

`importFromTags(` | mascaraMarcas, |
| origem, |
| extracção`)`; |

`int32 mascaraMarcas`;
`string origem`;
`string extracção`;

`mascaraMarcas`

  bit da marca (1 para a marca 1, 2 para a marca 2)

`origem`

  o formato para obter o texto da origem a partir das marcas

`extracção`

  expressão regular com os nomes dos pacotes e as capturas para extrair os dados a partir do texto de origem

### Imptrar as marcas de outras marcas nos ficheiros seleccionados

`array importFromTagsToSelection(` | mascaraMarcas, |
| origem, |
| extracção`)`; |

`int32 mascaraMarcas`;
`string origem`;
`string extracção`;

`mascaraMarcas`

  bit da marca (1 para a marca 1, 2 para a marca 2)

`origem`

  o formato para obter o texto da origem a partir das marcas

`extracção`

  expressão regular com os nomes dos pacotes e as capturas para extrair os dados a partir do texto de origem

`returnValues`

  valor extraído para o "%{__return}(.+)"

### Obter as imagens da capa do álbum

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

`string url`;
`boolean todosFicheirosNaPasta`;

`url`

  URL do ficheiro da imagem ou recurso artístico do álbum

`todosFicheirosNaPasta`

  verdadeiro para adicionar a imagem a todos os ficheiros na pasta

### Exportar as marcas para um ficheiro

`boolean exportToFile(` | mascaraMarcas, |
| localização, |
| indFmt`)`; |

`int32 mascaraMarcas`;
`string localização`;
`int32 indFmt`;

`mascaraMarcas`

  bit da marca (1 para a marca 1, 2 para a marca 2)

`localização`

  localização do ficheiro

`indFmt`

  índice do formato

Devolve verdadeiro se OK.

### Criar uma lista de reprodução

`boolean createPlaylist(` | `)`; |

Devolve verdadeiro se OK.

### Obter os itens de uma lista de reprodução

`array getPlaylistItems(` | localização`)`; |

`string localização`;

`localização`

  localização do ficheiro da lista de reprodução

Devolve uma lista com as localizações absolutas dos itens da lista de reprodução.

### Define os itens de uma lista de reprodução

`boolean setPlaylistItems(` | localização, |
| itens`)`; |

`string localização`;
`array itens`;

`localização`

  localização do ficheiro da lista de reprodução

`itens`

  lista de localizações absolutas dos itens da lista de reprodução

Devolve verdadeiro se OK, ou falso se nem todos os itens foram encontrados ou se a adição ou gravação ou gravação foi mal-sucedida.

### Sair da aplicação

`quit(` | `)`; |

### Seleccionar todos os ficheiros

`selectAll(` | `)`; |

### Deseleccionar todos os ficheiros

`deselectAll(` | `)`; |

### Configura o primeiro ficheiro como o ficheiro actual

`boolean firstFile(` | `)`; |

Devolve verdadeiro se existe um primeiro ficheiro.

### Configura o ficheiro anterior como sendo o actual

`boolean previousFile(` | `)`; |

Devolve verdadeiro se existe um ficheiro anterior.

### Configura o ficheiro seguinte como sendo o actual

`boolean nextFile(` | `)`; |

Devolve verdadeiro se existe um ficheiro seguinte.

### Selecciona o primeiro ficheiro

`boolean selectFirstFile(` | `)`; |

Devolve verdadeiro se existe um primeiro ficheiro.

### Seleccionar o ficheiro anterior

`boolean selectPreviousFile(` | `)`; |

Devolve verdadeiro se existe um ficheiro anterior.

### Seleccionar o ficheiro seguinte

`boolean selectNextFile(` | `)`; |

Devolve verdadeiro se existe um ficheiro seguinte.

### Seleccionar o ficheiro actual

`boolean selectCurrentFile(` | `)`; |

Devolve verdadeiro se existe um ficheiro actual.

### Expande ou fecha o item do ficheiro actual se for uma pasta

`boolean expandDirectory(` | `)`; |

Um item de lista de ficheiros é uma pasta se o getFileName() devolver um um nome com '/' como último carácter.

Devolve verdadeiro se o item do ficheiro actual for uma pasta.

### Aplicar o formato de nomes dos ficheiros

`applyFilenameFormat(` | `)`; |

### Aplicar o formato das marcas

`applyTagFormat(` | `)`; |

### Aplicar a codificação do texto

`applyTextEncoding(` | `)`; |

### Definir o nome da pasta a partir das marcas

`boolean setDirNameFromTag(` | mascaraMarcas, |
| formato, |
| criar`)`; |

`int32 mascaraMarcas`;
`string formato`;
`boolean criar`;

`mascaraMarcas`

  máscara de marcas (bit 0 para a marca 1, bit 1 para a marca 2)

`formato`

  formato dos nomes dos ficheiros

`criar`

  verdadeiro para criar, falso para mudar o nome

Devolve verdadeiro se OK, caso contrário a mensagem de erro estará disponível se usar o getErrorMessage().

### Define os números das faixas subsequentes nos ficheiros seleccionados

`numberTracks(` | mascaraMarcas, |
| nrPrimeiraFaixa`)`; |

`int32 mascaraMarcas`;
`int32 nrPrimeiraFaixa`;

`mascaraMarcas`

  máscara de marcas (bit 0 para a marca 1, bit 1 para a marca 2)

`nrPrimeiraFaixa`

  número a usar para o primeiro ficheiro

### Filtrar os ficheiros

`filter(` | expressão`)`; |

`string expressão`;

`expressão`

  expressão de filtragem

### Converter as marcas de ID3v2.3 para ID3v2.4

`convertToId3v24(` | `)`; |

### Converter as marcas de ID3v2.4 para ID3v2.3

`convertToId3v23(` | `)`; |

Devolve verdadeiro se OK.

### Obter a localização da pasta

`string getDirectoryName(` | `)`; |

Devolve a localização absoluta da pasta.

### Obtém o nome do ficheiro actual

`string getFileName(` | `)`; |

Devolve a localização absoluta do nome do ficheiro; termina com "/" se for uma pasta.

### Define o nome do ficheiro seleccionado

`setFileName(` | nome`)`; |

`string nome`;

`nome`

  nome do ficheiro

O ficheiro irá mudar de nome quando a pasta for gravada.

### Define o formato a usar quando definir o nome do ficheiro a partir das marcas

`setFileNameFormat(` | formato`)`; |

`string formato`;

`formato`

  formato dos nomes dos ficheiros

### Configura os nomes dos ficheiros para os ficheiros seleccionados a partir das marcas

`setFileNameFromTag(` | mascaraMarcas`)`; |

`int32 mascaraMarcas`;

`mascaraMarcas`

  bit da marca (1 para a marca 1, 2 para a marca 2)

### Obter o valor do pacote

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

`int32 mascaraMarcas`;
`string nome`;

`mascaraMarcas`

  bit da marca (1 para a marca 1, 2 para a marca 2)

`nome`

  nome do pacote (p.ex. "artist")

Para obter dados binários, como uma imagem, o nome do ficheiro a gravar pode ser adicionado a seguir ao `name`, p.ex. "Picture:/local/do/ficheiro". Da mesma forma, também poderão ser exportadas, p.ex. "SYLT:/local/do/ficheiro".

Devolve o valor do pacote.

### Configurar o valor do pacote

`boolean setFrame(` | mascaraMarcas, |
| nome, |
| valor`)`; |

`int32 mascaraMarcas`;
`string nome`;
`string valor`;

`mascaraMarcas`

  bit da marca (1 para a marca 1, 2 para a marca 2)

`nome`

  nome do pacote (p.ex. "artist")

`valor`

  valor do pacote

Para a marca 2 (`tagMask` 2), se não existir nenhum pacote chamado `nome`, será adicionado um novo pacote; se o `valor` estiver vazio, o pacote é removido. Para adicionar dados binários, como uma imagem, poderá adicionar um ficheiro a seguir ao `nome`, p.ex. "Picture:/local/do/ficheiro". "SYLT:/local/do/ficheiro" pode ser usado para importar as letras sincronizadas.

Devolve verdadeiro se OK.

### Obter todos os pacotes de uma marca

`lista de textos getTag(` | tagMask`)`; |

`int32 tagMask`;

`mascaraMarcas`

  bit da marca (1 para a marca 1, 2 para a marca 2)

Devolve uma lista com os nomes e valores dos pacotes de forma alternada.

### Obter informações técnicas sobre o ficheiro

`lista de textos getInformation(` | `)`; |

As propriedades são o Formato, Taxa de Dados, Taxa de Amostragem, Canais, Duração, Modo do Canal, VBR, Marca 1, Marca 2. Propriedades; os que não estiverem disponíveis são omitidos.

Devolve uma lista alternada entre os nomes e os valores das propriedades.

### Configurar uma marca a partir do nome do ficheiro

`setTagFromFileName(` | mascaraMarcas`)`; |

`int32 mascaraMarcas`;

`mascaraMarcas`

  bit da marca (1 para a marca 1, 2 para a marca 2)

### Configurar uma marca a partir de outra marca

`setTagFromOtherTag(` | mascaraMarcas`)`; |

`int32 mascaraMarcas`;

`mascaraMarcas`

  bit da marca (1 para a marca 1, 2 para a marca 2)

### Copiar a marca

`copyTag(` | mascaraMarcas`)`; |

`int32 mascaraMarcas`;

`mascaraMarcas`

  bit da marca (1 para a marca 1, 2 para a marca 2)

### Colar a marca

`pasteTag(` | mascaraMarcas`)`; |

`int32 mascaraMarcas`;

`mascaraMarcas`

  bit da marca (1 para a marca 1, 2 para a marca 2)

### Remover a marca

`removeTag(` | mascaraMarcas`)`; |

`int32 mascaraMarcas`;

`mascaraMarcas`

  bit da marca (1 para a marca 1, 2 para a marca 2)

### Volta a processar a configuração

`reparseConfiguration(` | `)`; |

As mudanças automatizadas da configuração serão possíveis se modificar o ficheiro de configuração e depois voltar a processar a configuração.

### Reproduz os ficheiros seleccionados

`playAudio(` | `)`; |

# Apêndice C. Interface em QML

## Exemplos em QML

Os programas em QML podem ser invocados através do menu de contexto da lista de ficheiros e podem ser configurados na página Acções do Utilizador da janela de configuração. Os programas que são aqui configurados podem ser usados como exemplos para programas personalizados. O QML usa o JavaScript, sendo que aqui está o obrigatório "Olá Mundo":

    import Kid3 1.0

    Kid3Script {
      onRun: {
        console.log("Olá mundo, a pasta é", app.dirName)
        Qt.quit()
      }
    }

Se este programa for gravado em `/local/do/Exemplo.qml`, o comando do utilizador poderá ser definido como @qml /local/do/Exemplo.qml com o nome `Teste de QML` e o Resultado assinalado. Poderá então ser iniciado com o item Teste de QML no menu de contexto da lista de ficheiros, ficando o resultado visível na janela.

Infelizmente, o arranque de programas em QML com o qml (p.ex. qml -apptype widget -I /usr/lib/kid3/plugins/imports /localização/do/Exemplo.qml) está com problemas nas versões recentes do Qt. Mas o kid3-cli oferece uma forma alternativa de executar um programa em QML a partir da linha de comandos, usando o seu comando execute.

    kid3-cli -c "execute @qml /localização/do/Exemplo.qml"

Para enumerar os títulos nas marcas 2 de todos os ficheiros na pasta actual, poderia ser usado o seguinte programa:

    import Kid3 1.0

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

Se a pasta tiver vários ficheiros, um destes programas poderá bloquear a interface do utilizador durante algum tempo. Para as operações mais demoradas, deverá então pausar de tempos a tempos. A implementação alternativa em baixo tem o trabalho feito para um único ficheiro transferido para uma função. Essa função invoca-se a si própria com um tempo-limite de 1 ms no fim, desde que existam mais ficheiros para serem processados. Isto irá garantir que a GUI continua a reagir enquanto o programa está em execução.

    import Kid3 1.0

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

        app.firstFile()
        trabalhar()
      }
    }

Ao usar o app.firstFile() com o app.nextFile(), serão processados todos os ficheiros na pasta actual. Se só é suposto processar os ficheiros seleccionados, use o firstFile() e o nextFile() em alternativa; estas são funções de conveniência do componente `Kid3Script`. O seguinte exemplo é um programa que copia apenas os pacotes do número do disco e dos direitos de cópia do ficheiro seleccionado.

    import Kid3 1.1

    Kid3Script {
      onRun: {
        function trabalhar() {
          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(trabalhar, 1)
          }
        }

        firstFile()
        trabalhar()
      }
    }

Mais programas vêm disponíveis com o Kid3 e estão já registados como comandos do utilizador.

- ReplayGain to SoundCheck (`ReplayGain2SoundCheck.qml`): Criar a informação de SoundCheck do iTunNORM a partir dos pacotes de ganho de reprodução.

- Dimensionar as Imagens do Álbum (`ResizeAlbumArt.qml`): Dimensiona as imagens das capas dos álbuns incorporadas que forem maiores que 500x500 pixels.

- Extrair as Imagens do Álbum (`ExtractAlbumArt.qml`): Extrai todas as imagens incorporadas das capas, evitando os duplicados.

- Incorporar as Imagens do Álbum (`EmbedAlbumArt.qml`): Incorpora as imagens de capas encontradas nos ficheiros de imagens dentro dos ficheiros de áudio na mesma pasta.

- Incorporar as Letras Musicais (`EmbedLyrics.qml`): Obtém as letras musicais não sincronizadas a partir de um serviço na Web.

- Codificação de Texto do ID3v1 (`ShowTextEncodingV1.qml`): Ajuda a descobrir a codificação das marcas ID3v1, apresentando as marcas do ficheiro actual em todas as codificações de caracteres disponíveis.

- ID3v1 para ASCII (`Tag1ToAscii.qml`): Traduz os caracteres acentuados estendidos na marca ID3v1 para ASCII.

- Capitalização de Títulos em Inglês (`TitleCase.qml`): Formato o texto nas marcas como títulos em Inglês.

- Reescrever as Marcas (`RewriteTags.qml`): Volta a gravar todas as marcas nos ficheiros seleccionados.

- Exportar para CSV (`ExportCsv.qml`): Exporta de forma recursiva todas as marcas de todos os ficheiros para um ficheiro CSV.

- Importar um CSV (`ImportCsv.qml`): Importa de forma recursiva todas as marcas de todos os ficheiros a partir de um ficheiro CSV.

- Exportar para JSON (`ExportJson.qml`): Exporta de forma recursiva todas as marcas de todos os ficheiros para um ficheiro JSON.

- Importar um JSON (`ImportJson.qml`): Exporta de forma recursiva todas as marcas de todos os ficheiros a partir de um ficheiro JSON.

- Exportar a Pasta da Lista de Reprodução (`ExportPlaylist.qml`): Copiar todos os ficheiros de uma lista de reprodução para uma pasta e muda o nome delas de acordo com a sua posição.

- Consola de QML (`QmlConsole.qml`): Uma consola simples para lidar com a API em QML do Kid3.

## API em QML

A API pode ser explorada de forma simples com a Consola de QML, que está disponível como um programa de exemplo com uma interface de utilizador.

### Kid3Script

O `Kid3Script` é um componente normal de QML que se localiza dentro da pasta de 'plugins'. Poderá usar outro componente de QML também. Ao usar o `Kid3Script`, fica mais fácil iniciar a função do programa com a rotina `onRun`. Para além disso, oferece algumas funções:

    onRun: Tratamento de evento que é invocado quando o programa é iniciado
    tagv1, tagv2, tagv2v1: Constantes para os parâmetros de marcas
    script: Acesso às funções de programação
    configs: Acesso às funções de configuração
    getArguments(): Lista de argumentos do programa
    isStandalone(): verdadeiro se o programa não foi iniciado dentro do Kid3
    setTimeout(rotina, atraso): Inicia a rotina ao fim de 'atraso' ms
    firstFile(): Para o primeiro ficheiro seleccionado
    nextFile(): Para o ficheiro seguinte seleccionado

### Funções de Programação

Como o JavaScript e, por inerência, também o QML só têm um conjunto limitado de funções de programação, o objecto `script` tem alguns métodos adicionais, por exemplo:

    script.properties(obj): Texto com as propriedades do Qt
    script.writeFile(localFicheiro, dados): Grava os dados no ficheiro, verdadeiro se OK
    script.readFile(localFicheiro): Lê dados do ficheiro
    script.removeFile(localFicheiro): Apaga o ficheiro, verdadeiro se OK
    script.fileExists(localFicheiro): verdadeiro se o ficheiro existe
    script.fileIsWritable(localFicheiro): verdadeiro se o ficheiro pode ser gravado
    script.getFilePermissions(localFicheiro): Obtém os bits do modo de permissão do ficheiro
    script.setFilePermissions(localFicheiro, bitsModo): Altera os bits do modo de permissão do ficheiro
    script.classifyFile(localFicheiro): Obtém a classe do ficheiro (pasta "/", ligação simb. "@", exe "*",
      ficheiro " ")
    script.renameFile(nomeAntigo, nomeNovo): Muda o nome do ficheiro, verdadeiro se OK
    script.copyFile(origem, destino): Copia o ficheiro, verdadeiro se OK
    script.makeDir(local): Cria a pasta, verdadeiro se OK
    script.removeDir(local): Remove a pasta, verdadeiro se OK
    script.tempLocal(): Localização da pasta temporária
    script.musicPath(): Localização da pasta de músicas
    script.listDir(local, [filtrosNomes], [classificar]): Enumera os itens da pasta
    script.system(programa, [args], [ms]): Inicia de forma síncrona um comando do sistema,
      [código de saída, standard output, standard error] caso não expire o tempo-limite
    script.systemAsync(programa, [args], [rotina]): Invoca de forma assíncrona um comando do
    sistema, sendo a 'rotina' invocada com o [código de saída, standard output, standard error]
    script.getEnv(nomeVar): Devolve o valor da variável de ambiente
    script.setEnv(nomeVar, valor): Altera o valor da variável de ambiente
    script.getQtVersion(): Texto da versão do Qt, p.ex. "5.4.1"
    script.getDataMd5(dados): Devolve o texto hexadecimal do código MD5 dos dados
    script.getDataSize(dados): Devolve o tamanho da lista de 'bytes'
    script.dataToImage(dados, [formato]): Cria uma imagem a partir dos 'bytes' de dados
    script.dataFromImage(imagem, [formato]): Obtém os 'bytes' de dados a partir da imagem
    script.loadImage(localFicheiro): Carrega uma imagem de um ficheiro
    script.saveImage(img, localFicheiro, [formato]): Grava uma imagem para um ficheiro; verdadeiro se OK
    script.imageProperties(img): Obtém as propriedades de uma imagem, sendo um mapa que contém os valores "width", "height", "depth" e "colorCount", vazio se a imagem for inválida
    script.scaleImage(img, largura, [altura]): Ajusta a escala de uma imagem, devolvendo a imagem ajustada

### Contexto da Aplicação

Ao usar o QML, uma grande parte das funções do Kid3 estão disponíveis. A API é semelhante à usada no D-Bus. Para mais detalhes, consulte as notas respectivas.

    app.openDirectory(local): Abrir a pasta
    app.unloadAllTags(): Fechar todas as marcas
    app.saveDirectory(): Grava a pasta
    app.revertFileModifications(): Reverter
    app.importTags(marca, local, incFmt): Importa o ficheiro
    app.importFromTags(marca, origem, extracção): Importa a partir das marcas
    app.importFromTagsToSelection(marca, origem, extracção): Importa a partir das marcas dos ficheiros seleccionados
    app.downloadImage(url, todosFicheirosNaPasta): Obtém a imagem
    app.exportTags(marca, local, indFmt): Exporta o ficheiro
    app.writePlaylist(): Grava a lista de reprodução
    app.getPlaylistItems(local): Obtém os itens de uma lista de reprodução
    app.setPlaylistItems(local, itens): Define os itens de uma lista de reprodução
    app.selectAllFiles(): Selecciona tudo
    app.deselectAllFiles(): Deselecciona tudo
    app.firstFile([seleccionar], [soFicheirosMarcados]): Para o primeiro ficheiro
    app.nextFile([seleccionar], [soFicheirosMarcados]): Para o ficheiro seguinte
    app.previousFile([seleccionar], [soFicheirosMarcados]): Para o ficheiro anterior
    app.selectCurrentFile([seleccionar]): Selecciona o ficheiro actual
    app.selectFile(local, [seleccionar]): Selecciona um ficheiro específico
    app.getSelectedFilePaths([soFicheirosMarcados]): Obtém as localizações dos ficheiros seleccionados
    app.requestExpandFileList(): Expandir tudo
    app.applyFilenameFormat(): Aplica o formato dos nomes de ficheiros
    app.applyTagFormat(): Aplica o formato das marcas
    app.applyTextEncoding(): Aplica a codificação de texto
    app.numberTracks(num, total, marca, [opções]): Numera as faixas
    app.applyFilter(expr): Filtra
    app.convertToId3v23(): Converte de ID3v2.4.0 para ID3v2.3.0
    app.convertToId3v24(): Converte de ID3v2.3.0 para ID3v2.4.0
    app.getFilenameFromTags(marca): Nome do ficheiro a partir das marcas
    app.getTagsFromFilename(marca): Nome do ficheiro para marcas
    app.getAllFrames(marca): Obtém o objecto com todos os pacotes
    app.getFrame(marca, nome): Obtém o pacote
    app.setFrame(marca, nome, valor): Configura o pacote
    app.getPictureData(): Obtém os dados do pacote de imagem
    app.setPictureData(dados): Modifica os dados do pacote de imagem
    app.copyToOtherTag(marca): Copia uma marca para outra
    app.copyTags(marca): Copiar
    app.pasteTags(marca): Colar
    app.removeTags(marca): Remover
    app.playAudio(): Reproduzir
    app.readConfig(): Lê a configuração
    app.applyChangedConfiguration(): Aplica a configuração
    app.dirName: Nome da pasta
    app.selectionInfo.fileName: Nome do ficheiro
    app.selectionInfo.filePath: Localização absoluta do ficheiro
    app.selectionInfo.detailInfo: Detalhes do formato
    app.selectionInfo.tag(Frame.Tag_1).tagFormat: Formato da marca 1
    app.selectionInfo.tag(Frame.Tag_2).tagFormat: Formato da marca 2
    app.selectionInfo.formatString(marca, formato): Substitui os códigos no texto do formato
    app.selectFileName(titulo, pasta, filtro, gravarFicheiro): Abre uma janela para seleccionar um ficheiro
    app.selectDirName(titulo, pasta): Abre a janela de ficheiros para seleccionar uma pasta

Para as operações assíncronas, poderá associar rotinas aos eventos dos sinais.

    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)
    }

### Objectos de Configuração

As diferentes secções de configuração estão acessíveis através de métodos do `configs`. As suas propriedades poderão ser listadas na consola de QML.

    script.properties(configs.networkConfig())

As propriedades poderão ser alteradas:

    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()