Saturday, March 17, 2012

Crash fix

It turns out I messed up at least one thing with the massive translation-related changes in 1.1.16, so creating new sessions (which also happens when you do a fresh install) resulted in a crash preventing the program from starting. Or, well, it started if you played with the language-selection combobox, but you could do that only in the first step, when choosing the folders. Once you hit OK there was no going back unless you manually removed or changed some settings. I didn't catch it because all of my tests were on existing sessions.

Anyway, there's a new version, 1.1.17, which takes care of that issue. If you got 1.1.16, you should replace it with 1.1.17.

Sunday, March 11, 2012

Translations

MP3 Diags is finally translatable. I have no idea when I would have done it without an external push, but the push came from Pavel Fric in the form of translated dialogs, so now it's done. I "merely" had to make the code translation-aware. That required hundreds of changes, and I think it's the most extensive change since the project was made public. So even if I tried to check all the changes and retested most things, chances are that I broke some functionality. Anyway, it's quite unlikely for anything to be impacted besides the messages and tooltips shown on various occasions, so the program should work pretty much the same as before. Or if it doesn't, it should crash without doing any other damage. Well, I hope there will be some who will test it and report back any issues they encountered.

Currently only a Czech translation exists, but more can now be easily added.

I didn't update the documentation, but I hope changing the language is intuitive enough: above the fonts, in "Configuration / Others", by a big UN flag. This one requires restarting the program, or at least the session, but if you have a fresh install or use multiple sessions, the language can be changed from the session editor as well.

Since the translation issue came up before, I expect some would be interested in playing with it, so here are the basic things they need to know, using Italian as an example and the forward slash as the path separator:

- While you really need just an XML file to make a translation, you should create that file from Qt Linguist, which AFAIK comes with Qt SDK, so you should get that (on Linux this comes with a "Qt4 Devel" package - "libqt4-devel" on openSUSE.)

- Next you need the MP3 Diags sources. While for playing on your own, anything listed in the download page should work, if you want to actually contribute and maintain an official translation for MP3 Diags, you should use some Subversion client, to access the repository.

- Each new language requires an entry in the file src/src.pro, in the TRANSLATIONS section. For Italian, it would be like this:
TRANSLATIONS = translations/mp3diags_cs.ts \
  translations/mp3diags_it.ts

- You should now open a terminal / command prompt, go to the directory where you have the sources and run this command:
lupdate src/src.pro
It should create a file named src/translations/mp3diags_it.ts (obviously, you need "lupdate" to be in your "PATH", so you might need to adjust it. This should be run again as the program changes.

- You should open this file with Qt Linguist (the executable's name is just linguist on some Linuxes and linguist.exe on Windows), then do the translation. One nice thing it does is that it allows you to see the UI dialogs and the source code that correspond to a text that has to be translated, which can be helpful on many occasions, even for non-programmers.

- When you are done or whenever want to test something, you can "Release" the translation using the menu entry "File/Release". This will create the file called src/translations/mp3diags_it.qm. You can copy this file to the directory where the MP3 Diags executable is located (version 1.1.16 or later) and it will show up as an option when choosing the language and you'll be able to see the results of your work immediately.

More details here, here, or here.

If you want to contribute an "official" MP3 Diags translation, please let me know first, in order to avoid several people doing the same work.

Note: the translation is meant for left-to-right languages. I didn't look into it, but imagine a lot of other changes would be needed for right-to-left languages.

Note for packagers: have a look at package/rpm/MP3Diags.spec or package/deb/debian.rules for what needs to be changed to support translations.

Wednesday, February 1, 2012

External tools, scripting and more

While there are still plenty of things that should be done, some long asked-for features, as well as some other changes, got implemented in MP3 Diags Unstable 1.1.12:

It is now possible to run external tools (like audio players, taggers or whatever you want) by right-clicking on a file name in the main window. See this link for the details (the UI will quite likely change in the future, as I don't like it, but should suffice for now). The same right-click can be used to open the folder containing a file in your default file explorer.

You can apply transformations from a script, without entering the GUI mode. More about this at the bottom of this page.

If you decide that you want to delete some MP3 files, you can do so by pressing DEL in the main window.

I fiddled some more with Gnome 3, with its issue that by default it doesn't show the close buttons that MP3 Diags expects. Here's the current status: I added custom close buttons to the windows that didn't have an "OK" or "Cancel" button, but, since I hate having 2 close buttons next to each other, the custom buttons are usually hidden, and get shown by default if Gnome 3 is detected. Since this detection is far from perfect and given that some distributions show by default window decorations that include a close button, it is possible for the user to hide or show these buttons. There's a checkbox for this in the "others" tab of the Configuration dialog, in the "Misc" section.

Two new transformations have been added: an "APE remover" and a "Non-audio remover". While they are both rather obvious, the latter is described in a little more detail here. Note that they are both hidden by default and to use them you need to make them visible in this window.

One last change is that the quality thresholds for the CLI analyzer are now taken from a session (the last open session if not specified otherwise), rather than using the program's defaults.

Tuesday, January 31, 2012

MP3 Diags on Tiny Core Linux

I just got a note from Michael BrĂ¼ning that MP3 Diags was built for Tiny Core Linux and it can be found in the "extension" repository.

Saturday, December 31, 2011

Backported Discogs changes in 1.0.10

According to this Discogs page, the API used for querying the site in MP3 Diags stable up to 1.0.9 and MP3 Diags Unstable up to 1.1.08 will be turned off on January 15th. So I changed the code to use the new API. The unstable branch got the change in 1.1.09. Since it worked OK for me and I didn't receive any complaints from anybody else, I assumed it was OK and I backported the change to the stable branch, in version 1.0.10.

So anybody who wants to use the Discogs integration after January 15th 2012 should have one of these versions (or something newer, as I release them): 1.1.09 unstable or 1.0.10.

Saturday, December 3, 2011

New Discogs API and various fixes in 1.1.09

The API that was used until now by MP3 Diags is supposed to be turned off, so I switched to the new one for the Unstable branch. This is just about how the program works internally; the user experience shouldn't change. Discogs queries for the Stable branch will probably stop working in the immediate future, at which point I'm going to backport the changes from the Unstable branch, if that seems to work fine. My tests went OK, but they weren't very comprehensive, so it would be a good idea for anyone who finds issues with querying Discogs in both branches to let me know about it.

Other changes:
  • Copying song info from ID3V1 to ID3V2 no longer assumes Latin-1, but allows the user to specify a codepage
  • I fixed a crash caused by ID3V2.4 tags with invalid flags
  • A few other minor fixes

Saturday, September 10, 2011

Stable branch backports

When I said that the 1.0, stable branch was going to get only crash fixes, it didn't occur to me that the program might stop working even if it didn't change. Well, along came Gnome 3.0 and a Discogs API change and now you can't easily close a window with the mouse and you no longer can query Discogs.

These issues got fixed in the unstable branch. (Well, I guess "fixed" is a strong word, as I still don't like how the program looks on Gnome 3, but at least I can use the mouse to navigate.) The fixes have been backported to 1.0.09, so with this change it is now possible again to query Discogs in the stable branch.