FOOBAR > expressions textuelles pour formater les champs (titre – album – etc.)

Un champ est représenté par un nom entouré du signe pourcentage (%). Exemple : %artist% désigne le champ artist.

Un appel d'une fonction commence par le signe dollar ($) et les paramètres (séparés par des virgules) renseignés entre les parenthèses de cette fonction. Exemple : $abbr(%artist%).

Il ne doit y avoir aucun espace entre le dollar, le nom de la fonction et la parenthèse ouvrante.

Le nom des champs

ID tag

%album artist% Nom de l'artiste de l'album (cherche dans l'ordre "album artist", "artist", "composer", "performer"). La différence avec %artist% c'est que %album artist% est prévu en cas d'album multi artistes (various artist).

%album% Nom de l'album (cherche dans l'odre "album", "venue")

%artist% Nom de l'artiste d'une piste (cherche dans l'ordre "artist", "album artist", "composer", "performer").

%discnumber% Index du disque au sein d'un album.

%track artist% Nom de l'artiste d'une piste (uniquement si %album artist% est différent de %artist%). Utile avec %album artist% pour indiquer le nom de l'artiste sur une piste précise. Par ex. : "%album artist% - %title%[ '//' %track artist%]". Dans ce cas, la dernière partie sera ignorée si %track artist% n'est pas renseigné.

%title% Titre de la piste. Si le champ est vide, le nom du fichier sera utilisé.

%tracknumber% Index à deux chiffres des pistes d'un même album (ex: 5 devient 05).

%track number% Comme %tracknumber%, mais sans le 0 initial pour les nombres à 1 chiffre (5 au lieu de 05).

%bitrate% Bitrate de la piste. Si le bitrate est en VBR, alors renvoie de façon dynamique lorsque la piste est jouée.

%channels% Nombre de canaux au format texte (mono/stereo/etc).

%filesize% nommé également %_filesize%. Renvoie le poids du fichier en octets.

%filesize_natural% comme %filesize% mais humainement lisible (mo, ko).

%samplerate% taux d’échantillonnage en Hz.

%codec% Nom du codec utilisé. Si le champ n'est pas renseigné, alors prend l'extension du fichier.

Technique

$info(name) Returns value of technical information field called name.

For convenience, the %__name% alias is also available.

Ex: $info(channels)2

Here is an informative list of recognized fields. Some of these depend on the media file type being queried :

codec Codec (ex: MP3)

codec_profile Codec Profile (ex: CBR)

samplerate Sample Rate, in hertz (ex: 44100)

bitrate Bitrate, in kilobits per second (ex: 320)

tool Tool used to produce the file, possibly guessed (ex: LAME3.97)

encoding Encoding lossiness (ex: lossy)

channels Nombre de canaux (ex: 2)

channel_mode Channel Mode (ex: 3 front, 2 rear surround channels + LFE)

bitspersample Bits Par Sample (ex: 16)

tagtype Tag Type, comma-separated list of tag formats (ex: id3v2|apev2)

cue_embedded Embedded Cuesheet presence (ex: no [ou vide])

md5 MD5 audio (ex: 1E24A910D91EF09A8CF403C9B6963961)

ENC_DELAY LAME proprietary MP3 enc_delay value for gapless playback (ex: 576)

ENC_PADDING LAME proprietary MP3 enc_padding value for gapless playback (ex: 1536)

MP3_ACCURATE_LENGTH MP3 duration (%length% etc.)

MP3_STEREO_MODE Stereo mode used in MP3 file (ex: mono, stereo, joint stereo)

VERSION Version of tool (ex: 3.99)

FLAGS Flags of tool (ex: 22)

$channels() Renvoie le nombre de canaux au format texte. Ex: $channels()stereo

%replaygain_album_gain% Returns ReplayGain album gain value.

%replaygain_album_peak% Returns ReplayGain album peak value.

%replaygain_track_gain% Returns ReplayGain track gain value.

%replaygain_track_peak% Returns ReplayGain track peak value.

Fichier

%filename% Nom du fichier sans l'extension.

%filename_ext% Nom du fichier avec l'extension.

%directoryname% Nom du dossier parent.

%last_modified% Date et heure de la dernière modification du fichier (2005-12-22 00:04:10)

%path% Chemin complet.

%_path_raw% Chemin as URL including the protocol scheme.

%subsong% subsong index. La position d'une piste dans un seul fichier à plusieurs pistes (fichier cue, par exemple).

%_foobar2000_version% Version de foobar2000.

Les conditions

[…] la section conditionnelle évalue l'expression entre [ et ]. Si la condition est vrai, alors elle renvoie true et le résultat, sinon elle renvoie une chaine vide et false.

Ex: [%artist%] renvoie la valeur du tag artist si il existe, sinon ne retourne rien.

$if(A,B) si la condition A est vraie, B est exécuté ou envoyé. Sinon, renvoie false.

$if(A,B,C) si la condition A est vraie, B est exécuté. Sinon, C est renvoyé.

$if2(A,B) comme $if(A,A,B), si A est vrai, renvoie A, sinon renvoie B.

$if3(A1,A2,…,AN,B) évalue les arguments A1 ... AN, jusqu'à ce qu'une soit vraie. Si c'est le cas, renvoie la valeur de la première évaluation trouvée. Sinon, renvoie B.

$ifequal(A1,A2,B,C) si les entiers A1 et A2 sont égaux, renvoie B, sinon renvoie C.

$ifgreater(A1,A2,B,C) si l'entier A1 est supérieur à A2, renvoie B, sinon renvoie C.

$iflonger(A,B,C,D) si la chaine A est plus longue que l'entier B, renvoie C, sinon renvoie D.

$select(n,a1,…,aN) Si n est compris entre 1 et N, la valeur de an est renvoyée.

Fonctions arithmétiques

Uniquement sur des nombres entiers (1,2,3... %tracknumber%). Une chaine vaut 0. Les espaces encadrants sont ignorés. Les décimales après le point sont ignorés. Ex:

"c3po"0

4.84

" -12"-12

"- 12"0

$add(a,b,…) additionne a et b.

$div(a,b) divise a par b avec un arrondi à l'entier inférieur. Si b vaut 0, renvoie a.

$greater(a,b,C,D) si a est plus grand que b, exécute C, sinon exécute D. Si C et D ne sont pas renseignés, renvoie true ou false.

$max(a,b,…) renvoie la valeur maximale des arguments.

$min(a,b,…) renvoie la valeur minimale des arguments.

$mod(a,b) renvoie le reste de la division de a par b. Le résultat est du même signe que a. Si b vaut 0, alors renvoie a.

$mul(a,b,…) multiplie a fois b.

$muldiv(a,b,c) multiplie a fois b, puis divise par c, le tout arrondi à l'entier le plus proche.

$rand() génère un entier aléatoire compris entre 0 et 4 294 967 295. Disponible only in sort-related contexts, such as the Edit → Sort → Sort by ... menu command.

$sub(a,b,…) Soustrait b de a.

Les fonctions logiques

Les fonctions logiques (ou booléennes) ne retourne aucune chaine ou nombre. Elles ne retournent que true ou false. Elles sont utiles à l'intérieur de $if.

$and(x,y,…) ET logique: Renvoie true si tous les arguments sont vrais.

$or(x,y,…) OU logique: Renvoie true si au moins un argument est vrai.

$not(x) NON logique: Renvoie true si x est false. Renvoie false si x est true.

$xor(x,y,…) OU-exclusif: Renvoie true si un nombre impair d'arguments est vrai.

Ex: $xor(x,y) renvoie true si x ou y est vrai, mais pas les deux. Sinon, renvoie false.

Les couleurs

La playlist du Columns UI supporte ces fonctions:

$blend(c1,c2,P,T) donne un dégradé (ligne par ligne) dont le premier élément aura la couleur c2 et le dernier c1 (en mode $rgb(R,G,B)).

P est le nombre de lignes où la couleur sera unie avant le dégradé. (Si P≤0, c1 est retourné. Si PT, c2 est retourné).

T indique le nombre total de cases à dégrader avant de refaire un autre dégradé.

Ainsi, avec P=%track% et T=1, cela permet de faire une ligne sur deux en alternance.

Sinon, avec P=1 et T=$sub(%track%,P) (ici, P vaudra 1, car il faut Total - P)

$hsl() remet la couleur du texte par défaut.

$hsl(h,s,l) donne une couleur au texte (au format HSL (hue, saturation, lightness)). Les valeurs de h, s et l vont de 0 à 240. La couleur pour le texte sélectionné est en inverse vidéo.

$hsl(h1,s1,l1,h2,s2,l2) donne une couleur au texte (au format HSL). h1, s1 et l1 sont les valeurs pour le texte non sélectionné, tandis que h2, s2 et l2 concernent le texte sélectionné.

$rgb() remet la couleur du texte par défaut.

$rgb(r,g,b) donne une couleur au texte (au format RGB). La couleur pour le texte sélectionné est en inverse vidéo.

$rgb(r1,g1,b1,r2,g2,b2) donne une couleur au texte (au format RGB). Les valeurs de r1, g1 et b1 sont pour le texte non sélectionné, tandis que r2, g2 et b2 concernent le texte sélectionné.

$transition(a,c1,c2) crée un dégradé (au format RGB) au sein même de la chaine a. Ainsi le 1er caractère de la ligne aura la couleur c1, tandis que le dernier aura la couleur c2.

NB: Le code de transition se rajoute à la chaine elle-même. Il sera donc comptabilisé dans un $iflonger, par exemple. Il faut donc faire les transformations de chaine avant d'y ajouter le code de transition.

Now playing info

Les fonctions et champs suivants sont utilisables dans le status bar, le main window title et le copy command script.

%playback_time% renvoie le temps écoulé au format [HH:]MM:SS

%playback_time_seconds% idem mais en secondes.

%playback_time_remaining% renvoie le temps restant d'une piste au format [HH:]MM:SS

%playback_time_remaining_seconds% idem mais en secondes.

%length% renvoie la durée de la piste en heures, minutes, secondes.

%length_ex% renvoie la durée de la piste en heures, minutes, secondes, millisecondes.

%length_seconds% renvoie la durée de la piste en secondes.

%length_seconds_fp% renvoie la durée de la piste en secondes avec virgule.

%length_samples% renvoie la durée de la piste en samples.

Playlist info

Les fonctions et champs sont utilisables dans playlist display formatting (eg. per-column title formatting patterns).

%isplaying% renvoie 1 si le fichier est en lecture.

%ispaused% renvoie 1 si la lecture est en pause.

%list_index% renvoie un zero-padded playlist index of specified item. Le premier élément a l'indice 1.

%list_total% renvoie le nombre total d'éléments dans une playlist.

%queue_index% index d'un élément dans la queue de lecture; disponible uniquement en mode playlist. Si la piste est présente plusieurs fois, %queue_index% renvoie le premier index.

%queue_indexes% liste des index d'une piste en queue; disponible uniquement en mode playlist. Comme %queue_index% mais renvoie tous les index si présent plusieurs fois.

%queue_total% nombre total de pistes en playlist.

Fonctions sur les chaines de caractères

$abbr(x) renvoie l'abréviation de x. Les mots commençant par un alphanumérique sont raccourcis à leur premier caractère. Les espaces et parenthèses sont tronqués. Ex:

$abbr('This is a Long Title (12-inch version) [needs tags]') → TiaLT1v[needst

$abbr(x,L) renvoie l'abréviation de L caractères de x .

$ansi(x) encode x en codage système. Chaque caractère absent du codage système sera supprimé. Utile pour le renommage en masse des fichiers et la compatibilité avec le système.

$ascii(x) converti x en ASCII. Les caractères absents de la table ASCII seront supprimés.

$caps(x) converti la première lettre de chaque mot en capitale et en minuscule les autres.

$caps2(x) converti la première lettre de chaque mot en capitale, et laisse les autres telles quelles.

$char(x) insert un caractère Unicode avec son code x.

$crc32(a) calcule le CRC32 de la chaine a comme nombre. Intended for use in coloring scripts. Ex: $rgb($mod($crc32(%album%),256),128,128)

$crlf() insert un retour charriot

$cut(a,x) renvoie les x premiers caractères de la chaine a (comme $left(a,x)). Les nombres négatifs renvoie la chaine entière. Ex:

$cut('abc123',3)abc

$cut('abc123',0)-NUL-

$cut('abc123',-1)abc123

$directory(x) renvoie le nom du dossier du fichier x.

$directory(x,n) renvoie le nom du dossier du fichier x (avec un niveau de n).

$directory_path(x) renvoie le chemin du dossier du fichier x.

$ext(x) renvoie l'extension du fichier x.

$filename(x) renvoie le nom du chemin complet.

$fix_eol(x) si x contient un retour chariot, alors ce dernier est remplacé par ...

$fix_eol(x,a) si x contient un retour chariot (CR-LF), ce dernier sera remplacé par a.

$hex(n) converti le nombre entier n en hexadécimal.

$hex(n,a) converti le nombre entier n en hexadécimal avec a chiffres. Rempli de 0 à gauche si nécessaire.

$insert(a,b,n) insert b dans a après n caractères.

$left(a,x) renvoie les x premiers caractères de a (comme $cut(a,len)). Ex:

$left('abc123',3)abc

$left('abc123',0)-NUL-

$left('abc123',-1)abc123

$len(a) renvoie la longueur de la chaine a.

$len2(a) renvoie la longueur de la chaine a, en respectant les caractères doubles.

$longer(a,b) renvoie true si la chaine a est plus longue que la chaine b.

$lower(a) converti en minuscule la chaine a.

$longest(a,…,…) renvoie l'élément le plus long de tous les arguments.

$num(n,x) renvoie l'entier n en décimal de x caractères. Si besoin, rempli de 0 avant. x inclut le signe - pour un nombre négatif. Si n n'est pas numérique, il sera rempli de x zeros. Ex:

$num(123,5)00123
$num(-123,5)-0123
$num(4.8,5)00004
$num(A1,5)00000

$pad(x,len) crée une indentation à gauche de x. If x is shorter than len characters, the function adds spaces to the right of x to make the result len characters long. Otherwise the function returns x unchanged.

$pad_right(x,len) crée un alignement à droite de la chaine x. Si x is shorter than len characters, the function adds spaces to the left of x to make the result len characters long. Otherwise the function returns x unchanged.

$pad(x,len,char) crée a left-aligned version of the string x. If x is shorter than len characters, the function adds char to the right of x to make the result len characters long. Otherwise the function returns x unchanged.

$pad_right(x,len,char) crée a right-aligned version of the string x. If x is shorter than len characters, the function adds char to the left of x to make the result len characters long. Otherwise the function returns x unchanged.

$padcut(x,len) returns first len characters from the left of x, if x is longer than len characters. Otherwise adds spaces to the right of x to make the result len characters long.

$padcut_right(x,len) returns first len characters from the left of x, if x is longer than len characters. Otherwise adds spaces to the left of x to make the result len characters long.

$progress(P,R,L,a,b) crée une barre de progression: P est la position, R est la référence, L est le nombre de caractères pour la barre, a et b sont les caractères de la barre. Ex:

$progress(%_time_elapsed_seconds%, %_time_total_seconds%, 20,'#','=') donne ====#=============== avec le # qui se déplace dans la barre.

$progress2(P,R,L,a,b) crée une barre différent de $progress().

$repeat(a,n) renvoie n copies de a. NB: ne sert pas pour les boucles.

$replace(a,b,c) remplace tous les b par c de la chaine a. On peut faire plusieurs remplacements: $replace(a,b1,c1,b2,c2). Ex:

$replace(ab,a,b,b,c)bc

$replace($replace(ab,a,b),b,c)cc

$right(a,L) renvoie les L derniers caractères de a.

$roman(n) transforme l'entier n en chiffres romains.

$rot13(a) transformation en ROT13 de la chaine a.

Ex: $rot13('foobar2000')sbbone2000

$shortest(a,…) renvoie l'élément le plus court de tous les arguments.

$strchr(s,c) renvoie la première position du caractère c dans la chaine s.

Ex: $strchr(abca,a)1

$strrchr(s,c) renvoie la dernière position du caractère c dans la chaine s.

Ex: $strrchr(abca,a)4

$strstr(s1,s2) trouve la première occurrence de la chaine s2 dans la chaine s1.

$strcmp(s1,s2) opère une comparaison case-sensitive de la chaine s1 et s2.

$stricmp(s1,s2) opère une comparaison non case-sensitive de la chaine s1 et s2.

$substr(s,m,n) renvoie la portion de la chaine s comprise entre le m-iène et le n-ième caractère.

$stripprefix(x) supprime les préfixes A et The de x.

$stripprefix(x,p1,p2,…) supprime les préfixes p1, p2, etc. de x.

$swapprefix(x) déplace les préfixes A et The à la fin de x.

$swapprefix(x,p1,p2,…) déplace les préfixes p1, p2 à la fin de x.

$trim(s) supprime les espaces encadrants de la chaine s.

$tab() insert une tabulation.

$tab(n) insert n tabulations.

$upper(s) converti la chaine s en lettres capitales.

Track info

Permet d'avoir accès aux données des pistes.

Métadonnées

$meta(T) renvoie la valeur du tag T. Si plusieurs valeurs existent, elles seront concaténées par une virgule ", ". Ex: $meta(artist) → He, She, It

$meta(T,n) renvoie la nième valeur (0,1,2,...) du tag T. Ex: $meta(artist,1) → She

$meta_sep(T,S) renvoie la valeur du tag T. Si plusieurs valeurs existent, elles seront  concaténées par le séparateur S. Ex: $meta_sep(artist,' + ') → He + She + It

$meta_sep(T,S,D) renvoie la valeur du tag T. Si plusieurs valeurs existent, elles seront  concaténées par le séparateur S, ormis le dernier séparateur par D.

Ex: $meta_sep(artist,', ',', and ') → He, She, and It

$meta_test(…,…) renvoie 1 si tous les tags donnés existent.

Ex: $meta_test(artist,title)true

$meta_num(T) renvoie le nombre de valeurs pour le tag T. Ex: $meta_num(artist)3

Time/Date Functions

These functions are used to manipulate time/date strings, notably (but not limited to), those gathered by the Playback Statistics component.

$year(time) Retrieves the year part (formatted as four digits) from a time/date string.

$month(time) Retrieves the month part (formatted as two digits) from a time/date string.

$day_of_month(time) Retrieves the day of month part (formatted as two digits) from a time/date string.

$date(time) Retrieves the date part (formatted as YYYY-MM-DD) from a time/date string.

$time(time) Retrieves the time part (formatted as HH:MM:SS or HH:MM) from a date/time string.

Les variables

Les variables peuvent contenir des chaines et des chiffres. Elles ne peuvent contenir la valeur true. Elles ne sont pas sensibles à la casse.

Quelques examples:

CODE -----------------------> SORTIE

$put(foo,bar)$char(10) -----> bar

$get(foo)$char(10) ---------> bar

$get(Foo)$char(10) ---------> bar

$puts(foo,2000)$char(10) ---> -NUL-

$get(foo)$char(10) ---------> 2000

$get(name) Returns the value that was last stored in the variable name, if the variable was not defined (yet), it returns nothing. The truth value returned by $get indicates if the variable name was defined

$put(name,value) Stores value in the variable name and returns value unaltered

$puts(name,value) Stores value in the variable name and returns nothing

Page sous licence libre GNU (License 1.2) de Hydrogenaudio Knowledgebase

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *