June 17, 2010

Open Source Multimedia Tools Make Sweet Music

Forty years ago I was enraptured by the ability to control a machine using software logic, which diverted me from electrical engineering to software development. Somewhere along the line I realized that developing software for software's sake is not very useful, as I recognized that not everyone had the same fascination for computers and computing that I did.

Other peoples' creative talents surface in other areas. Some people, for instance, like to create music. They are skilled at playing the guitar or the piano, composing new music and leading the singing of people with their own voice. My parents made me play the clarinet, because they realized that I could not play the instrument and sing at the same time....a blessing to their ears.

Other people use computers to generate, record, analyze, edit and produce music and videos, and computers assist them in their creative drive. Still other people want to use both computers and multimedia to “get a message out" by creating posters, blogs, and other means of communication. Sometimes the paths would cross, and in the early days of computing it would often be a mathematician with a love of art who would bridge the gap created by the three and spend time making computers more adaptive to the creation of art of different types. It is not by accident that some of our greatest computer scientists are also great musicians, and some really great movie companies (ones like Pixar and Industrial Light and Magic) hire some of the best computer scientists.

When I was in high school a “sound lab” would cost hundreds of thousands of dollars (and that was when a dollar was worth a lot more). The sound lab would be filled with expensive, dedicated equipment. Today an inexpensive PC with a decent sound card and good microphones allow a budding musician or band to publish their art and put it on the Internet for people to see, hear and perhaps even purchase.

The software required to do a reasonable job of producing multimedia also became fairly inexpensive and until recently was all closed source. In the past several years the FOSS community has created a large number of applications and services around multimedia, including entire distributions devoted to the area. The ability of artists to use the programs with little programming knowledge (or some help from programming friends) drove the development of FOSS multimedia tools.

The reader will notice there are often multiple programs listed to do each function. This is (of course) also true in the closed source world. When you go to the shelves of the computer store there are multiple CAD programs, virus programs, and programs of almost every type duplicated by various vendors. In the FOSS world various groups of programmers also put forth their vision of how programs should work. In the FOSS world, however, the “great idea” is visible, bubbles to the top, and can be shared, so all the programs move forward rapidly. FOSS developers strive to create concepts like The Linux Audio Developer's Simple Plugin API (LADSPA), a standard API for audio (reverb, etc.), so “plug-in libraries” can be built to more easily share code between programs.

Before we start going down a list of multimedia programs, I do want to point out that a lot of these programs run on multiple platforms: Linux, *BSD, OS/X and MS Windows. A lot of them have binary packages made for the system you use, and a lot of them may be included in your current distribution of choice or distribution's repository. Your current distribution is the first place to look. The reader is therefore welcome to try each program to see which program fits their needs the best, and if I, as the author, left out your favorite program in some category, please forgive me. Better yet, put your comments here and let the rest of the readers benefit from your thoughts.

Remember that you may have to match the sound system of your distribution (ALSA, Pulse-Audio, etc.) to your computer's hardware and then typically match the settings of each application you try to that sound system before you can hear anything. Another tip for good results is to make sure that you are using the real-time version of the Linux Kernel, which has better latency handling than the general-purpose kernel.
There are also several distributions aimed at multimedia, where the distribution makers have gathered a lot of the programs and added them to a base distribution using a real-time kernel that runs live off a CD-R, a DVD-R or a USB stick. Some of these distributions are:Ubuntu Studio, Artistx , 64Studio.com and Puredyne.org (bootable USB stick and LiveCD).

Running one of these distributions “live” may be the easiest way to try a series of the applications quickly, and if you like them, perhaps set up a netbook or a dual-boot system to create a “studio-on-the-go.” There are also companies, such as Indamixx, that sell pre-installed netbooks and even hand-held “studios.” Here the distribution and applications have already been matched with the hardware, so “installation” is as easy (or easier) as most Windows systems that come pre-installed. You can just take it out of the box and use it. They also sell support on the systems.

There are also several books out on using FOSS multimedia tools. One book, “Crafting Digital Media: Audacity, Blender, Drupal, GIMP, Scribus, and other Open Source Tools,” by Daniel James (Apress, 2009), has a CD-R in the back of it based on Ubuntu. The book describes a subset of the tools listed here, but each tool it describes is in much greater detail than can be put into this web-based text.

For my Portuguese-speaking friends (or those people very good with translation software), EstudioLivre.org lists a huge wealth of FOSS multimedia tools. Finally, a lot of sites have free multimedia of different types under various free licenses. The Artistx site mentioned above has a long list of sites that have free 3D models, audio clips, video clips and other multimedia that is freely licensed. This can help you get started using some of the music programs listed here.

I decided to write this web article in two parts. This week I will start the discussion with programs in graphics and animation, and audio. Next week, I'll cover video, web publishing, and advanced topics such as format converters and live editing. In reality, it is still impossible to do justice to all of the programs and efforts in the FOSS multimedia space, but these two articles will hopefully inspire you to do more investigation yourself.

Graphics and Animation


