Like a lot of people in IT, I'm a bit of a frustrated musician. At various times, I get the itch to write some music. I studied music at high school, including a bit of musical composition, so I read music, and I like to write music the same way, with a staff and bars of minims/crotchets/quavers/etc. My frustration with a lot of earlier music software was that it didn't allow you to use normal musical notation when composing.
So, I was very happy to find that SUSE 9.3 Pro shipped with a copy of Rosegarden, an open-source software application for composing music which allows you to create and edit your music using proper musical notation. It's good too, very slick, better than some Windows music applications that I've used, for example. I definitely don't feel like I'm using something inferior just because I'm using Linux (although I don't claim to be an expert on music composition software, what's available and how easy to use or functional it is).
Mind you, Linux being Linux, there were a few technical hurdles. Rosegarden saves music by default in its own '.rg' format, but that doesn't help me if I want to distribute it for other people to listen to. Rosegarden exports MIDI files, which is a good start, but MIDI relies on each machine being able to play back all of the instruments in a piece of music, in more or less the same way that the composer's machine did. This is a bit of a weak link, and it took me to while to configure the timidity MIDI player so that it played back my tune that same way Rosegarden does. Linux music software often uses soundfonts; I'm currently using the popular Fluid R3 soundfont, so I had to set timidity up to use it. It still wasn't quite right, until I realised that timidity was assuming that MIDI tracks 10-16 were percussion tracks (where each different note pitch is used to select a different percussion instrument). Once I overrode the default setting, it was fine, it played back just as I wanted.
With timidity, I was also able to generate a raw (uncompressed) '.wav' file. I started with a 6K '.rg' file, from which Rosegarden produced a 33K MIDI file. Now I had a 38M '.wav' file (that's right, 38 megabytes, not a typo). Clearly I needed some compression, and MPEG layer 3 seemed the right choice. The application I used for this is notlame (the name is due to an earlier MPEG layer 3 encoder called 'lame'). With 'notlame', the default settings gave me a 3.4M '.mp3' file that sounds pretty good. However, I thought it might be a bit large for some folks; I wanted a version that was no more than 1M. Normally MPEG layer 3 encoders ask you to select the bitrate (e.g. 96K, 128K, 192K) to control the quality/size trade-off. notlame has a neat feature where you tell it how much compression you need, and it selects the necessary bitrate. That means less trial-and-error. I selected a compression of 40 to get my 38M '.wav' file down under the 1M barrier.
With that much compression, there were too many obvious encoding artifacts; you may or may not know that MPEG layer 3 compression is psycho-acoustic compression, meaning that it removes details that you are less likely to actually hear (because you will probably be concentrating on other details). However, the more aggressive the compression, the more that loss of detail turns into something that you do, in fact, hear in the music. So to get suitable quality under 1M, I had to encode as mono rather than stereo, which did the trick.
OK, so here is the result. I'm not a professional musician, you have been warned. I started writing it yesterday evening, and finished it this evening; I probably spent about 6 hours on it in total, including finding the Linux applications I needed and learning how to configure them. I don't think that's too bad a result (but you can make up your own mind). The song is called "Black Panther", by the way: