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
1
FLAC / Re: FLAC v1.4.x Performance Tests
Last post by bennetng -
So I tried to transcode some mp3 files I collected to flac, turns out I found nothing special. Total 1158 files, 2d 16h 47m 31s, bitrates from 124kbps VBR to 320kbps CBR. All RG scanned and converted with foobar's "prevent clipping according peak". Used Case Smart Dither plugin with highpass filter unchecked. All files are transcoded to 16/44.

-8
22712634863 dithered
22547632564 truncated

-8e
22706853763 dithered
22540297898 truncated

-8p
22693665912 dithered
22527026089 truncated

Among the dithered files, 54 files, 2h 33m 19s are smaller with -8e.
Among the truncated files, 78 files, 4h 11m 36s are smaller with -8e.
Among the dithered files, 49 of them are same as the truncated ones.
Among the remaining 5 dithered files, they don't share any similarity that I can think of.

Among all files showed smaller file sizes with -8e, this piece of music has the biggest file size differences when compared to -8p. Source mp3 file is in 128kbps CBR.

3621067 -8p dithered
3555347 -8e dithered
3172894 -8p truncated
3150222 -8e truncated

4 - 悲情城市 Variation 1
https://www.discogs.com/release/3913204-SENS-%E3%82%BB%E3%83%B3%E3%82%B9-%E6%82%B2%E6%83%85%E5%9F%8E%E5%B8%82-A-City-Of-Sadness
https://youtu.be/O6ciikFXUQw

Regardless of how the Youtube Opus version was encoded, the mp3 file I have looks like this:
X
3
FLAC / Re: FLAC v1.4.x Performance Tests
Last post by bennetng -
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 ...
Both hann and blackman are of the cosine sum family but blackman is one step narrower than hann, so it would catch a decay trend which is not as severe as blackman. flattop by itself doesn't make too much sense due to the shape, so I don't use it alone, I use it with other windows so that the unique shape can catch something other windows can't. I only use this combo with >= 88.2k content, with subdivide tukey no more than 5.

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.)
When checking this I found something interesting. In my previous post I was comparing -8p with -8b8192 -A "subdivide_tukey(3);blackman;gauss(22e-2)" and assumed if -8p produced a smaller file then that file must be better with -b4096. There are 11 files, 51 minutes fall into this category. However if I only compare -8 with -8b8192 alone, there is only one file (Yu Miyake - WANDA WANDA) works better with -b4096, and only one more file (Cool Zone - The Blessed Place) works better with -b4096 when using -8 -A "subdivide_tukey(3);blackman;gauss(22e-2)", and the total duration of files work better with -b4096 is reduced to 8m 21s, out of  1d 17h 39m 06s. That said, it doesn't mean these 11 files are better with -8p than -8e.

-8e
969930824 bytes

-8p
996927661 bytes
4
3rd Party Plugins - (fb2k) / Re: JScript Panel script discussion/help
Last post by ApacheReal -
All this studied with the crop image, which cuts the image and for me it is not possible, just see the difference between the left panel (crop image) and the right panel (center image):



Then I don't understand the small double image and then the large one.

I can't use it.
6
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!
8
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.

9
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.
10
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.