One of the first “end user” programs to attract my attention was GIMP.  An “image manipulation and paint program,” GIMP can handle a wide range of input formats such as GIF, JPEG, and PNG. I first saw GIMP about the time that Larry Ewing used GIMP to create “Tux,” the penguin mascot for the Linux kernel. While GIMP was impressive even then, a complete re-write of it (allowing the utilization of plug-ins) made GIMP take off, and today GIMP is considered the tool for bit-map digital graphics. GIMP works on many different platforms and is especially useful for doing in-depth photo retouching, image authoring and image composition. While GIMP is not know for animation, simple animated gifs and other animations can be made with GIMP using different layers to allow for the movement. I use GIMP to “recover” otherwise damaged photographs, including old photographs that I scan in and electronically clean up. The use of GIMP allowed my father to see clearly what his grandfather actually looked like, and my mother to have a good picture of her grandmother.

One use for GIMP is in teaching composition to students learning photography. Usually composition is taught using digital cameras instead of film because of the cost savings associated with electronic media. However, Adobe's Photoshop is an expensive proposition for students to purchase. GIMP, being free of cost, allows students to learn composition and electronic effect treatment without incurring either the license cost or the stain of “software piracy.”


Inkscape is a program for creating scalable 2D vector graphics. Inkscape accepts a wide variety of input file types and uses SVG, a W3C XML format standard for 2D vector graphics, as its native format. With Inkscape you can make all sorts of scalable drawings and posters. I use Inkscape to title the slides of my videos.  Inkscape is also very useful in creating icons, splashscreens website art and other graphical items that may have to “grow and shrink” without losing perspective. While Inkscape can store its results in a wide variety of formats to be compatible with other programs, its native format of SVG will be very useful due to the upcoming HTML5 standard.


Hugin is a program for creating panoramic images. I take lots of pictures I would like to “stitch together” to make a panorama, and Hugin does this nicely. Again, Hugin takes a little learning and pre-planning to use, but the results are worth it.


Synfig is a powerful multiplatform 2D animation program. It features motion between layers, distortion effects, color correction, and tabular floating point calculation for image processing.


Blender is a very powerful tool for creating 3D environments, images, backgrounds, animations and games.  Also interesting is the Blender Foundation's focus on creating “open” movies, such as “Elephant Dream” and “Big Buck Bunny,” and allowing people to change them by licensing the intermediate data files under Creative Commons licensing. In 2008, the Blender Foundation created a computer game called “Yo Frankie!” which runs on a variety of different operating systems. And, another use of Blender is in creating 3D “walkthroughs” for architectural studies.


Wings3D is a somewhat simpler tool than Blender for creating 3D objects, and does not create animations, but is still very powerful

Audio Players

xmms and Audacious

Want to listen to music? FOSS has a wide range of music players, from the simple to the highly sophisticated. Once upon a time, I found a little music player called “xmms.” It did everything I wanted a music player to do at the time, and while it was patterned after Winamp, it was written from scratch by Mikael and Peter Alm. A very belated “thank you” to these two gentlemen! Like a lot of other projects in FOSS, it has morphed and spun off other “simple” audio player projects such as Audacious. Not that Audacious is “simple.” But as a clean, easy-to-use interface goes, even my mom and pop could use Audacious.


Mixxx, on the other hand, is a “not so simple” audio player, but my mom and pop never expressed an interest in being a “DJ." If mom and pop did want to test those waters, they could mix streams of different formats such as MP3, OGG, WAVE and FLACC with Mixxx. They could even make their digital recordings sound like vinyl (shades of 1968!). Mixxx can handle multiple sound cards and various MIDI controllers. It would allow mom and pop to capture and play back multichannel sound, such as their son singing in the shower.

Media Players

We move on from audio players to media players where we encounter VLC. VLC claims to “play everything. It handles DVDS, (S)VCDs, Audio CDs, web streams, TV cards and much more, including E=every codec I have ever known. And, it runs across multiple operating systems.

Mplayer and Gnome's Totem Movie Player are two other media players.

Audio Capture and Editing

Some of programs I've discussed have audio capture of some type. But if you are going to do real audio capture, editing and mixing, you probably want to use a more specialized program.

Audacity is my long-standing favorite for capturing and editing audio. For me, it is the right combination of “easy to use” and “power.” Audacity imports and exports all the formats that I need, and I can edit those sound files to remove parts I do not want or “glue together” pieces of audio. Sound too loud or a bit too soft? You can easily adjust that too. Audacity works across all major platforms.

Nyquist is a language based on LISP that was intended to be used for complete audio synthesis and analysis. A subset of this language allows the writing of plug-ins for Audacity that do not need to be compiled and can be written with a simple text editor.

If you do not need Microsoft Windows support for your music editing (and who does?) but want a kick-ass editor, try Ardour, a user interface that is a bit more complex than Audacity, in my opinion. But if you can't do what you want to do with Ardour in the way of audio editing, then you are rare indeed.

Summary, Part One

Hopefully you will download one of the distributions listed above, run it live and try out some of the applications I have listed here. Then we can continue investigating the FOSS multimedia world by looking closer at video and publishing multimedia works.

Click Here!