Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Recent Posts
11
3rd Party Plugins - (fb2k) / Re: JScript Panel script discussion/help
Last post by eurekagliese -
Here's a quick and dirty bodge job for having album art above the text and a blurred album art background.

Code: [Select]
// ==PREPROCESSOR==
// @name "Text Display"
// @author "marc2003"
// @import "%fb2k_component_path%helpers.txt"
// @import "%fb2k_component_path%samples\js\lodash.min.js"
// @import "%fb2k_component_path%samples\js\common.js"
// @import "%fb2k_component_path%samples\js\panel.js"
// @import "%fb2k_component_path%samples\js\albumart.js"
// @import "%fb2k_component_path%samples\js\text_display.js"
// ==/PREPROCESSOR==

// https://jscript-panel.github.io/gallery/text-display/

var panel = new _panel({ custom_background : true });
var albumart = new _albumart(0, 0, 0, 0);
var text = new _text_display(LM, 0, 0, 0);

albumart.blur_img = null;

albumart.metadb_changed = function () {
var img = null;
if (panel.metadb) {
img = panel.metadb.GetAlbumArt(this.properties.id.value);
}

if (this.img) this.img.Dispose();
if (this.blur_img) this.blur_img.Dispose();
this.img = this.blur_img = null;
this.tooltip = this.path = '';
if (img) {
this.img = img;
if (panel.display_objects.length) {
if (panel.display_objects[0].properties.albumart_blur.enabled) {
this.blur_img = this.img.Clone();
this.blur_img.StackBlur(60);
}
}
this.tooltip = 'Original dimensions: ' + this.img.Width + 'x' + this.img.Height + 'px';
this.path = this.img.Path;
if (this.path.length) {
this.tooltip += '\nPath: ' + this.path;
}
}
window.Repaint();
}


text.paint = function (gr) {
if (!this.text_layout) return;

if (this.properties.albumart.enabled) {
_drawImage(gr, this.properties.albumart_blur.enabled ? albumart.blur_img : albumart.img, 0, 0, panel.w, panel.h, image.crop);
_drawOverlay(gr, 0, 0, panel.w, panel.h, 170);
}

var h = panel.h - this.text_layout.CalcTextHeight(this.w) - 50;
_drawImage(gr, albumart.img, 20, 20, panel.w - 40, h, image.centre);

gr.WriteTextLayout(this.text_layout, this.colour_string, this.x, this.y + _scale(12), this.w, this.ha, this.offset);
this.up_btn.paint(gr, this.default_colour);
this.down_btn.paint(gr, this.default_colour);
}

panel.item_focus_change();

function on_colours_changed() {
panel.colours_changed();
text.refresh(true);
}

function on_font_changed() {
panel.font_changed();
text.refresh(true);
}

function on_item_focus_change() {
if (panel.selection.value == 0 && fb.IsPlaying) return;
panel.item_focus_change();
}

function on_metadb_changed() {
albumart.metadb_changed();
text.metadb_changed();
}

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

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

function on_mouse_rbtn_up(x, y) {
return panel.rbtn_up(x, y, text);
}

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

function on_paint(gr) {
panel.paint(gr);
text.paint(gr);
}

function on_playback_dynamic_info_track(type) {
if (type == 0) text.metadb_changed();
else if (type == 1) albumart.metadb_changed();
}

function on_playback_new_track() {
panel.item_focus_change();
}

function on_playback_pause() {
text.refresh();
}

function on_playback_stop(reason) {
if (reason != 2) {
panel.item_focus_change();
}
}

function on_playback_time() {
text.playback_time();
}

function on_playlist_items_added() {
text.refresh();
}

function on_playlist_items_removed() {
text.refresh();
}

function on_playlist_items_reordered() {
text.refresh();
}

function on_playlist_switch() {
on_item_focus_change();
}

function on_size() {
panel.size();
text.w = panel.w - (LM * 2);
text.h = panel.h;
text.size();
}

