**This is an old revision of the document!**
Multimedia Workflow on GNU Linux
Whilst you wait for the dependencies to compile and install, you may as well read about workflows on open source.
Slackermedia is a blank canvas. There is not one “right” way to create your Slackermedia system. While Slackermedia does divide packages into broad sets, there is no pre-set that says “install this if you want to make music” or “install this if you want to make videos” and so on. You need to know what you want to do, and how you intend to do it, before building your system.
In other words, this chapter contains a bunch of advice, which, as the cliche goes, is the one free thing in this world that no one really wants. You don't really want to read this chapter; you want to build Slackermedia. However, unless you've got experience as a production co-ordinator, this chapter will probably do you some good. Think of it as the green vegetables of Slackermedia and give it a read not because it's all that good, but because it's good for you.
What is a Workflow?
Different disciplines have different methods of creating content, and different people work in unique ways. However, there are common elements from any production to another, and the basic methodology of getting a production from idea to finished product is called the “workflow”.
The term “workflow” refers to the entire process of production, not just what happens in the computer system being used on the project. However, since so much of modern production happens on a computer, the computer workflow is a often a determining factor in how the rest of the production will happen. It is important, therefore, to understand certain unique aspects of the Free Software workflow.
Monolithic vs Modular
Much of the GNU workflow is defined by its inherent modularity. This is very different than the popular tendency to consolidate broad functionality into one “one-stop shop” application. They are two different philosophies that are not really exclusive of one another; it makes sense to keep different tasks confined to specialized applications because this divides work among many applications and makes troubleshooting much easier, but it also makes sense to have an application designed to a specific goal to also include capabilities to complete all the steps required to achieve that goal.
You may be used to the popular mega-applications that provide methods for everything in a perceived workflow, and you may see the logic in that kind of design, but consider the two approaches carefully:
Monolithic
The Video Editor
You are an editor who has footage on harddrives delivered to you each week. You have no deck, camera, or other capture device and you will probably never need to capture footage into your non-linear editing solution. Why then does your NLE of choice feature eight different ways to capture footage but no way to do something simple like color code the video regions in your timeline, and no capability to understand divx or wmv or flv, much less xvid or theora?
The Photographer
You are a photographer who requires a digital darkroom for re-touching. You do not need watercolor emulation in your brushes, you do not need to be able to open images from x-ray machines, you do not even need typesetting. Why does your bloatware digital darkroom application feature all of this and more in the main application when it could instead be included as stand-alone plugins or insertable plug-ins for those who do need these kinds of features?
The Graphic Designer
You are a graphic designer working on websites, promotional materials, invitations, logos, and any other job you can get. Your needs are diverse and unpredictable. You are trying to choose between a few popular software titles but find that they are all major investments both in terms of money and their learning curve. While they all seem to do the same thing, it also seems that one specializes in photography, another specializes in materials emulation, another in design layout, and so on; you need a little of it all, but you want each part to be done well.
Modular
The Slackened Video Editor
You're a video editor who gets footage delivered to them on harddrives and will never need to capture footage. You find kdenlive, an application that edits video without enforcing logging, organizing, and capturing footage. It's sleek and fast, and even has a plug-in architecture for effects that you may or may not use (it's up to you!). It also doesn't ship with 20gb of pre-fabricated motion graphic effects that you'll never use, but you know that there's blender or even Libre Office for that. You like that you're free to use ffmpeg or dvgrab for importing footage if you need to, or you can fall back on the user-friendly GUI of kdenlive if needed.
The Slackened Photographer
You're a photographer with simple digital darkroom needs. You've taken the plunge and switched to GNU Linux, opting for Slackware with the Slackermedia tutorials helping you set it up. You find that darktable or digiKam handles your digital darkroom needs and even allows you to upload instantly to a wide variety of sites, so you can deliver proofs to your clients quickly and easily, regardless of what vendor-specific sphere they happen to be associated with. It's lightweight, task-specific, and it doesn't try to manage your files for you with over-complex database backends that separate you from your data. It also lets you do minor retouching, but knows that for serious retouching and compositing, you'll simply open the picture in an external image manipulation application. Because it it is designed to integrate with the KDE software suite, digiKam's interface is familiar and easy to use.
The Slacker Graphic Designer
You're a graphic designer with diverse and unpredictable needs, depending on the job you've managed to pick up. You find that on GNU Linux, the applications are smaller and less feature-rich, and you like this. When you need paint-brush emulation, you launch Krita and plug in your graphics tablet and create the textures you require. You bring that layer into the GNU Image Manipulation Program and do the integration of photographs with the textures from Krita. You bring a low-res version of that into Inkscape for elaborate vector-based layers and fanciful type-setting. You re-integrate all of that with GIMP, as needed. Depending on what the graphic will be used for, you pre-flight in Scribus or simply export straight from GIMP and upload to the client's server right from your Dolphin file manager. On a rare occasion, you find yourself in need of importing some rare formats that even GIMP will not recognize, but you find a plethora of small applications on sourceforge.net or Slackbuilds.org that will import these formats and convert them to something the other applications in your workflow will understand.
As you can see, there are many times when the modular approach makes more sense than the monolithic. There is an immediate convenience sometimes with the monolithic; depending on how well-structured your workflow is, you may find yourself confounded when you suddenly have to find a new application to do a task that you'd never had to do before. While in a monolithic application, the solution to that may be found in a sub-menu of the sub-menu of a menu, in the modular approach you may be faced with no hint or indication of where to turn. However, these are mere growing pains that are eliminated once you've found the solution; they tend to happen only once: the first time you are faced with the issue that requires a new solution. And in the mean time, you have no need to deal with bloated software with more menus and features than you can ever hope to either understand or use.
What is a Workflow?
It is important that you approach your workflow carefully and deliberately when setting up your multimedia studio. Simply throwing together a collection of applications that are tagged as “multimedia” or “graphics” or “audio” is not the correct solution in GNU Linux any more than it is on blackbox vendor software. The artist knows best what s/he needs from the computer, so the artist should determine what s/he must have on the computer in order to get the work done.
If you have never served as a producer (or in software terms, “project manager”) before, then this concept may be new to you, so we will review it here.
- List all of the major tasks you are expecting to do on the computer system. Use general, broad terms here, such as “edit video”, “retouch photos”, “motion graphics”, “clean up audio”, and so on.
- Do a second pass of this list for the specific steps involved in each major task you wrote down for the first step. For example, a video editor might list:
Edit Video
Log footage
Review all footage with video player with variable speed control and spreadsheet for notes
Capture
Capture video from tape or drive
Organize
Organize by scene number and take number
Edit
Video editor with sync sound and color correction tools
Print
Export full quality for director's approval
Edit
Re-edit, rinse and repeat
Motion Graphics
Spec
Get initial sketches from director
Create
Create graphic sources with graphic applications
Animate
Do first draft of motion graphics
Render, Export
Export low res version for approval
Render, Deliver
Do full quality render, deliver for integrate into final edit
- Now do a third pass of your list and assign known software applications to each task. If you are familiar with only the mass-market blackbox applications, then list these. If you know some Free Software solutions as well, then list those. If you are uncertain what application addresses a list item, then do not make an assumption or guess; list it as something that requires more research.
- Do some research to learn what application will address each list item. Make sure that everything you know you need to do can effectively be achieved with what is available to you. Be prepared for many different applications to surface in the Free Software world; due to the modular nature of its design, it's only natural that there will be a software application just capture video from a deck, or a separate application from your graphic design application just to change color space and compression settings, and so on.
- Look for ways to automate your workflow. If there are repetitive tasks that you may have had to do one-by-one in your old non-Free workflow, you should look at these tasks in a new light. Quite possibly there will be scripts that you can write (or find someone to help you write) that can be run on your Free Software system to automatically perform adjustments or processing without any intervention from you.
- With the help of Slackermedia, build your Slackware GNU Linux system according to the requirements you have specified in your list.
- Gather raw material. This is a step that is easy to overlook in Free Software because it is not often addressed, but the fact that many of the vendors providing the non-Free applications package gigabytes of extra content for you to use in your work means that whenever the artist needs something random like a cursive font or a paint brush shaped like an oak leaf or a bear paw print, or a music loop of South American drums, or a high-res sand-texture, and so on, the artist has it available to them within a few clicks.
Note
Free Software lacks the luxury of having gigabytes of licensed content to ship along with their software. Again, this is a double-edged sword that has the benefits of cutting download size by orders of magnitude, and also fights the pre-fabricated feel of art produced on Free Software as opposed to the off-the-shelf solutions, but means that when you do need some extra raw materials, you must go out and find the content yourself.
Sites like flickr.com , freesound.org , and openclipart.org are veritable bastions of free culture, offering Creative Commons content for easy download.
To further address this need, the Slackermedia project itself gathered supporters from around the globe to do an initial crawl of the Internet to find free raw materials for artistic endeavor (such as fonts, clip art, sound banks, and so on). The content can be found as a torrent file on the Slackermedia.info website.
Sample Workflows
Only you know your specific needs, but sometimes it helps to get an idea of how other people work. Here are some sample workflows to get you going in the right direction:
Video Editing
Log footage
Use Dolphin and Mplayer to review and use Dolphin to organize and name your footage; this gives you the advantage of having filenames that match their content, regardless of what video editing application the clips are being used in.
Editing
Use Kdenlive for its robust editing features, transitions, effects, colour correction, and even basic compositing (chroma keying, etc).
Titling
For quality titles, use Blender for its ability to integrate 3d space into motion graphics and titling and overlays. Its learning curve might make it impractical for quick and basic titling. The animation program Synfig Studio will also do titles and effects, although a learning curve applies here as well. If your titling needs are basic, use GIMP, Inkscape, or even Libre Office to create high-quality .png or .tif files and import them as images into Kdenlive.
Audio Correction
For minor corrections (lips smacking, pop removal, plosive softening, etc), open a sound file in Audacity and correct the problems. Your changes will update automatically in Kdenlive.
Soundtrack, Soundmix
After you obtain picture lock, start the sound mix on either Ardour or Qtractor. To do this, export each individual track from Kdenlive and import them into the DAW of your choice. When the mix is finished, export a final mix and re-import that into Kdenlive for final output.
Visual Effects
Export scenes as image sequences and import them into Blender for some of the industry's most powerful compositing, particle emulation, 3d modeling, and other visual effects.
Final Render
Kdenlive offers uncompressed output in the form of huffYUV/PCM, as well as compressed output to all major formats (xvid, mp4, ogg theora, webm, h.264 via x264, and more). For customized compression schemes, use ffmpeg directly. Always export an uncompressed final version of your work first. View it for quality assurance. Upon approval, label it Goldmaster and then generate compressed versions as needed.
Audio Production
DAW
Use Ardour or Qtractor or Rosegarden as the main hub of the audio production. Note If you're doing basic audio editing, then Audacity may be all you really need.
Waveform Editing
Use Audacity, which specializes in waveform editing, for cleaning audio, removing clicks and pops and plosives, and so on. If you edit the original file then the changes you make in Audacity will update automatically in your DAW.
Effects
Effect packages include the Steve Harris LADSPA collection, the Calf suite, and Jamin. The Steve Harris set act as plugins to your DAW, while Calf can be used as plugins or as an external application, and Jamin is external only.
Synths
Any DSSI software synth can be used as a plugin for your DAW, and synths like amSynth and QSynth are external synths that can be routed into your DAW. There are many soft synths available.
Drum Machines
The premier dedicated drum machine on Linux is Hydrogen, which can be used as an external application routed into your DAW.
Samplers
Linux Sampler is the primary sampling engine for Linux and can be routed into your DAW.
Mastering
Once your sound has been mixed to near-perfection, plug Jamin into your master output channel. With Jamin's powerful compressor, you can adjust final output levels. With its customizable EQ, you can ensure optimal sound for different types of speakers. Once you're finished mastering, export your work as final, uncompressed gold masters.
Graphic Design and Print
Layout
Use Scribus as the central hub for bringing together the different elements in a layout. Scribus is a powerful layout program, good for books, pamphlets, posters of any size, banners, single pages, album art, and anything else going out to CMYK printers. It is resolution-independent, can track and embed fonts and color swatches, produce reader and printer spreads, and much more.
Graphics
Use GIMP to create or adjust rasterized (bitmap) images. It's not, in spite of the cliché, a Photoshop clone; it has a language and structure all its own, but once it's learned it is a powerful imaging environment.
Illustration
Use Inkscape for vector-based graphics such as logos, illustration, sketches, or even page layout or over-all design, quick mock-ups, and much more. It can also embed or link to rasterized images, perform masks, and a number of advanced imaging functions that will tempt you to make it the center of your graphic production. Krita is also vector-based but focuses more on materials emulation, making is a powerful tool for trained illustrators. MyPaint lies somewhere between Inkscape and Krita, with a dynamic brush set that interacts nicely with tablets. Finally, the Gimp Paint Studio set of mods for GIMP will provide material emulation for GIMP, but as rasterized images only.
Conversion
For colorspace or format conversion, or batch processes that you repeat frequently in your workflow, the command line application Image Magick (or its variation Graphics Magick) is priceless. It can be complex but the website and the internet at large offer enough recipes and examples to make most common tasks trivial to learn.
Font Management
Font Matrix activates, deactivates, sorts, and previews your system's fonts.
Photography
Digital Darkroom
Professional photographers may use Digikam as a photograph manager and digital darkroom with the usual powerful set of features associated with most KDE applications. The Kipi plugin set adds to its features. And yes, it does RAW, too. For HDR photography, there is Luminance HDR (formerly qtpfsgui), which creates an HDR file from a set of images of the same subject taken at different exposures. Supports basic editing of images plus tonemapping.
Everything Else
See the Graphic Design list for tools relating to image re-touching, design, and presentation.
Web Design
Coding
Use GNU Emacs or vim as your text editor; both are popular coding environments and each have a variety of modes that will do everything from syntax highlighting to auto-completion and even rudimentary code validation. Kate is a more traditional text editor, with a visual list of open documents, syntax highlighting, organization of code blocks, and more.
Previewing
Between Firefox, Rekonq, and Chromium, there is little to be desired when test-driving website designs. Rekonq has a user-agent switcher built-in and the other two have user-agent plugins available. Install the Firebug addon for Firefox to analyze how browsers are rendering your code and to catch problems in your code's structure.
Graphics
See the Graphic Design list for tools when creating graphics for sites.
FTP
Konsole is a one-stop shop for everything you need to push your changes to the web server. With ssh and rsync, pushing your latest code can be done in a single command. ncftp is a traditional FTP client, featuring bookmarks for locations, usernames, and passwords. If you do not have ssh access to the server, this is the next best thing. If you prefer a GUI solution, try FileZilla, a simple and convenient FTP application. Or just use Dolphin, which seamlessly integrates with remote servers as easily as it does your own computer!
Version Control
Git, the version control system used for little projects like the Linux kernel, the KDE desktop, this book, and much more, can manage all of the changes you make to your codebase, and restore from old versions as needed. A powerful tool that is simply not even on the radar of any proprietary web coding solution.