Archive for the ‘Music’ Category

In this installment, I will change the permissions on the raw firewire device so it can be read and written by my user account. I already created a group called “audio”, and I have added my account to the group.

There is a good description of how to set up the device permissions on the ffado web site. Currently, the raw firewire device is owned by root and the root group:

To change this, I will add a rule to udev to put it in the audio group. I will also set it to be readable and writable by its group. I am putting the following in the file /etc/udev/rules.d/50-raw1394.rules:

A number of steps are necessary (or recommended) to configure the system for use as a DAW. This is part one of probably quite a few parts where I will discuss what I do as I attempt to set this up.

The first thing I did was to configure rtirq to prioritize the firewire driver. By default, rtirq does not prioritize interrupts for firewire devices. Since I have a Presonus Firebox, I need to change this. This is quite simple to do. I opened the file /etc/sysconfig/rtirq and added ohci to the value of the variable RTIRQ_NAME_LIST, right after the real time clock. It now reads:

RTIRQ_NAME_LIST=”rtc ohci snd usb i8042″

After making this change, you just need to restart the service, and the interrupt threads will be re-prioritized as required.

The next change I made was to create a new group, called audio, and add my account to the group. Now I can configure permissions of the firewire device to be accessible by the audio group, and I will be able to use it. More on that in the next post.

Once you have installed the Planet CCRMA repository, you will want to install many of the packages from it. Fortunately, this is simplified by the existence of several meta packages that are included in the repo. These packages are planetccrma-core and planetccrma-apps. These packages don’t include any files, but rather require other packages, and are useful for pulling in bundles of other packages.

planetccrma-core includes the kernel with the real time patches applied to it, the rtirq script, and some alsa packages. The Planet CCRMA installation instructions recommends making a change in the yum configuration before installing this package. In the file /etc/yum.conf, they recommend setting installonly_limit to 0. This will make yum keep an unlimited number of kernels, instead of just the default of 2. I have done this, however, I now have 11 regular kernels installed, plus the rt one from CCRMA. A better choice might be something more like 4 or 5. Once this change is made, you can go ahead and use yum to install planetccrma-core.

planetccrma-apps is another meta package which requires every major audio creation application in CCRMA or the Fedora repo. When I first set up my computer, this package did not yet exist for Fedora 11 (there were a few packages that had not yet been built for Fedora 11 at the time) so I manually selected the packages that I wanted to install, including ardour, hydrogen, qjackctl, and all of the ladspa and lv2 plugin packages. I tried again on Friday, but now the problem is that one of the CCRMA packages (slime-sbcl) depends on a particular version of another package (sbcl), but that package has just been updated in Fedora’s repository, so the dependency cannot be met, and yum won’t install the meta package. This is expected to be fixed soon. But it is possible to install what you need manually, and, in fact, this may be better, since not everyone needs all of the packages that would be pulled in by installing the meta package, anyway.

In addition to the Fedora release and update repositories, I have added several other repositories, RPM Fusion, freshrpms.net, and, most importantly for these purposes, Planet CCRMA.

RPM Fusion is useful for providing libraries for playing different types of media files that are not supported by Fedora out of the box. For example, if you want to be able to play (or make) mp3s, you will want to use this repository. It also provides packages for some proprietary drivers, such as those provided by ATI and Nvidia for their graphics cards. These graphics drivers are not critical for doing audio work, and I have read that these drivers may actually be harmful to low latency audio. But if you are also interested in using Blender, or playing games, then you may want to use them anyway. Right now I am using the free drivers for my ATI Raseon HD 4350 based adapter, which does not do 3D acceleration yet, but this is evidently a work in progress now.

Freshrpms currently only has one package, libdvdcss, since it has mostly been merged into RPM Fusion. This library is used to play encrypted DVDs. This of course is also not necessary for audio work.

The third and most important repository is Planet CCRMA. This repository contains packages for kernels that have the real time patches applied, as well as many other audio related applications and libraries. If you want to do any sort of audio work on Fedora, you will definitely want to use this repository.

Adding these repositories is pretty simple. It is just a matter of installing an rpm for each repo. For RPM Fusion, you can go to the RPM Fusion configuration page and follow the directions. This repository actually has two separate repositories, free and non-free. If you only want free software, or if you only need the media format support but not the proprietary drivers, you can install just the free repo and ignore the non-free. If in doubt, look through what is in each repo, and decide what you need.

You can add the Freshrpms repository by installing the release rpm for that repository. Note that this will add the repo for Fedora 11, which is the version that I have installed on my computer. It appears that Freshrpms does not yet have a separate version for Fedora 12, so that most likely means that the Fedora 11 version still suffices for Fedora 12.

