posted on Sun 24 December 2017

we’re proud to finally announce the new feature release of darktable, 2.4.0!

the github release is here: https://github.com/darktable-org/darktable/releases/tag/release-2.4.0.

as always, please don’t use the autogenerated tarball provided by github, but only our tar.xz. the checksums are:

$ sha256sum darktable-2.4.0.tar.xz 9d37388aee79d5ada71062bbac3cda612a61d1a781f6320b784b27308f3a1878 darktable-2.4.0.tar.xz $ sha256sum darktable-2.4.0.dmg 70dcbec46c54f2006f2887b7ec1c9d748f9a726389d3b75cd5e081695e26394e darktable-2.4.0.dmg $ sha256sum darktable-2.4.0-win64.exe 5b7b00a0bed8ea0d5ac45b0a0668f1998ad396e4bc3b5791e7a17f7c70b90f7c darktable-2.4.0.exe

when updating from the currently stable 2.2.x series, please bear in mind that your edits will be preserved during this process, but it will not be possible to downgrade from 2.4 to 2.2.x any more.

Important note: to make sure that darktable can keep on supporting the raw file format for your camera, please read this post on how/what raw samples you can contribute to ensure that we have the full raw sample set for your camera under CC0 license!

The maintainership of the RawSpeed library was transferred to the darktable project. The work on code cleanup, hardening, modernization, simplification and testing is ongoing.

Almost 3 thousand commits to darktable+rawspeed since 2.2.0

273 pull requests handled

340+ issues closed

Updated user manual is coming soon™

Gource visualization of git log from 2.2.0 to right before 2.4.0:

Hell Froze Over

As you might have read on our news post we finally ported darktable to Windows and intend to support it in the future. At the moment it’s still lacking a few features (for example there is no printing support), has a few limitations (tethering requires special drivers to be installed) and comes with its own set of bugs ( TIFF import and export doesn’t support non- ASCII characters in file names). But overall we are confident that it’s quite usable already and hope you will enjoy it. A very special thanks goes to Peter Budai who finally convinced us to agree to the port and who did most of the work.

The Big Ones

A new module for haze removal

The local contrast module can now be pushed much further, it also got a new local laplacian mode

Add undo support for masks and more intelligent grouping of undo steps

Blending now allows to display individual channels using false colors

darktable now supports loading Fujifilm compressed RAFs

darktable now supports loading floating point HDR DNGs as written by HDRMERGE

DNGs as written by We also added channel specific blend modes for Lab and RGB color spaces

color spaces The base curve module allows for more control of the exposure fusion feature using the newly added bias slider

The tonecurve module now supports auto colour adjustment in RGB

Add absolute color input as an option to the color look up table module

A new X-Trans demosaicing algorithm, Frequency Domain Chroma, was implemented.

You can now choose from pre-defined scheduling profiles for OpenCL

Speaking of OpenCL, darktable now allows to force-use OpenCL for a specific pixelpipe

XMP sidecar files are no longer written to disk when the content didn’t actually change. That mostly helps with network storage and backup systems that use files’ time stamps

New Features And Changes

Show a dialog window that tells when locking the database/library failed

Don’t shade the whole region on the map when searching for a location. Instead just draw a border around it.

Also in map mode: Clear the search list and map indicators when resetting the search module.

With OsmGPSMap newer than version 1.1.0 (i.e., anything released after that OsmGPSMap version) the map will show copyright info.

Running jobs with a progressbar (mostly import and export) will show that progress bar ontop the window entry in your task bar – if the system supports it. It should work on GNOME , KDE and Windows at least.

, and Windows at least. Add bash like string replacement for variables (export, watermark, session settings)

Add a preferences option to ask before removing empty dirs

The “colorbalance” module got a lot faster, thanks to SSE optimized code

optimized code Make gradient sliders a little more colorful

Make PNG compression level used for exporting configurable

compression level used for exporting configurable On OSX , load single images from command line or via drag&drop in darkroom mode

, load single images from command line or via drag&drop in darkroom mode Add an option to omit the intermediate tag hierarchy in exported files and only add the last level

In the watermark module, sort the list of SVG files and omit the file extension

files and omit the file extension Support XYZ as a proofing profile

as a proofing profile Local contrast now got a new slider to set the midtone range

darktable got two new helper scripts (those are not installed by default, grab them from the sources) One to purge thumbnails that no longer have an associated image in the database, and a second script that uses inotify to watch a folder for new files to open them in a running darktable instance.

In the curve editors of base curve and tone curve you can now delete nodes with a right click and see coordinates of nodes while editing. Note that you can use keyboard modifiers ctrl and shift to change the precision of your changes

and to change the precision of your changes Creating a new instance of a module can now be done with a quick click of the middle mouse button on the multi-instance icon

New darktable installations on computers with more than 8 Gb of memory will now by default use half of that per module

Several background colors and the brush color are now configurable in the CSS

