Archive for March, 2007

Linux Audio Conference 2007

March 30th, 2007

I haven’t posted for a while, so I’m going to cheat and backdate this one. The reason was LAC 2007. I’ve been saying apologetically for a couple of years now that multimedia in Linux is about 18 months behind other OSs in having something that is really useable on the desktop. After LAC 2007, I realised that I had to stop saying this, because multimedia in Linux is available here and now, and offers the same freedom, openness and low cost that we are already familiar with in Linux.

So the posting shortage has been due to my exploration of just a few of the amazing tools now available in Linux for composing music (and also video). LAC 2007 was a real eye-opener, and I personally am very grateful to the organisers and presenters for the wealth of information they presented. One of the most attractive aspects was the time set aside for hands-on tutorials and workshops – there’s nothing like actually using an app to get a feel for it.

I also need to say a special thanks to Stefan Kersten for helping me get SuperCollider running on my laptop. I had tried in vain several times after seeing Simon Blackmore demoing it at a Bloc seminar, but Stefan sorted it out in a couple of minutes!

It was the first time I had been to Berlin, and it was wonderful to wander around the city, now being substantially reshaped and rebuilt after German reunification. It was strange to consider that as little as 20 years ago I might have been arrested as a spy for walking down some of the streets I visited. The Technische Universitaet was a wonderful setting for the event, and the Lichthof in particular, a sort of atrium around which the various activities were clustered, has to be seen to be fully appreciated. There were also a number of concerts and sound installations to enjoy. The published proceedings of the conference (a snip at 8€) give a great overview of all the stuff that is going on behind the scenes on Linux audio – worth reading.

Highlights of the conference for me were:

  1. Hartmut Noack on his Linux Audio Workstation, one of which I am using to type this, with some very pleasant ambient music running in the background (I have to say it is “very pleasant”, because it is self-composed!)
  2. Rui Nuno Capela on his lightweight Qtractor sequencer.
  3. Michael Bohle and friends on JAD (Jacklab Audio Distribution), their audio version of openSUSE, adding another dimension to the best Linux distro out there.
  4. Steven Yi on blue, his attractive frontend for CSound. Steven’s homepage contains some delightful examples of compositions using blue/CSound.
  5. The Recursive Dog crew for their hands-on demo of the Arduino board, and the musical instruments they have built.
  6. Sergio Luque for his walkthrough of the composition process with SuperCollider, explaining how one of his own works was put together.
  7. The Canorus team demoing their music score editor – some great ideas, although unfortunately the software itself isn’t really useable yet.
  8. Richard Spindler on his Open Movie Editor, which appears to be a great leap forward for the average desktop user.

Perhaps the most important aspect of Linux audio is the fact that at a stroke it lowers the threshold for participation in creative audio work. Open any magazine like Sound on Sound or Computer Music and you’ll see lots of reviews of various pieces of software which are marketed as giving you the edge in audio production. Some of them certainly look very striking, with non-standard GUIs the order of the day. The prices may not be all that bad either, until you start thinking about needing to use two or five or eight of these apps. Then the cost starts to mount. Plus, of course, you are dependent on the whim and fortunes of individual companies, both for your OS and for your apps.

For many of the young people who want to get involved in music-making, of whatever type, this sort of expenditure is a gamble. Do you buy something cheap, and find you’ve wasted your £40 because it is very limited in what you can do with it, or do you pay a lot more and find you can’t use it properly? There’s little you can do about hardware costs (although the relative cost of keyboards, mics and guitars is now pretty low, and secondhand prices are even better), but software costs can certainly be slashed if you use Linux. Even if you buy a supported audio distro like Studio To Go or 64 Studio, the range of software you get still makes this a bargain compared to the proprietary solutions being offered.

So Linux is a tremendous opportunity for young people who don’t have much spare cash, and don’t mind experimenting with the sort of stuff which you won’t see covered in the newsstand mags, but which now gives shrinkwrap software a good run for its money.

