Personal scripts deviating from the defaults provided by foobar2000 out of the box. Curated for my own directory setup and tags, but feel free to use.
Playing: ▶ Catch Us by Odyssey (feat. Mortimer)
Paused: Various Artists | foobar2000
Code:
$if(%ispaused%,%album artist% | foobar2000,$char(9654) %title% by %artist%)
Name | Tag | Example |
---|---|---|
Track Title | %title% |
虹とひまわり |
Title Sort | %titlesortorder% |
niji to himawari |
Romaji Title | %titleromaji% |
Niji to Himawari |
English Title | %titleenglish% |
Rainbow and Sunflower |
Artist Name | %artist% |
鷹 (feat. 綾倉盟) |
Artist Sort | %artistsortorder% |
taka (featuring mei ayakura) |
Romaji Artist | %artistromaji% |
Taka (feat. Ayakura Mei) |
English Artist | %artistenglish% |
Taka (feat. Mei Ayakura) |
Composer | %composer% |
ZUN |
Album Title | %album% |
アコースティック・エピソード |
Album Sort | %albumsortorder% |
acoustic episode |
Romaji Album | %albumromaji% |
Acoustic Episode |
English Album | %albumenglish% |
Acoustic Episode |
Album Artist | %album artist% |
CROW'SCLAW |
Album Artist Sort | %albumartistsortorder% |
crow'sclaw |
Romaji Album Artist | %albumartistromaji% |
CROW'SCLAW |
English Album Artist | %albumartistenglish% |
Crow's Claw |
Publisher | %publisher% |
CROW'SCLAW |
Catalog | %catalog% |
PAEP-0003 |
Country | %country% |
Japan |
Media Type | %mediatype% |
CD |
Format | %format% |
Doujin/Indie |
Release Date | %releasedate% |
2012.08.11 |
Date | %date% |
2012 |
Event | %event% |
C82 |
Genre | %genre% |
Arrangement |
Style | %style% |
Soft Rock |
Product | %origin% |
Touhou Project |
Product Type | %origintype% |
Game |
Track Number | %tracknumber% |
04 |
Total Tracks | %totaltracks% |
4 |
Disc Number | %discnumber% |
1 |
Total Discs | %totaldiscs% |
1 |
Comment | %comment% |
Features vocal arrangements of themes from Touhou Project games. |
Code:
Track Title=TITLE;Title Sort=TITLESORTORDER;Romaji Title=TITLEROMAJI;English Title=TITLEENGLISH;Artist Name=ARTIST;Artist Sort=ARTISTSORTORDER;Romaji Artist=ARTISTROMAJI;English Artist=ARTISTENGLISH;Composer=COMPOSER;Album Title=ALBUM;Album Sort=ALBUMSORTORDER;Romaji Album=ALBUMROMAJI;English Album=ALBUMENGLISH;Album Artist=ALBUM ARTIST;Album Artist Sort=ALBUMARTISTSORTORDER;Romaji Album Artist=ALBUMARTISTROMAJI;English Album Artist=ALBUMARTISTENGLISH;Publisher=PUBLISHER;Catalog=CATALOG;Country=COUNTRY;Media Type=MEDIATYPE;Format=FORMAT;Release Date=RELEASEDATE;Date=DATE;Event=EVENT;Genre=GENRE;Style=STYLE;Product=ORIGIN;Product Type=ORIGINTYPE;Track Number=TRACKNUMBER;Total Tracks=TOTALTRACKS;Disc Number=DISCNUMBER;Total Discs=TOTALDISCS;Comment=COMMENT;
Seekbar:
function StringFormat() {
var h_align = 0, v_align = 0, trimming = 0, flags = 0;
switch (arguments.length)
{
// fall-thru
case 4:
flags = arguments[3];
case 3:
trimming = arguments[2];
case 2:
v_align = arguments[1];
case 1:
h_align = arguments[0];
break;
default:
return 0;
}
return ((h_align << 28) | (v_align << 24) | (trimming << 20) | flags);
}
function RGBA(r, g, b, a) {
return ((a << 24) | (r << 16) | (g << 8) | (b));
}
function TimeFmt(t){
var zpad = function(n){
var str = n.toString();
return (str.length<2) ? "0"+str : str;
}
var h = Math.floor(t/3600); t-=h*3600;
var m = Math.floor(t/60); t-=m*60;
var s = Math.floor(t);
if(h>0) return h.toString()+":"+zpad(m)+":"+zpad(s);
return m.toString()+":"+zpad(s);
}
//----------------------------------------------------------------------------
var g_font = gdi.Font("segoe UI",11, 0);
var g_bgcolor = window.GetColorCUI(3);
var g_drag = 0;
var g_drag_seek = 0;
var padding_left = 0;
var padding_right = 35;
var ww;
var wh;
function on_size() {
ww = window.Width;
wh = window.Height;
}
function on_paint(gr){
padding_left = (fb.PlaybackTime<3600)?35:50;
var paddings = padding_left + padding_right;
var bw = ww - paddings;
var pos = 0;
var g_txt = "0:00";
if(fb.PlaybackLength > 0){
if(g_drag){
pos = parseInt(bw * g_drag_seek);
g_txt = TimeFmt(g_drag_seek * fb.PlaybackLength);
}
else{
pos = parseInt(bw * (fb.PlaybackTime/fb.PlaybackLength));
g_txt = TimeFmt(fb.PlaybackTime);
}
}
gr.FillSolidRect(0, 0, ww, wh, RGBA(18,18,18,255));
gr.FillSolidRect(0,4,ww,2,RGBA(85,85,85,255));
gr.FillSolidRect(0,4,pos,2,RGBA(163,138,75,255));
//gr.DrawString(TimeFmt(fb.PlaybackLength),g_font,RGBA(255,255,255,255),ww-padding_right,0,padding_right,wh,StringFormat(2,1,0));
//gr.DrawString(g_txt,g_font,RGBA(255,255,255,255),0,0,padding_left,wh,StringFormat(0,1,0));
}
function on_mouse_lbtn_down(x,y){
g_drag = (x > padding_left)&&(x < ww - padding_right);
}
function on_mouse_lbtn_up(x,y){
if(g_drag){
var bw = ww - padding_left - padding_right;
g_drag_seek = (x - padding_left)/bw;
g_drag_seek = (g_drag_seek<0) ? 0 : (g_drag_seek<1) ? g_drag_seek : 1;
fb.PlaybackTime = fb.PlaybackLength * g_drag_seek;
g_drag = 0;
}
}
function on_mouse_move(x,y){
if(g_drag){
var bw = ww - padding_left - padding_right;
g_drag_seek = (x - padding_left)/bw;
g_drag_seek = (g_drag_seek<0) ? 0 : (g_drag_seek<1) ? g_drag_seek : 1;
window.Repaint();
}
}
function on_mouse_wheel(step){
if(step>0)
fb.RunMainMenuCommand("Playback/Seek/Ahead by 5 seconds");
else
fb.RunMainMenuCommand("Playback/Seek/Back by 5 seconds");
}
function on_playback_new_track(info){
padding_right = (fb.PlaybackLength < 3600)?35:50;
window.Repaint();
}
function on_playback_stop(){
window.Repaint();
}
function on_playback_seek(time){
window.Repaint();
}
function on_playback_time(time){
window.Repaint();
}
function on_colors_changed() {
window.Repaint();
}
Volume Bar:
function RGBA(r, g, b, a) {
return ((a << 24) | (r << 16) | (g << 8) | (b));
}
// Based on human hearing curve
// 0 <= p <= 1
// return a value value: -100 <= vol <= 0
function pos2vol(p) {
return (50 * Math.log(0.99 * p + 0.01) / Math.log(10));
}
function vol2pos(v){
var p=((Math.pow(10,v/50)-0.01)/0.99);
return(p);
}
//-----------------------------------
var g_drag = 0;
var g_bgcolor = window.GetColorCUI(3);
var ww;
var wh;
function on_size() {
ww = window.Width;
wh = window.Height;
}
function on_paint(gr){
var pos = parseInt(vol2pos(fb.Volume) * ww);
gr.FillSolidRect(0, 0, ww, wh, RGBA(18,18,18,255));
gr.FillSolidRect(0, 4,ww,2,RGBA(85,85,85,255));
gr.FillSolidRect(0, 4,pos,2,RGBA(163,138,75,255));
}
function on_mouse_lbtn_down(x,y){
g_drag = 1;
}
function on_mouse_lbtn_up(x,y){
on_mouse_move(x,y);
g_drag = 0;
}
function on_mouse_move(x,y){
if(g_drag){
var p = (x<0)?0:(x / ww);
var v = pos2vol(p);
if(fb.Volume != v)fb.Volume = v;
}
}
function on_mouse_wheel(step){
if(step>0)
fb.VolumeUp();
else
fb.VolumeDown();
}
function on_volume_change(val){
window.Repaint();
}
function on_colors_changed() {
window.Repaint();
}