Darktable for Linux review

Tonight, Matthew, I'm going to be Ken Rockwell!
Nikon D2H, Nikon 18-55mm II, raw file processed with Darktable. Bigger and on black in the gallery.

Versions tested

I started writing this review using version 1.0.4, and moved on to 1.0.5, which isn't much different. I don't doubt that it'll improve dramatically over time (or, alternatively, get worse as RawTherapee did). I may continue updating this piece as later versions come out, but if you're reading this a few months or years down the line just be aware that it doesn't necessarily reflect the current state of Darktable.

(Since writing the above paragraph, Darktable has improved dramatically. I've had to wipe a whole ton of complaints I had about it from this review; after I whined about stuff like the buttons to enable/disable plugins being icons without text, someone fixed it a couple of months later! They even fixed the bug that made Darktable crash with NEF files from 1999's Nikon D1. Open source is awesome!!)

System requirements

I'm running it on a seven-year-old 3ghz Pentium 4 HT with 4 gigabytes of RAM. It works just fine. The only absolute requirement is that your processor supports SSE2 instructions, which is all Intel processors since the Pentium 4, including crappy Atom processors (don't try this at home).

Of course, the more RAM and processor horsepower you have, the better.

Darktable doesn't run on Windows at all, for now. It allegedly works on Macs.

Camera support

Darktable should support raw files from just about every camera, from 1999's Nikon D1 on up. As with commercial software, it won't necessarily support it with the very latest cameras until they've had a chance to catch up, unless your camera supports DNG. Blame the camera manufacturers for being stupid, not Darktable.

"Enhanced support", which is to say with custom colour matrices to match the colour rendition of the camera, is only available for a few cameras. I expect this to grow in future. Don't worry about the enhanced support too much; just play with the colour until you get the results you want. This is why you're shooting raw.

Politeness

Darktable is very well-behaved. It doesn't insist that you use it to import and manage your entire photo library. It fits just fine into your current workflow, which is very important to me; it'll happily work on a single folder, or even on a single raw file.

This is good on several counts. First, it makes it much easier and faster to get started with it (a big deal for those of us with tens or hundreds of thousands of photographs to import). Secondly, some of us are stuck in our ways when it comes to our methods of organisation and our workflow and just hate it when software wants to take over every single aspect of it.

Better yet, when you do import images into Darktable's library it leaves them in place, rather than making a copy of it. It even keeps a log of the changes you have made in a plain-text file in the same directory as the image; you can delete Darktable's photo library file (library.db) and opening that image afterwards will still open it with the filters you applied to it.

I can't overstate how much I like all of this.

Exif

Darktable preserves all significant Exif data when exporting to JPEG. It adds a few of its own.

Lesser raw processors, including several commercial ones, throw away Exif fields which they don't care about (like the number of shutter actuations on Nikon cameras). Said raw processors are awful for doing so.

For those that really really care, I've done a fuller analysis of it on a separate page.

Stability

