Skip to main content
Recent Posts
1
3rd Party Plugins - (fb2k) / Re: WSH Panel Mod script discussion/help
Last post by mjm716 -
We've already been down that path - that sample is for JSPanel/spider monkey panel.

Your time is better spent posting your setup and getting assistance to update; it's unlikely to be as difficult as you think.
There are more people here suited to help with that, than there are to troubleshoot expired components and scripts.
2
3rd Party Plugins - (fb2k) / Re: WSH Panel Mod script discussion/help
Last post by aphelion -
i found the "status bar + volume" txt:
Code: [Select]
// ==PREPROCESSOR==
// @name "Status Bar + Volume"
// @author "marc2003"
// @import "%fb2k_component_path%samples\complete\js\lodash.min.js"
// @import "%fb2k_component_path%samples\complete\js\helpers.js"
// @import "%fb2k_component_path%samples\complete\js\volume.js"
// ==/PREPROCESSOR==

var tfo = fb.TitleFormat('%__bitrate% kbps %codec% [%codec_profile% ][%__tool% ][%__tagtype% ]');

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

var properties = {
name : new _.p('2K3.STATUS.SHOW.NAME', true),
count : new _.p('2K3.STATUS.SHOW.COUNT', true),
duration : new _.p('2K3.STATUS.SHOW.DURATION', true),
size : new _.p('2K3.STATUS.SHOW.SIZE', true),
background : new _.p('2K3.STATUS.BACKGROUND', _.RGB(240, 240, 240)),
text : new _.p('2K3.STATUS.TEXT', _.RGB(0, 0, 0))
};
var font = _.gdiFont('Segoe UI', 11);
var ww = 0;
var wh = 0;
var right_text = '';
var right_text_width = 0;

var volume = new _.volume(0, 3, 100, font.Height - 9);

refresh();

function on_size() {
ww = window.Width;
wh = window.Height;
volume.x = ww - 190;
}

function on_paint(gr) {
gr.FillSolidRect(0, 0, ww, wh, properties.background.value);
if (fb.IsPlaying) {
gr.GdiDrawText(tfo.Eval(), font, properties.text.value, 5, -1, ww - right_text_width - 300, font.Height, LEFT);
}
if (plman.ActivePlaylist > -1 && plman.ActivePlaylist < plman.PlaylistCount) {
gr.GdiDrawText(right_text, font, properties.text.value, 0, -1, ww - 250, font.Height, RIGHT);
}
gr.DrawRect(volume.x, volume.y, volume.w, volume.h, 1, properties.text.value);
gr.FillSolidRect(volume.x, volume.y, volume.pos(), volume.h, properties.text.value);
gr.GdiDrawText(fb.Volume.toFixed(2) + ' dB', font, properties.text.value, 0, -1, ww - 5, font.Height, RIGHT);
}

function on_playback_time() {
window.Repaint();
}

function on_playback_stop() {
window.Repaint();
}

function on_volume_change() {
window.Repaint();
}

function on_mouse_wheel(s) {
volume.wheel(s);
}

function on_mouse_move(x, y) {
volume.move(x, y);
}

function on_mouse_lbtn_down(x, y) {
volume.lbtn_down(x, y);
}

function on_mouse_lbtn_up(x, y) {
volume.lbtn_up(x, y);
}

function on_mouse_lbtn_dblclk() {
fb.RunMainMenuCommand('View/Show now playing in playlist');
}

function on_mouse_rbtn_up(x, y) {
var m = window.CreatePopupMenu();
var s = window.CreatePopupMenu();
var c = fb.CreateContextMenuManager();
var col = window.CreatePopupMenu();
if (fb.IsPlaying) {
c.InitNowPlaying();
c.BuildMenu(s, 1);
s.AppendTo(m, MF_STRING, 'Now playing');
m.AppendMenuSeparator();
}
m.AppendMenuItem(MF_STRING, 10000, 'Show playlist name');
m.CheckMenuItem(10000, properties.name.enabled);
m.AppendMenuItem(MF_STRING, 10001, 'Show playlist item count');
m.CheckMenuItem(10001, properties.count.enabled);
m.AppendMenuItem(MF_STRING, 10002, 'Show playlist duration');
m.CheckMenuItem(10002, properties.duration.enabled);
m.AppendMenuItem(MF_STRING, 10003, 'Show playlist size');
m.CheckMenuItem(10003, properties.size.enabled);
m.AppendMenuSeparator();
col.AppendMenuItem(MF_STRING, 10004, 'Background...');
col.AppendMenuItem(MF_STRING, 10005, 'Text...');
col.AppendTo(m, MF_STRING, 'Colours');
m.AppendMenuSeparator();
m.AppendMenuItem(MF_STRING, 10010, 'Configure...');
var idx = m.TrackPopupMenu(x, y);
switch (idx) {
case 0:
break;
case 10000:
properties.name.toggle();
refresh();
break;
case 10001:
properties.count.toggle();
refresh();
break;
case 10002:
properties.duration.toggle();
refresh();
break;
case 10003:
properties.size.toggle();
refresh();
break;
case 10004:
properties.background.set(utils.ColourPicker(window.ID, properties.background.value));
window.Repaint();
break;
case 10005:
properties.text.set(utils.ColourPicker(window.ID, properties.text.value));
window.Repaint();
break;
case 10010:
window.ShowConfigure();
break;
default:
c.ExecuteByID(idx - 1);
break;
}
_.dispose(m, s, c, col);
return true;
}

