At the Sounding Edge: Sounding Better All The Time
The second annual conference of Linux audio developers will be held in Karlsruhe from April 28 through May 2. If you're in Germany during that period and happen to be near Karlsruhe, you might want to stop by the very cool Zentrum fur Kunst und Medientechnologie (ZKM) and check out some of the many lectures and presentations about the cutting edge work going on in Linux audio software development.
For those of you who can't make it to the conference, I present a brief State Of The Art message here in this month's installment of my At the Sounding Edge series. There's so much going on in the Linux sound software world that I can't hope to cover everything--not even all of the most important developments--but hopefully I can give interested readers a sense of what's happening and what directions we're taking.
Without a doubt, the two most important development tracks are the ALSA and JACK projects. Both supply the foundation for much of the most interesting application development happening today, and support for ALSA/JACK rapidly is becoming de rigeur in new sound software for Linux. I can't explore the technical depths of these fundamental systems, but I'll briefly describe what they are and why they are so important to the Linux audio development and user communities.
I've covered ALSA in a previous column, so I'm going to be brief about it in this article. ALSA is becoming a more familiar acronym, thanks to its inclusion in the Linux kernel sources. The ALSA sound system effectively replaces the older OSS/Free system, greatly expanding the sound services available to developers and normal users. ALSA provides sound card drivers, a library (libasound) for easy access to audio system functions and a suite of handy utilities. Soundcard support ranges from consumer grade cards to high-end professional digital audio boards. This advanced hardware support is necessary for users wanting to use Linux in more demanding audio production environments. Thanks to the efforts of the ALSA team, we now can claim support for a small but significant number of pro-audio boards. Without that support the Linux kernel sound system would remain bound to consumer-grade audio, which may be effective enough for casual use but certainly is insufficient for deployment in a professional studio.
ALSA's utilities include tools for your soundcard mixer (alsamixer, amixer), MIDI connectivity (aconnect), simple record and play programs (aplay, arecord) and a variety of chipset-specific amenities. Almost all are command-line tools, and although they may seem humble mini-applications, they are quite powerful. I refer the interested reader to the information available from the ALSA Web site; if you already have ALSA installed, you can read the informative manual pages (e.g., man aplay).
The list of the wonders of ALSA goes on, but this is neither the time or place to explore them. Again, I refer the reader to the ALSA Web site for the most up-to-date information regarding ALSA's current capabilities.
JACK is perhaps one of the most amazing pieces of software yet written for the Linux audio system. The brainchild of Paul Davis (author of the Ardour hard-disk recording system), JACK's capabilities include these outstanding features :
An easy method of adding audio support to new applications
A robust professional-grade audio server designed especially for low-latency systems
A transport control mechanism for synchronizing the activity of JACK-aware clients
The first feature is, of course, of special interest to programmers. Writing directly for the ALSA API certainly is possible, but by comparison JACK is a much simpler way to provide audio services to a client application. It is no exaggeration to say that JACK has the potential to revolutionize Linux audio development. The list of applications already supporting it is an impressive testimony to its appeal and possibilities (see the JACK Web site for a list of current JACK-aware software).
JACK is fairly agnostic about the underlying audio system, supporting ALSA, OSS and PortAudio. It also is expanding to become a multi-platform solution, with some deployment already possible under the Mac OS X. Again, JACK relieves the developer of concerns about the lower-level audio system, providing a simple and clean interface to the underlying system without sacrificing the system's capabilities.
Inter-application communication is an important feature of both JACK and ALSA. The ALSA sequencer API provides a way for compliant MIDI applications to share I/O ports, permitting multiple access and destinations. JACK does the same for audio, a rather more spectacular feat of programming: MIDI streams are relatively thin compared to digital audio and somewhat easier to manage and synchronize. Digital audio is another kind of beast entirely, with inherent issues of latency effecting the perfect synchronization of I/O streams. JACK has been designed to address and resolve those issues, making it possible to route and connect audio streams in much the same manner as ALSA's sequencer handles MIDI data.
Another exciting aspect of JACK is its transport control. One of the Holy Grails of audio development on any platform is the smooth control (start/stop/continue) of various applications by using a master controller. JACK can do this now with a number of applications, although not all are completely transport-aware. An application must be written with specific support for the JACK transport API, and only recently has that interface stabilized to the point of wider acceptance and deployment. Many well-known Linux sound and music applications already support the JACK transport controls, and more are on the way.
Before leaving this section, I must note that the OSS/Linux driver package from 4Front Technologies still is alive and in active development. However, my focus here is on free and open-source projects. I will cover OSS/Linux and other commercial Linux audio ventures in a future column.
Similis sum folio de quo ludunt venti.
Fast/Flexible Linux OS Recovery
On Demand Now
In this live one-hour webinar, learn how to enhance your existing backup strategies for complete disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible full-system recovery solution for UNIX and Linux systems.
Join Linux Journal's Shawn Powers and David Huffman, President/CEO, Storix, Inc.
Free to Linux Journal readers.Register Now!
- Petros Koutoupis' RapidDisk
- Download "Linux Management with Red Hat Satellite: Measuring Business Impact and ROI"
- The Italian Army Switches to LibreOffice
- Linux Mint 18
- Oracle vs. Google: Round 2
- The FBI and the Mozilla Foundation Lock Horns over Known Security Hole
- Varnish Software's Varnish Massive Storage Engine
- Privacy and the New Math
- Firefox 46.0 Released
Until recently, IBM’s Power Platform was looked upon as being the system that hosted IBM’s flavor of UNIX and proprietary operating system called IBM i. These servers often are found in medium-size businesses running ERP, CRM and financials for on-premise customers. By enabling the Power platform to run the Linux OS, IBM now has positioned Power to be the platform of choice for those already running Linux that are facing scalability issues, especially customers looking at analytics, big data or cloud computing.
￼Running Linux on IBM’s Power hardware offers some obvious benefits, including improved processing speed and memory bandwidth, inherent security, and simpler deployment and management. But if you look beyond the impressive architecture, you’ll also find an open ecosystem that has given rise to a strong, innovative community, as well as an inventory of system and network management applications that really help leverage the benefits offered by running Linux on Power.Get the Guide