Tuesday, January 9, 2024

Version 1.5.03 available

Version 1.5.03 is out, and here are the main improvements over its predecessor:

  • A long-standing bug causing crashes with network and USB drives has finally been fixed. (Hopefully it's the only bug leading to this crash, and this problem finally goes away.)
  • After a complete rewrite of the code that talks to MusicBrainz, querying it works again.
  • A number of UI glitches have been fixed.
  • Handling of files with long names has been improved, so now you get an explanation.
  • For those building the program themselves, the build system was switched to CMake and the build instructions updated.

Monday, November 27, 2023

New stable version - 1.4.01 and CMake for unstable

I finally found a little time to fix some things for MP3 Diags, so I'll be using the Unstable branch for this, meaning that I had to port most changes from the past years to the Stable branch.

There isn't much that changed (a new transformation and some bug fixes, here's the change log), but the size of the packaged program increased significantly due to a switch to a newer library - Qt 5. This is also pretty old, but it is what is currently used in Unstable and there is no urgency to update it.

There are no Linux binaries for this version, as nobody seemed to want them.

Regarding the Unstable branch, it now has experimental support for CMake, which will probably become the only means of building the project. This isn't in any release yet, but it is available in the source code at GitHub or SourceForge.

Sunday, April 7, 2019

Version 1.5.01 - port to Qt 5 and switch to git

I've been working on this for a while, but with long interruptions so it felt like it took forever. Well, the port to Qt5 is finally here.

For the program itself, there's nothing worth mentioning: just a detector of progressive JPEGs. Also, a bit of a downgrade: Now integration with both MusicBrainz and Discogs is disabled. It looks like this part needs a complete rewrite. Anyway, it's been a while since I saw either of them working, so disabling them seems better..

Things should be more interesting for developers and packagers (if any are still left):
  • I finally ported the code to Qt 5, so now it compiles on modern systems. Hopefully I fixed all the issues, but chances are some remain.
  • I switched to git, and now I publish the sources to both SourceForge and GitHub. It should be easier for others to make contributions
The build instructions are mostly the old ones, therefore incorrect. How fast I update them depends on how much interest there is for this to happen.

Also, right now there are no Linux binaries available from me for 1.5.01. I intend to look into providing them, but, again, it depends on interest.

So for now there are just the sources, except for Windows, which has binaries. The main reason to use the new binaries is if the current version has random bugs. The new one is built with many things that are different, and the code is now compiled with Visual Studio rather than MinGW, so switching to something else might make a difference. (Not necessarily the one you hoped for, though.)

Bugs are to be expected, as there have been significant changes to get Qt5 to compile, but hopefully nothing huge, and I'll try to address them.

Saturday, July 30, 2016

New versions - 1.2.03 and 1.3.04

There are new releases available, but not a whole lot has happened, at least in the unstable branch.

The arguably most important thing is that the code compiles now with GCC 6.

Then, as usual, the stable branch gets whatever was new in the previous unstable one while the unstable one gets a few small features and bug fixes, including:
  • There are now retries when a file read fails, which is supposed to help with crashes that happened to some users when using external (USB, network, ...) drives. Since I was never able to reproduce this, I'm not too confident that it will actually help
  • The non-ASCII file names when running mp3gain should show correctly on Linux systems
  • There's a new transformation: "Remove Xing or LAME streams from CBR files"
  • The "Sessions" button is always shown if there are more than 1 sessions

Sunday, March 8, 2015

Versions 1.2.02 and 1.3.03 released

New stable and unstable builds are available, but there isn't that much to say about them, especially about the stable one, 1.2.02.

1.2.02 simply got into the stable branch all the changes from 1.3.01, which are a few bug fixes that didn't affect most users, plus the acknowledgment that Discogs integration no longer works, so it got disabled.

Unstable version 1.3.03 has a few changes that may be more important:
  • Some error messages during / after crashes should make more sense
  • An additional cache is included in the hope of helping with speed (and maybe errors) when scanning external drives. As I don't have hardware that exhibits this issue, I don't know if it actually does any good. Perhaps reports from users will clear this up.
  • VBR files whose Xing/LAME headers incorrectly include themselves in the frame count are now treated differently, and they don't get deleted by "Repair VBR data". The reason is that such headers don't usually cause problems, even if they are wrong, and may contain useful information (like gapless play details) which until now got discarded by "Repair VBR data".

Thursday, July 17, 2014

Crash fix and Discogs integration disabled in 1.3.01

Due to Discogs API removing its XML interface and switching to a JSON-only format, MP3 Diags can no longer access Discogs. This integration will have to be rewritten. Until then, the button that was supposed to call Discogs is disabled, so users no longer try to access it only to see it fail.

There is also a fix for crash that occurred when trying to save very small images (containing just several pixels) in the tag editor.

Saturday, January 18, 2014

Note to packagers about translations

One thing I didn't mention in my previous post was that translations are available in the binaries that I provide but some changes may be needed when building binaries without using Install.sh or BuildBz2.sh. You should call MakeTranslations.sh to create some .qm files, then copy them somewhere the program can find, probably /usr/share/mp3diags/translations.

If the binary is in a folder <bin_folder>, the programs looks for translations in <bin_folder> and in <bin_folder>/../share/mp3diags/translations

Friday, January 17, 2014

Release candidate promoted to Stable

Finally got around to make 1.2.x the "stable" release, with 1.2.01 being the first version in this series.

For those using the "unstable" branch, this means nothing, but for the rest this replaces what was in 1.0.x.

Among the changes from 1.0:
  • there are translations in Czech, French, and German
  • "shell integration" allows right-clicking on a folder in a file explorer and have that folder open in MP3 Diags
  • you can use "external tools" to open a file or more with some external program from within MP3 Diags
  • a CLI mode is now available, where you can see notes and apply transformations to arbitrary groups of files and folders
  • some bug fixes
While 1.2.01 was supposed to be a direct copy of 1.2.00, I had to get rid of "unstable" in naming, and hopefully that didn't mess up anything. I also included the latest changes to the documentation (see here) and a few changes to make the program compilable with clang.

Thursday, January 16, 2014

Some minor fixes in 1.3.00 (unstable)

I couldn't yet find the time to move the 1.2.00 release candidate to the stable branch, but it should happen shortly. Until then, there's a new 1.3.00 unstable which includes a few minor fixes, most notably the project can now be built unchanged with clang(at least on openSUSE 13.1)

Then there is more logging and retrying to help deal with an old and mysterious error that manifests in a random inability to write to files, although there is space on the disk and the user has permissions to write.

Also, I changed a bit the output when using the CLI: now the offset of notes is listed, and the notes are sorted by the offset.

Sunday, March 31, 2013

Release Candidate

Since there weren't many complaints lately, I'm going to assume that the current unstable branch is actually quite stable, so I bumped the version number to 1.2.00, while only doing a small internal change.

It should be considered as a release candidate for the stable branch. If no new bugs get reported, this will probably become version 1.2.00.a (I'll go over the new idea for version numbers in a future post.)

So if you're currently using MP3 Diags, now it might be a good idea to try out version 1.2.00 to see if it works for you.

Saturday, December 1, 2012

Fix for %s shown instead of a file list

It seems that not everything went OK about 9 months ago while preparing the program for translation. When applying transformations on a subset of the visible files the confirmation asked about a "%s" instead of showing details about the file list. Well, now it's fixed and it looks like it's the only error of this kind. If you work with subsets of files, you can download the latest version (1.1.21) to take care of this.

Saturday, October 20, 2012

DIscogs fixes

A recent change in the results returned by Discogs caused MP3 Diags to crash. This has been fixed in both branches (unstable and stable), so if you use the Discogs integration you should upgrade. The new versions are 1.1.20 (unstable) and 1.0.12 (stable.)

Friday, May 11, 2012

MP3 Diags 1.0.11 compilable with GCC 4.7

The title says it all. Although the 1.1 branch has many new features and is compilable with GCC 4.7, if you want to compile the 1.0 branch, you can now do so with GCC 4.7.

Sunday, April 29, 2012

French translation

There is now a French translation, by Gwilherm Baudicby. It is available in version 1.1.19. There are no other changes in this release.

I'd like to remember packagers that a few changes are needed to build the translations and then to install them. Those changes consist in calling lrelease and copying some .qm files, and can be seen in one of these files: Install.sh, BuildBz2.sh, package/rpm/MP3Diags.spec or package/deb/debian.rules.

Saturday, April 7, 2012

German translation

Marco Krause provided a German translation which is the main reason to download version 1.1.18. There are also a few translation fixes, and the program should now compile on GCC 4.7

Sunday, March 18, 2012

Czech translation

Pavel Fric, the Czech translator, published his own review of MP3 Diags, with plenty of screenshots on his blog. You may want to take a look if you're not a native English speaker to get an idea of how the translated program might look like in your language. And well, if your Czech is better than your English and you don't know much about MP3 Diags, it is probably a good idea to check it out.

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.