Some new cameras can bump the ISO level to insane highs. We try to follow as good as we can by no longer limiting it to 51200 in the GUI

level to insane highs. We try to follow as good as we can by no longer limiting it to 51200 in the Base curve and the highlights module now support multiple instances and use blending and masks

Having the 1 key toggle between 1 and 0 stars wasn’t very popular with many people. You can disable that extra feature and have it behave like the other rating shortcuts now

key toggle between 1 and 0 stars wasn’t very popular with many people. You can disable that extra feature and have it behave like the other rating shortcuts now You can decide if you want to be asked before resetting the history stacks of images from the lighttable

The grain module was slightly changed to have a more pleasing, photographic-paper like appearance

Using the color look up table module you can now convert your images to monochrome, honoring the Helmholtz-Kohlrausch effect

Support basic import of Lightroom 7 settings

Change the styling of insensitive bauhaus widgets

Don’t hide the mode combobox in the exposure module, just disable it

Read primaries and whitepoint from .hdr files and default to those as the input color profile

Some more small improvements were made

Bugfixes

Fix the problem with rating images by accident when moving the mouse while typing an image size in the export module

Fix several oddities in folder and tag mode of the collect module

Print mode’s color profile settings no longer interact with the export module

Update the style lists when importing a style

Fix some bugs with multiple module instances used in a style

On OSX only the main window should be fullscreen, not the popups

only the main window should be fullscreen, not the popups Some speedups with VERY big libraries or having A LOT OF tags

big libraries or having A tags Significantly speed up tagging many images

Fix searching locations using OpenStreetMap

Fix partial copies of large files in “import from camera”

Fix a crash in the import dialog when using Lua to add widgets there

Fix some false-positive warnings about another running darktable instance and it having locked the databases

No longer switch to the favourite modules group when duplicating one of its modules

Fix loading of XYZ files

files Fix Lab export when the profile was set from the lighttable

Create temporary snapshot files with mode 0600 to stop other people looking at them

Fix several bugs with Wayland. However, there are still issues, so darktable will prefer XWayland

Google deprecated the Picasa Web API so it’s no longer possible to create G+ albums

so it’s no longer possible to create G+ albums Fix the default for sliders with target not being “red” in the channel mixer

Fix the removal of directories

Make the escape key cancel history dialogs

Block keyboard accels when editing camera controls

Properly delete XMP sidecars

sidecars Make sure that the rating set in darktable is used for the exported file, not something set inside the raw file

Don’t re-write all XMP files when detaching a tag

files when detaching a tag Sync XMPs when a tag is removed from the database

Sync XMPs after a tag is attached/detached via the Lua API

Bail out of darktable-cli when the XMP file is not readable

file is not readable Show ratings on zoomable lighttable without a delay

Rely on CUPS color management when printing without configuring any color profile in darktable

color management when printing without configuring any color profile in darktable Fix spurious segfault in local contrast

Make calls to exiv2’s readMetadata thread safe to not crash randomly

Properly read Lightroom XMPs on systems with , as the decimal separator

as the decimal separator Fix setting the PNG bit depth from the gui

bit depth from the gui Many more bugs got fixed

Lua

darktable now uses Lua 5.3. The bundled copy got updated accordingly

Add dt.print_log. It’s like print_error but without the ERROR prefix

prefix Reorder callback parameters for intermediate export image: add the actual image to the parameters of the event

Call lua post-import-image event synchronously

Add darktable.configuration.running_os to detect the OS darktable is running on

darktable is running on New widget type: section_label, adds a label which looks like a section change

Changed Dependencies

CMake 3.1 is now required

In order to compile darktable you now need at least gcc-5.0+/clang-3.4+

ZLIB is now required for the DNG Deflate compressed raw support

is now required for the Deflate compressed raw support darktable now uses Lua 5.3

Camera support, compared to 2.2.0

Warning: support for Nikon NEF ‘lossy after split’ raws was unintentionally broken due to the lack of such samples. Please see this post for more details. If you have affected raws, please contribute samples!

Base Support

Canon EOS 200D

200D Canon EOS Kiss X9

Kiss X9 Canon EOS Rebel SL2

Rebel Canon EOS 6D Mark II (sRaw1, sRaw2)

6D Mark (sRaw1, sRaw2) Canon EOS 77D

77D Canon EOS 9000D

9000D Canon EOS 800D

800D Canon EOS Kiss X9i

Kiss X9i Canon EOS Rebel T7i

Rebel T7i Canon EOS M100

M100 Canon EOS M5

M5 Canon EOS M6

M6 Canon PowerShot G9 X Mark II

Canon PowerShot SX40 HS (dng)

(dng) Fujifilm GFX 50S (compressed)

50S (compressed) Fujifilm X-A3

Fujifilm X- E2S

Fujifilm X-E3 (compressed)

Fujifilm X-Pro2 (compressed)

Fujifilm X-T2 (compressed)

Fujifilm X-T20 (compressed)

Fujifilm X100F (compressed)

(compressed) GITUP GIT2P (chdk-a, chdk-b)

(chdk-a, chdk-b) Kodak EasyShare Z980

LG D855 (dng)

D855 (dng) LG H815 (dng)

H815 (dng) LG Nexus 5X (dng)

Nexus 5X (dng) LG US996 (dng)

(dng) LG VS995 (dng)

(dng) Leica D- LUX (Typ 109) (4:3, 3:2, 16:9, 1:1)

(Typ 109) (4:3, 3:2, 16:9, 1:1) Leica X2 (dng)

Nikon COOLPIX B700 (12bit-uncompressed)

B700 (12bit-uncompressed) Nikon D500 (14bit-uncompressed, 12bit-uncompressed)

Nikon D5600 (12bit-compressed, 12bit-uncompressed, 14bit-compressed, 14bit-uncompressed)

Nikon D7500 (12bit-compressed, 14bit-compressed)

Nikon D850 (12bit-compressed, 12bit-uncompressed, 14bit-compressed, 14bit-uncompressed)

Nikon LS -5000 (dng)

-5000 (dng) Nokia Lumia 1020 (dng)

Olympus E-M10 Mark III

Olympus E-M1MarkII

Olympus TG -5

-5 Panasonic DC - FZ82 (4:3)

- (4:3) Panasonic DMC - FZ80 (4:3)

- (4:3) Panasonic DMC - FZ85 (4:3)

- (4:3) Panasonic DC - GH5 (4:3)

- (4:3) Panasonic DC - FZ91 (4:3)

- (4:3) Panasonic DC - FZ92 (4:3)

- (4:3) Panasonic DC - FZ93 (4:3)

- (4:3) Panasonic DC - TZ90 (4:3)

- (4:3) Panasonic DC - ZS70 (4:3)

- (4:3) Panasonic DMC - FZ330 (4:3)

- (4:3) Panasonic DMC - GF6 (16:9, 3:2, 1:1)

- (16:9, 3:2, 1:1) Panasonic DMC - TZ61 (4:3, 3:2, 1:1, 16:9)

- (4:3, 3:2, 1:1, 16:9) Panasonic DMC - ZS40 (4:3, 3:2, 1:1, 16:9)

- (4:3, 3:2, 1:1, 16:9) Panasonic DMC - TZ80 (4:3)

- (4:3) Panasonic DMC - TZ81 (4:3)

- (4:3) Panasonic DMC - TZ85 (4:3)

- (4:3) Panasonic DMC - ZS60 (4:3)

- (4:3) Pentax K-5 (dng)

Pentax K-r (dng)

Pentax K10D (dng)

(dng) Phase One IQ140

Samsung G920F

Samsung G935F

Samsung GX10

Sony ILCE -6500

-6500 Sony ILCE - 7RM3

- Sony ILCE -9

White Balance Presets

Canon EOS 6D Mark II

6D Mark Fujifilm X-T20

Fujifilm X100F

Nikon 1 AW1

Nikon Coolpix A

Panasonic DMC - GX80

- Panasonic DMC - GX85

- Panasonic DMC - TZ100

- Panasonic DMC - TZ101

- Panasonic DMC - TZ110

- Panasonic DMC - ZS110

- Pentax K-3 II

Noise Profiles

Canon EOS 1300D

1300D Canon EOS Kiss X80

Kiss X80 Canon EOS Rebel T6

Rebel T6 Canon EOS 5D Mark IV

5D Mark Canon EOS 6D Mark II

6D Mark Canon EOS M5

M5 Canon PowerShot G16

Canon PowerShot G3 X

Canon PowerShot G7 X Mark II

Canon PowerShot G9 X Mark II

Fujifilm X-M1

Fujifilm X-Pro1

Fujifilm X-Pro2

Fujifilm X-T20

Leica X2

Nikon Coolpix A

Nikon D2X

Nikon D3000

Nikon D3400

Nikon D4

Nikon D500

Olympus E-M1MarkII

Olympus E-P5

Panasonic DMC - FZ200

- Panasonic DMC - FZ300

- Panasonic DMC -G7

-G7 Panasonic DMC -G70

-G70 Panasonic DMC -G8

-G8 Panasonic DMC -G80

-G80 Panasonic DMC -G81

-G81 Panasonic DMC -G85

-G85 Panasonic DMC - GX80

- Panasonic DMC - GX85

- Panasonic DMC - LX100

- Panasonic DMC - TZ100

- Panasonic DMC - TZ101

- Panasonic DMC - TZ110

- Panasonic DMC - ZS110

- Pentax K-70

Sony DSC - RX100M5

- Sony ILCA -68

-68 Sony ILCE -5000

-5000 Sony ILCE -6500

-6500 Sony ILCE - 7RM3

Translations