# Het handboek van Kid3

### Urs Fleisch

Softwareontwikkeling

`<ufleisch at users.sourceforge.net>`

Freek de Kruijf

3.9.0

Copyright © 2021 Urs Fleisch

FDL

Samenvatting

Kid3 is een toepassing om de ID3v1 en ID3v2 tags in MP3 bestanden op een efficiënte manier te bewerken. Ook tags in Ogg/Vorbis, Opus, DSF, FLAC, MPC, APE, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV, AIFF bestanden en trackermodules (MOD, S3M, IT, XM) worden ondersteund. Het is gemakkelijk om tags van meerdere bestanden in te stellen op dezelfde waarden (e.g. album, artiest, jaar en genre in alle bestanden van hetzelfde album) en de tags te genereren uit de bestandsnaam of vice versa.

Lijst van tabellen

3.1. Mapping van geünificeerde frametypes naar verschillende formaten
3.2. Item in waarderingstabel

# Samenvatting

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

`kid3-qt` [`--portable`] [`Qt-options`] [`BESTAND`...]

`kid3-cli` [`--portable`] [`--dbus`] [ `-h` | `--help` ] [`-c COMMANDO1`] [`-c COMMANDO2`...] [`BESTAND`...]

# Opties

`--portable`

  Configuratie opslaan in bestand `kid3.ini` in de map van de toepassing.

`BESTAND`

  Als ``BESTAND`` het pad is naar een map, zal het geopend worden. Als een of meer bestandspaden zijn gegeven, zal hun gemeenschappelijke map worden geopend en de bestanden zijn geselecteerd.

## kid3

`--help`

  Hulp over de opties tonen.

`--author`

  Auteurinformatie tonen.

`--version`

  Versie-informatie tonen

`--license`

  Licentie-informatie tonen.

`--desktopfile `BESTAND``

  De basis bestandsnaam van het desktop-item voor deze toepassing.

## kid3-qt

`Qt-opties`

  Zie qt5options(7).

## kid3-cli

`--dbus`

  Het D-Bus-interface activeren.

`-c`

  Voer een commando uit. Meerdere opties `-c` zijn mogelijk, ze worden opeenvolgend uitgevoerd. Zie de sectie over kid3-cli voor een beschrijving van de beschikbare commando's.

`-h`|`--help`

  Hulp over de opties en commando's tonen.

# Hoofdstuk 1. Inleiding

Kid3 is een toepassing om de ID3v1 en ID3v2 tags in MP3-bestanden te bewerken op een efficiënte manier. Deze tags kunnen bewerkt worden door de meeste MP3-spelers, maar niet op een erg comfortabele en efficiënte manier. Bovendien wordendhe tags in Ogg/Vorbis, Opus, DSF, FLAC, MPC, APE, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV, AIFF bestanden en trackermodules (MOD, S3M, IT, XM) ook ondersteund.

Kid3 pakt of codeert geen MP3-bestanden, maar is gericht op het bewerken van de ID3 tags van alle bestanden van een album op een efficiënte manier, i.e. met zo weinig muisklikken en toetsaanslagen als mogelijk. Waar de meeste andere programma's ofwel ID3v1 of ID3v2 tags kunnen bewerken,heeft Kid3 volledige controle over beide versies, kan tags converteren tussen de twee formaten en heeft toegang tot alle ID3v2 tags. Tags van meerdere bestanden kunnen ingesteld worden op dezelfde waarde, e.g. de artiest, album, jaar en genre van alle bestanden van een album hebben typisch dezelfde waarden en kunnen samen ingesteld worden. Als de informatie voor de tags in de bestandsnaam zit, kunnen de tags automatisch ingesteld worden uit de bestandsnaam. Het is ook mogelijk om de bestandsnaam in te stellen volgens de tags gevonden in het bestand in willekeurige formaten.

De taak voor bewerking wordt verder ondersteund door automatisch vervangen van tekens of tekenreeeksen, bijvoorbeeld om illegale tekens uit bestandsnamen te verwijderen. Automatische controle van hoofd en kleine letters maakt het gemakkelijk om een consistent naamschema in alle tags te gebruiken.

De taginformatie voor volledige albums kan genomen worden uit gnudb.org, MusicBrainz, Discogs, Amazon of andere bronnen met tracklijsten. Het importformaat is vrij te configureren door reguliere expressies.

Gaarne problemen of verzoeken om meer mogelijkheden rapporteren aan de auteur.

# Hoofdstuk 2. Kid3 gebruiken

## Functies van Kid3

- ID3v1.1 tags bewerken

- Alle ID3v2.3 en ID3v2.4 frames bewerken

- Tags van meerdere bestanden bewerken

- Tussen ID3v1 en ID3v2 tags converteren

- MP3, Ogg/Vorbis, Opus, DSF, FLAC, MPC, APE, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV en AIFF tags bewerken

- Tags uit bestandsnaam genereren

- Tags uit de inhoud van tagvelden genereren

- Bestandsnaam uit tags genereren

- Mapnamen uit tags genereren en wijzigen

- Afspeellijstbestand genereren

- Automatische conversie van hoofd- kleine letters en vertaling van tekenreeksen

- Uit gnudb.org, MusicBrainz, Discogs, Amazon en andere gegevensbronnen importeren

- Als CSV, HTML, afspeellijst, Kover XML en andere formaten exporteren. Geëxporteerde CSV-bestanden kunnen opnieuw geïmporteerd worden.

## Voorbeeld van gebruik

Deze sectie beschrijft een typische sessie met Kid3. We hebben een map met MP3-bestanden met de tracks uit het album "Let's Tag" van de band "One Hit Wonder". De map is genaamd in het formaat "artist - album", in ons geval `One Hit Wonder - Let's Tag`. De map bevat de tracks in het formaat "track title.mp3", wat denk ik bruikbaar is omdat de bestandsnamen een korte (belangrijk bij gebruik van mobiele MP3-spelers met kleine schermen) en in de juiste volgorde bij alfabetisch ordening (belangrijk bij gebruik van hardware MP3-spelers die de tracks in alfabetische volgorde afspelen of in de volgorde waarin ze op een CD zijn gebrand en die volgorde is alfabetisch bij gebruik van mkisofs). Daarnaast is de informatie over artiest en album al in de mapnaam en hoeft niet herhaald te worden in de bestandsnaam. Maar terug naar ons voorbeeld, de lijst van de map ziet er uit als:

`01 Intro.mp3`

`02 We hebben alleen deze.mp3`

`03 Outro.mp3`

Deze bestanden hebben nog geen tags en we willen ze genereren met Kid3. We gebruiken Bestand → Openen (menu-item (of knop van de werkbalk) en selecteren een van de bestanden in deze map. Alle bestanden zullen worden getoond in het vak met bestanden. Lui als we zijn, we willen de informatie in de map en bestandsnamen gebruiken om tags te genereren. Daarom selecteren we alle bestanden, daarna een klik op de knop Naar: Tag 1 in de sectie Bestand. Dit zal de titel, artiest, album en trackwaarden in alle bestanden. Om de jaar en genre waarden van alle bestanden in te stellen, houden we alle bestanden geselecteerd en typen "2002" in voor de Datum en selecteren "Pop" uit de keuzelijst Genre. Om alleen deze twee waarden in te stellen, zijn hun keuzelijsten automatisch geactiveerd en alle andere keuzelijsten zijn niet geactiveerd gelaten. Nu wijzigen we de selectie door alleen het eerste bestand te selecteren en we zien dat alle tags de juiste waarden bevatten. De tags van de andere bestanden kunnen ook geverifieerd worden door ze een voor een te selecteren. Wanneer we tevreden zijn met de tags, gebruiken we Bestand → Opslaan menu-item (of knop op werkbalk). Met selecteren van Bestand → Afspeellijst aanmaken menu-item (of knop op werkbalk). zullen we een bestand `One Hit Wonder - Let's Tag.m3u` genereren in de map.

# Hoofdstuk 3. Overzicht van de opdrachten

## De GUI-elementen

De GUI van Kid3 is gescheiden in zes secties: Links zijn de vakken met lijsten van bestanden en mappen, de rechter kant bevat de secties bestand, Tag 1, Tag 2 en Tag 3 .

Om tussen de verschillende secties te navigeren met het toetsenbord worden verschillende sneltoetsen ondersteund. In de tagsecties zijn de sneltoetsen actief tijdens het niet bewerken van tekst of bij zijn in de eerste kolom.

- Alt+Links: Ga naar vorige sectie (Commando+[ op macOS®)

- Alt+Right: Ga naar volgende sectie (Commando+] op macOS®)

- Ctrl+Shift+V: Uit andere tag

- Ctrl+C: Kopiëren

- Ctrl+V: Plakken

- Shift+Delete: Verwijderen

- F2: Bewerken

- Insert: Toevoegen

- Delete: Verwijderen

### Bestandslijst

De lijst met bestanden bevat de namen van alle bestanden in de geopende map die overeenkomt met het geselecteerde filter voor bestandsnamen (typisch `*.mp3 *.ogg *.opus *.dsf *.flac *.mpc *.aac *.m4a *.m4b *.m4p *.mp4 *.mp2 *.spx *.tta *.wv *.wma *.wav *.aiff *.ape`). Een enkele of meerdere bestanden kunnen geselecteerd worden. Om geen bestand te selecteren, klik in het lege gebied na de items in het vak met de lijst. De selectie bepaalt de bestanden die worden beïnvloed door de bewerkingen die beschikbaar zijn door de onderstaand beschreven knoppen te gebruiken.

Naast Naam kunnen ook andere kolommen Grootte, Type, Datum gewijzigd met details van de bestanden worden getoond. Kolommen kunnen verborgen worden door hun naam te deactiveren in het contextmenu van de kop van de lijst. De volgorde van de kolommen kan gewijzigd worden door slepen en loslaten. De sorteervolgorde kan omgeschakeld worden door op de kolomkop te klikken.

De waarden van de standaard tags kunnen ook getoond en bewerkt worden in kolommen van de bestandenlijst.

Links van de namen kan een pictogram worden getoond: Een schijf om te tonen dat het bestand is gewijzigd of informatie over welke tags aanwezig zijn (V1, V2, V1V2 of GEEN TAG, er wordt geen pictogram getoond als het bestand nog niet is gelezen).

Mappen worden getoond met een pictogram van een map. Als een map geopend is, worden zijn bestanden getoond in een hiërarchische boomstructuur. Door bestanden te selecteren uit submappen, kunnen bewerkingen uitgevoerd worden op bestanden in andere mappen, wat zinvol is als de muziekverzameling georganiseerd is met een map voor elke artiest met mappen voor albums van deze artiest.

Met de right muisknop klikken in de bestandenlijst opent een contextmenu met de volgende commando's:

- Alle uitvouwen: vouwt alle mappenbomen uit (alleen de huidige boomstructuur als de toets Shift is ingedrukt)

- Alles invouwen: vouwt alle mappenbomen in

- Hernoemen: wijzigt de naam van een bestand

- Naar prullenbak verplaatsen: verplaatst een bestand naar de prullenbak

- Afspelen: speelt een bestand af, zie Afspelen. Als het geselecteerde bestand een afspeellijst is, worden de bestanden in de afspeellijst afgespeeld.

- Bewerken: bewerk een afspeellijst, zie Afspeellijst bewerken.

- De volgende items zijn gebruikerscommando's, die gedefinieerd kunnen worden in het tabblad Gebruikersacties van Kid3 configureren. Het afspelen bij dubbelklikken kan ook daar geactiveerd worden.

### Afspeellijst bewerken

Een afspeellijst kan leeg worden aangemaakt of de tracks van een map bevatten, zie Afspeellijst aanmaken. Het op deze manier aangemaakte afspeellijstbestand kan bewerkt worden door dubbelklikken of gebruik van Bewerken uit het contextmenu ven de bestandenlijst. Een dialoog met de items van de afspeellijst wordt getoond. Het is mogelijk om meerdere afspeellijsten tegelijk te openen.

Nieuwe items kunnen toegevoegd worden door slepen en loslaten uit de bestandenlijst, een bestandenbeheerder of een andere afspeellijst. Als een item versleept wordt uit een andere afspeellijst, zal het verplaatst of gekopieerd worden afhankelijk van het systeem. Om respectievelijk de andere actie uit te voeren, moet de toets Shift, Ctrl of Alt (om te kopiëren in plaats van verplaatsen onder macOS®) worden ingedrukt. Items opnieuw ordenen in de afspeellijst is ook mogelijk via slepen en loslaten. Als alternatief kunnen items verplaatst worden met de sneltoetsen Ctrl+Shift+Up en Ctrl+Shift+Down (op macOS® moet Command worden ingedrukt in plaats van Ctrl). Een item kan verwijderd worden met de toets Delete.

Merk het volgende op: om items te verslepen uit de bestandenlijst, moeten ze gehouden worden aaan de linker kant (bij de pictogrammen), hetzelfde gebaar aan de rechter kant zal een selectie van meerdere doen, zo'n actie is hierdoor nog steeds gemakkelijk mogelijk.

Wanneer een afspeellijst gewijzigd is, kunnen de wijzigingen opgeslagen worden met Opslaan of verworpen met Annuleren. Wanneer het venster wordt gesloten, wordt een vraag om bevestiging getoond als er niet opgeslagen wijzigingen zijn.

Geselecteerde tracks in een afspeellijst zullen automatisch geselecteerd worden in de bestandenlijst, waarbij het mogelijk wordt gemaakt om hun tags te bewerken.

Om acties in een afspeellijst uit te voeren moet zijn bestand geselecteerd zijn in de bestandenlijst. Bewerken uit het contextmenu zal naar de dialoog beschreven in deze sectie leiden en Afspelen zal de mediaspeler starten met de tracks uit de afspeellijst. Gebruikeracties kunnen acteren op afspeellijsten, voor een voorbeeld Afspeellijstmap exporteren, die de bestanden uit een afspeellijst kopieert in een map.

### Mappenlijst

De mappenlijst bevat de namen van de mappen in de geopende map, evenals de huidige (`.`) en de bovenliggende map (`..`). Het biedt om snel van map te wisselen zonder het commando Open... te gebruiken of slepen en loslaten.

Zichtbaarheid van kolom, volgorde en sortering kunnen geconfigureerd worden zoals beschreven in de sectie over de bestandenlist.

### Bestand

Toont informatie over de codering (MP3, Ogg, Opus, DSF, FLAC, MPC, APE, MP2, MP4, AAC, Speex, TrueAudio, WavPack, WMA, WAV, AIFF), bitsnelheid, samplesnelheid, kanalen en de lengte van het bestand.

De regelbewerking Naam bevat de naam van het bestand (als alleen een enkel bestand is geselecteerd). Als deze naam is gewijzigd zal het bestand worden hernoemd wanneer het commando Opslaan wordt gebruikt.

De keuzelijst Formaat en regelbewerken bevat het te gebruiken formaat wanneer de bestandsnaam wordt gegenereerd uit de eerste of de tweede tag. De bestandsnaam kan willekeurige tekens bevatten, zelfs een mapgedeelte gescheiden door een slash uit de bestandsnaam, maar die map moet al bestaan om het hernoemen te laten slagen. De volgende speciale codes worden gebruikt om tagwaarden in de bestandsnaam in te voegen:

- %s %{title} Titel (Song)

- %a %{artist} Artiest

- %l %{album} Album

- %c %{comment} Opmerking

- %y %{year} Jaar

- %t %{track} Track (e.g. 01)

- %t %{track.n} Track met veldbreedte n (e.g. 001 for %{track.3})

- %T %{tracknumber} Track (zonder voorloopnullen, e.g. 1)

- %g %{genre} Genre

- %{ignore} Genegeerd bij genereren van tags uit de bestandsnaam

De formaatcodes zijn niet beperkt tot de boven gegeven voorbeelden. Elke framenaam kan gebruikt worden, bijvoorbeeld geünificeerde framenamen zoals `%{albumartist}`, `%{discnumber.1}`, `%{bpm}` of formaatspecifieke namen zoals `%{popm}`.

Het is mogelijk om tekenreeksen als vooraan en achteraan aan de vervanging voor een formaatcode te voegen door ze in aanhalingstekens binnen de accolades van een formaatcode toe te voegen. Deze tekenreeksen zullen alleen in de resulterende tekenreeks gepllatst worden als de formaatcode een niet-lege waarde bevat. Als bijvoorbeeld de bestandsnaam zowel de titel en de ondertitel zou moeten bevatten, zou men `%{title} [%{subtitle}]` in de formaattekenreeks kunnen gebruiken. Maar dit zou resulteren in een tekenreeks die eindigt met `[]` als er geen ondertitelframe bestaat voor een bestand. Om de rechte haken weg te laten als er geen subtitel aanwezig is, zal in plaats daarvan `%{title}%{" ["subtitle"]"}` moeten worden gebruikt. Dit zullen de rechte haken, de voorloopspatie en de subtitel weggelaten worden als deze laatste niet bestaat.

De lijst met beschikbare formaten kan bewerkt worden in de dialoog die verschijnt wanneer er geklikt wordt op de knop Bestandsnaam uit tag in het tabblad Bestand van de instellingen.

Een tweede keuzelijst Formaat (met pijl omlaag) wordt gebruikt om de tags uit de bestandsnaam te genereren. Als het formaat van de bestandsnaam niet met dit patroon overeenkomt, worden een paar andere algemeen gebruikte formaten geprobeerd.

Sommige algemeen gebruikte bestandsnaamformaten zijn al beschikbaar in de keuzelijst, maar het is ook mogelijk om een speciaal formaat in de regelbewerking in te typen.

De lijst met beschikbare formaten kan bewerkt worden in de dialoog die verschijnt wanneer er geklikt wordt op de knop Tag uit bestandsnaam in het tabblad Bestand van de instellingen.

Intern is een reguliere expressie opgebouwd uit de formaatcodes. Als geavanceerde reguliere expressies vereist zijn kan het formaat om de tags te genereren uit de bestandsnamen gegeven worden als een complete reguliere expressie met vangsten die voorafgegaan worden door de formaatcodes, Om bijvoorbeeld de tracknummers te extraheren zonder verwijderen van voorloopnullen, zou een formaat zoals "`/%{track}(\d+) %{title}(.*)`" worden gebruikt.

Van: Tag 1, Tag 2: Stelt de bestandsnaam in met het geselecteerde formaat en respectievelijk de eerste tag of de tweede tag.

Naar: Tag 1, Tag 2: De tags worden ingesteld uit de bestandsnaam. Eerst wordt het formaat gespecificeerd in Formaat gebruikt. Als de bestaande bestandsnaam niet overeenkomst met dit formaat, dan worden de volgende formaten geprobeerd:

- `Artiest - Album/track Song`

- `Album/track - Artiest - Song`

- `/Artiest - Album - Track - Song`

- `Album/Artiest - Track - Song`

- `Album/artiest - Song`

- `Artiest/Album/Track Song`

Als een enkel bestand is geselecteerd worden de besturingen van de GUI gevuld met de waarden gehaald uit de bestandsnaam. Als meerdere bestanden zijn geselecteerd worden de tags van de bestanden direct ingesteld volgens de bestandsnamen.

### Tag 1

De widgets voor bewerking van regels voor Titel, Artiest, Album, Commentaar, Datum, Tracknummer en Genre worden gebruikt om de overeenkomstige waarde in de eerste tag van de geselecteerde bestanden te bewerken. De waarde zal gewijzigd worden wanneer de bestandsselectie is gewijzigd of voor acties zoals Opslaan en Afsluiten en wanneer het overeenkomstige keuzevakje links van de veldnaam is geactiveerd. Dit is nuttig om alleen sommige waarden te wijzigen en de andere waarden ongewijzigd te laten.

Als een enkel bestand is geselecteerd, alle keuzevakjes zijn geactiveerd en widgets voor regelbewerking de waarden bevatten gevonden in de tags van dit bestand. Als een tag niet is gevonden in het bestand zal de overeenkomstige lege waarde worden getoond, wat een lege tekenreeks voor de regelbewerking Titel, Artiest, Album en Commentaar, 0 voor de numerieke bewerkingen Datum en Tracknummer en en lege geselecteerde waarde voor de keuzelijst Genre. De waarden kunnen gewijzigd worden en als het overeenkomstige keuzevakje is geactiveerd, zullen ze ingesteld worden voor het geselecteerde bestand nadat de selectie is gewijzigd. Het bestand is dan gemarkeerd als gemodificeerd door een schijfsymbool in de bestandenlijst maar blijft ongewijzigd totdat het commando Opslaan is gebruikt.

Als meerdere bestanden zijn geselecteerd worden alleen de waarden die identiek zijn in alle geselecteerde bestanden getoond. In alle andere besturingen worden de lege waarden getoond zoals boven beschreven. Alle keuzevakjes zijn niet geactiveerd om ongewenste wijzigingen te vermijden. Als een waarde ingesteld moet worden voor alle geselecteerde bestanden, kan deze worden bewerkt en het keuzevakje moet worden geactiveerd. De waarden zullen voor alle geselecteerde bestanden worden ingesteld wanneer de selectie is gewijzigd en kan worden opgeslagen met het commando Opslaan.

De keuzevakjes besturen ook de bewerking van de meeste commando's met invloed op de tags, zoals kopiëren, plakken en overdracht tussen tags 1 en 2. Om het gemakkelijk te maken om dit met meerdere bestanden te gebruiken waar alle keuzevakjes niet geactiveerd zijn, gedragen deze commando's zich op dezelfde manier als wanneer alle keuzevakjes zijn geactiveerd en wanneer alle keuzevakjes niet zijn geactiveerd.

Uit tag 2: De velden voor tag 1 zijn ingesteld uit de overeenkomstige waarden in tag 2. Als een enkel bestand is geselecteerd worden de besturingen van de GUI gevuld met de waarden gehaald uit tag 2. Als meerdere bestanden zijn geselecteerd worden de tags van de bestanden direct ingesteld.

Kopiëren: de kopieerbuffer is gevuld met de waarden van Tag 1. Alleen waarden met geactiveerd keuzevakje zullen gebruikt worden in volgende plakken-commando's.

Plakken: Plakt de waarden uit de kipieerbuffer in de GUI-besturing.

Verwijderen: Dit zal alle GUI-besturingen instellen op hun lege waarden die resulteren in verwijderen van alle waarden. Het opgeslagen bestand zal dan geen tag 1 bevatten.

### Tag 2

De GUI- bestuurt de functie op dezelfde manier als beschreven voor de sectie Tag 1, maar de grootte van de tekenreeksen is niet beperkt.

Voor Genre van tag 2 kunt u ook uw eigen namen gebruiken naast de genres getoond in de keuzelijst, typ de naam in de regel voor bewerking.

Tag 2 kan niet alleen dezelfde waarden bevatten als tag 1, het formaat is ingebouwd op een flexibele manier uit verschillende frames die zelf bestaan uit verschillende velden. De tabel voor tag 2 toont alle frames die beschikbaar zijn in het geselecteerde bestand.

Bewerken: dit zal een venster openen die u biedt het bewerken van alle velden van het geselecteerde frame. Als meerdere bestanden zijn geselecteerd worden de bewerkte velden toegepast op alle geselecteerde bestanden die zo'n frame bevatten.

Add: Een verzoeker om het frametype te selecteren dat zal verschijnen en een frame van het geselecteerde type kan bewerkt worden en toegevoegd aan het bestand. Dit werkt ook om een frame toe te voegen aan meerdere geselecteerde bestanden.

Verwijderen: verwijdert het geselecteerde frame in de geselecteerde bestanden.

Albumillustraties hier slepen wordt getoond als het geen ingebedde hoesillustratie bevat. Er kan een afbeelding worden toegevoegd met slepen en loslaten uit een browser of bestandsbeheerder en zal hier getoond worden. Afbeeldingsframes kunnen bewerkt worden of toegevoegd door dubbel te klikken op deze besturing.

### Tag 3

Sommige bestanden kunnen meer dan twe tags hebben en een derde tagsectie is zichtbaar. De volgende bestandstypes kunnen zo'n Tag 3 sectie hebben:

- MP3-bestanden kunnen een ID3v1.1 tag, een ID3v2 (2.3.0 or 2.4.0) tag en in de derde sectie een APE tag hebben. Zulke APE-tags worden gebruik voor opnieuw afspelen van informatie over versterking. In de sectie Tag 3 is deze informatie zichtbaar en de APE-tag kan verwijderd worden met de knop Verwijderen.

- Het stuk RIFF INFO van WAV-bestanden is beschikbaar in de sectie Tag 3 omdat de sectie Tag 1 behoort bij ID3v1.1 tags en hun beperkingen behandeld. De Tag 2 wordt steeds gebruikt voor ID3v2.4.0 tags, die ook ondersteund worden voor WAV-bestanden, maar stukken RIFF INFO schijnen beter ondersteund te worden.

- FLAC-bestanden gebruiken normaal Vorbis commentaar voor hun metagegevens. Er zijn echter FLAC-bestanden die ID3v1 en ID3v2 tags hebben, die zijn te vinden in de secties Tag 1 en Tag 3 secties. ID3 tags in FLAC-bestanden worden alleen ondersteund door TagLib, daarom moet de OggFlacMetadata-plug-in uitgeschakeld worden in het tabblad Plug-ins van de instellingen.

De GUI-besturing werkt op dezelfde manier als in de sectie Tag 2.

### Framelijst

Kid3 kan de meeste frames voor alle ondersteunde bestandstypen bewerken. Sommige frames worden gebruikt met geünificeerde namen, zodat ze uitgewisseld kunnen worden tussen bestanden met verschillende formaten. Frames die niet geünificeerd zijn kunnen gebruikt worden als formaatspecifieke frames.

Tabel 3.1. Mapping van geünificeerde frametypes naar verschillende formaten

Unified | ID3v2.3 | ID3v2.4 | MP4 | ASF | Vorbis | RIFF
--- | --- | --- | --- | --- | --- | ---
Titel | `TIT2` | `TIT2` | `©nam` | `Titel` | `TITEL` | `INAM`
Artiest | `TPE1` | `TPE1` | `©ART` | `Auteur` | `ARTIEST` | `IART`
Album | `TALB` | `TALB` | `©alb` | `WM/AlbumTitel` | `ALBUM` | `IPRD`
Commentaar | `COMM` | `COMM` | `©cmt` | `Beschrijving` | `COMMENTAAR` | `ICMT`
Datum | `TYER` | `TDRC` | `©day` | `WM/Jaar` | `DATUM` | `ICRD`
Tracknummer | `TRCK` | `TRCK` | `trkn` | `WM/TrackNummer` | `TRACKNUMMER` | `IPRT` of `ITRK`
Genre | `TCON` | `TCON` | `©gen` | `WM/Genre` | `GENRE` | `IGNR`
Albumartiest | `TPE2` | `TPE2` | `aART` | `WM/AlbumArtiest` | `ALBUMARTIEST` |
Arrangeur | `IPLS` | `TIPL` | `ARRANGEUR` | `WM/Producent` | `ARRANGEUR` | `IENG`
Auteur | `TOLY` | `TOLY` | `AUTEUR` |  | `AUTEUR` |
BPM | `TBPM` | `TBPM` | `tmpo` | `WM/BeatsPerMinute` | `BPM` | `IBPM`
Catalogusnummer | `TXXX:CATALOGUSNUMMER` | `TXXX:CATALOGUSNUMMER` |  |  | `CATALOGUSNUMMER` |
Compilatie | `TCMP` | `TCMP` | `cpil` |  | `COMPILATIE` |
Componist | `TCOM` | `TCOM` | `©wrt` | `WM/Componist` | `COMPONIST` | `IMUS`
Dirigent | `TPE3` | `TPE3` | `DIRIGENT` | `WM/Dirigent` | `DIRIGENT` |
Copyright | `TCOP` | `TCOP` | `cprt` | `Copyright` | `COPYRIGHT` | `ICOP`
Beschrijving | `TIT3` | `TIT3` | `beschr` | `WM/OndertitelBeschrijving` | `BESCHRIJVING` |
Schijfnummer | `TPOS` | `TPOS` | `schijf` | `WM/DeelVanSet` | `SCHIJFNUMMER` |
Gecodeerd-door | `TENC` | `TENC` | `©enc` | `WM/GecodeerdDoor` | `GECODEERD-DOOR` | `ITCH`
Instellingen voor codering | `TSSE` | `TSSE` | `©too` | `WM/Coderinginstellingen` | `CODERINGSINSTELLINGEN` | `ISFT`
Tijd van codering |  | `TDEN` |  | `WM/TijdVanCodering` | `TIJDVANCODERING` | `IDIT`
Groepering | `GRP1` | `GRP1` | `©grp` |  | `GROEPERING` |
Initiële sleutel | `TKEY` | `TKEY` |  | `WM/InitiëleSleutel` | `INITIËLESLEUTEL` |
ISRC | `TSRC` | `TSRC` | `ISRC` | `WM/ISRC` | `ISRC` | `ISRC`
Taal | `TLAN` | `TLAN` | `TAAL` | `WM/Taal` | `TAAL` | `ILNG`
Maker liedtekst | `TEKST` | `TEKST` | `LIEDTEKSTMAKER` | `WM/Schrijver` | `LIEDTEKSTMAKER` | `IWRI`
Liedtekst | `USLT` | `USLT` | `©lyr` | `WM/Liedtekst` | `LIEDTEKST` |
Media | `TMED` | `TMED` | `BRONMEDIUM` |  | `BRONMEDIUM` | `IMED`
Stemming |  | `TMOO` |  | `WM/Stemming` | `STEMMING` |
Originele album | `TOAL` | `TOAL` | `ORIGINEELALBUM` | `WM/OrigineelAlbumTitel` | `ORIGINEELALBUM` |
Originele artiest | `TOPE` | `TOPE` | `ORIGINELEARTIEST` | `WM/OrigineleArtiest` | `ORIGINELEARTIEST` |
Oorspronkelijke datum | `TORY` | `TDOR` | `ORIGINELEDATUM` | `WM/OrigineleUitgaveJaar` | `ORIGINELEDATUM` |
Uitvoerder | `IPLS` | `TMCL` | `UITVOERDER` |  | `UITVOERDER` | `ISTR`
Afbeelding | `APIC` | `APIC` | `covr` | `WM/Afbeelding` | `METAGEGEVENS_BLOK_AFBEELDING` |
Uitgever | `TPUB` | `TPUB` | `UITGEVER` | `WM/Uitgever` | `UITGEVER` | `IPUB`
Waardering | `POPM` | `POPM` | `rente` | `WM/GedeeldeGebruikersWaardering` | `WAARDERING` | `IRTD`
Land van uitgave | `TXXX:UITGAVELAND` | `TXXX:UITGAVELAND` |  |  | `UITGAVELAND` | `ICNT`
Uitgiftedatum |  | `TDRL` | `RELEASEDATE (datum van uitgifte)` |  | `RELEASEDATE (datum van uitgifte)` |
Remixer | `TPE4` | `TPE4` | `REMIXER` | `WM/GewijzigdDoor` | `REMIXER` | `IEDT`
Sorteervolgorde album | `TSOA` | `TSOA` | `soal` | `WM/SorteervolgordeAlbum` | `ALBUMSORT` |
Sorteervolgorde albumartiest | `TSO2` | `TSO2` | `soaa` |  | `ALBUMARTISTSORT` |
Sorteervolgorde artiest | `TSOP` | `TSOP` | `soar` | `WM/SorteervolgordeArtiest` | `ARTISTSORT` |
Sorteervolgorde componist | `TSOC` | `TSOC` | `soco` |  | `COMPOSERSORT` |
Op naam sorteren | `TSOT` | `TSOT` | `sonm` | `WM/SorteervolgordeTitel` | `TITLESORT` |
Ondertitel |  | `TSST` | `ONDERTITEL` | `WM/Ondertitel` | `ONDERTITEL` | `PRT1`
Website | `WOAR` | `WOAR` | `WEBSITE` | `WM/AuteurURL` | `WEBSITE` | `IBSU`
Werk | `TIT1` | `TIT1` | `©wrk` | `WM/BeschrijvingInhoudGroep` | `WERK` |
WWW van audiobestand | `WOAF` | `WOAF` |  | `WM/AudioBestandURL` | `WWWAUDIOFILE` |
WWW van audiobron | `WOAS` | `WOAS` |  | `WM/AudioBronURL` | `WWWAUDIOSOURCE` |

Opmerkingen betreffende de mappings naar geünificeerde framenamen:

- Het aantal geünificeerde framenamen is beperkt door het feit dat een zinvolle mapping mogelijk zou moeten zijn voor alle ondersteunde bestandsformaten. De meeste tags ondersteunen frames met willekeurige namen; deze zullen gebruikt worden als geen specifiek frame beschikbaar is (e.g. de namen in hoofdletters in de kolom MP4). Als zulke mogelijkheden niet bestaan, zouden sommige typen frames niet ondersteund worden voor het formaat, e.g. auteur end uitvoerder voor ASF (WMA).

- De mappings zijn niet willekeurig gekozen, ze zijn gericht op het gebruik van de frames in andere toepassingen en apparaten. Dus het ID3v2 frame "TPE2 - Band/orchestra/accompaniment" suggereert niet zijn gebruik als albumartiest, maar dit wordt algemeen gebruikt. De actuele betekenis voor ID3v2 aan de andere kand is de reden waarom dit frame wordt gebruikt voor het orkest bij importeren (e.g. uit Discogs), hoewel dit een beetje vreemd lijkt voor andere tagformaten.

- De mappings zijn niet altijd bijectief. Dus ID3v2.3 gebruikt een IPLS-frame voor zowel arrangeur als uitvoerder. Bij terug lezen worden beide frames getoond als "Arrangeur".

- De frames arrangeur en uitvoerder gebruiken een specifiek formaat voor hun inhoud: "betrokkenheid 1|betrokkene 1|betrokkenheid 2|betrokkene 2|...", bijvoorbeeld "Chorus Master|Ernst Dunshirn|Soprano Vocals|Anna Netrebko". Dit zal IPLS (ID3v2.3) of TIPL/TMCL (ID3v2.4) frames aanmaken met een tekenreekslijst in het gespecificeerde formaat (het teken "|" wordt gebruikt als een scheidingsteken tussen de tekenreeksen). Waarden in dit formaat zijn ook gezet bij importeren van gegevens uit servers die deze informatie bieden.

- Om expliciet een specifieke framenaam te gebruiken die in conflict is met een geünificeerde framenaam, zet er een uitroepteken voor. Bijvoorbeeld toevoegen van een frame met type "`Media`" aan een Vorbis commentaar zal een frame aanmaken met de naam "`SOURCEMEDIA`" vanwege het geünificeerde type mapping. Om een frame toe te voegen met de naam "`MEDIA`" en niet "`SOURCEMEDIA`", gebruik "`!MEDIA`" om de expliciete naam af te dwingen.

- Als u een frame nodig hebt die niet in deze lijst zit, dan hebt u nog steeds de mogelijkheid om willekeurige namen in te voeren met de knop Toevoegen. Vaak gebruikte framenamen kunnen toegevoegd worden aan de Aangepaste frames in de configuratie van Tags en zullen dan beschikbaar zijn in de Snelle toegang frames.

### Gesynchroniseerde liedtekst en tijdcodes van gebeurtenissen

Voor informatie gesynchroniseerd met de geluidsgegevens is een specifieke bewerker beschikbaar. Deze frames worden ondersteund voor ID3v2.3.0 en ID3v2.4.0 tags. Om zo'n frame toe te voegen moet de specifieke framenaam worden geselecteerd in de lijst die verschijnt wanneer op de knop Toevoegen wordt geklikt - respectievelijk Gesynchroniseerde liedteksten of Tijdcodes van gebeurtenissen. De bewerker is hetzelfde voor beide typen, allen voor de tijdcodes van gebeurtenissen is een voorgedefinieerde set van gebeurtenissen beschikbaar terwijl voor de gesynchroniseerde liedteksten, er tekst moet worden ingevoerd. In het volgende wordt gesynchroniseerde liedteksten uitgelegd.

Een bestand met een ID3v2 tag is geselecteerd, de bewerker van liedteksten is gestart met Toevoegen en Gesynchroniseerde liedteksten is geselecteerd. Voor een bestaand frame gesynchroniseerde liedtekst wordt het geselecteerd wanneer op Bewerken wordt geklikt. De afspeler is automatisch geopend met het huidige bestand zodat het bestand afgespeeld en gepauzeerd kan worden om liedtekst te synchroniseren.

De instellingen bovenaan de SYLT bewerker hoeven normaal niet te worden gewijzigd. Als de liedtekst tekens bevat die niet aanwezig zijn in de tekenset Latin 1, is het wijzigen van de tekstcodering naar UTF16 (of UTF8 voor ID3v2.4.0) te adviseren. Voor Engelse liedtekst en maximale compatibiliteit zou ISO-8859-1 moeten worden gebruikt.

De sectie Liedtekst heeft bovenaan vijf knoppen. Toevoegen zal een nieuw tijdstip in de tabel toevoegen. De tijd wordt genomen van de positie van de afspeler, dus een item toevoegen tijdens afspelen van de track zal een regel voor de huidige positie van afspelen toevoegen. De tijdstippen in de tabel moeten chronologisch geordend zijn, de rij zal overeenkomstig ingevoegd worden. Items met een ongeldige tijd worden op een speciale maniet behandeld: Als de nu geselecteerde rij een ongeldige tijd bevat zal zijn tijdstip vervangen worden door de huidige tijd in plaats van het toevoegen van een nieuwe rij. Als de huidige tijd niet geldig is zal de eerst rij met een ongeldige tijd worden gebruikt als aanwezig. Dit gedrag zou toevoegen van tijdstippen moeten faciliteren als de liedtekst al in de tabel is maar de tijdstippen ontbreken (wat het geval is bij importeren van niet gesynchroniseerde liedtekst). merk op dat de ongeldige tijd wordt gerepresenteerd as 00:00.00, d.w.z. hetzelfde als de tijd aan het absolute begin van de track, die niet ongeldig is. Om een tijd ongeldig te maken, druk op de toets Delete of gebruik Wissen uit het contextmenu. Nieuwe rijen invoegen met Rij invoegen uit het contextmenu of aangemaakt bij importeren van niet gesynchroniseerde liedtekst met Uit klembord of Importeren bevatten ook ongeldige tijdstippen. Rijen in de tabel kunnen verwijderd worden door te klikken op de knop Verwijderen of door Rijen verwijderen te gebruiken uit het contextmenu.

Gesynchroniseerde liedtekst kan geïmporteerd worden uit een bestand met Importeren. Het verwachte formaat is eenvoudig of verbeterde LRC. Als het geselecteerde bestand geen vierkant haakje in de eerste regel bevat, wordt er verondesteld dat het een eenvoudig tekstbestand is met niet gesynchroniseerde liedtekst. De regels uit zo'n bestand worden dan geïmporteerd met ongeldige tijdstippen. De tijdinformatie kan toegevoegd worden met de knop Toevoegen of door handmatig invoeren. Het is ook mogelijk liedtekst te importeren via kopiëren-plakken met Uit klembord. Gesynchroniseerde liedtekst kan geschreven worden naar LRC-bestanden met Exporteren. Merk op dat alleen items met geldige tijdstippen geëxporteerd zullen worden en dat de items gesorteerd zullen zijn op tijden. Items met een ongeldige tijd zullen ook niet opgeslagen worden in het SYLT-frame, ga dus na dat alle tijdinformatie is ingevoegd alvorens de dialoog te verlaten.

De ID3-specificatie suggereert een tijdstempel voor elke lettergreep. De meeste spelers ondersteunen echter de opsplitsing in een regel of zin. Om beide soorten van gebruik te ondersteunen volgt Kid3 dezelfde conventies als de SYLT-bewerker. Van tekst die is ingevoerd in de tabel wordt aangenomen te beginnen op een nieuwe regel tenzij dit begint met een spatie of a minteken. Uitzonderingen op deze regel zijn mogelijk door een regel te beginnen met een underscore ('_') om voortzetting af te dwingen of een hekje-teken ('#') om een nieuwe regel af te dwingen. Deze escape-tekens worden niet opgeslagen binnen het SYLT-frame. Binnen het SYLT-frame beginnen nieuwe regels met een teken line-feed (hex 0A) terwijl voortzettingen dat niet doen. Bij lezen van SYLT-frames controleert Kid3 of het eerste item begint met een line-feed. Als dat niet het geval is wordt aangenomen dat alle items nieuwe regels zijn en dat geen lettergreepvoortzettingen worden gebruikt.

Terwijl de track wordt afgespeeld wordt de rij behorende bij de nu spelende positie geaccentueerd, zodat de juistheid van de synchronisatie-informatie geverifieerd kan worden. Als een offset toegevoegd moet worden aan een of meer tijdstempels, dan kan dat gedaan worden met het contextmenu Offset toevoegen. Negatieve waarden kunnen gebruikt worden om de tijd te verminderen. Met Naar positie spoelen in het contextmenu is het mogelijk om de afspeelpositie op de tijd van de geselecteerde rij in te stellen.

Aanbevolen procedure om nieuwe gesynchroniseerde liedtekst toe te voegen

- Haal de niet gesynchroniseerde liedtekst op, bijv. met Liedtekst → Ingebedde liedtekst uit het contextmenu van de bestandenlijst.

- Kopieer de niet gesynchroniseerde liedtekst naar het klembord, ga dan naar de rij Liedtekst in de frametabel en druk op Ctrl+C.

- Voeg een gesynchroniseerd liedtekstframe toe (Toevoegen..., Gesynchroniseerdt liedtekst, OK), klik op Uit klembord.

- Nu staan alle regels uit de niet gesynchroniseerde liedtekst in de tabel, alle tijdstippen zijn ongeldig (0:0:0.00). U kunt lege items van te voren verwijderen.

- Begin met het afspelen van de song door te klikken op de afspeelknop ► in de afspeelwerkbalk onderaan het hoofdvenster.

- Wanneer de volgende liedtekstregel met een ongeldig tijdstip komt, klik op Toevoegen of druk op Alt+A, het tijdstip zal worden bijgewerkt.

- Ga zo hiermee door totdat alle tijdstippen zijn ingesteld. Als u iets mist, stop het afspelen en wis het tijdstip met de toets Delete of door deze te selecteren en Wissen te gebruiken uit het contextmenu. Om afspelen te hervatten vanaf een gegeven tijdstip, gebruik Naar positie zoeken uit het contextmenu.

## Het menu Bestand

Bestand → Openen... (Ctrl+O)

  Opent een map. Alle bestanden overeenkomend met het geselecteerde bestandsnaamfilter zal getoond worden in het vak met bestanden en het gekozen bestand is geselecteerd.

Bestand → Recent geopend

  Opent een recent geopende map.

Bestand → Map openen... (Ctrl+D)

  Opent een map. Alle bestanden overeenkomend met het geselecteerde bestandsnaamfilter zal getoond worden in het vak met bestanden.

Bestand → Herladen (F5)

  Map herladen. Gewijzigde bestanden moeten eerder opgeslagen worden. Uitgevouwen submappen zullen ingevouwen worden.

Bestand → Opslaan (Ctrl+S)

  Slaat alle gewijzigde bestanden op in de map. De gewijzigde bestanden zijn gemarkeerd met een schijfsymbool in het vak met bestanden. Als een bestandsnaam is gewijzigd, zullen deze bestanden hernoemd worden.

Bestand → Ongedaan maken

  Draait de wijzigingen van een of meerdere bestanden terug. Als er geen bestanden zijn geselecteerd in het vak met bestanden, zullen de wijzigingen van alle bestanden worden teruggedraaid, anders worden alleen de wijzigingen van de geselecteerde bestanden teruggedraaid.

Bestand → Importeren...

  De Importdialoog kan gebruikt worden om gegeven direct uit een freedb.org server te importeren, uit een MusicBrainz server, uit Discogs, Amazon of andere bronnen met lijsten van albumtracks in tekstformaat.

  Importeren van een freedb.org server is mogelijk met een dialoog die verschijnt wanneer Uit server: gnudb.org wordt geselecteerd. De te zoeken artiest en albumnaam kan ingevoerd worden in de twee bovenste velden, de albums die overeenkomen met de zoekopdracht zullen getoond worden wanneer op Zoeken is geklikt en de resultaten uit www.gnudb.org zijn ontvangen. De trackgegevens importeren voor een album wordt gedaan door te dubbelklikken op het album in de lijst. De freedb.org server om uit te importeren kan geselecteerd worden evenals het CGI-pad. De geïmporteerde gegevens worden getoond in de voorbeeldtabel van de importdialoog. Wanneer u tevreden bent met de getoonde tracks, kunnen ze geïmporteerd worden door de importdialoog te beëindigen met OK.

  Zoek op de Discogs-server kan gedaan worden met Discogs. Zoals in de dialoog gnudb.org kunt u artiest en album invoeren en daarna kiezen uit een lijst met uitgaven. Een Token kan ingevoerd worden om de RESTful Discogs API te gebruiken in plaats van hun webinterface, die vaak is gewijzigd, waarbij de importontleder werd gebroken. U moet u registreren voor een account op Discogs en dan een token op hun website genereren (Settings/Developers, nieuw token genereren). Vergeet niet om Save Settings te doen na invoeren van het token om het in volgende verzoeken ook te kunnen gebruiken. Als Standaard tags is geactiveerd, zal de standaard informatie worden geïmporteerd, bijv. artiest, album en titel. Als Additionele tags is geactiveerd, zal meer informatie worden geïmporteerd indien beschikbaar, bijv. uitvoerders, arrangeurs of de uitgever. Als Hoesillustratie is geactiveerd zal de hoesillustratie worden gedownload indien beschikbaar.

  Zoek op Amazon kan gedaan worden met Amazon. Zoals in de dialoog gnudborg kunt u artiest en album invoeren en daarna kiezen uit een lijst met uitgaven. Als Additionele tags is geactiveerd, zal meer informatie worden geïmporteerd indien beschikbaar, bijv. uitvoerders, arrangeurs of de uitgever. Als Hoesillustratie is geactiveerd zal de hoesillustratie worden gedownload indien beschikbaar.

  U kunt op dezelfde manier in de uitgavedatabase van MusicBrainz zoeken met Uit MusicBrainz-uitgaven. De wijze van werken is hetzelfde als beschreven voor Uit gnudb.org.

  Importeren uit een MusicBrainz server is mogelijk met de dialoog die verschijnt wanneer Uit MusicBrainz Fingerprint wordt geselecteerd. De server kan geselecteerd worden zoals in de freedb importdialog. Onderstaand wordt een tabel getoond met de geïmporteerde trackgegevens. De rechter kolom toont de status van de vraag aan MusicBrainz, die begint met "Pending" wanneer de dialoog wordt geopend. Daarna wordt de fingerprint opgezocht en als het geen resultaat oplevert, wordt een andere zoekopdracht met de tags in het bestand geprobeerd. Het kan dus helpen voor een succesrijke zoekopdracht van MusicBrainz om bekende informatie (bijv. artiest en album) in de tags op te slaan voor het importeren. Als een resultaat is gevonden eindigt het zoeken in de status "Herkend", anders was er niets gevonden of meerdere meervoudige resultaten en een van hen moet geselecteerd worden door de gebruiker. OK en Toepassen gebruiken de geïmporteerde gegevens, Annuleren sluit de dialoog. Het sluiten kan even duren omdat de gehele MusicBrainz machinery afgesloten moet worden.

  Voor het importeren van tekstuele gegevens, Uit bestand/klembord opent een subdialoog, waar verschillende vooraf geconfigureerde importformaten beschikbaar zijn. De eerste twee, "CSV unquoted" en "CSV quoted" kunnen gebruikt worden om gegevens te importeren die zijn geëxporteerd door de dialoog Exporteren. De CSV gegevens kunnen bewerkt worden met een spreadsheet en moeten weggeschreven worden mat tabs als scheidingstekens. Importeren zou dan mogelijk moeten zijn met "CSV quoted", wat flexibeler is dan "CSV unquoted". De velden mogen geen enkel aanhalingsteken bevatten. Als u alleen exporteert vanuit Kid3 en later importeert, kan "CSV unquoted" gebruikt worden als een eenvoudig formaat voor dit doel. Merk op dat er ook comamndo's "Exporteer CSV" en "Importeer CSV" zijn in het contextmenu van de bestandenlijst, die scripts gebruiken om CSV gegevens te exporteren en te importeren in een meer volledige, krachtige en flexibele manier.

  Het volgende formaat, "freedb HTML tekst", kan gebruikt worden om informatie te kopiëren uit een HTML pagina van freedb.org. Zoek naar een album in freedb en als de gewenste informatie wordt getoond in de webbrowser, kopieer de inhoud naar het klembord. Klik daarna op de knop Uit klembord en de geïmporteerde tracks zullen getoond worden in de voorbeeldtabel bovenaan de dialoog. Als u tevreden bent met de geïmporteerde gegevens, beëindig dan de dialoog met OK, die de gegevens in zal voegen in de tags van de huidige map. De bestemming (Tag 1, Tag 2 of Tag 1 en Tag 2) kan geselecteerd worden met een keuzelijst. De bestanden in de huidige map zouden in de juiste trackvolgorde moeten zijn om hun tags toegekend te krijgen. Dit is het geval als ze genummerd zijn.

  Het volgende vooraf geconfigureerde importformaat, "freedb HTML source", kan gebruikt worden als de gegevens beschikbaar zijn als een HTML document. Importeren is mogelijk met de knop Uit bestand, die een bestandskeuze opent of zijn inhoud uit een bewerker kopieert en dan importeert uit het klembord. Dit formaat kan nuttig zijn voor offline importeren, hoewel het HTML document ook geopend kan worden in een browser en daarna geïmporteerd in het eerste formaat via het klembord.

  Meer vooraf geconfigureerde formaten, bijv. "Track Title Time", zijn beschikbaar. Een leeg aangepast formaat kan aangemaakt worden met Toevoegen om ingesteld te worden door de gebruiker. Twee regels onder de naam van het formaat kan met een reguliere expressie ingesteld worden om de velden te vangen uit de geïmporteerde tekst. De eerste reguliere expressie zal eenmaal ontleed worden per document om per-album gegevens zoals artiest, album, jaar en genre te verzamelen. Met de tweede regel wordt geprobeerd om van het begin van het document tot het eind trackgegevens te verkrijgen, gewoonlijk nummer en titel. De reguliere expressies bevatten alle mogelijkheden geboden door Qt™, wat het meeste is van wat Perl biedt. Constructies met haakjes "(..)" vangen buffers voor de te importeren velden en worden vooraf gegaan door specifieke codes Kid3 van Kid3 om te specificeren welke velden te vangen. De codes zijn hetzelfde als gebruikt voor het bestandsnaamformaat, naast de codes onderstaand weergegeven, elke framenaam is mogelijk:

  - %s %{title} Titel (Song)

  - %a %{artist} Artiest

  - %l %{album} Album

  - %c %{comment} Opmerking

  - %y %{year} Jaar

  - %t %{track} Track

  - %g %{genre} Genre

  - %d %{duration} Duur

  Bijvoorbeeld, een track reguliere expressie (tweede regel) om te importeren uit een `.m3u` afspeellijst zou kunnen zijn "`%{track}(\d+)\s+%{title}(\S[^\r\n]*)\.mp3[\r\n]`". Alle formaten kunnen gewijzigd worden door de reguliere expressies en de naam te bewerken en dan op Instellingen opslaan te klikken. Ze zullen opgeslagen worden in het bestand `kid3rc` in de configuratiemap. Dit bestand kan direct bewerkt worden om meer importformaten te bevatten of het kan verwijderd worden om de standaard formaten te herstellen. Formaten kunnen verwijderd worden met Verwijderen.

  Nauwkeurigheid toont een schatting van hoe goed de geïmporteerde informatie overeenkomt met de gegeven tracks. Het gebruikt duur van de track of bestandsnamen om het niveau van gelijkheid in procenten te berekenen. Hoesillustratie toont de URL van de albumhoesafbeelding die gedownload zal worden.

  Om te controleren of de geïmporteerde tracks overeenkomen met de huidige set bestanden, kan de duur van de geïmporteerde tracks vergeleken worden met de duur van de bestanden. Deze optie kan ingeschakeld worden met het keuzevak Maximaal toegestane tijdsverschil (sec) controleren: en het maximaal toegestane verschil in tijd kan ingesteld worden in seconden. Als er een verschil in lengte wordt gedetecteerd, zal de lengte getoond worden met een rode achtergrond in de voorbeeldtabel.

  Als de bestanden anders geordend zijn dan de geïmporteerde tracks, moeten hun toegekende tracks gewijzigd worden. Dezse taak kan gedaan worden met de optie Overeenkomen met met de knoppen Lengte, Track en Titel, die de tracks opnieuw zullen ordenen volgens het overeenkomstige veld. Om de toekenningen handmatig te corrigeren, kan een track versleept worden met de linker muisknop en ingedrukt houden van de toets Ctrl en losgelaten op de nieuwe locatie.

  Wanneer de importdialoog is geopend, bevat deze de actuele inhoud van de tags. Het type tag (Tag 1, Tag 2, Tag 1 en Tag 2) kan geselecteerd worden met de keuzelijst Bestemming. De knop rechts van deze keuzelijst kan gebruikt worden om de tabel terug te draaien naar de huidige inhoud van de tags. De keuzevakjes in de eerste kolom van de tabel kan gebruikt worden om de geïmporteerde tracks te selecteren. Dit kan nuttig zijn als een map de tracks van beide CDs van een dubbel CD bevat en alleen de tracks van de tweede CD geïmporteerd moeten worden.

  Om de tracks die zijn geïmporteerd te identificeren is het mogelijk de bestandsnamen te tonen of de volledige paden naar de bestanden met het contextmenu van de kop van de tabel. De waarden in de importtabel kunnen bewerkt worden. De terugdraai-knop rechts van de keuzelijst Bestemming kan gebruikt worden om de inhoud van de tags te herstellen, wat ook nuttig kan zijn na wijzigen van de Bestemming.

  Bijna alle dialoogfuncties hebben een knop Instellingen opslaan, die gebruikt kan worden om de instellingen specifiek voor de dialoog en de venstergrootte blijvend opslaan.

  Uit tags leidt tot een subdialoog om tagframes in te stellen uit de inhoud van andere tagframes. Dit kan gebruikt worden om eenvoudig informatie tussen tags te kopiëren of een deel te halen uit een frame en in te voegen in een ander.

  Zoals in de dialoog uit bestand/klembord importeren zijn er vrij te configureren formaten om verschillende bewerkingen uit te voeren. Reeds voorgeconfigureerd zijn formaten om de albumwaarde naar albumartiest, -componist of -dirigent te kopiëren en om het tracknummer uit titelvelden met een getal te halen. Er is ook een formaat om een ondertitel uit een titelveld te halen.

  Het volgende voorbeeld legt uit hoe een aangepast formaat toe te voegen, die de informatie uit het ondertitelveld ook in het commentaarveld zet. Maak een nieuw formaat met knop Toevoegen aan en stel een nieuwe naam in, bijv. "Ondertitel naar commentaar". Voer daarna "`%{subtitle}`" in in Bron en "`%{comment}(.*)`" voor Extractie en klik op Instellingen opslaan.

  De expressie in Bron kan formaatcodes bevatten voor willekeurige tagframes, meerdere codes kunnen gebruikt worden om de inhoud van verschillende frames te combineren. Voor elke track wordt een tekst gegenereerd uit zijn tags met het Bron-formaat en de reguliere expressie uit Extractie wordt toegepast op deze tekst om nieuwe waarden voor de tags in te stellen. Formaatcodes worden gebruikt voor de vanghaakjes om het tagframe te specificeren waar de gevangen tekst opgeslagen zal worden. Het werkt op dezelfde manier als voor de uit bestand/klembord importeren.

  Uit tags importeren... is ook direct beschikbaar vanuit het menu Bestand. Het verschil tussen deze twee functies is dat de importdialoogsubdialoog werkt op alle bestanden van de huidige map terwijl de menufunctie werkt op de geselecteerde bestanden (die in verschillende mappen kunnen zitten). De menufunctie ondersteunt een extra code "`%{__return}`" om de geëxtraheerde waarde terug te geven, die nuttig kan zijn met de CLI en QML-interfaces.

Bestand → Uit gnudb.org importeren...

  Uit een freedb.org server met gnudb.org albumzoeken importeren. Dit menu-item opent dezelfde importdialoog als Importeren..., maar opent direct de dialoog gnudb.org.

Bestand → Uit Discogs importeren...

  Uit een Discogs server importeren Dit menu-item opent dezelfde importdialoog als Importeren.., maar opent direct de dialoog Uit Discogs.

Bestand → Uit Amazon importeren...

  Uit Amazon importeren. Dit menu-item opent dezelfde importdialoog als Importeren., maar opent direct de dialoog Uit Amazon.

Bestand → Uit MusicBrainz Release importeren...

  Uit MusicBrainz release database importeren. Dit menu-item opent dezelfde importdialoog als Importeren..., maar opent direct de dialoog Uit MusicBrainz Release.

Bestand → Uit MusicBrainz Fingerprint importeren...

  Uit een MusicBrainz server importeren. Dit menu-item opent dezelfde importdialoog als Importeren..., maar opent direct de dialoog Uit MusicBrainz Fingerprint.

Bestand → Uit tags importeren...

  Zoals Uit tags, maar het importeren wordt toegepast op de geselecteerd bestanden.

bestand → Automatisch importeren...

  Automatisch importeren biedt het importeren van informatie voor meerdere albums uit verschillende webservices. Als er mappen zijn geselecteerd in de bestandenlijst, zullen trackgegevens voor de geselecteerde mappen worden geïmporteerd. Als geen map is geselecteerd, zullen alle mappen in de bestandenlijst worden geïmporteerd.

  Het type tag (Tag 1, Tag 2, Tag 1 en Tag 2) kan geselecteerd worden met de keuzelijst Bestemming.

  Profielen bepalen met welke servers contact gemaakt word om albuminformatie op te halen. Sommige profielen zijn voorgedefinieerd (All, MusicBrainz, Discogs, Cover Art), aangepaste profielen kunnen toegevoegd worden met de knop Toevoegen rechts van de keuzelijst Profiel.

  De ondersteunde tabel toont de servers die gebruikt zullen worden bij het importeren van albuminformatie met het geselecteerde profiel. Het importproces voor een album is beëindigd als alle vereiste informatie is gevonden, de volgorde van de rijen in de tabel is belangrijk. Deze kan gewijzigd worden met de knoppen Omhoog verplaatsen en Omlaag verplaatsen. Bewerken kan gebruikt worden om een bestaand item te wijzigen. De selectie van Server biedt dezelfde servers als gebruikt kan worden in de importeerfuncties. Standaard tags, EXtra tags, Hoesillustraties bepalen de informatie die opgehaals zou moeten worden van de server. Nauwkeurigheid, tenslotte, is de minimale nauwkeurigheid die bereikt moet worden om de geïmporteerde gegeven te accepteren. Als de nauwkeurigheid onvoldoende is, zal de volgende server in the lijst worden geprobeerd. Dezelfde dialoog met de servereigenschappen verschijnt wanneer op Toevoegen wordt geklikt om een nieuwe server toe te voegen. Bestaande items kunnen verwijderd worden met Verwijderen.

  Om een automatische bulkimport te starten met het geselecteerde profiel, klik op Start. Details over de gaande import worden getoond bovenaan de dialoog. Het proces kan afgebroken worden met de knop Afbreken.

Bestand → Bladeren in hoesillustraties...

  De dialoog Bladeren in hoesillustraties helpt bij het vinden van albumhoesillustraties. Artiest/album wordt, indien mogelijk, gevuld uit de tags. Bron biedt een variëteit van websites met albumhoesillustraties. De URL met artiest en album als parameters is te vinden onder de naam. URL-gecodeerde waarden voor artiest en album kunnen ingevoegd worden met "`%u{artist}`" en "`%u{album}`", andere waarden uit de tags zokn ook mogelijk, zoals beschreven in Kid3 configureren, Gebruikeracties. Meer bronnen kunnen ingevoerd worden na het item "Aangepaste bron" door "Aangepaste bron" te vervangen door de naam van de bron, op Enter drukken, daarna de URL invoegen en tenslotte op Instellingen opslaan drukken. Het resulterende browsercommando wordt bovenaan de dialoog getoond en kan gestart worden door op Bladeren te klikken. De browser, die geconfigureerd kan worden in de instellingen, wordt gestart met de geselecteerde bron. Een hoesafbeelding kan daarna uit de browser gesleept worden in het Kid3 venster en zal in het afbeeldingenframe van de geselecteerde bestanden gezet worden.

  Omdat niet alle browsers slepen en laten vallen van afbeeldingen ondersteunen en de afbeeldingen op websites vaak een URL hebben zal in zulke gevallen Kid3 de URL ontvangen en niet de afbeelding. Als de URL naar een afbeelding wijst zal het gedownload worden. Als de URL echter verwijst naar een andere webbron, zal het vertaald worden naar de overeenkomstige afbeelding. Zulke koppelingen zijn gedefinieerd in de tabel URL-extractie. De linker kolom Overeenkomst bevat een reguliere expressie die vergeleken zal worden met de URL. Als deze overeenkomt zullen de gevangen expressies in haakjes ingevoegd worden in het patroon in de rechter kolom URL van afbeelding (op de posities gemarkeerd met \1 etc.). De vervangen reguliere expressie bevat de URL van de afbeelding. Op deze manier kunnen hoesillustraties deïmporteerd worden uit Amazon, Google Images, etc. met slepen en laten vallen. Het is ook mogelijk om uw eigen koppelingen te definiëren.

Bestand → Exporteren...

  De Exportdialoog wordt gebruikt om gegevens uit de tags in een bestand of het klembord op te slaan. De bewerker bovenaan toont een voorbeeld van de te exporteren gegevens. Als de te exporteren gegevens tab-tekens bevatten, wordt het te exporteren getoond in een tabel. De gegevens zullen gegenereerd worden uit de tags in de huidige map volgens het geconfigureerde formaat.

  De formaatinstellingen zijn gelijk aan die in de importdialoog: Het bovenste veld bevat de titel (bijv. "CSV unquoted"), gevolgd door de kop, die gegenereerd zal worden aan het begin van het bestand. De trackgegevens volgen; het wordt voor elke track gebruikt. De trailer kan, tenslotte, gebruikt worden om enige afsluitende tekst te genereren.

  De formaatvelden bevatten geen reguliere expressies zoals in de importdialoog, maar alleen uitvoerformaatexpressies met speciale %-expressies, die vervangen zullen worden door waarden uit de tags. Het geheel werkt zoals het bestandsnaamformaat en dezelfde codes worden gebruikt plus enige extra codes. Niet alleen de codes uit de onderstaande lijst maar alle tagframenamen kunnen gebruikt worden.

  - %s %{title} Titel (Song)

  - %a %{artist} Artiest

  - %l %{album} Album

  - %c %{comment} Opmerking

  - %y %{year} Jaar

  - %t %{track} Track (e.g. 01)

  - %t %{track.n} Track met veldbreedte n (e.g. 001 for %{track.3})

  - %T %{tracknumber} Track (zonder voorloopnullen, e.g. 1)

  - %g %{genre} Genre

  - %f %{file} Bestandsnaam

  - %p %{filepath} Pad

  - %{modificationdate} Wijzigingsdatum

  - %{creationdate} Aanmaakdatum

  - %u %{url} URL

  - %{dirname} Mapnaam

  - %d %{duration} Tijdsduur in minuten:seconden

  - %D %{seconds} Tijdsduur in seconden

  - %n %{tracks} Aantal tracks van het album

  - %e %{extension} Bestandsextensie

  - %O %{tag1} het formaat van tag 1 (ID3v1.1 of leeg indien niet bestaand)

  - %o %{tag2} Het formaat van tag 2 (ID3v2.3.0, ID3v2.4.0, ID3v2.2.0, ID3v2.2.1, Vorbis, APE, MP4, ASF of leeg indien niet bestaand)

  - %b %{bitrate} Bitsnelheid in kbit/s

  - %v %{vbr} VBR of leeg (alleen voor ID3v2.3 met id3lib)

  - %r %{samplerate} Samplesnelheid in Hz

  - %m %{mode} Kanaalmodus (stereo of verbonden stereo)

  - %h %{channels} Aantal kanalen (1 of 2)

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

  Een paar formaten zijn voorgedefinieerd. "CSV unquoted" scheidt de velden met tabs. Gegevens in dit formaat kunnen opnieuw geïmporteerd worden in Kid3 met het importformaat met dezelfde naam. "CSV quoted" omsluit de velden bovendien door aanhalingstekens, die het importeren in rekenbladen vergemakkelijken. De velden mogen geen enkel aanhalingsteken bevatten wanneer dit formaat wordt gebruikt. "UItgebreide M3U" en "Uitgebreide PLS" genereren afspeellijsten met uitgebreide attributen en absolute padnamen. "HTML" kan gebruikt worden om een HTML pagina te genereren met hyperlinks naar de tracks. "Kover XML" maakt een bestand aan die geïmporteerd kan worden door het programma Kover voor afdrukken van hoezen. "Technische details" biedt informatie over bitsnelheid, samplesnelheid, kanalen, etc. "Aangepast formaat", tenslotte is leeg gelaten voor definitie van een aangepast formaat. U kunt meer eigen formaten definiëren door regels in het bestand `kid3rc` in de configuratiemap toe te voegen. De andere formaten kunnen aan uw behoeften worden aangepast.

  De Bron van de tags om de exportgegevens te genereren, (Tag 1 of Tag 2) kunnen geselecteerd worden met een keuzelijst. Wegzetten Naar bestand of Naar klembord slaat de gegevens op in een bestand of in het klembord. OK en Annuleren sluiten de dialoog, waar OK accepteert de huidige dialooginstellingen.

Bestand → Afspeellijst aanmaken...

  Maakt een afspeellijst aan. Het formaat en inhoud van de afspeellijst kan ingesteld worden op verschillende opties.

  De naam van de afspeellijst kan zijn Hetzelfde als de mapnaam of een Formaat gebruiken met waarden uit de tags, bijv. "`%{artist} - %{album}`" om de artiest en albumnaam in de naam van de afspeellijst te hebben. De formaatcodes zijn hetzelfde als voor Exporteren. Nieuwe lege afspeellijst aanmaken zal een lege afspeellijst aanmaken met de gegeven naam. De extensie hangt af van het afspeellijstformaat.

  De locatie van de gegenereerde afspeellijst wordt bepaald door de selectie uit het keuzelijst Aanmaken in.

  Huidige map

    De afspeellijst is in de huidige map aangemaakt en bevat alleen bestanden uit de huidige map. De huidige map is de map waar het huidige bestand zich bevindt. Als meerdere bestanden zijn geselecteerd is het huidige bestand waarschijnlijk het laatst geselecteerde bestand.

  Elke map

    Een afspeellijst wordt aangemaakt in elke map die bestanden bevat in de lijst en elke afspeellijst bevat de bestanden uit die map.

  Hoogste niveau map

    Slechts één afspeellijst wordt aangemaakt in de hoogste map (d.w.z. de map van de bestandenlijst) en het bevat de bestanden uit de map op het hoogste niveau en alle submappen ervan.

  Het Formaat van de afspeellijst kan zijn M3U, PLS of XSPF.

  Als Alleen de geselecteerde bestanden is geactiveerd, zullen alleen de geselecteerde bestanden meegenomen worden in de afspeellijst. Als een map is geselecteerd, zullen alle bestanden erin worden geselecteerd. Als dit keuzevak niet is geactiveerd worden alle geluidsbestanden ingevoegd in de afspeellijst.

  Op bestandsnaam sorteren selecteert het gebruikelijke geval waar de bestanden geordend zijn op bestandsnaam. Met Op tagveld sorteren is het mogelijk om te sorteren op een formaattekenreeks met waarden uit tagvelden. Bijvoorbeeld, "`%{track.3}`" kan gebruikt worden om te sorteren op tracknummer ("`.3`" wordt gebruikt om drie cijfers met voorloopnullen te krijgen omdat tekenreeksen gebruikt worden voor sorteren). Het is ook mogelijk meerdere velden te gebruiken, bijv. "`%{genre}%{year}`" om te sorteren met een tekenreeks bestaande uit genre en jaar.

  De afspeellijstitems zullen relatieve of absolute bestandspaden hebben afhankelijk van of Relatief pad voor bestanden in afspeellijst gebruiken of Volledig pad voor bestanden in afspeellijst gebruiken is ingesteld.

  Wanneer Alleen lijst van bestanden schrijven is ingesteld, zal de afspeellijst alleen de paden naar de bestanden bevatten. Om een uitgebreide afspeellijst met extra informatie te genereren, kan een formaattekenreeks worden ingesteld met de besturing Informatie schrijven met.

Bestand → Afsluiten (Ctrl+Q)

  Sluit de toepassing af

## Het menu Bewerken

Bewerken → Alles selecteren (Alt+A)

  Selecteert alle bestanden.

Bewerken → Selecteren ongedaan maken (Ctrl+Shift+A)

  Maakt selectie van alle bestanden ongedaan.

Bewerken → Alles in map selecteren

  Selecteert alle bestanden in de huidige map.

Bewerken → Vorig bestand (Alt+Up)

  Selecteert het vorige bestand.

Bewerken → Volgend bestand (Alt+Down)

  Selecteert het volgende bestand.

Bewerken → Zoeken... (Ctrl+F)

  Tekenreeksen zoeken in de bestandsnamen en de tags. De dialoog Zoeken is een subset van de dialoog Vervangen, die onderstaand wordt beschreven.

Bewerken → Vervangen... (Ctrl+R)

  Deze functie opent een dialoog om tekenreeksen te zoeken en te vervangen in de bestandsnamen en de tags. De set frames waarin het zoeken wordt uitgevoerd kan beperkt worden door het keuzevak Alles selecteren te deactiveren en de frames te selecteren die doorzocht moeten worden. Er zijn ook zoekopties beschikbaar om achterwaarts, hoofdlettergevoelig en reguliere expressies te gebruiken.

  Afhankelijk van het aantal bestanden kan het zoeken enige tijd duren, daarom kan het afgebroken worden door de dialoog te sluiten.

## Het menu Hulpmiddelen

Hulpmiddelen → Bestandsnaamformaat

  Wanneer Automatisch formaat toepassen is uitgeschakeld voor het bestandsnaamformaat in de configuratiedialoog kan dit menu-item gebruikt worden om het geconfigureerde formaat op de namen van de geselecteerde bestanden toe te passen. Dit kan ook gebruikt worden om te controleren of de bestandsnamen overeenkomen met het geconfigureerde formaat door het formaat toe te passen op alle opgeslagen bestanden en dan te controleren of bestanden zijn gewijzigd (en daarom gemarkeerd met een schijfsymbool in de vak met de lijst bestanden).

Hulpmiddelen → Tagformaat toepassen

  Wanneer Automatisch formaat toepassen is uitgeschakeld voor het tagformaat in de configuratiedialoog kan dit menu-item gebruikt worden om het geconfigureerde formaat op de tags van de geselecteerde bestanden toe te passen. Dit kan ook gebruikt worden om te controleren of de tags overeenkomen met het geconfigureerde formaat door het formaat toe te passen op alle opgeslagen bestanden en dan te controleren of bestanden zijn gewijzigd (en daarom gemarkeerd met een schijfsymbool in de vak met de lijst bestanden).

Hulpmiddelen → Tekst-codering toepassen

  Stelt de geselecteerde Tekstcodering in in Instellingen → Kid3 configureren... → Tagsectie → Tabblad Tag 2 voor alle geselecteerde bestanden. Als UTF8 is geselecteerd, zal UTF16 worden gebruikt voor ID3v2.3.0 tags omdat UTF8 niet ondersteund wordt voor dit formaat.

Hulpmiddelen → Map hernoemen...

  Deze dialoog biedt de mogelijkheid om automatisch de huidig geopende map te hernoemen volgens de tags in de bestanden. een aantal formaten zijn voorgeconfigureerd om informatie over artiest, album en jaar in de mapnaam mee te nemen. Het is ook mogelijk om een aangepast formaat in te stellen en de lijst met beschikbare formaten te Bewerken. De volgende speciale codes worden gebruikt om tagwaarden in de mapnaam in te voegen:

  - %s %{title} Titel (Song)

  - %a %{artist} Artiest

  - %l %{album} Album

  - %c %{comment} Opmerking

  - %y %{year} Jaar

  - %t %{track} Track (e.g. 01)

  - %t %{track.n} Track met veldbreedte n (e.g. 001 for %{track.3})

  - %T %{tracknumber} Track (zonder voorloopnullen, e.g. 1)

  - %g %{genre} Genre

  - %{dirname} Mapnaam (bijv. %{year" "}%{dirname} zal het jaar voorvoegen aan de huidige mapnaam)

  - %{max-year} De maximum waarde van jaar gevonden voor deze map, kan ook gebruikt worden met andere codes dan "year"

  - %{min-year} De minimum jaarwaarde gevonden voor deze map

  - %{unq-year} De unieke jaarwaarde gevonden voor deze map of leeg indien niet uniek

  Als een scheidingsteken voor mappen "/" wordt gevonden in het formaat, worden meerdere mappen aangemaakt. Als u een nieuwe map wilt aanmaken in plaats van de huidige map te hernoemen, selecteer dan in het keuzevakje Actie Map aanmaken in plaats van Map hernoemen. De Bron van de taginformatie kan gekozen worden tussen Tag 1 en Tag 2, Tag 1 en Tag 2. Een voorbeeld voor de hernoembewerking uitgevoerd op het eerste bestand is te zien in de secties Van en Naar van de dialoog.

  Meerdere mappen kunnen hernoemd worden door ze te selecteren.

hulpmiddelen → Tracks nummeren...

  Als de tracknummers in de tags niet zijn ingesteld of de verkeerde waarden hebben, kan deze functie de tracks automatisch in oplopende volgorde nummeren. Het startnummer kan ingesteld worden in de dialoog. Als slechts een gedeelte van de tracks genummerd moeten worden, moeten ze geselecteerd worden.

  Wanneer Totaal aantal tracks is geactiveerd zal het aantal tracks ook ingesteld worden in de tags.

  Het is mogelijk de tracks over meerdere mappen te nummeren. De mappen moeten uitgevouwen worden en geselecteerd.

  Als Teller resetten voor elke map is geactiveerd, wordt de nummering van tracks herstart met het gegeven nummer voor elke map wanneer meerdere mappen zijn geselecteerd.

  De dialoog aantal tracks kan ook gebruikt worden om bestaande tracknummers te formatteren zonder de waarden te wijzigen wanneer het keuzevakje Startnummer is gedeactiveerd. Het totaal aantal tracks zal toegevoegd worden als het bijbehorende keuzevakje actief is, die gebruikt kan worden om het totaal voor alle geselecteerde tracks in te stellen. Als alleen formattering van de bestaande nummers is gewenst, kan dit keuzevakje ook gedeactiveerd worden.

`Hulpmiddelen → Filter...

  Het filter kan gebruikt worden om alleen die bestanden te tonen die overeenkomen met bepaalde criteria. Dit helpt als u een grote verzaling wilt organiseren en alleen die bestanden wilt bewerken die niet in het gewenste schema passen. De expressie die definieert welke bestanden te tonen gebruikt dezelfde formaatcodes die gebruikt worden in het bestandsnaamformaat, importeren en exporteren.

  - %s %{title} Titel (Song)

  - %a %{artist} Artiest

  - %l %{album} Album

  - %c %{comment} Opmerking

  - %y %{year} Jaar

  - %t %{track} Track (e.g. 01)

  - %t %{track.n} Track met veldbreedte n (e.g. 001 for %{track.3})

  - %T %{tracknumber} Track (zonder voorloopnullen, e.g. 1)

  - %g %{genre} Genre

  - %f %{file} Bestandsnaam

  - %p %{filepath} Absoluut pad naar bestand

  - %e %{extension} Bestandsextensie

  - %O %{tag1} het formaat van tag 1 (ID3v1.1 of leeg indien niet bestaand)

  - %o %{tag2} Het formaat van tag 2 (ID3v2.3.0, ID3v2.4.0, ID3v2.2.0, ID3v2.2.1, Vorbis, APE, MP4, ASF of leeg indien niet bestaand)

  - %b %{bitrate} Bitsnelheid in kbit/s

  - %v %{vbr} VBR of leeg (alleen voor ID3v2.3 met id3lib)

  - %r %{samplerate} Samplesnelheid in Hz

  - %m %{mode} Kanaalmodus (stereo of verbonden stereo)

  - %h %{channels} Aantal kanalen (1 of 2)

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

  - %w %{marked} Gemarkeerd, is 1 als het bestand is gemarkeerd (bijv. vanwege afkorten of standaard schending), anders leeg

  - %1a %1{artist}, ... Het voorvoegsel 1 gebruiken om waarden van tag 1 te krijgen

  - %2a %{2artist}, ... Het voorvoegsel 2 gebruiken om waarden van tag 2 te krijgen

  Deze codes worden vervangen door de waarden voor het bestand en de resulterende tekenreeksen kunnen vergeleken worden met de volgende bewerkingen:

  - s1 equals s2: waar als s1 en s2 gelijk zijn.

  - s1 contains s2: waar als s1 s2 bevat, bijv. s2 is een subtekenreeks van s1.

  - s matches re: waar als s overeenkomt met de reguliere expressie re.

  Expressies die waar zijn worden vervangen door 1, onwaar door 0. Waarden waar worden gerepresenteerd door 1, true, on en yes, onwaar waarden door 0, false, off en no. Boolean-operaties zijn niet, en, of (in deze volgorde van voorrang) en kunnen gegroepeerd worden door ronde haakjes.

  Sommige filterregels zijn voorgedefinieerd en kunnen dienen als voorbeelden voor uw eigen expressies:

  Alles

    Wanneer de lijst met bestanden wordt gefilterd - dit wordt getoond met "[gefilterd]" in de venstertitel - en alle bestanden zullen weer getoond worden, dan kan de filtering omgekeerd worden met dit filter. Het gebruikt een lege expressie, maar een waarde waar zou hetzelfde effect hebben.

  Bestandsnaamtag verschilt

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

    Tests of het bestandspad overeenkomt met het bestandsnaamformaat. Deze regel wordt automatisch aangepast als het bestandsnaamformaat wijzigt.

  Geen tag 1

    `%{tag1} equals ""`

    Toont alleen bestanden die geen tag 1 hebben.

  Geen tag 2

    `%{tag2} equals ""`

    Toont alleen bestanden die geen tag 2 hebben.

  ID3v2.3.0 Tag

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

    Toont alleen bestanden die een ID3v2.3.0 tag hebben.

  ID3v2.4.0 Tag

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

    Toont alleen bestanden die een ID3v2.4.0 tag hebben.

  Tag 1 != Tag 2

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

    Toont bestanden met verschillen tussen tag 1 en tag2.

  Tag 1 == Tag 2

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

    Toont bestanden met identieke tag 1 en tag 2.

  Onvolledig

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

    Toont bestanden met lege waarden in de standaard tags (titel, artiest, album, datum, tracknummer, genre).

  Geen afbeelding

    `%{picture} equals ""`

    Toont alleen bestanden die geen afbeelding hebben.

  Gemarkeerd

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

    Toont alleen bestanden die zijn gemarkeerd omdat ze niet voldoen aan de ID3 standaard, zijn afgekapt of de afbeelding te groot is.

  Eigen filter

    Om uw eigen filter toe te voegen, selecteer dit item. Als u, bijvoorbeeld, een filter wilt hebben voor artiesten die met "The" beginnen, vervang "Aangepast filter" door de naam "The Bands" en druk op Enter. voeg daarna de volgende expressie in in het invoerveld:

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

    Klik daarna op Instellingen opslaan. Klik op Toepassen om de bestanden te filteren. Alle bewerkte bestanden worden getoond in de tekstweergave, met een "+" voor diegenen die overeenkomen met het filter en een "-" voor de anderen. Na beëindiging zullen alleen de bestanden met een artiest die begint met "The" getoond worden en de venstertitel is gemarkeerd met "[gefilterd]".

Hulpmiddelen → ID3v2.3 naar ID3v2.4 converteren

  Als er ID3v2.3 tags in de geselecteerde bestanden zitten, zullen ze geconverteerd worden naar ID3v2.4 tags. Frames die niet ondersteund worden door TagLib zullen niet meegenomen worden. Alleen bestanden zonder niet opgeslagen wijzigingen zullen worden geconverteerd.

Hulpmiddelen → ID3v2.4 naar ID3v2.3 converteren

  Als er ID3v2.4 tags in de geselecteerde bestanden zitten, zullen ze geconverteerd worden naar ID3v2.3 tags. Alleen bestanden zonder niet opgeslagen wijzigingen zullen worden geconverteerd.

Hulpmiddelen → Afspelen

  Dit opent een eenvoudige werkbalk om geluidsbestanden af te spelen. Het bevat knoppen voor de basisbesturing (Afspelen/Pauzeren, Afspelen stoppen, Vorige track, Volgende track, Afsluiten), schuifregelaars voor positie en volume en een weergave van de huidige positie. Als meerdere bestanden zijn geselecteerd, zullen de geselecteerde tracks worden afgespeeld, anders zullen alle bestanden worden afgespeeld.

## Het menu Instellingen

Instellingen → Werkbalk tonen

  Schakelt het tonen van de werkbalk om.

Instellingen → Statusbalk tonen

  Schakelt het tonen van de statusbalk om, die langere acties toont zoals openen of opslaan van een map.

Instellingen → Afbeelding tonen

  Schakelt het tonen van het voorbeeld van de albumhoesillustratie om.

Instellingen → Automatisch tags verbergen

  Lege tags worden automatisch verborgen als deze optie actief is. De secties Bestand, Tag 1 en Tag 2 kunnen handmatig in- en uitgeklapt worden door op de overeenkomstige knoppen -/+ te klikken.

Instellingen → Sneltoetsen instellen...

  Opent een dialoog om sneltoetsen aan de meeste van de programmafuncties toe te kennen. Er zijn zelfs functies zonder overeenkomstig menu of knop beschikbaar, bijv. volgend bestand, vorig bestand, alles selecteren.

Instellingen → Kid3 configureren...

  Opent de configuratiedialoog, die bestaat uit pagina's voor tags, bestanden, gebruikeracties en netwerkinstellingen.

  Specifieke opties voor tags zijn te vinden op de pagina Tags, die zelf gescheiden zijn in vier tabbladen voor Tag 1, Tag 2, Tag 3 en Alle tags.

  Als Ingekorte velden markeren is geactiveerd, zullen ingekorte ID3v1.1 velden rood worden gemarkeerd. De tekstvelden van ID3v1.1 tags kunnen slechts 30 tekens hebben, het commentaar slechts 28 tekens. Ook het genre en de tracknummers zijn beperkt, zodat velden ingekort kunnen worden bij importeren of overgezet uit ID3v2. Ingekorte velden ed het bestand zullen rood gemarkeerd worden en de markering zal verwijder worden nadat het veld is bewerkt.

  Bij Tekstcodering voor ID3v1 is het mogelijk om de tekenset gebruikt in ID3v1 tags in te stellen. Deze codering wordt verondersteld ISO-8859-1 te zijn, het is dus aanbevolen om deze standaard waarde te behouden. Er zijn tags in gebruik met een verschillende codering, het kan dus hier ingesteld worden en de ID3v1 tags kunnen dan gekopieerd worden naar ID3v2 die Unicode ondersteunt.

  Het keuzevakje Track/totaal aantal tracks-formaat bestuurt of het veld tracknummer van ID3v2 tags eenvoudig het tracknummer bevat of extra het totaal aantal tracks in de map.

  Wanneer Genre als tekst in plaats van numerieke tekenreeks is geactiveerd, zullen alle ID3v2 genres opgeslagen worden als een teksttekenreeks zelfs als er een overeenkomende code is voor ID3v1-genres. Als deze optie niet is ingesteld, worden genres waarvoor een ID3v1-code bestaat opgeslagen als het nummer van de genrecode (in haakjes voor ID3v2.3). Dus het genre Metal wordt opgeslagen als "Metal" of "(9)" afhankelijk van deze optie. Genres die niet in de lijst met ID3v1 genres staan worden altijd opgeslagen als een teksttekenreeks. Het doel van deze optie is verbeterde compatibiliteit met apparaten die niet juist genrecodes interpreteren.

  Wanneer WAV-bestanden met kleine letters id3-chunk is geactiveerd, zullen de RIFF-chunk, gebruikt om ID3v2 tags in WAV-bestanden op te slaan, "id3 " worden genoemd in plaats van "ID3 ". Kid3 en andere toepassingen, die TagLib gebruiken, accepteren zowel de kleine letters als de hoofdletter variant bij lezen van WAV-bestanden, maar ze gebruiken "ID3 " bij schrijven van ID3v2 tags naar WAV-bestanden. Omdat er andere toepassingen zijn die alleen "id3 " accepteren (bijv. JRiver Media Center en foobar2000), deze optie kan gebruikt worden om tags aan te maken die gelezen kunnen worden door zulke toepassingen.

  Wanneer Standaard schending markeren is geactiveerd, ID3v2-velden, die de standaard schenden zullen in rood gemarkeerd worden. Details over de schending worden getoond in een tekstballon:

  - Moet uniek zijn

  - Nieuwe regel is verboden

  - Regeleinde is verboden

  - Eigenaar mag niet leeg zijn

  - Moet numeriek zijn

  - Moet numeriek of nummer/totaal zijn

  - Formaat is DDMM

  - Formaat is HHMM

  - Formaat is YYYY

  - Moet beginnen met een jaar en een spatie

  - Moet ISO 8601 datum/tijd zijn

  - Moet muzieksleutel zijn, 3 tekens, A-G, B, #, m, o

  - Moet ISO 639-2 taalcode hebben, 3 kleine letters

  - Moet ISRC-code zijn, 12 tekens

  - Moet een lijst zijn met tekenreeksen gescheiden door '|'

  - Heeft overvloedige witruimte

  De ID3 standaarddocumenten zijn online beschikbaar:

  - ID3 tag versie 2.3.0

  - ID3 tag versie 2.4.0 - Hoofdstructuur

  - ID3 tag versie 2.4.0 - Native Frames

  Tekstcodering definieert de standaard codering gebruikt voor ID3v2 frames en kan ingesteld worden op ISO-8859-1, UTF16 of UTF8. UTF8 is niet geldig voor ID3v2.3.0 frames; indien het is ingesteld zal in plaats daarvan UTF16 worden gebruikt. Voor ID3v2.4.0 frames zijn alle drie coderingen mogelijk.

  Versie gebruikt voor nieuwe tags bepaalt of nieuwe ID3v2 tags aangemaakt worden als versie 2.3.0 or 2.4.0.

  Tracknummercijfers is het aantal cijfers in velden voor tracknummers. Voorloopnullen worden gebruikt voor opvulling. Met een waarde 2 zal het tracknummer 5 ingesteld worden als "05".

  De keuzelijst Naam commentaarveld is alleen relevant voor Ogg/Vorbis en FLAC bestanden en stelt de naam van het veld gebruikt voor commentaar in. Verschillende toepassingen schijnen verschillende namen te gebruiken, "`COMMENT`" wordt gebruikt door XMMS, terwijl Amarok "`DESCRIPTION`" gebruikt.

  Het formaat van afbeeldingen in Ogg/Vorbis bestanden wordt bepaald door Naam afbeeldingsveld, die "`METADATA_BLOCK_PICTURE`" of "`COVERART`" kan zijn. De eerste is de officiële standaard en gebruikt hetzelfde formaat als afbeeldingen in FLAC tags. "`COVERART`" is een vroegere onofficiële manier om afbeeldingen in Vorbis commentaar in te voegen. Het kan gebruikt worden voor compatibiliteit met oudere afspelers.

  Als het keuzevakje Markeren indien groter dan (bytes) is geactiveerd, zullen bestanden die ingebedde albumhoesillustraties die over de gegeven grootte in bytes gaan gemarkeerd worden in rood. Dit kan gebruikt worden om bestanden te vinden met te grootte afbeeldingen die niet geaccepteerd worden door sommige toepassingen en spelers. De standaard waarde is 131072 bytes (128 kB).

  Aangepaste genres kan gebruikt worden om genres te definiëren, die niet beschikbaar zijn in de standaard genrelijst, bijv. "Gothic Metal". Zulke aangepaste genres zullen in het afrolvak Genre van Tag 2 verschijnen. Voor ID3v1.1 tags, kunnen slechts de voorgedefinieerde genres gebruikt worden.

  De lijst met aangepaste genres kan ook gebruikt worden om het aantal genres beschikbaar in het afrolvak Genre tot die typisch worden gebruikt. Als uw verzaling het meest bestaat uit muziek in de genres Metal, Gothic Metal, Ancient en Hard Rock, dan kunt u die genres invoeren en Alleen aangepaste genres tonen markeren. Het afrolvak Tag 2 Genre zal dan alleen deze vier genres bevatten en u zult er niet naar hoeven zoeken in de complete lijst met genres ervoor. In dit voorbeeld zullen alleen Metal en Hard Rock getoond worden in lijst met de tag 1 genres, omdat deze twee aangepaste items in genre standaard zijn in genres. Als Alleen aangepaste genres tonen niet actief is, zijn de aangepaste genres te vinden aan het eind van de lijst met genres.

  In Aangepaste frames, tot en met acht aangepaste framenamen kunnen gedefinieerd worden, die dan gebruikt worden zoals de geünificeerde frames, bijvoorbeeld als snelle toegang frames.

  Frames met snelle toegang definieert welke frametypen altijd getoond worden in de sectie Tag 2. Zulke frames kunnen dan toegevoegd worden zonder eerst de knop Toevoegen te gebruiken. De volgorde van deze frames met snelle toegang kan gewijzigd worden door slepen en loslaten van items.

  De keuzelijst Veldnaam van tracknummer is alleen relevant voor RIFF INFO en stelt de naam van het veld gebruikt voor tracknummers in. Tracknummers zijn niet in de originele RIFF-standaard gespecificeerd, er zijn toepassingen die "`ITRK`" gebruiken, anderen gebruiken "`IPRT`".

  Tagformaat bevat opties voor het formaat van de tags. Wanneer Formaat automatisch toepassen is geactiveerd wordt de formaatconfiguratie automatisch gebruikt bij bewerken van tekst in de regelbewerking. Validatie schakelt het valideren in in de besturing met waarden voor track/totaal en datum/tijd. De Conversie van hoofd/kleine letters kan ingesteld worden op Geen wijzigingen, Alles kleine letters, Alles hoofdletters, Eerste letter hoofdletter of Alle eerste letters hoofdletters. Om conversie tussen kleine en hoofdletters rekening houdend met de taalcode, kan een taalcode geselecteerd worden in de onderstaande keuzelijst. De vervangingslijst voor tekenreeksen kan ingesteld worden op willekeurige tekenreeksovereenkomsten. Om een nieuwe overeenkomst toe te voegen, selecteer de cel Van van een rij en voeg de te vervangen tekst in, ga daarna naar de kolom Naar en voer de vervangende tekst in. Wanneer de vervangende tekst begint of eindigt met een slash ("/"), wordt een reguliere expressie gebruikt. Voor reguliere expressies met vangstgroepen, worden \1, \2, ... in Naar vervangen door de tekenreeks gevangen door de overeenkomstige vangstgroep. Om een overeenkomstset te verwijderen geef de cel Van een lege waarde (e.g. door eerst een spatie te typen en daarna een backspace). Invoegen en verwijderen van rijen is ook mogelijk met een contextmenu die verschijnt wanneer de rechter muisknop wordt ingedrukt. Vervangen is alleen actief, als het keuzevak Tekenreeksvervanging is geactiveerd.

  De tabel in Waardering bevat de overeenkomst van sterwaardering naar de effectieve waarden opgeslagen in de tag. De frames met informatie over waardering staan in de lijst in de rij Waardering van de framelijst. Voor deze frames kan de waardering ingesteld worden door een aantal sterren uit vijf sterren te geven. Verschillende tagformaten en verschillende toepassingen gebruiken verschillende waarden om overeenkomst tussen de sterwaardering en de waarde opgeslagen in de tag te definiëren. Om het juiste aantal sterren te tonen zal Kid3 de overeenkomst in deze tabel opzoeken. De sleutel om de overeenkomst op te zoeken is de framenaam, bijvoorbeeld "RATING" wordt gebruikt voor Vorbis commentaar of "IRTD" voor RIFF INFO. Voor ID3v2 tags wordt een gecombineerde sleutel gebruikt bestaande uit de frame-ID "POPM" van het Popularimeterframe en zijn "Email"-veld, gescheiden door een punt. Daarom bestaan er verschillende sleutels voor ID3v2, e.g. "POPM.Windows Media Player 9 Series" voor de overeenkomst gebruikt door Windows Media Player en Explorer en eenvoudig "POPM" voor POPM-frames met een leeg "Email"-veld. Omdat er meerdere items voor "POPM" kunnen bestaan, is hun volgorde belangrijk. Wanneer Kid3 een nieuw Popularimeterframe oevoegt, zal het het eerste "POPM"-item gebruiken om de waarde te bepalen om te schrijven in het "Email"-veld. Deze vwaarde zal dan de te gebruiken overeenkomst specificeren voor sterwaarderingen. Het eerste item wordt ook gebruikt als er geen sleutel is gevonden, het is daarom het standaard item.

  Naast de kolom Naam met de sleutels, heeft de tabel kolommen 1 tot 5 om het overeenkomstige aantal sterren op te slaan dat is gegeven. Op de andere manier bepaalt het aantal sterren die getoond worden voor de waarde opgeslagen in het frame. De onderstaande rij in de tabel, bijvoorbeeld, bevat de waarden 1, 64, 128, 196, 255. De drempel voor het aantal te tonen sterren ligt tussen deze waarden en is compatibel met wat Windows® Explorer gebruikt.

  Tabel 3.2. Item in waarderingstabel

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

  Op de pagina Bestanden kan het keuzevak Laatst geopende bestanden geactiveerd worden zodat Kid3 het laatst geselecteerde bestand zal openen en selecteren wanneer het de volgende keer wordt gestart. Tijdstippen van bestanden behouden kan geactiveerd worden om de wijzigingsdatum van het bestand te behouden. Bestandsnaam voor hoes stelt de naam in die wordt gesuggereerd wanneer een ingebedde afbeelding geëxporteerd wordt naar een bestand. Met Tekstcodering (Exporteren, Afspeellijst) kan de codering ingesteld worden die wordt gebruikt bij schrijven van bestanden. Het standaard Systeem kan gewijzigd worden voor bijvoorbeeld afspeellijsten die van een ander apparaat moeten komen.

  Als Wijzigingen markeren actief is, worden gewijzigde velden gemarkeerd met een lichtgrijze achtergrond van het label.

  De sectie Bestandenlijst bepaalt welke bestanden getoond worden in de bestandenlijst. Een Filter kan gebruikt worden om de items in deze lijst te beperken tot bestanden met ondersteunde extensies. Om explicitier te specificeren welke mappen te tonen in de bestandenlijst of bepaalde mappen uit te sluiten, kunnen de opties Mappen insluiten en Mappen uitsluiten worden gebruikt. Ze kunnen jokertekens bevatten, bijvoorbeeld `*/Muziek/*` om alleen de map `Muziek` in te sluiten of `*/iTunes/*` om de map iTunes van de bestandenlijst uit te sluiten. Als meerdere van zulke uitdrukkingen gebruikt moeten worden, dan kunnen ze gescheiden worden door spaties of puntkomma's.

  De knoppen Bestandsnaam uit tag en Tag uit bestandsnaam in de sectie Formaat openen dialogen om de formaten te bewerken die beschikbaar zijn in de keuzelijsten Formaat (met pijlen omhoog en omlaag), die zijn te vinden in de sectie bestand van het hoofdvenster.

  Bestandsnaamformaat bevat opties voor het formaat van de bestandsnamen. Dezelfde opties als in Tagformaat zijn beschikbaar.

  De toegestane Maximum lengte voor bestandsnamen kan bovendien ingesteld worden. De meeste moderne bestandssystemen hebben een limiet van 255 tekens, maar als u bestanden naar een cd wilt branden, zou u de limiet op 64 moeten zetten. Als Voor afspeellijst en mapnamen is geactiveerd, zal het bestandsformaat ook gebruikt worden bij het aanmaken van afspeellijsten en hernoemen van mappen.

  De pagina Gebruikeracties bevat een tabel met de commando's die beschikbaar zijn in het contextmenu van de bestandenlijst. Voor kritische bewerkingen zoals bestanden verwijderen is het aan te bevelen om Bevestigen te markeren om een bevestigingsdialoog te laten verschijnen alvorens het commando uit te voeren. Uitvoer kan gemarkeerd worden om de uitvoer geschreven door consolecommando's (standaarduitvoer en standaardfouten) te tonen. Naam is de naam getoond in het contextmenu. Commando is de uit te voeren opdrachtregel. Argumenten kunnen doorgegeven worden met de volgende codes:

  - %F %{files} Bestandspaden (een lijst als meerdere bestanden zijn geselecteerd)

  - %f %{file} Bestandspad naar een enkel bestand

  - %uF %{urls} URL's (een lijst als meerdere bestanden zijn geselecteerd)

  - %uf %{url} URL naar een enkel bestand

  - %d %{directory} Map

  - %s %{title} Titel (Song)

  - %a %{artist} Artiest

  - %l %{album} Album

  - %c %{comment} Opmerking

  - %y %{year} Jaar

  - %t %{track} Track (e.g. 01)

  - %t %{track.n} Track met veldbreedte n (e.g. 001 for %{track.3})

  - %T %{tracknumber} Track (zonder voorloopnullen, e.g. 1)

  - %g %{genre} Genre

  - %b %{browser} commando om de webbrowser te starten

  - %q %{qmlpath} basismap van geleverde QML-bestanden

  De speciale code @separator kan ingesteld worden als een commando om een scheidingsteken in te voegen in het contextmenu van gebruikersacties. Menu-items kunnen in een submenu gestopt worden door ze te omgeven met commando's @beginmenu en @endmenu. De naam van het submenu wordt bepaald door de kolom Naam van het commando @beginmenu.

  Om QML-scripts uit te voeren wordt @qml gebruikt als een commandonaam. Het pad naar het QML-script wordt doorgegeven als een parameter. De geleverde scripts zijn te vinden in de map `%{qmlpath}/script/` (op Linux® typisch `/usr/share/kid3/qml/script/`, op Windows `qml/script/` binnen de installatiemap en op macOS® in de app-map `kid3.app/Contents/Resources/qml/script/`). Eigen scripts kunnen in elke map worden opgeslagen. Als de QML code GUI-componenten gebruiken, moet @qmlview worden gebruikt in plaats van @qml. Extra parameters worden doorgegeven aan het QML-script waar ze beschikbaar zullen zijn via de functie `getArguments()`. Een overzicht van enige functies en eigenschappen die beschikbaar zijn in QML zijn te vinden in de appendix QML-interface.

  Het commando dat ingevoegd zal worden met %{browser} kan gedefinieerd worden in het bovenstaande tekstbewerkingsvak Webbrowser. Commando's beginnend met %{browser} kunnen gebruikt worden om informatie op te halen over de geluidsbestanden uit het web, bijvoorbeeld

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

  zal de liedtesksten voor de huidige song opvragen in LyricWiki. De "u" in %u{artist} en %u{title} worden gebruikt om de artiest %{artist} en song %{title}-informatie te URL-coderen. Het is gemakkelijk om uw eigen opvragingen op dezelfde manier te definiëren, bijv. zoeken naar een afbeelding met Google:

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

  Om een albumhoesillustratie aan tag 2 toe te voegen kunt u met Google of Amazon zoeken naar afbeeldingen met de boven beschreven commando's. De afbeelding kan toegevoegd worden aan de tag met slepen en loslaten. U kunt ook een afbeelding met Toevoegen toevoegen, selecteer dan het afbeeldingframe en importeer een afbeeldingsbestand of plak deze uit het klembord. Afbeeldingframes worden ondersteund voor ID3v2, MP4, FLAC, Ogg en ASF-tags.

  Om items in de tabel toe te voegen en te verwijderen kan een contextmenu worden gebruikt.

  De pagina Netwerk bevat alleen een veld om het proxy-adres in te voegen en optioneel de poort, gescheiden door een dubbelepunt. De proxy zal gebruikt worden bij importeren vanaf een Internetserver wanneer het keuzevakje is geactiveerd.

  In de pagina Plug-ins page, kunnen beschikbare plug-ins ingeschakeld of uitgeschakeld worden. De plug-ins zijn gescheiden in twee secties. De lijst Metagegevens-plug-ins & Prioriteit bevatten plug-ins die geluidsbestandformaten ondersteunen. De volgorde van de plug-ins is belangrijk omdat ze van boven naar beneden worden geprobeerd. Sommige formaten worden ondersteund door meerdere plug-ins, bestanden zullen dus geopend worden met de eerste plug-in die ze ondersteunt. De TaglibMetadata ondersteunt de meeste formaten, als het bovenaan de lijst staat, zal het de meeste bestanden openen. Als u een andere plug-in voor een bestandsformaat wilt gebruiken, ga dan na dat het in de lijst staat vóór de plug-in TaglibMetadata. Details over de metagegevensplug-in en waarom u deze zou willen gebruiken in plaats van TagLib staan hieronder.

  - Id3libMetadata: gebruikt id3lib voor ID3v1.1 en ID3v2.3 tags in MP3, MP2, AAC files. Ondersteunt enkele frametypen meer dan TagLib.

  - OggFlacMetadata: gebruikt libogg, libvorbis, libvorbisfile voor Ogg-bestanden en bovendien libFLAC++ en libFLAC voor FLAC-bestanden. Dit zijn de officiële bibliotheken voor deze formaten.

  - TaglibMetadata: gebruikt TagLib die heel wat audiobestandformaten ondersteunt. Het kan gebruikt worden voor alle audiobestanden ondersteund door Kid3.

  - Mp4v2Metadata: mp4v2 is oorspronkelijk gebruikt door Kid3 om M4A-bestanden te ondersteunen. Kan gebruikt worden in geval van problemen met de ondersteuning van M4A van TagLib.

  De sectie Beschikbare plug-ins bevat een lijst met de overblijvende plug-ins. Hun volgorde is niet belangrijk, maar ze kunnen in- of uitgeschakeld worden met de keuzevakjes.

  - AmazonImport: Gebruikt voor de functie Importeren van Amazon....

  - DiscogsImport: Gebruikt voor de functie Importeren van Discogs....

  - FreedbImport: Gebruikt voor de functie Importeren van gnudb.org....

  - MusicBrainzImport: Gebruikt voor de functie Importeren van MusicBrainz Release....

  - AcoustidImport: gebruikt voor de functie Uit MusicBrainz Fingerprint importeren..., die afhangt van de bibliotheken Chromaprint en libav.

  Plug-ins die uitgeschakeld zijn zullen niet geladen worden. Dit kan gebruikt worden om gebruik van hulpbronnen en opstarttijd te optimaliseren. De instellingen op deze pagina zijn alleen effectief na opnieuw starten van Kid3.

## Het menu Help

Help → Handboek van Kid3

  Opent dit handboek.

Help → Info over Kid3

  Toont een korte formatie over Kid3.

# Hoofdstuk 4. kid3-cli

## Commando's

kid3-cli biedt een opdrachtregelinterface voor Kid3. Als een mappad wordt gebruikt, wordt de map geopend. Als een of meer bestandspaden wordt gegeven, wordt de gemeenschappelijke map geopened en de bestanden wprden geselecteerd. Opvolgende commando's zullen dan op deze bestanden werken. Commando's worden gespecificeerd met opties `-c`. Als meerdere commando's worden doorgegeven, dan worden ze in de gegeven volgorde uitgeschakeld. Als bestanden gewijzigd worden door de commando's, worden ze aan het einde opgeslagen. Als er geen commando-opties zijn doorgegeven, zal kid3-cli in een interactieve modus starten. Commando's kunnen ingevoerd worden en zullen werken op de huidige selectie. De volgende secties bieden een lijst met alle beschikbare commando's.

### Help

`help` [`COMMANDONAAM`]

Toont help over de parameters van `COMMANDONAAM` of over alle commando's als geen commandonaam is gegeven.

### Tijdslimiet

`timeout` [ default | off | `TIJD` ]

Overschrijf de standaard timeout van het commando. De CLI-commando's breken af nadat een timeout specifiek voor het commando is afgelopen. Deze timeout is 10 seconden voor ls en albumart, 60 seconden voor autoimport en filter en 3 seconden voor alle andere commando's. Als erg veel bestanden verwerkt moeten worden, kunnen deze timeout's te beperkt kunnen zijn, de timeout voor alle commando's kan ingesteld worden op `TIJD` ms, geheel uitgeschakeld of op de standaard waarden worden gelaten.

### Toepassing afsluiten

`exit` [force]

Toepassing verlaten. Als er gewijzigde niet opgeslagen bestanden zijn, is de parameter `force` vereist.

### Map wijzigen

`cd` [`MAP`]

Als geen `MAP` is gegeven, ga naar de persoonlijke map. Als een map is gegeven, ga in die map. Als een of meer bestandspaden zijn gegeven, ga naar hun gemeenschappelijke map en selecteer de bestanden.

### Toon de bestandsnaam van de huidige map.

`pwd`

Toon de bestandsnaam van de huidige werkmap.

### Mappenlijst

`ls`

De inhoud van de huidige map tonen. Dit komt overeen met de bestandslijst in de GUI van Kid3. Vijf tekens voor de bestandsnamen tonen de status van het bestand.

- `>` Bestand is geselecteerd.

- `*` Bestand is gewijzigd.

- `1` Bestand heeft een tag 1, anders wordt '`-`' getoond.

- `2` Bestand heeft een tag 2, anders wordt '`-`' getoond.

- `3` Bestand heeft een tag 3, anders wordt '`-`' getoond.

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

    > 12- 02 We hebben alleen deze.mp3
     *1-- 03 Outro.mp3

In dit voorbeeld hebben alle bestanden een tag 1, het tweede bestand heeft ook een tag 2 en is geselecteerd. Het derde bestand is gewijzigd.

### De gewijzigde bestanden opslaan

`save`

### Bestand selecteren

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

Om alle bestanden te selecteren, voer `select all` in, om selectie van alle bestanden ongedaan te maken, voer `select none` in. Om de bestanden in de huidige map te verplaatsen begin met `select first`, ga daarna verder met `select next` of achterwaarts met `select previous`. Specifieke bestanden kunnen toegevoegd worden aan de huidige selectie door hun bestands namen in te geven. Jokertekens zijn mogelijk, dus `select *.mp3` zal alle MP3-bestanden in de huidige map selecteren.

    kid3-cli> select first
    kid3-cli> ls

    > 1-- 01 Intro.mp3
      12- 02 We hebben alleen deze.mp3
     *1-- 03 Outro.mp3
    kid3-cli> select next
    kid3-cli> ls
      1-- 01 Intro.mp3

    > 12- 02 We hebben alleen deze.mp3
     *1-- 03 Outro.mp3
    kid3-cli> select *.mp3
    kid3-cli> ls

    > 1-- 01 Intro.mp3

    > 12- 02 We hebben alleen deze.mp3

    >*1-- 03 Outro.mp3

### Tag selecteren

`tag` [`TAG-NUMMERS`]

Veel commando's hebben een optionele parameter `TAG-NUMMERS`, die specificeert of het commando werkt op tag 1, 2 of 3. Als deze parameter ontbreekt worden de standaard tagnummers gebruikt, die door dit commando worden gezet. Bij opstarten worden ze ingesteld op `12` wat betekent dat informatie wordt gelezen uit tag 2 indien beschikbaar, anders uit tag 1; wijzigingen worden gedaan op tag 2. ``TAG-NUMMERS`` kan ingesteld worden op `1`, `2` of `3` om alleen te werken op de overeenkomstige tag. Als de parameter ontbreekt wordt de huidige instelling getoond.

### Tagframe ophalen

`get` [ all | `FRAME-NAAM` ] [`TAG-NUMMERS`]

Dit commando kan gebruikt worden om de waarde van een specifiek tagframe te lezen of informatie te krijgen over alle tagframes (als het argument ontbreekt of `all` wordt gebruikt). Gewijzigde frames worden gamarkeerd met een '`*`'.

    kid3-cli> get
    Bestand: MPEG 1 Layer 3 192 kbps 44100 Hz Joint Stereo
      Naam: 01 Intro.mp3
    Tag 1: ID3v1.1
      Titel         Intro
      Artiest       One Hit Wonder
      Album         Let's Tag
      Datum         2013
      Tracknummer   1
      Genre         Pop
    kid3-cli> get title
    Intro

Om de inhoud van een afbeeldingsframe in een bestand op te slaan, gebruik

    get picture:'/pad/naar/map.jpg'

Om gesynchroniseerde liedteksten in een LRC-bestand op te slaan, gebruik

    get SYLT:'/pad/naar/liedtekst.lrc'

Het is mogelijk om alleen een specifiek veld uit een frame te halen, bijvoorbeeld `get POPM.Email` voor het e-mailveld van een popularimeterframe. Als een bestand meerdere frames van dezelfde soort heeft, kunnen de verschillende frames geïndexeerd worden met rechte haken, bijvoorbeeld de eerste uitvoerder uit een Vorbis-commentaar kan opgehaald worden met `get performer[0]`, de tweede met `get performer[1]`.

De pseudoveldnaam "selected" kan gebruikt worden om te controleren of een frame is geselecteerd, bijvoorbeeld `get artist.selected` zal `1` teruggeven als het artiestframe is geselecteerd, anders `0`.

### Tagframe instellen

`set` {`FRAMENAAM`} {`FRAMEWAARDE`} [`TAG-NUMMERS`]

Dit commando stelt de waarde van een specifiek tagframe in. Als `FRAMEWAARDE` leeg is, wordt het frame verwijderd.

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

Om de inhoud van een afbeeldingsframe uit een bestand in te stellen, gebruik

    set picture:'/path/to/folder.jpg' 'Beschrijving afbeelding'

Om gesynchroniseerde liedteksten uit een LRC-bestand in te stellen, gebruik

    set SYLT:'/pad/naar/liedtekst.lrc' 'Beschrijving liedtekst'

Om een specifiek veld van een frame in te stellen kan de veldnaam gegeven worden na een punt, bijv. om het veld Counter in te stellen van een populariteistmeterframe, gebruik

    set POPM.Counter 5

Een toepassing voor veldspecificaties is he geval waar u een aangepast TXXX-frame wilt met beschrijving van "rating" in plaats van een standaard Popularimeter-frame (die door sommige plug-ins lijkt te worden gebruikt). U kunt zo'n TXXX-ratingframe aanmaken met kid3-cli, u moet echter eerst een TXXX-frame aanmaken met beschrijving "rating" en daarna de waarde van dit frame instellen op de waarde van rating.

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

Het eerste commando zal een bestaand POPM-frame verwijderen, omdat als zo'n frame bestaat, `set rating 5` het POPM-frame zou instellen en niet het TXXX-frame. Een andere mogelijkheid zou zijn `set TXXX.Text 5` te gebruiken, maar dit zou alleen werken als er geen ander TXXX-frame aanwezig is.

Om meerdere frames van dezelfde soort in te stellen kan een index gegeven worden in rechte haken, bijv. om meerdere uitvoerders in een Vorbis commentaar in te stellen, gebruik

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

Om bepaalde frames te selecteren voor een actie kopiëren, plakken of verwijderen kan de pseudoveldnaam "selected" worden gebruikt. Normaal worden alle frames geselecteerd, om alle selecties ongedaan te maken, gebruik `set '*.selected' 0`, daarna bijvoorbeeld `set artist.selected 1` om het artiestframe te selecteren.

### Ongedaan maken

`revert`

Alle wijzigingen in de geselecteerde bestanden terugdraaien (of alle bestanden als er geen bestanden zijn geselecteerd).

### Uit bestand importeren

`import` {`BESTAND`} {`FORMAATNAAM`} [`TAG-NUMMERS`]

Tags worden geïmporteerd uit het bestand `BESTAND` in het formaat met de naam `FORMAATNAAM` (bijv. `"CSV unquoted"`, zie Importeren).

Als `tags` is gegeven voor `BESTAND`, worden tags geïmporteerd uit andere tags. In plaats van `FORMAATNAAM` parameters zijn `BRON` en `EXTRACTIE` vereist, zie Uit tags importeren. Om het importeren uit tags toe te passen op de geselecteerde bestanden, gebruik `tagsel` in plaats van `tags`. Deze functie ondersteunt ook uitvoer van de uitgepakte waarde door een waarde `EXTRACTIE` te gebruiken met de waarde `%{__return}(.+)`.

### Automatisch importeren

`autoimport` [`PROFIELNAAM`] [`TAG-NUMMERS`]

In bulk importeren met profiel `PROFIELNAAM` (zie Automatisch importeren, wordt `"All"` gebruikt indien weggelaten).

### Hoesillustratie van album downloaden

`albumart` {`URL`} [all]

Stelt de albumillustraties in door een afbeelding te downloaden uit `URL`. De regels gedefinieerd in de dialoog Bladeren in hoesillustraties worden gebruikt om algemene URL's (bijv. uit Amazon) om te vormen naar een URL van een afbeelding. Om de albumhoes in te stellen uit een lokaal afbeeldingsbestand, gebruik het commando set.

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

### Naar bestand exporteren

`export` {`BESTAND`} {`FORMAATNAAM`} [`TAG-NUMMERS`]

Tags worden geëxporteerd uit het bestand `BESTAND` in het formaat met de naam `FORMAATNAAM` (bijv. `"CSV unquoted"`, zie Exporteren).

### Afspeellijst aanmaken

`playlist`

Afspeellijst aanmaken in het formaat ingesteld in de configuratie, zie Afspeellijst aanmaken.

### Bestandsnaamformaat toepassen

`filenameformat`

Bestandsnaamformaat toepassen in de configuratie instellen, zie Bestandsnaamformaat toepassen.

### Tagformaat toepassen

`tagformat`

Tagnaamformaat toepassen in de configuratie instellen, zie Tagformaat toepassen.

### Tekst-codering toepassen

`textencoding`

Tekstcodering toepassen in de configuratie instellen, zie Tekstcodering toepassen.

### Hernoem map

`renamedir` [`FORMAAT`] [ create | rename | dryrun ] [`TAG-NUMMERS`]

Hernoem of maak mappen aan uit de waarden in de tags volgens een gegeven `FORMAAT` (bijv. `%{artist} - %{album}`, zie Map hernoemen), als geen formaat is gegeven, het formaat gedefinieerd in de dialoog Map hernoemen wordt gebruikt. De standaard modus is `rename`; om mappen aan te maken, moet `create` expliciet gegeven worden. De acties hernoemen zullen onmiddellijk uitgevoerd worden, om gewoon te zien wat gedaan zou worden, gebruik de optie `dryrun`.

### Aantal tracks

`numbertracks` [`TRACKNUMMER`] [`TAG-NUMMERS`]

Nummer de geselecteerde tracks beginnend met `TRACKNUMMER` (`1` indien weggelaten).

### Filter

`filter` [ `FILTERNAAM` | `FILTERFORMAAT` ]

Filter de bestanden zodat alleen de bestanden overeenkomend met het `FILTERFORMAAT` zichtbaar zijn. De naam van een voorgedefinieerde filterexpressie (bijv. `"Niet overeenkomende tag in bestandsnaam"`) kan gebruikt worden in plaats van een filterexpressie, zie Filter.

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

### ID3v2.3 naar ID3v2.4 converteren

`to24`

### ID3v2.4 naar ID3v2.3 converteren

`to23`

### Bestandsnaam uit tag

`fromtag` [`FORMAAT`] [`TAG-NUMMERS`]

Stel de bestandsnamen van de geselecteerde bestanden in uit waarden in de tags, bijvoorbeeld `fromtag '%{track} - %{title}' 1`. Als geen formaat is gespecificeerd, wordt het formaat ingesteld in de GUI gebruikt.

### Tag uit bestandsnaam

`totag` [`FORMAAT`] [`TAG-NUMMERS`]

Stel de tagframes in uit de bestandsnamen, bijvoorbeeld `totag '%{albumartist} - %{album}/%{track} %{title}' 2`. Als geen formaat is gespecificeerd, wordt het formaat ingesteld in de GUI gebruikt. Als het formaat van de bestandsnaam niet overeenkomt met dit patroon, worden een paar andere algemeen gebruikte formaten geprobeerd.

### Tag naar andere tag

`syncto` {`TAG-NUMMER`}

De tagframes uit een tag naar de andere tag kopiëren, bijv. om de ID3v2 tag uit de ID3v1 tag in te stellen, gebruik `syncto 2`.

### Kopiëren

`copy` [`TAG-NUMMER`]

Kopieer de tag-frames van het geselecteerde bestand naar de interne kopieerbuffer. Ze kunnen dan ingesteld worden in een ander bestand met het commando paste.

Om alleen een subset van de frames te kopiëren, gebruik het pseudoveld "selected" met het commando set. Om bijvoorbeeld alleen het schijfnummer en de copyright-frames te kopiëren, gebruik

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

### Plakken

`paste` [`TAG-NUMMER`]

Stel tag-frames in uit de inhoud van de copy-buffer in de geselecteerde bestanden.

### Verwijderen

`remove` [`TAG-NUMMER`]

Een tag verwijderen.

Het is mogelijk om slechts een subset van de frames te verwijderen door ze te selecteren zoals beschreven in het copy commando.

### Kid3 configureren

`config` [`OPTIE`] [`WAARDE`]

Een configuratie-optie opvragen of instellen.

De `OPTIE` bestaat uit een groepsnaam en een eigenschapsnaam gescheiden door een punt. Wanneer geen `OPTIE` is gegeven, worden alle beschikbare groepen getoond. Als alleen een groepsnaam is gegeven, worden alle beschikbare eigenschappen van de groep getoond. Voor een gegeven groep en eigenschap, wordt de huidige geconfigureerde waarde getoond. Om de instelling te wijzigen, kan de nieuwe waarde ingegeven worden als een tweede argument.

Als de waarde van een instelling een lijst is, moeten alle lijstelementen gegeven worden als argumenten. Dit betekent dat om een element aan een bestaande lijst met elementen toe te voegen, alle bestaande elementen ingegeven moeten worden gevolgd door het nieuwe element. In zo'n situatie is het gemakkelijker om de JSON modus te gebruiken, waar de huidige lijst gekopieerd kan worden met het nieuwe element achtergevoegd.

### Programma of QML-script uitvoeren

`execute` [@qml] {`BESTAND`} [`ARGS`]

Een QML-script of een uitvoerbaar programma uitvoeren.

Zonder `@qml` wordt een programma uitgevoerd met argumenten. Wanneer `@qml` als het eerste argument is gegeven, zijn de volgende argumenten de argumenten van het QML-script. Bijvoorbeeld, de tags van een map kunnen geëxporteerd worden naar het bestand `export.csv` met het volgende commando.

    kid3-cli -c "execute @qml
    /usr/share/kid3/qml/script/ExportCsv.qml export.csv"
    /pad/naar/map/

Hier is `export.csv` het argument voor het script `ExportCsv.qml`, terwijl `/pad/naar/map/` het argument ``BESTAND`` is voor kid3-cli.

## Voorbeelden

Titel instellen met een apostrophe. Commando's doorgegeven aan kid3-cli met `-c` moeten in tussen accenten staan als ze niet alleen bestaan uit een enkel woord. Als zo'n commando zelf een argument heeft met spaties, moet dat argument ook tussen accenten staan. In UNIX®-shells kunnen accenten of aanhalingstekens gebruikt worden, maar op de Windows Command Prompt, is het belangrijk dat de buitenste bestaan uit aanhalingstekens en voor de binnenste, accenten worden gebruikt. Als de tekst tussen de accenten een enkele accent bevat, moet deze een escape krijgen met een backslash teken, zoals getoond in het volgende voorbeeld:

    kid3-cli -c "set title 'I\'ll be there for you'" /pad/naar/map

Albumhoes in alle bestanden van een map instellen met de functie bulkimport:

    kid3-cli -c "autoimport 'Cover Art'" /pad/naar/map

Commentaarframes verwijderen en het tagformaat toepassen in beide tags van alle MP3-bestanden van een map:

    kid3-cli -c "set comment '' 1" -c "set comment '' 2" \
    -c "tagformat 1" -c "tagformat 2" /pad/naar/map/*.mp3

Tag 2 automatisch importeren, synchroniseren naar tag 1, bestandsnamen uit tag 2 en tenslotte een afspeellijst aanmaken:

    kid3-cli -c autoimport -c "syncto 1" -c fromtag -c playlist \
      /pad/naar/map/*.mp3

Voor alle bestanden met een ID3v2.4.0 tag, converteer naar ID3v2.3.0 en verwijder het arrangeur-frame:

    kid3-cli -c "filter 'ID3v2.4.0 Tag'" -c "select all" -c to23 \
      -c "set arranger ''" /pad/naar/map

Dit Python script gebruikt kid3-cli om iTunes geluidscontrole iTunNORM-frames te genereren uit informatie over afspeelversterking.

    #!/usr/bin/env python3
    # iTunes geluidscontrole genereren uit ReplayGain.
    import os, sys, subprocess

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

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

## JSON-formaat

Om het gemakkelijk te maken om resultaten van kid3-cli te ontleden, is het mogelijk de uitvoer in JSON formaat te krijgen. Wanneer het verzoek in JSON formaat is, zal het antwoord ook in JSON zijn. Een compact formaat van het verzoek zal ook een compacte representatie van het antwoord zijn. Als het verzoek een "id"-veld bevat, wordt aangenomen dat het een JSON-RPC verzoek is en het antwoord zal een "jsonrpc" veld zijn en het "id" van het verzoek. Het verzoekformaat gebruikt dezelfde commando's als het standaard CLI, het "method" veld bevat het commando en de parameters (indien aanwezig) zijn gegeven in de "params" lijst. Het antwoord bevat een "result" object, dat ook nul kan zijn als het overeenkomstige kid3-cli commando geen resultaat terugstuurt. In geval van een fout wordt een "error" object teruggestuurd met "code" and "message" velden zoals gebruikt in JSON-RPC.

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

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

# Hoofdstuk 5. Dankbetuigingen en licentie

Kid3

Programma geschreven door Urs Fleisch `<ufleisch at users.sourceforge.net>`

meld fouten vertaling Freek de Kruijf

FDL

GPL

# Bijlage A. Installatie

## Hoe Kid3 te verkrijgen

Kid3 is te vinden op https://kid3.kde.org.

## Vereisten

Kid3 heeft Qt™ nodig. KDE is aanbevolen maar niet noodzakelijk, omdat Kid3 ook gecompileerd kan worden als een Qt™ toepassing. Kid3 kan gecompileerd worden voor systemen waar deze bibliotheken beschikbaar zijn, bijv. voor GNU/Linux®, Windows® en macOS®. Om Ogg/Vorbis bestanden een tag te geven, zijn libogg, libvorbis en libvorbisfile vereist, voor FLAC bestanden libFLAC++ en libFLAC. id3lib worden gebruikt voor MP3 bestanden. Deze vier formaten worden ook onderrteund door TagLib, die ook Opus, MPC, APE, MP2, Speex, TrueAudio, WavPack, WMA, WAV, AIFF bestanden en tracker-modules behandelen. Om te importeren uit "acoustic fingerprints", worden Chromaprint en libav gebruikt.

Kid3 is beschikbaar voor de meeste Linux® distributies, Windows® en macOS®. Verwijzingen zijn te vinden op https://kid3.kde.org.

## Compilatie en installatie

U kunt Kid3 compileren met of zonder KDE. Zonder KDE is Kid3 een eenvoudige Qt™ toepassing en ontbreken enkele configuratie en sessiefuncties.

Voor een KDE versie, ga naar de hoogste map en typ

    % cmake .
    % make
    % make install

Om te compileren voor andere versies van Qt™ of KDE, stel de overeenkomstige `cmake`-opties in.

Als niet alle bibliotheken aanwezig zijn wordt Kid3 gebouwd met verminderde functionaliteit. U zult er dus op moeten letten dat alle gewenste ontwikkelpakketten ge|ïnstalleerd zijn. Aan de andere kant bestuurt `cmake`-options welke bibliotheken mee gecompileerd worden. De standaard is `-DWITH_TAGLIB:BOOL=ON -DWITH_MP4V2:BOOL=OFF -DWITH_ID3LIB:BOOL=ON -DWITH_CHROMAPRINT:BOOL=ON -DWITH_VORBIS:BOOL=ON -DWITH_FLAC:BOOL=ON` . Deze opties kunnen uitgeschakeld worden met `OFF`.

Om Kid3 te bouwen als een Qt™ toepassing zonder KDE, gebruik de `cmake` optie `-DWITH_APPS=Qt`. Om zowel een KDE als een Qt™ toepassing te bouwen, zet `-DWITH_APPS="Qt;KDE"`.

Om een specifieke Qt™ installatie te gebruiken, zet `-DQT_QMAKE_EXECUTABLE=/pad/naar/qmake`.

Generatie van RPM-pakketten wordt ondersteund door het bestand `kid3.spec`, voor Debian® pakketten, voer `build.sh deb` uit.

De Qt™ toepassing kan ook gecompileerd worden voor Windows® en macOS®. Het script `build.sh` kan gebruikt worden om alle vereiste bibliotheken te downloaden en te bouwen en een Kid3 pakket te maken.

## Configuratie

Met KDE worden de instellingen opgeslagen in `.config/kid3rc`, de status van de toepassing in `.local/share/kid3/kid3staterc`. Als een Qt™ toepassing is dit in bestand `.config/Kid3/Kid3.conf`. Op Windows® is het configuratiebestand opgeslagen in de registry. Op macOS® in een plist-bestand.

De omgevingsvariabele `KID3_CONFIG_FILE` kan gebruikt worden om het pad van het configuratiebestand in te stellen.

# Bijlage B. D-Bus-interface

## Voorbeelden met D-Bus

Op Linux® kan een D-Bus-interface gebruikt worden om Kid3 te besturen door scripts. Scripts kunnen geschreven worden in elke taal met D-Bus-bindingen (bijv. in Python) en kunnen toegevoegd worden aan de Gebruikeracties om de functionaliteit van Kid3 uit te breiden.

De artiest in tag 2 van het huidige bestand kan ingesteld worden op de waarde "One Hit Wonder" met de volgende code:

Shell

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

  of gemakkelijker met qdbus (qdbusviewer van Qt™ om het interface in een GUI te onderzoeken):

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

Python

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

Perl

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

## D-Bus API

De D-Bus API is gespecificeerd in `org.kde.Kid3.xml`. Het Kid3 interface heeft de volgende methoden:

### Bestand of map openen

`boolean openDirectory(` | pad`)`; |

`tekenreeks pad`;

`pad`

  pad naar bestand of map

Geeft true terug indien OK.

### Ontlaad de tags van alle bestanden die niet zijn gewijzigd of geselecteerd

`unloadAllTags(` | `)`; |

### Alle gewijzigde bestanden opslaan

`boolean save(` | `)`; |

Geeft true terug indien OK.

### Krijgt een gedetaileerde foutmelding geleverd door sommige methoden

`string getErrorMessage(` | `)`; |

Geeft een gedetailleerde foutmelding terug.

### Draait wijzigingen in de geselecteerde bestanden terug

`ongedaan maken(` | `)`; |

### Start een automatische bulkimport

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

`int32 tagMask`;
`string profileName`;

`tagMask`

  tag mask (bit 0 voor tag 1, bit 1 voor tag 2)

`profileName`

  naam van te gebruiken bulkimportprofiel

### Tags importeren uit een bestand

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

`int32 tagMask`;
`string path`;
`int32 fmtIdx`;

`tagMask`

  tagbit (1 voor tag 1, 2 voor tag 2)

`pad`

  pad van bestand

`fmtIdx`

  index van formaat

Geeft true terug indien OK.

### Tags importeren uit andere tags

`importFromTags(` | tagMask, |
| source, |
| extraction`)`; |

`int32 tagMask`;
`string source`;
`string extraction`;

`tagMask`

  tagbit (1 voor tag 1, 2 voor tag 2)

`bron`

  formaat om brontekst uit tags op te halen

`extractie`

  reguliere expressie met framenamen en vangsten om uit brontekst te halen

### Tags importeren uit andere tags uit geselecteerde bestanden

`array importFromTagsToSelection(` | tagMask, |
| source, |
| extraction`)`; |

`int32 tagMask`;
`string source`;
`string extraction`;

`tagMask`

  tagbit (1 voor tag 1, 2 voor tag 2)

`bron`

  formaat om brontekst uit tags op te halen

`extractie`

  reguliere expressie met framenamen en vangsten om uit brontekst te halen

`returnValues`

  opgehaalde waarde voor "%{__return}(.+)"

### Hoesillustratie van album downloaden

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

`string url`;
`boolean allFilesInDir`;

`url`

  URL van afbeeldingsbestand of albumillustratiebron

`allFilesInDir`

  true om de afbeelding aan alle bestanden in de map toe te voegen

### Tags exporteren naar een bestand

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

`int32 tagMask`;
`string path`;
`int32 fmtIdx`;

`tagMask`

  tagbit (1 voor tag 1, 2 voor tag 2)

`pad`

  pad van bestand

`fmtIdx`

  index van formaat

Geeft true terug indien OK.

### Een afspeellijst aanmaken

`boolean createPlaylist(` | `)`; |

Geeft true terug indien OK.

### Items uit een afspeellijst halen

`array getPlaylistItems(` | path`)`; |

`string path`;

`pad`

  Pad naar afspeellijstbestand

Geeft lijst terug met absolute paden naar items in afspeellijst.

### Items van een afspeellijst instellen

`boolean setPlaylistItems(` | pad, |
| items`)`; |

`string pad`;
`array items`;

`pad`

  Pad naar afspeellijstbestand

`items`

  Lijst met absolute paden naar items in afspeellijst

Geeft true terug indien OK, false indien niet alle items zijn gevonden en toegevoegd of opslaan is mislukt.

### Sluit de toepassing

`afsluiten(` | `)`; |

### Alle bestanden selecteren

`selectAll(` | `)`; |

### Selectie van alle bestanden ongedaan maken

`deselectAll(` | `)`; |

### Het eerste bestand als het huidige bestand instellen

`boolean firstFile(` | `)`; |

Geeft true terug als er een eerste bestand is.

### Het vorige bestand als het huidige bestand instellen

`boolean previousFile(` | `)`; |

Geeft true terug als er een vorig bestand is.

### Het volgende bestand als het huidige bestand instellen

`boolean nextFile(` | `)`; |

Geeft true terug als er een volgend bestand is.

### Het eerste bestand selecteren

`boolean selectFirstFile(` | `)`; |

Geeft true terug als er een eerste bestand is.

### Het vorige bestand selecteren

`boolean selectPreviousFile(` | `)`; |

Geeft true terug als er een vorig bestand is.

### Het volgende bestand selecteren

`boolean selectNextFile(` | `)`; |

Geeft true terug als er een volgend bestand is.

### De huidige bestand selecteren

`boolean selectCurrentFile(` | `)`; |

Geeft true terug als er een huidig bestand is.

### Het huidige bestandsitem uit- of invouwen als het een map is

`boolean expandDirectory(` | `)`; |

Een bestandslijstitem is een map als getFileName() een naam teruggeeft met '/' als het laatste teken.

Geeft true terug als het huidige bestands item een map is.

### Het bestandsnaamformaat toepassen

`applyFilenameFormat(` | `)`; |

### Het tagformaat toepassen

`applyTagFormat(` | `)`; |

### Tekst-codering toepassen

`applyTextEncoding(` | `)`; |

### Mapnaam uit de tags instellen

`boolean setDirNameFromTag(` | tagMask, |
| format, |
| create`)`; |

`int32 tagMask`;
`string format`;
`boolean create`;

`tagMask`

  tag mask (bit 0 voor tag 1, bit 1 voor tag 2)

`opmaak`

  mapnaamformaat

`aanmaken`

  true om aan te maken, false om te hernoemen

Geeft true terug indien OK, anders is de foutmelding beschikbaar met getErrorMessage().

### Opvolgende tracknummers instellen in de geselecteerde bestanden

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

`int32 tagMask`;
`int32 firstTrackNr`;

`tagMask`

  tag mask (bit 0 voor tag 1, bit 1 voor tag 2)

`firstTrackNr`

  te gebruiken nummer voor het eerste bestand

### De bestanden filteren

`filter(` | expression`)`; |

`string expression`;

`expressie`

  filterexpressie

### ID3v2.3 tags naar ID3v2.4 converteren

`convertToId3v24(` | `)`; |

### ID3v2.4 tags naar ID3v2.3 converteren

`convertToId3v23(` | `)`; |

Geeft true terug indien OK.

### Pad van map ophalen

`string getDirectoryName(` | `)`; |

Geeft absolute pad naar map terug.

### Naam van huidig bestand ophalen

`string getFileName(` | `)`; |

Geeft absolute bestandsnaam terug, eindigt met "/" als het een map is.

### Naam van geselecteerd bestand instellen

`setFileName(` | naam`)`; |

`string naam`;

`naam`

  bestandsnaam

Het bestand zal hernoemd worden wanneer de map wordt opgeslagen.

### Te gebruiken formaat instellen bij instellen van de bestandsnaam uit de tags

`setFileNameFormat(` | formaat`)`; |

`string formaat`;

`opmaak`

  bestandsnaamformaat

### De bestandsnamen van de geselecteerde bestanden instellen uit de tags

`setFileNameFromTag(` | tagMask`)`; |

`int32 tagMask`;

`tagMask`

  tagbit (1 voor tag 1, 2 voor tag 2)

### Waarde van frame ophalen

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

`int32 tagMask`;
`string naam`;

`tagMask`

  tagbit (1 voor tag 1, 2 voor tag 2)

`naam`

  naam van frame (bijv. "artiest")

Om de binaire gegevens zoals een afbeelding, kan de naam van een te schrijven bestand toegevoegd worden na de `naam`, bijv. "Afbeelding:/pad/naar/bestand". Op dezelfde manier kunnen gesynchroniseerde liedteksten geëxporteerd worden, bijv. "SYLT:/pad/naar/bestand".

Geeft waarde van frame terug.

### Stelt waarde van frame in

`boolean setFrame(` | tagMask, |
| naam, |
| waarde`)`; |

`int32 tagMask`;
`string naam`;
`string waarde`;

`tagMask`

  tagbit (1 voor tag 1, 2 voor tag 2)

`naam`

  naam van frame (bijv. "artiest")

`waarde`

  waarde van frame

Voor tag 2 (`tagMask` 2), als er geen frame met `naam` bestaat, wordt een nieuw frame toegevoegd, als `waarde` leeg is, wordt het frame verwijderd. Om binaire gegevens, zoals een afbeelding, kan een bestand worden toegevoegd na `naam`, bijv. "Afbeelding:/pad/naar/bestand". "SYLT:/path/to/file" kan gebruikt worden om gesynchroniseerde liedteksten te importeren.

Geeft true terug indien OK.

### Alle frames van een tag ophalen

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

`int32 tagMask`;

`tagMask`

  tagbit (1 voor tag 1, 2 voor tag 2)

Geeft lijst terug met afwisselend namen van frames en waarden.

### Technische informatie over bestand ophalen

`array van tekenreeks getInformation(` | `)`; |

Eigenschappen zijn formaat, bitsnelheid, samplesnelheid, kanalen, tijdsduur, kanaalmodus, VBR, Tag 1, Tag 2. Eigenschappen die niet beschikbaar zijn zijn weggelaten.

Geeft lijst terug met afwisselend eigenschapnamen en waarden.

### Tag uit bestandsnaam instellen

`setTagFromFileName(` | tagMask`)`; |

`int32 tagMask`;

`tagMask`

  tagbit (1 voor tag 1, 2 voor tag 2)

### Tag instellen uit andere tag

`setTagFromOtherTag(` | tagMask`)`; |

`int32 tagMask`;

`tagMask`

  tagbit (1 voor tag 1, 2 voor tag 2)

### Tag kopiëren

`copyTag(` | tagMask`)`; |

`int32 tagMask`;

`tagMask`

  tagbit (1 voor tag 1, 2 voor tag 2)

### Tag plakken

`pasteTag(` | tagMask`)`; |

`int32 tagMask`;

`tagMask`

  tagbit (1 voor tag 1, 2 voor tag 2)

### Tag verwijderen

`removeTag(` | tagMask`)`; |

`int32 tagMask`;

`tagMask`

  tagbit (1 voor tag 1, 2 voor tag 2)

### De configuratie opnieuw inlezen

`reparseConfiguration(` | `)`; |

Geautomatiseerde configuratiewijzigingen zijn mogelijk door het configuratiebestand te wijzigen en daarna de configuratie opnieuw in te lezen.

### Speelt de geselecteerde bestanden

`playAudio(` | `)`; |

# Bijlage C. QML-interface

## QML-voorbeelden

QML-scripts kunnen aangeroepen worden via het contextmenu van de bestandenlijst en kunnen ingesteld worden in het tabblad Gebruikeracties van de instellingendialoog. De scripts die daar worden ingesteld kunnen gebruikt worden als voorbeelden om eigen scripts te programmeren. QML gebruikt JavaScript, hier is het verplichte "Hello World":

    import Kid3 1.0

    Kid3Script {
      onRun: {
        console.log("Hello world, map is", app.dirName)
        Qt.quit()
      }
    }

Als dit script opgeslagen wordt als `/pad/naar/Voorbeeld.qml`, kan het gebruikerscommando gedefinieerd worden als @qml /pad/naar/Voorbeeld.qml met de naam `QML Test` en Uitvoer geactiveerd. Het kan gestart worden met het item QML Test in het contextmenu van de bestandenlijst en de uitvoer zal zichtbaar zijn in het venster.

Helaas is het starten van de QML-scripts met qml (bijv. qml -apptype widget -I /usr/lib/kid3/plugins/imports /pad/naar/Voorbeeld.qml) gebroken in recente versies van Qt. Maar kid3-cli biedt een alternatieve manier om een QML-script uit te voeren vanaf de opdrachtregel met zijn commando execute.

    kid3-cli -c "execute @qml /pad/naar/Voorbeeld.qml"

Om een lijst te maken van de titels in tag 2 van alle bestanden in de huidige map, kan het volgende script worden gebruikt:

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

Als de map veel bestanden bevat zou zo'n script het gebruikersinterface enige tijd kunnen blokkeren. Voor langere bewerkingen zou het daarom af en toe een pauze moeten hebben. De alternatieve onderstaande implementatie heeft het werk voor een enkel bestand verplaats naar een functie. Deze functie roept zichzelf aan met een timeout van 1 ms aan het eind, gegeven dat er meer bestanden zijn om te verwerken. Dit zal verzekeren dat de GUI actief zal blijven terwijl het script actief is.

    import Kid3 1.0

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

        app.firstFile()
        doWork()
      }
    }

Bij gebruik van app.firstFile() met app.nextFile(), zullen alle bestanden in de huidige map verwerkt worden. Als alleen de geselecteerde bestanden meegenomen moeten worden, gebruik in plaats daarvan firstFile() en nextFile(), dit zijn gemaksfuncties van de component `Kid3Script`. Het volgende voorbeeld is een script dat alleen het discnummer en de copyrightframes van de geselecteerde bestanden kopieert.

    import Kid3 1.1

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

        firstFile()
        doWork()
      }
    }

Met Kid3 komen meer voorbeeldscripts en deze zijn al geregistreerd als gebruikercommando's.

- ReplayGain to SoundCheck (`ReplayGain2SoundCheck.qml`): Create iTunNORM SoundCheck informatie uit "replay gain frames".

- Albumillustraties van grootte wijzigen (`ResizeAlbumArt.qml`): Ingebedde hoesillustratieafbeeldingen die groter zijn dan 500x500 pixels van grootte wijzigen.

- Albumillustraties uitpakken (`ExtractAlbumArt.qml`): Alle ingebedde hoesillustratieafbeeldingen uitpakken met vermijding van duplicaten.

- Albumillustraties inbedden (`EmbedAlbumArt.qml`): Albumillustraties gevonden in afbeeldingsbestanden inbedden in audiobestanden in dezelfde map.

- Liedteksten inbedden (`EmbedLyrics.qml`): Niet gesynchroniseerde liedteksten ophalen uit webservice.

- Tekstcodering ID3v1 (`ShowTextEncodingV1.qml`): Helpt om de codering van ID3v1 tags te vinden door de tags van het huidige bestand in alle beschikbare tekencoderingen te tonen.

- ID3v1 to ASCII (`Tag1ToAscii.qml`): Zet de uitgebreide latin-tekens in de ID3v1 tag over naar ASCII.

- Engelse vorm van hoofd/kleine letters bij titels (`TitleCase.qml`): Formatteert tekst in de tags naar de Engelse vorm van hoofd/kleine letters bij titels.

- Tags opnieuw schrijven (`RewriteTags.qml`): Alle tags in de geselecteerde bestanden opnieuw schrijven.

- CSV exporteren (`ExportCsv.qml`): Exporteert recursief alle tags van alle bestanden naar een CSV-bestand.

- CSV importeren (`ImportCsv.qml`): Importeert recursief alle tags van alle bestanden uit een CSV-bestand.

- JSON exporteren (`ExportJson.qml`): Exporteert recursief alle tags van alle bestanden naar een JSON-bestand.

- JSON importeren (`ImportJson.qml`): Importeert recursief alle tags van alle bestanden uit een JSON-bestand.

- Afspeellijstmap exporteren (`ExportPlaylist.qml`): Alle bestanden uit een afspeellijst kopiëren in een map en ze hernoemen volgens hun positie.

- QML-console (`QmlConsole.qml`): Eenvoudige console om af te spelen met QML API van Kid3.

## QML API

De API kan gemakkelijk verkend worden met de QML-console, die beschikbaar is als een voorbeeldscript met een gebruikersinterface.

### Kid3Script

`Kid3Script` is een reguliere QML-component gelokaliseerd in de plug-in-map. U zou evengoed een andere QML-component kunnen gebruiken. Met `Kid3Script` wordt het makkelijk gemaakt om met de scriptfunctie te beginnen met het signaalafhandelaar `onRun`. Bovendien biedt het enige functies:

    onRun: Signaalbehandelaar die wordt aangeroepen wanneer het script wordt gestart
    tagv1, tagv2, tagv2v1: Constanten voor tagparameters
    script: Toegang tot scriptfuncties
    configs: Toegang tot configuratieobjecten
    getArguments(): Lijst met scriptargumenten
    isStandalone(): true als het script niet is gestart vanuit Kid3
    setTimeout(callback, delay): Start callback na vertraging ms
    firstFile(): Naar eerst geselecteerd bestand
    nextFile(): Naar volgend geselecteerd bestand

### Functies voor scripts

Omdat JavaScript en daarom ook QML slechts een beperkte set functies heeft voor scripts, heeft het object `script` enige extra methoden, bijvoorbeeld:

    script.properties(obj): Tekenreeks met Qt eigenschappen
    script.writeFile(filePath, data): Gegevens naar bestand scrijven, true indien OK
    script.readFile(filePath): Gegevens lezen uit bestand
    script.removeFile(filePath): Bestand verwijderen, true indien OK
    script.fileExists(filePath): true indien bestand bestaat
    script.fileIsWritable(filePath): true indien bestand is te beschrijven
    script.getFilePermissions(filePath): Modusbits van rechten van bestand ophalen
    script.setFilePermissions(filePath, modeBits): Modusbits van rechten van bestand instellen
    script.classifyFile(filePath): Klasse van bestand ophalen (map "/", symbolische koppeling "@",
     exe "*",  bestand " ")
    script.renameFile(oldName, newName): Bestand hernoemen, true indien OK
    script.copyFile(source, dest): Bestand kopiëren, true indien OK
    script.makeDir(path): Map aanmaken, true indien OK
    script.removeDir(path): Map verwijderen, true indien OK
    script.tempPath(): Pad naar tijdelijke map
    script.musicPath(): Pad naar muziekmap
    script.listDir(path, [nameFilters], [classify]): Lijst maken van mapitems
    script.system(program, [args], [msecs]): Een systeemcommando synchroon starten,
      [exitcode, standaarduitvoer, standaardrdfouten] indien geen timeout
    script.systemAsync(program, [args], [callback]): Een systeemcommando asynchroon starten,
    terugaanroep zal aangeroepen worden met [exitcode, standaarduitvoer,
    standaardfouten]
    script.getEnv(varName): Haal waarde op van omgevingsvariabele
    script.setEnv(varName, value): Stel waarde in van omgevingsvariabele
    script.getQtVersion(): Qt versietekenreeks, bijv. "5.4.1"
    script.getDataMd5(data): Tekenreeks in hex van de MD5 hash van gegevens
    script.getDataSize(data): Grootte van byte-array ophalen
    script.dataToImage(data, [format]): Een afbeelding uit gegevensbytes ophalen
    script.dataFromImage(img, [format]): Gegevensbytes ophalen uit afbeelding
    script.loadImage(filePath): Een afbeelding laden uit een bestand
    script.saveImage(img, filePath, [format]): Een afbeelding opslaan naar een bestand, true indien OK
    script.imageProperties(img): Eigenschappen ophalen van een afbeelding, map bevattende
      "width", "height", "depth" en "colorCount", leeg indien ongeldige afbeelding
    script.scaleImage(img, width, [height]): Schaa een afbeelding, geeft geschaalde afbeelding terug

### Context van toepassing

Met gebruik van QML zijn een groot gedeelte van de Kid3-functies toegankelijk. De API is vergelijkbaar met diegene gebruikt voor D-Bus. Voor details wordt u verwezen naar de respectievelijke notities.

    app.openDirectory(path): Open map
    app.unloadAllTags(): Alle tags ontladen
    app.saveDirectory(): Map opslaan
    app.revertFileModifications(): Ongedaan maken
    app.importTags(tag, path, fmtIdx): Bestand importeren
    app.importFromTags(tag, source, extraction): Uit tags importeren
    app.importFromTagsToSelection(tag, source, extraction): Uit tags van geselecteerde bestanden importeren
    app.downloadImage(url, allFilesInDir): Afbeelding downloaden
    app.exportTags(tag, path, fmtIdx): Bestand exporteren
    app.writePlaylist(): Afspeellijst schrijven
    app.getPlaylistItems(path): Items ophalen uit een afspeellijst
    app.setPlaylistItems(path, items): Items instellen van een afspeellijst
    app.selectAllFiles(): Alles selecteren
    app.deselectAllFiles(): Selectie ongedaan maken
    app.firstFile([select], [onlyTaggedFiles]): Naar eerste bestand
    app.nextFile([select], [onlyTaggedFiles]): Naar volgende bestand
    app.previousFile([select], [onlyTaggedFiles]): Naar vorige bestand
    app.selectCurrentFile([select]): Huidige bestand selecteren
    app.selectFile(path, [select]): Een specifiek bestand selecteren
    app.getSelectedFilePaths([onlyTaggedFiles]): Paden van geselecteerde bestanden ophalen
    app.requestExpandFileList(): Alles uitvouwen
    app.applyFilenameFormat(): Bestandsnaamformaat toepassen
    app.applyTagFormat(): Tagformaat toepassen
    app.applyTextEncoding(): Tekstcodering toepassen
    app.numberTracks(nr, total, tag, [options]): Aantal tracks
    app.applyFilter(expr): Filter
    app.convertToId3v23(): ID3v2.4.0 naar ID3v2.3.0 converteren
    app.convertToId3v24(): ID3v2.3.0 naar ID3v2.4.0 converteren
    app.getFilenameFromTags(tag): Bestandsnaam uit tags
    app.getTagsFromFilename(tag): Bestandsnaam naar tags
    app.getAllFrames(tag): Object ophalen met alle frames
    app.getFrame(tag, name): Frame ophalen
    app.setFrame(tag, name, value): Frame instellen
    app.getPictureData(): Gegeven uit afbeeldingsframe ophalen
    app.setPictureData(data): Gegeven in afbeeldingsframe instellen
    app.copyToOtherTag(tag): Tags naar andere tags
    app.copyTags(tag): Kopiëren
    app.pasteTags(tag): Plakken
    app.removeTags(tag): Verwijderen
    app.playAudio(): Afspelen
    app.readConfig(): Configuratie lezen
    app.applyChangedConfiguration(): Configuratie toepassen
    app.dirName: Mapnaam
    app.selectionInfo.fileName: Bestandsnaam
    app.selectionInfo.filePath: Absoluut bestandspad
    app.selectionInfo.detailInfo: Formaatdetails
    app.selectionInfo.tag(Frame.Tag_1).tagFormat: Tag 1 formaat
    app.selectionInfo.tag(Frame.Tag_2).tagFormat: Tag 2 formaat
    app.selectionInfo.formatString(tag, format): Codes invullen in formaattekenreeks
    app.selectFileName(caption, dir, filter, saveFile): Bestandsdialoog openen
    om een bestand te selecteren
    app.selectDirName(caption, dir): Bestandsdialoog openen om een map te selecteren

Voor asynchrone bewerkingen kunnen callbacks verbonden worden met signalen.

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

### Configuratieobjecten

De verschillende configuratiesecties zijn toegankelijk via methoden van `configs`. Hun eigenschappen kunnen getoond worden in het QML-console.

    script.properties(configs.networkConfig())

Eigenschappen kunnen ingesteld worden:

    configs.networkConfig().useProxy = false

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