The right click menu options for enabling/blurring the background should work as expected. And the vertical alignment must be set to bottom as per my previous mod.

Thank you, the display looks great!
13
foobar2000 mobile / Re: [Android]Start playing directly at startup
Last post by yisisixu -

Quote
To be honest, I didn't think about the benefit of recording the last playback status. After all, it doesn't record the playback position. Moreover, even if the playback position is recorded, I think it is more appropriate to start it in pause state.
Pause first and then exit. This operation process is more cumbersome than exiting directly.
Moreover, this behavior is different from most other players, and it is also different from fb2k's own desktop version, so it is difficult for people to get used to it.

Indeed, different scenarios require different requirements.

It's recording the playback progress,I use FB2K on the car machine, and now this setting is good.

In fact, there is a setting on the desktop(windows)  to play on startup.The best way is to add relevant options.

hope it's not too complicated.

14
3rd Party Plugins - (fb2k) / Re: JScript Panel script discussion/help
Last post by marc2k3 -
Here's a quick and dirty bodge job for having album art above the text and a blurred album art background.

Code: [Select]
// ==PREPROCESSOR==
// @name "Text Display"
// @author "marc2003"
// @import "%fb2k_component_path%helpers.txt"
// @import "%fb2k_component_path%samples\js\lodash.min.js"
// @import "%fb2k_component_path%samples\js\common.js"
// @import "%fb2k_component_path%samples\js\panel.js"
// @import "%fb2k_component_path%samples\js\albumart.js"
// @import "%fb2k_component_path%samples\js\text_display.js"
// ==/PREPROCESSOR==

// https://jscript-panel.github.io/gallery/text-display/

var panel = new _panel({ custom_background : true });
var albumart = new _albumart(0, 0, 0, 0);
var text = new _text_display(LM, 0, 0, 0);

albumart.blur_img = null;

albumart.metadb_changed = function () {
var img = null;
if (panel.metadb) {
img = panel.metadb.GetAlbumArt(0);
}

if (this.img) this.img.Dispose();
if (this.blur_img) this.blur_img.Dispose();
this.img = this.blur_img = null;
this.tooltip = this.path = '';
if (img) {
this.img = img;
if (text.properties.albumart_blur.enabled) {
this.blur_img = this.img.Clone();
this.blur_img.StackBlur(60);
}
this.tooltip = 'Original dimensions: ' + this.img.Width + 'x' + this.img.Height + 'px';
this.path = this.img.Path;
if (this.path.length) {
this.tooltip += '\nPath: ' + this.path;
}
}
window.Repaint();
}


text.paint = function (gr) {
if (!this.text_layout) return;

if (this.properties.albumart.enabled) {
_drawImage(gr, this.properties.albumart_blur.enabled ? albumart.blur_img : albumart.img, 0, 0, panel.w, panel.h, image.crop);
_drawOverlay(gr, 0, 0, panel.w, panel.h, 120);
}

var h = panel.h - this.text_layout.CalcTextHeight(this.w) - 50;
_drawImage(gr, albumart.img, 20, 20, panel.w - 40, h, image.centre);

gr.WriteTextLayout(this.text_layout, this.colour_string, this.x, this.y + _scale(12), this.w, this.ha, this.offset);
this.up_btn.paint(gr, this.default_colour);
this.down_btn.paint(gr, this.default_colour);
}

panel.item_focus_change();

function on_colours_changed() {
panel.colours_changed();
text.refresh(true);
}

function on_font_changed() {
panel.font_changed();
text.refresh(true);
}

function on_item_focus_change() {
if (panel.selection.value == 0 && fb.IsPlaying) return;
panel.item_focus_change();
}

function on_metadb_changed() {
albumart.metadb_changed();
text.metadb_changed();
}

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

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

function on_mouse_rbtn_up(x, y) {
return panel.rbtn_up(x, y, text);
}

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

