Audio/Visual Synthesis For Linux: The New Art, Part 1
The Linux Journal recently published an article I wrote on Jean-Pierre Lemoine's AVSynthesis, a program designed for artists working with the computer as a medium for the synthesis of image and sound. I'm fascinated by that program, so I decided to research the existence of similar software. This article presents the current findings from that research.
Some History
When we think of art forms that blend image and sound we usually think of movies, television, and videos. Indeed, it can be argued that the technology of film-making reached its modern stage only with the adoption of frame-synchronized sound. However, the use of sound in conventional cinema and broadcasting is a rather limited employment. For the most part, sound there is limited to musical commentary and sound effects, and while those employments may be imaginative and interesting in themselves, they act primarily as handmaidens to the visual drama.

The software I've researched so far takes some very different approaches to blending sight and sound. Terms such as "abstract" and "non-representational" come to mind, and some of these applications do indeed produce abtract and non-representational images and sound. However, each artist will find his or her own use for these programs, and the software itself imposes no particular limitation on the use of its output.
The computer makes possible art forms that have been difficult if not impossible to realize without the machine. Relationships between image and sound can be defined in any way imaginable, and the sound need not play the role of handmaiden to the image. Wholly arbitrary relationships can be defined, relationships that may be most useful to the composer. These methods may be simple or complex, but their true value is their utility to the artist. He may follow a process untouched through its entire run, or he may jettison a method as soon as it has served its purpose. Of course that purpose is decided upon by the artist, and it is subject to change at any time during the creative process.
So who benefits from these machine-assisted possibilities ? Conventional movie-makers, multimedia artists, and vee-jays are obvious targets for audio/visual synthesis, but certainly anyone with a Web cam or a video file can play around with the software I'll present here. However, neophytes should be aware that the combined domains of sound synthesis and image processing include a great deal of jargon and other technical language, and while there's much fun to be had just playing with the programs, better results are more likely as your technical knowledge increases.
This combined art is heavily dependent on the processing power of modern CPUs and GPUs, but it is not without antecedents. Surrealist and Dadaist film makers such as Man Ray and Salvador Dali experimented with non-representational combinations of sights and sounds in the early part of the 20th century. Pioneering work with computers was done by John Whitney (who also studied 12-tone music composition) and Yoichiro Kawaguchi, whose fantastic images and animations continue to inspire computer-based graphic artists. [1]
Some Categories
As I studied this art and its software I realized that I had launched myself on to a sea of novel possibilities. To help distinguish between techniques I've made the following categorizations for the most typical blends of son et lumiere :
Sound supports images - Here we find the conventional use of music as background, intensifier, or pedal to the action on the screen. In this application typically the sound has no effect upon the images and is essentially merely accompaniment. Sound is applied in the form of the music and songs used to underscore and emphasize the action on the screen, and in the sound effects and Foley effects heard throughout the movie. While the accompanying music and sounds may themselves be aesthetically imaginative, they typically play no part in either the generation or transformation of the images. For a more complete presentation of this category I refer my readers to Aaron Copland's remarks on writing music for films. [2]
Image produced and/or altered by sound - Images are rendered in realtime while synchronized to an audio stream. This category includes the sonic visualisers packaged with most modern media players, along with audio data visualizers such as eXtace, Baudline, and Sonic Visualiser. However, these applications perform no sound synthesis or other audio processing. Sound comes in from an external source, and its analyzed data is represented in a variety of visual displays, some of which can be quite striking. See the Scopes page at linux-sound.org for a list of data visualization software for Linux.
Image to sound conversion - Also known as sonification. An image is subjected to a variety of rules governing the transformation of its shapes and colors into the elements of sound. Typical associations include pixel to grain, gradient to amplitude, height and width to intensity and duration, et cetera. Programs in this category include Kurt Rosenfeld's Sound Mural, NoTAM's famed Ceres spectral editor, and the Csound5 audio synthesis system (which can create an image as well as convert one). Peter Meijer's venerable vOICe Sonification Applet is an excellent Java-based demonstration of a well-defined conversion program. [3]
Simultaneous synthesis of sound and graphics - In this software the audio stream and associated images are created and processed simultaneously. Exemplary programs in this category include AVSynthesis (Figure 2), Dave Griffiths' Fluxus (Figure 3), and the Pd/GEM powerhouse. Simultaneous synthesis in the audio and visual domains can place heavy demands on this software: Pd includes its own high-quality sound synthesis/processing engine, AVSynthesis leverages the great audio power of Csound5, and both programs depend on OpenGL for their image creation and processing routines. This category is the main focus for the software presented in this article.


