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.
Topic: foobar2000.cfg editor? (Read 12287 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

foobar2000.cfg editor?

I searched the forum, and found no directly related topic of this. I wonder if there is a GUI-friendly foobar2000 configuration file editor ever? Since foobar2000.cfg is binary file, end users cannot do fine-grain editing on it. Many time I want to change some settings which is not provided an option in foobar2000 preference. Or I want to remove settings of an already removed plugin (I did not answer "no" when foobar2000 asked me to keep the settings), which bloat the foobar2000.cfg.

I have not dug deep into the foobar2000 SDK yet, but since it is open source, the structure of the cfg should be well known. It would be a great thing to have a handy cfg editor.

Thanks!

foobar2000.cfg editor?

Reply #1
Are specifications of foobar2000's configuration file format (.cfg) available? Why doesn't foobar2000 use some user-editable XML-based configuration file format instead?

The configuration file format is not meant to be interchangeable with other software or editable by users. Making it user-editable would result in third party component developers using it as an excuse not to provide proper user interface to change their components' settings, just like many components use title formatting as an excuse not to provide a more accessible way to customize them. Additionally, keeping the entire configuration file structure human-readable would result in slower startup/shutdown and code bloat as well as break compatibility with existing configuration files (or require even more bloat to import old settings).


Taken from: http://www.foobar2000.org/?page=FAQ

Edit: While the core is closed source, the SDK is licensed under the BSD license.
Taken from: http://en.wikipedia.org/wiki/Foobar2000

foobar2000.cfg editor?

Reply #2
I wonder if there is a GUI-friendly foobar2000 configuration file editor ever?

File, Preferences.

Quote
Many time I want to change some settings which is not provided an option in foobar2000 preference.

Like what? And why would anything that is not configurable be stored in the configuration file?

Quote
Or I want to remove settings of an already removed plugin (I did not answer "no" when foobar2000 asked me to keep the settings), which bloat the foobar2000.cfg.

What you call "bloat" is completely insignificant with regard to both file size and startup/shutdown times.

As a workaround, you can re-add the component, start foobar2000, close, remove it, start again, and confirm to remove the settings.

Quote
I have not dug deep into the foobar2000 SDK yet, but since it is open source, the structure of the cfg should be well known.

When the configuration file is written, individual components are simply asked for a byte stream.

foobar2000.cfg editor?

Reply #3
Thanks for quick reply. There is a place I don't find corresponding option in neither preference nor plugin interface. How do you change the generated filename for converter -> Merge all tracks into one output file? It is by default "Image.xxx" for me, and unlike "Convert each track to an individual file", there is no option to specify custom name. It is possible that the filename is fixed in binary code, or it is possible that it is changeable, but the programmer forget to put a corresponding option for it. Maybe there is a way to change this option, but I'm too dumb to find it.

The explanation for not making excuse for 3rd-party developers does not totally convince me. Maybe some people know a Miranda IM. The database of Miranda IM is binary, and there is also a database editor named Database Editor ++. It provides a registry-like structure for only advanced users to edit any settings in Miranda IM. With it, people can find and replace settings (e.g. fontname for variable fields) in batch, and ease the pain to change in GUI preference one by one. Still, it is the developers who are responsible to provide setting interface to their followers, not foobar2000 or Miranda IM. If they don't bother write user interface, who bother use their plugin?

Maybe the comparison between foobar2000 and Miranda IM is not proper, but I don't think it is so bad to make this alternative. Users with lots of plugins installed might find it useful. Since it seems there is still a long way to reach foobar2000 v1.0, why not consider it as a gift for the historical point, even as a 3rd-party plugin?

Many thanks!

foobar2000.cfg editor?

Reply #4
Quote
It is possible that the filename is fixed in binary code, or it is possible that it is changeable, but the programmer forget to put a corresponding option for it. Maybe there is a way to change this option, but I'm too dumb to find it.

Hardcoded in foo_converter.dll. Search it for "Image" string (ASCII, not Unicode).

Quote
Users with lots of plugins installed might find it useful.

So every plugin developer must document all settings of his/her plugins?

foobar2000.cfg editor?

Reply #5
You are asked for exact filename when "Output filename" is set to "(*) Ask each time when starting conversion".
Full-quoting makes you scroll past the same junk over and over.

foobar2000.cfg editor?

Reply #6
Thanks for quick reply. There is a place I don't find corresponding option in neither preference nor plugin interface. How do you change the generated filename for converter -> Merge all tracks into one output file? It is by default "Image.xxx" for me, and unlike "Convert each track to an individual file", there is no option to specify custom name. It is possible that the filename is fixed in binary code, or it is possible that it is changeable, but the programmer forget to put a corresponding option for it. Maybe there is a way to change this option, but I'm too dumb to find it.
If you need a custom name for that then perhaps you should use the "Generate Multi-track files" option then?
elevatorladylevitateme

foobar2000.cfg editor?

Reply #7
Has been discussed several times. Nope, unfortunately the software author wants to keep control over what's being done with the configuration file (reason: world is full of stupid users). In case of dead components entries, only the add/remove workaround helps.

foobar2000.cfg editor?

Reply #8
Quote
Or I want to remove settings of an already removed plugin (I did not answer "no" when foobar2000 asked me to keep the settings), which bloat the foobar2000.cfg.

What you call "bloat" is completely insignificant with regard to both file size and startup/shutdown times.
As a workaround, you can re-add the component, start foobar2000, close, remove it, start again, and confirm to remove the settings.


That's so handy! I will from now on note every component I instlall and thest, brillian, haven't thought 'bout it erlier! Would addng option "Clear configuration form unused data" would be so tragic?

foobar2000.cfg editor?

Reply #9
Agree. The world is full of trade-offs.

Also, maybe the Bencode, which is widely used in BitTorrent applications, is a good example of configuration file. It use sophisticated structure that could repel normal user from editing it. It also allows advanced user to edit it as it is plain text. I don't mean foobar2000 should use Bencode itself, but we could consider some alternative ways to keep foobar2000 becoming better and better.

foobar2000.cfg editor?

Reply #10
Would addng option "Clear configuration form unused data" would be so tragic?
If you don't trust the developer to make a competent decision regarding something as inconsequential as this,  why are you installing his software to begin with?
elevatorladylevitateme

foobar2000.cfg editor?

Reply #11
Seems Firefox also lacks such functionality. If you change any setting of an addon, it enters prefs.js forever until you explicitly reset it. After trying a hundred addons and uninstall those you don't need, the prefs.js could easily grows to even more than 10MB, which could significantly slow down the startup of Firefox. Unlike other sqlite files, there is no neat way to clean these entries. The best way I ever know is to clean the corresponding entries immediately after you uninstall one addon, and uninstall one addon at one time. Same thing applies to foobar2000.

I think it does not matter if I trust a developer or not. Most of the plugin developers I don't know. The way I know them is to use their plugins. If I don't use the plugins, how do I know if the developer would do things inconsequential? Plugin A might be a good one, and has high reputation. I tried it but I don't need it, and probably don't need it ever, so I uninstall it, and do not want leave any trace of it. Is this unreasonable?

foobar2000.cfg editor?

Reply #12
Bencode (...) It also allows advanced user to edit it as it is plain text.

At the risk of repeating myself:

Which options would those "advanced" users want to edit? Behaviour that is currently hardcoded won't magically turn configurable if we switch to a text-based format. Before such a change could even be considered (read: it is not), we would need to know what is wrong with the current set of options. Which settings are missing? Which ones are particularly difficult to change? If necessary, how could the current user interface be improved? So far, you only mentioned a single missing option. If that should be the only one, the whole discussion you wrapped around this is purely academic and a waste of time.

I uninstall it, and do not want leave any trace of it. Is this unreasonable?

No, and that is why you are asked if you want to keep its configuration the next time you start foobar2000. We cannot help it if you decide to keep it. Of course a button to remove unneeded configuration data could be added. But why would it need to be anything more complicated?

foobar2000.cfg editor?

Reply #13
You are right. I think I'm a bit control freak and bring this topic academic if no preference exchange involves. Sorry. I used to see many tutorial postings of foobar2000. In them, the author usually upload one image for every preference page. I was also thinking if the cfg file is plain text, portions of it can be easily shared and exchanged.

foobar2000.cfg editor?

Reply #14
I uninstall it, and do not want leave any trace of it. Is this unreasonable?

No, and that is why you are asked if you want to keep its configuration the next time you start foobar2000. We cannot help it if you decide to keep it. Of course a button to remove unneeded configuration data could be added. But why would it need to be anything more complicated?

Now this is interesting.

"that is why you are asked if you want to keep its configuration the next time you start foobar2000"

You're expecting a reasonable decision of reasonable users here. No mention of wrong decisions, decisions which need to be revised because of changed condition, stupid users, etc.
The whole idea here@fb2k of not giving the user full control, but giving him e.g. a GUI option according to his specific need, is based on the "user is stupid/user does bad things" idea.
But now your statement is based on a reasonable user?

"We cannot help it if you decide to keep it"

Easy. Plain Text configuration file. I'm 142% sure, the same people who celebrate Peter zealotry here (I don't mean you, Frank) would welcome it if they were, say, in a sf.net open source project. People generally like that transparency, no one would ever complain.

