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.