Some of these programs process only still images, while others work with existing video files and/or realtime live action video input. If you plan on using live feeds, make sure your kernel is compiled for Video4Linux support.
Hardware Requirements
Audio/visual synthesis makes heavy demands on hardware resources. The machines I used to test the software include 2.0 GHz and 2.4 GHz CPUs, with 3 GB RAM, large fast SATA disks, and fanless nVidia 7600GS video cards with 512 MB on-board RAM. For either audio or video, these machines are workhorses, but combined sound and image synthesis wants more. It's easy to max out CPU performance with a high-quality reverberation effect applied to a looping soundfile while updating a densely texture-mapped animation with constantly morphing imagery, all calculated in realtime. Regarding hardware, bigger and faster is better and better.
Outro
As mentioned above, my focus has been on software intended for creative artists, with an emphasis on realtime or near-realtime processing capabilities. I have purposefully ignored Cinelerra, Blender, and other similar applications that are better understood as video sequence editors and compositors, though they share some of the tools and techniques of the software I'll profile in the next part of this article. Until then, hasta la vista (y la sonida) !
Notes:
[1] See also Profile of Yoichiro Kawaguchi and Yoichiro Kawaguchi: Works.
[2] Copland, Aaron, Richard Kostelanetz, and Steven Silverstein (2004) Aaron Copland: A Reader : Selected Writings 1923-1972, Routledge
[3] Thomas Baudel's HighC is another Java-based converter. HighC is modeled after the great UPIC composition system designed by composer Iannis Xenakis. Alas, HighC's audio output is currently broken in Linux and the author is unlikely to fix it in the near future. HighC is a proprietary project, interested readers may contact Thomas about fixing the Linux version.
Similis sum folio de quo ludunt venti.
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Sponsored by AMD
Built-in forensics, incident response, and security with Red Hat Enterprise Linux 6
Every security policy provides guidance and requirements for ensuring adequate protection of information and data, as well as high-level technical and administrative security requirements for a system in a given environment. Traditionally, providing security for a system focuses on the confidentiality of the information on it. However, protecting the data integrity and system and data availability is just as important. For example, when processing United States intelligence information, there are three attributes that require protection: confidentiality, integrity, and availability.
Learn more about catching the bad guy in this free white paper.
Sponsored by DLT Solutions
| Designing Electronics with Linux | May 22, 2013 |
| Dynamic DNS—an Object Lesson in Problem Solving | May 21, 2013 |
| Using Salt Stack and Vagrant for Drupal Development | May 20, 2013 |
| Making Linux and Android Get Along (It's Not as Hard as It Sounds) | May 16, 2013 |
| Drupal Is a Framework: Why Everyone Needs to Understand This | May 15, 2013 |
| Home, My Backup Data Center | May 13, 2013 |
- New Products
- Linux Systems Administrator
- Senior Perl Developer
- Technical Support Rep
- UX Designer
- Web & UI Developer (JavaScript & j Query)
- Designing Electronics with Linux
- Dynamic DNS—an Object Lesson in Problem Solving
- Using Salt Stack and Vagrant for Drupal Development
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Reply to comment | Linux Journal
1 hour 5 min ago - Reply to comment | Linux Journal
7 hours 59 min ago - Reply to comment | Linux Journal
8 hours 15 min ago - Favorite (and easily brute-forced) pw's
10 hours 6 min ago - Have you tried Boxen? It's a
15 hours 58 min ago - seo services in india
20 hours 29 min ago - For KDE install kio-mtp
20 hours 30 min ago - Evernote is much more...
22 hours 30 min ago - Reply to comment | Linux Journal
1 day 7 hours ago - Dynamic DNS
1 day 7 hours ago
Enter to Win an Adafruit Pi Cobbler Breakout Kit for Raspberry Pi

It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Pi Cobbler Breakout Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- 5-21-13, Prototyping Pi Plate Kit: Philip Kirby
- Next winner announced on 5-27-13!
Featured Jobs
| Linux Systems Administrator | Houston and Austin, Texas | Host Gator |
| Senior Perl Developer | Austin, Texas | Host Gator |
| Technical Support Rep | Houston and Austin, Texas | Host Gator |
| UX Designer | Austin, Texas | Host Gator |
| Web & UI Developer (JavaScript & j Query) | Austin, Texas | Host Gator |
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?



Comments
Correction re: HighC
HighC is *not* broken on Linux, it works perfectly well. My problem was the result of the Java Sound API's inability to recognize a professional audio board. The problem is resolved, and there is a new version of the program available now. Definitely worth checking out !
Similis sum folio de quo ludunt venti.