function on_paint(gr) {
panel.paint(gr);
text.paint(gr);
}

function on_playback_dynamic_info_track(type) {
if (type == 0) text.metadb_changed();
else if (type == 1) albumart.metadb_changed();
}

function on_playback_new_track() {
panel.item_focus_change();
}

function on_playback_pause() {
text.refresh();
}

function on_playback_stop(reason) {
if (reason != 2) {
panel.item_focus_change();
}
}

function on_playback_time() {
text.playback_time();
}

function on_playlist_items_added() {
text.refresh();
}

function on_playlist_items_removed() {
text.refresh();
}

function on_playlist_items_reordered() {
text.refresh();
}

function on_playlist_switch() {
on_item_focus_change();
}

function on_size() {
panel.size();
text.w = panel.w - (LM * 2);
text.h = panel.h;
text.size();
}

The right click menu options for enabling/blurring the background should work as expected. And the vertical alignment must be set to bottom as per my previous mod.
15
FLAC / Re: Is there an online database to check the checksum of tracks?
Last post by MrRom92 -
My general rule of thumb, is if it’s only available in 16/44.1 and an older release from before the modern lossless streaming/download age - just get/rip the CD and forget about the WEB version!

At least if it is before the loudness war. Or well, if you can get both, you can pick and choose.

"As a principle" that I do not believe in in practice, the CD should be "inferior" to a file:
* there must be file to produce the CD, and if you can get that, you avoid the risk of the following:
* on the way from file to CD, there are things that incompetent people might do to the mastering.

But for older music, my gut feeling is that the worst that was done to the music was done intentionally, and ... and who knows if those old masters even exist anymore. It might be that the now-discontinued CD versions are as close as one can ever get to a good master.

To clarify, my rule of thumb really pertained mostly to things that are from late enough in the digital era that they only ever got one mastering,and were released on CD initially, but still too early to have been distributed as as a lossless file/download/stream to begin with. I guess we should roughly say the 2000-2014 era, give or take a bit.

For example, there was a hip hop album I wanted from 2007. It’s available now on DSPs in 16/44.1 lossless, but the original CD was rare/pricey.
 Instead of just getting the download, I waited till I could obtain a rip of the actual CD release. That way there would be nothing to speculate about the provenance of the files, I have a legitimate rip of the original release with log/cue in my archive rather than some random set of files that weren’t made available until more than a decade after the fact.
16
FLAC / Re: FLAC v1.4.x Performance Tests
Last post by Porcus -
With unknown hi-res content I usually stuck with the welch;hann;flattop combo, different shapes and easy to memorize window names.
As hann is tukey(1), which is "the extreme end" (rectangle being the other), then I would be mildly surprised if it is any good compared to the tried and tested midways. 
Only "mildly" because who knows what works until it is tried ...

the ones that still like -b4096 at 192kHz
If you take those and compare
-b 4096 -r <R>
to
-b 8192 -r <R+1>
what do you get? Upping the partition order by 1 would double the partition number and maintain the partition size in samples - it would be more like the partial effect of -b alone. (The one you posted in #404 does not benefit from doubling block size and increasing the partitioning though.)
17
FLAC / Re: Is there an online database to check the checksum of tracks?
Last post by Porcus -
My general rule of thumb, is if it’s only available in 16/44.1 and an older release from before the modern lossless streaming/download age - just get/rip the CD and forget about the WEB version!

At least if it is before the loudness war. Or well, if you can get both, you can pick and choose.

"As a principle" that I do not believe in in practice, the CD should be "inferior" to a file:
* there must be file to produce the CD, and if you can get that, you avoid the risk of the following:
* on the way from file to CD, there are things that incompetent people might do to the mastering.

But for older music, my gut feeling is that the worst that was done to the music was done intentionally, and ... and who knows if those old masters even exist anymore. It might be that the now-discontinued CD versions are as close as one can ever get to a good master.