Saturday, June 27, 2009

Making Music: what software?

When I was in my second year of university I bought a Tascam 424 MkII portastudio. Mark and I had recorded our two albums using his Fostex 4-track and I had long wanted to have a 4-track recorder of my own.

This turned out to be a very expensive mistake, as just after that computer-based digital recording was just starting to take off, making my new purchase pretty much redundant. From that point it functioned simply as a mixing desk, and I used it to mix the output from my computer, keyboards and mic and route them to the appropriate places (i.e. the computer line in or monitoring amp input).

Back then I was using software that I, erm, shouldn't have been using (a well-known commercial DAW package). However, this time I don't want to go that route and would rather stick with the open source world, where I can hopefully be sure of having access to everything I need without either paying out Big Cash on commercial software and/or obtaining it illegally.

So in looking around this subject, it seems to be considered wise to use a Linux distribution that is dedicated to media production. This is for a number of reasons, but from what I can tell the key ones are:

  1. Real-time kernel
  2. Low-latency sound pathways
  3. No bloat from unrelated software
I haven't really looked into why normal distributions can't use a real-time kernel, but I suppose there must be good reasons. It would be good if they could be worked out though at some point in the future.

The second reason appears to be related to the fact that most professional-grade software for Linux is written for the Jack sound server, rather than using ALSA or PulseAudio. Jack is a very clever system which acts like a patch bay for both audio and MIDI streams of data between software and hardware sources and destination. This sets up a very UNIX-like system of small components doing one job well rather than the windows-style approach of one monolothic application that does everything itself.

The obvious choice would be Ubuntu Studio, since I use Ubuntu on the desktop already. However, I have heard that they are having trouble, and have even considered shutting down the project completely. The distribution that I see recommended the most for audio recording is 64 Studio. So unless I get any other suggestions, I intend to use that.

So 64 Studio will go in its own partition, keeping my audio stuff separate from everything else. I'll not talk about hardware at this point because I think it warrants its own post (and this one is getting long enough as it is!)

So the next decision to make really is about the core recording software itself: what will actually record the audio and MIDI and allow me to sequence, edit and mix everything?

Well, there appear to be a number of choices on this front, but unfortunately none of them appear to be quite what I am really looking for... yet:
  1. Ardour. This appears to be the leading package when it comes to handling audio. However, the current stable version does not support MIDI at all, meaning that I would have to handle that in a separate application which I am not keen on doing at all. I want to be able to see all of my tracks in one place. Having said that though, the in-development Ardour 3.0 will apparently have MIDI functionality added. Hopefully it will be decent: it could make this the obvious choice.
  2. Rosegarden. This has excellent MIDI support (including a full score editor), and does also support audio tracks, but the audio features seem to be quite basic at the moment.
  3. QTractor. I just came across this today, and it looks very interesting. It is relatively young, but looks to be very clean and already very well featured (it supports both audio and MIDI tracks, for example).
  4. MusE. Does both audio and MIDI. I haven't read so much about this so I'll need to read into it a bit more and experiment.
At the end of the day, I'm going to need to spend some time with all of them experimenting with how they work and what they can do. One thing I can say though is that it is quite a delight to have such choice available to me: I'm certain that I will find something that will fit the bill.

Phew, that lot was just about the distro and DAW package, and there's plenty more software to talk about. That then will be for another post. :)

Saturday, June 20, 2009

Getting back into making music

I've been mulling over in my head for some time now the idea of getting back into making music.

For the few of you who read this blog and didn't know this already: I used to be very much into making music around my latter school and university years. I recorded a couple of albums with my good friend Mark in that time which I really enjoyed doing (and which we still reminisce about to this day). Mark and I generally shared all roles (guitar, keyboards, programming, producing, writing and arranging) other than singing (of which Mark did 99%).

It all pretty much stopped when I left university and got a job doing "real" work. Then I got married, started a family and moved to the US. Aside from the time aspect of all of these factors, the latter had a more practical impact in that it involved my selling a large chunk of my music-making equipment, which turns out to be pretty expensive to replace, especially since so much of it is required to do the things I want to be doing.

So it's going to take a while to get to the point where I can actually start recording again as I once knew it (sure, I could just sit down with a guitar and strum some chords into a mic and call it a day, but I've always been into far more elaborate stuff than that, and it has to be interesting to me if I'm going to stick with it). So in the meantime, I'm going to blog about it: both about the gear I'm going to need to collect, and the process of making music itself.

I'll be doing this both because it might actually be interesting to some people, but also as a sounding board so I can get some of my thoughts down in the hope that it helps me along the way.

Monday, June 08, 2009

