Introducing Guitarix
According to its developers Guitarix is a monaural amplifier designed for creating the distorted sounds typical of thrash, heavy metal, blues, and other rock guitar styles. In fact, Guitarix is capable of much more than distortion sounds. In this article I'll remove the software speaker grill and pull out the virtual chassis to take a closer look at the sonic possibilities of this "simple mono amplifier".
Intro
Did you know that:
- The Rickenbacker was one of the first commercially available electric guitars in the early 1930s ?
- By 1945 the Fender company marketed amplifiers designed specifically for the electric guitar ?
- Audio effects designer Roger Mayer created the first distortion and wah pedals for guitarists in the 1960s ?
- In July 2009 developers Hermann Meyer and James Warden announced the release of Guitarix 0.05.0-1 ?
Okay, so maybe Guitarix won't make quite the same historical impact as those other events, but its most recent release is definitely an event worth noting.
Features
Guitarix (Figure 1) features a set of processing modules of particular value to guitarists, such as distortion effects, a compressor, reverbs, echo, and wah/crybaby effects. The signal processing flow is fixed and the modules chain can not be reordered. They can be toggled on or off, and some modules include a hidden display of the full set of the effect's parameters.
The Guitarix main display panel presents a logical organization to its variety of modules and controls. From the top down we have a main menu bar, the tuner/balance/jconv strip, the Controls display, the feedback/feedforward/record strip, and the logging window. Amplifier functions are located on the left side of the Controls display, followed by the effects processing modules and the optional oscilloscope. If screen real estate is scarce you can hide the displays for jconv, the controls panel, and the logging window (Figure 2).
Guitarix provides a basic GUI for setting values in jconv (Figure 3), a light-weight utility for creating high-quality reverberation effects. With the Guitarix GUI you can load and view an IR (impulse response) file, select the IR copy/read mode, and adjust values for the IR partition size, the maximum usable memory, and a linear gain signal amplifier. The default gain value is low, so be sure to check and change it if an IR doesn't create the intended ambience. Unfortunately the jconv settings are untouchable in realtime, but they can be saved along with all other values in a preset.
Guitarix also includes a tuner and a JACK MIDI output port. The tuner is usable, though it could benefit from a better display and more stable pitch detection. Alas, the MIDI conversion was unreliable to the point of unusability. I experimented with various settings for the range and sensitivity controls, all to no avail. I'll continue to try to fine-tune it, but I admit that for me it's a low-priority feature anyway.
Install, Configure, Play
Guitarix is available from the package managers for systems running OpenSUSE, Fedora, Gentoo, and Arch Linux. A package is also available for Musix, a Linux distribution optimized for audio/video production. If you're using any of those systems you're in luck, otherwise you'll have to compile it yourself.
Building Guitarix isn't difficult. The source tree now employs the waf build system. Enter ./waf help at the prompt to find the available configuration options, then run the following commands to compile and install the latest and greatest version of Guitarix :
$ ./waf configure --prefix=/usr/local $ ./waf build $ sudo ./waf install
Assuming a full complement of its dependencies the build should proceed smoothly. The configure stage will fail if any components are missing or out of date, so take note of any warnings or errors issued during the build configuration.
The complete build wants a variety of dependencies, including the LADSPA SDK, Steve Harris's meterbridge, Kjetil Matheussen's jack_capture, and Fons Adriaensen's jconv. Only the LADSPA package is absolutely required. Guitarix will run without the other amenities, but they are so helpful that I don't consider Guitarix complete without them.
If jconv is not included in your distribution's software repositories you'll need to build and install it too. Jconv requires its own unique dependencies so be sure to read and follow the build instructions at Kokkini Zita.
The Guitarix processor modules are also available as LADSPA plugins usable by any LADSPA-savvy host. The plugins are compiled and installed automatically during the normal build process, another nice touch from the developers.
Testing The Axe
Guitarix is a JACK-based application, so you'll need a Linux system with sound powered by the ALSA/JACK combination. In case you don't know about these components, ALSA is the Linux kernel sound system, JACK is a user-level high-performance sound server designed for professional audio use. Linux distributions optimized for audio production are based on ALSA and JACK, and I highly recommend such systems if you want the best possible performance from Guitarix and other audio production software. For this article I tested the latest Guitarix on a heavily customized Ubuntu Studio 9.04 system with a 2.6.29 kernel customized for realtime performance.
I tested Guitarix with an inexpensive electric guitar plugged into an M-Audio Omni I/O. The Omni functions as a break-out box for my recording machine's Delta 66 audio interface and as a preamp for incoming line-level audio signals. My guitar has two double-coil pickups, one volume control, one tone control, and a three-way pickup selector switch. It's a good choice for testing software like Guitarix: If the program can make this guitar sound good, think what it will do for your Paul Reed Smith.
The test instrument's pickups are unpowered, but their output is hot enough to cause occasional clipping. I had to experiment for a while to find an optimal combination of levels and settings. The Omni's Pad switch eliminated the clipping, and Guitarix's Overdrive and Feedforward controls restored energy and presence to the signal.
The default preset is a simple distortion effect. It's a good distortion, perfectly usable as-is, but it's also a good model for creating your own presets. My first Guitarix preset was a simple combination of the default distortion with the Freeverb effect, also at its default settings. From such simple presets you can create more finely tuned effects by adjusting the parameters in each processing module. Parameter control via MIDI is not available yet, but you can use the mouse wheel to dial in precise values.
The Record utility works according to the settings made in the jack_capture configuration dialog. As far as my tests could discern it works exactly as it should. Of course, with its JACK capabilities Guitarix's output can be routed to Ardour, QTractor, Rosegarden, or any other JACK-savvy DAW.
So How's It Sound ?
I've prepared a simple demonstration (OGG format) recorded with jack_capture while in Guitarix. The following list describes each part of the demo:
- Riff at default Distortion setting.
- Add Freeverb module with default settings.
- Add Overdrive module with overdrive set to 10.
- Set Feedforward slider to 30.
As the demo shows, each module adds a unique and noticeable effect. My first recording included the IR module, but it introduced some audio artifacts in combination with the other modules so I chopped it out with the ReZound soundfile editor. By the way, I'm not perfectly sure I understand the IR module's function. It does add some niceness to the sound, but I could use some clarification as to how it does what it's doing.
One note more regarding jconv. Although convolution engines are typically associated with the creation of high-quality realistic reverberation they are also excellent engines for cabinet simulations. I've just started to experiment with it, thanks to Hermann Meyer's pointer to a huge collection of amplifier cabinet IR files (package compressed in RAR format). Hermann advises that you remove the reverberation tail from the IR (a simple task with the jconv widget in Guitarix) for a relatively unprocessed cabinet simulation.
Documentation
At this stage in its development Guitarix has almost no user-level documentation. The source package includes a README that explains the program in some detail, and Hermann Meyer has written a good introduction to using jconv in Guitarix. A discussion forum exists but traffic is light. The program also needs a demonstrative bank of presets. Fortunately the program is easy to learn through its use. Experiment, make new presets, save them, and tell the rest of us about them.
Outro
An application with a version number of 0.05.0 is likely to have some rough edges. Guitarix needs attention in some of its aspects, but its basic design is good. I'd like to see a more polished GUI, some user-level documentation, and an improved tuner. The Web site needs some love for its English, though it is comprehensible. But these are relatvely minor points, and I'm happy to have Guitarix at all. It works well for its originally intended purpose, i.e. a variety of distortion sounds, and it is an excellent amplifier for clean sounds, especially when jconv is activated with an appropriate IR file. Its JACK support is flawless, thanks to which Guitarix can be integrated into any network of JACK-aware applications. No, it's not a replacement for Guitar Rig, but it's a good start towards a flexible and powerful guitar effects/amp simulation processor for Linux.
I must mention that Guitarix was prototyped with the awesome FAUST DSP development environment. FAUST deserves its own article, but in lieu of a review you can check it out at its home site.
Passing Tones
A giant is gone: RIP Les Paul (1915 - 2009), the legendary guitarist, recordist, and inventor. My parents listened to the songs of Les Paul and Mary Ford when I was a child in the 1950s. I'll never forget the man's tone and his technique, and I'm sure he's still swingin' in the celestial halls. Every electric guitarist alive should give a moment of silence for the great man, then rock the house one more time for Les.