Qoobar
A tagger for classical music
The Status Bar shows:
qoobar "/home/I/music/first dir" /home/I/music/just_file.mp3
Files are always appended to the end of the current tab.
If the number of added files is less than 100, they will be automatically selected.
If you have a disc image (ape or flac or wav) and a cue file with it, Qoobar
can split it to separate tracks, just click
.
If you don't have shntool, flac and mac programs, install them.
.
Files removing clears the undo stack.
Remember though that this dialog overrides global settings only for selected files, so if you want to set mp3 tag types once and for all, please use the Settings dialog.
Files saving clears the undo stack.
First select one or several files in the Files table.
To set one tag for all selected files - click on this tag (f.e. on the "Artist" tag) and type a text.
To edit one tag file by file - double-click the tag.
To number tracks from 1 to N (N is the number of selected files) - click on the "Track number" tag, type 1 and press Enter.
To remove some tags select these tags in the Tags Table and press Delete.
There is a number of operations that you can use to edit tags. You can find them in the context menu:
Qoobar can autocomplete any tag while you are typing some text. This feature is turned on by default only for composers, genres, and moods. If you want to turn on autocompletion for other tags, do it in the Settings dialog. You can also edit autocompletion lists in the Settings dialog.
There are two modes for adding completion variants: automatic and manual (the default one). To manually "remember" tag select it and use "collect for future use" action or shortcut Ctrl+H.
Tags are added automatically only when you are pressing Enter in the Tags Table or OK in the Edit Dialog.
You can add your own tag to the selected files. Click
or press Ctrl+N.
A dialog appears:
Type a tag name with latin characters and underscores. Then click OK. The newly added tag will be appended to the Tags Table.
If you don't add something in the newly added tag, it will be lost.
If you want to join different tags together or add some text to a tag just in one operation, you can make use of placeholders. A placeholder is a variable that contains a tag or other info of one file. Placeholders begin with '%', followed by one latin letter, for example %t for title, %a for album, %n for track number, and so on. The full list of available placeholders can be found in Appendix 3.
Examples
%n. %t |
| track titles: 1. title 2. another title 3. the third title | ||
%N. %t |
| track titles: 01. title 02. another title 03. the third title | ||
[%n. ]%t |
| track titles: 1. title 2. another title the third title | ||
appended text - %t | track titles: title another title the third title | track titles: appended text - title appended text - another title appended text - the third title |
In rare cases there may be a necessity to add some highly structured text to a tag. For example, when you are editing some opera and want to add text like "Act 1. Scene 1." etc. It can be quite tedious to type all these acts and scenes manually. Instead use the autonumbering function:
{startNumber-endNumber, someNumber:repeatNTimes, someOtherNumber:repeatMTimes; otherStartNumber, m1:k1, m2:k2}
Let's see an example. Suppose we have 'raw' track titles of Debussy's opera "Pelleas and Melisande". We want to structure them by giving each track title a description: "Act 1. Scene 2. Title" and so on. So we have:
Original titles | What we want to get |
Je ne pourrai plus sortir de cette forêt Qu'est-ce qui brille ainsi, au fond de l'eau? Interlude (Orchestre) Voici ce qu'il écrit à son frère Pelléas: ''Un soir, je l'ai trouvée'' Je n'en dis rien Grand-père, j'ai reçu en même temps que la lettre de mon frère Interlude (Orchestre) Il fait sombre dans les jardins Hoé! Hisse hoé! Hoé! Hoé! Vous ne savez pas où je vous ai menée? C'est au bord d'une fontaine aussi qu'il vous a trouvée? Interlude (Orchestre) Ah! Ah! Tout va bien, cela ne sera rien Je suis... je suis malade ici Il est vrai que ce château est très vieux et très sombre | Act 1. Scene 1. Je ne pourrai plus sortir de cette forêt Act 1. Scene 1. Qu'est-ce qui brille ainsi, au fond de l'eau? Act 1. Scene 1. Interlude (Orchestre) Act 1. Scene 2. Voici ce qu'il écrit à son frère Pelléas: ''Un soir, je l'ai trouvée'' Act 1. Scene 2. Je n'en dis rien Act 1. Scene 2. Grand-père, j'ai reçu en même temps que la lettre de mon frère Act 1. Scene 2. Interlude (Orchestre) Act 1. Scene 3. Il fait sombre dans les jardins Act 1. Scene 3. Hoé! Hisse hoé! Hoé! Hoé! Act 2. Scene 1. Vous ne savez pas où je vous ai menée? Act 2. Scene 1. C'est au bord d'une fontaine aussi qu'il vous a trouvée? Act 2. Scene 1. Interlude (Orchestre) Act 2. Ah! Ah! Tout va bien, cela ne sera rien Act 2. Je suis... je suis malade ici Act 2. Il est vrai que ce château est très vieux et très sombre |
Let's compose our functions according to what we want to achieve:
For acts: {1, 1:9, 2:6}
For scenes: {1-3, 1:3, 2:4, 3:2; 1-1, 1:3}
We do not need Scene 2 in Act 2, so we should use square brackets:
Act {1, 1:9, 2:6}. [Scene {1-3, 1:3, 2:4, 3:2; 1-1, 1:3}. ]%t
Type this text into the title tag to achieve our goal!
Tip: You can omit commas: {1-3 1:3 2:4 3:2; 1-1 1:3}.
More examples: we have selected 7 files
Function | What we get file by file |
{} | 1, 2, 3, 4, 5, 6, 7 |
{1} | 1, 2, 3, 4, 5, 6, 7 |
{2} | 2, 3, 4, 5, 6, 7, 8 |
{1-5} | 1, 2, 3, 4, 5, _, _ |
{2-5} | 2, 3, 4, 5, _, _, _ |
{1, 1:2} | 1, 1, 2, 3, 4, 5, 6 |
{1, 1:2, 2:3} | 1, 1, 2, 2, 2, 3, 4 |
{1-3, 1:2, 2:3; 1, 1:2} | 1, 1, 2, 2, 2, 1, 1 |
Here _ means "nothing" and not underscore.
When you double-click any tag in the Tags Table, the edit dialog appears:
The toolbar contains buttons for quick access to tags editing operations described earlier. The button "Collect for future use" helps adding tag values to autocomplete lists.
The first line: this line contains the text that will be written into all selected files. On the image above all titles are different, so the first line is empty. If you type some text here, it will overwrite the values below.Multiple values: different text for different files. If you change any line here, the first line will be cleared.
The left-most panel contains various characters with diacritics. It can be hidden if necessary.
Also a list of characters can be edited in the Qoobar settings.
To insert some character place the cursor where needed and left-click the character.
To insert its upper case variant click the character while holding down the Shift key.
The Legend button gives you access to placeholders which can be used just like here.
Autofilling track numbers. If you are editing track numbers you can autonumber them by typing 1 in the first line. If you are editing other tags please use the autonumbering function.
Using tags autocompletion: The autocompletion is available here as well.
Filling in tags: To quickly "parse" parts of a tag into other tags use the context menu:
Find & Replace: Press Ctrl+F to show the find & replace panel.
You can navigate through the table by clicking buttons or using shortcuts: F3 (Ctrl+G in Linux) - find next, Shift+F3 (Shift+Ctrl+G in Linux) - find previous.
The Options button allows you to specify some search options:
Qoobar supports reading and writing of embedded pictures for all file types. You can also cut/copy picture from one group of selected files and paste it to other files. Tags importing from Discogs and Musicbrainz also imports cover art picture, if there is such. You can edit cover art type and description in the panel shown below:
and also undo / redo any changes in the picture info.
If you click on the picture, a dialog with full-size picture appears. To close it click on the picture again.
Exporting pictures to a hard drive is also supported. You can choose between JPG and PNG file formats.
You can fill in the tags of selected files from their names or other tags. Select one or more files
and click the button
or press Ctrl+F. A dialog will appear:
1. Choose a source - file names, clipboard or one of tags.
2. Set a filename pattern (use / and \ to set folders). You can use all the non-read-only placeholders listed in Appendix 3. They can also be found under the "Legend" button.
All other characters will be treated as delimiters. And don't use patterns with no delimiter between two placeholders.
Use the %% combination if you want to skip some part of a file name. For example, if you have, say, 50 files "Unknown Artist - 1 - some_meaningful_title_1", "Unknown Artist - 2 - some_meaningful_title_2" etc. and you only want to extract Titles, use this pattern: "%% - %% - %t".
You can import tags of an album from the Internet.
Qoobar can search tags in freedb, Discogs or Musicbrainz databases.
Click the button
and a dialog will appear:
1. Choose the server - Discogs, freedb or Musicbrainz.
2. Choose the search mode - by the lengths of selected files, by CD in CD-ROM, or manually - by artist name and album title.
3. Click "Start" and wait a little. The list of found albums will appear in the left panel.
4. Choose an album (just click on it) and wait while its details are being downloaded. Be patient here: if you are searching in Discogs and Musicbrainz, cover art pictures can require some time to be downloaded.
5. Uncheck tags which you do not want to have and click OK.
Example:
%c (1905-1975)/%a/[%N. ]%t
for ogg file containing tags
the new file name will be
"Bela Bartok (1905-1975)/Microcosmos/02. Ostinato.ogg"
If you remove the track number, the new file name will be
"Bela Bartok (1905-1975)/Microcosmos/Ostinato.ogg"
Qoobar can help you replaygain your musical files. This feature is not yet completely implemented, so only the following file type are supported: mp3, mp4/m4a, musepack, flac, ogg, wavpack.
Qoobar so far uses external utilities to do ReplayGain scanning, so if you are using one of Unixes, you need to install these utilities from your repository: mp3gain for mp3 files, aacgain for mp4/m4a files, vorbisgain for ogg files, metaflac for flac files, mpcgain and replaygain for mpc files, and wvgain for wavpack files. You can check whether all utilities can be found by Qoobar in the Utilities page of the Settings dialog. The Windows installation of Qoobar already has all necessary utilities.
Qoobar so far cannot replaygain the following file types: ape, wma, wav, speex, tta, oga, aiff.
Scanning for ReplayGain info:
Note 1: Qoobar can skip already scanned files. Just click on the "Skip already scanned files" checkbox.
Note 2: If you are encountering messages like "Couldn't find file" or "The FLAC file could not be opened", open the Qoobar settings dialog and on the Utilities page set the "Copy files into temp folder before replaygaining them" option.
Note 3: Using of external utilities is not a good way to do scanning. Maybe in some distant releases I will implement a unified algorithm just like one Foobar uses.
You can reset all settings to their defaults by clicking the "Reset Settings" button in the bottom left corner.
а | a | р | r | |
б | b | с | s | |
в | v | т | t | |
г | g | у | u | |
д | d | ф | f | |
е, ё | e | х | kh | |
ж | zh | ц | c | |
з | z | ч | ch | |
и | i | ш | sh | |
й | j | щ | x | |
к | k | ъ | w | |
л | l | ы | y | |
м | m | ь | j | |
н | n | э | eh | |
о | o | ю | yu | |
п | p | я | ya |
Tagging schemes - here you can choose which scheme to use for tags reading and writing. There are one default scheme (you cannot edit this scheme) and 4 more schemes, which you can change: Tag&Rename, Mp3tag, Iain Lamb's scheme, Musicbrainz Picard.
You can edit scheme, clone or remove it (except the default one). If you click on the "Edit" button, a dialog will appear:
You can change the scheme name in the first line.
The table sets the correspondence between Qoobar tags and various fields for 5 tag formats.
If you want to set several fields for one tag separate them by semicolon, f.e. in the
default scheme the tag "Total tracks" are written into APE files into 3 different fields:
TOTALTRACKS;TRACKNUMBER;TRACKTOTAL
.
If you set the same field for "Track number" and "Total tracks" tags, f.e.
TRACKNUMBER
, the resulting field value will be written as "track_number/total_tracks",
and vice versa, when reading the field TRACKNUMBER
with the value "02/10" it will be parsed
as "Track number=02", "Total tracks=10".
There are some peculiarities for ID3v2, Asf and Mp4 formats:
TXXX:
for non-standard text fields,
WXXX:
for non-standard web URLs, and COMM:
for custom comments.----:com.apple.iTunes:
for your non-standard fields.
The grayed internal fields are handled internally by Qoobar
and cannot be changed.Here you can set proxy parameters if you use a proxy server.
The table contains all fields that Qoobar read and write in 5 different tag types: ID3v2.4, APE, Xiph, Asf, MP4.
Internal means that this field is stored in the file without any field key.
ID3v2.4 fields | Vorbis comments | APE fields | Asf fields | MP4 fields | |
---|---|---|---|---|---|
Composer | TCOM | COMPOSER | COMPOSER | WM/Composer | ©wrt |
Album | TALB | ALBUM | ALBUM | WM/AlbumTitle | ©alb |
Original Album | TOAL | ORIGINALALBUM | ORIGINALALBUM | WM/OriginalAlbumTitle | ----:com.apple.iTunes:ORIGINALALBUM |
Title | TIT2 | TITLE | TITLE | Internal | ©nam |
Subtitle 1 | TIT3 | SUBTITLE | SUBTITLE | WM/SubTitle | subt |
Music Category 2 | TIT1 | GROUPING | GROUPING | WM/ContentGroupDescription | ©grp |
Artist | TPE1 | ARTIST | ARTIST | Internal | ©ART |
Original Artist | TOPE | ORIGINALARTIST | ORIGINALARTIST | WM/OriginalArtist | ©ope |
Performer | TXXX:PERFORMER | PERFORMER | PERFORMER | foobar2000/PERFORMER | ----:com.apple.iTunes:PERFORMER |
Comment | COMM: | DESCRIPTION; COMMENT |
COMMENT | Internal | ©cmt |
Genre | TCON | GENRE | GENRE | WM/Genre | ©gen |
Year | TDRC | DATE | DATE | WM/Year | ©day |
Track Number | TRCK | TRACK; TRACKNUMBER; TRACKNUM |
TRACKNUMBER | WM/TrackNumber | trkn |
Total Tracks | TRCK | TOTALTRACKS; TRACKNUMBER; TRACKTOTAL |
TOTALTRACKS; TRACKNUMBER |
WM/TrackNumber; TotalTracks |
trkn |
Conductor | TPE3 | CONDUCTOR | CONDUCTOR | WM/Conductor | cond |
Orchestra | TXXX:ORCHESTRA3 | ORCHESTRA | ORCHESTRA | Orchestra3 | ----:com.apple.iTunes:ORCHESTRA |
Publisher | TPUB | LABEL | LABEL | WM/Publisher | labl |
Copyright | TCOP | COPYRIGHT | COPYRIGHT | Internal | ©cpy;cprt |
Mood | COMM:MusicMatch_Mood; PRIV:WM/Mood |
MOOD | MOOD | WM/Mood | mood |
Beats Per Minute | TBPM | BPM | BPM | WM/BeatsPerMinute | tmpo |
Lyricist 4 | TEXT | LYRICIST | LYRICIST | WM/Writer | lyrt |
Original Lyricist | TOLY | ORIGINALLYRICIST | ORIGINALLYRICIST | WM/OriginalLyricist | olyr |
Lyrics | USLT | LYRICS | LYRICS | WM/Lyrics | ©lyr |
Key 5 | TKEY | KEY | KEY | WM/InitialKey | ----:com.apple.iTunes:KEY |
Cover art | APIC | COVERART / METADATA_BLOCK_PICTURE6 |
Cover Art (front) | WM/Picture | covr |
Disc number | TPOS | DISCNUMBER | DISCNUMBER | WM/PartOfSet | disk |
Total discs | TXXX:TOTALDISCS; TPOS |
TOTALDISCS; DISCNUMBER |
TOTALDISCS; DISCNUMBER |
foobar2000/TOTALDISCS; WM/PartOfSet |
disk |
Encoded by | TENC | ENCODEDBY | ENCODEDBY | WM/EncodedBy; WM/CodedBy |
©enc |
Remixed by | TPE4 | VERSION | VERSION | WM/ModifiedBy | rmix |
Rating 7 | POPM; COMM:MusicMatch_Preference |
RATING | RATING | WM/SharedUserRating | -- |
ISRC | TSRC | ISRC | ISRC | WM/ISRC | ISRC |
URL | WXXX: | URL | URL | WM/URL | ©url |
Album artist | TXXX:ALBUMARTIST; TPE23 |
ALBUM ARTIST | ALBUM ARTIST | WM/AlbumArtist; AlbumArtist3 |
aART |
1 The opus number of the composition (Beethoven's 8th Symphony has opus number 93) or years of writing or something else.
2 The music form of your music, for example for the Mozart's opera "Die Zauberflote" Music category will be "Opera", for Rachmaninov's 2nd concerto the music form is "Piano Concerto" or "Concerto for piano and symphony orchestra" and so on.
3 These fields do not follow the id3v2 specification, which provides "TPE2" for orchestra/band/ensemble etc. But due to consistency with Tag&Rename the tag "Orchestra" is now written in TXXX:ORCHESTRA, and the tag "Album artist" goes to TPE2. Wma files have the same difficulty.
4 The author of opera libretto, of song words etc.
5 The tonality of a composition, for example Beethoven's Fifth Symphony has the key (tonality) C Minor (c-moll, ut mineur etc.).
Shortcut | Action |
---|---|
Ctrl+A | In the files table: Select all files In the tags table: Select all tags |
Ctrl+C | Copy selected tags |
Shift+Ctrl+C | Copy selected tags into clipboard |
Ctrl+Down | Move selected files down |
Ctrl+F | In the main window: Fill tags with the information from files names In the tags editing dialog: Start search & replace |
Ctrl+G | In the tags editing dialog: Find next (in Gnome and maybe KDE) |
Shift+Ctrl+G | In the tags editing dialog: Find previous (in Gnome and maybe KDE) |
Ctrl+H | Add selected tags to the autocompletion list |
Ctrl+N | Add a new tag to the selected files |
Ctrl+O | Add a folder with music files (with all subfolders) |
Shift+Ctrl+O | Add a file / files |
Ctrl+P | Play selected files in an external player |
Ctrl+Q | Exit from Qoobar |
Ctrl+R | Rename selected files |
Ctrl+S | Save all files in the current tab |
Ctrl+T | New tab |
Ctrl+Up | Move selected files up |
Ctrl+V | Paste copied tags |
Shift+Ctrl+V | Paste text from clipboard into a selected tag |
Ctrl+W | Close current tab (in Gnome and maybe in KDE) |
Ctrl+X | Cut selected tags |
Ctrl+Y | Redo the last change (in Windows) |
Ctrl+Z | Undo the last change |
Shift+Ctrl+Z | Redo the last change (in Gnome and maybe in KDE) |
Del | In the files table: Remove selected files from the list In the tags table: Delete selected tags |
Ctrl+Del | Clear the files table of the current tab |
F1 | Help on Qoobar |
F3 | In the tags editing dialog: Find next (in Windows) |
Shift+F3 | In the tags editing dialog: Find previous (in Windows) |
Ctrl+F4 | Close current tab (in Windows) |
This table contains all placeholders that you can use when renaming files and filling or editing tags.
Placeholder | Meaning | Comments |
%c | composer | |
%a | album | |
%t | title | |
%p | performer | |
%A | artist | |
%d | conductor | |
%o | orchestra | |
%s | subtitle | |
%k | key | |
%C | comment | |
%g | genre | |
%y | year | |
%n | track number | Format: 1, 2, 3, ...10, 11, 12 etc. |
%N | track number | Format: 01, 02, 03, ...10, 11, 12 etc. |
%T | total tracks | |
%u | album artist | |
%G | musical category | |
%P | publisher | |
%X | copyright | |
%m | mood | |
%B | tempo | |
%w | lyricist | |
%W | lyrics | |
%D | disc number | |
%S | total discs | |
%e | encoded by | |
%x | remixed by | |
%R | rating | |
%O | original album | |
%v | original artist | |
%i | original lyricist | |
%U | URL | |
%I | ISRC | |
%b | bitrate | read only |
%l | length | For example: 14:53, read only |
%L | length in seconds | For example: 431, read only |
%f | filename | read only |
%r | sample rate | read only |
%h | number of channels | read only |
%% | not necessary field | If you want to skip some text while parsing a file name |
A regular expression is a pattern for matching substrings in a text. Qoobar supports regular expressions provided by the QRegExp class, which is modelled on Perl's regexp language. Here is only a brief description of expressions, quantifiers, and assertions that can be useful in your search.
Characters and Abbreviations for Sets of Characters
\a | matches the ASCII bell (BEL, 0x07). |
\f | matches the ASCII form feed (FF, 0x0C). |
\n | matches the ASCII line feed (LF, 0x0A, Unix newline). |
\r | matches the ASCII carriage return (CR, 0x0D). |
\t | matches the ASCII horizontal tab (HT, 0x09). |
\v | matches the ASCII vertical tab (VT, 0x0B). |
\xhhhh | matches the Unicode character corresponding to the hexadecimal number hhhh (between 0x0000 and 0xFFFF). |
\0ooo | (i.e., \zero ooo) matches the ASCII/Latin1 character for the octal number ooo (between 0 and 0377). |
. | (dot) matches any character (including newline). |
\d | matches a digit. |
\D | matches a non-digit. |
\s | matches a whitespace character. |
\S | Matches a non-whitespace character. |
\w | Matches a word character (letter, number, marks, or '_'). |
\W | Matches a non-word character. |
\n | The n-th backreference, e.g. \1, \2, etc. |
Sets of Characters, grouping
[abc] | matches 'a' or 'b' or 'c'. |
[^abc] | matches anything but 'a' or 'b' or 'c'. |
[a-c] | matches a range of characters from 'a' to 'c', that is equivalent to [abc]. |
(E|N) | matches expression E or expression N, where E and N can be complex. |
Quantifiers
E? | matches zero or one occurrences of E. |
E+ | matches one or more occurrences of E. |
E* | matches zero or more occurrences of E. |
E{n} | matches exactly n occurrences of E. |
E{n,} | matches at least n occurrences of E. |
E{,m} | matches at most m occurrences of E. |
E{n,m} | matches at least n and at most m occurrences of E. |
To apply a quantifier to more than just the preceding character, use parentheses to group characters together in an expression. For example, tag+ matches a 't' followed by an 'a' followed by at least one 'g', whereas (tag)+ matches at least one occurrence of 'tag'
Assertions
^ | The caret signifies the beginning of the string.
If you wish to match a literal ^ you must escape it by writing \\^ . |
$ | The dollar signifies the end of the string. If you wish to match a literal $ you must escape it by writing \$. |
\b | A word boundary. |
\B | A non-word boundary. This assertion is true wherever \b is false. |
(?=E) | Positive lookahead. This assertion is true if the expression
matches at this point in the regexp. For example, const(?=\s+char)
matches 'const' whenever it is followed by 'char',
as in 'static const char *'. (Compare with const\s+char , which
matches 'static const char *'.) |
(?!E) | Negative lookahead. This assertion is true
if the expression does not match at this point in the regexp.
For example, const(?!\s+char) matches 'const' except when it
is followed by 'char'.. |