The Linux Soundfile Editor Roundup
The 1.0 release of Doug Scott's MiXViews occurred in 1995, making it the longest-living Linux soundfile editor profiled here. MiXViews was and is a one-man effort to provide UNIX and Linux with a high-quality audio editor. The project continues to be a solo development effort, and it still provides a high-quality editor.
MiXViews provides a strong suite of the basic soundfile editing functions and adds some features found in no other Linux soundfile editor. Phase vocoding and linear predictive coding (LPC) are digital signal analysis/resynthesis tools more commonly associated with software sound synthesis programs such as Csound or Common Lisp Music. These tools analyze a sound for its frequency and amplitude values and store those values in special analysis file formats. An analysis file can be read by a program such as Csound that gives the user independent control over the frequency and amplitude components of the analysis data before its resynthesis to a soundfile. MiXViews provides a complete suite of its own LPC and phase vocoder utilities; it also can read and edit analysis files created by the Csound phase vocoder.
Figure 3 displays some of MiXViews' graphic tools for editing phase vocoder and LPC analysis data. Although the theory and mathematics behind these tools can be intimidating, the MiXViews interface invites experimentation, making the tools themselves easier and more interesting to use.
If you want to try MiXViews, I suggest using the prebuilt binary. Compiling MiXViews is somewhat tricky, and it requires an uncommon graphics toolkit (InterViews), so simply download the static binary and start using it.
DAP (the Digital Audio Processor) is programmer Richard Kent's contribution to multiplatform soundfile editors. Like MiXViews, DAP's GUI is based on a not-so-new GUI toolkit, the XForms library. Also like MiXViews, DAP's workable soundfile size is limited by your system RAM. In addition, DAP includes some exceptionally well-implemented loop editing tools for AIFF soundfiles. DAP also includes a good selection of DSP modules (extended from Kai Lassfolk's SPKit code) and a handy mono-to-stereo and mono/stereo-to-quad converter.
Some of DAP's editing tools deserve special mention, particularly those found in the Resample and Edit/Mix dialogs. The Resample menu provides pitch and sample rate change with or without time stretching, while the Edit/Mix dialogs (Mix and Mix Range) provide a neat graphic control over the balance of the mixed file amplitudes. The influence of the AIFF file format and its loop support is found throughout the program. For example, when an effect is applied to a file the DSP dialog panel provides a control for the iterations of the sustain and release loops (Figure 4). Although DAP's design is biased toward the AIFF format, it also imports and exports files in RAW and WAV formats.
Alas, DAP is no longer consistently maintained. Its XForms GUI is showing its age, and its file size limitation is a serious drawback. The author is honest about DAP's limitations, but if you're working with AIFF files with embedded loop points, DAP is still a useful tool.
The next group of editors belong to the new wave of Linux audio development. Their natural environment includes the modern graphic interface toolkits and the newer Linux sound system components, such as ALSA, JACK and LADSPA. They also are conceptually more homogenous than their predecessors, offering resemblance to the popular editors familiar to Windows and Mac users.
Audacity is a fitting first representative of this new wave of Linux soundfile editors. It is written in C/C++, uses the wxWindows cross-platform GUI toolkit and supports native and LADSPA signal processing plugins. Recent versions also are JACK-aware, giving Audacity the ability to route its I/O to or from other active JACK-aware programs.
Figure 5 illustrates Audacity with three soundfiles opened—a mono WAV file, a stereo AIFF file and a file in Sun's AU format. Audacity also imports MP3 and Ogg files. It exports Ogg files directly, thanks to the Ogg/Vorbis libraries, but MP3 export depends on a user-supplied encoder. Figure 5 also shows Audacity's native equalizer plugin at work.
Audacity's graphic editing tools are a pleasure to use. Figure 6 shows off the envelope tool's effect on the amplitude contour of one of the soundfiles seen in Figure 5. At the individual sample level, Audacity's drawing tool makes it easy to remove or repair amplitude spikes and other discontinuities.
Like Snd, Audacity features an interface to a Lisp-based programming language, Roger Dannenberg's Nyquist. Nyquist is a language designed for sound synthesis and signal processing, and Audacity's Effects menu provides a Nyquist Prompt that works essentially like Snd's Listener. You enter a Nyquist expression in the prompt dialog, click on the OK button and if the expression is valid, Audacity performs the intended process on the active soundfile.
There's far more to Audacity than I can possibly describe here. Fortunately, the program is easy to learn and use, so check it out for yourself.
Similis sum folio de quo ludunt venti.
Getting Started with DevOps - Including New Data on IT Performance from Puppet Labs 2015 State of DevOps Report
August 27, 2015
12:00 PM CDT
DevOps represents a profound change from the way most IT departments have traditionally worked: from siloed teams and high-anxiety releases to everyone collaborating on uneventful and more frequent releases of higher-quality code. It doesn't matter how large or small an organization is, or even whether it's historically slow moving or risk averse — there are ways to adopt DevOps sanely, and get measurable results in just weeks.
Free to Linux Journal readers.Register Now!
- August 2015 Issue of Linux Journal: Programming
- Django Models and Migrations
- Hacking a Safe with Bash
- Secure Server Deployments in Hostile Territory, Part II
- The Controversy Behind Canonical's Intellectual Property Policy
- Huge Package Overhaul for Debian and Ubuntu
- Shashlik - a Tasty New Android Simulator
- Embed Linux in Monitoring and Control Systems
- KDE Reveals Plasma Mobile
- General Relativity in Python