MusicBrainz database replication

I wanted to work on the Acoustid lookup web service and for this I needed to setup a MusicBrainz replicated database slave. Normally I’d use the Perl code from mb_server, but I didn’t want to mess up the setup I have on the machine hosting acoustid.org with CPAN packages. I had a plan to write a non-Perl version of the replicated code earlier, but only yesterday I really needed it. It turned out to be easier than I expected, so I already have a working version that I use to update my local MB database. Get it from GitHub, if you would like to give it a try.

Playing with IRCCloud…

Yesterday I got my invite to IRCCloud, which is a web-based IRC client, but unlike other similar clients, the IRC connection is on the server, so I stay connected even when I close my browser. The first thing I had trouble with, after switching from a customized IRSSI, was that all nicknames had the same color. I never realized how much I rely on nickname colors, but it seems that I’m too lazy to read the nicknames. I wanted to try writing some user scripts for Chrome and this seemed like a nice opportunity. I stole the coloring algorithm from MusicBrainz’ chat logs and wrote this little script, which automatically sets a different color for nicknames in IRCCloud:

Minimal Qt/CMake template

I’m starting working on the GUI submission tool for Acoustid and I wanted to use CMake instead of qmake for building the application. I couldn’t find anywhere a simple example of what do I have to put into my CMakeLists.txt in order to build a Qt application while correctly handling all moc files, ui files and resources.

Custom file associations on GNOME

It seems that there is no GUI method settings associations for custom files in GNOME. I’ve had this problem before with dbmodel before. It writes save its data in XML files that end with the extension “.dmf”. The problem is that GNOME’s file associations work with MIME types and by default GNOME doesn’t know anything about these silly .dmf files, it only sees XML files, so if I want to automatically open .dmf files with dbmodel, I can either set it for all XML files or for nothing. I eventually gave up on trying to do this, but since I started to use eMusic and switched to Chrome, it become much more annoying.

Cross-compiling with CMake and Autotools

[The last time]/2010/07/introducing-chromaprint/) I needed to build a Windows binary, I found it easier to cross-compile it from Linux than to setup a development environment on a freshly installed Windows machine. The problem is that even though it’s not hard, you need to remember some obscure options. Today I needed to build a new version of ISRCsubmit and I had to search for the recipe again. So, let’s document it somewhere I can find it in the future…

Acoustid

After asking for fingerprint test data in my last post about Chromaprint I received about 270k fingerprints from. This helped me to perform some larger tests on the proof-of-concept lookup server I had implemented using Java and PostgreSQL. I had to do some technical changes, but the main idea seemed to work pretty well. I wasn’t sure about this when I was working on Chromaprint, but now I believe that I can realistically run an audio recognition service.

Introducing Chromaprint

After several months of reading research papers, learning and weekend coding, I’m very happy to make the half-finished code of my audio fingerprinting library public. :) I’m doing this mostly for selfish reasons, because it will force me to stop thinking in “hacker mode” and hopefully properly finish it, and I also hope to get some help and feedback from other people. There is nothing for regular users yet though, just for developers or people not afraid of the command line.