'\" t .\" Title: kid3 .\" Author: Urs Fleisch .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2022-08-06 .\" Manual: O Manual do Kid3 .\" Source: 3.9.2 .\" Language: Portuguese .\" .TH "KID3" "1" "2022-08-06" "3.9.2" "O Manual do Kid3" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NOME" kid3, kid3-qt, kid3-cli \- Kid3 ID3 Tagger .SH "SINTAXE" .HP \w'\fBkid3\fR\ 'u \fBkid3\fR [\fB\-\-help\fR | \fB\-\-author\fR | \fB\-\-version\fR | \fB\-\-license\fR | \fB\-\-desktopfile\ \fR\fBFICHEIRO\fR] [\fIFICHEIRO\fR...] .HP \w'\fBkid3\-qt\fR\ 'u \fBkid3\-qt\fR [\fB\-\-portable\fR] [\fBop\(,c\(~oes\ do\ Qt\fR] [\fIFICHEIRO\fR...] .HP \w'\fBkid3\-cli\fR\ 'u \fBkid3\-cli\fR [\fB\-\-portable\fR] [\fB\-\-dbus\fR] [\fB\-h\fR | \fB\-\-help\fR] [\fB\-c\ COMANDO1\fR] [\fB\-c\ COMANDO2\fR...] [\fIFICHEIRO\fR...] .SH "OP\(,C\(~OES" .PP \fB\-\-portable\fR .RS 4 Guarda a configura\(,c\(~ao no ficheiro kid3\&.ini dentro da pasta da aplica\(,c\(~ao\&. .RE .PP \fIFICHEIRO\fR .RS 4 Se o \fIFICHEIRO\fR for a localiza\(,c\(~ao de uma pasta, a mesma ser\('a aberta\&. Se forem indicados um ou mais ficheiros, a sua pasta comum \('e aberta, ficando os ficheiros seleccionados\&. .RE .SS "kid3" .PP \fB\-\-help\fR .RS 4 Mostra a ajuda acerca das op\(,c\(~oes\&. .RE .PP \fB\-\-author\fR .RS 4 Mostra informa\(,c\(~oes sobre o autor\&. .RE .PP \fB\-\-version\fR .RS 4 Mostra a informa\(,c\(~ao da vers\(~ao\&. .RE .PP \fB\-\-license\fR .RS 4 Mostra informa\(,c\(~oes acerca da licen\(,ca\&. .RE .PP \fB\-\-desktopfile \fR\fBFICHEIRO\fR .RS 4 O nome de base do ficheiro do item \*(Aq\&.desktop\*(Aq para esta aplica\(,c\(~ao\&. .RE .SS "kid3\-qt" .PP \fBOp\(,c\(~oes do Qt\fR .RS 4 Veja o \fBqt5options\fR(7)\&. .RE .SS "kid3\-cli" .PP \fB\-\-dbus\fR .RS 4 Activa a interface de D\-Bus\&. .RE .PP \fB\-c\fR .RS 4 Executa um comando\&. \('E poss\('ivel passar v\('arias op\(,c\(~oes \fB\-c\fR, sendo as mesmas executadas em sequ\(^encia\&. Veja a sec\(,c\(~ao acerca do kid3\-cli para obter uma descri\(,c\(~ao dos comandos dispon\('iveis\&. .RE .PP \fB\-h\fR|\fB\-\-help\fR .RS 4 Mostra ajuda sobre as op\(,c\(~oes e comandos\&. .RE .SH "INTRODU\(,C\(~AO" .PP O Kid3 \('e uma aplica\(,c\(~ao para editar as marcas ID3v1 e ID3v2 nos ficheiros MP3 de forma eficiente\&. Estas marcas poder\(~ao ser editadas pela maioria dos leitores de MP3, mas n\(~ao de forma confort\('avel e eficiente\&. Para al\('em disso, tamb\('em s\(~ao suportadas as marcas nos ficheiros Ogg/Vorbis, Opus, DSF, FLAC, MPC, APE, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV, AIFF e nos m\('odulos do Tracker (MOD, S3M, IT, XM)\&. .PP O Kid3 n\(~ao captura nem codifica os ficheiros MP3, mas est\('a vocacionado para editar as marcas de ID3 de todos os ficheiros de um \('album de forma eficiente, i\&.e\&. com o m\('inimo de \*(Aqclicks\*(Aq de rato e combina\(,c\(~oes de teclas poss\('ivel\&. Embora a maioria dos outros programas consigam editar as marcas de ID3v1 ou ID3v2, o Kid3 tem controlo completo sobre ambas as vers\(~oes, consegue converter as marcas entre os dois formatos e tem acesso a todas as marcas de ID3v2\&. As marcas dos v\('arios ficheiros poder\(~ao ser configuradas com o mesmo valor, p\&.ex\&. o artista, o \('album, o ano e o g\('enero de todos os ficheiros de um \('album tipicamente t\(^em os mesmos valores e poder\(~ao ser definidas em conjunto\&. Se a informa\(,c\(~ao das marcas estiver contida no nome do ficheiro, as marcas poder\(~ao ser configuradas automaticamente a partir do nome do ficheiro\&. Tamb\('em \('e poss\('ivel configurar o nome do ficheiro de acordo com as marcas encontras no ficheiro em formatos arbitr\('arios\&. .PP A tarefa de edi\(,c\(~ao ainda passa pela substitui\(,c\(~ao autom\('atica de caracteres ou sub\-textos, por exemplo para remover caracteres proibidos dos nomes dos ficheiros\&. O controlo autom\('atico das mai\('usculas ou min\('usculas facilita a utiliza\(,c\(~ao de uma nomenclatura consistente em todas as marcas\&. .PP Poder\('a obter a informa\(,c\(~ao das marcas para \('albuns inteiros a partir do \m[blue]\fBgnudb\&.org\fR\m[]\&\s-2\u[1]\d\s+2, \m[blue]\fBMusicBrainz\fR\m[]\&\s-2\u[2]\d\s+2, \m[blue]\fBDiscogs\fR\m[]\&\s-2\u[3]\d\s+2, \m[blue]\fBAmazon\fR\m[]\&\s-2\u[4]\d\s+2 ou de outras fontes de listas de faixas\&. O formato de configura\(,c\(~ao \('e facilmente configur\('avel \(`a custa de express\(~oes regulares\&. .PP Por favor comunique todos os problemas ou pedidos de funcionalidades ao autor\&. .SH "UTILIZA\(,C\(~AO DO KID3" .SS "Funcionalidades do Kid3" .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Editar as marcas de ID3v1\&.1 .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Editar todos os pacotes de ID3v2\&.3 e ID3v2\&.4 .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Editar as marcas de v\('arios ficheiros .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Converter as marcas entre ID3v1 e ID3v2 .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Editar as marcas de MP3, Ogg/Vorbis, Opus, DSF, FLAC, MPC, APE, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV e AIFF .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Gerar as marcas a partir do nome do ficheiro .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Gerar marcas a partir dos conte\('udos dos campos de marcas .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Gerar o nome do ficheiro a partir das marcas .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Gerar e mudar os nomes das pastas a partir das marcas .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Gerar um ficheiro de lista de reprodu\(,c\(~ao .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Convers\(~ao autom\('atica de capitaliza\(,c\(~ao e tradu\(,c\(~oes de textos .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Importa\(,c\(~ao das fontes de dados \m[blue]\fBgnudb\&.org\fR\m[]\&\s-2\u[1]\d\s+2, \m[blue]\fBMusicBrainz\fR\m[]\&\s-2\u[2]\d\s+2, \m[blue]\fBDiscogs\fR\m[]\&\s-2\u[3]\d\s+2, \m[blue]\fBAmazon\fR\m[]\&\s-2\u[4]\d\s+2, entre outras\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Exportar como CSV, HTML, lista de reprodu\(,c\(~ao, Kover XML e outros formatos\&. Os ficheiros CSV podem ser importados de novo\&. .RE .SS "Exemplo de Utiliza\(,c\(~ao" .PP Esta sec\(,c\(~ao descreve uma t\('ipica sess\(~ao com o Kid3\&. Vamos assumir que temos uma pasta que cont\('em ficheiros MP3 com as faixas do \('album "Vamos Marcar" da banda "Famoso Desconhecido"\&. A pasta tem o nome no formato "artista \- \('album", sendo no nosso caso Famoso Desconhecido \- Vamos Marcar\&. A pasta cont\('em as faixas no formato "faixa t\('itulo\&.mp3", o que poder\('a ser \('util porque os nomes dos ficheiros s\(~ao curtos (\('e importante quando estiver a usar leitores de MP3 port\('ateis com ecr\(~as pequenos) e fica pela ordem correcta quando for ordenado por ordem alfab\('etica (importante ao usar leitores de MP3 por \*(Aqhardware\*(Aq, que tocam os MP3 por ordem alfab\('etica ou pela ordem com que s\(~ao gravados no CD, ficando essa ordem alfab\('etica ao usar o \fBmkisofs\fR)\&. Para al\('em disso, a informa\(,c\(~ao do artista e do \('album j\('a est\('a no nome da pasta e n\(~ao tem de ser repetida no nome do ficheiro\&. Contudo, voltando ao nosso exemplo, a listagem da pasta dever\('a ser algo semelhante a isto: .PP 01 Intro\&.mp3 .PP 02 So Temos Este\&.mp3 .PP 03 Final\&.mp3 .PP Estes ficheiros ainda n\(~ao t\(^em marcas e desejamos ger\('a\-las com o Kid3\&. Use a op\(,c\(~ao Abrir (menu Ficheiro ou barra de ferramentas) e seleccione um dos ficheiros nesta pasta\&. Todos os ficheiros ser\(~ao apresentados na lista de ficheiros\&. Para facilitar, pretende\-se usar esta informa\(,c\(~ao no nome das pastas e dos ficheiros para gerar marcas\&. Como tal, ser\(~ao seleccionados todos os ficheiros, podendo carregar depois no bot\(~ao Para: Marca 1 na sec\(,c\(~ao Ficheiro\&. Isto ir\('a definir os valores do t\('itulo, do artista, do \('album e da faixa para todos os ficheiros\&. Para configurar os valores do ano e do g\('enero de todos os ficheiros, s\(~ao mantidos todos os ficheiros seleccionados, podendo depois escrever "2002" na Data e seleccionando "Pop" na lista G\('enero\&. Para configurar apenas estes dois valores, as suas op\(,c\(~oes de marca\(,c\(~ao ficam automaticamente assinaladas e todas as outras op\(,c\(~oes de marca\(,c\(~ao s\(~ao deixadas inalteradas\&. Agora, ser\('a alterada a selec\(,c\(~ao, seleccionando apenas o primeiro ficheiro e vendo que todas as marcas cont\(^em os valores correctos\&. Poder\('a verificar as marcas dos outros ficheiros da mesma forma se as seleccionar uma a uma\&. Quando estiver satisfeito com as marcas, poder\('a usar a op\(,c\(~ao Gravar (menu Ficheiro ou barra de ferramentas)\&. Se seleccionar a op\(,c\(~ao Criar uma Lista de Reprodu\(,c\(~ao do menu Ficheiro para gerar um ficheiro Famoso Desconhecido \- Vamos Marcar\&.m3u na pasta\&. .SH "REFER\(^ENCIA DE COMANDOS" .SS "Os Elementos da GUI" .PP A interface GUI do Kid3 est\('a separada em seis sec\(,c\(~oes: \(`A esquerda encontra\-se a lista de ficheiros e pastas, enquanto o lado direito cont\('em as sec\(,c\(~oes Ficheiro, Marca 1, Marca 2 e Marca 3\&. .PP Para navegar pelas diferentes sec\(,c\(~oes com o teclado, s\(~ao suportadas diversas combina\(,c\(~oes de teclas\&. Nas sec\(,c\(~oes das marcas, os atalhos ficam activos quando n\(~ao estiver a editar texto ou quando estiver na primeira coluna\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Alt+Esquerda: Vai para a sec\(,c\(~ao anterior (Command+[ no macOS\(rg) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Alt+Direita: Vai para a sec\(,c\(~ao seguinte (Command+] no macOS\(rg) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Ctrl+Shift+V: De outra marca .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Ctrl+C: Copiar .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Ctrl+V: Colar .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Shift+Delete: Remover .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} F2: Editar .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Insert: Adicionar .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Delete: Apagar .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBLista de Ficheiros\fR .RS 4 .PP A lista de ficheiros cont\('em 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\('a ser seleccionado um ou v\('arios ficheiros\&. Para n\(~ao seleccionar nenhum ficheiro, carregue na \('area vazia a seguir aos itens da lista\&. A selec\(,c\(~ao determina os ficheiros que s\(~ao afectados pelas opera\(,c\(~oes que ficam dispon\('iveis atrav\('es dos bot\(~oes descritos em baixo\&. .PP Para al\('em do Nome, tamb\('em poder\('a mostrar as outras colunas Tamanho, Tipo, Data de Modifica\(,c\(~ao com os detalhes dos ficheiros\&. Poder\('a esconder as colunas, desmarcando o nome das mesmas no menu de contexto que existe no cabe\(,calho da lista\&. A ordem das colunas pode ser alterada por arrastamento\&. O sentido de ordena\(,c\(~ao poder\('a ser comutado se carregar no cabe\(,calho da coluna\&. .PP Os valores das marcas\-padr\(~ao tamb\('em podem ser apresentados e editados nas colunas da lista de ficheiros\&. .PP \(`A esquerda dos nomes, poder\('a aparecer um \('icone: um disco para indicar que o ficheiro modificado ou informa\(,c\(~oes sobre as marcas que est\(~ao presentes (V1, V2, V1V2 ou SEM MARCAS \- n\(~ao \('e apresentado nenhum \('icone se o ficheiro ainda n\(~ao tiver sido lido)\&. .PP As pastas s\(~ao apresentadas com um \('icone de pasta\&. Se abrir uma pasta, os seus ficheiros s\(~ao apresentados numa \('arvore hier\('arquica\&. Ao seleccionar os ficheiros das sub\-pastas, poder\('a efectuar opera\(,c\(~oes sobre os ficheiros das diferentes pastas, o que \('e \('util se a colec\(,c\(~ao de m\('usica estiver organizadas com uma pasta para cada artista, contendo pastas para os \('albuns desse artista\&. .PP Se carregar com o bot\(~ao direito do rato dentro da lista de ficheiros, ir\('a abrir um menu de contexto com os seguintes comandos: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Expandir tudo: Expande todas as \('arvores de pastas (s\('o a \('arvore actual se estiver a carregar na tecla Shift) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Fechar tudo: Fecha todas as \('arvores de pastas .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Mudar o Nome: Muda o nome de um ficheiro .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Enviar para o Lixo: Move um ficheiro para o lixo .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Reproduzir: Reproduz um ficheiro; veja a sec\(,c\(~ao Reproduzir\&. Se o ficheiro seleccionado for uma lista de reprodu\(,c\(~ao, ent\(~ao ser\(~ao reproduzidos os ficheiros na lista de reprodu\(,c\(~ao\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Editar: Edita uma lista de reprodu\(,c\(~ao; veja a sec\(,c\(~ao Editar a Lista de Reprodu\(,c\(~ao\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Os itens seguintes s\(~ao comandos do utilizador, os quais podem ser definidos na p\('agina de Ac\(,c\(~oes do Utilizador do Configurar o Kid3\&. A reprodu\(,c\(~ao atrav\('es de duplo\-click pode tamb\('em ser activada a\('i\&. .RE .sp .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBEditar a Lista de Reprodu\(,c\(~ao\fR .RS 4 .PP Poder\('a criar uma lista de reprodu\(,c\(~ao vazia ou a conter as faixas de uma determinada pasta; veja como Criar uma Lista de Reprodu\(,c\(~ao\&. O ficheiro da lista de reprodu\(,c\(~ao criado dessa forma poder\('a ser editado com um duplo\-click ou usando a op\(,c\(~ao Editar do menu de contexto da lista de ficheiros\&. Ser\('a apresentada uma janela com os elementos da lista de reprodu\(,c\(~ao\&. \('E poss\('ivel abrir v\('arias listas de reprodu\(,c\(~ao em simult\(^aneo\&. .PP Poder\('a adicionar novos itens por arrastamento a partir da lista de ficheiros, de um gestor de ficheiros ou de outra lista de reprodu\(,c\(~ao\&. Se for arrastado um item de outra lista de reprodu\(,c\(~ao, o mesmo ser\('a movido ou copiado de acordo com o sistema\&. Para invocar a outra opera\(,c\(~ao, respectivamente, ter\('a de manter carregada a tecla Shift, Ctrl ou Alt (para copiar em vez de mover no macOS\(rg)\&. A reordena\(,c\(~ao de itens dentro da lista tamb\('em \('e poss\('ivel por arrastamento\&. Em alternativa, os itens podem ser movidos com os atalhos de teclado Ctrl+Shift+Cima e Ctrl+Shift+Baixo (no macOS\(rg ter\('a de carregar no Command em vez do Ctrl)\&. Poder\('a remover um item se usar a tecla Delete\&. .PP Repare por favor no seguinte: Para arrastar itens da lista de ficheiros, os mesmos ter\(~ao de ser mantidos do lado esquerdo (perto dos \('icones), sendo que o mesmo gesto do lado direito ir\('a efectuar uma selec\(,c\(~ao m\('ultipla, para que esta ac\(,c\(~ao seja poss\('ivel e simples\&. .PP Quando tiver modificado uma lista de reprodu\(,c\(~ao, as altera\(,c\(~oes poder\(~ao ser guardadas com o bot\(~ao Gravar ou eliminadas com o Cancelar\&. Quando a janela for fechada, ser\('a apresentada uma mensagem de confirma\(,c\(~ao caso existam modifica\(,c\(~oes por gravar\&. .PP As faixas seleccionadas numa lista de reprodu\(,c\(~ao ficar\(~ao automaticamente seleccionadas na lista de ficheiros, podendo deste modo editar as suas marcas\&. .PP Para executar ac\(,c\(~oes sobre uma lista de reprodu\(,c\(~ao, o seu ficheiro dever\('a estar seleccionado na lista de ficheiros\&. O Editar do menu de contexto ir\('a conduzir \(`a janela descrita nesta sec\(,c\(~ao, enquanto o Reproduzir ir\('a iniciar o leitor multim\('edia com as faixas da lista de reprodu\(,c\(~ao\&. As ac\(,c\(~oes do utilizador poder\(~ao actuar sobre as listas de reprodu\(,c\(~ao, como por exemplo o Exportar a Pasta da Lista de Reprodu\(,c\(~ao, qur ir\('a copiar os ficheiros de uma lista de reprodu\(,c\(~ao para uma pasta\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBLista de Pastas\fR .RS 4 .PP A lista de pastas cont\('em os nomes das pastas na pasta aberta de momento, assim como a pr\('opria (\&.) e a sua pasta\-m\(~ae (\&.\&.)\&. Permite a mudan\(,ca f\('acil de pasta sem ter de usar o comando Abrir\&.\&.\&. ou o arrastamento\&. .PP A visibilidade, ordem e sentido de ordena\(,c\(~ao poder\(~ao ser configurados da forma descrita na sec\(,c\(~ao sobre a lista de ficheiros\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBFicheiro\fR .RS 4 .PP Mostra informa\(,c\(~oes sobre a codifica\(,c\(~ao (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\&. .PP O campo de texto Nome cont\('em o nome do ficheiro (se s\('o estiver um \('unico ficheiro seleccionado)\&. Se este nome for alterado, o ficheiro ir\('a mudar de nome quando for usado o comando Gravar\&. .PP A lista Formato e o campo de texto cont\('em o formato a ser usado quando o nome do ficheiro for gerado a partir da primeira ou segunda marca\&. O nome do ficheiro poder\('a conter caracteres arbitr\('arios, podendo incluir uma componente de sub\-pastas separadas por uma barra face ao nome do ficheiro, se bem que essa pasta j\('a deva existir para a mudan\(,ca de nome ser bem sucedida\&. S\(~ao usados os seguintes c\('odigos especiais para inserir os valores das marcas no nome do ficheiro: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %s %{title} T\('itulo (M\('usica) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %a %{artist} Artista .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %l %{album} \('Album .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %c %{comment} Coment\('ario .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %y %{year} Ano .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %t %{track} Faixa (p\&.ex\&. 01) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %t %{track\&.n} Faixa com o tamanho do campo \*(Aqn\*(Aq (p\&.ex\&. 001 para %{track\&.3}) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %T %{tracknumber} Faixa (sem os zeros iniciais, p\&.ex\&. 1) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %g %{genre} G\('enero .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %{ignore} Ignorado quando gerar marcas a partir do nome do ficheiro .RE .PP Os c\('odigos de formato n\(~ao est\(~ao restritos aos exemplos apresentados acima\&. Pode usar qualquer nome de pacote, como os nomes de pacotes unificados, por exemplo \fB%{albumartist}\fR, \fB%{discnumber\&.1}\fR, \fB%{bpm}\fR ou nomes espec\('ificos do formato, como \fB%{popm}\fR\&. .PP \('E poss\('ivel anteceder e adicionar textos ao substituto de um c\('odigo de formato, adicionando\-os entre aspas dentro das chavetas do c\('odigo de formato\&. Estes textos s\('o ser\(~ao colocados no texto resultante se o c\('odigo do formato tiver um valor n\(~ao\-vazio\&. Por exemplo, se o nome do ficheiro deve conter tanto o t\('itulo como o sub\-t\('itulo, uma pessoa poder\('a usar o \fB%{title} [%{subtitle}]\fR no texto do formato\&. Contudo, isto poderia resultar num texto que termina em [] se n\(~ao existir nenhum pacote de sub\-t\('itulo para um dado ficheiro\&. Para omitir os par\(^entesis rectos caso n\(~ao esteja presente nenhum sub\-t\('itulo, o \fB%{title}%{" ["subtitle"]"}\fR dever\('a ser usado como alternativa\&. Isto ir\('a omitir os par\(^entesis rectos, o espa\(,co inicial e o sub\-t\('itulo se este \('ultimo n\(~ao existir\&. .PP A lista de formatos dispon\('iveis poder\('a ser editada na janela que aparece quando carregar no bot\(~ao Nome do ficheiro a partir da marca da p\('agina Ficheiro da configura\(,c\(~ao\&. .PP \('E 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\(~ao corresponder a este padr\(~ao, ser\(~ao testados alguns outros formatos usados de forma comum\&. .PP Alguns dos campos normalmente usados j\('a est\(~ao na lista, mas tamb\('em \('e poss\('ivel escrever algum formato especial no campo de edi\(,c\(~ao\&. .PP A lista de formatos dispon\('iveis poder\('a ser editada na janela que aparece quando carregar no bot\(~ao Marca a partir do nome do ficheiro da p\('agina Ficheiro da configura\(,c\(~ao\&. .PP Internamente, uma express\(~ao regular \('e composta a partir dos c\('odigos do formato\&. Se forem necess\('arias express\(~oes regulares avan\(,cadas, o formato para gerar as marcas a partir dos nomes dos ficheiros pode ser indicado como uma express\(~ao regular completa com capturas, as quais s\(~ao antecedidas dos c\('odigos de formato; p\&.ex\&., par extrair os n\('umeros das faixas sem remover os zeros inicias, poder\('a usar um formato como por exemplo "\fB/%{track}(\ed+) %{title}(\&.*)\fR"\&. .PP De: Marca 1, Marca 2: Define o nome do ficheiro com o formato seleccionado e a primeira ou segundo marcas, respectivamente\&. .PP Para: Marca 1, Marca 2: As marcas s\(~ao definidas a partir do nome do ficheiro\&. Em primeiro lugar, ser\('a usado o formato definido em Formato\&. Se o nome do ficheiro existente n\(~ao corresponder a este formato, ser\(~ao testados os seguintes formatos: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Artista \- \('Album/N\('umero M\('usica .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \('Album/N\('umero \- Artista \- M\('usica .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} /Artista \- \('Album \- N\('umero \- M\('usica .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \('Album/Artista \- N\('umero \- M\('usica .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \('Album/Artista \- M\('usica .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Artista/\('Album/N\('umero M\('usica .RE .PP Se for seleccionado apenas um ficheiro, os controlos da GUI s\(~ao preenchidos com os valores do nome do ficheiro\&. Se forem seleccionados v\('arios ficheiros, as marcas dos ficheiros s\(~ao configuradas directamente\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBMarca 1\fR .RS 4 .PP Os campos de texto do T\('itulo, Artista, \('Album, Coment\('ario, Data, N\('umero de Faixa e G\('enero s\(~ao usados para editar o valor correspondente na primeira marca dos ficheiros seleccionados\&. O valor ser\('a alterado quando a selec\(,c\(~ao de ficheiros mudar ou antes de algumas opera\(,c\(~oes como a Gravar ou Sair e quando a op\(,c\(~ao de marca\(,c\(~ao correspondente \(`a esquerda do nome do campo estiver assinalada\&. Isto \('e \('util para mudar apenas alguns valores e deixar os outros valores inalterados\&. .PP Se estiver seleccionado um \('unico ficheiro, todas as op\(,c\(~oes de marca\(,c\(~ao est\(~ao assinaladas e os campos de texto cont\(^em os valores encontrados nas marcas deste ficheiro\&. Se n\(~ao existir uma dada marca no ficheiro, o valor vazio correspondente \('e apresentado, o qual \('e um texto vazio para o T\('itulo, Artista, \('Album e Coment\('ario, ou 0 para os campos num\('ericos da Data e N\('umero da Faixa e um valor seleccionado em branco para a lista G\('enero\&. Os valores podem ser alterados e, caso a op\(,c\(~ao de marca\(,c\(~ao correspondente esteja assinalada, ser\(~ao configurados para o ficheiro seleccionado ap\('os modificar a selec\(,c\(~ao\&. O ficheiro fica ent\(~ao marcado como modificado com um s\('imbolo de disco na lista de ficheiros, mas permanecer\('a inalterado at\('e que use o comando Gravar\&. .PP Se estiverem seleccionados v\('arios ficheiros, s\('o os valores que s\(~ao id\(^enticos em todos os ficheiros seleccionados \('e que s\(~ao apresentados\&. Em todos os outros controlos, os valores vazio descritos acima s\(~ao apresentados\&. Todas as op\(,c\(~oes de marca\(,c\(~ao est\(~ao desmarcadas para evitar modifica\(,c\(~oes indesejadas\&. Se tiver de definir um valor para todos os ficheiros seleccionados, poder\('a ser editado e a op\(,c\(~ao de marca\(,c\(~ao ter\('a de estar assinalada\&. Os valores ser\(~ao configurados para todos os ficheiros seleccionados quando a selec\(,c\(~ao \('e modificada e poder\('a ser gravado com o comando Gravar\&. .PP As op\(,c\(~oes de marca\(,c\(~ao tamb\('em controlam a opera\(,c\(~ao da maioria dos comandos que afectam as marcas, como a c\('opia, colagem e transfer\(^encia entre as marcas 1 e 2\&. Para facilitar o uso com v\('arios ficheiros, onde todas as op\(,c\(~oes de marca\(,c\(~ao est\(~ao desligadas, estes comandos comportam\-se da mesma forma quando todas as op\(,c\(~oes est\(~ao assinaladas ou quando est\(~ao todas n\(~ao\-assinaladas\&. .PP Da Marca 2: Os campos da marca 1 s\(~ao definidos a partir dos valores da marca 2\&. Se for seleccionado apenas um ficheiro, os controlos da GUI s\(~ao preenchidos com os valores da marca 2\&. Se forem seleccionados v\('arios ficheiros, as marcas dos ficheiros s\(~ao configuradas directamente\&. .PP Copiar: A \('area de c\('opia fica preenchida com os valores da Marca 1\&. S\('o os valores assinalados ser\(~ao usados nos campos Colar subsequentes\&. .PP Colar: Cola os valores da \('area de c\('opia para os controlos da GUI\&. .PP Remover: Isto ir\('a 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\(~ao ir\('a ter a marca 1\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBMarca 2\fR .RS 4 .PP Os controlos da GUI funcionam da mesma forma que foi descrita para a sec\(,c\(~ao da Marca 1, s\('o que o tamanho dos textos n\(~ao fica limitado\&. .PP Para a marca 2 G\('enero, tamb\('em poder\('a usar os seus pr\('oprios nomes para al\('em dos g\('eneros apresentados na lista, bastando para tal escrever o nome no campo de texto\&. .PP A marca 2 n\(~ao s\('o pode conter os mesmos valores que a marca 1, como o formato \('e composto de forma flex\('ivel a partir de v\('arios pacotes que, por sua vez, s\(~ao compostos por v\('arios campos\&. A tabela da marca 2 mostra todos os pacotes que est\(~ao dispon\('iveis no ficheiro seleccionado\&. .PP Editar: Isto ir\('a abrir uma janela que permite a uma pessoa editar todos os campos do pacote seleccionado\&. Se estiverem seleccionados v\('arios ficheiros, os campos editados ser\(~ao aplicados a todos os ficheiros seleccionados que tiverem esse pacote\&. .PP Adicionar: Um pedido para seleccionar o tipo de pacote que ir\('a aparecer, para que possa editar um pacote do tipo seleccionado e adicionado ao ficheiro\&. Isto funciona tamb\('em para adicionar um pacote de dados aos v\('arios ficheiros seleccionados\&. .PP Apagar: Remove o pacote seleccionado nos ficheiros seleccionados\&. .PP A op\(,c\(~ao Arraste as imagens do \('album para aqui aparece se o ficheiro n\(~ao tiver incorporada a imagem da capa\&. Poder\('a adicionar uma imagem por arrastamento a partir de um navegador ou gestor de ficheiros e ser\('a aqui apresentada\&. Os pacotes das imagens poder\(~ao ser editados ou adicionados se fizer duplo\-click sobre este controlo\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBMarca 3\fR .RS 4 .PP Alguns ficheiros poder\(~ao ter mais que duas marcas, ficando assim uma terceira sec\(,c\(~ao de marca vis\('ivel\&. Os seguintes tipos de ficheiros poder\(~ao ter uma dessas sec\(,c\(~oes Marca 3: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Os ficheiros MP3 poder\(~ao ter uma marca ID3v1\&.1, uma marca ID3v2 (2\&.3\&.0 ou 2\&.4\&.0) e na terceira sec\(,c\(~ao uma marca APE\&. Essas marcas APE s\(~ao usadas para a informa\(,c\(~ao do ganho de reprodu\(,c\(~ao\&. Na sec\(,c\(~ao Marca 3, esta informa\(,c\(~ao fica vis\('ivel e a marca APE poder\('a ser removida com o bot\(~ao Remover\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} O bloco INFO do RIFF dos ficheiros WAV est\('a dispon\('ivel na sec\(,c\(~ao Marca 3 dado que a sec\(,c\(~ao Marca 1 est\('a dedicada \(`a marcas ID3v1\&.1 e trata das suas restri\(,c\(~oes\&. A sec\(,c\(~ao Marca 2 ainda \('e usada para as marcas ID3v2\&.4\&.0, que tamb\('em s\(~ao suportadas nos ficheiros WAR, mas os blocos INFO do RIFF parecem ser melhor suportados\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Os ficheiros FLAC normalmente usam um coment\('ario Vorbis para os seus meta\-dados\&. Contudo, existem ficheiros FLAC que t\(^em marcas ID3v1 e ID3v2, que poder\(~ao ser encontradas nas sec\(,c\(~oes Marca 1 e Marca 3\&. As marcas ID3 nos ficheiros FLAC s\('o s\(~ao suportadas na TagLib; como tal, o \*(Aqplugin\*(Aq OggFlacMetadata tem de estar desactivado na p\('agina Plugins da configura\(,c\(~ao\&. .RE .PP Os controlos da GUI funcionam da mesma forma que foi descrita para a sec\(,c\(~ao da Marca 2\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBLetras Sincronizadas e C\('odigos de Tempos Sincronizados\fR .RS 4 .PP Para ter a informa\(,c\(~ao sincronizada com os dados de \('audio, est\('a dispon\('ivel um editor espec\('ifico\&. Estes pacotes t\(^em suporte para as marcas ID3v2\&.3\&.0 e ID3v2\&.4\&.0\&. Para adicionar uma dessas marcas, o nome do pacote espec\('ifico tem de ser seleccionado na lista que aparece quando carrega no bot\(~ao Adicionar \- Letras Sincronizadas ou C\('odigos de Temporiza\(,c\(~ao de Eventos, respectivamente\&. O editor \('e o mesmo para ambos os tipos; para os c\('odigos de temporiza\(,c\(~ao de eventos, s\('o est\('a dispon\('ivel um conjunto predefinido de eventos enquanto que, nas letras sincronizadas, ter\('a de introduzir texto\&. No texto seguinte \('e explicada a edi\(,c\(~ao de letras sincronizadas\&. .PP Um ficheiro que tenha uma marca ID3v2 fica seleccionado, pelo que poder\('a entrar no editor de letras musicais se usar o bot\(~ao Adicionar e seleccionar as Letras Sincronizadas\&. Para uma \('area de Letras Sincronizadas existente, ao seleccionar o mesmo poder\('a carregar no bot\(~ao Editar\&. O leitor \('e automaticamente aberto com o ficheiro actual, para que possa reproduzir e pausar o ficheiro para sincronizar as letras musicais\&. .PP A configura\(,c\(~ao no topo do editor do SYLT normalmente n\(~ao tem de ser alterada\&. Se as letras tiverem caracteres que n\(~ao estejam presentes no conjunto de caracteres Latin 1, a mudan\(,ca da codifica\(,c\(~ao de texto para UTF16 (ou UTF8 o caso do ID3v2\&.4\&.0) ser\('a aconselhada\&. Para as letras em Ingl\(^es e para o m\('aximo de compatibilidade, dever\('a ser usado o ISO\-8859\-1\&. .PP A sec\(,c\(~ao das Letras Musicais tem cinco bot\(~oes no topo\&. O Adicionar ir\('a adicionar um novo evento de tempo na tabela\&. O tempo \('e retirado a partir da posi\(,c\(~ao do leitor, adicionando assim um item enquanto reproduz a faixa ir\('a adicionar uma linha para a posi\(,c\(~ao reproduzida de momento\&. Os eventos na tabela t\(^em de estar ordenados de forma cronol\('ogica, como tal a linha ser\('a inserida na posi\(,c\(~ao adequada\&. Os itens com tempos inv\('alidos s\(~ao tratados de forma especial: Se a linha seleccionada de momento tiver um tempo inv\('alido, a sua data/hora ser\('a substitu\('ida pelo tempo actual em vez de adicionar uma nova linha\&. Se o tempo actal n\(~ao for inv\('alido, a primeira linha com um tempo inv\('alido ser\('a usada caso exista\&. Este comportamento dever\('a facilitar a adi\(,c\(~ao de tempos se o texto das letras j\('a estiver na tabela, mas estiverem a faltar os tempos (o que \('e o caso ao importar letras n\(~ao sincronizadas)\&. Lembre\-se que o tempo inv\('alido \('e representado como 00:00\&.00, i\&.e\&. o mesmo que o tempo no in\('icio absoluto da faixa, que n\(~ao \('e inv\('alido\&. Para invalidar um tempo, carregue na tecla Delete ou use a op\(,c\(~ao Limpar do menu de contexto\&. As novas linhas introduzidas com a op\(,c\(~ao Inserir uma linha do menu de contexto ou criadas quando importar as letras n\(~ao sincronizadas com as op\(,c\(~oes Da \('Area de Transfer\(^encia ou Importar tamb\('em cont\(^em tempos inv\('alidos\&. As linhas na tabela poder\(~ao ser removidas se carregar no bot\(~ao Apagar ou se usar a op\(,c\(~ao Apagar as linhas do menu de contexto\&. .PP As letras sincronizadas poder\(~ao ser importadas a partir de um ficheiro com o bot\(~ao Importar\&. O formato esperado \('e o LRC simples ou o avan\(,cado\&. Se o ficheiro seleccionado n\(~ao tiver um par\(^entesis recto na primeira linha, \('e suposto ser um ficheiro de texto simples com letras n\(~ao sincronizadas\&. As linhas desse ficheiro s\(~ao ent\(~ao importadas com horas inv\('alidas\&. A informa\(,c\(~ao da data/hora poder\('a ser adicionada atrav\('es do bot\(~ao Adicionar ou introduzidas manualmente\&. Tamb\('em \('e poss\('ivel importar as letras se copiar\-colar com a op\(,c\(~ao Da \('Area de Transfer\(^encia\&. Poder\('a gravar as letras sincronizadas nos ficheiros LRC com a op\(,c\(~ao Exportar\&. Lembre\-se que s\('o os itens com tempos v\('alidos ser\(~ao exportados e que os itens ser\(~ao ordenados por esses tempos\&. Os itens com tempos inv\('alidos n\(~ao ser\(~ao guardados no editor de pacotes SYLT, por isso certifique\-se que adiciona toda a informa\(,c\(~ao de tempos antes de sair da janela\&. .PP A \m[blue]\fBespecifica\(,c\(~ao do ID3\fR\m[]\&\s-2\u[5]\d\s+2 sugere uma data/hora para cada s\('ilaba\&. Contudo, a maioria dos leitores s\('o suportam a granularidade de uma linha ou frase\&. Para suportar ambos os casos de uso, o Kid3 segue as mesmas conven\(,c\(~oes que o \m[blue]\fBEditor do SYLT\fR\m[]\&\s-2\u[6]\d\s+2\&. O texto que \('e introduzido na tabela assume\-se que inicia uma nova linha, a mesmo que comece por um espa\(,co ou h\('ifen\&. S\(~ao poss\('iveis excep\(,c\(~oes a esta regra se iniciar uma linha com um sublinhado (\*(Aq_\*(Aq) para for\(,car a continua\(,c\(~ao ou um cardinal (\*(Aq#\*(Aq) para for\(,car uma linha nova\&. Estes caracteres de escape n\(~ao s\(~ao guardados dentro do pacote SYLT\&. Dentro do mesmo pacote, as novas linhas come\(,cam com um car\('acter de mudan\(,ca de linha (hex 0A), enquanto as continua\(,c\(~oes n\(~ao\&. Ao ler os pacotes SYLT, o Kid3 verifica se o primeiro elemento come\(,ca com uma mudan\(,ca de linha\&. Se este n\(~ao for o caso, assume\-se que todos os elementos s\(~ao linhas novas e que n\(~ao s\(~ao usadas continua\(,c\(~oes de s\('ilabas\&. .PP Quando a faixa \('e reproduzida, a linha associada com a posi\(,c\(~ao actual de reprodu\(,c\(~ao fica real\(,cada, para que a correc\(,c\(~ao da informa\(,c\(~ao de sincroniza\(,c\(~ao possa ser validada\&. Se tiver de adicionar um deslocamento a uma ou mais datas/horas, pod\(^e\-lo\-\(aaa fazer com o menu de contexto Adicionar um deslocamento\&. Poder\('a usar valores negativos para reduzir o tempo\&. Se usar o Ir para a posi\(,c\(~ao no menu de contexto, \('e poss\('ivel definir a posi\(,c\(~ao de reprodu\(,c\(~ao com a hora da linha seleccionada\&. .PP \fIO procedimento recomendado \('e adicionar novas letras musicais sincronizadas\fR .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Obtenha as letras musicais n\(~ao sincronizadas, p\&.ex\&. usando a op\(,c\(~ao Letras → Incorporar as Letras no menu de contexto da lista de ficheiros\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Copie as letras n\(~ao sincronizadas para a \('area de transfer\(^encia, bastando para tal ir \(`a linha Letras na tabela de pacotes e carregando em Ctrl+C\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Adicione um pacote de letras sincronizadas (Adicionar\&.\&.\&., Letras Sincronizadas, OK), carregando depois em Da \('Area de Transfer\(^encia\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Agora todas as linhas das letras musicais n\(~ao sincronizadas est\(~ao na tabela, tendo todas as horas inv\('alidas (0:0:0\&.00)\&. Poder\('a apagar os elementos vazios antes de mais nada\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Comece a tocar a m\('usica, carregando para tal no bot\(~ao de reprodu\(,c\(~ao ► na barra de reprodu\(,c\(~ao no fundo da janela principal\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Quando chegar \(`a linha seguinte de letras musicais com datas inv\('alidas, carregue em Adicionar ou carregue em Alt+A, actualizando assim a data/hora\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Continue desta forma at\('e que todas as datas/horas estejam configuradas\&. Se lhe faltar algo, pare a reprodu\(,c\(~ao e limpe as datas/horas com a tecla Delete ou seleccionando\-as e usando a op\(,c\(~ao Limpar do menu de contexto\&. Para retomar a reprodu\(,c\(~ao a partir de um determinado momento, use a op\(,c\(~ao Mudar para a posi\(,c\(~ao do menu de contexto\&. .RE .sp .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBCap\('itulos nos Ficheiros MP4\fR .RS 4 .PP Os livros de \('audio em MP4 normalmente t\(^em uma extens\(~ao \&.m4b e s\(~ao relativamente grandes, porque cont\(^em todos os cap\('itulos num \('unico ficheiro\&. Para navegar nesses ficheiros, eles poder\(~ao ter marca\(,c\(~oes dos cap\('itulos, que podem ser editadas no Kid3, numa \('area de pseudo\-"Cap\('itulos", usando o mesmo editor das letras musicais sincronizadas\&. Lembre\-se, contudo, que esta funcionalidade s\('o est\('a dispon\('ivel com o \*(Aqplugin\*(Aq Mp4v2Metadata, por isso certifique\-se que o mesmo est\('a activado e acima do \*(Aqplugin\*(Aq TaglibMetadata da p\('agina de Plugins da configura\(,c\(~ao, caso tenha de editar cap\('itulos em MP4\&. .RE .SS "O Menu Ficheiro" .PP .PP Ficheiro → Abrir\&.\&.\&. (Ctrl+O) .RS 4 Abre uma pasta\&. Todos os ficheiros que corresponderem ao filtro de nomes indicado ser\(~ao apresentados na lista de ficheiros, ficando seleccionado o ficheiro pretendido\&. .RE .PP Ficheiro → Abrir um Recente .RS 4 Abre uma pasta aberta recentemente\&. .RE .PP Ficheiro → Abrir uma Pasta\&.\&.\&. (Ctrl+D) .RS 4 Abre uma pasta\&. Todos os ficheiros que corresponderem ao filtro de nomes indicado ser\(~ao apresentados na lista de ficheiros\&. .RE .PP Ficheiro → Recarregar (F5) .RS 4 Actualiza o conte\('udo da pasta\&. Os ficheiros modificados t\(^em de ser gravados antes\&. As sub\-pastas expandidas ser\(~ao fechadas\&. .RE .PP Ficheiro → Gravar (Ctrl+S) .RS 4 Grava todos os ficheiros alterados na pasta\&. Os ficheiros alterados s\(~ao marcados com um s\('imbolo de disco na lista de ficheiros\&. Se algum dos nomes dos ficheiros tiver sido modificado, estes ficheiros ir\(~ao mudar de nome\&. .RE .PP Ficheiro → Reverter .RS 4 Reverte as altera\(,c\(~oes de um ou mais ficheiros\&. Se n\(~ao estiverem ficheiros seleccionados na lista, as modifica\(,c\(~oes de todos os ficheiros ser\(~ao revertidas, caso contr\('ario s\('o ser\(~ao revertidas as modifica\(,c\(~oes dos ficheiros seleccionados\&. .RE .PP Ficheiro → Importar\&.\&.\&. .RS 4 A janela de Importa\(,c\(~ao 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 \('albuns num formato de texto\&. .sp A importa\(,c\(~ao de um servidor do freedb\&.org \('e poss\('ivel se usar a janela que aparece quando selecciona a op\(,c\(~ao Do Servidor: gnudb\&.org\&. O nome do artista ou do \('album a procurar pode ser introduzido nos dois campos do topo, sendo apresentados os \('albuns que correspondam \(`a pesquisa quando carregar em Procurar e depois de receber os resultados do \m[blue]\fBwww\&.gnudb\&.org\fR\m[]\&\s-2\u[7]\d\s+2\&. A importa\(,c\(~ao dos dados da faixa de \('album \('e feita ao fazer duplo\-click sobre o \('album na lista\&. O servidor de freedb\&.org a importar poder\('a ser seleccionado, assim como a localiza\(,c\(~ao do CGI\&. Os dados importados s\(~ao apresentados na tabela de antevis\(~ao da janela de importa\(,c\(~ao\&. Quando estiver satisfeito com as faixas apresentadas, as mesmas podem ser importadas se terminar a janela de importa\(,c\(~ao com o OK\&. .sp Se j\('a tiver um resultado da pesquisa aberto no navegador Web, poder\('a introduzir o URL no primeiro campo de edi\(,c\(~ao\&. O resultado ir\('a ent\(~ao aparecer na lista de \('albuns e poder\('a ser importado directamente no Kid3\&. .sp Poder\('a efectuar uma pesquisa no servidor do Discogs com a op\(,c\(~ao Discogs\&. Como na janela do gnudb\&.org, poder\('a introduzir o artista e o \('album, escolhendo depois dentro de uma lista de lan\(,camentos\&.Poder\('a introduzir um C\('odigo para usar a API RESTful do Discogs em vez de usar a interface Web deles, a qual muda com frequ\(^encia, comprometendo assim o processamento da importa\(,c\(~ao\&. Ter\('a de criar uma conta no \m[blue]\fBDiscogs\fR\m[]\&\s-2\u[8]\d\s+2 e depois gerar um c\('odigo na p\('agina Web deles ("Settings/Developers, Generate new token" (Configura\(,c\(~ao/Programadores, Gerar um novo c\('odigo))\&. N\(~ao se esque\(,ca de Gravar a Configura\(,c\(~ao depois de introduzir o c\('odigo para o usar tamb\('em nos pedidos subsequentes\&. Se as Marcas\-Padr\(~ao estiverem assinaladas, \('e importada a informa\(,c\(~ao\-padr\(~ao, p\&.ex\&. artista, \('album e t\('itulo\&. Se estiverem assinaladas as Marcas Adicionais, poder\('a importar mais informa\(,c\(~oes se estiverem dispon\('iveis, p\&.ex\&. artistas, maestros ou o publicador\&. Se as Imagens das Capas estiver assinalada, ser\('a transferida a imagem da capa, se estiver dispon\('ivel\&. .sp Poder\('a efectuar uma pesquisa na Amazon com a op\(,c\(~ao Amazon\&. Tal como na janela do gnudb\&.org, poder\('a introduzir o artista e o \('album, escolhendo depois a partir de uma lista de lan\(,camentos\&. Se as Marcas Adicionais estiverem marcadas, poder\('a importar mais informa\(,c\(~ao desde que esteja dispon\('ivel, p\&.ex\&. cantores, maestros ou publicadores\&. Se as Imagens da Capa estiver assinalada, ser\('a transferida a imagem da capa caso esteja dispon\('ivel\&. .sp Poder\('a pesquisar da mesma forma na base de dados de lan\(,camentos do MusicBrainz, usando a op\(,c\(~ao Da Vers\(~ao do MusicBrainz\&. O procedimento \('e o mesmo que est\('a descrito em Do gnudb\&.org\&. .sp A importa\(,c\(~ao de um servidor do MusicBrainz \('e poss\('ivel se usar a janela que aparece quando seleccionar a op\(,c\(~ao Da Impress\(~ao Digital do MusicBrainz\&. Poder\('a seleccionar o Servidor como na janela de importa\(,c\(~ao 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\(,ca como "Pendente" quando a janela \('e aberta\&. Depois \('e pesquisada a impress\(~ao digital e, se n\(~ao devolver resultados, ser\('a testada outra pesquisa com as marcas no ficheiro\&. Como tal, pode ser \('util para uma pesquisa com sucesso no MusicBrainz guardar a informa\(,c\(~ao conhecida (p\&.ex\&. artista e \('album) nas marcas antes da importa\(,c\(~ao\&. Se for encontrado um resultado, a pesquisa termina no estado "Reconhecida"; caso contr\('ario, se n\(~ao tiver sido encontrado nada ou se forem devolvidos resultados amb\('iguos, ter\('a 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\('a demorar algum tempo, dado que todo o processo do MusicBrainz ter\('a de ser encerrado\&. .sp Para a importa\(,c\(~ao de dados textuais, a op\(,c\(~ao Do Ficheiro/\('Area de Transfer\(^encia abre uma sub\-janela, onde est\(~ao dispon\('iveis v\('arios formatos de importa\(,c\(~ao pr\('e\-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\(,c\(~ao\&. Os dados em CSV podem ser editados numa folha de c\('alculo e devem ser gravados com tabula\(,c\(~oes como separadores\&. A importa\(,c\(~ao dever\('a ser poss\('ivel com o "CSV com aspas", que \('e mais flex\('ivel que a vers\(~ao "CSV sem aspas"\&. Contudo, os seus campos n\(~ao podem ter aspas no conte\('udo\&. Se s\('o 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\('em existem as op\(,c\(~oes "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\('ivel\&. .sp O pr\('oximo formato, "texto HTML do freedb", pode ser usado para copiar informa\(,c\(~oes de uma p\('agina HTML do \m[blue]\fBfreedb\&.org\fR\m[]\&\s-2\u[9]\d\s+2\&. Pesquise um \('album no freedb e, se a informa\(,c\(~ao desejada aparecer no navegador Web, copie o conte\('udo para a \('area de transfer\(^encia\&. Depois carregue no bot\(~ao Da \('Area de Transfer\(^encia para que as faixas importadas apare\(,cam na tabela de antevis\(~ao no topo da janela\&. Se estiver satisfeito com os dados importados, termine a janela com o bot\(~ao OK, que ir\('a 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\(~ao estar na ordem de faixas correctamente para ter as suas marcas atribu\('idas\&. Este \('e o caso caso elas estejam numeradas\&. .sp O pr\('oximo formato de importa\(,c\(~ao pr\('e\-configurado, o "c\('odigo HTML do freedb", poder\('a ser usado se os dados estiverem dispon\('iveis como um documento em HTML\&. A importa\(,c\(~ao \('e poss\('ivel com o bot\(~ao Do Ficheiro, que abre um selector de ficheiros, ou copiando o seu conte\('udo a partir de um editor e depois importando\-o a partir da \('area de transfer\(^encia\&. Este formato pode ser \('util para a importa\(,c\(~ao \*(Aqoffline\*(Aq, ainda que o documento HTML possa tamb\('em ser aberto num navegador e depois ser importado no primeiro formato atrav\('es da \('area de transfer\(^encia\&. .sp Est\(~ao dispon\('iveis mais formatos pr\('e\-configurados, p\&.ex\&. "Tempo do T\('itulo da Faixa"\&. Poder\('a criar um formato personalizado vazio com o bot\(~ao Adicionar para ser definido pelo utilizador\&. As duas linhas abaixo do nome do formato podem ser configuradas com uma express\(~ao regular para capturar os campos a partir do texto a importar\&. A primeira express\(~ao regular ser\('a processada uma vez por cada documento para reunir os dados de cada \('album, como o artista, o \('album, o ano e o g\('enero\&. A segunda linha \('e testada para corresponder a partir do in\('icio do documento at\('e ao fim para obter os dados da faixa, normalmente o n\('umero e o t\('itulo\&. As express\(~oes regulares incluem todas as funcionalidades oferecidas pelo Qt(TM), que correspondem \(`a maior parte do que o Perl oferece\&. As constru\(,c\(~oes com par\(^entesis "(\&.\&.)" criam \('areas de captura para os campos a importar e s\(~ao antecedidas de c\('odigos espec\('ificos do Kid3 para indicar qual o campo a capturar\&. Os c\('odigos s\(~ao os mesmos que s\(~ao usados no formato dos nomes dos ficheiros, para al\('em dos c\('odigos apresentados abaixo; \('e poss\('ivel qualquer nome de pacote: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %s %{title} T\('itulo (M\('usica) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %a %{artist} Artista .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %l %{album} \('Album .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %c %{comment} Coment\('ario .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %y %{year} Ano .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %t %{track} Faixa .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %g %{genre} G\('enero .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %d %{duration} Dura\(,c\(~ao .RE .sp Por exemplo, a express\(~ao regular de uma faixa (segunda linha) para importar a partir de uma lista de reprodu\(,c\(~ao \&.m3u poderia ser "%{track}(\ed+)\es+%{title}(\eS[^\er\en]*)\e\&.mp3[\er\en]"\&. Todos os formatos podem ser alterados se editar as express\(~oes regulares e o nome, carregando depois em Gravar a Configura\(,c\(~ao\&. Elas ficar\(~ao guardadas no ficheiro kid3rc na pasta de configura\(,c\(~ao\&. Este ficheiro poder\('a ser editado directamente para ter mais formatos de importa\(,c\(~ao ou poder\('a ser apagado para voltar aos formatos predefinidos\&. Os formatos podem ser apagados com Remover\&. .sp A Precis\(~ao mostra uma estimativa de qu\(~ao boa \('e a informa\(,c\(~ao importada ao corresponder \(`as faixas indicadas\&. Ele usa as dura\(,c\(~oes das faixas ou os nomes dos ficheiros para calcular o n\('ivel de semelhan\(,ca em percentagem\&. A Imagem da Capa mostra o URL da imagem da capa do \('album que ser\('a transferida\&. .sp Para verificar se as faixas importadas correspondem ao conjunto actual de ficheiros, a dura\(,c\(~ao das faixas importadas poder\('a ser comparada com a dura\(,c\(~ao dos ficheiros\&. Esta funcionalidade poder\('a ser activada com a op\(,c\(~ao Verificar a diferen\(,ca m\('axima de tempo permitida (s): para definir esse valor m\('aximo de toler\(^ancia em segundos\&. Se ocorrer uma discrep\(^ancia de valores, a dura\(,c\(~ao aparece com um fundo vermelho na tabela de antevis\(~ao\&. .sp Se os ficheiros estiverem ordenados de forma diferente das faixas importadas, as suas faixas atribu\('idas ter\(~ao de ser alteradas\&. Esta tarefa poder\('a ser simplificada se usar os bot\(~oes para Corresponder a Dura\(,c\(~ao, Faixa e T\('itulo, os quais ir\(~ao reordenar as faixas de acordo com o campo correspondente\&. Para corrigir manualmente as atribui\(,c\(~oes, poder\('a arrastar uma faixa com o bot\(~ao esquerdo do rato e a tecla Ctrl carregada, sendo depois largada na nova posi\(,c\(~ao\&. .sp Quando a janela de importa\(,c\(~ao estiver aberta, ela possui o conte\('udo actual das marcas\&. O tipo de marca (Marca 1, Marca 2, Marca 1 e Marca 2) poder\('a ser seleccionado com a lista Destino\&. O bot\(~ao \(`a direita desta lista poder\('a ser usado para reverter a tabela ao conte\('udo actual das marcas\&. As op\(,c\(~oes de marca\(,c\(~ao na primeira coluna da tabela poder\(~ao ser usadas para seleccionar as faixas que ser\(~ao importadas\&. Isto pode ser \('util se uma pasta possuir as faixas de ambos os CD\*(Aqs de um CD duplo e s\('o necessitar de importar as faixas do segundo CD\&. .sp Para identificar as faixas que s\(~ao importadas, \('e poss\('ivel mostrar os nomes dos ficheiros ou as localiza\(,c\(~oes completas dos mesmos, usando o menu de contexto do cabe\(,calho da tabela\&. Os valores na tabela de importa\(,c\(~ao poder\(~ao ser editados\&. O bot\(~ao de rever\(~ao \(`a direita da lista Destino poder\('a ser usado para repor o conte\('udo das marcas, o que tamb\('em poder\('a ser \('util depois de alterar o Destino\&. .sp Quase todas as janelas possuem um bot\(~ao Gravar a Configura\(,c\(~ao, que pode ser usado para guardar as defini\(,c\(~oes espec\('ificas da janela, bem como o seu tamanho, de forma persistente\&. .sp A op\(,c\(~ao Das Marcas conduz a uma sub\-janela para configurar os pacotes das marcas a partir do conte\('udo de outros pacotes de marcas\&. Isto pode ser usado para simplificar a c\('opia de informa\(,c\(~ao entre marcas ou para extrair uma parte de um pacote e inseri\-la noutro\&. .sp Tal como na janela para importar a partir de um ficheiro/\('area de transfer\(^encia, existem formatos configur\('aveis \(`a vontade para efectuar diferentes opera\(,c\(~oes\&. J\('a existem alguns formatos pr\('e\-configurados para copiar o valor do \('Album para o Artista, Compositor ou Condutor do \('Album, assim como para extrair o n\('umero da faixa dos campos de T\('itulo que incluam um n\('umero\&. Existe tamb\('em um formato para extrair um Sub\-T\('itulo a partir de um campo de T\('itulo\&. .sp O seguinte exemplo explica como adicionar um formato personalizado, o qual define a informa\(,c\(~ao a partir do campo de Sub\-T\('itulo tamb\('em no campo de Coment\('ario\&. Crie um novo formato com a op\(,c\(~ao Adicionar e indique um novo nome, p\&.ex\&. "\fBSub\-t\('itulo para Coment\('ario\fR"\&. Depois indique "\fB%{subtitle}\fR" na Origem e "\fB%{comment}(\&.*)\fR" na Extrac\(,c\(~ao, carregando finalmente em Gravar a Configura\(,c\(~ao\&. .sp A express\(~ao na Origem poder\('a conter os c\('odigos de formato para os pacotes de marcas arbitr\('arios, podendo usar v\('arios c\('odigos para combinar o conte\('udo dos diferentes pacotes\&. Para cada faixa, \('e gerado um texto a partir das suas marcas com o formato da Origem e a express\(~ao regular da Extrac\(,c\(~ao \('e aplicada a este texto para definir valores novos para as marcas\&. Os c\('odigos dos formato s\(~ao usados antes dos par\(^entesis de captura para indicar o pacote de marcas onde ser\('a guardado o texto capturado\&. Funciona da mesma forma que na importa\(,c\(~ao de ficheiros/\('area de transfer\(^encia\&. .sp A op\(,c\(~ao Importar a Partir das Marcas\&.\&.\&. tamb\('em est\('a directamente dispon\('ivel a partir do menu Ficheiro\&. A diferen\(,ca entre estas duas fun\(,c\(~oes \('e que a sub\-janela de importa\(,c\(~ao funciona sobre todos os ficheiros da pasta actual, enquanto a fun\(,c\(~ao do menu se aplica sobre os ficheiros seleccionados (que poder\(~ao estar em diferentes pastas)\&. A fun\(,c\(~ao do menu suporta um c\('odigo adicional "\fB%{__return}\fR" para devolver o valor extra\('ido, o que poder\('a ser \('util com as interfaces CLI e QML\&. .RE .PP Ficheiro → Importar do gnudb\&.org\&.\&.\&. .RS 4 Importa a partir de um servidor do freedb\&.org, usando a pesquisa de \('albuns do gnudb\&.org\&. Este item de menu abre a mesma janela de importa\(,c\(~ao que o Importar\&.\&.\&., mas abre directamente a janela do gnudb\&.org\&. .RE .PP Ficheiro → Importar do Discogs\&.\&.\&. .RS 4 Importa a partir do servidor do Discogs\&. Este item de menu abre a mesma janela de importa\(,c\(~ao que o Importar\&.\&.\&., mas abre directamente a janela do Discogs\&. .RE .PP Ficheiro → Importar da Amazon\&.\&.\&. .RS 4 Importa a partir da Amazon\&. Este item de menu abre a mesma janela de importa\(,c\(~ao que o Importar\&.\&.\&., mas abre directamente a janela da Amazon\&. .RE .PP Ficheiro → Importar da Vers\(~ao do MusicBrainz\&.\&.\&. .RS 4 Importa a partir do servi\(,co de lan\(,camentos do MusicBrainz\&. Este item de menu abre a mesma janela de importa\(,c\(~ao que o Importar\&.\&.\&., mas abre directamente a janela da MusicBrainz\&. .RE .PP Ficheiro → Importar da Impress\(~ao Digital do MusicBrainz\&.\&.\&. .RS 4 Importa a partir de um servidor do MusicBrainz\&. Este item de menu abre a mesma janela de importa\(,c\(~ao que o Importar\&.\&.\&., mas abre directamente a janela de Impress\(~oes Digitais do MusicBrainz\&. .RE .PP Ficheiro → Importar das Marcas\&.\&.\&. .RS 4 Como o Das Marcas, mas a importa\(,c\(~ao \('e aplicada aos ficheiros seleccionados\&. .RE .PP Ficheiro → Importa\(,c\(~ao Autom\('atica\&.\&.\&. .RS 4 A Importa\(,c\(~ao Autom\('atica permite a uma pessoa importar informa\(,c\(~oes para v\('arios \('albuns a partir de v\('arios servi\(,cos na Web\&. Se forem seleccionadas pastas na lista de ficheiros, ser\(~ao importados os dados das faixas para as pastas seleccionadas\&. Se n\(~ao for seleccionada nenhuma pasta, todas as pastas na lista de ficheiros ser\(~ao importadas\&. .sp O tipo de marca (Marca 1, Marca 2, Marca 1 e Marca 2) podem ser seleccionados com a lista Destino\&. .sp Os perfis determinam quais os servidores que ser\(~ao contactados para obter a informa\(,c\(~ao do \('album\&. Alguns dos perfis s\(~ao predefinidos (Tudo, MusicBrainz, Discogs, Imagens de Capas), sendo que poder\('a adicionar perfis personalizados com o bot\(~ao Adicionar \(`a direita da lista do Perfil\&. .sp A tabela abaixo mostra os servidores que ser\(~ao usados quando importar os dados dos \('albuns com o perfil seleccionado\&. O processo de importa\(,c\(~ao de um \('album termina se toda a informa\(,c\(~ao necess\('aria for encontrada, pelo que a ordem das linhas na tabela \('e importante\&. Poder\('a ser alterada com os bot\(~oes Subir e Descer\&. O Editar pode ser usado para modificar um item existente\&. A selec\(,c\(~ao do Servidor oferece os mesmos servidores que podem ser usados nas fun\(,c\(~oes de importa\(,c\(~ao\&. As Marcas\-Padr\(~ao, as Marcas Adicionais e as Imagens das Capas determinam a informa\(,c\(~ao que ser\('a obtida a partir do servidor\&. Finalmente, a Precis\(~ao \('e a granularidade m\('inima que dever\('a ser obtida para aceitar os dados importados\&. Se a precis\(~ao for insuficiente, ser\('a usado o pr\('oximo servidor na lista\&. A mesma janela que cont\('em as propriedades do servidor aparece quando carregar em Adicionar para adicionar um novo item de servidor\&. Os itens existentes poder\(~ao ser removidos com o bot\(~ao Remover\&. .sp Para invocar uma importa\(,c\(~ao autom\('atica em lote com o perfil seleccionado, carregue em Iniciar\&. Os detalhes sobre a importa\(,c\(~ao em curso s\(~ao apresentados no topo da janela\&. O processo poder\('a ser interrompido com o bot\(~ao Interromper\&. .RE .PP Ficheiro → Escolher as Imagens de Capas\&.\&.\&. .RS 4 A janela para Escolher as Imagens das Capas ajuda a descobrir as imagens das capas dos \('albuns\&. O Artista/\('Album \('e preenchido a partir das marcas, se tal for poss\('ivel\&. A Origem oferece uma variedade de p\('aginas Web com imagens das capas dos \('albuns\&. O URL com o artista e o \('album como par\(^ametros poder\('a ser consultado por baixo do nome\&. Poder\('a inserir valores codificados como URL\*(Aqs para o artista se usar o "\fB%u{artist}\fR" e "\fB%u{album}\fR"; tamb\('em s\(~ao poss\('iveis os outros valores a partir das marcas, tal como descrito em Configurar o Kid3, Ac\(,c\(~oes do Utilizador\&. Poder\('a 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\(,c\(~ao\&. 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\(,c\(~ao, \('e iniciado com a origem seleccionada\&. Poder\('a ent\(~ao 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\&. .sp Dado que nem todos os navegadores suportam o arrastamento de imagens e as imagens das p\('aginas Web normalmente t\(^em um URL, nesses casos o Kid3 ir\('a receber o URL e n\(~ao a imagem\&. Se o URL apontar para uma imagem, a mesma ser\('a transferida\&. Contudo, se o URL fizer refer\(^encia a outro recurso qualquer da Web, ter\('a de ser traduzido para a imagem correspondente\&. Essas associa\(,c\(~oes est\(~ao definidas na tabela de extrac\(,c\(~ao do URL\&. A coluna da esquerda Corresponder cont\('em uma express\(~ao regular que \('e comparada com o URL\&. Se corresponder, as express\(~oes capturadas entre par\(^entesis s\(~ao introduzidas no padr\(~ao da coluna URL da Imagem \(`a direita (nas posi\(,c\(~oes marcadas com o \e1 etc\&.)\&. A express\(~ao regular substitu\('ida cont\('em o URL da imagem\&. Com este mecanismo, as imagens das capas poder\(~ao ser importadas a partir da Amazon, Google Images, etc\&. por arrastamento\&. Tamb\('em \('e poss\('ivel definir as suas pr\('oprias associa\(,c\(~oes\&. .RE .PP Ficheiro → Exportar\&.\&.\&. .RS 4 A Janela de Exporta\(,c\(~ao \('e usada para guardar os dados das marcas num ficheiro ou na \('area de transfer\(^encia\&. O editor no topo mostra uma antevis\(~ao dos dados a exportar\&. Se os dados da exporta\(,c\(~ao tiverem tabula\(,c\(~oes, a exporta\(,c\(~ao ser\('a apresentada numa tabela\&. Os dados ser\(~ao gerados a partir das marcas na pasta actual, de acordo com o formato configurado\&. .sp A configura\(,c\(~ao do formato \('e semelhante \(`a da janela de Importa\(,c\(~ao: O campo no topo cont\('em o t\('itulo (p\&.ex\&. "CSV sem aspas"), seguido do cabe\(,calho que ser\('a gerado no in\('icio do ficheiro\&. Os dados da faixa v\(^em a seguir; \('e usado para cada faixa\&. Finalmente, o rodap\('e pode ser usado para gerar algum texto final\&. .sp Os campos de formato n\(~ao cont\(^em express\(~oes regulares como na janela de Importa\(,c\(~ao, mas apenas as express\(~oes do formato de sa\('ida com express\(~oes\-% especiais, as quais ser\(~ao substitu\('idas pelos valores das marcas\&. O processo inteiro funciona como no formato dos nomes dos ficheiros, sendo usados os mesmos c\('odigos para al\('em de alguns c\('odigos adicionais\&. N\(~ao s\('o os c\('odigos apresentados abaixo mas todos os nomes de pacotes de marcas poder\(~ao ser usados\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %s %{title} T\('itulo (M\('usica) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %a %{artist} Artista .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %l %{album} \('Album .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %c %{comment} Coment\('ario .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %y %{year} Ano .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %t %{track} Faixa (p\&.ex\&. 01) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %t %{track\&.n} Faixa com o tamanho do campo \*(Aqn\*(Aq (p\&.ex\&. 001 para %{track\&.3}) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %T %{tracknumber} Faixa (sem os zeros iniciais, p\&.ex\&. 1) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %g %{genre} G\('enero .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %f %{file} Nome do ficheiro .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %p %{filepath} Localiza\(,c\(~ao .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %{modificationdate} Data de modifica\(,c\(~ao .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %{creationdate} Data de cria\(,c\(~ao .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %u %{url} URL .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %{dirname} Nome da pasta .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %d %{duration} Dura\(,c\(~ao em minutos:segundos .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %D %{seconds} Dura\(,c\(~ao em segundos .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %n %{tracks} N\('umero de faixas do \('album .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %e %{extension} Extens\(~ao do ficheiro .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %O %{tag1} O formato da marca 1 (ID3v1\&.1 ou vazio se inexistente) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %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) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %b %{bitrate} Taxa de dados em kbit/s .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %v %{vbr} VBR ou vazio (apenas para o ID3v2\&.3 com a id3lib) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %r %{samplerate} Taxa de amostragem em Hz .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %m %{mode} Modo do canal (Est\('ereo ou Est\('ereo Conjunto) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %h %{channels} N\('umero de canais (1 ou 2) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %k %{codec} Codificador (p\&.ex\&. MPEG 1 N\('ivel 3, MP4, Ogg Vorbis, FLAC, MPC, APE, ASF, AIFF, WAV) .RE .sp Existem alguns formatos predefinidos\&. O "CSV sem aspas" separa os campos com tabula\(,c\(~oes\&. Os dados neste formato poder\(~ao ser importados de novo para o Kid3, usando o formato de importa\(,c\(~ao com o mesmo nome\&. O "CSV com aspas" delimita adicionalmente os campos com aspas, o que facilita a importa\(,c\(~ao para as folhas de c\('alculo\&. Contudo, os campos n\(~ao poder\(~ao ter eles pr\('oprios aspas quando usar este formato\&. O "M3U Estendido" e o "PLS Estendido" geram listas de reprodu\(,c\(~ao com atributos estendidos e com nomes de locais absolutos\&. O "HTML" pode ser usado para gerar uma p\('agina HTML com hiperliga\(,c\(~oes para as faixas\&. O "Kover XML" cria um ficheiro que poder\('a ser importado pelo programa de impress\(~ao de capas Kover\&. Os "Detalhes T\('ecnicos" oferecem informa\(,c\(~oes sobre a taxa de dados, taxa de amostragem, canais, etc\&. Finalmente, o "Formato Personalizado" \('e deixado em branco para a defini\(,c\(~ao de um formato personalizado\&. Poder\('a definir mais formatos seus se adicionar linhas no ficheiro , kid3rc na pasta de configura\(,c\(~ao\&. Os outros formatos poder\(~ao ser adaptados de acordo com as suas necessidades\&. .sp A Origem das marcas para gerar os dados de exporta\(,c\(~ao (Marca 1 ou Marca 2) poder\('a ser seleccionada com uma lista\&. Se carregar em Para um Ficheiro ou Para a \('Area de Transfer\(^encia, ir\('a guardar os dados nesses destinos\&. Os bot\(~oes OK e Cancelar fecham a janela, sendo que o OK aceita as defini\(,c\(~oes da janela actual\&. .RE .PP Ficheiro → Criar uma Lista de Reprodu\(,c\(~ao\&.\&.\&. .RS 4 Cria uma lista de reprodu\(,c\(~ao\&. O formato e conte\('udo da lista de reprodu\(,c\(~ao poder\(~ao ser definidos com v\('arias op\(,c\(~oes\&. .sp O nome da lista de reprodu\(,c\(~ao poder\('a ser o Mesmo que o nome da pasta ou usar um Formato com valores das marcas, p\&.ex\&. "\fB%{artist} \- %{album}\fR" para ter o nome do artista e do \('album no nome do ficheiro da lista de reprodu\(,c\(~ao\&. Os c\('odigos do formato s\(~ao os mesmos que em Exportar\&. A op\(,c\(~ao Criar uma nova lista de reprodu\(,c\(~ao vazia ir\('a criar uma lista de reprodu\(,c\(~ao vazia com o nome indicado\&. A extens\(~ao depende do formato da lista de reprodu\(,c\(~ao\&. .sp A localiza\(,c\(~ao da lista de reprodu\(,c\(~ao gerada \('e determinada pela selec\(,c\(~ao da lista Criar em\&. .PP Pasta actual .RS 4 A lista de reprodu\(,c\(~ao \('e criada na pasta actual e s\('o cont\('em os ficheiros da pasta actual\&. A pasta actual \('e a pasta onde se encontra o ficheiro actual\&. Se estiverem seleccionados v\('arios ficheiros, o ficheiro actual ser\('a provavelmente o \('ultimo ficheiro seleccionado\&. .RE .PP Todas as pastas .RS 4 Uma lista de reprodu\(,c\(~ao \('e criada em todas as pastas que cont\(^em os ficheiros listados, sendo que cada lista cont\('em os ficheiros dessa pasta\&. .RE .PP Pasta de topo .RS 4 S\('o \('e criada uma lista de reprodu\(,c\(~ao na pasta de topo (i\&.e\&., a pasta da lista de ficheiros) e cont\('em os ficheiros listados na pasta de topo e em todas as suas sub\-pastas\&. .RE .sp O Formato da lista de reprodu\(,c\(~ao poder\('a ser o M3U, PLS ou XSPF\&. .sp Se a op\(,c\(~ao Incluir apenas os ficheiros seleccionados estiver assinalada, s\('o ser\(~ao inclu\('idos os ficheiros seleccionados na lista de reprodu\(,c\(~ao\&. Se uma dada pasta for seleccionada, ser\(~ao seleccionados todos os seus ficheiros\&. Se esta op\(,c\(~ao de marca\(,c\(~ao n\(~ao estiver assinalada, todos os ficheiros de \('audio ser\(~ao inclu\('idos na lista de reprodu\(,c\(~ao\&. .sp O Ordenar pelo nome do ficheiro selecciona o caso normal, onde os ficheiros s\(~ao ordenados pelo nome do ficheiro\&. Com a op\(,c\(~ao Ordenar pelo campo da marca, \('e poss\('ivel ordenar por um dado texto de formato com os valores dos campos das marcas\&. Por exemplo, o "\fB%{track\&.3}\fR" pode ser usado para ordenar pelo n\('umero da faixa (o "\fB\&.3\fR" \('e usado para obter tr\(^es algarismos com zeros iniciais, dado que s\(~ao usados textos nas ordena\(,c\(~ao)\&. Tamb\('em \('e poss\('ivel usar v\('arios campos, p\&.ex\&. "\fB%{genre}%{year}\fR" para ordenar por um texto composto pelo g\('enero e ano\&. .sp Os elementos da lista de reprodu\(,c\(~ao ter\(~ao locais relativos ou absolutos, dependendo se as op\(,c\(~oes Usar uma localiza\(,c\(~ao relativa para os ficheiros na lista de reprodu\(,c\(~ao ou a Usar a localiza\(,c\(~ao completa para os ficheiros na lista de reprodu\(,c\(~ao estiver definida\&. .sp Quando estiver assinalada a op\(,c\(~ao Escrever apenas a lista de ficheiros, a lista de reprodu\(,c\(~ao s\('o ir\('a conter as localiza\(,c\(~oes dos ficheiros\&. Para gerar uma lista estendida com informa\(,c\(~oes adicionais, poder\('a definir um texto de formato com o controlo Gravar a informa\(,c\(~ao com\&. .RE .PP Ficheiro → Sair (Ctrl+Q) .RS 4 Sai da aplica\(,c\(~ao\&. .RE .SS "O Menu Editar" .PP .PP Editar → Seleccionar Tudo (Alt+A) .RS 4 Selecciona todos os ficheiros\&. .RE .PP Editar → Deseleccionar (Ctrl+Shift+A) .RS 4 Deselecciona todos os ficheiros\&. .RE .PP Editar → Seleccionar Tudo na Pasta .RS 4 Selecciona todos os ficheiros na pasta actual\&. .RE .PP Editar → Ficheiro Anterior (Alt+Cima) .RS 4 Selecciona o ficheiro anterior\&. .RE .PP Editar → Ficheiro Seguinte (Alt+Baixo) .RS 4 Selecciona o ficheiro seguinte\&. .RE .PP Editar → Procurar\&.\&.\&. (Ctrl+F) .RS 4 Procura por determinados textos nos nomes dos ficheiros e nas marcas\&. A janela Procurar \('e um sub\-conjunto da janela Substituir, a qual est\('a descrita em baixo\&. .RE .PP Editar → Substituir\&.\&.\&. (Ctrl+R) .RS 4 Esta fun\(,c\(~ao abre uma janela para procurar e substituir os textos nos nomes dos ficheiros e nas marcas\&. O conjunto de pacotes onde \('e efectuada a pesquisa poder\('a ser restrito se desactivar a op\(,c\(~ao Seleccionar tudo e seleccionar os pacotes que devem ser pesquisados\&. Tamb\('em existem op\(,c\(~oes de pesquisa para poder procurar para tr\('as, para distinguir a capitaliza\(,c\(~ao e para usar as express\(~oes regulares\&. .sp Dependendo do n\('umero de ficheiros, a pesquisa poder\('a demorar algum tempo, como tal poder\('a ser interrompida se fechar a janela\&. .RE .SS "O Menu Ferramentas" .PP .PP Ferramentas → Aplicar o Formato do Nome do Ficheiro .RS 4 Quando a op\(,c\(~ao Aplicar automaticamente o formato estiver desligada para o formato de nomes dos ficheiros na janela de configura\(,c\(~ao, este item do menu pode ser usado para aplicar o formato configurado aos nomes dos ficheiros seleccionados\&. Isto tamb\('em pode ser usado para verificar se os nomes dos ficheiros est\(~ao 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\('imbolo de disco na lista de ficheiros)\&. .RE .PP Ferramentas → Aplicar o Formato das Marcas .RS 4 Quando a op\(,c\(~ao Aplicar automaticamente o formato estiver desligada para o formato das marcas na janela de configura\(,c\(~ao, este item do menu pode ser usado para aplicar o formato configurado \(`as marcas dos ficheiros seleccionados\&. Isto tamb\('em pode ser usado para verificar se as marcas est\(~ao 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\('imbolo de disco na lista de ficheiros)\&. .RE .PP Ferramentas → Aplicar a Codifica\(,c\(~ao do Texto .RS 4 Define a Codifica\(,c\(~ao de texto seleccionada em Configura\(,c\(~ao → Configurar o Kid3\&.\&.\&. → sec\(,c\(~ao de Marcas → p\('agina da Marca 2 para todos os ficheiros seleccionados\&. Se estiver seleccionado o UTF8, ser\('a usado o UTF16 para as marcas ID3v2\&.3\&.0, dado que o UTF8 n\(~ao \('e suportado para este formato\&. .RE .PP Ferramentas → Mudar o Nome da Pasta\&.\&.\&. .RS 4 Esta janela oferece a possibilidade de mudar automaticamente de nome a pasta aberta de momento, de acordo com as marcas nos ficheiros\&. Est\(~ao pr\('e\-configurados diversos formatos para incluir informa\(,c\(~oes sobre o artista, o \('album e o ano no nome da pasta\&. Tamb\('em \('e poss\('ivel definir um formato personalizado e Editar a lista de formatos dispon\('iveis\&. S\(~ao usados os seguintes c\('odigos especiais para inserir os valores das marcas no nome da pasta: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %s %{title} T\('itulo (M\('usica) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %a %{artist} Artista .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %l %{album} \('Album .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %c %{comment} Coment\('ario .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %y %{year} Ano .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %t %{track} Faixa (p\&.ex\&. 01) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %t %{track\&.n} Faixa com o tamanho do campo \*(Aqn\*(Aq (p\&.ex\&. 001 para %{track\&.3}) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %T %{tracknumber} Faixa (sem os zeros iniciais, p\&.ex\&. 1) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %g %{genre} G\('enero .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %{dirname} Nome da pasta (p\&.ex\&. %{year" "}%{dirname} ir\('a anteceder o ano ao nome da pasta actual) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %{max\-year} O valor m\('aximo do ano encontrado para esta pasta; tamb\('em poder\('a ser usado com outros c\('odigos que n\(~ao o "year" .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %{min\-year} O valor m\('inimo do ano encontrado para esta pasta .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %{unq\-year} O valor \('unico do ano encontrado para esta ou vazio se n\(~ao for \('unico .RE .sp Se for encontrado um separador de pastas "/" no formato, s\(~ao criadas v\('arias 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\(,c\(~ao da marca poder\('a ser escolhida entre Da Marca 1 e Marca 2, Da Marca 1 e Da Marca 2\&. Poder\('a ter uma antevis\(~ao da opera\(,c\(~ao de mudan\(,ca de nome efectuada no primeiro ficheiro nas sec\(,c\(~oes De e Para da janela\&. .sp Poder\('a mudar o nome de v\('arias pastas se as seleccionar\&. .RE .PP Ferramentas → Numerar as Faixas\&.\&.\&. .RS 4 Se os n\('umeros de faixa nas marcas n\(~ao estiverem definidos ou tiverem valores errados, esta fun\(,c\(~ao poder\('a numerar as faixas de forma autom\('atica, por ordem ascendente\&. O n\('umero inicial poder\('a ser definido na janela\&. Se s\('o tiver de numerar parte das faixas, as mesmas devem estar seleccionadas\&. .sp Quando o N\('umero total de faixas estiver assinalado, tamb\('em ser\('a definido o n\('umero de faixas nas marcas\&. .sp \('E poss\('ivel numerar as faixas por v\('arias pastas\&. As pastas t\(^em de estar expandidas e seleccionadas\&. .sp Se a op\(,c\(~ao Repor o contador para cada pasta estiver assinalada, a numera\(,c\(~ao de faixas \('e reiniciada com o n\('umero indicado para cada pasta, sempre que estiverem seleccionadas v\('arias pastas\&. .sp A janela de numera\(,c\(~ao das faixas tamb\('em pode ser usada para formatar os n\('umeros de faixas existentes sem modificar os valores quando a op\(,c\(~ao de marca\(,c\(~ao \(`a esquerda do N\('umero de in\('icio estiver desactivada\&. O n\('umero total de faixas ser\('a adicionado se a op\(,c\(~ao de marca\(,c\(~ao correspondente estiver activa, o que poder\('a ser usado para definir o total de todas as faixas seleccionadas\&. Se s\('o for desejada a formata\(,c\(~ao dos n\('umeros existentes, esta op\(,c\(~ao de marca\(,c\(~ao tamb\('em tem de ser desactivada\&. .RE .PP Ferramentas → Filtrar\&.\&.\&. .RS 4 O filtro poder\('a ser usado para mostrar apenas os ficheiros que correspondem a determinados crit\('erios\&. Isto \('e \('util se quiser organizar uma colec\(,c\(~ao grande e s\('o editar os ficheiros que n\(~ao estejam no esquema desejado\&. A express\(~ao que define quais os valores a apresentar usa os mesmos c\('odigos de formato que s\(~ao usados no formato dos nomes de ficheiros, na importa\(,c\(~ao e na exporta\(,c\(~ao\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %s %{title} T\('itulo (M\('usica) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %a %{artist} Artista .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %l %{album} \('Album .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %c %{comment} Coment\('ario .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %y %{year} Ano .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %t %{track} Faixa (p\&.ex\&. 01) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %t %{track\&.n} Faixa com o tamanho do campo \*(Aqn\*(Aq (p\&.ex\&. 001 para %{track\&.3}) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %T %{tracknumber} Faixa (sem os zeros iniciais, p\&.ex\&. 1) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %g %{genre} G\('enero .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %f %{file} Nome do ficheiro .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %p %{filepath} Localiza\(,c\(~ao absoluta do ficheiro .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %e %{extension} Extens\(~ao do ficheiro .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %O %{tag1} O formato da marca 1 (ID3v1\&.1 ou vazio se inexistente) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %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) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %b %{bitrate} Taxa de dados em kbit/s .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %v %{vbr} VBR ou vazio (apenas para o ID3v2\&.3 com a id3lib) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %r %{samplerate} Taxa de amostragem em Hz .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %m %{mode} Modo do canal (Est\('ereo ou Est\('ereo Conjunto) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %h %{channels} N\('umero de canais (1 ou 2) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %k %{codec} Codificador (p\&.ex\&. MPEG 1 N\('ivel 3, MP4, Ogg Vorbis, FLAC, MPC, APE, ASF, AIFF, WAV) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %w %{marked} Marcado; \('e igual a 1 se o ficheiro estiver marcado (p\&.ex\&. por estar truncado ou a violar a norma), sendo vazio em caso contr\('ario .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %1a %1{artist}, \&.\&.\&. Use o prefixo 1 para obter os valores da marca 1 .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %2a %2{artist}, \&.\&.\&. Use o prefixo 2 para obter os valores da marca 2 .RE .sp Estes c\('odigos s\(~ao substitu\('idos pelos valores do ficheiro, sendo que os textos resultantes podem ser comparados com as seguintes opera\(,c\(~oes: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} t1 equals t2: verdadeiro se o t1 e o t2 forem iguais\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} t1 contains t2: verdadeiro se o t1 conter o t2, i\&.e\&. o t2 for um sub\-texto de t1\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} t matches er: verdadeiro se o t corresponder \(`a express\(~ao regular er\&. .RE .sp As express\(~oes verdadeiras s\(~ao substitu\('idas por 1 e as falsas por 0\&. Os valores verdadeiros s\(~ao representados como 1, true, on e yes, enquanto os valores falsos s\(~ao por 0, false, off e no\&. As opera\(,c\(~oes booleanas s\(~ao o \*(Aqnot\*(Aq, \*(Aqand\*(Aq e \*(Aqor\*(Aq (por esta ordem de preced\(^encia) e podem ser agrupadas com par\(^entesis\&. .sp Algumas regras de filtragem s\(~ao predefinidas e podem servir de exemplos para as suas pr\('oprias express\(~oes: .PP Tudo .RS 4 Quando a lista de ficheiros estiver filtrada \- isso aparece como "[filtrado]" no t\('itulo da janela \- e caso deseje mostrar todos os ficheiros de novo, a filtragem pode ser revertida com este filtro\&. Ela usa uma express\(~ao vazia, mas um valor verdadeiro ter\('a o mesmo efeito\&. .RE .PP Inconsist\(^encia da Marca do Nome do Ficheiro .RS 4 \fBnot (%{filepath} contains "%{artist} \- %{album}/%{track} %{title}") \fR .sp Testa de a localiza\(,c\(~ao do ficheiro est\('a em conformidade com o formato de nomes de ficheiros\&. Esta regra \('e adaptada automaticamente se o formato do nome do ficheiro mudar\&. .RE .PP Sem Marca 1 .RS 4 \fB%{tag1} equals "" \fR .sp Mostra apenas os ficheiros que n\(~ao tiverem uma marca 1\&. .RE .PP Sem Marca 2 .RS 4 \fB%{tag2} equals "" \fR .sp Mostra apenas os ficheiros que n\(~ao tiverem uma marca 2\&. .RE .PP Marca de ID3v2\&.3\&.0 .RS 4 \fB%{tag2} equals "ID3v2\&.3\&.0" \fR .sp Mostra apenas os ficheiros que tiverem uma marca de ID3v2\&.3\&.0\&. .RE .PP Marca de ID3v2\&.4\&.0 .RS 4 \fB%{tag2} equals "ID3v2\&.4\&.0" \fR .sp Mostra apenas os ficheiros que tiverem uma marca de ID3v2\&.4\&.0\&. .RE .PP Marca 1 != Marca 2 .RS 4 \fBnot (%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}) \fR .sp Mostra os ficheiros com diferen\(,cas entre a marca 1 e a marca 2\&. .RE .PP Marca 1 == Marca 2 .RS 4 \fB%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} \fR .sp Mostra os ficheiros com a marca 1 e a marca 2 id\(^enticas\&. .RE .PP Incompleto .RS 4 \fB%{title} equals "" or %{artist} equals "" or %{album} equals "" or %{year} equals "" or %{tracknumber} equals "" or %{genre} equals "" \fR .sp Mostra os ficheiros com valores vazios nas marcas\-padr\(~ao (title, artist, album, date, track number, genre)\&. .RE .PP Sem Imagem .RS 4 \fB%{picture} equals "" \fR .sp Mostra apenas os ficheiros que n\(~ao tiverem uma imagem\&. .RE .PP Marcado .RS 4 \fBnot (%{marked} equals "") \fR .sp Mostra apenas os ficheiros que estiverem marcados por violarem a norma ID3, estejam truncados ou a imagem for demasiado grande\&. .RE .PP Filtro Personalizado .RS 4 Para adicionar o seu pr\('oprio filtro, seleccione este item\&. Por exemplo, se quiser um filtro por artistas que comecem por "The", substitua o "Filtro Personalizado" pelo nome "Bandas \*(AqThe\*(Aq" e carregue em Enter\&. Depois indique a seguinte express\(~ao no campo de texto: .sp \fB%{artist} matches "The\&.*" \fR .sp Depois carregue em Gravar a Configura\(,c\(~ao\&. Carregue em Aplicar para filtrar os ficheiros\&. Todos os ficheiros processados s\(~ao apresentados no campo de texto, com um "+" para as correspond\(^encias ao filtro e um "\-" para os outros\&. Quando terminar s\('o os ficheiros com um artista que comece por "The" s\(~ao apresentados, assim como o t\('itulo da janela fica marcada como "[filtrado]"\&. .RE .RE .PP Ferramentas → Converter o ID3v2\&.3 para ID3v2\&.4 .RS 4 Se existirem algumas marcas de ID3v2\&.3 nos ficheiros seleccionados, as mesmas ser\(~ao convertidas para marcas de ID3v2\&.4\&. Os pacotes que n\(~ao forem suportados pela TagLib ser\(~ao descartados\&. S\('o os ficheiros sem modifica\(,c\(~oes por gravar \('e que ser\(~ao convertidos\&. .RE .PP Ferramentas → Converter o ID3v2\&.4 para ID3v2\&.3 .RS 4 Se existirem algumas marcas de ID3v2\&.4 nos ficheiros seleccionados, as mesmas ser\(~ao convertidas para marcas de ID3v2\&.3\&. Os pacotes que n\(~ao forem suportados pela TagLib ser\(~ao descartados\&. S\('o os ficheiros sem modifica\(,c\(~oes por gravar \('e que ser\(~ao convertidos\&. .RE .PP Ferramentas → Reproduzir .RS 4 Isto abre uma barra de ferramentas simples para tocar ficheiros de \('audio\&. Cont\('em bot\(~oes para as opera\(,c\(~oes b\('asicas (Reproduzir/Pausa, Parar a reprodu\(,c\(~ao, Faixa Anterior, Faixa Seguinte, Fechar), barras de posi\(,c\(~ao e de volume e um mostrador da posi\(,c\(~ao actual\&. Se tiver seleccionado v\('arios ficheiros, as faixas seleccionadas ser\(~ao reproduzidas, caso contr\('ario ser\(~ao reproduzidos todos os ficheiros\&. .RE .SS "O Menu Configura\(,c\(~ao" .PP .PP Configura\(,c\(~ao → Mostrar a Barra de Ferramentas .RS 4 Activa/desactiva a apresenta\(,c\(~ao da barra de ferramentas\&. .RE .PP Configura\(,c\(~ao → Mostrar a Barra de Estado .RS 4 Comuta a apresenta\(,c\(~ao da barra de estado, que mostra as ac\(,c\(~oes mais longas como a abertura ou grava\(,c\(~ao de uma dada pasta\&. .RE .PP Configura\(,c\(~ao → Mostrar a Imagem .RS 4 Comuta a apresenta\(,c\(~ao da imagem de antevis\(~ao das capas do \('album\&. .RE .PP Configura\(,c\(~ao → Auto\-Esconder as Marcas .RS 4 As marcas vazias ficam automaticamente escondidas se esta op\(,c\(~ao estiver activa\&. As sec\(,c\(~oes Ficheiro, Marca 1 e Marca 2 poder\(~ao ser fechadas e expandidas manualmente se carregar nos bot\(~oes \-/+ respectivos\&. .RE .PP Configura\(,c\(~ao → Configurar as Teclas de Atalho\&.\&.\&. .RS 4 Abre uma janela para atribuir atalhos de teclado \(`a maior parte das fun\(,c\(~oes do programa\&. Existem at\('e fun\(,c\(~oes sem menu ou bot\(~ao dispon\('ivel, p\&.ex\&. ficheiro seguinte, ficheiro anterior, seleccionar tudo\&. .RE .PP Configura\(,c\(~ao → Configurar o Kid3\&.\&.\&. .RS 4 Abre a janela de configura\(,c\(~ao, que consiste nas p\('aginas das marcas, ficheiros, ac\(,c\(~oes do utilizador e configura\(,c\(~ao da rede\&. .sp As op\(,c\(~oes espec\('ificas das marcas poder\(~ao ser encontradas na p\('agina Marcas, que por sua vez est\('a dividida em quatro p\('aginas para a Marca 1, Marca 2, Marca 3 e Todas as Marcas\&. .sp Se a op\(,c\(~ao Marcar os campos truncados estiver assinalada, os campos de ID3v1\&.1 truncados ficar\(~ao marcados a vermelho\&. Os campos de texto das marcas ID3v1\&.1 s\('o poder\(~ao ter 30 caracteres, assim como o coment\('ario s\('o poder\('a ter 28 caracteres\&. Do mesmo modo, o g\('enero e os n\('umeros de faixas s\(~ao restritos, pelo que os campos poder\(~ao ficar truncados quando forem importados ou transferidos a partir do ID3v2\&. Os campos truncados e o nome do ficheiro ficar\(~ao marcados a vermelho, sendo que a marca ser\('a removida ap\('os editar o campo\&. .sp Com a Codifica\(,c\(~ao do texto para o ID3v1, \('e poss\('ivel definir o conjunto de caracteres usado nas marcas ID3v1\&. Esta codifica\(,c\(~ao \('e supostamente a ISO\-8859\-1, pelo que se recomenda manter este valor predefinido\&. Contudo, existem marcas com codifica\(,c\(~oes diferentes, pelo que a mesma pode ser definida aqui e as marcas ID3v1 possam ent\(~ao ser copiadas para o ID3v2, que suporta o Unicode\&. .sp A op\(,c\(~ao de marca\(,c\(~ao Usar o formato faixa/n\('umero total de faixas controla se o campo do n\('umero da faixa das marcas ID3v2 cont\('em apenas o n\('umero da faixa ou tamb\('em o n\('umero total de faixas na pasta\&. .sp Quando estiver assinalada a op\(,c\(~ao G\('enero como texto em vez de texto num\('erico, todos os g\('eneros do ID3v2 ser\(~ao guardados como uma sequ\(^encia de texto, mesmo que exista um c\('odigo correspondente para os g\('eneros de ID3v1\&. Se esta op\(,c\(~ao n\(~ao estiver activa, os g\('eneros para os quais exista um c\('odigo de ID3v1 s\(~ao guardados como o n\('umero de c\('odigo do g\('enero (entre par\(^entesis para o ID3v2\&.3)\&. Como tal, o g\('enero Metal est\('a guardado como "Metal" ou "(9)", dependendo desta op\(,c\(~ao\&. Os g\('eneros que n\(~ao constem na lista de g\('eneros ID3v1 s\(~ao sempre guardados como uma sequ\(^encia de texto\&. O objectivo desta op\(,c\(~ao \('e melhorar a compatibilidade com os dispositivos que n\(~ao interpretam correctamente os c\('odigos de g\('eneros\&. .sp Quando a op\(,c\(~ao Ficheiros WAV com bloco de ID3 em min\('usculas estiver assinalada, o bloco de RIFF usado para guardar as marcas ID3v2 nos ficheiros WAV ter\('a o nome "id3 " em vez de "ID3 "\&. Por omiss\(~ao, o Kid3 e outras aplica\(,c\(~oes que usam a TagLib aceitam tanto a vers\(~ao em mai\('usculas como em min\('usculas ao ler os ficheiros WAV, mas ir\(~ao usar a vers\(~ao "ID3 " quando gravar as marcas ID3v2 nos ficheiros WAV\&. Dado que existem outras aplica\(,c\(~oes que s\('o aceitam a vers\(~ao "id3 " (p\&.ex\&. JRiver Media Center e foobar2000), esta op\(,c\(~ao poder\('a ser usada para criar marcas que possam ser lidas por essas aplica\(,c\(~oes\&. .sp Quando a op\(,c\(~ao Marcar as viola\(,c\(~oes da norma estiver assinalada, os campos de ID3v2 que violem os padr\(~oes ser\(~ao marcados a vermelho\&. Os detalhes sobre a viola\(,c\(~ao aparecer\(~ao numa dica: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Deve ser \('unico .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} N\(~ao \('e permitida uma mudan\(,ca de linha .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} N\(~ao \('e permitido o retorno de linha .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} O dono n\(~ao pode estar em branco .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Deve ser num\('erico .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Deve ser num\('erico ou n\('umero/total .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} O formato \('e DDMM .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} O formato \('e HHMM .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} O formato \('e AAAA .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Deve come\(,car por um ano e um espa\(,co .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Deve ser uma data/hora no formato ISO 8601 .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Deve ser uma nota musical, 3 caracteres, A\-G, b, #, m, o .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Deve ser um c\('odigo de l\('ingua ISO 639\-2, 3 caracteres min\('usculos .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Deve ser um c\('odigo ISRC de 12 caracteres .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Deve ser uma lista de textos separados por \*(Aq|\*(Aq .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Tem espa\(,cos em excesso .RE .sp Os documentos da norma ID3 est\(~ao dispon\('iveis \*(Aqonline\*(Aq: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \m[blue]\fBMarca ID3 na vers\(~ao 2\&.3\&.0\fR\m[]\&\s-2\u[10]\d\s+2 .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \m[blue]\fBMarca ID3 na vers\(~ao 2\&.4\&.0 \- Estrutura Principal\fR\m[]\&\s-2\u[11]\d\s+2 .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \m[blue]\fBMarca ID3 na vers\(~ao 2\&.4\&.0 \- Pacotes Nativos\fR\m[]\&\s-2\u[5]\d\s+2 .RE .sp A Codifica\(,c\(~ao do texto define a codifica\(,c\(~ao predefinida usada para os pacotes ID3v2 e poder\('a ser configurada como ISO\-8859\-1, UTF16 ou UTF8\&. O UTF8 n\(~ao \('e v\('alido para os pacotes ID3v2\&.3\&.0; se estiver configurado, ser\('a usado em alternativa o UTF16\&. Para os pacotes de ID3v2\&.4\&.0, todas as tr\(^es codifica\(,c\(~oes s\(~ao permitidas\&. .sp A Vers\(~ao usada para as marcas novas determina se as marcas ID3v2 novas s\(~ao criadas na vers\(~ao 2\&.3\&.0 ou 2\&.4\&.0\&. .sp Os Algarismos do n\('umero de faixa \('e o n\('umero de algarismos nos campos do N\('umero de Faixa\&. Os zeros iniciais s\(~ao usados para preencher\&. Por exemplo, com um valor igual a 2, o n\('umero de faixa 5 fica igual a "05"\&. .sp A lista Nome do campo de coment\('ario s\('o \('e relevante para os ficheiros Ogg/Vorbis e FLAC e define o nome do campo que \('e usado para os coment\('arios\&. As diferentes aplica\(,c\(~oes parecem usar nomes diferentes, sendo por exemplo usado no XMMS o "COMMENT", enquanto o Amarok usa o "DESCRIPTION"\&. .sp O formato das imagens nos ficheiros Ogg/Vorbis \('e determinado pelo campo Nome do campo de imagem, o qual poder\('a 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 \('e uma forma mais antiga e n\(~ao oficial de incluir imagens nos coment\('arios do Vorbis\&. Pode ser usado por compatibilidade com os leitores antigos\&. .sp Se a op\(,c\(~ao Marcar se maior que (bytes) estiver activada, os ficheiros que cont\(^em imagens de capa incorporadas que ultrapassem o tamanho indicado em \*(Aqbytes\*(Aq ficar\(~ao marcados a vermelho\&. Isto pode ser usado para descobrir os ficheiros que t\(^em imagens demasiado grandes e que, por isso, possam n\(~ao ser aceites por algumas aplica\(,c\(~oes e leitores\&. O valor por omiss\(~ao \('e de 131072 bytes (128 KB)\&. .sp Os G\('eneros Personalizados poder\(~ao ser usados para definir g\('eneros que n\(~ao estejam dispon\('iveis na lista de g\('eneros\-padr\(~ao, p\&.ex\&. "Gothic Metal"\&. Esses g\('eneros personalizados ir\(~ao aparecer na lista G\('enero da Marca 2\&. Para as marcas ID3v1\&.1, s\('o poder\(~ao ser usados os g\('eneros predefinidos\&. .sp A lista de g\('eneros personalizados tamb\('em poder\('a ser usada para reduzir o n\('umero de g\('eneros dispon\('iveis na lista G\('enero aos que s\(~ao tipicamente usados\&. Se a sua colec\(,c\(~ao consistir principalmente em m\('usicas dos g\('eneros Metal, Gothic Metal, Ancient e Hard Rock, poder\('a inserir esses g\('eneros e marcar a op\(,c\(~ao Mostrar apenas os g\('eneros personalizados\&. A lista G\('enero da Marca 2 s\('o ir\('a conter esses quatro g\('eneros e n\(~ao ter\('a de pesquisar pela lista completa de g\('eneros deles\&. Neste exemplo, s\('o ir\('a aparecer Metal e Hard Rock na lista de g\('eneros da marca 1, dado que esses itens de g\('eneros personalizados ainda s\(~ao g\('eneros\-padr\(~ao\&. Se a op\(,c\(~ao Mostrar apenas os g\('eneros personalizados n\(~ao estiver activa, os g\('eneros personalizados poder\(~ao ser encontrados no fim da lista de g\('eneros\&. .sp Nos Pacotes Personalizados, poder\('a definir at\('e oito nomes de pacotes personalizados, os quais poder\(~ao ent\(~ao ser usados como pacotes unificados \- por exemplo, como pacotes de acesso r\('apido\&. .sp Os Pacotes de Acesso R\('apido definem quais os tipos de pacotes que ficam sempre vis\('iveis na sec\(,c\(~ao da Marca 2\&. Esses pacotes poder\(~ao ent\(~ao ser adicionados sem usar primeiro o bot\(~ao Adicionar\&. A ordem desses pacotes de acesso r\('apido poder\('a ser alterada se arrastar os itens respectivos\&. .sp A lista Nome do campo de n\('umero de faixa s\('o relevante para o RIFF INFO e define o nome do campo usado para os n\('umeros de faixas\&. Os n\('umeros de faixa n\(~ao fazem parte da norma RIFF original, sendo que existem aplica\(,c\(~oes que usam o "ITRK" e outras o "IPRT"\&. .sp O Formato das Marcas cont\('em op\(,c\(~oes para o formato das marcas\&. Quando a op\(,c\(~ao Aplicar automaticamente o formato estiver assinalada, a configura\(,c\(~ao do formato \('e usada automaticamente ao editar o texto nos campos de edi\(,c\(~ao\&. A Valida\(,c\(~ao activa algumas valida\(,c\(~oes nos controlos com os valores da faixa/total e data/hora\&. A Convers\(~ao de capitaliza\(,c\(~ao pode ser configurada como Sem altera\(,c\(~oes, Tudo em min\('usculas, Tudo em mai\('usculas, Primeira letra mai\('uscula ou Todas as primeiras letras mai\('usculas\&. Para usar uma convers\(~ao com suporte regional entre mai\('usculas e min\('usculas, poder\('a seleccionar uma regi\(~ao na lista abaixo\&. A lista de substitui\(,c\(~oes de textos poder\('a ser configuradas com associa\(,c\(~oes de texto arbitr\('arias\&. Para adicionar uma nova associa\(,c\(~ao, seleccione a c\('elula De de uma linha e introduza o texto a substituir, indo depois \(`a coluna Para e indicando o texto de substitui\(,c\(~ao\&. Quando o texto a substituir come\(,car por uma barra ("/"), \('e usada uma express\(~ao regular\&. Para as express\(~oes regulares que tiverem grupos de captura, as ocorr\(^encias de \e1, \e2, \&.\&.\&. no campo Para s\(~ao substitu\('idas pelo texto capturado no grupo de captura correspondente\&. Para remover uma associa\(,c\(~ao, configure a c\('elula de como um valor vazio (p\&.ex\&. escrevendo um espa\(,co e depois apagando\-o)\&. A inser\(,c\(~ao e remo\(,c\(~ao de linhas tamb\('em \('e poss\('ivel com o menu de contexto que aparece quando carregar no bot\(~ao direito do rato\&. A substitui\(,c\(~ao s\('o fica activa se a op\(,c\(~ao de marca\(,c\(~ao Substitui\(,c\(~ao de texto estiver assinalada\&. .sp A tabela na Classifica\(,c\(~ao cont\('em a associa\(,c\(~ao das classifica\(,c\(~oes com estrelas aos valores efectivos que s\(~ao guardados na marca\&. Os pacotes com informa\(,c\(~ao de classifica\(,c\(~ao aparecem na linha Classifica\(,c\(~ao da lista de pacotes\&. Para esses pacotes, a classifica\(,c\(~ao poder\('a ser definida se indicar um n\('umero de estrelas at\('e cinco\&. Os diferentes formatos de marcas e diferentes aplica\(,c\(~oes usam diferentes valores para associar a classifica\(,c\(~ao por estrelas ao valor guardado na marca\&. Para mostrar o n\('umero correcto de estrelas, o Kid3 ir\('a procurar por um mapa nesta tabela\&. A chave para procurar nesse mapa \('e o nome do pacote, como por exemplo "RATING" se for usado nos coment\('arios do Vorbis ou "IRTD" para o INFO do RIFF\&. Para as marcas de ID3v2, \('e usada uma chave composta que consiste no ID do pacote "POPM" da Medica\(,c\(~ao 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\(,c\(~ao 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\(~ao existir v\('arios itens para o "POPM", a sua ordem \('e importante\&. Quando o Kid3 adiciona um novo pacote de Medi\(,c\(~ao de Popularidade, ir\('a usar o primeiro item "POPM" para determinar o valor a ser gravado no campo "E\-mail"\&. Este valor ir\('a ent\(~ao definir a associa\(,c\(~ao a usar para as classifica\(,c\(~oes por estrelas\&. \('E usado o primeiro item tamb\('em se n\(~ao for encontradas nenhuma chave, sendo assim o item predefinido\&. .sp Para al\('em da coluna Nome que cont\('em as chaves, a tabela tem colunas da 1 at\('e \(`a 5 para os valores a guardar quando \('e atribu\('ido o n\('umero correspondente de estrelas\&. De igual forma, os valores determinam o n\('umero de estrelas que s\(~ao apresentadas para o valor guardado no pacote\&. Por exemplo, a linha na tabela abaixo cont\('em os valores 1, 64, 128, 196, 255\&. Os limites para apresentar os n\('umeros de estrelas situam\-se entre estes valores e s\(~ao compat\('iveis com que o Windows\(rg Explorer usa\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .B Tabela 1. Elemento na Tabela de Classifica\(,c\(~ao .TS allbox tab(:); lB lB lB lB lB lB. T{ Nome T}:T{ 1 T}:T{ 2 T}:T{ 3 T}:T{ 4 T}:T{ 5 T} .T& l l l l l l l l l l l l. T{ POPM T}:T{ 1 T}:T{ 64 T}:T{ 128 T}:T{ 196 T}:T{ 255 T} T{ Intervalo T}:T{ 1\-31 T}:T{ 32\-95 T}:T{ 96\-159 T}:T{ 160\-223 T}:T{ 224\-255 T} .TE .sp 1 Na p\('agina Ficheiros, a op\(,c\(~ao Carregar os \('ultimos ficheiros abertos poder\('a ser assinalada para que o Kid3 abra e seleccione o \('ultimo ficheiro seleccionado quando for iniciado da pr\('oxima vez\&. A op\(,c\(~ao Preservar a data do ficheiro pode ser assinalada para preservar a data de modifica\(,c\(~ao do ficheiro\&. O Nome do ficheiro da capa define o nome que \('e sugerido quando uma imagem incorporada for exportada para um ficheiro\&. Com a op\(,c\(~ao Codifica\(,c\(~ao de texto (Exportar, Lista de Reprodu\(,c\(~ao), poder\('a definir a codifica\(,c\(~ao usada para gravar os ficheiros\&. O valor predefinido Sistema poder\('a ser alterado por exemplo se as listas de reprodu\(,c\(~ao tiverem de ser usadas num dispositivo diferente\&. .sp Se a op\(,c\(~ao Marcar as modifica\(,c\(~oes estiver activa, os campos alterados est\(~ao marcados com um fundo da legenda em cinzento claro\&. .sp A sec\(,c\(~ao Lista de Ficheiros define quais os ficheiros que aparecem na lista de ficheiros\&. Poder\('a usar um Filtro para restringir os itens nesta lista para os ficheiros com as extens\(~oes suportadas\&. Para indicar de forma expl\('icita quais as pastas a apresentar na lista de ficheiros ou para excluir certas pastas, poder\('a usar as op\(,c\(~oes Incluir as pastas e Excluir as pastas\&. Poder\(~ao cont\('em caracteres especiais, como por exemplo */M\('usica/* para incluir apenas a pasta M\('usica ou */iTunes/* para excluir a pasta do iTunes da lista de ficheiros\&. Se tiver de usar v\('arias express\(~oes deste tipo, as mesmas poder\(~ao ser separadas por espa\(,cos ou pontos\-e\-v\('irgulas\&. .sp Os bot\(~oes Nome do ficheiro a partir da marca e Marca a partir do nome do ficheiro na sec\(,c\(~ao Formato abrem janelas para editar os formatos que ficam dispon\('iveis na lista Formato (com setas para cima e para baixo), as quais poder\(~ao ser encontradas na sec\(,c\(~ao Ficheiro da janela principal\&. .sp O bot\(~ao da Lista de Reprodu\(,c\(~ao pode ser usado para editar os formatos de nomes dos ficheiros dispon\('iveis na janela para Criar uma Lista de Reprodu\(,c\(~ao\&. .sp O Formato dos Nomes de Ficheiros cont\('em op\(,c\(~oes para o formato dos nomes dos ficheiros\&. Est\(~ao dispon\('iveis as mesmas op\(,c\(~oes que no Formato das Marcas\&. .sp Adicionalmente, poder\('a definir o Tamanho m\('aximo para os nomes dos ficheiros\&. A maioria dos sistemas de ficheiros modernos t\(^em um limite de 255 caracteres, mas se quiser gravar os ficheiros em CD\*(Aqs, dever\('a configurar o limite como 64\&. Se assinalar a op\(,c\(~ao Usar para os nomes das listas de reprodu\(,c\(~ao e pastas, o formato do nome do ficheiro tamb\('em \('e usado na cria\(,c\(~ao das listas de reprodu\(,c\(~ao e ao mudar os nomes das pastas\&. .sp A p\('agina de Ac\(,c\(~oes do Utilizador cont\('em uma tabela com os comandos que est\(~ao dispon\('iveis no menu de contexto da lista de ficheiros\&. Para as opera\(,c\(~oes cr\('iticas, como a remo\(,c\(~ao de ficheiros, aconselha\-se que marque o Confirmar para apresentar uma janela de confirma\(,c\(~ao antes de executar o comando\&. O Resultado pode ficar marcado para ver o resultado escrito pelos comandos da consola (no \*(Aqstandard output\*(Aq e \*(Aqstandard error\*(Aq)\&. O Nome \('e o nome apresentado no menu de contexto\&. O Comando \('e a linha de comandos a executar\&. Os argumentos podem ser passados com os seguintes c\('odigos: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %F %{files} Localiza\(,c\(~oes dos ficheiros (uma lista se estiverem v\('arios ficheiros seleccionados) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %f %{file} Localiza\(,c\(~ao de um \('unico ficheiro individual .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %uF %{urls} URLs (uma lista se estiverem v\('arios ficheiros seleccionados) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %uf %{url} URL de um \('unico ficheiro individual .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %d %{directory} Pasta .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %s %{title} T\('itulo (M\('usica) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %a %{artist} Artista .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %l %{album} \('Album .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %c %{comment} Coment\('ario .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %y %{year} Ano .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %t %{track} Faixa (p\&.ex\&. 01) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %t %{track\&.n} Faixa com o tamanho do campo \*(Aqn\*(Aq (p\&.ex\&. 001 para %{track\&.3}) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %T %{tracknumber} Faixa (sem os zeros iniciais, p\&.ex\&. 1) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %g %{genre} G\('enero .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %b %{browser} Comando para iniciar o navegador Web .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} %q %{qmlpath} Pasta de base dos ficheiros QML fornecidos .RE .sp O c\('odigo especial \fB@separator\fR pode ser configurado como um comando para inserir um separador no menu de contexto das ac\(,c\(~oes do utilizador\&. Poder\('a colocar os itens de menu num submenu se os rodear com comandos \fB@beginmenu\fR e \fB@endmenu\fR\&. O nome do submenu \('e determinado pela coluna Nome do comando \fB@beginmenu\fR\&. .sp Para executar os programas em QML, o \fB@qml\fR \('e usado como um nome de comando\&. A localiza\(,c\(~ao do programa em QML \('e passada como um par\(^ametro\&. Os programas existentes poder\(~ao ser encontrados na pasta %{qmlpath}/script/ (no Linux\(rg \('e tipicamente a /usr/share/kid3/qml/script/, no Windows a qml/script/ dentro da pasta de instala\(,c\(~ao e no macOS\(rg na pasta da aplica\(,c\(~ao kid3\&.app/Contents/Resources/qml/script/)\&. Poder\('a guardar os programas personalizados em qualquer pasta\&. Se o c\('odigo QML usar componentes GUI, o \fB@qmlview\fR dever\('a ser usado em vez do \fB@qml\fR\&. Os par\(^ametros adicionais s\(~ao passados ao programa em QML, onde ficar\(~ao dispon\('iveis atrav\('es da fun\(,c\(~ao \fBgetArguments()\fR\&. Poder\('a ter uma vis\(~ao geral de algumas fun\(,c\(~oes e propriedades que est\(~ao dispon\('iveis no ap\(^endice da Interface de QML\&. .sp O comando que ser\('a 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\(,c\(~oes acerca dos ficheiros de \('audio na Web; por exemplo .sp .if n \{\ .RS 4 .\} .nf \fB%{browser} http://lyricwiki\&.org/%u{artist}:%u{title}\fR .fi .if n \{\ .RE .\} .sp ir\('a pesquisar pelas letras da m\('usica actual no \m[blue]\fBLyricWiki\fR\m[]\&\s-2\u[12]\d\s+2\&. O "u" em %u{artist} e %u{title} \('e usado para codificar como URL os dados do artista %{artist} e da m\('usica %{title}\&. \('E f\('acil definir as suas pr\('oprias pesquisas da mesma forma, p\&.ex\&. uma pesquisa por imagens no \m[blue]\fBGoogle\fR\m[]\&\s-2\u[13]\d\s+2: .sp .if n \{\ .RS 4 .\} .nf \fB%{browser} http://images\&.google\&.com/images?q=%u{artist}%20%u{album}\fR .fi .if n \{\ .RE .\} .sp Para adicionar as imagens das capas dos \('albuns \(`a marca 2, poder\('a procurar por imagens no Google ou na Amazon com os comandos descritos acima\&. A imagem poder\('a ser adicionada \(`a marca por arrastamento\&. Tamb\('em poder\('a adicionar uma imagem com o bot\(~ao Adicionar, seleccionando depois o pacote da Imagem e importar um ficheiro de imagem ou col\('a\-lo a partir da \('area de transfer\(^encia\&. Os pacotes de imagens s\(~ao suportados nas marcas de ID3v2, MP4, FLAC, Ogg e ASF\&. .sp Para adicionar e remover itens da tabela, poder\('a usar um menu de contexto\&. .sp A p\('agina Rede cont\('em apenas um campo para inserir o endere\(,co do \*(Aqproxy\*(Aq e, opcionalmente, o porto separados por dois\-pontos\&. O \*(Aqproxy\*(Aq ser\('a usado ao importar os dados a partir de um servidor na Internet quando a op\(,c\(~ao estiver assinalada\&. .sp Na p\('agina de Plugins, poder\('a activar ou desactivar os \*(Aqplugins\*(Aq dispon\('iveis\&. Os mesmos est\(~ao separados em duas sec\(,c\(~oes\&. A lista \*(AqPlugins\*(Aq de Meta\-Dados & Prioridade cont\('em os \*(Aqplugins\*(Aq que suportam os formatos de ficheiros de \('audio\&. A ordem dos \*(Aqplugins\*(Aq \('e importante porque s\(~ao avaliados de cima para baixo\&. Alguns dos formatos s\(~ao suportados por v\('arios \*(Aqplugins\*(Aq, pelo que os ficheiros ser\(~ao abertos com o primeiro \*(Aqplugin\*(Aq com suporte para os mesmos\&. O TaglibMetadata tem suporte para a maioria dos formatos, sendo que ir\('a abrir a maior parte dos ficheiros, caso esteja no topo da lista\&. Se quiser usar um \*(Aqplugin\*(Aq diferente para um formato de ficheiros, certifique\-se que aparece antes do \*(Aqplugin\*(Aq TaglibMetadata\&. Os detalhes sobre os \*(Aqplugins\*(Aq de meta\-dados, bem como o motivo pelo qual os poder\('a querer usar em vez da TagLib, est\(~ao enumerados em baixo\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Id3libMetadata: Usa o \m[blue]\fBid3lib\fR\m[]\&\s-2\u[14]\d\s+2 para as marcas ID3v1\&.1 e ID3v2\&.3 nos ficheiros MP3, MP2, AAC\&. Suporta mais alguns tipos de pacotes que a TagLib\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} OggFlacMetadata: Usa a \m[blue]\fBlibogg\fR\m[]\&\s-2\u[15]\d\s+2, a \m[blue]\fBlibvorbis, libvorbisfile\fR\m[]\&\s-2\u[16]\d\s+2 para os ficheiros Ogg e adicionalmente a \m[blue]\fBlibFLAC++ e a libFLAC\fR\m[]\&\s-2\u[17]\d\s+2 para os ficheiros FLAC\&. Estas s\(~ao as bibliotecas oficiais para estes formatos\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} TaglibMetadata: Usa a \m[blue]\fBTagLib\fR\m[]\&\s-2\u[18]\d\s+2 que suporta um conjunto de formatos de ficheiros de \('audio\&. Pode ser usado para todos os ficheiros de \('audio suportados pelo Kid3\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Mp4v2Metadata: o \m[blue]\fBmp4v2\fR\m[]\&\s-2\u[19]\d\s+2 foi usado originalmente pelo Kid3 para suportar os ficheiros M4A\&. Pode ser usado em caso de problemas com o suporte de M4A na TagLib\&. .RE .sp A sec\(,c\(~ao de \*(AqPlugins\*(Aq Dispon\('iveis apresenta os restantes \*(Aqplugins\*(Aq\&. A sua ordem n\(~ao \('e relevante, mas poder\(~ao ser activados ou desactivados com as op\(,c\(~oes de marca\(,c\(~ao\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} AmazonImport: Usado na fun\(,c\(~ao Importar da Amazon\&.\&.\&.\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} DiscogsImport: Usado na fun\(,c\(~ao Importar da Discogs\&.\&.\&.\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} FreedbImport: Usado na fun\(,c\(~ao Importar da gnudb\&.org\&.\&.\&.\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} MusicBrainzImport: Usado na fun\(,c\(~ao Importar da Vers\(~ao do MusicBrainz\&.\&.\&.\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} AcoustidImport: Usado para a fun\(,c\(~ao Importar da Impress\(~ao Digital do MusicBrainz\&.\&.\&.\&. que depende das bibliotecas \m[blue]\fBChromaprint\fR\m[]\&\s-2\u[20]\d\s+2 e \m[blue]\fBlibav\fR\m[]\&\s-2\u[21]\d\s+2\&. .RE .sp Os \*(Aqplugins\*(Aq que estiverem desactivados n\(~ao ser\(~ao carregados\&. Isto poder\('a ser usado para optimizar a utiliza\(,c\(~ao dos recursos e o tempo de arranque\&. A configura\(,c\(~ao nesta p\('agina s\('o far\('a efeito ap\('os reiniciar o Kid3\&. .RE .SS "O Menu Ajuda" .PP .PP Ajuda → Manual do Kid3 .RS 4 Abre este manual\&. .RE .PP Ajuda → Acerca do Kid3 .RS 4 Mostra uma breve informa\(,c\(~ao sobre o Kid3\&. .RE .SH "KID3\-CLI" .SS "Comandos" .PP O \fBkid3\-cli\fR oferece uma interface de linha de comandos para o Kid3\&. Se for usada a localiza\(,c\(~ao de uma pasta, a mesma ser\('a aberta\&. Se forem indicadas as localiza\(,c\(~oes de um ou mais ficheiros, ser\('a aberta a pasta comum com os ficheiros seleccionados\&. Os comandos subsequentes ir\(~ao ent\(~ao funcionar sobre esses ficheiros\&. Os comandos s\(~ao indicados atrav\('es das op\(,c\(~oes \fB\-c\fR\&. Se forem passados v\('arios comandos, os mesmos ser\(~ao executados pela ordem indicada\&. Se os ficheiros forem modificados pelos comandos, eles ser\(~ao gravados no fim\&. Se n\(~ao forem passadas op\(,c\(~oes de comandos, o \fBkid3\-cli\fR inicia no modo interactivo\&. Os comandos poder\(~ao ent\(~ao ser introduzidos e ir\(~ao funcionar sobre a selec\(,c\(~ao actual\&. As seguintes sec\(,c\(~oes apresentam todos os comandos dispon\('iveis\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBAjuda\fR .RS 4 .HP \w'\fBhelp\fR\ 'u \fBhelp\fR [\fINOME\-COMANDO\fR] .PP Mostra ajuda sobre os par\(^ametros do \fINOME\-COMANDO\fR ou sobre todos os comandos, caso n\(~ao seja indicado nenhum nome de comando\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBTempo-limite\fR .RS 4 .HP \w'\fBtimeout\fR\ 'u \fBtimeout\fR [default | off | \fITEMPO\fR] .PP Substitui o tempo\-limite predefinido dos comandos\&. Os comandos da CLI s\(~ao interrompidos ap\('os ser ultrapassado um dado tempo\-limite para os comandos\&. Este tempo\-limite \('e de 10 segundos para o \fBls\fR e o \fBalbumart\fR, de 60 segundos para o \fBautoimport\fR e \fBfilter\fR e de 3 segundos para todos os outros comandos\&. Se tiver de processar um n\('umero enorme de ficheiros, estes tempos\-limites podem ser demasiado restritos; como tal, poder\('a definir o tempo\-limite para todos os comandos como sendo \fITEMPO\fR ms, desligado por completo ou deixar com os valores predefinidos\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBSair da aplica\(,c\(~ao\fR .RS 4 .HP \w'\fBexit\fR\ 'u \fBexit\fR [force] .PP Sai da aplica\(,c\(~ao\&. Se existirem ficheiros por gravar modificados, o par\(^ametro \fIforce\fR \('e obrigat\('orio\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBMudar de pasta\fR .RS 4 .HP \w'\fBcd\fR\ 'u \fBcd\fR [\fIPASTA\fR] .PP Se n\(~ao for indicada nenhuma \fIPASTA\fR, muda para a pasta pessoal\&. Se for indicada uma pasta, muda para dentro dessa pasta\&. Se forem indicadas uma ou mais localiza\(,c\(~oes de ficheiros, muda para a pasta comum entre elas e selecciona os ficheiros\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBImprime o nome da pasta actual\fR .RS 4 .HP \w'\fBpwd\fR\ 'u \fBpwd\fR .PP Imprime o nome da pasta de trabalho actual\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBLista de pastas\fR .RS 4 .HP \w'\fBls\fR\ 'u \fBls\fR .PP Apresenta o conte\('udo da pasta actual\&. Isto corresponde \(`a lista de ficheiros na GUI do Kid3\&. Cinco caracteres antes dos nomes dos ficheiros mostram o estado do ficheiro\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} > O ficheiro est\('a seleccionado\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} * O ficheiro est\('a modificado\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} 1 O ficheiro tem uma marca 1, caso contr\('ario aparece \*(Aq\-\*(Aq\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} 2 O ficheiro tem uma marca 2, caso contr\('ario aparece \*(Aq\-\*(Aq\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} 3 O ficheiro tem uma marca 3, caso contr\('ario aparece \*(Aq\-\*(Aq\&. .RE .sp .if n \{\ .RS 4 .\} .nf kid3\-cli> \fBls\fR 1\-\- 01 Intro\&.mp3 > 12\- 02 So Temos Este\&.mp3 *1\-\- 03 Final\&.mp3 .fi .if n \{\ .RE .\} .PP Neste exemplo, todos os ficheiros t\(^em uma marca 1, enquanto o segundo ficheiro tamb\('em tem uma marca 2 e a mesma est\('a seleccionada\&. O terceiro ficheiro est\('a modificado\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBGravar os ficheiros alterados\fR .RS 4 .HP \w'\fBsave\fR\ 'u \fBsave\fR .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBSeleccionar o ficheiro\fR .RS 4 .HP \w'\fBselect\fR\ 'u \fBselect\fR [all | none | first | previous | next | \fIFICHEIRO\fR...] .PP Para seleccionar todos os ficheiros, introduza \fBselect all\fR; para deseleccionar todos os ficheiros, indique \fBselect none\fR\&. Para percorrer os ficheiros na pasta actual, comece com o \fBselect first\fR e v\('a avan\(,cando com o \fBselect next\fR ou recuando com o \fBselect previous\fR\&. Poder\('a adicionar ficheiros espec\('ificos \(`a selec\(,c\(~ao actual, indicando para tal os seus nomes\&. S\(~ao permitidas sequ\(^encias especiais; como tal, o \fBselect *\&.mp3\fR ir\('a seleccionar todos os ficheiros MP3 na pasta actual\&. .sp .if n \{\ .RS 4 .\} .nf kid3\-cli> \fBselect first\fR kid3\-cli> \fBls\fR > 1\-\- 01 Intro\&.mp3 12\- 02 So Temos Este\&.mp3 *1\-\- 03 Final\&.mp3 kid3\-cli> \fBselect next\fR kid3\-cli> \fBls\fR 1\-\- 01 Intro\&.mp3 > 12\- 02 So Temos Este\&.mp3 *1\-\- 03 Final\&.mp3 kid3\-cli> \fBselect *\&.mp3\fR kid3\-cli> \fBls\fR > 1\-\- 01 Intro\&.mp3 > 12\- 02 So Temos Este\&.mp3 >*1\-\- 03 Final\&.mp3 .fi .if n \{\ .RE .\} .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBSeleccionar a marca\fR .RS 4 .HP \w'\fBtag\fR\ 'u \fBtag\fR [\fIN\('UMEROS\-MARCAS\fR] .PP Muitos dos comandos t\(^em um par\(^ametro opcional \fIN\('UMEROS\-MARCAS\fR, que define se o comando funciona na marca 1, 2 ou 3\&. Se este par\(^ametro for omitido, ser\(~ao usados os n\('umeros de marcas predefinidos, os quais poder\(~ao ser definidos por este comando\&. No arranque est\('a configurado como 12, o que significa que a informa\(,c\(~ao \('e lida da marca 2, se dispon\('ivel, caso contr\('ario da marca 1; as modifica\(,c\(~oes s\(~ao efectuadas na marca 2\&. O par\(^ametro \fB\fIN\('UMEROS\-MARCAS\fR\fR poder\('a ser configurado como \fB1\fR, \fB2\fR ou \fB3\fR para funcionar apenas na marca correspondente\&. Se o par\(^ametro for omitido, \('e apresentado o valor actual\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBObter os dados da marca\fR .RS 4 .HP \w'\fBget\fR\ 'u \fBget\fR [all | \fINOME\-PACOTE\fR] [\fIN\('UMEROS\-MARCAS\fR] .PP Este comando pode ser usado para ler o valor de um dado pacote de marcas ou para obter informa\(,c\(~oes sobre todos os pacotes de marcas (se o argumento for omitido ou for usado o \fBall\fR)\&. Os pacotes modificados est\(~ao marcados com um \*(Aq*\*(Aq\&. .sp .if n \{\ .RS 4 .\} .nf kid3\-cli> \fBget\fR Ficheiro: MPEG 1 Layer 3 192 kbps 44100 Hz Joint Stereo Name: 01 Intro\&.mp3 Marca 1: ID3v1\&.1 T\('itulo Intro Artista Famoso Desconhecido \('Album Vamos Marcar Date 2013 Track Number 1 Genre Pop kid3\-cli> \fBget title\fR Intro .fi .if n \{\ .RE .\} .PP Para gravar o conte\('udo de uma marca de imagem para um ficheiro, use .sp .if n \{\ .RS 4 .\} .nf \fBget picture:\*(Aq/local/da/pasta\&.jpg\*(Aq\fR .fi .if n \{\ .RE .\} .PP Para gravar as letras sincronizadas para um ficheiro LRC, use .sp .if n \{\ .RS 4 .\} .nf \fBget SYLT:\*(Aq/local/das/letras\&.lrc\*(Aq\fR .fi .if n \{\ .RE .\} .PP \('E poss\('ivel obter apenas um campo espec\('ifico de um pacote, como por exemplo \fBget POPM\&.Email\fR para o campo de E\-Mail de um pacote de Medi\(,c\(~ao de Popularidade\&. Se um ficheiro tiver v\('arios pacotes do mesmo tipo, poder\('a indexar os diferentes pacotes com par\(^entesis rectos; por exemplo, o primeiro artista de um coment\('ario de Vorbis poder\('a ser obtido com a express\(~ao \fBget performer[0]\fR e o segundo com \fBget performer[1]\fR\&. .PP O pseudo\-nome de campo "selected" pode ser usado para verificar se um dado pacote est\('a seleccionado, por exemplo \fBget artist\&.selected\fR ir\('a devolver 1 se o pacote do artista estiver seleccionado, caso contr\('ario devolve 0\&. .PP 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\('umero de estrelas (0 a 5)\&. Ao usar o "rating", \('e devolvido o valor interno\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBModificar os dados da marca\fR .RS 4 .HP \w'\fBset\fR\ 'u \fBset\fR {\fINOME\-PACOTE\fR} {\fIVALOR\-PACOTE\fR} [\fIN\('UMEROS\-MARCAS\fR] .PP Este comando configura o valor de um dado pacote de marca em espec\('ifico\&. Se o \fIVALOR\-PACOTE\fR estiver vazio, o pacote \('e apagado\&. .sp .if n \{\ .RS 4 .\} .nf kid3\-cli> \fBset remixer \*(AqFam\&. Desconhecido\*(Aq\fR .fi .if n \{\ .RE .\} .PP Para configurar o conte\('udo de um pacote de imagem a partir de um ficheiro, use .sp .if n \{\ .RS 4 .\} .nf \fBset picture:\*(Aq/local/da/pasta\&.jpg\*(Aq \*(AqDescri\(,c\(~ao da Imagem\*(Aq\fR .fi .if n \{\ .RE .\} .PP Para configurar as letras sincronizadas a partir de um ficheiro LRC, use .sp .if n \{\ .RS 4 .\} .nf \fBset SYLT:\*(Aq/local/das/letras\&.lrc\*(Aq \*(AqDescri\(,c\(~ao das Letras\*(Aq\fR .fi .if n \{\ .RE .\} .PP Para configurar um dado campo espec\('ifico 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\(,c\(~ao de Popularidade, use .sp .if n \{\ .RS 4 .\} .nf \fBset POPM\&.Counter 5\fR .fi .if n \{\ .RE .\} .PP Uma aplica\(,c\(~ao para as defini\(,c\(~oes dos campos \('e o caso em que deseja usar um pacote TXXX personalizado com a descri\(,c\(~ao da "classifica\(,c\(~ao" em vez de um pacote de Medi\(,c\(~ao de Popularidade (isso parece ser o caso usado por alguns \*(Aqplugins\*(Aq)\&. Poder\('a criar um desses pacotes de classifica\(,c\(~ao TXXX com o \fBkid3\-cli\fR; contudo, ter\('a primeiro de criar um pacote TXXX com a descri\(,c\(~ao "rating" e depois configurar o valor deste pacote com o valor da classifica\(,c\(~ao\&. .sp .if n \{\ .RS 4 .\} .nf kid3\-cli> \fBset rating ""\fR kid3\-cli> \fBset TXXX\&.Description rating\fR kid3\-cli> \fBset rating 5\fR .fi .if n \{\ .RE .\} .sp O primeiro comando ir\('a apagar um pacote POPM existente, porque se existir um desses pacotes o \fBset rating 5\fR iria configurar o pacote POPM e n\(~ao o pacote TXXX\&. Outra possibilidade seria usar o \fBset TXXX\&.Text 5\fR, mas s\('o iria funcionar se n\(~ao estivesse presente nenhum outro pacote TXXX\&. .PP Para configurar v\('arios pacotes do mesmo tipo, poder\('a indicar um \('indice entre par\(^entesis, p\&.ex\&. para definir v\('arios artistas num coment\('ario de Vorbis, use .sp .if n \{\ .RS 4 .\} .nf kid3\-cli> \fBset performer[0] \*(AqLiza don Getti (soprano)\*(Aq\fR kid3\-cli> \fBset performer[1] \*(AqJoe Barr (piano)\*(Aq\fR .fi .if n \{\ .RE .\} .PP Para seleccionar certos pacotes antes de uma opera\(,c\(~ao para copiar, colar ou remover, o nome do pseudo\-campo "selected" pode ser usado\&. Normalmente, todos os pacotes est\(~ao seleccionados; para deseleccionar tudo, use o comando \fBset \*(Aq*\&.selected\*(Aq 0\fR e depois por exemplo \fBset artist\&.selected 1\fR para seleccionar o pacote do artista\&. .PP 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\('umero de estrelas (0 a 5)\&. O nome do pacote "rating" pode ser usado para definir o valor interno\&. .PP Se definir o "ratingstars" em v\('arios ficheiros que tenham diferentes formatos de marcas, isso n\(~ao ir\('a funcionar, porque o pacote com o valor associado ao n\('umero de estrelas \('e criado para o primeiro ficheiro e depois \('e usado em todos os ficheiros\&. Por isso, em vez de usar \fBkid3\-cli \-c "set ratingstars 2" *\fR, deveria usar \fBfor f in *; do kid3\-cli \-c "set ratingstars 2" "$f"; done\fR\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBReverter\fR .RS 4 .HP \w'\fBrevert\fR\ 'u \fBrevert\fR .PP Reverte todas as modifica\(,c\(~oes nos ficheiros seleccionados (ou todos os ficheiros se n\(~ao estiver nenhum seleccionado)\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBImportar de ficheiro\fR .RS 4 .HP \w'\fBimport\fR\ 'u \fBimport\fR {\fIFICHEIRO\fR} {\fINOME\-FORMATO\fR} [\fIN\('UMEROS\-MARCAS\fR] .PP As marcas s\(~ao importadas a partir do ficheiro \fIFICHEIRO\fR no formato com o nome \fINOME\-FORMATO\fR (p\&.ex\&. \fB"CSV sem aspas"\fR, veja como Importar)\&. .PP Se for usado o \fBtags\fR para o \fIFICHEIRO\fR, as marcas s\(~ao importadas a partir das outras marcas\&. Em vez dos par\(^ametros \fINOME\-FORMATO\fR, s\(~ao obrigat\('orios a \fIORIGEM\fR e a \fIEXTRAC\(,C\(~AO\fR; veja mais em Importar a Partir das Marcas\&. Para aplicar a importa\(,c\(~ao a partir das marcas nos ficheiros seleccionados, use o \fBtagsel\fR em vez do \fBtags\fR\&. Esta fun\(,c\(~ao tamb\('em suporta o resultado do valor extra\('ido, usando uma \fIEXTRAC\(,C\(~AO\fR com o valor \fB%{__return}(\&.+)\fR\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBImporta\(,c\(~ao autom\('atica\fR .RS 4 .HP \w'\fBautoimport\fR\ 'u \fBautoimport\fR [\fINOME\-PERFIL\fR] [\fIN\('UMEROS\-MARCAS\fR] .PP Faz uma importa\(,c\(~ao em lote, usando para tal o perfil \fINOME\-PERFIL\fR (veja a Importa\(,c\(~ao Autom\('atica, \fB"Tudo"\fR \('e usado por omiss\(~ao)\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBObter as imagens da capa do \('album\fR .RS 4 .HP \w'\fBalbumart\fR\ 'u \fBalbumart\fR {\fIURL\fR} [all] .PP Configura as imagens do \('album, transferindo uma imagem a partir do \fIURL\fR\&. As regras definidas na janela para Escolher as Imagens das Capas s\(~ao usadas para transformar os URL\*(Aqs gerais (p\&.ex\&. da Amazon) num URL de imagem\&. Para configurar a capa do \('album para um ficheiro de imagem local, use o comando set\&. .sp .if n \{\ .RS 4 .\} .nf kid3\-cli> \fBalbumart http://www\&.amazon\&.com/Versus\-World\-Amon\-Amarth/dp/B000078DOC\fR .fi .if n \{\ .RE .\} .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBExportar para um ficheiro\fR .RS 4 .HP \w'\fBexport\fR\ 'u \fBexport\fR {\fIFICHEIRO\fR} {\fINOME\-FORMATO\fR} [\fIN\('UMEROS\-MARCAS\fR] .PP As marcas s\(~ao exportadas para o ficheiro \fIFICHEIRO\fR no formato com o nome \fINOME\-FORMATO\fR (p\&.ex\&. \fB"CSV sem aspas"\fR, ver como Exportar)\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBCriar a lista de reprodu\(,c\(~ao\fR .RS 4 .HP \w'\fBplaylist\fR\ 'u \fBplaylist\fR .PP Cria uma lista de reprodu\(,c\(~ao no formato definido na configura\(,c\(~ao; veja como Criar uma Lista de Reprodu\(,c\(~ao\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBAplicar o formato de nomes dos ficheiros\fR .RS 4 .HP \w'\fBfilenameformat\fR\ 'u \fBfilenameformat\fR .PP Aplica o formato de nomes de ficheiros definido na configura\(,c\(~ao; veja como Aplicar o Formato de Nomes de Ficheiros\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBAplicar o formato das marcas\fR .RS 4 .HP \w'\fBtagformat\fR\ 'u \fBtagformat\fR .PP Aplica o formato de marcas definido na configura\(,c\(~ao; veja como Aplicar o Formato de Marcas\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBAplicar a codifica\(,c\(~ao do texto\fR .RS 4 .HP \w'\fBtextencoding\fR\ 'u \fBtextencoding\fR .PP Aplica a codifica\(,c\(~ao de texto definida na configura\(,c\(~ao; veja como Aplicar a Codifica\(,c\(~ao do Texto\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBMudar o nome da pasta\fR .RS 4 .HP \w'\fBrenamedir\fR\ 'u \fBrenamedir\fR [\fIFORMATO\fR] [create | rename | dryrun] [\fIN\('UMEROS\-MARCAS\fR] .PP Muda o nome ou cria pastas a partir dos valores nas marcas, de acordo com um dado \fIFORMATO\fR (p\&.ex\&. \fB%{artist} \- %{album}\fR; veja mais em Mudar o Nome da Pasta); se n\(~ao for indicado nenhum formato, \('e usado o formato definido na janela para Mudar o nome da pasta\&. O modo predefinido \('e \fBrename\fR; para criar pastas, dever\('a ser indicado de forma expl\('icita o \fBcreate\fR\&. As ac\(,c\(~oes de mudan\(,ca de nome ser\(~ao efectuadas de imediato\&. Para ver o que ir\('a ser feito, use a op\(,c\(~ao \fBdryrun\fR\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBNumerar as faixas\fR .RS 4 .HP \w'\fBnumbertracks\fR\ 'u \fBnumbertracks\fR [\fIN\('UMERO\-FAIXA\fR] [\fIN\('UMEROS\-MARCAS\fR] .PP Numera as faixas seleccionadas a come\(,car em \fIN\('UMERO\-FAIXA\fR (1 por omiss\(~ao)\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBFiltro\fR .RS 4 .HP \w'\fBfilter\fR\ 'u \fBfilter\fR [\fINOME\-FILTRO\fR | \fIFORMATO\-FILTRO\fR] .PP Filtra os ficheiros de forma que apenas os ficheiros correspondentes ao \fIFORMATO\-FILTRO\fR fiquem vis\('iveis\&. O nome de uma express\(~ao de filtro predefinida (p\&.ex\&. \fB"Falta de Correspond\(^encia Entre Nomes de Ficheiros e Marcas"\fR) pode ser usado em vez de uma express\(~ao de filtro; veja o Filtro\&. .sp .if n \{\ .RS 4 .\} .nf kid3\-cli> \fBfilter \*(Aq%{title} contains "tro"\*(Aq\fR Iniciado /home/utilizador/Famoso Desconhecido \- Vamos Marcar + 01 Intro\&.mp3 \- 02 So Temos Este\&.mp3 + 03 Final\&.mp3 Terminado kid3\-cli> \fBls\fR 1\-\- 01 Intro\&.mp3 1\-\- 03 Final\&.mp3 kid3\-cli> \fBfilter All\fR Iniciado /home/utilizador/Famoso Desconhecido \- Vamos Marcar + 01 Intro\&.mp3 + 02 So Temos Este\&.mp3 + 03 Final\&.mp3 Terminado kid3\-cli> \fBls\fR 1\-\- 01 Intro\&.mp3 12\- 02 So Temos Este\&.mp3 1\-\- 03 Final\&.mp3 .fi .if n \{\ .RE .\} .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBConverter o ID3v2.3 para ID3v2.4\fR .RS 4 .HP \w'\fBto24\fR\ 'u \fBto24\fR .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBConverter o ID3v2.4 para ID3v2.3\fR .RS 4 .HP \w'\fBto23\fR\ 'u \fBto23\fR .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBNome do ficheiro a partir da marca\fR .RS 4 .HP \w'\fBfromtag\fR\ 'u \fBfromtag\fR [\fIFORMATO\fR] [\fIN\('UMEROS\-MARCAS\fR] .PP Configura os nomes dos ficheiros seleccionados a partir dos valores nas marcas; por exemplo \fBfromtag \*(Aq%{track} \- %{title}\*(Aq 1\fR\&. Se n\(~ao for indicado nenhum formato, ser\('a usado o formato definido na GUI\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBMarca a partir do nome do ficheiro\fR .RS 4 .HP \w'\fBtotag\fR\ 'u \fBtotag\fR [\fIFORMATO\fR] [\fIN\('UMEROS\-MARCAS\fR] .PP \('E 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\(~ao corresponder a este padr\(~ao definido na GUI, ser\(~ao testados alguns outros formatos usados de forma comum\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBMarca para outra marca\fR .RS 4 .HP \w'\fBsyncto\fR\ 'u \fBsyncto\fR {\fIN\('UMERO\-MARCA\fR} .PP 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 \fBsyncto 2\fR\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBCopiar\fR .RS 4 .HP \w'\fBcopy\fR\ 'u \fBcopy\fR [\fIN\('UMERO\-MARCA\fR] .PP Copia os pacotes de marcas do ficheiro seleccionado para a \('area de c\('opia interna\&. Eles poder\(~ao ser configurados noutro ficheiro, usando o comando \fBpaste\fR\&. .PP Para copiar apenas um sub\-conjunto dos pacotes, use o pseudo\-campo "selected" com o comando \fBset\fR\&. Por exemplo, para copiar apenas o n\('umero do disco e os direitos de c\('opia, use .sp .if n \{\ .RS 4 .\} .nf \fBset \*(Aq*\&.selected\*(Aq 0\fR \fBset discnumber\&.selected 1\fR \fBset copyright\&.selected 1\fR \fBcopy\fR .fi .if n \{\ .RE .\} .sp .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBColar\fR .RS 4 .HP \w'\fBpaste\fR\ 'u \fBpaste\fR [\fIN\('UMERO\-MARCA\fR] .PP Configura os pacotes de marcas a partir do conte\('udo da \('area do comando \fBcopy\fR sobre os ficheiros seleccionados\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBRemover\fR .RS 4 .HP \w'\fBremove\fR\ 'u \fBremove\fR [\fIN\('UMERO\-MARCA\fR] .PP Remove uma marca\&. .PP \('E poss\('ivel remover apenas um sub\-conjunto dos pacotes se os seleccionar como descrito no comando \fBcopy\fR\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBConfigurar o Kid3\fR .RS 4 .HP \w'\fBconfig\fR\ 'u \fBconfig\fR [\fIOP\(,C\(~AO\fR] [\fIVALOR\fR] .PP Consulta ou modifica uma op\(,c\(~ao de configura\(,c\(~ao\&. .PP Uma \fIOP\(,C\(~AO\fR consiste no nome de um grupo e de uma propriedade, separados por um ponto\&. Quando n\(~ao for indicada nenhuma \fIOP\(,C\(~AO\fR, aparecem todos os grupos dispon\('iveis\&. Para um dado grupo e propriedade, aparece o valor configurado de momento\&. Para mudar a configura\(,c\(~ao, o novo valor pode ser passado como segundo argumento\&. .PP Se o valor de uma dada op\(,c\(~ao for uma lista, todos os elementos da lista t\(^em de ser indicados como argumentos\&. Isto significa que, para adicionar um elemento a uma lista de elementos existente, todos os elementos existentes ter\(~ao de ser passados seguidos pelo novo elemento\&. Nessa situa\(,c\(~ao, \('e mais f\('acil usar o modo JSON, onde a lista actual poder\('a ser copiada com o novo elemento adicionado\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBExecutar um bin\('ario ou um programa em QML\fR .RS 4 .HP \w'\fBexecute\fR\ 'u \fBexecute\fR [@qml] {\fIFICHEIRO\fR} [\fIARGUMENTOS\fR] .PP Executa um programa em QML ou um execut\('avel\&. .PP Sem o \fB@qml\fR, \('e executado um programa bin\('ario com os argumentos\&. Quando o \fB@qml\fR \('e passado como primeiro argumento, os seguintes s\(~ao 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\&. .sp .if n \{\ .RS 4 .\} .nf \fBkid3\-cli \-c "execute @qml /usr/share/kid3/qml/script/ExportCsv\&.qml exportacao\&.csv" /localiza\(,c\(~ao/da/pasta/\fR .fi .if n \{\ .RE .\} .PP Aqui o \fBexportacao\&.csv\fR \('e o argumento do programa ExportarCsv\&.qml, onde a \fB/localiza\(,c\(~ao/da/pasta/\fR \('e o argumento \fB\fIFICHEIRO\fR\fR do \fBkid3\-cli\fR\&. .RE .SS "Exemplos" .PP Configura o t\('itulo contendo um ap\('ostrofo\&. Os comandos passados ao \fBkid3\-cli\fR com o \fI\-c\fR t\(^em de estar entre aspas se n\(~ao consistirem apenas numa \('unica palavra\&. Se um destes comandos tiver ele pr\('oprio um argumento com espa\(,cos, esse argumento tamb\('em ter\('a de estar entre aspas\&. Nas consolas de UNIX\(rg, poder\('a usar plicas ou aspas, mas na Linha de Comandos do Windows, \('e 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\('a de ser escapada com uma barra invertida, como \('e demonstrado no seguinte exemplo: .sp .if n \{\ .RS 4 .\} .nf \fBkid3\-cli \-c "set title \*(AqI\e\*(Aqll be there for you\*(Aq" /local/da/pasta\fR .fi .if n \{\ .RE .\} .PP Configure a capa do \('album de todos os ficheiros de uma pasta com a fun\(,c\(~ao de importa\(,c\(~ao em lote: .sp .if n \{\ .RS 4 .\} .nf \fBkid3\-cli \-c "autoimport \*(AqCover Art\*(Aq" /local/da/pasta\fR .fi .if n \{\ .RE .\} .PP Remover os pacotes de coment\('arios e aplicar o formato da marca em ambas as marcas de todos os ficheiros MP3 de uma pasta: .sp .if n \{\ .RS 4 .\} .nf \fBkid3\-cli \-c "set comment \*(Aq\*(Aq 1" \-c "set comment \*(Aq\*(Aq 2" \e \-c "tagformat 1" \-c "tagformat 2" /local/da/pasta/*\&.mp3\fR .fi .if n \{\ .RE .\} .PP 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\(,c\(~ao: .sp .if n \{\ .RS 4 .\} .nf \fBkid3\-cli \-c autoimport \-c "syncto 1" \-c fromtag \-c playlist \e /local/da/pasta/*\&.mp3\fR .fi .if n \{\ .RE .\} .PP Para todos os ficheiros com uma marca ID3v2\&.4\&.0, converte para ID3v2\&.3\&.0 e remove o pacote do maestro: .sp .if n \{\ .RS 4 .\} .nf \fBkid3\-cli \-c "filter \*(AqID3v2\&.4\&.0 Tag\*(Aq" \-c "select all" \-c to23 \e \-c "set arranger \*(Aq\*(Aq" /local/da/pasta\fR .fi .if n \{\ .RE .\} .PP Este programa em Python usa o \fBkid3\-cli\fR para gerar pacotes do iTunes Sound Check iTunNORM a partir dos dados de ganho da reprodu\(,c\(~ao\&. .sp .if n \{\ .RS 4 .\} .nf #!/usr/bin/env python3 # Gerar o iTunes Sound Check a partir do Ganho de Reprodu\(,c\(~ao\&. import os, sys, subprocess def rg2sc(dirpath): for raiz, pastas, ficheiros in os\&.walk(pasta): for nome in ficheiros: if nome\&.endswith((\*(Aq\&.mp3\*(Aq, \*(Aq\&.m4a\*(Aq, \*(Aq\&.aiff\*(Aq, \*(Aq\&.aif\*(Aq)): fn = os\&.path\&.join(raiz, nome) rg = subprocess\&.check_output([ \*(Aqkid3\-cli\*(Aq, \*(Aq\-c\*(Aq, \*(Aqget "replaygain_track_gain"\*(Aq, fn])\&.strip() if rg\&.endswith(b\*(Aq dB\*(Aq): rg = rg[:\-3] try: rg = float(rg) except ValueError: print(\*(AqO valor %s de %s n\(~ao \('e um n\('umero fraccion\('ario\*(Aq % (rg, fn)) continue sc = (\*(Aq \*(Aq + (\*(Aq%08X\*(Aq % int((10 ** (\-rg / 10)) * 1000) )) * 10 subprocess\&.call([ \*(Aqkid3\-cli\*(Aq, \*(Aq\-c\*(Aq, \*(Aqset iTunNORM "%s"\*(Aq % sc, fn]) if __name__ == \*(Aq__main__\*(Aq: rg2sc(sys\&.argv[1]) .fi .if n \{\ .RE .\} .SS "Formato JSON" .PP Para facilitar o processamento dos resultados do \fBkid3\-cli\fR, \('e poss\('ivel obter o resultado no formato JSON\&. Quando o pedido vier no formato JSON, a resposta ser\('a tamb\('em em JSON\&. Um formato compacto do pedido ir\('a tamb\('em dar uma representa\(,c\(~ao compacta da resposta\&. Se o pedido tiver um campo "id", assume\-se que \('e um pedido de JSON\-RPC e a resposta ir\('a 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\('em o comando e os par\(^ametros (se existirem) s\(~ao fornecidos na lista "params"\&. A resposta cont\('em um objecto "result", que tamb\('em poder\('a ser nulo se o comando \fBkid3\-cli\fR correspondente n\(~ao devolver um resultado\&. Em caso de erro, \('e devolvido um objecto "error" com os campos "code" e "message" usados da mesma forma que o JSON\-RPC\&. .sp .if n \{\ .RS 4 .\} .nf kid3\-cli> \fB{"method":"set","params":["artist","Um Artista"]}\fR {"result":null} kid3\-cli> \fB{"method":"get","params":["artist",2]}\fR {"result":"Um Artista"} kid3\-cli> \fB{"method": "get", "params": ["artist"]}\fR { "result": "Um Artista" } kid3\-cli> \fB{"jsonrpc":"2\&.0","id":"123","method":"get","params":["artist"]}\fR {"id":"123","jsonrpc":"2\&.0","result":"Um Artista"} .fi .if n \{\ .RE .\} .sp .SH "CR\('EDITOS E LICEN\(,CA" .PP Kid3 .PP Programa criado por Urs Fleisch .PP Tradu\(,c\(~ao de Jos\('e Nuno Pires .PP \m[blue]\fBFDL\fR\m[]\&\s-2\u[22]\d\s+2 .PP \m[blue]\fBGPL\fR\m[]\&\s-2\u[23]\d\s+2 .SH "INSTALA\(,C\(~AO" .SS "Como obter o Kid3" .PP Poder\('a encontrar o Kid3 em \m[blue]\fBhttps://kid3\&.kde\&.org\fR\m[]\&. .SS "Requisitos" .PP O Kid3 precisa do \m[blue]\fBQt(TM)\fR\m[]\&\s-2\u[24]\d\s+2\&. O \m[blue]\fBKDE\fR\m[]\&\s-2\u[25]\d\s+2 \('e recomendado, mas n\(~ao \('e necess\('ario, dado que o Kid3 tamb\('em pode ser compilado como uma aplica\(,c\(~ao do Qt(TM)\&. O Kid3 pode ser compilado nos sistemas onde essas bibliotecas est\(~ao dispon\('iveis, p\&.ex\&. para o GNU/Linux\(rg, Windows\(rg e macOS\(rg\&. Para marcar os ficheiros Ogg/Vorbis, s\(~ao necess\('arias as bibliotecas \m[blue]\fBlibogg\fR\m[]\&\s-2\u[15]\d\s+2, \m[blue]\fBlibvorbis e libvorbisfile\fR\m[]\&\s-2\u[16]\d\s+2, para os ficheiros FLAC, s\(~ao necess\('arias a \m[blue]\fBlibFLAC++ e a libFLAC\fR\m[]\&\s-2\u[17]\d\s+2\&. A \m[blue]\fBid3lib\fR\m[]\&\s-2\u[14]\d\s+2 \('e usada para os ficheiros MP3\&. Estes quatro formatos tamb\('em s\(~ao suportados pela \m[blue]\fBTagLib\fR\m[]\&\s-2\u[18]\d\s+2, que tamb\('em consegue lidar com ficheiros Opus, MPC, APE, MP2, Speex, TrueAudio, WavPack, WMA, WAV, AIFF e m\('odulos do Tracker\&. Para importar a partir de impress\(~oes\-digitais ac\('usticas, s\(~ao usados o \m[blue]\fBChromaprint\fR\m[]\&\s-2\u[20]\d\s+2 e a \m[blue]\fBlibav\fR\m[]\&\s-2\u[21]\d\s+2\&. .PP O Kid3 est\('a dispon\('ivel na maioria das distribui\(,c\(~oes de Linux\(rg, Windows\(rg e macOS\(rg\&. Poder\('a encontrar refer\(^encias para o mesmo em \m[blue]\fBhttps://kid3\&.kde\&.org\fR\m[]\&. .SS "Compila\(,c\(~ao e Instala\(,c\(~ao" .PP Poder\('a compilar o Kid3 com ou sem o KDE\&. Sem o KDE, o Kid3 \('e uma aplica\(,c\(~ao simples em Qt(TM) e poder\('a perder algumas funcionalidades de configura\(,c\(~ao e de sess\(~oes\&. .PP Para uma vers\(~ao para o KDE, v\('a \(`a pasta de topo e escreva .sp .if n \{\ .RS 4 .\} .nf % \fBcmake \&.\fR % \fBmake\fR % \fBmake install\fR .fi .if n \{\ .RE .\} .PP Para compilar para diferentes vers\(~oes do Qt(TM) ou do KDE, defina as seguintes op\(,c\(~oes correspondentes ao \fBcmake\fR\&. .PP Se nem todas as bibliotecas estiverem presentes, o Kid3 ser\('a compilado com funcionalidades reduzidas\&. Por isso, dever\('a ter o cuidado de ter todos os pacotes de desenvolvimento desejados instalados\&. Por outro lado, as op\(,c\(~oes do \fBcmake\fR controlam quais as bibliotecas que s\(~ao compiladas\&. Por omiss\(~ao, o valor \('e \fB\-DWITH_TAGLIB:BOOL=ON \-DWITH_MP4V2:BOOL=OFF \-DWITH_ID3LIB:BOOL=ON \-DWITH_CHROMAPRINT:BOOL=ON \-DWITH_VORBIS:BOOL=ON \-DWITH_FLAC:BOOL=ON \fR\&. Estas op\(,c\(~oes podem ser desactivas se usar o \fBOFF\fR\&. .PP Para compilar o Kid3 como uma aplica\(,c\(~ao do Qt(TM) sem o KDE, use a op\(,c\(~ao do \fBcmake\fR \fB\-DWITH_APPS=Qt\fR\&. Para compilar tanto a vers\(~ao para KDE como para Qt(TM), configure como \fB\-DWITH_APPS="Qt;KDE"\fR\&. .PP Para usar um a instala\(,c\(~ao espec\('ifica do Qt(TM), configure \fB\-DQT_QMAKE_EXECUTABLE=/local/do/qmake\fR\&. .PP A gera\(,c\(~ao de pacotes RPM \('e suportada pelo ficheiro kid3\&.spec; para os pacotes da Debian\(rg, o programa build\&.sh deb est\('a dispon\('ivel\&. .PP A aplica\(,c\(~ao do Qt(TM) tamb\('em pode ser compilada para o Windows\(rg e o macOS\(rg\&. O programa build\&.sh pode ser usado para obter e compilar todas as bibliotecas necess\('arias e criar um pacote do Kid3\&. .SS "Configura\(,c\(~ao" .PP Com o KDE, a configura\(,c\(~ao \('e gravada em \&.config/kid3rc e o estado da aplica\(,c\(~ao em \&.local/share/kid3/kid3staterc\&. Como uma aplica\(,c\(~ao do Qt(TM), este ficheiro encontra\-se em \&.config/Kid3/Kid3\&.conf\&. No Windows\(rg, a configura\(,c\(~ao \('e guardada no Registry e no macOS\(rg \('e guardada num ficheiro \*(Aqplist\*(Aq\&. .PP A vari\('avel de ambiente \fIKID3_CONFIG_FILE\fR pode ser usada para definir a localiza\(,c\(~ao do ficheiro de configura\(,c\(~ao\&. .SH "A INTERFACE DE D\-BUS" .SS "Exemplos de D\-Bus" .PP No Linux\(rg, poder\('a usar uma interface do D\-Bus para controlar o Kid3 atrav\('es de programas\&. Os programas poder\(~ao ser criados em qualquer linguagem que tenha interfaces para o D\-Bus (p\&.ex\&. em Python) e podem ser adicionadas \(`as Ac\(,c\(~oes do Utilizador para estender a funcionalidade do Kid3\&. .PP O artista na marca 2 do ficheiro actual poder\('a ser configurado com o valor "Famoso Desconhecido" com o seguinte c\('odigo: .PP Linha de comandos .RS 4 .sp .if n \{\ .RS 4 .\} .nf dbus\-send \-\-dest=org\&.kde\&.kid3 \-\-print\-reply=literal \e /Kid3 org\&.kde\&.Kid3\&.setFrame int32:2 string:\*(AqArtist\*(Aq \e string:\*(AqFamoso Desconhecido\*(Aq .fi .if n \{\ .RE .\} .sp ou ainda mais facilmente com o \fBqdbus\fR do Qt(TM) (o \fBqdbusviewer\fR pode ser usado para explorar a interface numa GUI): .sp .if n \{\ .RS 4 .\} .nf qdbus org\&.kde\&.kid3 /Kid3 setFrame 2 Artist \e \*(AqFamoso Desconhecido\*(Aq .fi .if n \{\ .RE .\} .RE .PP Python .RS 4 .sp .if n \{\ .RS 4 .\} .nf import dbus kid3 = dbus\&.SessionBus()\&.get_object( \*(Aqorg\&.kde\&.kid3\*(Aq, \*(Aq/Kid3\*(Aq) kid3\&.setFrame(2, \*(AqArtist\*(Aq, \*(AqFamoso Desconhecido\*(Aq) .fi .if n \{\ .RE .\} .RE .PP Perl .RS 4 .sp .if n \{\ .RS 4 .\} .nf use Net::DBus; $kid3 = Net::DBus\->session\->get_service( "org\&.kde\&.kid3")\->get_object( "/Kid3", "org\&.kde\&.Kid3"); $kid3\->setFrame(2, "Artist", "Famoso Desconhecido"); .fi .if n \{\ .RE .\} .RE .SS "API de D\-Bus" .PP A API de D\-Bus est\('a definida em org\&.kde\&.Kid3\&.xml\&. A interface do Kid3 tem os seguintes m\('etodos: .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBAbrir um ficheiro ou pasta\fR .RS 4 .HP \w'boolean\ openDirectory('u .BI "boolean openDirectory(string\ " "localiza\(,c\(~ao" ");" .PP \fIlocaliza\(,c\(~ao\fR .RS 4 localiza\(,c\(~ao de um ficheiro ou pasta .RE .PP Devolve verdadeiro se OK\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBDescarrega as marcas de todos os ficheiros que n\(~ao estejam modificados ou seleccionados\fR .RS 4 .HP \w'unloadAllTags('u .BI "unloadAllTags(void);" .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBGrava todos os ficheiros modificados\fR .RS 4 .HP \w'boolean\ save('u .BI "boolean save(void);" .PP Devolve verdadeiro se OK\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBObt\('em uma mensagem de erro detalhada oferecida por alguns dos m\('etodos\fR .RS 4 .HP \w'string\ getErrorMessage('u .BI "string getErrorMessage(void);" .PP Devolve uma mensagem de erro detalhada\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBReverte as modifica\(,c\(~oes nos ficheiros seleccionados\fR .RS 4 .HP \w'revert('u .BI "revert(void);" .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBInicia uma importa\(,c\(~ao autom\('atica em lote\fR .RS 4 .HP \w'boolean\ batchImport('u .BI "boolean batchImport(int32\ " "mascaraMarcas" ", string\ " "nomePerfil" ");" .PP \fImascaraMarcas\fR .RS 4 m\('ascara de marcas (bit 0 para a marca 1, bit 1 para a marca 2) .RE .PP \fInomePerfil\fR .RS 4 nome do perfil de importa\(,c\(~ao em lote a usar .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBImportar as marcas de um ficheiro\fR .RS 4 .HP \w'boolean\ importFromFile('u .BI "boolean importFromFile(int32\ " "mascaraMarcas" ", string\ " "localiza\(,c\(~ao" ", int32\ " "indFmt" ");" .PP \fImascaraMarcas\fR .RS 4 bit da marca (1 para a marca 1, 2 para a marca 2) .RE .PP \fIlocaliza\(,c\(~ao\fR .RS 4 localiza\(,c\(~ao do ficheiro .RE .PP \fIindFmt\fR .RS 4 \('indice do formato .RE .PP Devolve verdadeiro se OK\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBImportar as marcas de outras marcas\fR .RS 4 .HP \w'importFromTags('u .BI "importFromTags(int32\ " "mascaraMarcas" ", string\ " "origem" ", string\ " "extrac\(,c\(~ao" ");" .PP \fImascaraMarcas\fR .RS 4 bit da marca (1 para a marca 1, 2 para a marca 2) .RE .PP \fIorigem\fR .RS 4 o formato para obter o texto da origem a partir das marcas .RE .PP \fIextrac\(,c\(~ao\fR .RS 4 express\(~ao regular com os nomes dos pacotes e as capturas para extrair os dados a partir do texto de origem .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBImptrar as marcas de outras marcas nos ficheiros seleccionados\fR .RS 4 .HP \w'array\ importFromTagsToSelection('u .BI "array importFromTagsToSelection(int32\ " "mascaraMarcas" ", string\ " "origem" ", string\ " "extrac\(,c\(~ao" ");" .PP \fImascaraMarcas\fR .RS 4 bit da marca (1 para a marca 1, 2 para a marca 2) .RE .PP \fIorigem\fR .RS 4 o formato para obter o texto da origem a partir das marcas .RE .PP \fIextrac\(,c\(~ao\fR .RS 4 express\(~ao regular com os nomes dos pacotes e as capturas para extrair os dados a partir do texto de origem .RE .PP \fIreturnValues\fR .RS 4 valor extra\('ido para o "%{__return}(\&.+)" .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBObter as imagens da capa do \('album\fR .RS 4 .HP \w'downloadAlbumArt('u .BI "downloadAlbumArt(string\ " "url" ", boolean\ " "todosFicheirosNaPasta" ");" .PP \fIurl\fR .RS 4 URL do ficheiro da imagem ou recurso art\('istico do \('album .RE .PP \fItodosFicheirosNaPasta\fR .RS 4 verdadeiro para adicionar a imagem a todos os ficheiros na pasta .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBExportar as marcas para um ficheiro\fR .RS 4 .HP \w'boolean\ exportToFile('u .BI "boolean exportToFile(int32\ " "mascaraMarcas" ", string\ " "localiza\(,c\(~ao" ", int32\ " "indFmt" ");" .PP \fImascaraMarcas\fR .RS 4 bit da marca (1 para a marca 1, 2 para a marca 2) .RE .PP \fIlocaliza\(,c\(~ao\fR .RS 4 localiza\(,c\(~ao do ficheiro .RE .PP \fIindFmt\fR .RS 4 \('indice do formato .RE .PP Devolve verdadeiro se OK\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBCriar uma lista de reprodu\(,c\(~ao\fR .RS 4 .HP \w'boolean\ createPlaylist('u .BI "boolean createPlaylist(void);" .PP Devolve verdadeiro se OK\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBObter os itens de uma lista de reprodu\(,c\(~ao\fR .RS 4 .HP \w'array\ getPlaylistItems('u .BI "array getPlaylistItems(string\ " "localiza\(,c\(~ao" ");" .PP \fIlocaliza\(,c\(~ao\fR .RS 4 localiza\(,c\(~ao do ficheiro da lista de reprodu\(,c\(~ao .RE .PP Devolve uma lista com as localiza\(,c\(~oes absolutas dos itens da lista de reprodu\(,c\(~ao\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBDefine os itens de uma lista de reprodu\(,c\(~ao\fR .RS 4 .HP \w'boolean\ setPlaylistItems('u .BI "boolean setPlaylistItems(string\ " "localiza\(,c\(~ao" ", array\ " "itens" ");" .PP \fIlocaliza\(,c\(~ao\fR .RS 4 localiza\(,c\(~ao do ficheiro da lista de reprodu\(,c\(~ao .RE .PP \fIitens\fR .RS 4 lista de localiza\(,c\(~oes absolutas dos itens da lista de reprodu\(,c\(~ao .RE .PP Devolve verdadeiro se OK, ou falso se nem todos os itens foram encontrados ou se a adi\(,c\(~ao ou grava\(,c\(~ao ou grava\(,c\(~ao foi mal\-sucedida\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBSair da aplica\(,c\(~ao\fR .RS 4 .HP \w'quit('u .BI "quit(void);" .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBSeleccionar todos os ficheiros\fR .RS 4 .HP \w'selectAll('u .BI "selectAll(void);" .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBDeseleccionar todos os ficheiros\fR .RS 4 .HP \w'deselectAll('u .BI "deselectAll(void);" .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBConfigura o primeiro ficheiro como o ficheiro actual\fR .RS 4 .HP \w'boolean\ firstFile('u .BI "boolean firstFile(void);" .PP Devolve verdadeiro se existe um primeiro ficheiro\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBConfigura o ficheiro anterior como sendo o actual\fR .RS 4 .HP \w'boolean\ previousFile('u .BI "boolean previousFile(void);" .PP Devolve verdadeiro se existe um ficheiro anterior\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBConfigura o ficheiro seguinte como sendo o actual\fR .RS 4 .HP \w'boolean\ nextFile('u .BI "boolean nextFile(void);" .PP Devolve verdadeiro se existe um ficheiro seguinte\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBSelecciona o primeiro ficheiro\fR .RS 4 .HP \w'boolean\ selectFirstFile('u .BI "boolean selectFirstFile(void);" .PP Devolve verdadeiro se existe um primeiro ficheiro\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBSeleccionar o ficheiro anterior\fR .RS 4 .HP \w'boolean\ selectPreviousFile('u .BI "boolean selectPreviousFile(void);" .PP Devolve verdadeiro se existe um ficheiro anterior\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBSeleccionar o ficheiro seguinte\fR .RS 4 .HP \w'boolean\ selectNextFile('u .BI "boolean selectNextFile(void);" .PP Devolve verdadeiro se existe um ficheiro seguinte\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBSeleccionar o ficheiro actual\fR .RS 4 .HP \w'boolean\ selectCurrentFile('u .BI "boolean selectCurrentFile(void);" .PP Devolve verdadeiro se existe um ficheiro actual\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBExpande ou fecha o item do ficheiro actual se for uma pasta\fR .RS 4 .HP \w'boolean\ expandDirectory('u .BI "boolean expandDirectory(void);" .PP Um item de lista de ficheiros \('e uma pasta se o getFileName() devolver um um nome com \*(Aq/\*(Aq como \('ultimo car\('acter\&. .PP Devolve verdadeiro se o item do ficheiro actual for uma pasta\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBAplicar o formato de nomes dos ficheiros\fR .RS 4 .HP \w'applyFilenameFormat('u .BI "applyFilenameFormat(void);" .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBAplicar o formato das marcas\fR .RS 4 .HP \w'applyTagFormat('u .BI "applyTagFormat(void);" .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBAplicar a codifica\(,c\(~ao do texto\fR .RS 4 .HP \w'applyTextEncoding('u .BI "applyTextEncoding(void);" .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBDefinir o nome da pasta a partir das marcas\fR .RS 4 .HP \w'boolean\ setDirNameFromTag('u .BI "boolean setDirNameFromTag(int32\ " "mascaraMarcas" ", string\ " "formato" ", boolean\ " "criar" ");" .PP \fImascaraMarcas\fR .RS 4 m\('ascara de marcas (bit 0 para a marca 1, bit 1 para a marca 2) .RE .PP \fIformato\fR .RS 4 formato dos nomes dos ficheiros .RE .PP \fIcriar\fR .RS 4 verdadeiro para criar, falso para mudar o nome .RE .PP Devolve verdadeiro se OK, caso contr\('ario a mensagem de erro estar\('a dispon\('ivel se usar o getErrorMessage()\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBDefine os n\('umeros das faixas subsequentes nos ficheiros seleccionados\fR .RS 4 .HP \w'numberTracks('u .BI "numberTracks(int32\ " "mascaraMarcas" ", int32\ " "nrPrimeiraFaixa" ");" .PP \fImascaraMarcas\fR .RS 4 m\('ascara de marcas (bit 0 para a marca 1, bit 1 para a marca 2) .RE .PP \fInrPrimeiraFaixa\fR .RS 4 n\('umero a usar para o primeiro ficheiro .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBFiltrar os ficheiros\fR .RS 4 .HP \w'filter('u .BI "filter(string\ " "express\(~ao" ");" .PP \fIexpress\(~ao\fR .RS 4 express\(~ao de filtragem .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBConverter as marcas de ID3v2.3 para ID3v2.4\fR .RS 4 .HP \w'convertToId3v24('u .BI "convertToId3v24(void);" .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBConverter as marcas de ID3v2.4 para ID3v2.3\fR .RS 4 .HP \w'convertToId3v23('u .BI "convertToId3v23(void);" .PP Devolve verdadeiro se OK\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBObter a localiza\(,c\(~ao da pasta\fR .RS 4 .HP \w'string\ getDirectoryName('u .BI "string getDirectoryName(void);" .PP Devolve a localiza\(,c\(~ao absoluta da pasta\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBObt\('em o nome do ficheiro actual\fR .RS 4 .HP \w'string\ getFileName('u .BI "string getFileName(void);" .PP Devolve a localiza\(,c\(~ao absoluta do nome do ficheiro; termina com "/" se for uma pasta\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBDefine o nome do ficheiro seleccionado\fR .RS 4 .HP \w'setFileName('u .BI "setFileName(string\ " "nome" ");" .PP \fInome\fR .RS 4 nome do ficheiro .RE .PP O ficheiro ir\('a mudar de nome quando a pasta for gravada\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBDefine o formato a usar quando definir o nome do ficheiro a partir das marcas\fR .RS 4 .HP \w'setFileNameFormat('u .BI "setFileNameFormat(string\ " "formato" ");" .PP \fIformato\fR .RS 4 formato dos nomes dos ficheiros .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBConfigura os nomes dos ficheiros para os ficheiros seleccionados a partir das marcas\fR .RS 4 .HP \w'setFileNameFromTag('u .BI "setFileNameFromTag(int32\ " "mascaraMarcas" ");" .PP \fImascaraMarcas\fR .RS 4 bit da marca (1 para a marca 1, 2 para a marca 2) .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBObter o valor do pacote\fR .RS 4 .HP \w'string\ getFrame('u .BI "string getFrame(int32\ " "mascaraMarcas" ", string\ " "nome" ");" .PP \fImascaraMarcas\fR .RS 4 bit da marca (1 para a marca 1, 2 para a marca 2) .RE .PP \fInome\fR .RS 4 nome do pacote (p\&.ex\&. "artist") .RE .PP Para obter dados bin\('arios, como uma imagem, o nome do ficheiro a gravar pode ser adicionado a seguir ao \fIname\fR, p\&.ex\&. "Picture:/local/do/ficheiro"\&. Da mesma forma, tamb\('em poder\(~ao ser exportadas, p\&.ex\&. "SYLT:/local/do/ficheiro"\&. .PP Devolve o valor do pacote\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBConfigurar o valor do pacote\fR .RS 4 .HP \w'boolean\ setFrame('u .BI "boolean setFrame(int32\ " "mascaraMarcas" ", string\ " "nome" ", string\ " "valor" ");" .PP \fImascaraMarcas\fR .RS 4 bit da marca (1 para a marca 1, 2 para a marca 2) .RE .PP \fInome\fR .RS 4 nome do pacote (p\&.ex\&. "artist") .RE .PP \fIvalor\fR .RS 4 valor do pacote .RE .PP Para a marca 2 (\fItagMask\fR 2), se n\(~ao existir nenhum pacote chamado \fInome\fR, ser\('a adicionado um novo pacote; se o \fIvalor\fR estiver vazio, o pacote \('e removido\&. Para adicionar dados bin\('arios, como uma imagem, poder\('a adicionar um ficheiro a seguir ao \fInome\fR, p\&.ex\&. "Picture:/local/do/ficheiro"\&. "SYLT:/local/do/ficheiro" pode ser usado para importar as letras sincronizadas\&. .PP Devolve verdadeiro se OK\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBObter todos os pacotes de uma marca\fR .RS 4 .HP \w'lista\ de\ textos\ getTag('u .BI "lista de textos getTag(int32\ " "tagMask" ");" .PP \fImascaraMarcas\fR .RS 4 bit da marca (1 para a marca 1, 2 para a marca 2) .RE .PP Devolve uma lista com os nomes e valores dos pacotes de forma alternada\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBObter informa\(,c\(~oes t\('ecnicas sobre o ficheiro\fR .RS 4 .HP \w'lista\ de\ textos\ getInformation('u .BI "lista de textos getInformation(void);" .PP As propriedades s\(~ao o Formato, Taxa de Dados, Taxa de Amostragem, Canais, Dura\(,c\(~ao, Modo do Canal, VBR, Marca 1, Marca 2\&. Propriedades; os que n\(~ao estiverem dispon\('iveis s\(~ao omitidos\&. .PP Devolve uma lista alternada entre os nomes e os valores das propriedades\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBConfigurar uma marca a partir do nome do ficheiro\fR .RS 4 .HP \w'setTagFromFileName('u .BI "setTagFromFileName(int32\ " "mascaraMarcas" ");" .PP \fImascaraMarcas\fR .RS 4 bit da marca (1 para a marca 1, 2 para a marca 2) .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBConfigurar uma marca a partir de outra marca\fR .RS 4 .HP \w'setTagFromOtherTag('u .BI "setTagFromOtherTag(int32\ " "mascaraMarcas" ");" .PP \fImascaraMarcas\fR .RS 4 bit da marca (1 para a marca 1, 2 para a marca 2) .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBCopiar a marca\fR .RS 4 .HP \w'copyTag('u .BI "copyTag(int32\ " "mascaraMarcas" ");" .PP \fImascaraMarcas\fR .RS 4 bit da marca (1 para a marca 1, 2 para a marca 2) .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBColar a marca\fR .RS 4 .HP \w'pasteTag('u .BI "pasteTag(int32\ " "mascaraMarcas" ");" .PP \fImascaraMarcas\fR .RS 4 bit da marca (1 para a marca 1, 2 para a marca 2) .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBRemover a marca\fR .RS 4 .HP \w'removeTag('u .BI "removeTag(int32\ " "mascaraMarcas" ");" .PP \fImascaraMarcas\fR .RS 4 bit da marca (1 para a marca 1, 2 para a marca 2) .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBVolta a processar a configura\(,c\(~ao\fR .RS 4 .HP \w'reparseConfiguration('u .BI "reparseConfiguration(void);" .PP As mudan\(,cas automatizadas da configura\(,c\(~ao ser\(~ao poss\('iveis se modificar o ficheiro de configura\(,c\(~ao e depois voltar a processar a configura\(,c\(~ao\&. .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBReproduz os ficheiros seleccionados\fR .RS 4 .HP \w'playAudio('u .BI "playAudio(void);" .RE .SH "INTERFACE EM QML" .SS "Exemplos em QML" .PP Os programas em QML podem ser invocados atrav\('es do menu de contexto da lista de ficheiros e podem ser configurados na p\('agina Ac\(,c\(~oes do Utilizador da janela de configura\(,c\(~ao\&. Os programas que s\(~ao aqui configurados podem ser usados como exemplos para programas personalizados\&. O QML usa o JavaScript, sendo que aqui est\('a o obrigat\('orio "Ol\('a Mundo": .sp .if n \{\ .RS 4 .\} .nf import Kid3 1\&.0 Kid3Script { onRun: { console\&.log("Ol\('a mundo, a pasta \('e", app\&.dirName) Qt\&.quit() } } .fi .if n \{\ .RE .\} .PP Se este programa for gravado em /local/do/Exemplo\&.qml, o comando do utilizador poder\('a ser definido como \fB@qml /local/do/Exemplo\&.qml\fR com o nome \fBTeste de QML\fR e o Resultado assinalado\&. Poder\('a ent\(~ao ser iniciado com o item Teste de QML no menu de contexto da lista de ficheiros, ficando o resultado vis\('ivel na janela\&. .PP Infelizmente, o arranque de programas em QML com o \fBqml\fR (p\&.ex\&. \fBqml \-apptype widget \-I /usr/lib/kid3/plugins/imports /localiza\(,c\(~ao/do/Exemplo\&.qml\fR) est\('a com problemas nas vers\(~oes recentes do Qt\&. Mas o \fBkid3\-cli\fR oferece uma forma alternativa de executar um programa em QML a partir da linha de comandos, usando o seu comando \fBexecute\fR\&. .sp .if n \{\ .RS 4 .\} .nf kid3\-cli \-c "execute @qml /localiza\(,c\(~ao/do/Exemplo\&.qml" .fi .if n \{\ .RE .\} .PP Para enumerar os t\('itulos nas marcas 2 de todos os ficheiros na pasta actual, poderia ser usado o seguinte programa: .sp .if n \{\ .RS 4 .\} .nf 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()) } } .fi .if n \{\ .RE .\} .PP Se a pasta tiver v\('arios ficheiros, um destes programas poder\('a bloquear a interface do utilizador durante algum tempo\&. Para as opera\(,c\(~oes mais demoradas, dever\('a ent\(~ao pausar de tempos a tempos\&. A implementa\(,c\(~ao alternativa em baixo tem o trabalho feito para um \('unico ficheiro transferido para uma fun\(,c\(~ao\&. Essa fun\(,c\(~ao invoca\-se a si pr\('opria com um tempo\-limite de 1 ms no fim, desde que existam mais ficheiros para serem processados\&. Isto ir\('a garantir que a GUI continua a reagir enquanto o programa est\('a em execu\(,c\(~ao\&. .sp .if n \{\ .RS 4 .\} .nf 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() } } .fi .if n \{\ .RE .\} .PP Ao usar o \fBapp\&.firstFile()\fR com o \fBapp\&.nextFile()\fR, ser\(~ao processados todos os ficheiros na pasta actual\&. Se s\('o \('e suposto processar os ficheiros seleccionados, use o \fBfirstFile()\fR e o \fBnextFile()\fR em alternativa; estas s\(~ao fun\(,c\(~oes de conveni\(^encia do componente Kid3Script\&. O seguinte exemplo \('e um programa que copia apenas os pacotes do n\('umero do disco e dos direitos de c\('opia do ficheiro seleccionado\&. .sp .if n \{\ .RS 4 .\} .nf 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() } } .fi .if n \{\ .RE .\} .PP Mais programas v\(^em dispon\('iveis com o Kid3 e est\(~ao j\('a registados como comandos do utilizador\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} ReplayGain to SoundCheck (ReplayGain2SoundCheck\&.qml): Criar a informa\(,c\(~ao de SoundCheck do iTunNORM a partir dos pacotes de ganho de reprodu\(,c\(~ao\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Dimensionar as Imagens do \('Album (ResizeAlbumArt\&.qml): Dimensiona as imagens das capas dos \('albuns incorporadas que forem maiores que 500x500 pixels\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Extrair as Imagens do \('Album (ExtractAlbumArt\&.qml): Extrai todas as imagens incorporadas das capas, evitando os duplicados\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Incorporar as Imagens do \('Album (EmbedAlbumArt\&.qml): Incorpora as imagens de capas encontradas nos ficheiros de imagens dentro dos ficheiros de \('audio na mesma pasta\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Incorporar as Letras Musicais (EmbedLyrics\&.qml): Obt\('em as letras musicais n\(~ao sincronizadas a partir de um servi\(,co na Web\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Codifica\(,c\(~ao de Texto do ID3v1 (ShowTextEncodingV1\&.qml): Ajuda a descobrir a codifica\(,c\(~ao das marcas ID3v1, apresentando as marcas do ficheiro actual em todas as codifica\(,c\(~oes de caracteres dispon\('iveis\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} ID3v1 para ASCII (Tag1ToAscii\&.qml): Traduz os caracteres acentuados estendidos na marca ID3v1 para ASCII\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Capitaliza\(,c\(~ao de T\('itulos em Ingl\(^es (TitleCase\&.qml): Formato o texto nas marcas como t\('itulos em Ingl\(^es\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Reescrever as Marcas (RewriteTags\&.qml): Volta a gravar todas as marcas nos ficheiros seleccionados\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Exportar para CSV (ExportCsv\&.qml): Exporta de forma recursiva todas as marcas de todos os ficheiros para um ficheiro CSV\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Importar um CSV (ImportCsv\&.qml): Importa de forma recursiva todas as marcas de todos os ficheiros a partir de um ficheiro CSV\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Exportar para JSON (ExportJson\&.qml): Exporta de forma recursiva todas as marcas de todos os ficheiros para um ficheiro JSON\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Importar um JSON (ImportJson\&.qml): Exporta de forma recursiva todas as marcas de todos os ficheiros a partir de um ficheiro JSON\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Exportar a Pasta da Lista de Reprodu\(,c\(~ao (ExportPlaylist\&.qml): Copiar todos os ficheiros de uma lista de reprodu\(,c\(~ao para uma pasta e muda o nome delas de acordo com a sua posi\(,c\(~ao\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Consola de QML (QmlConsole\&.qml): Uma consola simples para lidar com a API em QML do Kid3\&. .RE .sp .SS "API em QML" .PP A API pode ser explorada de forma simples com a Consola de QML, que est\('a dispon\('ivel como um programa de exemplo com uma interface de utilizador\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBKid3Script\fR .RS 4 .PP O Kid3Script \('e um componente normal de QML que se localiza dentro da pasta de \*(Aqplugins\*(Aq\&. Poder\('a usar outro componente de QML tamb\('em\&. Ao usar o Kid3Script, fica mais f\('acil iniciar a fun\(,c\(~ao do programa com a rotina \fBonRun\fR\&. Para al\('em disso, oferece algumas fun\(,c\(~oes: .sp .if n \{\ .RS 4 .\} .nf onRun: Tratamento de evento que \('e invocado quando o programa \('e iniciado tagv1, tagv2, tagv2v1: Constantes para os par\(^ametros de marcas script: Acesso \(`as fun\(,c\(~oes de programa\(,c\(~ao configs: Acesso \(`as fun\(,c\(~oes de configura\(,c\(~ao getArguments(): Lista de argumentos do programa isStandalone(): verdadeiro se o programa n\(~ao foi iniciado dentro do Kid3 setTimeout(rotina, atraso): Inicia a rotina ao fim de \*(Aqatraso\*(Aq ms firstFile(): Para o primeiro ficheiro seleccionado nextFile(): Para o ficheiro seguinte seleccionado .fi .if n \{\ .RE .\} .sp .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBFun\(,c\(~oes de Programa\(,c\(~ao\fR .RS 4 .PP Como o JavaScript e, por iner\(^encia, tamb\('em o QML s\('o t\(^em um conjunto limitado de fun\(,c\(~oes de programa\(,c\(~ao, o objecto \fBscript\fR tem alguns m\('etodos adicionais, por exemplo: .sp .if n \{\ .RS 4 .\} .nf 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\(^e 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\('em os bits do modo de permiss\(~ao do ficheiro script\&.setFilePermissions(localFicheiro, bitsModo): Altera os bits do modo de permiss\(~ao do ficheiro script\&.classifyFile(localFicheiro): Obt\('em a classe do ficheiro (pasta "/", liga\(,c\(~ao 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\(,c\(~ao da pasta tempor\('aria script\&.musicPath(): Localiza\(,c\(~ao da pasta de m\('usicas script\&.listDir(local, [filtrosNomes], [classificar]): Enumera os itens da pasta script\&.system(programa, [args], [ms]): Inicia de forma s\('incrona um comando do sistema, [c\('odigo de sa\('ida, standard output, standard error] caso n\(~ao expire o tempo\-limite script\&.systemAsync(programa, [args], [rotina]): Invoca de forma ass\('incrona um comando do sistema, sendo a \*(Aqrotina\*(Aq invocada com o [c\('odigo de sa\('ida, standard output, standard error] script\&.getEnv(nomeVar): Devolve o valor da vari\('avel de ambiente script\&.setEnv(nomeVar, valor): Altera o valor da vari\('avel de ambiente script\&.getQtVersion(): Texto da vers\(~ao do Qt, p\&.ex\&. "5\&.4\&.1" script\&.getDataMd5(dados): Devolve o texto hexadecimal do c\('odigo MD5 dos dados script\&.getDataSize(dados): Devolve o tamanho da lista de \*(Aqbytes\*(Aq script\&.dataToImage(dados, [formato]): Cria uma imagem a partir dos \*(Aqbytes\*(Aq de dados script\&.dataFromImage(imagem, [formato]): Obt\('em os \*(Aqbytes\*(Aq 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\('em as propriedades de uma imagem, sendo um mapa que cont\('em os valores "width", "height", "depth" e "colorCount", vazio se a imagem for inv\('alida script\&.scaleImage(img, largura, [altura]): Ajusta a escala de uma imagem, devolvendo a imagem ajustada .fi .if n \{\ .RE .\} .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBContexto da Aplica\(,c\(~ao\fR .RS 4 .PP Ao usar o QML, uma grande parte das fun\(,c\(~oes do Kid3 est\(~ao dispon\('iveis\&. A API \('e semelhante \(`a usada no D\-Bus\&. Para mais detalhes, consulte as notas respectivas\&. .sp .if n \{\ .RS 4 .\} .nf 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\(,c\(~ao): Importa a partir das marcas app\&.importFromTagsToSelection(marca, origem, extrac\(,c\(~ao): Importa a partir das marcas dos ficheiros seleccionados app\&.downloadImage(url, todosFicheirosNaPasta): Obt\('em a imagem app\&.exportTags(marca, local, indFmt): Exporta o ficheiro app\&.writePlaylist(): Grava a lista de reprodu\(,c\(~ao app\&.getPlaylistItems(local): Obt\('em os itens de uma lista de reprodu\(,c\(~ao app\&.setPlaylistItems(local, itens): Define os itens de uma lista de reprodu\(,c\(~ao 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\('ifico app\&.getSelectedFilePaths([soFicheirosMarcados]): Obt\('em as localiza\(,c\(~oes 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\(,c\(~ao de texto app\&.numberTracks(num, total, marca, [op\(,c\(~oes]): 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\('em o objecto com todos os pacotes app\&.getFrame(marca, nome): Obt\('em o pacote app\&.setFrame(marca, nome, valor): Configura o pacote app\&.getPictureData(): Obt\('em 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\(^e a configura\(,c\(~ao app\&.applyChangedConfiguration(): Aplica a configura\(,c\(~ao app\&.dirName: Nome da pasta app\&.selectionInfo\&.fileName: Nome do ficheiro app\&.selectionInfo\&.filePath: Localiza\(,c\(~ao 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\('odigos 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 .fi .if n \{\ .RE .\} .PP Para as opera\(,c\(~oes ass\('incronas, poder\('a associar rotinas aos eventos dos sinais\&. .sp .if n \{\ .RS 4 .\} .nf 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) } .fi .if n \{\ .RE .\} .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBObjectos de Configura\(,c\(~ao\fR .RS 4 .PP As diferentes sec\(,c\(~oes de configura\(,c\(~ao est\(~ao acess\('iveis atrav\('es de m\('etodos do \fBconfigs\fR\&. As suas propriedades poder\(~ao ser listadas na consola de QML\&. .sp .if n \{\ .RS 4 .\} .nf script\&.properties(configs\&.networkConfig()) .fi .if n \{\ .RE .\} .sp As propriedades poder\(~ao ser alteradas: .sp .if n \{\ .RS 4 .\} .nf configs\&.networkConfig()\&.useProxy = false .fi .if n \{\ .RE .\} .sp .sp .if n \{\ .RS 4 .\} .nf 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() .fi .if n \{\ .RE .\} .RE .SH "AUTORES" .PP \fBUrs Fleisch\fR <\&ufleisch at users.sourceforge.net\&> .RS 4 Desenvolvimento da aplica\(,c\(~ao .RE .PP \fBJos\('e Pires\fR <\&zepires@gmail.com\&> .RS 4 Tradu\(,c\(~ao .RE .SH "COPYRIGHT" .br Copyright \(co 2022 Urs Fleisch .br .PP \m[blue]\fBFDL\fR\m[] .sp .SH "NOTAS" .IP " 1." 4 gnudb.org .RS 4 \%http://gnudb.org .RE .IP " 2." 4 MusicBrainz .RS 4 \%http://musicbrainz.org .RE .IP " 3." 4 Discogs .RS 4 \%http://discogs.com .RE .IP " 4." 4 Amazon .RS 4 \%http://www.amazon.com .RE .IP " 5." 4 especifica\(,c\(~ao do ID3 .RS 4 \%http://id3.org/id3v2.4.0-frames .RE .IP " 6." 4 Editor do SYLT .RS 4 \%http://www.compuphase.com/software_sylteditor.htm .RE .IP " 7." 4 www.gnudb.org .RS 4 \%http://www.gnudb.org .RE .IP " 8." 4 Discogs .RS 4 \%https://www.discogs.com/ .RE .IP " 9." 4 freedb.org .RS 4 \%http://freedb.org .RE .IP "10." 4 Marca ID3 na vers\(~ao 2.3.0 .RS 4 \%http://id3.org/id3v2.3.0 .RE .IP "11." 4 Marca ID3 na vers\(~ao 2.4.0 - Estrutura Principal .RS 4 \%http://id3.org/id3v2.4.0-structure .RE .IP "12." 4 LyricWiki .RS 4 \%http://www.lyricwiki.org .RE .IP "13." 4 Google .RS 4 \%http://www.google.com .RE .IP "14." 4 id3lib .RS 4 \%http://id3lib.sourceforge.net .RE .IP "15." 4 libogg .RS 4 \%http://xiph.org/ogg/ .RE .IP "16." 4 libvorbis, libvorbisfile .RS 4 \%http://xiph.org/vorbis/ .RE .IP "17." 4 libFLAC++ e a libFLAC .RS 4 \%http://flac.sourceforge.net .RE .IP "18." 4 TagLib .RS 4 \%http://taglib.github.io/ .RE .IP "19." 4 mp4v2 .RS 4 \%https://mp4v2.org .RE .IP "20." 4 Chromaprint .RS 4 \%http://acoustid.org/chromaprint .RE .IP "21." 4 libav .RS 4 \%http://libav.org/ .RE .IP "22." 4 FDL .RS 4 \%http://www.gnu.org/licenses/licenses.html#FDL .RE .IP "23." 4 GPL .RS 4 \%http://www.gnu.org/licenses/licenses.html#GPL .RE .IP "24." 4 Qt(TM) .RS 4 \%https://www.qt.io .RE .IP "25." 4 KDE .RS 4 \%http://www.kde.org .RE