Darktable has never crashed on me, other than when trying to read files from a Nikon D1 from 1999 (this was bug #8857). My standards haven't been worn down by years of dealing with crappy Windows and Mac software crashing routinely, so I won't pitch this as a feature, but it's still nice.

Documentation

The documentation is comprehensive enough. I picked up on numerous grammatical mistakes, and I'm a little bit of a bigot about that sort of thing.

Image quality

Super! Files from really old, crappy cameras look fantastic with careful processing.

Autumn Path
Autumn path, shot with a Canon EOS D30, converted with Darktable.

Colour and exposure accuracy

This is not about how accurate one can get the colours; it's about how closely they match an in-camera JPEG. This tests how well "camera" white balance works.

Reading a file from my ancient Nikon D2H, the results aren't too hot; they actually look worse than the camera-original JPEG.

Building, camera-original

I shot the above with a "Cloudy" white balance to warm the colours; this is how it looked as a JPEG straight from the camera. (It's the same building as the one on the top of this page, on a different day.)

Building, via Darktable, after import

The above is what the NEF file shot at exactly the same time with the same camera settings looks like. To me, it looks terrible; not only is it lighter, there's a distinct green shift which looks yucky.

I'm not sure if enhanced camera support would fix this problem. That's if it really is a problem. Most people shoot raw precisely because they don't mind spending a while messing with files to get the colour right. I'm a bit different, and weird. I like using white balance controls to get the colours more-or-less right in-camera even if I'm shooting raw, then tweaking them later.

Regardless, I don't blame Darktable for this; I blame manufacturers who do not document their cameras sufficiently for software to work properly with it.

After some tweaks, I got it to look like this, which is much better:

Building, via Darktable, tweaked

More at white balance below.

Filters

Here's some assorted observations from using some of Darktable's filters. I'll add to these as time goes on, no doubt.

Graduated ND filter

This works great, but acts weird if you rotate the image through 90°. If you do that, then apply the ND filter, it'll work from left-to-right, rather than top-to-bottom.

This doesn't happen if you use "Orientation", rather than "Rotation", to rotate your image (see below. I don't think this is a problem, just something to watch for.

The bigger problem here is that if you use this tool to do a slight correction to level a horizon, you'll find that the ND grad tool will work at a slight angle from your corrected horizon. You can fix this by adjusting "Rotation" of the ND grad filter to match the rotation of the image. It doesn't do the right thing by default (which is to match the rotation of the ND grad to the rotation of the image), so I consider this a bug.

Monochrome

The monochrome filter widget is wonderfully simple; click on a colour to emulate a coloured filter of that kind. It's much easier than manually screwing around with channel mixer sliders.

TIP: If you want to increase the contrast of your photographs, use this filter, then set "blend mode" to "softlight", and play with the opacity until it looks right.

Grain

Grain is very well done. When combined with the monochrome filter it really does look like it was shot on black-and-white film.

Rotation

There's no fast way to rotate an image by 90 degrees with the rotation tool. This feature exists, in the orientation plugin. I can't help thinking these could be combined into a single tool.

User interface

The interface makes sense, most of the time.

The font is too damned small for my tastes. Maybe that's out of necessity, but I still think it's awful. They've even switched the font on the "Open" dialog box to be small and bold, which makes no sense. You can fix it for the main user interface (but, curiously, not the "Open" dialog) by editing /usr/share/darktable/darktable.gtkrc and putting a "#" at the start of all lines containing "font_name", which will reset it to your default GTK+ font.

Scrolling through the list of filters on the right hand side with your mouse wheel works, temporarily, until your mouse pointer lands on top of a slider widget, and then it will cause you to adjust that slider widget instead. So, scrolling quickly down the list requires you positioning your cursor over the scrollbar; I'd like it if the scrollbar was a bit wider.

The "Import" options linger around the left hand side in the "Darkroom" view, even though they're not clickable in the "Darkroom" view. This looks like a GTK rendering bug, because if I switch to another workspace and back, this is replaced with a thumbnail of the image you're working on.

Tricks

Darktable can do tethered shooting, wherein you attach your computer to your camera, and control your camera from your computer.

It can also read files directly from your camera. I prefer to use a £5 CF card reader; it's much faster than downloading files via your camera.

I don't care about either of these things, and I haven't tried them.

White balance

It doesn't have white balance presets (only camera, spot and passthrough) when reading files from some really old Nikon cameras. It does have all the expected presets when I open a DNG file from a Leica M9 and NEF files from a Nikon D70. It does have all the presets when reading files from 1999's Nikon D1. How about that!

I'd like some more predefined white balance settings for cameras that are missing them. As I don't shoot in a studio I almost never have a neutral-coloured object in my shots. What's more, even if I did, I don't have any interest in colour accuracy, so the "spot" setting is of very little use to me.

"Passthrough" looks awful all the time. I'm not sure what this setting does, as it's not documented.

More minor annoyances

Darktable doesn't preserve the original file names by default; if you have DSC_1594.NEF, it'll still export it as img_0001.jpg if it's the first file from a "roll" to be converted, img_0002.jpg if it's the second, etc. This can be changed so it preserves the original file names, by changing the filename under "target storage" to $(FILE_DIRECTORY)/darktable_exported/$(FILE_NAME) and Darktable will use that by default from then on.

It embeds some custom sRGB colour profile into the image, called "Darktable sRGB", which it really should not do if you've told to save as plain old sRGB. Opening it in GIMP then saving it with no changes strips the profile.

Everything in the user interface is in lower case. Good job, LiveJournal users from 2003: this makes it less readable.

Summary

Try it. If you don't like it you get your money back.

As for me, I love it! Darktable is probably the best raw converter there is for Linux, and undoubtedly the best in open source. I've picked on it a lot because some stuff bugs me, but remember I could use commercial software and find stuff that bugs me about it too.

Wishlist

I love Darktable, but here's some things I wish it would do:

As open-source software that I got for free and that its developers work on for free, I don't expect the developers to implement any of this. It'd be really nice if they did, though.