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.
Practical Task Scheduling Deployment
One of the best things about the UNIX environment (aside from being stable and efficient) is the vast array of software tools available to help you do your job. Traditionally, a UNIX tool does only one thing, but does that one thing very well. For example, grep is very easy to use and can search vast amounts of data quickly. The find tool can find a particular file or files based on all kinds of criteria. It's pretty easy to string these tools together to build even more powerful tools, such as a tool that finds all of the .log files in the /home directory and searches each one for a particular entry. This erector-set mentality allows UNIX system administrators to seem to always have the right tool for the job.
Cron traditionally has been considered another such a tool for job scheduling, but is it enough? This webinar considers that very question. The first part builds on a previous Geek Guide, Beyond Cron, and briefly describes how to know when it might be time to consider upgrading your job scheduling infrastructure. The second part presents an actual planning and implementation framework.
Join Linux Journal's Mike Diehl and Pat Cameron of Help Systems.
Free to Linux Journal readers.View Now!
|The Firebird Project's Firebird Relational Database||Jul 29, 2016|
|Stunnel Security for Oracle||Jul 28, 2016|
|SUSE LLC's SUSE Manager||Jul 21, 2016|
|My +1 Sword of Productivity||Jul 20, 2016|
|Non-Linux FOSS: Caffeine!||Jul 19, 2016|
|Murat Yener and Onur Dundar's Expert Android Studio (Wrox)||Jul 18, 2016|
- The Firebird Project's Firebird Relational Database
- Stunnel Security for Oracle
- My +1 Sword of Productivity
- Non-Linux FOSS: Caffeine!
- SUSE LLC's SUSE Manager
- Managing Linux Using Puppet
- Murat Yener and Onur Dundar's Expert Android Studio (Wrox)
- Parsing an RSS News Feed with a Bash Script
- Google's SwiftShader Released
- Doing for User Space What We Did for Kernel Space
With all the industry talk about the benefits of Linux on Power and all the performance advantages offered by its open architecture, you may be considering a move in that direction. If you are thinking about analytics, big data and cloud computing, you would be right to evaluate Power. The idea of using commodity x86 hardware and replacing it every three years is an outdated cost model. It doesn’t consider the total cost of ownership, and it doesn’t consider the advantage of real processing power, high-availability and multithreading like a demon.
This ebook takes a look at some of the practical applications of the Linux on Power platform and ways you might bring all the performance power of this open architecture to bear for your organization. There are no smoke and mirrors here—just hard, cold, empirical evidence provided by independent sources. I also consider some innovative ways Linux on Power will be used in the future.Get the Guide