# Copyright 2003-2005 - Alexandre Bourget
# $Id: README 47 2005-09-06 03:50:33Z wacky $
#
# VISTOL - Very Simple Intuitive Tag-Oriented Language
# VISTAG - The application that uses Vistol
#
Vistag is another massive CD ripper with several tagging and printing capabilities.
Vistag requires to have CDDB.pm and CDDB_get.pm installed. You can get them from search.cpan.org or from your distribution packages. [TODO: Insert instructions to install these components here.]
Vistag can output PDF files to print on CD envelopes, saving the time needed to format then in an editor.
It can import xmcd (freedb, cddb) files, and will create tag files, which are more intuitive and easy to manage. It's main purpose was to tag Ogg files with better meta-data than ID3 tags and use the maximum of the Ogg frame capabilities, not limiting with a couple of simple tags, and tiny length.
Vistag can also extract meta-data from a list of Ogg files and create a descriptive 'tag' file with all redundancy omitted and properly arranged to be easier to edit.
For example:
tag [range|all] [tag_name] [tag value ...]
If all 'artist' tags are the same, then the 'tag' def will look like:
tag all artist The best artist around tag all album The best album ever
Note that you must specify a 'total' at the top of the file to be able to use 'all':
total 13
That way, Vistag knows you have 13 files, and will fill in 13 values when you specify 'all'.
If you have several different titles, for example, the TagAnalyzer module will output something like:
def title : {
Track one
Track two
Track three
Track four
Track five
Track six
}
tag all title title
Note the ':', which is a separator for the multiplier. One example would be:
def artist : {
Artist, the first : 5
Artist, the second : 6
Artist, the third : 2
}
tag 1-13 artist artist
which would tag the first 13 tracks, with 5 times the 'first' artist, 6 times the second, and 2 times the third.
Fun things you can do:
total 9
def work : {
Sonata No. 1 : 3
Sonata No. 2 : 3
Concerto No. 1 : 3
}
# Note the ';' .. since we need ':' in the actual content.
def mvts ; {
Allegro con moto: ma non troppo
Adagio
Allegro con brio
Allegro
Adagio
Allegro moderato
Very speedy
Hey, sllllllow down
Wow, that's fast!
}
# Note the 'R' for roman numerals. Use 'r' for low case romans, 'n'
# for arabic numerals, and a number between 2 and 9 to set a fixed
# width arabic number. Ex: 'n2' or '2n' to have 00 to 99 with two
# chars.
def nums R: {
1-3
1-3
1-3
}
tag 1-9 title work - nums. mvts
would output a beautiful:
Sonata No. 1 - I. Allegro con moto: ma non troppo
Sonata No. 1 - II. Adagio
Sonata No. 1 - III. Allegro con brio
Sonata No. 2 - I. Allegro
Sonata No. 2 - II. Adagio
Sonata No. 2 - III. Allegro moderato
Concerto No. 1 - I. Very speedy
Concerto No. 1 - II. Hey sllllllow down
Concerto No. 1 - III. Wow, that's fast!
You'll find it useful when dealing with large amounts of meta-data
You can also multiply a whole block several times. For example:
def myvals : {
My value
My second value
My third value
} : 2
tag all mytag myvals
Would output (for the tag 'mytag'):
My value
My second value
My third value
My value
My second value
My third value
You can also use the 'const' function. For example:
const mozart Wolfgang Amadeus Mozart tag all composer mozart
You can also use 'const' inside 'def' definitions. For example:
const longname Talking-about-a-hugely-named-album def myvar : {
longname volume 1
longname volume 2
longname volume 3
}
tag all parent_album _myvar_
tag all album longname compilation
The only difference with 'def' is that 'const' doesn't consume values for each tagged file (whereas 'def'd vars do).
You can also refill a variable with the 'def+' function. It will only add values to an already existant var (note that you can use any format you like for variables).
def myvar :R {
1
2
}
def myvar :r {
3-4
}
def+ myvar :n2 {
5-6
}
tag all mytag myvar
Would output (for mytag):
I
II
iii
iv
05
06
Now, let's say you have 30 tracks and you want to add in the tags the names of the performers, you can:
tag 1-5,7-9,11-12,25-27,30 performer My mother, off-pitched piano tag 6,10,13-24,28-29 performer My father, turbo guitar
And you won't need to copy & paste or to click anywhere.
Note that this application is still in development, but everyone is invited to have a look and help out with development. If you are interested, contact wacky@bourget.cc at no costs :)
You can find the latest development on the Trac project manager at
Alexandre Bourget, main developer.
wacky@bourget.cc
#######################################################################
Usage: vistag [options] [fichiers]
Config/Settings:
--use-embedded-tags With --rename, use tags inside each file instead
of using the compiled tag file. (see
also --tagfile)
--scheme <scheme> Renaming scheme (with --rename).
Available variables: %n (tracknumber), %a
(artist), %b (album), %t (title), %c (comment),
%g (genre), %tag% (un 'tag' arbitraire).
You need not specify the extension. This is a
good setting to store in your ~/.vistag.rc file.
--tagfile <vistolfile> Changer le nom de fichier vistol (défaut: ./tag)
-f|--force Écrire sans demander confirmation (--writetags,
--rename)
--non-interactive Don't ask anything, use default values when
you can
--dir <directory> Use dir [directory] for preparation (with
--prepare)
--device <cd_device> Pour --extract, --query, --burn (défaut: /dev/cdrom)
--quick Don't be paranoid for extraction, just rip it out
quickly. Note that results might be less accurate
with a poor CD device.
--freedbhost <host> Pour --query
--freedbport <port> idem.
--editor <editor> Changer l'éditeur (pour --edit)
--tmpdir <path> Temporary files directory (or use environment
TMPDIR variable)
--dir <name> Use with --prepare, Vistag will create this
subdirectory and prepare the steps to be done.
--pdfprint <value> 'none' = ne pas exporter de PDF
'title' = only envelop heading
'list' = full songlist
'both' = title and list
'ask' = ask, default. Incompatible with
--non-interactive
--pdfviewer <viewer> Program to use to preview .pdf files. Use with
--print, or store in ~/.vistag.rc
--nosort Ne pas trier les .wav quand on utilise --burn
--margins-title [margins] Set margins for title printout.
'top right bottom left' (ex: '1in 2in 3in 4in')
or 'top-bottom right-left' (ex: '1cm 2cm')
or 'top-bottom-right-left' (ex: '125mm')
--margins-list [margins] Set margins for song list printout. Same
margins definitions as --margins-title.
--margins-calibrate Print test PDF to calibrate margins of the
-x|--print function.
Margins current settings:
Title: $margs_title
List: $margs_list
- Aide
--help Cette page d'aide --version Imprimer les informations de version.
- Fonctions
-q|--query Requete d'informations au CD-ROM (query disc) -t|--extract Rip audio de CD (extraire les pistes audio) -i|--import-freedb <fichier>
Importer un fichier xmcd (freedb, cddb) ('-' = stdin) -w|--writetags Write tags to audio files -s|--show [tagfile] Show compilation results for the specified file -e|--edit ['done'] Edit tag files. To specify you're done and to mark
the 'edit-tags' step as 'done', use '-e done'. -x|--print Exporter les 'artist', 'album', et 'title' pour
imprimer les pochettes. -r|--read| Lire les tags dans les fichiers et créer un
--import-tags fichier 'tag' en fonction des tags lus -n|--rename Renomme les fichiers en fonction de --scheme -b|--burn Graver les fichiers .wav spécifiés -c|--encode Encode using presets (default: Ogg Vorbis, q=5)
Meta-fonction:
-p|--prepare Prepare CD for batch processing
Tags essentiels pour les Ogg/MP3: artist, title, album.
optionnels: tracknumber, date, genre, comment
etc...
Vistag uses these environment variables when necessary:
PAGER EDITOR TMPDIR
You can also store your settings in ~/.vistag.rc - Just use the long-name option