function on_playlist_items_added(p) {
if (p == plman.ActivePlaylist) {
refresh();
}
}

function on_playlist_items_removed(p) {
if (p == plman.ActivePlaylist) {
refresh();
}
}

function on_playlists_changed() {
if (properties.name.enabled) {
refresh();
}
}

function on_playlist_switch() {
refresh();
}

function refresh() {
var items = plman.GetPlaylistItems(plman.ActivePlaylist);
var count = items.Count;
var tmp = [];
if (properties.name.enabled) {
tmp.push(plman.GetPlaylistName(plman.ActivePlaylist));
}
if (properties.count.enabled) {
tmp.push(count + (count == 1 ? ' track' : ' tracks'));
}
if (properties.duration.enabled) {
tmp.push(utils.FormatDuration(items.CalcTotalDuration()));
}
if (properties.size.enabled) {
tmp.push(utils.FormatFileSize(items.CalcTotalSize()));
}
right_text = tmp.join(' :: ');
right_text_width = _.textWidth(right_text, font);
window.Repaint();
_.dispose(items);
}
it contains potentially interesting words like:
- plman.PlaylistCount
- plman.ActivePlaylist
- items.CalcTotalDuration
- Show playlist item count
- Show playlist duration
but i don't know how it should be modified

and i haven't noticed anything related to the "selected tracks' total length"
for example, something like "Show playlist selected items duration"

when simply trying this code as it is, foobar indicates the following error: Scripting Engine Initialization Failed
5
Audio Hardware / Re: Room correction (room equilization) questions
Last post by LazyBorzoi -
the picture is probably a measured frequency response.
btw the easiest way to do this is with mathaudio room eq plugin for foobar2000. which is also freeware and has a good tutorial.

also if you use bad microphone, it's possible to get results that are worse than no correction at all, so it really only makes sense with a good linear-FR microphone.

I installed the plugin and added it to the Foobar2000 but couldn't figure out how to run it within the Foobar. Do you remember how to do it?

Edit: nevermind, I figured it out :-)
6
WavPack / Re: Support for 64bit wav
Last post by saratoga -
It is not about sound, it is about the file itself, currently WAV uses 32 bit fields, which limits the size of the file and therefore the length of the music you can record. 64 bit files can be way bigger and you can record instead of just six and half hours of two channels with 16 bit and 44.1 kHz you can record over 3 million years.

This thread is discussing fp64 samples in wav, not the wav64 format.
7
3rd Party Plugins - (fb2k) / Re: External Tags
Last post by sveakul -
The "edit file tags" menu is only available if >100 files are selected (or if external tags already exists). Could you fix this?

That's strange, I'm using 1.0.16.3 and right-clicking a single file or single stream on a playlist does show "Edit file tags" as a submenu of Tagging;  this for files with or without an external tag.  Of course it is selected as a context menu display option in Preferences as I assume yours is also?

8
WavPack / Re: Support for 64bit wav
Last post by tehabe -
It is not about sound, it is about the file itself, currently WAV uses 32 bit fields, which limits the size of the file and therefore the length of the music you can record. 64 bit files can be way bigger and you can record instead of just six and half hours of two channels with 16 bit and 44.1 kHz you can record over 3 million years.
9
MPC / Re: Do Musepack's inherently fast decoding speeds still mean anything?
Last post by saratoga -
Claims about Decoding speed (unrelated to musepack) have quite often struck me as odd. I have many times considered making a threat about it, but wasn't sure how to phrase it. For example on this website we find the claim that Opus is supposed to be about as fast as AAC and musepack is supposed to be about as fast as Mp3, both being faster (almost 3 times) than Opus and AAC.

I absolutely can not reproduce this behaviour. A quick test on my random laptop using the decoding speed test plugin in foobar2000 (single threaded) gives me about 252x realtime speed for Opus, 587x realtime speed for Musepack, ~715 realtime speed for Mp3 and a whopping ~1600x realtime speed for AAC. Maybe this has something to do with hardware decoding support? Or the AAC decoder in ffmpeg has recently been improved? I guess it would also depend on architecture... x86 vs AMD64 vs ARM.

I just can almost never correlate benchmark results I've seen online with what I experience in the real world. Do you know more about this @saratoga ? I think you have some know-how on decoder ... things?

Unless you spent 5 years optimizing each of the codecs in assembly like I (and others) did for that comparison I linked, you can't really do that. You don't know how fast an optimized decoder would be on a given device, only how fast some specific windows application is, and that will probably be uncorrelated with mobile device power consumption.

In reality, mp3 is pretty slow, most things are faster at a similar level of optimization due to the hybrid filterbank. Opus is probably a bit slower or maybe the same as mp3. WMA is probably the fastest modern codec, followed closely by MPC and then Vorbis and AAC.

This probably doesn't matter on an Android device. These are all using low power dsp chips for decode such that decoder time is negligible compared to other things. In rockbox it matters a lot more since there is nothing but decode consuming power.
10
WavPack / Re: Support for 64bit wav
Last post by saratoga -
Quote
As far as I can make out, 64bit float wav would only be of use for true 32bit audio interfaces
Most audio interfaces are now 24bit..
(32bit is actually 24 bit, and 64bit would be 48bit)

Interfaces that take 24 or 32 bit samples certainly exist, but none can actually use 24 bits making this irrelevant. No sense fretting about data your D/A discards anyway.
SimplePortal 1.0.0 RC1 © 2008-2018