The Software Ecology Of Rui Nuno Capela
Rui Capela's software has appeared in this column many times. I've written about it directly (see At the Sounding Edge: Using QSynth and QJackCtl and HDRs and DAWs For Linux: The New Breed) and it shows up in almost every article I write. I'm not exaggerating when I state that Rui's programs have become indispensable components here at Studio Dave, so naturally I'm interested in the mind behind it all. In this entry I'll recap the nature and state of Rui's software, after which we'll meet the man himself in another lively interview here at the sounding edge.
The Q Factor
The official catalog of Rui Nuno Capela's Linux sound & music software includes the following applications :
- QJackCtl - GUI for controlling the JACK audio/MIDI server & transport control
- QSampler - GUI for the very cool LinuxSampler project
- QSynth - graphic front-end for the superb FluidSynth soundfont-based synthesizer
- QTractor - a nascent audio/MIDI sequencer
As noted, I've already profiled these apps, with the exception of QSampler. It's apparent that Rui has been cooking up a suite of programs that provides a complete music production system, with an emphasis on standardized components and relatively light resource requirements. JACK and ALSA are essential, and as the Q implies, the graphics toolkit of choice is Trolltech's Qt.
QJackCtl and QSynth are mature applications, QTractor is in its alpha stage of development, while QSampler's development status lies somewhere between. Since I haven't profiled it before now, let's take a brief look at QSampler, then we'll spend some time catching up with the developer.
QSampler is a GUI for the LinuxSampler software, a set of command-line tools for loading and rendering sample files in the popular GIG format. Like Rui's other programs, QSampler's interface organizes LinuxSampler's functions and simplifies the setup and control of sample files. Figure 1 shows the Channel Setup panel, the main dialog for loading sound samples and arranging audio and MIDI I/O.
I tested version 0.1.3 as built and packaged for 64Studio. I started QJackCtl, fired up QSampler, and I was ready to hook up and roll. Figure 2 shows off QSampler at light labor. In this scenario each instrument is driven by the seq24 MIDI sequencer. Audio output has been directed by QJackCtl (Figure 3), routing some instruments to a reverb plugin in the Jack Rack while sending the others directly to the ALSA PCM ports. Since one soundfile is worth more than much verbiage I've placed a tiny demo file (in OGG format) online to demonstrate the sound of the system displayed in Figure 2.
By the way, Java fans might also like to try Grigor Iliev's JSampler, a Java-based GUI for LinuxSampler that's similar to QSampler (though JSampler has some unique features).
I did not have the opportunity to test QSampler with any large commercial GIG files, but I was pleasantly surprised by some of the free files I found online (you can hear them in the demo file). The LinuxSampler may someday expand its support for sample file formats other than GIG, such as the very popular Akai format. However LinuxSampler evolves, QSampler will surely accommodate that evolution.
An Interview With Rui Capela
Rui kindly agreed to play question & answer with me via an email exchange. I met Rui at the Linux Audio Conference (LAC) some years ago, and I was impressed then with his unique attitude and intelligence, both of which qualities come through in the following interview. By the way, although English is not Rui's native language I have tried to minimize edits. However, remaining infelicities of phrase and expression must be blamed on the editor (i.e., me).
DP: How did you get into computers and when did you start programming ?
RNC: That is like asking for a resume. My first programming experience, if one can call it that, was on a TI-58C scientific calculator, around 1979 if my memory can be trusted. But the real stuff happened some years later, circa 1983, when I enrolled on the EE course. The Sinclair ZX Spectrum was the spark that started it all for me, and its BASIC. My first complete program was a sluggish PacMan clone. More serious applications followed but were just personal computational tools for electronic circuit simulation (CAD), for example. In 1986 I was admitted as a system programmer in a major financial-banking corporation, where in-house mainframe programming and good old COBOL was the rule. Then came the MSc EE, CS specialization, along with my first PC (8086 4MHz), PC-DOS, Turbo Pascal, and Turbo C. While struggling for financial independence, I was also working as a freelance programmer and consultant (Clipper was the rage of the late 1980s). By that time I had already bet my life on C and the promising emergence of C++ and OOP. Those were also the pre-Internet BBS days. Later in 1995 I took the option as a corporate DBA (IBM DB2) and settled into it. About that time consciousness of the open-source concept was taking form in my mind, and that eventually manifested as a second chance turn on entrepreneurship, the first time I can say I took Linux seriously. Through Apache, MySQL and PHP programming, 1998 was the year that the Internet bubble started for me. It still amazes me today how much PHP code I had churned out over those couple of years. It was only in the current millennium that I got back to C/C++ as a Linux Audio hacker. As you already know, it's just my hobby today.
DP: When did you start using Linux ? What attracted you to it ?
RNC: My first contact was in 1994, with Yggdrasil plug-and-play Linux, which I ordered by mail just out of curiosity. I was indeed impressed with what I found. Unfortunately, playing Doom on it wasn't quite as reliable so I got back to my main development platform, which was, guess what, Borland C++ SDK on Windows 3.1. Yes, I was once a hard-core Windows developer and I confess I was kind to Microsoft and to the closed model of software development at the time. But that relationship eroded as fast as Microsoft's hegemony was growing. Then came the Internet bubble days, during the second half of the 90's. Web development was the rule and that's where I rediscovered Linux, this time for good use. Since then my strategy was settled: the Windows ditching was planned. Already in the new millennium Linux Audio just hammered that last nail in the coffin.
DP: Do you have a background in music ?
RNC: There's not much to tell about that, I'm afraid. All my musical knowledge has been self-taught and all instrument playing is just for the fun of it. Another attribute worth noting is my lousy guitar playing, and my keyboard playing is even worse. Curiosity's just stronger.
DP: So what attracted you to writing audio software ?
RNC: Going deeper into my story, writing audio software evolved secretly as exactly what I always wanted to do ever since computers entered my life, but it was "procrastinated" to this very century due to more mundane interests. I still remember my father's reasoning as a fundamental ruling: "You just wouldn't want to play guitar in the subway halls, begging for some coins, would you?" - that simple question made up my mind for the years to come, and music and related stuff got buried, although in only a shallow way. It must be true that it fostered my enrollment on EE nevertheless, with the hidden agenda of electronic music, synthesizers and effects in mind. It was during this time that I made my first inroads into computer programming and also start dreaming about digital audio production as a creative process. Eventually I got my first paid job, as a mainframe system programming apprentice. I'm usually found to brag about my very first paycheck being channeled to my also first hardware synthesizer keyboard that I still own and love today. That was more than twenty years ago. All that time I have been wandering between a consuming day job, a social mess, several mistakes, and an infrequent and alternate music hobby which did not include programming at all. By late in this time I was just another user of some Windows applications, of which only the Cakewalk Pro Audio DAW do I still praise. Programming in this area was very sparse, mostly related to some custom MIDI utilities. I remember that my programming at that time was far from inspiring and I was actually losing grip on it, especially due to what I know now as suffering from the lock-in desease. Linux programming was already a reality, given the Web development I was engaged in, but it was only a few years back when I come across the ALSA and JACK concepts that it all made sense. And I can also say that your book, the Book Of Linux Music & Sound, took the primordial role in my saga. It was Linux time. It was a new millennium indeed, and I convinced myself that it was about time for me to get into it, where I'm free to realize my most early dreams. And that was it.
DP: Cool, I love hearing that people were influenced by my book, especially when they end up writing software like yours. :) You are well-known for your work on QSynth and QJackCtl, certainly two of the most popular items in the Linux audio software arsenal. You've also supplied the QSampler front-end for the Linuxsampler project, and it looks like your QTractor is shaping up nicely. Can you tell us how your work is going with those projects today ? What's in store for their future development ? Do you have any plans for other Linux audio applications ?
RNC: Qsynth needs to be LASH'ed. QjackCtl should migrate to Qt4, as everything else. Qsampler is more like a forge for Qt programming. Qtractor is my own personal brainchild, what all my plans are about. The problem with this hobby is that it eats up all my precious spare time, most importantly it eats my family time. On average I spend two hours per night doing the Linux audio dance, and half of that time is spent reading email from the lists. When I find enough time for thinking I even ponder whether an idea should be put into code. If that ever happens, it has to happen immediately or the time inspiration window is lost. To make things even less reliable, it is not so rare that I find each effort is worse than nothing, so falling back to leave it as if it were from scratch on the next spare day occurs quite often. It seems that development happens in bursts, and just by the very simple fact that I am not under any kind of (marketing) pressure. After all, it's a hobby and due to the nature of the open-source commitment the results just look stable and thoughtful.
DP: What do you think about the state of Linux audio ?
RNC: Linux audio has been my playground for five years now. It has exactly the same age as my first-born son (my only one to date). So we can take parallels. As every child, it needs plenty of nursery, the same amount of nurturing. Seriously, it needs reliable documentation located at a central and easy to find point; consumer- and developer-oriented documentation, drop-in examples and howto's; it needs to make itself heard, and the linuxaudio.org consortium seems to be the right place and initiative; definitive reference material on JACK, ALSA and the rt kernel patch set; we need a new book, just like the one you wrote some years ago. At the time there were too many islands and the picture now seems that of erosion most like an atoll. My bet is on JACK and ALSA, these are our core products. Hardware support is paramount to Linux audio success; however, unfortunately those proprietary drivers still have to be reverse-engineered, eventually resulting in partial device support, without the bleeding-edge features, the ones people pay for when choosing with their wallets. Nevertheless, it still relies on the good-will of a few numbered heroes. Bottom line is: We're in a niche market, if a market is all it is about. All other closed-source or proprietary contenders are also struggling for the same customers and money. On the other hand, Linux audio is starving for users, creative and productive users, and we need a stronger heritage, people that will keep the torch and let the message be heard. We need to nurture the young, so that they pass the Linux audio song along its way.
DP: Are you involved in other software projects ?
RNC: My current full-time job is working for IBM DB2 as DBA outsourcing, thus completely unrelated to Linux audio. Obviously, all my opinions are not necessarily the ones of IBM.
DP: I think they're safe. So what else does Rui Nuno Capela do with his time ? Any outside interests or activities you care to mention ?
RNC: Besides the work-housewife-kid stuff? Nothing much left I think.
DP: Any final remarks, advice, or good jokes ?
RNC: Talking about a family, if the Linux audio community can be called as such, then I'm still kind of a step-brother, yet struggling for a piece of the cake ;)
My thanks to Rui Nuno Capela for his participation in this interview. I hope to see him again at LAC 2007, and it would be great to see you there too. Rui's world of Linux audio software can you keep you occupied until then, so meanwhile stay tuned, breathe, keep swinging, and I'll see you in about two weeks.