I’m far from being a guru when it comes to producing music on a computer. Neither am I a guru in Linux though I know quite a few things now.
I’ve been using Linux for 6 years now and I must say that, for a long time, my biggest regrets was the absence of replacement for garage band. I’ve always love to play music. During my high school years I’ve been party of a metal band (5,5 rocks !) and so I mostly played live while the few recordings we’ve made were handled by other people. However, about 9 months ago I decided it was time for me to really search on how to use my Linux computer to make music. The reason behind that was that I didn’t want to stop playing music but all the recent change of living place I was going through made it impossible for me to take my instruments with me. So I wanted to be able to :
- record live instrument
- create electronic music
Yes, just that !
I’ll separate this post in multiple parts as it is going to be quite long I think.
So let’s go on with the setup :D.
Necessary stuff to glue it all
First of all, a must is the use jack. Jack is basically a virtual way to emulate… Jack connections. How surprising ! If you are familiar with jacks, rack and other pedal effect you’ll have no problem understanding jack, although it can be quite overwhelming at first.
On fedora it’s :
# yum install jack-audio-connection-kit
With Jack, you should install Qjack.
# yum install qjackctl
Basically, you are using Qjack to graphically control the Jack system. On the latest Fedora (21 at the moment), I didn’t had to configure anything, jack worked out of the box with everything else.
Here you can see Qjack interface :
In figure 1, you can see the window that open when you click on the connect button. This interface lets you connect two virtual components together. Here you can see Renoise (I’ll talk about it later) connected to the speakers of the system.
So this is the basic ! This is what is going to glue everything else together. You’ll come to Qjack only to wire things up and you don’t have to care about it rest of the time. Exactly like real life jacks ;).
Software – Ardour
So I went for the incredible software that is Ardour as a way to record live. You can choose different way to download this software. You can either pay for the build exec or use the source code. I decided to go for the source code because they are free and include everything.
I don’t feel the need to explain how to install it since their is an awesome tutorial on Ardour’s website. Don’t forget that they need support ! I think especially if you’re a professional, you should understand tat other people worked to give you this tool and if it helps you make money, you should pay for it. Only my 2cts ;).
About Real Time
Somewhere on the internet, it is said that you need a Real Time Kernel for recording. It’s not a necessity and it works fine without ! You need Real Time Scheduling (RTS) but it can work on a stock kernel without the need for a Real Time Kernel.
However you may need to do a little work to get it working with RTS. Under Fedora, when launching Ardour, I hit an error like :
cannot use real-time scheduling (FIFO at priority 10) ... (1: Operation not permitted)
Which basically means that the system isn’t correctly setup. Here is the Jack FAQ that solve this problem. But DO READ THE FOLLOWING as I didn’t need to do exactly what was told on the FAQ.
First, you need to check if you have a directory named
/etc/security/limits.d. If no, go on with the jack FAQ. If yes, check if you have a file named
95-jack.conf or similar. It should contain something like :
# Default limits for users of jack-audio-connection-kit @jackuser - rtprio 70 @jackuser - memlock 4194304 @pulse-rt - rtprio 20 @pulse-rt - nice -20
It was automatically done on my Fedora, so if you’re using the same configuration as me, you shouldn’t have done anything for now :). If you don’t have a similar file, go back to Jack FAQ link.
Now, we add our user to the jackuser group. The jack FAQ says :
If you are using a distribution that has already created the group and configured the “limits” file, you will need to determine the name of the group (it is likely called “audio” or “jackuser”) and then you can just add yourself to the group with this command (run as the superuser inside a terminal window):
usermod -a -G theGroupName yourUserId
substituting the real names for theGroupName and yourUserId
You can list all groups by using the command
cat /etc/group in a terminal. I added my user in the jackuser group and RTS worked.
[malcolm@localhost ~]$ cat /etc/group | grep jack jackuser:x:981:malcolm
For now the only thing I have is a Guitar Link.
It’s quite a plain but effective little thing. If you’re wondering why the need for a usb plug if your computer already have a microphone input, I asked a vendor at the music shop and he said USB ports were better even though I can’t remember why exactly. Something about the microphone input cutting out lots of frequency. I know, I’m a bit of a memory monkey.
So the guitar link do the job. It sent the guitar sounds into Jack as an input and you can then “plug it” in, for example, Ardour. But more than everything, it works on linux without needing any driver nor anything. I’ve read lots of reviews of stuff that didn’t work with Linux and this little guy worked out of the box !
So you plug the guitar in the guitar link, the guitar link in the computer and you’re good to go. How cool is that ? 😀
This, I recorded with only Ardour, a cheap Ibanez and the Guitar Link. I know it’s not incredible but I was just trying to see if everything was working so pardon the not so good music :
I did the battery with Hydrogen which is a very good drum machine for Linux. However I didn’t used it much.
I love electronic music. But, as someone with a Rock-Metal-Punk formation, I knew nothing at all about how to do it. So after a few months of trying close to everything available, I chose to use Renoise.
This was recorded/made with Renoise.
One thing that striked me with Renoise is its look and feel. Renoise is something unique to me in the way it edits and looks at Music Making. Apart from being freaking beautiful, it shows the music in a vertical motion. Music goes from top to bottom and it’s not made of sound waves but notes, delay and effects. To me, it has that programming/nerdy feeling I like in electronic music and at the same time, it’s beautifully arranged, cool looking and don’t feel like just a nerdy tool.
You don’t only “type your music”, you can play with a controller or your computer keyboard. Renoise will record the notes and delay in the most effective manner. The amount of programming behind this software never seizes to amaze me !
As a conclusion, I, for now, found two ways to play music in Renoise. You can either program it by manually typing notes and tweaking the groove or, you can input music by playing using the keyboard and virtual instruments. The best is to use both ways. I didn’t try much the sampling part as I’m only at a beginner stage.
Pattern editor, vertical editing, mixing, sampling there is so much to say and love about it, so, go and install it already ! There is a paid version but the demo is free forever. Experiment as much as you like with the demo and if a day you feel like doing more, buy the full version =).
The community is great as well. You can download lots of instrument here.
I know there is a lot more to try on Linux. LMMS, Rosegarden, JAMin, Muse, Ecasound… Feel free to post which one you prefer to use and why in the comment !