**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.

  1. 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.
  2. 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

  3. 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.
  4. 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.
  5. 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.
  6. With the help of Slackermedia, build your Slackware GNU Linux system according to the requirements you have specified in your list.
  7. 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.