Of course I'm repeating myself like you, Frank. I think cfg file checksum checking is paranoia. Trust your users, love your users!

foobar2000.cfg editor?

Reply #15
You're expecting a reasonable decision of reasonable users here. No mention of wrong decisions, decisions which need to be revised because of changed condition, stupid users, etc.
Reasonable users don't worry themselves to pieces about things that don't matter. Reasonable users don't start this thread, or attempt to contribute to (previously) unreasonable thread starter's paranoia.

The whole idea here@fb2k of not giving the user full control, but giving him e.g. a GUI option according to his specific need, is based on the "user is stupid/user does bad things" idea.
Isn't it more like: "Reasonable user doesn't want to be bothered by pointless option, dumb user wouldn't even know what it does"

But now your statement is based on a reasonable user?
Reasonable user doesn't care, clueless user never worries to begin with.


It's that hairy middle-ground user that badly overestimates how much they know about audio/software design that I constantly see get arsed in threads like these when their feature request is shot-down/ignored/implemented differently than they imagined it.

Of course I'm repeating myself like you, Frank. I think cfg file checksum checking is paranoia. Trust your users, love your users!
At risk of repeating the FAQ, I don't think it's the user that anyone is particularly cautious of...


Note: while I perhaps now wear the 'Mod' badge, I'm speaking entirely on my own behalf in this post.
elevatorladylevitateme

