Kokkini Zita: The Audio Software Of Fons Adriaensen
Looking at the software listed at Kokkini Zita it's easy to see where developer Fons Adriaensen's interests lie. He has written one of the best organ synthesizers for Linux, he has contributed to the LADSPA collection of processing plugins, and he has provided Linux sound researchers with some excellent tools for measuring and representing audio signals. He is also involved in improving Linux support for the Ambisonics technology of encoding and decoding multichannel audio.
Fons is a rather prolific developer, so I'll limit my reviews here to only the applications I've employed here at Studio Dave. Alas, I haven't yet got into using his Ambisonics utilities, but perhaps one of my readers will add a comment on that software.
In ancient Greek mythology Aeolus was the god of the winds. Aeolus is thus a perfect name for Fons's flagship organ synthesizer. Indeed, to many listeners Aeolus is the best-sounding organ synthesizer available for any platform. A bold statement, to be sure, but in this writer's opinion Aeolus definitely lives up to and even surpasses its hype.
Aeolus is a bona fide synthesized organ, i.e. it does not use sampled audio for its sound-creation engine. Aeolus works with combinations of stops and manuals in a manner similar to a real organ to control the the frequencies and amplitudes of the pipes. One of Fons's main intentions was to design a virtual organ that an organist would feel comfortable playing, and anyone who has used a real church organ will likely feel right at home with Aeolus and its sound.
The following list from the Aeolus Web page summarizes the organ's main features :
- Stops for three manuals and one pedal-set
- Five intonation temperaments
- Variable (master) tuning
- MIDI control
- Stereo, surround, or Ambisonics output
- Flexible audio controls (including a large church reverb)
Figure 1 displays Aeolus at work with the seq24 MIDI sequencer.
Preset sounds are available for Aeolus, but frankly I find it a simple matter to make my own settings. The program's interface is easy to navigate and use, so I usually just experiment with stops and other settings until I find the sound I want.
And what kind of sound comes from Aeolus ? Well, check out Matthias Nagorni playing a Bach Trio Sonata and Bert Visser playing a Prelude by Cesar Franck for two good examples of Aeolus's convincing timbre and excellent audio quality. More examples can be found on the Aeolus home page.
Jconv is a simple utility for adding high-quality reverberation to an audio stream. The program utilizes an audio signal processing method called convolution to enhance a recording with the reverberant characteristics of a real or virtual space. A convolution reverb unit such as jconv makes its magic with short soundfiles called impulse response (IR) files, which are simply recordings of the reverberation effect in a particular building or other reverberant space. An IR recording is made typically by recording a loud sharp sound from a firecracker, a balloon pop, or a shot from a starting gun. The initial sound is then removed from the recording, leaving only the characteristic reverberation of the original space. Convolution "folds" the IR into your audio file or stream to create the illusion that your music was recorded in, say, the Taj Mahal or the basilica of Santa Lucia.
The program is currently a bit awkward to use. First the user must prepare a configuration script such as this example :
# Where jconv will find its IR file: /cd /home/dlphilp/soundfiles/ir-wav/Yamaha_SPX990/ # in out partition maxsize # ----------------------------------------------- /convolver/new 1 2 512 120000 # in out gain delay offset length chan file # ------------------------------------------------------------------------------------- /impulse/read 1 1 0.2 0 0 0 1 Concert_Hall.wav /impulse/read 1 2 0.2 0 0 0 2 Concert_Hall.wav
In this example I've employed an IR created from a Yamaha SPX 990 reverb unit. Many such IR files are available on the Web, giving the user access to the reverb characteristics of dedicated processors such as the Yamaha, Roland, or Lexicon units.
The configuration script is then fed to the jconv binary in this manner :
Jconv is a JACK-based program, so as soon as it starts it will appear as a client in the JACK graph. Figure 2 shows off how I've been using jconv recently in my work with the LinuxSampler software. In that screenshot I've dedicated two channels to an instrument's FX Send in the JSampler Fantasia GUI. Those channels are routed to jconv, and the output from the convolver is then sent to the system audio input. The processed audio is finally sent on to my speakers, perhaps mixed with the unprocessed stream, perhaps not.
Documentation is sparse. The demonstration scripts in the demo_config directory will get you started, and hundreds of IR files are available from various sites on the Web. See this articles Resources for a list of some notable collections of high-quality responses.
Jconv works beautifully with every IR file I've thrown into it. Alas, there are no realtime controls, nor is there a handy graphic interface (yet). Fons has promised that his upcoming Aella will provide the long-awaited GUI, but I really can't complain much about jconv as it is now. The scripts are trivial to write, the processor itself is simple to use, and the sound is first-rate. Can you tell that I like this program ?
I don't qualify as an experienced user of software such as JAAA, the JACK and ALSA Audio Analyzer, but I used hardware oscilloscopes back in my ham radio days and I still find it interesting to consider the significance of displays like the screenshot in Figure 3. However, to the truly knowledgable user such displays are no mere eye-candy - they are informative guides to crafting optimal sonic environments, and tools like the JAAA have become indispensable for professional audio engineer.
Figure 3 demonstrates a trivial use for the software. The output of AlsaPlayer is routed to the system audio inputs and to the JAAA input ports. In this arrangement I can listen to the music and watch its realtime frequency display for audio hot spots or other interesting content.
Many of the programs at Kokkini Zita are included in the software repositories for media-optimized Linux distributions. If your distro has somehow sadly failed to provide pre-built packages you can still build the software yourself. The process isn't difficult, you can find the source code and full instructions for compiling on the Kokkini Zita site.
As promised, here are some links to sites offering free IR files.
Happy convoluting !
When Ivica Ico Bukvic asked Fons what "kokkini zita" signifies he received this reply :
It's indeed Greek and means 'red zita', where zita is the name in modern Greek for the character traditionally known as 'zeta'. So I'll be using a red zeta as a logo.
There some word play involved as well. Zita is also a girl's name, and there exists a Flemish comic series in which a character called 'rode Zita' (red Zita) appears. She's the red-haired and voluptuous girlfriend of the hero - a sort of Robin Hood-like character whose gang of outcasts is constantly pestering the French soldiers that occupied Flanders 200 years ago.
By any name, Kokkini Zita is dedicated to high-quality music and DSP software for Linux. Vast thanks, Fons, for your superb contributions to the cause of Linux sound and music software development. I'm eager to see and hear what you come up with next.
Similis sum folio de quo ludunt venti.
Free DevOps eBooks, Videos, and more!
Regardless of where you are in your DevOps process, Linux Journal can help!
We offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, and advice & help from the expert sources like:
- Linux Journal
- Be a Mechanic...with Android and Linux!
- New Products
- Users, Permissions and Multitenant Sites
- Flexible Access Control with Squid Proxy
- Security in Three Ds: Detect, Decide and Deny
- High-Availability Storage with HA-LVM
- Tighten Up SSH
- Solving ODEs on Linux
- DevOps: Everything You Need to Know
- Non-Linux FOSS: MenuMeters