<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Special Topics on darktable 5.6 user manual</title>
    <link>https://docs.darktable.org/usermanual/5.6/en/special-topics/</link>
    <description>Recent content in Special Topics on darktable 5.6 user manual</description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="https://docs.darktable.org/usermanual/5.6/en/special-topics/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>memory &amp; performance tuning</title>
      <link>https://docs.darktable.org/usermanual/5.6/en/special-topics/mem-performance/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.darktable.org/usermanual/5.6/en/special-topics/mem-performance/</guid>
      <description>&lt;h1 id=&#34;memory-requirements&#34;&gt;&lt;a href=&#34;#memory-requirements&#34;&gt;🔗&lt;/a&gt;memory requirements&lt;/h1&gt;&#xA;&lt;p&gt;Processing a Raw image in darktable requires a great deal of system memory. A simple calculation makes this clear: For a 20 megapixel image, darktable requires a 4x32-bit floating point cell to store each pixel, meaning that each full image of this size will require approximately 300MB of memory just to store the image data. In order to actually process this image through a given module, darktable needs at least two buffers (input and output) of this size, with more complex modules potentially requiring several additional buffers for intermediate data. Without further optimization, anything between 600MB and 3GB of memory might be required to store and process image data as the pixelpipe executes. On top of this is darktable&amp;rsquo;s code segment, the code and data of any dynamically-linked system libraries, as well as further buffers that darktable uses to store intermediate states (cache) for quick access during interactive work.&lt;/p&gt;</description>
    </item>
    <item>
      <title>variables</title>
      <link>https://docs.darktable.org/usermanual/5.6/en/special-topics/variables/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.darktable.org/usermanual/5.6/en/special-topics/variables/</guid>
      <description>&lt;p&gt;darktable supports variable substitution in a number of modules and preference settings. For example:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Defining file names in the &lt;a href=&#34;https://docs.darktable.org/usermanual/5.6/en/module-reference/utility-modules/shared/export/&#34;&gt;export&lt;/a&gt; module&lt;/li&gt;&#xA;&lt;li&gt;Displaying image information in the darkroom&amp;rsquo;s &lt;a href=&#34;https://docs.darktable.org/usermanual/5.6/en/module-reference/utility-modules/darkroom/image-info-line/&#34;&gt;image information line&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Displaying image information in the lighttable&amp;rsquo;s overlays and tooltips (see &lt;a href=&#34;https://docs.darktable.org/usermanual/5.6/en/preferences-settings/lighttable/&#34;&gt;preferences &amp;gt; lighttable&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Placing text on an image in the &lt;a href=&#34;https://docs.darktable.org/usermanual/5.6/en/module-reference/processing-modules/watermark/&#34;&gt;&lt;em&gt;watermark&lt;/em&gt;&lt;/a&gt; processing module&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;available-variables&#34;&gt;&lt;a href=&#34;#available-variables&#34;&gt;🔗&lt;/a&gt;available variables&lt;/h1&gt;&#xA;&lt;p&gt;The following variables are available, though they may not all be applicable in every context:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$(ROLL.NAME[n])            film roll of the input image, where n specifies the folder level&#xA;                           counting from the right, default n=1&#xA;$(FILE.FOLDER)             folder containing the input image&#xA;$(FILE.NAME)               basename of the input image&#xA;$(FILE.EXTENSION)          extension of the input image&#xA;$(ID)                      the image id&#xA;$(VERSION)                 the duplicate version number&#xA;$(VERSION.IF_MULTI)        same as $(VERSION) but null string if only one version exists&#xA;$(VERSION.NAME)            version name from metadata&#xA;$(DARKTABLE.VERSION)       the version of the running darktable instance&#xA;$(DARKTABLE.NAME)          name of darktable&#xA;$(SEQUENCE[n,m])           a sequence number within an export job with n digits and starting with m&#xA;                           parameters are optional, default is [4,1]&#xA;$(WIDTH.SENSOR)            width of RAW data in pixels before RAW crop&#xA;$(HEIGHT.SENSOR)           height of RAW data in pixels before RAW crop&#xA;$(WIDTH.RAW)               width of RAW data in pixels after RAW crop&#xA;$(HEIGHT.RAW)              height of RAW data in pixels after RAW crop&#xA;$(WIDTH.CROP)              image width in pixels at the end of the pixelpipe, but before export resize&#xA;$(HEIGHT.CROP)             image height in pixels at the end of the pixelpipe, but before export resize&#xA;$(WIDTH.EXPORT)            image width in pixels at the end of the pixelpipe and after export resize&#xA;$(HEIGHT.EXPORT)           image height in pixels at the end of the pixelpipe and after export resize&#xA;$(WIDTH.MAX)               maximum width entered in export module&#xA;$(HEIGHT.MAX)              maximum height entered in export module&#xA;$(YEAR)                    year at date of import/export&#xA;$(YEAR.SHORT)              two-digit year at date of import/export&#xA;$(MONTH)                   numeric (1-12) month at date of import/export&#xA;$(MONTH.LONG)              full month name at date of import/export&#xA;$(MONTH.SHORT)             abbreviated month name at date of import/export&#xA;$(DAY)                     day at date of import/export&#xA;$(HOUR)                    hour at time of import/export&#xA;$(MINUTE)                  minute at time of import/export&#xA;$(SECOND)                  second at time of import/export&#xA;$(MSEC)                    millisecond at time of import/export&#xA;$(EXIF.YEAR)               Exif year&#xA;$(EXIF.YEAR.SHORT)         Exif year, two-digit version&#xA;$(EXIF.MONTH)              Exif month, numeric&#xA;$(EXIF.MONTH.LONG)         Exif month, full name&#xA;$(EXIF.MONTH.SHORT)        Exif month, abbreviated name&#xA;$(EXIF.DAY)                Exif day&#xA;$(EXIF.HOUR)               Exif hour&#xA;$(EXIF.MINUTE)             Exif minute&#xA;$(EXIF.SECOND)             Exif second&#xA;$(EXIF.MSEC)               Exif millisecond&#xA;$(EXIF.DATE.REGIONAL)      Exif date using user&amp;#39;s preferred regional date format&#xA;$(EXIF.TIME.REGIONAL)      Exif time using user&amp;#39;s preferred regional date format&#xA;$(EXIF.ISO)                Exif ISO value&#xA;$(EXIF.EXPOSURE)           Exif exposure&#xA;$(EXIF.EXPOSURE.BIAS)      Exif exposure bias&#xA;$(EXIF.EXPOSURE.PROGRAM)   Exif exposure program set in camera&#xA;$(EXIF.APERTURE)           Exif aperture&#xA;$(EXIF.CROP_FACTOR)        Exif crop factor&#xA;$(EXIF.FLASH)              Exif flash setting&#xA;$(EXIF.FLASH.ICON)         flash symbol if Exif information says flash was fired, empty string if not&#xA;$(EXIF.FOCAL.LENGTH)       Exif focal length&#xA;$(EXIF.FOCAL.LENGTH.EQUIV) Exif 35 mm equivalent focal length&#xA;$(EXIF.FOCUS.DISTANCE)     Exif focus distance&#xA;$(EXIF.LENS)               Exif lens name&#xA;$(EXIF.MAKER)              Exif camera maker&#xA;$(EXIF.METERING)           Exif metering mode&#xA;$(EXIF.MODEL)              Exif camera model&#xA;$(EXIF.WHITEBALANCE)       Exif white balance set in camera&#xA;$(IMAGE.EXIF)              basic exposure information from Exif data (aperture, exposure, ISO)&#xA;$(IMAGE.ID)                the image id (note that this will be 0 during copy&amp;amp;import)&#xA;$(IMAGE.ID[n])             the image id (note that this will be 0 during copy&amp;amp;import), zero-padded to n digits&#xA;$(IMAGE.ID.NEXT)           the next image id to be assigned (can be used during copy&amp;amp;import)&#xA;$(IMAGE.ID.NEXT[n])        the next image id to be assigned (can be used during copy&amp;amp;import), zero-padded to n digits&#xA;$(IMAGE.TAGS)              tags list (Xmp.dc.Subject), with any hierarchy flattened&#xA;$(IMAGE.TAGS.HIERARCHY)    tags list (Xmp.dc.Subject), preserving hierarchy&#xA;$(LONGITUDE)               longitude&#xA;$(LATITUDE)                latitude&#xA;$(ELEVATION)               elevation&#xA;$(GPS.ELEVATION)           elevation&#xA;$(GPS.LATITUDE)            latitude&#xA;$(GPS.LONGITUDE)           longitude&#xA;$(GPS.LOCATION)            latitude, longitude, and elevation (omitting any values which are not set)&#xA;$(GPS.LOCATION.ICON)       symbol to indicate that geolocation information is present, empty string if not&#xA;$(STARS)                   star rating (text only)&#xA;$(RATING.ICONS)            star rating (using star characters)&#xA;$(LABELS)                  colorlabels (color labels as text)&#xA;$(LABELS.ICONS)            colorlabels (color labels as icons)&#xA;$(MAKER)                   camera maker&#xA;$(MODEL)                   camera model&#xA;$(LENS)                    lens&#xA;$(Xmp.dc.title)            title from metadata&#xA;$(Xmp.dc.description)      description from metadata&#xA;$(Xmp.dc.creator)          creator from metadata&#xA;$(Xmp.dc.publisher)        publisher from metadata&#xA;$(Xmp.dc.rights)           rights from metadata&#xA;$(TAGS)                    tags list (Xmp.dc.Subject)&#xA;$(CATEGORY[n,category])    tag name of level n [0,9] of selected category (or tag)&#xA;$(SIDECAR_TXT)             content of the text sidecar file (if any)&#xA;$(FOLDER.PICTURES)         pictures folder&#xA;$(FOLDER.HOME)             home folder&#xA;$(FOLDER.DESKTOP)          desktop folder&#xA;$(OPENCL.ACTIVATED)        whether OpenCL is activated&#xA;$(USERNAME)                user name defined by OS&#xA;$(NL)                      newline character&#xA;$(JOBCODE)                 internal jobcode of current job&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h1 id=&#34;metadata&#34;&gt;&lt;a href=&#34;#metadata&#34;&gt;🔗&lt;/a&gt;metadata&lt;/h1&gt;&#xA;&lt;p&gt;Fields from the &lt;a href=&#34;https://docs.darktable.org/usermanual/5.6/en/module-reference/utility-modules/shared/metadata-editor/&#34;&gt;metadata editor&lt;/a&gt; can be used for variable substitution using the full case-sensitive Xmp tag name as the variable name (e.g.&lt;code&gt;Xmp.iptc.location&lt;/code&gt;).&lt;/p&gt;</description>
    </item>
    <item>
      <title>darktable&#39;s color pipeline</title>
      <link>https://docs.darktable.org/usermanual/5.6/en/special-topics/color-pipeline/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.darktable.org/usermanual/5.6/en/special-topics/color-pipeline/</guid>
      <description>&lt;p&gt;Most image processing applications come from the 1990s and/or inherit a 1990s workflow. These applications processed images encoded with 8 bit unsigned integers because it was more memory- and computationally-efficient. However, due to the use of an integer format (which implies rounding errors) they had to apply a &amp;ldquo;gamma&amp;rdquo; (essentially a transfer function applying a power 1/2.2 or 1/2.4 to encode the RGB values) and increase the bit-depth in the low-lights in order to reduce rounding errors there (humans are very sensitive to low-light details). The 8 bit integer formats are also technically limited to the 0-255 range. Anything outside of this range overflows and is clipped to the nearest bound.&lt;/p&gt;</description>
    </item>
    <item>
      <title>midi device support</title>
      <link>https://docs.darktable.org/usermanual/5.6/en/special-topics/midi-device-support/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.darktable.org/usermanual/5.6/en/special-topics/midi-device-support/</guid>
      <description>&lt;h1 id=&#34;introduction&#34;&gt;&lt;a href=&#34;#introduction&#34;&gt;🔗&lt;/a&gt;introduction&lt;/h1&gt;&#xA;&lt;p&gt;MIDI is a communication protocol used by many electronic musical instruments (&amp;ldquo;pianos&amp;rdquo;), digital audio studio equipment (&amp;ldquo;control surfaces&amp;rdquo;) and even dedicated &amp;ldquo;photo editing keyboards&amp;rdquo; like the Loupedeck/Loupedeck+ (but not their later products). Such devices commonly feature sets of keys/buttons and sometimes encoders (knobs/rotors) and faders (sliders). Buttons sometimes feature lights, which makes them ideal for toggling features in darktable, because the lights can reflect the current (on/off) status. Encoders and faders are ideal for use with on-screen sliders in processing modules. They can be &amp;ldquo;endless&amp;rdquo; (without a start/end point and without any markings on the knob) allowing greater than 360 degrees rotation, and they may be motorized. This is helpful when switching between images or points in the editing history since the &amp;ldquo;physical&amp;rdquo; position of the encoders/faders always corresponds to the on-screen position. You may also find a ring of LEDs around an encoder that indicates its current value.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