foobar2000.cfg editor?

Reply #16
Trust your users, love your users!

Is that some marketing motto? Having worked with users and being a user myself I can tell that the only possible way is "if it possibly could be screwed it will be screwed in such a way that you couldn't imagine" or "never give more than user actually needs".
Sharing delusions since 1991.

foobar2000.cfg editor?

Reply #17
Would addng option "Clear configuration form unused data" would be so tragic?
If you don't trust the developer to make a competent decision regarding something as inconsequential as this,  why are you installing his software to begin with?


Because it's the best in the group which doesn't necessary mean that I must love every bit of it?

Besides - you say it's inconsequential, I say I had problem with some damn old configs stred in cfg files that resulted in reconfiguration from scratch whole program (AFAIR I was whining about that some time ago (; ).

Why I like Opera (besides other thing) - it uses simple .ini file configuration. At any time I can change configuration and everyone is happy...

EDIT: And one more (stupid) thing - sometime I want to copy my cfg to new machine (which i use temporarily) - everything is grand if it has ML locations on it, problems starts when it doesn't - then foobar2k start to import medialibrary... and does that for ages to no avail (no, I don't copy ml database, only foobar cfg file). Only solution to that is recreate paths and remember exactly their structure. Of course I could simply remove that part of configuration but hey - that would be sooo dangerous...

foobar2000.cfg editor?

Reply #18
Besides - you say it's inconsequential, I say I had problem with some damn old configs stred in cfg files that resulted in reconfiguration from scratch whole program (AFAIR I was whining about that some time ago (; ).
If you're talking about this then your problem appears to be that you were using a crappy third-party component. Do you really want to give authors of crappy components more ways to make their components crappy? 


EDIT: And one more (stupid) thing - sometime I want to copy my cfg to new machine (which i use temporarily) - everything is grand if it has ML locations on it, problems starts when it doesn't - then foobar2k start to import medialibrary... and does that for ages to no avail (no, I don't copy ml database, only foobar cfg file). Only solution to that is recreate paths and remember exactly their structure. Of course I could simply remove that part of configuration but hey - that would be sooo dangerous...
I assume you tried copying over the .cfg with database.fpl? 
elevatorladylevitateme

foobar2000.cfg editor?

Reply #19
Why I like Opera (besides other thing) - it uses simple .ini file configuration. At any time I can change configuration and everyone is happy...

<text snipped, danger >

You mentioned the Media Library. I think it was Canar who mentioned, the next big revision of fb2k will have relative paths to Media Library,

foobar2000.cfg editor?

Reply #20
I think it was Case, actually, but someone at least hinted that something like this would be in the next version. Which is fantastic news.

On the thread topic, in my experience, a lot of applications which use plain text config files tend to bury "advanced" options there that you can only set that way. I'm actually very grateful that fb2k doesn't do this, that every setting is somewhere within the program itself. I don't really take a hard line on the "stupid users/stupid component designers" thing the way some here do, but I don't really see a benefit to making this change, particularly if there's improved startup performance the way things are now (as I believe Peter's stated in the past).


foobar2000.cfg editor?

Reply #21
Quote
If you're talking about this then your problem appears to be that you were using a crappy third-party component. Do you really want to give authors of crappy components more ways to make their components crappy?


Ain't crappy components banned anyway? What's the danger here this way?

Quote
I assume you tried copying over the .cfg with database.fpl?


AFAIR that was my first attempt, after it failure I've tried deleting database.fpl with no success whatsoever (tho it was soooome time ago, maybe it was fixed along the way).

Quote
You mentioned the Media Library. I think it was Canar who mentioned, the next big revision of fb2k will have relative paths to Media Library,


And relative paths would help in mentioned situation (no paths whatsoever) how exactly? (;

foobar2000.cfg editor?

Reply #22
Umm... I still don't really see WHY you want to edit it...

If you want to tweak foobar2000 beyond what's already possible, I suggest that you learn C++ and write components that does what you want.
Can't wait for a HD-AAC encoder :P

foobar2000.cfg editor?

Reply #23
Once again in more compact form because some just don't bother to read:
1. to clean .cfg file
2. to provide an easy way to fix some obstacles while transferring config for example.
all in all - it allows more flexibility and (for me) it's at a times more intuitive xD

foobar2000.cfg editor?

Reply #24
@lwiczek - What obstacles? Currently, all config values are visible to the user end easy editable from UI. What would you like to fix that is not fixable now using UI?

Storing config values in human-readable text file would be excuse for lazy developers not to create configuration pages for their components. That would not improve current situation, that is, foobar2000 struggling with opinion that it is player for "advanced" users.

However, I agree that there should exist some component or option to "clean" configuration. Just to silence paranoid users