It's "true" and "false", not "TRUE" and "FALSE"!!!

One thing that bugs me is seeing PHP code like this:

$somevar = FALSE;

or

if ($somevar == TRUE)

Why? Because in very common convention, UPPERCASE is reserved for constants. This follows on from the languages on which PHP is syntactically based, such as C and C++, and most code that I have seen (and written) continues this convention.

The thing is though, true and false are *not* constants: they are keywords.

As a different way of explaining that, consider how one would write the define statement for TRUE and FALSE, without being recursive. The best I can come up with is:

define('TRUE', (bool)1);

define('FALSE', (bool)0);

It's like saying that in order to be able to use 1 in your code you need a define like this:

define('1', 4-3);

Which is clearly insane.

Happily, we don't have to jump through such hoops to get at the boolean values, and it is not via some pre-defined constant; it is via the keywords "true" and "false", which given that they are keywords and not constants, should be written in lower case.

Or as a friend one put it "But... they're blue!" - Referring to the fact that his editor hilighted them as blue along with all other keywords.

Wednesday, March 25, 2009

Linux and suspend/hibernate

As is often the case, when you remove the layers of faux hatred and loathing from Linux Hater's most recent post, you find a great deal of truth.

He speaks of the goal of quickening boot times in Ubuntu 9.04. I can vouch that the boot time is indeed far quicker, but he argues that it's the wrong thing to be focusing on. What they should really be looking at is suspend and hibernate support: on all platforms. To a large extent I agree with this: I don't think you could ever say that a faster boot is a bad thing, but you could quite legitimately argue that suspend and hibernate are far more pressing issues.

I've heard plenty of talk about getting these working properly on laptops, but not on desktop machines. This needs to stop: this feature is important on all machines. I would love to be able to sleep my desktop machine overnight, but it currently doesn't work: I end up having to do a hard reset on it. Contrast that with my Vista dual boot which handles it just fine, and wakes up really quickly (albeit sometimes with the DHCP client down which I need to manually fix each time: so M$ can't get it completely right either).

That's what they really need to be concentrating on, and I really hope they do soon.

Monday, February 02, 2009

KDE 4.2 is much more like it

A while back I outlined why I wasn't able to use KDE yet, which at the time was at version 4.1. Since then, KDE 4.2 has been released and is being much touted as the first version in the 4.x series that is truly suitable for end users.

Well, the short story is that I'm extremely pleasantly surprised!

Here's the long story. Having just upgraded to 6GB of ram, I needed to upgrade to 64-bit in order to take advantage. With jaunty in alpha 3 and offering KDE 4.2, I decided to go ahead and install that, using ext4 too. This other stuff is for another post though: now I'll go through my previous complaints and see where we're at now...

  1. Taskbar entries are now movable: this is configurable in the widget's properties, which allows position to be set to 'manual'. Grouping is also in place and can also be set to manual.
  2. The taskbar height is now fully resizable, and works very well.
  3. There is still no applet for tomboy notes: I don't expect this to change any time soon, if ever.
  4. It looks like KDE's choice of desktop search service is one called strigi, which is itself a part of the larger nepomuk semantic desktop system. This all looks very interesting, but there appears to be some problems with strigi performance.
  5. I have no problems with picking up and dragging around windows now. In fact, this seems to be extremely smooth, and it is very noticeable that there is no tearing as things are being moved around.
  6. As with Tomboy, I don't see this happening any time soon, if ever.
  7. This has been fixed: the system tray now displays very nicely.
  8. I now have no problems assigning keys to switch desktops and move windows from one desktop to the other. In fact, this seems to have come on in leaps and bounds. I wanted to assign something the other day and there it was, exactly where I expected it.
  9. This one still persists, and is probably what bugs me the most. The problem affects the system tray and digital clock widgets, and is documented in this bug.
  10. I still get this, particularly in Thunderbird and Prism. I did find a nice theme for firefox which makes it fit right in with the default KDE theme, and that helped a great deal. Does need more work.
  11. This seems to have disappeared completely, which is obviously very welcome indeed. :)
  12. kopete still doesn't do IRC. However, I really do need to have a look at quassell, which has a very interesting client/server architecture which I think I will find extremely useful.
So from that list we see a considerable improvement over KDE 4.1, enough that I'm going to be sticking with it for the time being.

The main problem for me is the way in which the clock and system tray widgets want to soak up all usable space on the panel, which is horribly messy.

Still, heck of a job. I'm going to be very interested when 4.3 comes along to see what else they've done...

Saturday, November 22, 2008

New Rule for registration processes

I just signed up for a site that asked for a password. Like most people, I don't create a different password for every site I visit I'd never be able to remember them.