I’ll be returning to this in future posts ….

Qt Linguist – nul points!

March 16th, 2007

I’ve just finished a translation of QCad, the 2D CAD program (see this page for a couple of screenshots). It’s a Qt program, so it uses ts-files instead of the gettext po-files. Qt supplies their own app (Qt Linguist) to deal with these.

The main “benefits” of ts-files are that they group messages into sections, which is supposed to make it easier to track down where your message should be showing up, and they use XML. But in my view, they are the most abominable things ever to be let loose on localisation.

Because the messages are split into sections, this means that if you use the same message in multiple areas of your app, you will get it appearing in multiple sections of the ts-file, and … yes, that’s right … it has to be translated multiple times. Qt Linguist has a section where previous translations (in that file!) have occurred, and you can press Ctrl + a number to copy them into the message, and then Ctrl + Enter to mark the message as “complete”. So for each repeated message you need two extra keystrokes before you can move on to the next using Ctrl + Shift + L. On a shortish file, this doesn’t matter, but when you have one that is longer than about 800 messages, it starts to grate. Oh, and you’ve just discovered you misspelt a word in one of the messages you were happily copying in to these duplicate messages … Now you have to find each one separately using Ctrl + F, and correct them. (I know you could do it via some sort of grep, if you are handy with grepping, but I wouldn’t trust it not to make changes where it shouldn’t, leading to even more edits.)

And XML … Well, once you get over about 1,000 items (and apps like Scribus have considerably more than that), you can just feel Linguist chomping it’s way through all that excess text – it can take 2-3 seconds just to go to the next item in a Find list. My biggest gripe about XML (apart from the one about not using it to hold data when there are far more efficient apps to do that – they’re called relational databases) is that it’s so wordy. For configuration files, and portable formats, it can be OK, but there are some types of data where the XML tags end up being probably 70% of the filesize (the tei-files for dictd – see this page) are an example.

So this is another case where the free software architects got it right with gettext – old-fashioned maybe (no XML), but very practical.


March 15th, 2007

When I put up the first version of Eurfa, I had the idea of doing a directory of programs and apps that were available in Welsh. I’ve now published the initial version of Meddaliadur, which is a start on this task. It lists a handful of programs, with a short description, a link to the website, license and cost details, information about who did the translation and where it can be got, and (last but not least) a few screenshots.

The idea is to show that there are quite a few pieces of software in Welsh, and the number is growing. This may attract some people to the apps themselves, and it might encourage others to think about making their apps available in Welsh too.

What I’ll be doing is splitting out the various programs that form part of the KDE and GNOME desktops, and then adding any other programs that I know have been translated. So that means, for instance, that there will be a Games section, with separate pages for KSokoban, Kolf, and so on. This will give a much better idea of the range of software (especially free software) already in Welsh.

Software in Welsh on other platforms (eg Microsoft Windows, Apple Mac OSX, Solaris, etc) will also be included, since the aim is to give a reasonable overview of all that is available.

The pages at present are simple HTML, but that would become unmanageable as the number of programs grows, so I need to move it to a database-backed system. I’ll take that opportunity to add things like the ability to leave comments about particular programs, and perhaps a space for beginner’s tutorials or howtos on the programs.

The old "turn it on" trick …

March 9th, 2007

I was installing various pieces of music software on my laptop last night – things like Pure Data, Csound, Supercollider – in preparation for the Linux Audio Conference at the end of this month (at least I would know something about what people will be speaking about!). I went to play an mp3 file of the output from a pd patch, and Amarok complains that it can’t play it.

Ah, I haven’t set the soundcard up on this new install of openSUSE 10.2. OK, I do that, but Amarok says it still can’t play the mp3 file.

Of course, this is crappy proprietary mp3, so I need to uninstall the default xinelib and install libxine. OK, Amarok now plays the thing – I can see the visualiser moving – but no sound.

Hmm. Queue an hour or two of trying different drivers for the soundcard, googling, fiddling about with alsamixer, etc. Still no luck.

This morning, I turned on the laptop and tried again. No sound. All the software seems to be working … surely … it couldn’t be … no … what about pressing the volume up button on the keyboard? Aargh! Sound! Who muted the damned thing??!!

Moral – never understimate your own stupidity!

Don’t forget your READMEs!

March 7th, 2007

Klebran is now listed on the site as one of the free grammar checkers. This thread on the relevant discussion list was quite interesting, because it shows that you need to check your README files every so often, and update them in line with the way the project develops. In this case, my failure to update the README led Dewi to an incorrect conclusion. I checked back over my email archive (going back to 2003) to see what actually happened.

A tagged wordlist is a prerequisite for any grammar-checker, and when I began considering a GPL Welsh one in early 2004, I decided to add meanings as well, since there was then no GPL dictionary available for Welsh. A number of lists – Jim Killock’s 2003 aspell list, the Crubadán web-crawler Welsh corpus, the UWB Cronfa Electroneg (which has fallen off the web, but is still available here, although the downloads don’t seem to work), and the UWB myspell list – fed into this dictionary project, in the sense that they provided “control” lists of frequently occurring words. I had to make a start somewhere, so in the event I took a list of the 5,000 most common words in Crubadán that also occurred in the myspell list, and began checking these and adding tags and meanings.

The 1.2 revision of the README that Dewi referred to dates from that point (March 2005). However, almost immediately (April 2005, according to my emails), I decided not to pursue this approach. Instead, once the “5,000 most common words” were done, I started inputting words from multiple everyday sources (books, magazines, already-completed translations) as I met them.

Why did I do this? Reading the emails, one reason for the change of plan seems to have been uncertainty about the myspell license – in the UWB README, the license is specified as GPL, but condition 3 appeared to me to be incompatible with that (I’m not from the FSF, so I can’t be sure, but it does look odd). But another reason was dissatisfaction with the verb-expansion rules giving inflected forms (I won’t go into details here, but I can give chapter and verse if anyone is that interested). I therefore decided to ignore the myspell-generated verb forms, and began a “clean-room” implementation of my own, where the abstraction rules behind the generated forms would be open to scrutiny. That led to Konjugator in July 2005, which was a necessary detour, and by the beginning of 2006, as Kevin Scannell said in his response to Dewi’s post, work on the dictionary was progressing well – the first version of Eurfa was released in April 2006. The dictionary in turn, as he said, is now the basis for Klebran, giving a nice example of how tools like this can build on each other!

It is therefore wholly untrue to say that my dictionary “incorporated” the myspell list, and the README should really have been updated in April or May 2005 to reflect that (revision 1.2 was left untouched for more than 23 months, in contrast to other parts of the repository!). It’s trivial to show this – download lexicon-cy.txt, and try to find a couple of less common non-mutated, non-inflected words that are in the myspell list – you will likely get no hit (I have just done this, for instance, with “perffeithiadwy” and “syndrom”, to take two at random). This is because the myspell list contains far more items than the 13,000 citation forms I have in my dictionary so far.

An additional point, of course, is that the myspell list cannot provide the meanings and POS information in the dictionary, since it does not include them in the first place. So what Kevin Scannell said originally in his first post was perfectly accurate – this work was indeed done “from scratch”, because (sadly) no such material is available in Welsh under a free license, even though it would be a tremendous help to the Welsh language to have it so.

The entries in my dictionary are each tagged, because it’s useful to be able to give some indication of their provenance. The “5,000 most common words” work (tagged as wl1 – working list 1 – in the dictionary) equates to 3,852 entries (the reduction is due to data cleaning), which is a mere 31% of the total citation forms in the current version of Eurfa.

So the moral of the story is: don’t forget your READMEs! If they are intended to give an overview of the project, keep them up-to-date, and commit revisions as you go. I’ve now revised the one for Gramadóir-cy, to ensure there is no future misunderstanding.