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
3rd Party Plugins - (fb2k) / Re: NEW ESLyric v0.5 - an alternative lyric show component
Last post by sveakul -
Those wishing to download the fixed .2 version of letras.js can get it now from the GitHub site here;  once at the page hit the "Download Raw File" button in the upper right corner https://github.com/ESLyric/scripts/blob/main/searcher/letras.js , and save the file somewhere.

In the ESLyric plugin's lyrics sources window, right-click and delete the original .1 letras.js.  Then use the "Get More" button in the upper right and specify "local script", then browse to and add the new letras.js.

I've had problems just dumping files straight into the ..foobar2000\profile\eslyric-data\scripts\searcher directory which the above method avoids.
2
Other Lossy Codecs / Re: ADC (Adaptive Differential Coding) My Experimental Lossy Audio Codec
Last post by Nania Francesco -

Hi everyone . With a lot of work I managed to improve the audio recognition engine and also the encoding engine with excellent results. I have developed a method to listen to .adc files by clicking directly on the files. I use it and it's fantastic. Already with the low factor you will have incredible results especially in terms of medium-high performance. So here is the new version 0.10!

I personally think that other codecs cannot achieve these results at low bitrates.

 I have put a guide file on how to make the connection for the less experienced.
3
Opus / Re: Harmonic coding issues of Opus(from THD-N test)
Last post by saratoga -
The main question here is not how often one comes across such a recording or if there's a point in coding inaudible stuff but rather how on earth it's possible that the old MP3 adds less noise to infrasound even at such crazy low bitrates.

The period of those frequencies is much longer than the transform length of both MP3 and Opus, so they are not being analyzed in the same way as audio frequencies would be.  I think the choice of codec is not so important and rather it comes down to how the specific encoder handles periodic changes in total energy between transform blocks, if it high pass filters, etc.  Since this is not something that would usually matter the behavior probably varies a lot between encoders. 
5
3rd Party Plugins - (fb2k) / Re: JScript Panel script discussion/help
Last post by JackYau -
Sure here you go Jack but i use only buttons and a separate volume panel
EDIT: Oh you didn't mean me? sorry.

Buttons
Code: [Select]
// ==PREPROCESSOR==
// @name "Playback Buttons + PBO"
// @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"
// ==/PREPROCESSOR==

var colours = {
buttons : RGB(255, 128, 0),
background : RGB(17, 17, 17),
contrast : RGB(255, 128, 0),
};

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

var panel = new _panel();
var buttons = new _buttons();
var bs = _scale(48);

var pbo_chars = [chars.repeat_off, chars.repeat_all, chars.repeat_one, chars.random, chars.shuffle, chars.album, chars.folder];
var pbo_names = plman.GetPlaybackOrders().toArray();

buttons.update = function () {
var x = ((panel.w - bs * 6) / 2);
var y = Math.round((panel.h - bs) / 2);
this.buttons.stop = new _button(x, y, bs, bs, { char : chars.stop, colour:fb.StopAfterCurrent ? colours.contrast : colours.buttons}, null, function () { fb.Stop(); }, 'Stop');
this.buttons.previous = new _button(x + bs, y, bs, bs, { char : chars.prev, colour:colours.buttons }, null, function () { fb.Prev(); }, 'Previous');
this.buttons.play = new _button(x + (bs * 2), y, bs, bs, { char : !fb.IsPlaying || fb.IsPaused ? chars.play : chars.pause, colour:colours.buttons}, null, function () { fb.PlayOrPause(); }, !fb.IsPlaying || fb.IsPaused ? 'Play' : 'Pause');
this.buttons.next = new _button(x + (bs * 3), y, bs, bs, { char : chars.next, colour:colours.buttons }, null, function () { fb.Next(); }, 'Next');
this.buttons.random = new _button(x + (bs * 4) + 50, y - 2, bs + 4, bs + 4, { char : '\ue8b6', colour:colours.buttons }, null, function () { fb.Random(); }, 'Random');

var pbo = plman.PlaybackOrder;
this.buttons.pbo = new _button(x + (bs * 5) + 100, y - 2, bs + 4, bs + 4, { char : pbo_chars[pbo], colour: pbo == 0 ? setAlpha(colours.buttons, 60) : colours.contrast }, null, function () { pbo >= pbo_chars.length - 1 ? plman.PlaybackOrder = 0 : plman.PlaybackOrder++ }, 'Playback Order: ' + pbo_names[pbo]);
}

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

function on_mouse_leave() {
buttons.leave();
}

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

function on_mouse_rbtn_up(x, y) {
if (buttons.buttons.stop.containsXY(x, y)) {
fb.StopAfterCurrent = !fb.StopAfterCurrent;
return true;
}

return panel.rbtn_up(x, y);
}

function on_paint(gr) {
gr.Clear(colours.background);
buttons.paint(gr);
}

function on_playback_order_changed() {
buttons.update();
window.Repaint();
}

function on_playback_pause() {
buttons.update();
window.Repaint();
}

function on_playback_starting() {
buttons.update();
window.Repaint();
}

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

function on_playlist_stop_after_current_changed() {
buttons.update();
window.Repaint();
}

function on_size() {
panel.size();
buttons.update();
}

volume;
Code: [Select]
// ==PREPROCESSOR==
// @name "Volume + Text"
// @author "marc2003"
// @import "%fb2k_component_path%helpers.txt"
// ==/PREPROCESSOR==
// name, pixels, font_weight (400 = normal, 700 = bold)

var font_string = CreateFontString("Segoe UI", 42, 400);
var g_drag = 0;
var ww = 0, wh = 0;

function on_size() {
ww = window.Width;
wh = window.Height;
}

function on_paint(gr) {
var volume = fb.Volume;
var pos = ww * vol2pos(volume);
var txt = volume.toFixed(2) + 'dB';
FillGradientRectangle(gr, 0, 0, pos, wh, 0, RGB(17, 17, 17), RGB(255, 128, 0));
FillGradientRectangle(gr, pos, 0, ww - pos, wh, 0, RGB(17, 17, 17), RGB(17, 17, 17));
gr.WriteText(txt, font_string, RGB(201, 201, 201), -7, 0, ww, wh, 2, 2);
gr.DrawRectangle(0, 0, ww - 1, wh - 1, 1.0, RGB(150, 150, 150));
}

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 pos = x < 0 ? 0 : x > ww ? 1 : x / ww;
fb.Volume = pos2vol(pos);
}
}

function on_mouse_wheel(delta) {
if (delta > 0)
fb.VolumeUp();
else
fb.VolumeDown();
}

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

great ,thanks
6
3rd Party Plugins - (fb2k) / Re: foo_uie_webview
Last post by Jacob91 -
I touched the titles file again and added a lot of things. I hope you don't get confused, it's simple, but let's see if I can explain everything.

I have added new animations, among other changes.

Now if you have a label saved in your album folder, it will choose that by default for the vinyl label or for the CD label.

Surely there will be some bugs, if you see any, tell me.

I hope all this isn't too confusing. If you have doubts ask. :D

Thanks to colleague @regor for the idea of ​​placing the labels in a circular way with the image of the covers.

Thanks ! 👍
8
Validated News / Re: Exact Audio Copy v1.7 [now v1.8]
Last post by rowi -
Another unfixed Bugs:
I like to use the Flac format with embedded cue sheet for archiving CDs and was surprised that sometimes the Flac archive generation fails.

That's a bit mean. The RollingsStone CD producers like to use characters in the CD title that are not allowed in file names. In this particular case 06/24.

EAC also detects this and replaces the characters. But in the %CUESHEET% macro, the original CD title with the illegal character is returned as the file name, while EAC has created the CUE sheet with the corrected file names.
X
Another Bug:
I actually use the wave editor in EAC to generate CUE sheets automatically.

There is still the old bug that the complete file path is written into the sheet:
FILE "D:\Music\Beth_Gibbons_Live_11-05-24-BR2.wav" WAVE
TRACK 01 AUDIO
INDEX 01 00:00:00
TRACK 02 AUDIO
INDEX 01 04:04:32
TRACK 03 AUDIO
INDEX 01 09:18:38
TRACK 04 AUDIO
INDEX 01 12:58:50
TRACK 05 AUDIO
INDEX 01 18:30:30
TRACK 06 AUDIO
INDEX 01 23:10:18
TRACK 07 AUDIO
INDEX 01 26:43:15
TRACK 08 AUDIO
INDEX 01 30:49:01
TRACK 09 AUDIO
INDEX 01 34:44:00

I reported both bugs in early June, but got no response.
9
General - (fb2k) / Re: Restart foobar from within foobar
Last post by Air KEN -
Is this what you mean?

Shift key + foobar menu > File > Restart

> To overcome the slow memory leak issue I have been facing... just wanted to restart foobar maybe every couple of days.

So the PC remains on and foobar2000 continues playing?
Do you keep sending it on Last.fm etc?
10
General - (fb2k) / Restart foobar from within foobar
Last post by boxerfan88 -
Hi folks,

Is there a way to restart foobar from within foobar menu or using foo_scheduler_mod component?

Kind of similar to what foobar does when installing components, it can prompt the user to allow a restart, and then restarts foobar.

Why I wanna do this? To overcome the slow memory leak issue I have been facing... just wanted to restart foobar maybe every couple of days.

Any help or suggestion will be appreciated...