Instead, I have a set of them, for differing levels of importance or required security. It works well, and so far I don't think I've ever had any security breaches.

The problem though is knowing which password you should use beforehand. This is a problem because some sites will email include your password in plain text in the welcome email after registration.

We all know that as soon as a password is emailed in plain text is can no longer be considered secure. These sites will no doubt also email it in plain text if you use the "Forgot Password" link too, which of course makes it worse.

I'm actually ok with this: some sites simply aren't that important and if you account gets hacked then meh. But I would like to know beforehand that they are going to be treating my password in this way before I decide which password I'm going to use.

So, New Rule: registrations should disclose if they are going to be sending the password via email in plain text prominently on the registration form itself.

Tuesday, November 11, 2008

Why I can't use KDE 4 (yet)

I've always been a flip-flopper when it comes to desktop environments. When I first started with Linux I think I was using KDE. Spent a bit of time playing with things like Enlightenment and black blox before settling for quite a while on XFCE4.

After a while I got itchy feet and tried gnome again, and I've been a gnome user ever since.

KDE3 just didn't do it for me, for many reasons that I mostly can't remember now. I do remember that its default themes were as ugly as hell, and I could never for the life of me get other themes to work well at all. They required weird contortions like compiling (for a theme?!?!), and never looked as good as the screenshots would have you believe.

So I stuck with gnome. Simple, clear and crisp. Compiz has given it a really nice boost, and I think the combination works really well.

But, I'm still a flip flopper, so I'm always on the lookout for something new. Unfortunately, E17 appears to have become to Duke Nukem Forever of desktop environments, so it was in the end KDE4 that got my interest.

I tried KDE 4.0 shortly after it first came out, and quickly switched back. It was unstable, and didn't have everything in place. I figured I'd try again with 4.1.

That I did, and this time it fared better. I decided to give it a week and make notes on what bugged me about it so I wouldn't forget. This way, when 4.2 comes out I'll be able to see if they've sorted any of the issues that bug me...

My work environment involves a desktop machine and a laptop, both of which are running (k)ubuntu Intrepid Ibex. I use the keyboard and mouse of the desktop machine and control the laptop via synergy. My KDE4 experiment has been run on the desktop machine (with the laptop continuing to run gnome).

So, without further ado, here is my list:

  1. Taskbar entries don't appear to be movable. That is, I can't change their order. This bugs the hell out of me: I like to have specific things on the far left, and if they aren't there I get lost.
  2. The taskbar is too chunky. Having just one at the bottom is nothing like enough space, so I opt to have one above and below in the gnome style, but the size of the taskbar means that quite a significant amount of vertical screen space disappears.
  3. No applet for Tomboy Notes. Yes, I know that KDE has its own note-taking application, but it's not as good, and I'd rather be able to use the same notes whichever desktop environment I'm using. It doesn't even have to use the same backend: just standardise on the file formats and that should do the trick.
  4. Is there any decent integration with MetaTracker? If there is I can't find it mentioned anywhere...
  5. Grabbing windows seems to be a bit sluggish. I'll point click and drag, and find that the window was never grabbed. So I'll have to go back and do it more slowly.
  6. There is no applet for the Revelation password manager
  7. Many applications appearing the notification area have a horrible white box around them. Something nasty going on with transparency I'd imagine. It only seems to affect non-KDE native icons too...
  8. Trying to assign CTRL+ALT+Left/Right to allow me to cycle through desktops doesn't work. They keys assign, but they don't actually do anything when pressed.
  9. Created a new panel, added a clock and System Tray to it. I can't get them to align to the right. The clock insists on taking up about a quarter of the panel's horizontal space, while the System Tray does even worse. Can't see any way to force them to behave.
  10. It is worth pointing out that gnome hosts KDE apps far better than KDE hosts Gnome apps. Not in terms of look and feel integration, but in terms of things actually working properly. Gnome apps in KDE seem to have weird quirks such as scroll bars disappearing.
  11. It makes really horrible things happen with the clipboard on the Gnome machine that this KDE machine is controlling (via synergy). I simply cannot paste sometimes: it just keeps pasting things I copied previously (and yes, I am trying both methods of pasting). Clearing Klipper seems to work around the problem, and it seems that this happens when Klipper's list gets full, which is rather annoying...
  12. Kopete doesn't do IRC.
There were other minor things too that I just forgot to write down.

And it is interesting to find that a number of the complaints above (such as the window grabbing issue) transferred to the laptop machine too. I wonder if this is indicative of it being a simple configuration issue?

Anyway, KDE 4.2 is now in beta, so it won't be much longer before I'll be able to give it another go...