To add the Planet CCRMA repo, I installed the Planet CCRMA repo file for Fedora 11. Note that unlike the others, this file does not include the word “release” in it, instead the package is called planetccrma-repo. After adding this repo, you will want to install a number of packages from it. I will cover that in my next post.

As my computer has a 64 bit processor and 8 gigs of memory, I opted to install the x86_64 version of Fedora. Some will recommend the 32 bit version and the PAE kernel, but this is the choice I made.

The big decision that needs to be made during installation is how to set up the hard drives. As I mentioned in my last post, the computer has two 640 gig hard drives. With two hard drives, it is recommended to install the OS on one, and use the other for Ardour sessions and so on.

One thing that always bothers me about Fedora is the very rapid release cycle. Since they release every 6 months, and discontinue security update support a year and a month after a release, you are basically forced to upgrade very often. It may be possible to upgrade an installed system, but Fedora’s recommendation is to do a clean installation. But if anything goes wrong, you have a problem. Or if nothing else, you have no usable system while reconfiguring the new installation to your liking. So what I have decided to do is to to leave space unallocated on the OS drive, and when it is time to upgrade, do a new installation to a partition in that currently unallocated space. That way I will be able revert to my existing installation if I need to, and take time setting up the new installation. Once I have it as I want it, I can make the switch permanently. Obviously, I have not tried this plan yet, but I am hopeful it will work.

Here is how I created my partitions:

/dev/sda1 is 200MB and is an ext3 partition mounted on /boot
/dev/sda2 is 595.97GB (the rest of the available space) and is an LVM physical volume, which I have allocated as follows:

lv_home is 297.99GB and is an ext4 partition mounted on /home
lv_root is 30GB and is an ext4 partition mounted on /
lv_swap is 16 GB and is a swap partition
The rest of the space I left unallocated

/dev/sdb1 is an LVM physical volume which occupies all available space on the second hard drive, and is allocated as follows:

lv_data is 596.17GB (half of the total space) and is an ext4 partition mounted on /data
The rest of the space I left unallocated

I actually could have made the root partition even smaller. It only has about 7 or 8 GB on it after installation. I will be using /data to hold my Ardour sessions.

After laying out the partitions, I had to select what packages I to install. I didn’t make detailed notes of this, but if you leave anything out, you should be able to install it with yum later.

Up next, I will talk about adding repositories, especially Planet CCRMA.

I have built a new system that I intend to use to to make and record music. I will be using Linux, and various free software applications. I have a Presonus Firebox which I will be using as my audio interface. I have installed Fedora 11 on it, and intend to document here what I do to set it up and use it. I am assuming that you have done (or will do) some research on how to use Linux for audio work I previously, with some success, used the interface on my previous computer. It functioned, and I got audio in and out of it, but jack wasn’t entirely stable, and I got a lot of error messages in the system logs whenever I tried to use it. So I know it works, and can be used with Linux.

I am using Fedora, since it is the distribution I am most familiar with. When I first started using Linux in 1997, I started with Slackware. Soon after, in 1998, I switched to Red Hat Linux 5.1. I continued to use Red Hat until they discontinued it and created the Fedora Core distribution, which I then switched to using. I have used that on my main computers since then. I have also used CentOS, which of course is essentially identical to Red Hat Enterprise Linux.

My new system will feature an Intel Core 2 Quad processor with 8 GB of ram on a Gigabyte EP45T-UD3LR motherboard. In future posts I may come back and detail some of my experiences building the system. But one thing I will mention is that if you are using all 4 memory slots, you may need to run your memory at lower than stock speeds to eliminate errors. From what I have read, it may be possible to use the advertised speed by increasing the voltages to the memory controller hub (MCH), but I have not tried this yet.

I have two 640 GB SATA hard drives, and I will detail how I have set them up when I discuss the installation. The other important piece of hardware that I have is a SIIG firewire card. This card features the Texas Instruments chipset which is recommended by Presonus as the best one to use. In order to get the card to have its own IRQ, I had to install it in the upper PCI slot, not the lower one. The lower PCI slot shares its IRQ with a couple of other devices (I think it was a USB controller and a hard drive controller). Also, even though the BIOS allows you to specify what IRQ each of the PCI slots uses, this seting didn’t always work. I tried setting it to IRQ 12 (other things were assigned IRQs 9, 10, and 11), but it assigned it IRQ 5, which is much lower priority. When I set it to IRQ 14, however, the setting took effect.

In my next post, I will discuss my installation of Fedora, and some of the configuration things I have one so far.