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.

Submit tags from Quod Libet to MusicBrainz

I wanted to write something like this for a long time, but for some reason never did it. MusicBrainz has support for folksonomy tagging since 2007, but the coverage of track tags is still not very good. I try to keep some tags in the “genre” tag in audio files, but even with one-time import tool, I’m sure I’d not remember to run this on new files. So the idea here is to submit these tags to MusicBrainz as I listen to the files in my music player (Quod Libet). It’s inspired by a Quod Libet plugin called LastFMTagger, which does something similar, but for Last.fm. I had some free time today, so I wrote a plugin that does one-way synchronization of tags from Quod Libet to MusicBrainz. You can install the plugin using the following commands:

Oracle…

Working with Oracle is always an adventure. The error messages are usually not very helpful, so you have to guess a lot. What I’ve seen today is an extreme though. Oracle allows you to create a table with a column named “TIMESTAMP” if you quote it: