Max quality and darktable
The export dialog's second engine, Max quality, hands every take to darktable, a free open-source RAW developer, which renders a RAW file from the raw data itself. It is slower than Fast and it has firm limits. This page is for the moment you reach for it.
What it is for
Fast renders through Core Image and carries every develop setting. Max quality runs darktable-cli, darktable's command-line program, on each take's original file. The note under the row says what you get: darktable-cli — the finest raw detail, but bakes from the raw file; slower, and only RAW frames gain.
Every take goes to darktable, whatever kind of file it is. A JPEG, HEIC or TIFF original is already processed, so darktable only decodes it, resizes it and writes it out again, and it gains nothing.
The estimate under each engine is the time for the whole batch, reckoned at 0.6 seconds a frame for Fast and 4 seconds a frame for Max quality: twelve takes read ≈7s under Fast and ≈48s under Max quality. Past a minute and a half the estimate is given in minutes, such as ≈2min.
Installing darktable
Vixlo does not ship darktable. While it is not on this Mac, the Max quality row is dimmed, reads Needs darktable, the external RAW engine — Install… and cannot be chosen. Click it and darktable's own download page opens in your browser. Fast stays selected, and the note under the engines goes on describing Fast.
Vixlo looks for darktable-cli in three places: Homebrew's folder at /opt/homebrew/bin or /usr/local/bin, and inside /Applications/darktable.app. Install it either way, then open the export dialog again: the row checks on every opening, and there is nothing to restart.
Vixlo gives darktable two minutes per frame. A frame that takes longer is recorded in the manifest as failed and the run moves on, rather than hanging the whole export.
What it refuses
Max quality cannot apply develop settings. darktable is a separate program, and Vixlo has no way to hand it a film simulation, a look or an edit. So if any take carries one, the whole export is refused before anything renders, and the dialog reads Couldn't export:
One pick has develop settings (a film simulation, look or edit) applied, and Max quality can't apply them — it would silently deliver ungraded files. Choose Fast instead, or reset those frames to their original look first. Nothing was rendered.
That is the sentence for one developed take. With more, it begins with the count, such as 3 picks have develop settings. The app says pick where this guide says take.
This is the rule, not a fault. The alternative is a folder that looks delivered with some files graded and others not. For a developed shoot, choose Fast. An export always takes every take in the library, so Max quality runs only when none of them carries develop settings: every developed take would first have to be reset to its original look, or no longer be marked Take.
The dialog keeps the engine you chose, with the rest of its settings, from one opening to the next while you stay on the same page. Move between the cull page and the edit page and it starts again with Fast selected.
If you chose Max quality and darktable has since been removed, the row dims as above and the note under the engines reads darktable-cli isn't installed, so Max quality can't run — install it with `brew install --cask darktable`, or use Fast. Press Export to folder… and choose a folder anyway, and the export is refused before anything renders: darktable-cli isn't installed, so Max quality can't run. Install it with `brew install --cask darktable`, or choose Fast (Core Image) instead — nothing was rendered.
What it carries, and what it does not
| Max quality | |
|---|---|
| Format, quality, and the three sizes Full, 4096 and 2048 | Yes. A TIFF is written at 16 bits per channel |
| Rename and Subfolder patterns | Yes. Vixlo builds the names before darktable sees them |
| Camera data, and your Creator and Copyright lines | Yes, the same as Fast |
The .xmp sidecar beside each file, and the manifest | Yes, the same as Fast |
| Colour space | No. The choice is not passed to darktable, which writes in its own default colour space |
| A watermark | No. The watermark is drawn by the Fast engine only |
| A short-edge, megapixel or percent size from a hand-written preset | No. The frame is delivered at its own size, as with Full |
| Any other long-edge size from a hand-written preset | Rounded to one it knows: 2048 or less becomes 2048, up to 4096 becomes 4096, anything larger becomes Full |
| Develop settings | No, and the run is refused rather than delivered without them |
Exporting again into the same folder
With Rename and Subfolder left empty, this engine marks each file it writes, in the file's camera data, with which frame it came from and how it was rendered. Export the same takes into the same folder again and a file rendered the same way is reused rather than rendered again, which is what makes a cancelled Max quality export resumable. A file of the same frame rendered differently, at a new size or quality, is rendered over.
Only files Max quality has marked are recognised for certain. Fast writes no mark, but it copies across the identifying code the camera wrote into the original, if it wrote one; some cameras put a code in every file. Vixlo takes a code for a mark only when it is exactly 32 characters, each a digit from 0 to 9 or a letter from a to f, in capitals or not. A code of any other length, or with any other character in it, counts as no mark. So a Fast file with no code, or with a code of another shape, is rendered over, whichever frame it came from. One that carries a camera code of that shape reads as another frame's, so it is left alone and the new file is written beside it as DSCF0001-2.jpg. The same goes for a file from a second card that also started at DSCF0001: left alone if Max quality marked it, rendered over if it carries no mark Vixlo can read. Do not rely on any of this; export into an empty folder.
With a pattern typed, Vixlo steps around every file already in the folder before darktable sees a name, giving the newcomer the next free {seq} or a (2). No image is reused or rendered over, and a second run writes a second copy of every take. The manifest is replaced all the same.