<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Tested &#8211; Wade Tregaskis</title>
	<atom:link href="https://wadetregaskis.com/tags/tested/feed/" rel="self" type="application/rss+xml" />
	<link>https://wadetregaskis.com</link>
	<description></description>
	<lastBuildDate>Wed, 30 Jul 2025 20:25:35 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://wadetregaskis.com/wp-content/uploads/2016/03/Stitch-512x512-1-256x256.png</url>
	<title>Tested &#8211; Wade Tregaskis</title>
	<link>https://wadetregaskis.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">226351702</site>	<item>
		<title>32-bit float audio recording is not a panacea</title>
		<link>https://wadetregaskis.com/32-bit-float-audio-recording-is-not-a-panacea/</link>
					<comments>https://wadetregaskis.com/32-bit-float-audio-recording-is-not-a-panacea/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Thu, 31 Jul 2025 03:18:00 +0000</pubDate>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[32-bit float audio]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[lies]]></category>
		<category><![CDATA[Portacapture X8]]></category>
		<category><![CDATA[Sennheiser K6]]></category>
		<category><![CDATA[Sennheiser ME65]]></category>
		<category><![CDATA[Sennheiser ME66]]></category>
		<category><![CDATA[Tascam]]></category>
		<category><![CDATA[Tested]]></category>
		<category><![CDATA[Zoom H4n]]></category>
		<guid isPermaLink="false">https://wadetregaskis.com/?p=8524</guid>

					<description><![CDATA[I recently replaced a horrible, dodgy Zoom H4n with a Tascam Portacapture X8, for recording (primarily) theatre and music performances. One of the appeals was 32-bit floating-point recording which was literally promised to eliminate concerns about input levelling, clipping, and noise: The reality is, with 32-bit float recording you can turn on your recorder, hit&#8230; <a class="read-more-link" href="https://wadetregaskis.com/32-bit-float-audio-recording-is-not-a-panacea/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p>I recently replaced a horrible, dodgy <a href="https://zoomcorp.com/en/us/handheld-recorders/handheld-recorders/h4n/" data-wpel-link="external" target="_blank" rel="external noopener">Zoom H4n</a> with a <a href="https://tascam.com/us/product/portacapture_x8" data-wpel-link="external" target="_blank" rel="external noopener">Tascam Portacapture X8</a>, for recording (primarily) theatre and music performances. One of the appeals was 32-bit floating-point recording which was literally promised to eliminate concerns about input levelling, clipping, and noise:</p>



<figure class="wp-block-pullquote is-style-default"><blockquote><p>The reality is, with 32-bit float recording you can turn on your recorder, hit record, and be 100% confident that <strong>you&#8217;ll be capturing high-fidelity, low-noise audio, without ever adjusting your input level</strong>.</p><cite><a href="https://tascam.jp/int/feature/32-bit_float" data-wpel-link="external" target="_blank" rel="external noopener">Why 32-bit Float Recording</a>, Tascam</cite></blockquote></figure>



<figure class="wp-block-pullquote"><blockquote><p>…the huge dynamic range that 32-bit float offers means your audio is always captured well above the noise floor, and also <strong>makes it basically impossible to distort due to high input levels</strong>.</p><cite><a href="https://tascam.jp/int/feature/32-bit_float" data-wpel-link="external" target="_blank" rel="external noopener">Why 32-bit Float Recording</a>, Tascam</cite></blockquote></figure>



<p>Five minutes of some trivial testing shows that this is just not true.</p>



<h2 class="wp-block-heading">Noise is still affected by input gain</h2>



<p>Here&#8217;s a composed recording of four 3-second clips recording the room tone in my office. They are (in order): Auto gain, 57dB, 35dB, 0dB:</p>


<div
    id="h5ap-player-1"
    data-id="h5ap-player-1"
    data-attributes="{&quot;uniqueId&quot;:&quot;h5apc2f6cbfb&quot;,&quot;source&quot;:&quot;https:\/\/wadetregaskis.com\/wp-content\/uploads\/2025\/07\/Noise.wav&quot;,&quot;primaryColor&quot;:&quot;#4A5464&quot;,&quot;controlColor&quot;:&quot;#4A5464&quot;,&quot;bgColor&quot;:&quot;#F5F5F5&quot;,&quot;loader&quot;:true,&quot;preload&quot;:&quot;auto&quot;,&quot;radius&quot;:&quot;50px&quot;,&quot;clientId&quot;:&quot;&quot;,&quot;align&quot;:&quot;&quot;,&quot;alignment&quot;:&quot;left&quot;,&quot;poster&quot;:&quot;&quot;,&quot;title&quot;:&quot;audio title&quot;,&quot;artist&quot;:&quot;&quot;,&quot;color&quot;:&quot;#87ceeb&quot;,&quot;hoverColor&quot;:&quot;#00B3FF&quot;,&quot;skin&quot;:&quot;Default&quot;,&quot;repeat&quot;:false,&quot;autoplay&quot;:false,&quot;muted&quot;:false,&quot;saveState&quot;:false,&quot;disablePause&quot;:false,&quot;seekTime&quot;:10,&quot;startTime&quot;:0,&quot;download&quot;:true,&quot;width&quot;:&quot;100%&quot;,&quot;speed&quot;:{&quot;selected&quot;:1,&quot;speed&quot;:[&quot;0.5&quot;,&quot; 0.75&quot;,&quot; 1&quot;,&quot; 1.25&quot;,&quot; 1.5&quot;,&quot; 1.75&quot;,&quot; 2&quot;,&quot; 4&quot;,&quot; 8&quot;]},&quot;controls&quot;:{&quot;restart&quot;:false,&quot;rewind&quot;:false,&quot;play&quot;:true,&quot;fast-forward&quot;:false,&quot;progress&quot;:true,&quot;duration&quot;:false,&quot;current-time&quot;:true,&quot;mute&quot;:true,&quot;volume&quot;:true,&quot;settings&quot;:true,&quot;download&quot;:false},&quot;isSticky&quot;:false,&quot;CSS&quot;:&quot;&quot;,&quot;multiple_audio&quot;:false,&quot;defaultValue&quot;:{&quot;Default&quot;:{&quot;primaryColor&quot;:&quot;#4A5464&quot;,&quot;controlColor&quot;:&quot;#4A5464&quot;,&quot;bgColor&quot;:&quot;#F5F5F5&quot;},&quot;Fusion&quot;:{&quot;primaryColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;controlColor&quot;:&quot;#fff&quot;},&quot;Stamp&quot;:{&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;},&quot;Wave&quot;:{&quot;primaryColor&quot;:&quot;#fff&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#fff&quot;},&quot;Card-1&quot;:{&quot;primaryColor&quot;:&quot;#fff&quot;,&quot;controlColor&quot;:&quot;#161616&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#fff&quot;},&quot;Card-2&quot;:{&quot;primaryColor&quot;:&quot;#00FBF3&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#fff&quot;},&quot;Simple-1&quot;:{&quot;primaryColor&quot;:&quot;#00dcff&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#00dcff&quot;},&quot;Simple-2&quot;:{&quot;primaryColor&quot;:&quot;#06F7FF00&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;},&quot;Player9&quot;:{&quot;primaryColor&quot;:&quot;#195FF6&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#EDEFF2&quot;},&quot;Player10&quot;:{&quot;primaryColor&quot;:&quot;#195FF6&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#EDEFF2&quot;},&quot;Player11&quot;:{&quot;primaryColor&quot;:&quot;#195FF6&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#fff&quot;}},&quot;i18n&quot;:{&quot;restart&quot;:&quot;Restart&quot;,&quot;rewind&quot;:&quot;Rewind {seektime}s&quot;,&quot;play&quot;:&quot;Play&quot;,&quot;pause&quot;:&quot;Pause&quot;,&quot;fastForward:&quot;:&quot;Forward {seektime}s&quot;,&quot;seek&quot;:&quot;Seek&quot;,&quot;seekLabel&quot;:&quot;{currentTime} of {duration}&quot;,&quot;played&quot;:&quot;Played&quot;,&quot;buffered&quot;:&quot;Buffered&quot;,&quot;currentTime:&quot;:&quot;Current time&quot;,&quot;duration&quot;:&quot;Duration&quot;,&quot;volume&quot;:&quot;Volume&quot;,&quot;mute&quot;:&quot;Mute&quot;,&quot;unmute&quot;:&quot;Unmute&quot;,&quot;enableCaptions&quot;:&quot;Enable captions&quot;,&quot;disableCaptions&quot;:&quot;Disable captions&quot;,&quot;download&quot;:&quot;Download&quot;,&quot;enterFullscreen&quot;:&quot;Enter fullscreen&quot;,&quot;exitFullscreen&quot;:&quot;Exit fullscreen&quot;,&quot;frameTitle&quot;:&quot;Player for {title}&quot;,&quot;captions&quot;:&quot;Captions&quot;,&quot;settings&quot;:&quot;Settings&quot;,&quot;pip&quot;:&quot;PIP&quot;,&quot;menuBack&quot;:&quot;Go back to previous menu&quot;,&quot;speed&quot;:&quot;Speed&quot;,&quot;normal&quot;:&quot;Normal&quot;,&quot;quality&quot;:&quot;Quality&quot;,&quot;loop&quot;:&quot;Loop&quot;,&quot;start&quot;:&quot;Start&quot;,&quot;end&quot;:&quot;End&quot;,&quot;all&quot;:&quot;All&quot;,&quot;reset&quot;:&quot;Reset&quot;,&quot;disabled&quot;:&quot;Disabled&quot;,&quot;enabled&quot;:&quot;Enabled&quot;,&quot;advertisement&quot;:&quot;Ad&quot;,&quot;qualityBadge&quot;:{&quot;2160&quot;:&quot;4K&quot;,&quot;1440&quot;:&quot;HD&quot;,&quot;1080&quot;:&quot;HD&quot;,&quot;720&quot;:&quot;HD&quot;,&quot;576&quot;:&quot;SD&quot;,&quot;480&quot;:&quot;SD&quot;}}}"
    class="wp-block-h5ap-tailwind wp-block-h5ap-audioplayer">
            <div class='h5ap_lp'>
            <div class='bar bar-1'></div>
            <div class='bar bar-1'></div>
        </div>
    </div>


<p>As you can hear, auto and maximum input gain in this case have very similar noise levels (which is to say, perceptually none), but as you reduce the recorder&#8217;s input gain (and instead apply the gain in post) the noise increases substantially and becomes very noticeable.</p>



<p>Granted this is a very big gain application &#8211; 57dB &#8211; which you would <em>hopefully</em> never need to apply to a real recording, but nonetheless it demonstrates that Tascam&#8217;s claims are exaggerations at best; if you <em>actually</em> had the Portacapture X8&#8217;s input gain set to 0dB and recorded quiet sounds, you would in fact have problems with noise &#8211; problems that would be avoided with a correct input gain setting.</p>



<h2 class="wp-block-heading">Clipping still happens if input gain is too high</h2>



<p>The recorder clearly applies actual analog amplification and can still saturate its ADCs, as shown in this composite of three gain levels.  They are (in order):  Auto gain, 35dB, 57dB.</p>



<p><em>Warning</em>: annoying, distorted sound.</p>


<div
    id="h5ap-player-2"
    data-id="h5ap-player-2"
    data-attributes="{&quot;uniqueId&quot;:&quot;h5ap1fcf0b2b&quot;,&quot;source&quot;:&quot;https:\/\/wadetregaskis.com\/wp-content\/uploads\/2025\/07\/Tascam-Portacapture-X8-w-Sennheiser-K6-ME66-clipping-demonstration.wav&quot;,&quot;primaryColor&quot;:&quot;#4A5464&quot;,&quot;controlColor&quot;:&quot;#4A5464&quot;,&quot;bgColor&quot;:&quot;#F5F5F5&quot;,&quot;loader&quot;:true,&quot;preload&quot;:&quot;auto&quot;,&quot;radius&quot;:&quot;50px&quot;,&quot;clientId&quot;:&quot;&quot;,&quot;align&quot;:&quot;&quot;,&quot;alignment&quot;:&quot;left&quot;,&quot;poster&quot;:&quot;&quot;,&quot;title&quot;:&quot;audio title&quot;,&quot;artist&quot;:&quot;&quot;,&quot;color&quot;:&quot;#87ceeb&quot;,&quot;hoverColor&quot;:&quot;#00B3FF&quot;,&quot;skin&quot;:&quot;Default&quot;,&quot;repeat&quot;:false,&quot;autoplay&quot;:false,&quot;muted&quot;:false,&quot;saveState&quot;:false,&quot;disablePause&quot;:false,&quot;seekTime&quot;:10,&quot;startTime&quot;:0,&quot;download&quot;:true,&quot;width&quot;:&quot;100%&quot;,&quot;speed&quot;:{&quot;selected&quot;:1,&quot;speed&quot;:[&quot;0.5&quot;,&quot; 0.75&quot;,&quot; 1&quot;,&quot; 1.25&quot;,&quot; 1.5&quot;,&quot; 1.75&quot;,&quot; 2&quot;,&quot; 4&quot;,&quot; 8&quot;]},&quot;controls&quot;:{&quot;restart&quot;:false,&quot;rewind&quot;:false,&quot;play&quot;:true,&quot;fast-forward&quot;:false,&quot;progress&quot;:true,&quot;duration&quot;:false,&quot;current-time&quot;:true,&quot;mute&quot;:true,&quot;volume&quot;:true,&quot;settings&quot;:true,&quot;download&quot;:false},&quot;isSticky&quot;:false,&quot;CSS&quot;:&quot;&quot;,&quot;multiple_audio&quot;:false,&quot;defaultValue&quot;:{&quot;Default&quot;:{&quot;primaryColor&quot;:&quot;#4A5464&quot;,&quot;controlColor&quot;:&quot;#4A5464&quot;,&quot;bgColor&quot;:&quot;#F5F5F5&quot;},&quot;Fusion&quot;:{&quot;primaryColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;controlColor&quot;:&quot;#fff&quot;},&quot;Stamp&quot;:{&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;},&quot;Wave&quot;:{&quot;primaryColor&quot;:&quot;#fff&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#fff&quot;},&quot;Card-1&quot;:{&quot;primaryColor&quot;:&quot;#fff&quot;,&quot;controlColor&quot;:&quot;#161616&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#fff&quot;},&quot;Card-2&quot;:{&quot;primaryColor&quot;:&quot;#00FBF3&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#fff&quot;},&quot;Simple-1&quot;:{&quot;primaryColor&quot;:&quot;#00dcff&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#00dcff&quot;},&quot;Simple-2&quot;:{&quot;primaryColor&quot;:&quot;#06F7FF00&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;},&quot;Player9&quot;:{&quot;primaryColor&quot;:&quot;#195FF6&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#EDEFF2&quot;},&quot;Player10&quot;:{&quot;primaryColor&quot;:&quot;#195FF6&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#EDEFF2&quot;},&quot;Player11&quot;:{&quot;primaryColor&quot;:&quot;#195FF6&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#fff&quot;}},&quot;i18n&quot;:{&quot;restart&quot;:&quot;Restart&quot;,&quot;rewind&quot;:&quot;Rewind {seektime}s&quot;,&quot;play&quot;:&quot;Play&quot;,&quot;pause&quot;:&quot;Pause&quot;,&quot;fastForward:&quot;:&quot;Forward {seektime}s&quot;,&quot;seek&quot;:&quot;Seek&quot;,&quot;seekLabel&quot;:&quot;{currentTime} of {duration}&quot;,&quot;played&quot;:&quot;Played&quot;,&quot;buffered&quot;:&quot;Buffered&quot;,&quot;currentTime:&quot;:&quot;Current time&quot;,&quot;duration&quot;:&quot;Duration&quot;,&quot;volume&quot;:&quot;Volume&quot;,&quot;mute&quot;:&quot;Mute&quot;,&quot;unmute&quot;:&quot;Unmute&quot;,&quot;enableCaptions&quot;:&quot;Enable captions&quot;,&quot;disableCaptions&quot;:&quot;Disable captions&quot;,&quot;download&quot;:&quot;Download&quot;,&quot;enterFullscreen&quot;:&quot;Enter fullscreen&quot;,&quot;exitFullscreen&quot;:&quot;Exit fullscreen&quot;,&quot;frameTitle&quot;:&quot;Player for {title}&quot;,&quot;captions&quot;:&quot;Captions&quot;,&quot;settings&quot;:&quot;Settings&quot;,&quot;pip&quot;:&quot;PIP&quot;,&quot;menuBack&quot;:&quot;Go back to previous menu&quot;,&quot;speed&quot;:&quot;Speed&quot;,&quot;normal&quot;:&quot;Normal&quot;,&quot;quality&quot;:&quot;Quality&quot;,&quot;loop&quot;:&quot;Loop&quot;,&quot;start&quot;:&quot;Start&quot;,&quot;end&quot;:&quot;End&quot;,&quot;all&quot;:&quot;All&quot;,&quot;reset&quot;:&quot;Reset&quot;,&quot;disabled&quot;:&quot;Disabled&quot;,&quot;enabled&quot;:&quot;Enabled&quot;,&quot;advertisement&quot;:&quot;Ad&quot;,&quot;qualityBadge&quot;:{&quot;2160&quot;:&quot;4K&quot;,&quot;1440&quot;:&quot;HD&quot;,&quot;1080&quot;:&quot;HD&quot;,&quot;720&quot;:&quot;HD&quot;,&quot;576&quot;:&quot;SD&quot;,&quot;480&quot;:&quot;SD&quot;}}}"
    class="wp-block-h5ap-tailwind wp-block-h5ap-audioplayer">
            <div class='h5ap_lp'>
            <div class='bar bar-1'></div>
            <div class='bar bar-1'></div>
        </div>
    </div>

<div class="wp-block-image is-style-default">
<figure class="aligncenter size-full"><img fetchpriority="high" decoding="async" width="883" height="214" src="https://wadetregaskis.com/wp-content/uploads/2025/07/waveforms-from-the-final-cut-pro-timeline-of-tascam-portacapture-x8-recordings-of-a-dehumidifier-at-three-different-input-gain-settings-auto-0db-and-57db-1.webp" alt="Waveforms from the Final Cut Pro timeline of Tascam Portacapture X8 recordings of a dehumidifier, at three different input gain settings (Auto, 0dB, and 57dB)" class="wp-image-8531" srcset="https://wadetregaskis.com/wp-content/uploads/2025/07/waveforms-from-the-final-cut-pro-timeline-of-tascam-portacapture-x8-recordings-of-a-dehumidifier-at-three-different-input-gain-settings-auto-0db-and-57db-1.webp 883w, https://wadetregaskis.com/wp-content/uploads/2025/07/waveforms-from-the-final-cut-pro-timeline-of-tascam-portacapture-x8-recordings-of-a-dehumidifier-at-three-different-input-gain-settings-auto-0db-and-57db-1-256x62.webp 256w, https://wadetregaskis.com/wp-content/uploads/2025/07/waveforms-from-the-final-cut-pro-timeline-of-tascam-portacapture-x8-recordings-of-a-dehumidifier-at-three-different-input-gain-settings-auto-0db-and-57db-1-768x186.webp 768w, https://wadetregaskis.com/wp-content/uploads/2025/07/waveforms-from-the-final-cut-pro-timeline-of-tascam-portacapture-x8-recordings-of-a-dehumidifier-at-three-different-input-gain-settings-auto-0db-and-57db-1@2x.webp 1766w, https://wadetregaskis.com/wp-content/uploads/2025/07/waveforms-from-the-final-cut-pro-timeline-of-tascam-portacapture-x8-recordings-of-a-dehumidifier-at-three-different-input-gain-settings-auto-0db-and-57db-1-256x62@2x.webp 512w" sizes="(max-width: 883px) 100vw, 883px" /></figure>
</div>


<p>It only went over by about 3dB (at 57dB input gain), but that was enough to destroy the input signal and make the recording unusable.</p>



<h2 class="wp-block-heading">Auto Gain still affects the recording</h2>



<p>In the above tests I included the Auto Gain setting, even though it doesn&#8217;t exhibit particularly high noise nor does it clip in these simple sound environments (basically constant sound levels).  And it worked pretty well (not optimal input gain levels, but close enough for my taste).</p>



<p>But, I was curious if it had any effect at all &#8211; again, reading about 32-bit floating-point recording online, you&#8217;d be forgiven for thinking Auto Gain has no impact on the <em>actual</em> recorded data.  Many people liken the format to camera raw files, and some <em>explicitly</em> state that Auto Gain has <em>no</em> impact on the bits that get written to disk.</p>



<p>This is completely false, at least in the case of this Tascam Portacapture X8.  It&#8217;s trivial to see why:</p>


<div
    id="h5ap-player-3"
    data-id="h5ap-player-3"
    data-attributes="{&quot;uniqueId&quot;:&quot;h5ap8de70736&quot;,&quot;source&quot;:&quot;https:\/\/wadetregaskis.com\/wp-content\/uploads\/2025\/07\/Tascam-Portacapture-X8-w-Sennheiser-K6-ME65-Auto-Gain-vs-constant-gain.wav&quot;,&quot;primaryColor&quot;:&quot;#4A5464&quot;,&quot;controlColor&quot;:&quot;#4A5464&quot;,&quot;bgColor&quot;:&quot;#F5F5F5&quot;,&quot;loader&quot;:true,&quot;preload&quot;:&quot;auto&quot;,&quot;radius&quot;:&quot;50px&quot;,&quot;clientId&quot;:&quot;&quot;,&quot;align&quot;:&quot;&quot;,&quot;alignment&quot;:&quot;left&quot;,&quot;poster&quot;:&quot;&quot;,&quot;title&quot;:&quot;audio title&quot;,&quot;artist&quot;:&quot;&quot;,&quot;color&quot;:&quot;#87ceeb&quot;,&quot;hoverColor&quot;:&quot;#00B3FF&quot;,&quot;skin&quot;:&quot;Default&quot;,&quot;repeat&quot;:false,&quot;autoplay&quot;:false,&quot;muted&quot;:false,&quot;saveState&quot;:false,&quot;disablePause&quot;:false,&quot;seekTime&quot;:10,&quot;startTime&quot;:0,&quot;download&quot;:true,&quot;width&quot;:&quot;100%&quot;,&quot;speed&quot;:{&quot;selected&quot;:1,&quot;speed&quot;:[&quot;0.5&quot;,&quot; 0.75&quot;,&quot; 1&quot;,&quot; 1.25&quot;,&quot; 1.5&quot;,&quot; 1.75&quot;,&quot; 2&quot;,&quot; 4&quot;,&quot; 8&quot;]},&quot;controls&quot;:{&quot;restart&quot;:false,&quot;rewind&quot;:false,&quot;play&quot;:true,&quot;fast-forward&quot;:false,&quot;progress&quot;:true,&quot;duration&quot;:false,&quot;current-time&quot;:true,&quot;mute&quot;:true,&quot;volume&quot;:true,&quot;settings&quot;:true,&quot;download&quot;:false},&quot;isSticky&quot;:false,&quot;CSS&quot;:&quot;&quot;,&quot;multiple_audio&quot;:false,&quot;defaultValue&quot;:{&quot;Default&quot;:{&quot;primaryColor&quot;:&quot;#4A5464&quot;,&quot;controlColor&quot;:&quot;#4A5464&quot;,&quot;bgColor&quot;:&quot;#F5F5F5&quot;},&quot;Fusion&quot;:{&quot;primaryColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;controlColor&quot;:&quot;#fff&quot;},&quot;Stamp&quot;:{&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;},&quot;Wave&quot;:{&quot;primaryColor&quot;:&quot;#fff&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#fff&quot;},&quot;Card-1&quot;:{&quot;primaryColor&quot;:&quot;#fff&quot;,&quot;controlColor&quot;:&quot;#161616&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#fff&quot;},&quot;Card-2&quot;:{&quot;primaryColor&quot;:&quot;#00FBF3&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#fff&quot;},&quot;Simple-1&quot;:{&quot;primaryColor&quot;:&quot;#00dcff&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#00dcff&quot;},&quot;Simple-2&quot;:{&quot;primaryColor&quot;:&quot;#06F7FF00&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;},&quot;Player9&quot;:{&quot;primaryColor&quot;:&quot;#195FF6&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#EDEFF2&quot;},&quot;Player10&quot;:{&quot;primaryColor&quot;:&quot;#195FF6&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#EDEFF2&quot;},&quot;Player11&quot;:{&quot;primaryColor&quot;:&quot;#195FF6&quot;,&quot;controlColor&quot;:&quot;#fff&quot;,&quot;bgColor&quot;:&quot;#161616&quot;,&quot;textColor&quot;:&quot;#fff&quot;}},&quot;i18n&quot;:{&quot;restart&quot;:&quot;Restart&quot;,&quot;rewind&quot;:&quot;Rewind {seektime}s&quot;,&quot;play&quot;:&quot;Play&quot;,&quot;pause&quot;:&quot;Pause&quot;,&quot;fastForward:&quot;:&quot;Forward {seektime}s&quot;,&quot;seek&quot;:&quot;Seek&quot;,&quot;seekLabel&quot;:&quot;{currentTime} of {duration}&quot;,&quot;played&quot;:&quot;Played&quot;,&quot;buffered&quot;:&quot;Buffered&quot;,&quot;currentTime:&quot;:&quot;Current time&quot;,&quot;duration&quot;:&quot;Duration&quot;,&quot;volume&quot;:&quot;Volume&quot;,&quot;mute&quot;:&quot;Mute&quot;,&quot;unmute&quot;:&quot;Unmute&quot;,&quot;enableCaptions&quot;:&quot;Enable captions&quot;,&quot;disableCaptions&quot;:&quot;Disable captions&quot;,&quot;download&quot;:&quot;Download&quot;,&quot;enterFullscreen&quot;:&quot;Enter fullscreen&quot;,&quot;exitFullscreen&quot;:&quot;Exit fullscreen&quot;,&quot;frameTitle&quot;:&quot;Player for {title}&quot;,&quot;captions&quot;:&quot;Captions&quot;,&quot;settings&quot;:&quot;Settings&quot;,&quot;pip&quot;:&quot;PIP&quot;,&quot;menuBack&quot;:&quot;Go back to previous menu&quot;,&quot;speed&quot;:&quot;Speed&quot;,&quot;normal&quot;:&quot;Normal&quot;,&quot;quality&quot;:&quot;Quality&quot;,&quot;loop&quot;:&quot;Loop&quot;,&quot;start&quot;:&quot;Start&quot;,&quot;end&quot;:&quot;End&quot;,&quot;all&quot;:&quot;All&quot;,&quot;reset&quot;:&quot;Reset&quot;,&quot;disabled&quot;:&quot;Disabled&quot;,&quot;enabled&quot;:&quot;Enabled&quot;,&quot;advertisement&quot;:&quot;Ad&quot;,&quot;qualityBadge&quot;:{&quot;2160&quot;:&quot;4K&quot;,&quot;1440&quot;:&quot;HD&quot;,&quot;1080&quot;:&quot;HD&quot;,&quot;720&quot;:&quot;HD&quot;,&quot;576&quot;:&quot;SD&quot;,&quot;480&quot;:&quot;SD&quot;}}}"
    class="wp-block-h5ap-tailwind wp-block-h5ap-audioplayer">
            <div class='h5ap_lp'>
            <div class='bar bar-1'></div>
            <div class='bar bar-1'></div>
        </div>
    </div>

<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="590" height="214" src="https://wadetregaskis.com/wp-content/uploads/2025/07/waveforms-from-the-final-cut-pro-timeline-of-tascam-portacapture-x8-recordings-showing-the-difference-between-auto-gain-and-constant-gain.webp" alt="Waveforms from the Final Cut Pro timeline of Tascam Portacapture X8 recordings showing the difference between Auto Gain and constant gain" class="wp-image-8533" srcset="https://wadetregaskis.com/wp-content/uploads/2025/07/waveforms-from-the-final-cut-pro-timeline-of-tascam-portacapture-x8-recordings-showing-the-difference-between-auto-gain-and-constant-gain.webp 590w, https://wadetregaskis.com/wp-content/uploads/2025/07/waveforms-from-the-final-cut-pro-timeline-of-tascam-portacapture-x8-recordings-showing-the-difference-between-auto-gain-and-constant-gain-256x93.webp 256w, https://wadetregaskis.com/wp-content/uploads/2025/07/waveforms-from-the-final-cut-pro-timeline-of-tascam-portacapture-x8-recordings-showing-the-difference-between-auto-gain-and-constant-gain@2x.webp 1180w, https://wadetregaskis.com/wp-content/uploads/2025/07/waveforms-from-the-final-cut-pro-timeline-of-tascam-portacapture-x8-recordings-showing-the-difference-between-auto-gain-and-constant-gain-256x93@2x.webp 512w" sizes="(max-width: 590px) 100vw, 590px" /></figure>
</div>


<p>Auto Gain still does exactly what it always does &#8211; it <em>changes</em> the gain in response to the input.  That change <em>is</em> baked into the recorded audio track(s).</p>



<p>So in a nutshell, 32-bit floating-point recording <em>might</em> provide slightly more flexibility in some situations, but it does <em>not</em> mean you can ignore your input level settings, it does <em>not</em> mean you can use Auto Gain in every scenario, and it does <em>not</em> mean you cannot clip.</p>



<h2 class="wp-block-heading">Addendum: Technical details</h2>



<p>I tested post-production gain changes in Final Cut Pro, Logic Pro, &amp; Audacity.  All produced the exact same results (to my ears).  <a href="https://discussions.apple.com/thread/255782592" data-wpel-link="external" target="_blank" rel="external noopener">I had read that Final Cut Pro sometimes &#8216;bakes in&#8217; clipping with 32-bit float inputs</a>, as if it&#8217;s pre-rendering them down to some smaller dynamic range, so I wanted to rule out some Final Cut Pro-specific stupidity.  It&#8217;s possible that <em>all</em> these editors are doing that, but I&#8217;d be flabbergasted if that&#8217;s true.</p>



<p>The &#8220;industrial noise&#8221; sample I used was my dehumidifier, which is about 66dB according to <a href="https://apps.apple.com/us/app/decibel-x-db-sound-level-meter/id448155923" data-wpel-link="external" target="_blank" rel="external noopener">DecibelX</a> on my iPhone 14 Pro.  My office room tone is about 42dB according to the same app.</p>



<p>I used <a href="https://www.sennheiser.com/en-us/catalog/uncategorized/k-6/k-6-003279" data-wpel-link="external" target="_blank" rel="external noopener">Sennheiser K6</a> modules with an <a href="https://www.sennheiser.com/en-us/catalog/uncategorized/me-65/me-65-003283" data-wpel-link="external" target="_blank" rel="external noopener">ME65</a> and <a href="https://www.sennheiser.com/en-us/catalog/uncategorized/me-66/me-66-003284" data-wpel-link="external" target="_blank" rel="external noopener">ME66</a> attached, plugged into the Tascam Portacapture X8 via <a href="https://www.amazon.com/dp/B00KO8VY4O" data-wpel-link="external" target="_blank" rel="external noopener">3&#8242; Cable Matters XLR cables</a>.</p>



<p>I recorded at 96kHz because that&#8217;s what I&#8217;ll use most often.  I like the aliasing headroom above 48kHz (even though of course my final outputs are almost always 44.1kHz or 48kHz), but don&#8217;t see evidence that 192kHz provides meaningful additional benefit (and it also hurts the frequency response significantly, compared with 48kHz and 96kHz, <a href="https://tascam.com/us/product/portacapture_x8/spec#:~:text=Audio%20Performance" data-wpel-link="external" target="_blank" rel="external noopener">according to Tascam</a>).</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/32-bit-float-audio-recording-is-not-a-panacea/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<media:content url="https://wadetregaskis.com/wp-content/uploads/2025/07/waveforms-from-the-final-cut-pro-timeline-of-tascam-portacapture-x8-recordings-showing-the-difference-between-auto-gain-and-constant-gain.webp" medium="image" />
<post-id xmlns="com-wordpress:feed-additions:1">8524</post-id>	</item>
		<item>
		<title>Apple Vision Pro first impressions</title>
		<link>https://wadetregaskis.com/apple-vision-pro-first-impressions/</link>
					<comments>https://wadetregaskis.com/apple-vision-pro-first-impressions/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Wed, 21 Feb 2024 02:32:02 +0000</pubDate>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Apple Vision Pro]]></category>
		<category><![CDATA[Tested]]></category>
		<guid isPermaLink="false">https://wadetregaskis.com/?p=7758</guid>

					<description><![CDATA[This morning I tested out Apple&#8217;s Vision Pro in an Apple Store. And I&#8217;ve decided to write about it, mostly for my own future nostalgia, but also because my experience was markedly different to what&#8217;s been widely reported in tech news. I had intended to just buy an Apple Vision Pro on release day, but&#8230; <a class="read-more-link" href="https://wadetregaskis.com/apple-vision-pro-first-impressions/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p>This morning I tested out Apple&#8217;s Vision Pro in an Apple Store.  And I&#8217;ve decided to write about it, mostly for my own future nostalgia, but also because my experience was markedly different to what&#8217;s been widely reported in tech news.</p>



<p>I had intended to just buy an Apple Vision Pro on release day, but by the time I woke up and went to Apple&#8217;s online store &#8211; a couple of hours after pre-orders opened &#8211; they were showing a nearly two month shipping delay (and no in-store pick-ups at all).  So I figured there was no point ordering then; like it or not I&#8217;d have plenty of time to see what others think first.</p>



<p>Of course, it turns out it was not in fact massively out of stock.  I later found out that people had ordered theirs later that day, or even the next day, and were still included in the very first shipment.  Nobody had to wait two months for theirs, even if they ordered weeks later.  Apple&#8217;s online store was full of shit.</p>



<p>But I&#8217;m glad for it, because as soon as I was resigned to not ordering one, I was at ease with that decision.  I felt oddly relieved.  Having since read &amp; listened to many people&#8217;s impressions &amp; commentary, over the last month, my confidence in that decision only increased.  And now that I&#8217;ve tried one for real, I am certain of it.</p>



<h2 class="wp-block-heading">The Good</h2>



<h3 class="wp-block-heading">Ease of use</h3>



<p>I found the interface to be pretty intuitive.  Eye tracking worked very well, and gesture recognition was fairly reliable &#8211; neither were perfect, but then mouse tracking and &#8220;the key I <em>meant</em> to press&#8221; tracking isn&#8217;t perfect either. 😉</p>



<p>It&#8217;s hard to say with any confidence from such a short use of the Vision Pro, but my impression is that its eye &amp; gesture tracking is at least as accurate as touch on iPhones, iPads, and Apple Watches.  My Apple Watch &amp; iPhone routinely reject my taps just to spite me (they animate the GUI to show that they <em>know</em> that I did tap, yet they refuse to accept it).</p>



<p>Which is to say, I suspect it would annoy me at times with its errors but I don&#8217;t think it&#8217;d be a barrier to long-term use.</p>



<h3 class="wp-block-heading">Sound</h3>



<p>One thing which I did not remotely anticipate is how good the sound isolation is &#8211; even more astounding given there&#8217;s nothing in or on your ear to provide a physical barrier.  There were dozens of people in the Apple Store, including several pairs right around me going through their own Vision Pro demos or iPhone upgrades, and with the headset on I barely registered any of their conversations.</p>



<p>I find it hard to believe it&#8217;s due to traditional noise cancellation methods, just given the physical position and arrangement of the speakers, so this might be as much a psychological &#8216;trick&#8217; as anything.  In any case, it is effective.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="3206" height="1186" src="https://wadetregaskis.com/wp-content/uploads/2024/02/Apple-Vision-Profile-profile-view.avif" alt="" class="wp-image-7770" srcset="https://wadetregaskis.com/wp-content/uploads/2024/02/Apple-Vision-Profile-profile-view.avif 3206w, https://wadetregaskis.com/wp-content/uploads/2024/02/Apple-Vision-Profile-profile-view-1024x379.avif 1024w, https://wadetregaskis.com/wp-content/uploads/2024/02/Apple-Vision-Profile-profile-view-2048x758.avif 2048w, https://wadetregaskis.com/wp-content/uploads/2024/02/Apple-Vision-Profile-profile-view-256x95.avif 256w, https://wadetregaskis.com/wp-content/uploads/2024/02/Apple-Vision-Profile-profile-view-256x95@2x.avif 512w" sizes="(max-width: 3206px) 100vw, 3206px" /><figcaption class="wp-element-caption">That&#8217;s the tiny little speaker.  Yep, that tiny little slit.  It looks like it&#8217;s merely the vent or a microphone for noise cancellation, but that is the actual speaker &#8211; it sits a little above and forward of your ear, directing sound laterally along the side of your head, rather than directly into it.  It seems like weird placement until you realise that we humans are very good at hearing things directly in front of us, despite our ears being on the sides.  Somehow, the system works.</figcaption></figure>
</div>


<p>I was also impressed by how well 3D audio worked (and how good the sound quality was in general).  Better than AirPods (and Beats Pros) in my experience, although that&#8217;s a low bar.</p>



<p>I&#8217;m less sure how the Vision Pro&#8217;s speakers stack up against real headphones &#8211; even my aging Sony MDR-ZX780DCs &#8211; but it&#8217;s at least a reasonable comparison, which is impressive given the Vision Pro&#8217;s speaker&#8217;s form factor.</p>



<h3 class="wp-block-heading">Real world view</h3>



<p>When the Vision Pro was first announced I was a little disappointed that it uses cameras to &#8216;fake&#8217; transparency, rather than using genuine optical transparency.  Nonetheless, I was happy to see that the effect is mostly sufficient.</p>



<p>It wasn&#8217;t hard to find flaws if you looked &#8211; the cameras are not correctly placed to actually see what you see, for example, so any objects closer than about a metre have noticeable parallax errors.  That&#8217;s very noticeable if you do something as simple as move your hands in front of you, even at arms length.</p>



<p>Yet, looking around the real world worked fine in practice.  There is perceptible lag, but only <em>barely</em> &#8211; not enough to really cause any issues; you&#8217;re not going to accidentally walk into moving objects, for example, and you could probably even play [real] sports with the Vision Pro on (although you wouldn&#8217;t be doing yourself any favours).</p>



<p>I should note that it was in no way <em>realistic</em> because you&#8217;re clearly looking at a resolution-limited computer screen (more on that later).  And I didn&#8217;t even test things like dynamic range or optical aberrations of the lenses, as I was in a very evenly lit and low-contrast Apple Store.</p>



<h3 class="wp-block-heading">Immersive experiences</h3>



<p>I didn&#8217;t get to do the butterfly &amp; dinosaur one, which is a shame because by all accounts it&#8217;s particularly good, but I got the quick demo reel of spherical videos (along with a couple of &#8220;3D&#8221; photos &amp; videos).  It was a bit hit &amp; miss (more on that in later sections), but there were a few moments where I was actually pretty pleased with the experience.  I&#8217;ve visited Haleakalā a few times but never seen the crater &#8211; the weather has always conspired against me &#8211; so I actually got lost for a minute or so just enjoying that view.  The subtle animation of the mist drifting up &amp; down the crater walls was a sublime touch.  Likewise the gentle rain on the lake near Mount Hood.</p>



<p>The 3D video of a kid blowing out the candles on their birthday cake worked relatively well.  The feeling of depth was nice &#8211; aided by the cake being very close to the camera and the use of a wide angle lens.  I suspect wide-angle photos are much more amenable to the &#8220;3D photo&#8221; effect (they&#8217;re often described as more immersive even in plain 2D &#8211; although I think that effect is exaggerated by many people).</p>



<figure class="wp-block-video aligncenter"><video controls src="https://wadetregaskis.com/wp-content/uploads/2024/02/Apple-Vision-Pro-3D-birthday-cake-movie.mp4"></video><figcaption class="wp-element-caption">This is the video I&#8217;m talking about (above), but note that it feels here <em>nothing</em> like it does in the Vision Pro, where it fills your field of view and is much closer to being there in person.  Though still not fooling anyone into thinking it&#8217;s reality, to be clear.</figcaption></figure>



<h3 class="wp-block-heading">Human intrusions</h3>



<p>The way people very subtly appear when you look in their direction while in full VR mode was quite nice.  I like that they are visible but remain faint apparitions.  I had received the mistaken impression from second-hand accounts that intruders appeared largely opaquely; much more obtrusively.  The implementation strikes a good balance in providing awareness &#8211; and facilitating communication &#8211; without interrupting more than necessary.</p>



<h3 class="wp-block-heading">Physical comfort</h3>



<p>It&#8217;s of course very hard to deduce the real-world comfort of the Vision Pro from a mere fifteen minute session, but for whatever it&#8217;s worth I didn&#8217;t have any issues regarding weight, size, or contact.  The headset certainly wasn&#8217;t unnoticeable, but I had no issues forgetting about those aspects while using it.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="3580" height="2022" src="https://wadetregaskis.com/wp-content/uploads/2024/02/Apple-Vision-Pro-with-battery.avif" alt="" class="wp-image-7764" srcset="https://wadetregaskis.com/wp-content/uploads/2024/02/Apple-Vision-Pro-with-battery.avif 3580w, https://wadetregaskis.com/wp-content/uploads/2024/02/Apple-Vision-Pro-with-battery-1024x578.avif 1024w, https://wadetregaskis.com/wp-content/uploads/2024/02/Apple-Vision-Pro-with-battery-2048x1157.avif 2048w, https://wadetregaskis.com/wp-content/uploads/2024/02/Apple-Vision-Pro-with-battery-256x145.avif 256w, https://wadetregaskis.com/wp-content/uploads/2024/02/Apple-Vision-Pro-with-battery-256x145@2x.avif 512w" sizes="auto, (max-width: 3580px) 100vw, 3580px" /></figure>
</div>


<p>Also, it wasn&#8217;t until I was mostly done writing this article that I even remembered that the Vision Pro has a cable sticking out of it.  The battery pack stayed on the table in front of me, and the only time I noticed the cable &#8211; even in the slightest &#8211; was when putting the unit on (merely because I had to make sure the cable wasn&#8217;t tangled around my head).  I was expecting to feel the cable tugging and pushing on the headset during use, but did not.</p>



<p>This is in stark contrast to the power cable on my MacBook Air which is <em>constantly</em> getting snagged and yanked by my apparently villainous couch.  So I&#8217;m very curious how the Vision Pro would work in a more typical environment, rather than at the Apple Store with basically nothing but empty space around me as I sat on a stool.</p>



<h3 class="wp-block-heading">Minimal internal lens flare &amp; reflection</h3>



<p>At least in the bright Apple Store, I didn&#8217;t find the lens flare &amp; reflections to be distracting.  They are present, but I really only noticed them on the very first screen, where you&#8217;re in a black void and thus of course any such optical imperfections are most visible.</p>



<p>This is pretty good, by my estimation, since I find sunglasses to be irritating due to seeing the reflection of my own eyeballs in them.  The Vision Pro has the big benefit of the [mostly] enclosed mask, to largely eliminate external sources of light.  So it <em>should</em> have far fewer issues with flare &amp; reflections, as a matter of principle.</p>



<p>The main reflection I did notice &#8211; and had a slightly harder time ignoring &#8211; was the glow of the screen on the inside of the light shield.  It&#8217;s a pity Apple used a grey, textured material for the interior, rather than something dark like <a href="https://www.the-black-market.com/marketplace/mb-fabric-kiwami/" data-wpel-link="external" target="_blank" rel="external noopener">Musou black fabric</a>.</p>



<p>Still, unless you plan to work in a very dark or high-contrast VR environment &#8211; perhaps the moonscape that I tried briefly during the demo &#8211; you should be fine in this respect.</p>



<h3 class="wp-block-heading">Real world geometry is no limit</h3>



<p>Folks have unanimously stated that &#8211; surprising or not &#8211; there&#8217;s no visual incongruence with pushing AR elements &#8220;through&#8221; real-world ones.  One of the first tests I did was to grab a window and shove it through the table in front of me.  Despite clearly violating all logic, my eyes &amp; brain apparently had no issue with it &#8211; it didn&#8217;t feel wrong, or weird, or uncomfortable.</p>



<p>So &#8211; while I didn&#8217;t test it &#8211; I can easily believe that you can indeed watch a movie on a [virtually] cinema-sized screen despite being stuck in cattle class on a plane.  And I can imagine it would be a genuine emotional benefit to have that feeling of so much more personal space, even though it&#8217;s &#8220;fake&#8221;.</p>



<p>Honestly, if I were to get a Vision Pro its use as an aid to commercial air travel might actually be one of the most justifiable reasons.</p>



<h2 class="wp-block-heading">The Bad</h2>



<h3 class="wp-block-heading">Buggy demo units</h3>



<p>My time actually using the Vision Pro was significantly shortened by the demo unit refusing to reset properly.  It took three attempts &#8211; and a consultation between Apple Store staff &#8211; before they finally got it to work properly.</p>



<p>On the first two usage attempts it went straight from the &#8220;hold down the crown button to shift the lenses&#8221; to the home screen, bypassing eye tracking calibration.  It didn&#8217;t seem particularly unusable without proper calibration, but my Apple handler refused to start the demo without it.</p>



<h3 class="wp-block-heading">Bad light seal</h3>



<p>Perhaps it&#8217;s just me and my apparently tiny nose, but there was a <em>big</em> gap between the unit and my nose.  I could easily look through and see the table in front of me, my own lap, etc.  This surprised me given Apple themselves have put a lot of emphasis on the importance of a good fit and no light leaks in order to have the proper experience.</p>



<p>However, in use I didn&#8217;t find it much of an issue &#8211; I wasn&#8217;t distracted nor blinded by the light leaking in.  I think as long as my focus was actually on the screens of the Vision Pro, and my attention on whatever I was looking at within them, it was okay.  Although, just like the glare &amp; reflections within the lenses, it may not be so easy to ignore in a dark VR environment.</p>



<h3 class="wp-block-heading">Non-immersive experiences</h3>



<p>Most of the 3D photos &amp; videos I saw didn&#8217;t do much for me.  I can clearly see the appeal in theory, but the implementation on the Vision Pro is frustrated by several factors.</p>



<p>For a start a lot of the 3D photos &#8211; and especially videos &#8211; were blurry outside of the centre<sup data-fn="b2c66feb-281e-47f6-ba42-380f87bf438f" class="fn"><a href="#b2c66feb-281e-47f6-ba42-380f87bf438f" id="b2c66feb-281e-47f6-ba42-380f87bf438f-link">1</a></sup>.  <em>Really</em> blurry, in the case of the Alicia Keys clip &#8211; she was reasonably in focus but almost everything else was <em>way</em> out of focus.  I think in the original recording, although I guess I can&#8217;t be sure that it wasn&#8217;t buggy <a href="https://en.wikipedia.org/wiki/Foveated_rendering" data-wpel-link="external" target="_blank" rel="external noopener">foveated rendering</a> or somesuch.</p>



<p>Second, even when they weren&#8217;t blurry, they were often low resolution.  Hard to say whether this is because of the Vision Pro itself (more on this later) or with the source materials.</p>



<p>I was hoping that the panoramas would be a big (pleasant) experience, as I&#8217;m quite a fan of taking panoramic photos (and photo spheres) even though you can&#8217;t really view them well on fixed displays.  In a way I&#8217;ve been waiting and preparing for VR goggles for decades.  Heck, I was super excited when <a href="https://en.wikipedia.org/wiki/QuickTime_VR" data-wpel-link="external" target="_blank" rel="external noopener">Quicktime VR</a> was released, even though it turned out to unfortunately be decades ahead of its time.</p>



<p>Yet, I was a bit disappointed with the panorama experience on the Vision Pro.  I&#8217;m not entirely sure why, although I know one obvious reason was that you can see the edges.  Any illusion of being there is rattled when the edge of the photo appears in view.  Photo spheres are the better way to go.</p>



<p>Seeing the edges might sound trite &#8211; after all, we see the edges of photos and videos <em>all the time</em> on our existing displays; what&#8217;s the problem?  It&#8217;s a good question &#8211; I don&#8217;t know if I can explain it, I just know what I felt.  Perhaps it&#8217;s an uncanny valley sort of problem &#8211; because you <em>are</em> in a nominally immersive, VR environment, it matters so much more when the illusion is shattered.  Perhaps it&#8217;s something you get used to?</p>



<p>In any case, even for photo spheres the feeling of immersion is compromised by the field of view being way too small…</p>



<h3 class="wp-block-heading">Limited field of view</h3>



<p>I had heard that the Vision Pro has a limited field of view &#8211; even compared to its contemporaries &#8211; but I was still surprised to see what that&#8217;s actually like.  It&#8217;s even more limited than I expected.  It&#8217;s like wearing bad goggles &#8211; <a href="https://upload.wikimedia.org/wikipedia/commons/2/28/Horses_2.jpg" data-wpel-link="external" target="_blank" rel="external noopener">blinkers</a>, perhaps.  A kind of tunnel vision.  I&#8217;ve heard it said that you &#8220;just&#8221; need to keep your eyes centred and move only your head instead, but even looking dead ahead I clearly perceived the outline of the screens, and it took some effort to ignore that (mostly successfully).</p>



<p>As noted earlier, this kinda ruined any would-be feeling of immersion for me, in most cases.  You&#8217;re not much more &#8220;there&#8221; than you are viewing a photo in a picture frame (or on a traditional screen), or watching a video on a TV placed too far away.</p>



<h3 class="wp-block-heading">Everything&#8217;s too close &amp; big by default</h3>



<p>I was surprised that windows open way too close (in perceived depth) and too big (in field of view) by default.  I was constantly manually resizing things and pushing them away from me, in order to actually be able to see them [fully] and comfortably.</p>



<p>I do not like having to move my head just to look around a single window, it turns out.</p>



<p>I also found it quite unintuitive that windows enlarge as you push them away, maintaining the same angle of view.  It was not only annoying &#8211; since the whole point of pushing them away was to make them smaller and feel less claustrophobic &#8211; but it made it hard to actually judge if &amp; to what degree they were moving.  More than once I repeated a &#8220;get back&#8221; window movement because it seemed like the first try was silently ignored (and honestly, I can&#8217;t be sure it wasn&#8217;t &#8211; that&#8217;s the point).</p>



<h3 class="wp-block-heading">3D movies</h3>



<p>I watched the brief trailer for Super Mario Bros.  I didn&#8217;t really get much of a 3D effect, but I did get the very limited field of view (see prior point) and poor visual quality (see below).  I&#8217;m actually a bit bullish on 3D movies, but I think we&#8217;re still just not there technologically<sup data-fn="c293c2c5-07cc-474b-93da-d22dc1847861" class="fn"><a href="#c293c2c5-07cc-474b-93da-d22dc1847861" id="c293c2c5-07cc-474b-93da-d22dc1847861-link">2</a></sup>.</p>



<p>I <em>do</em> like to have a big screen &#8211; such that my vision is pretty filled by a movie &#8211; but apparently I really don&#8217;t like it when there&#8217;s a black mask over the outskirts of the movie.  Even if it&#8217;s only visible in my peripheral vision.</p>



<p>Possibly I&#8217;d get used to this in time, but of course I don&#8217;t really want to &#8211; I <em>should</em> be able to see the whole movie.  Otherwise, what&#8217;s the point?  If the director wanted me to see only a subset of the view, they&#8217;d have filmed it that way.</p>



<p>I presumably could also have manually moved the window back &#8211; and I did for some of the other videos I watched &#8211; but it&#8217;s just not practical to have to do that for every video I ever watch.</p>



<p>Perhaps the problem is in taking existing movies &#8211; designed for a relatively tiny field of view (≤40° typically) &#8211; and naively shoving them in your face in the name of immersion.  Maybe what we need is to add <em>new</em> content <em>around</em> the existing frame.  Despite our huge angle of vision, our focus area is actually quite small.  It&#8217;s uncomfortable and confusing to have to look around frequently and rapidly just to make sense of a movie.</p>



<h2 class="wp-block-heading">The Ugly</h2>



<h3 class="wp-block-heading">Very blurry &amp; low resolution</h3>



<p>I was really surprised to see pixels.  Immediately.  Even though I was already aware &#8211; mainly from <a href="https://atp.fm/573" data-wpel-link="external" target="_blank" rel="external noopener">John&#8217;s stumbling</a> <a href="https://atp.fm/574" data-wpel-link="external" target="_blank" rel="external noopener">over the topic</a> on <a href="https://atp.fm" data-wpel-link="external" target="_blank" rel="external noopener">ATP</a> &#8211; that the PPD (Pixels per Degree) is actually quite poor on the Vision Pro, at just <a href="https://www.ifixit.com/News/90409/vision-pro-teardown-part-2-whats-the-display-resolution" data-wpel-link="external" target="_blank" rel="external noopener">34</a><sup data-fn="e5a18ecf-b94b-4d63-94e7-a27f928a4fe8" class="fn"><a href="#e5a18ecf-b94b-4d63-94e7-a27f928a4fe8" id="e5a18ecf-b94b-4d63-94e7-a27f928a4fe8-link">3</a></sup>.  A &#8220;Retina display&#8221; at typical viewing distances is around 100.  Even an ancient non-Retina Apple display is about 50.</p>



<p>In fact, 34 is about the same as an original Macintosh from 1984. 😳</p>



<p>I found <a href="https://qasimk.io/screen-ppd/" data-wpel-link="external" target="_blank" rel="external noopener">this handy calculator for determining PPD</a>, in case you want to estimate for your own devices.  If you have a 5k 27&#8243; monitor, for example, but typically sit with your nose about 4cm from it, then you&#8217;re already used to the Vision Pro&#8217;s display resolution<sup data-fn="0c1a4326-2fd3-433f-ad6b-0760ed38eeaf" class="fn"><a href="#0c1a4326-2fd3-433f-ad6b-0760ed38eeaf" id="0c1a4326-2fd3-433f-ad6b-0760ed38eeaf-link">4</a></sup>.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>For reference, <a href="https://en.wikipedia.org/wiki/Visual_acuity#Physiology" data-wpel-link="external" target="_blank" rel="external noopener">the human eye is apparently limited to about 128 PPD at best</a>.  That seems plausible just based on my own experience &#8211; I can&#8217;t really <em>see</em> individual pixels at ~100 PPD with my iMac Pro, for example, but my eyesight&#8217;s not perfect and that 128 number assumes absolute best-case conditions for distinguishing detail, which perhaps isn&#8217;t the typical reality.</p>
</div></div>



<p>Furthermore, unlike the original Macintosh&#8217;s screen &#8211; which at least had quite crisp pixels &#8211; the Vision Pro is blurry as well.  That surprised me less &#8211; I figured there might be some calibration required, which was perhaps unintentionally skipped by the buggy demo unit.  But my Apple Store handler didn&#8217;t seem to think so, yet seemed surprised by my comments (that the view was pixelated and blurry).  He had no real answer to that.  He implied (by omission) that my experience was normal. 😕</p>



<h3 class="wp-block-heading">Jittery</h3>



<p>The other thing I noticed within a literal second of using the unit is that the <em>artificial</em> visuals jitter &#8211; jump randomly about by a pixel or two.  All the time.  It&#8217;s less noticeable in full VR mode where you have no objective reference in the form of real world objects, but in AR mode everything displayed by the Vision Pro is shaking.  I was able to mostly ignore it throughout the demo &#8211; but only with conscious effort.  Any time I let my mind or vision wander in the slightest, the shaking immediately bothered me once more.</p>



<p>To be clear, this was while sitting perfectly still.  I didn&#8217;t really test actual lateral movement of the headset, as I was asked to stay seated for the entire demo.</p>



<p>Since everything you see in the Vision Pro is technically artificial &#8211; it&#8217;s all from opaque LED screens, even the view of the real world that&#8217;s piped in view cameras &#8211; this jitteriness is baffling.  I&#8217;m pretty sure it was the virtual objects that were moving, not the feed from the real world &#8211; just based on my own perception of what was and wasn&#8217;t moving &#8211; but I have no explanation for why that would be the case.  While I could sense a tiny bit of a lag in the real world view, it seemed to remain correctly positioned (and <em>stably</em> positioned, more to the point) relative to objective reality.</p>



<p>It&#8217;s hard to say from just fifteen minutes of use, but I suspect this jittering would contribute significantly to eye strain.</p>



<h3 class="wp-block-heading">Eye strain</h3>



<p>When I took the Vision Pro off, my eyes were immediately assaulted by [comparatively] bright light and much sharper everything.  It was both uncomfortable and a relief.</p>



<p>It took several minutes for my vision to de-blur.  It&#8217;s a very similar experience to looking through the viewfinder on my <a href="https://www.nikonusa.com/p/z-9/1669" data-wpel-link="external" target="_blank" rel="external noopener">Z9</a> for an extended period.  And similarly it took a good couple of hours for my eyes to get fully back to normal, and to stop feeling strained.</p>



<p>Based on that parallel experience, it seems <em>very</em> clear that I cannot use a Vision Pro for any significant amount of time, without serious eye strain that causes lasting blurry vision and headaches. 😣</p>



<p>I&#8217;m assured by my optometrist that my vision is actually excellent &#8211; much better than average for my age, and I&#8217;m not <em>that</em> old yet anyway &#8211; and I&#8217;ve never needed glasses for anything<sup data-fn="7ce3e963-6c60-435d-b877-3756cec415c8" class="fn"><a href="#7ce3e963-6c60-435d-b877-3756cec415c8" id="7ce3e963-6c60-435d-b877-3756cec415c8-link">5</a></sup>.  So I don&#8217;t think the problem is me.  I think the problem is quite apparent from the facts: the Vision Pro simply has a very low-resolution, unstable display that is uncomfortable to look at.</p>



<h2 class="wp-block-heading">So now what?</h2>



<p>Now I wait.</p>



<p>If I&#8217;d decided to develop apps for the Vision Pro, as a business choice, then it&#8217;d make sense to own one &#8211; it could be considered a dev kit; an early prototype.  But for now I&#8217;m content not to.  There doesn&#8217;t seem to be a rush &#8211; the app market is comparatively tiny.</p>



<p>For personal use it makes no sense to get a Vision Pro.  Aside from its novelty factor and some very limited uses, it&#8217;s inferior to a Mac for almost all purposes (like productivity tasks, watching movies, reading books, video calls, etc).</p>



<p>Yet I&#8217;m hopeful that the AR and VR headsets&#8217; times will come, eventually.  Still at least several years from now, based on what I&#8217;m seeing with the Vision Pro.  But one day.</p>



<p>I&#8217;ve been trying to discern if the Vision Pro is an iPhone moment or an iPad moment, since it was announced.  I was bearish on the iPhone and bullish on the iPad, apparently at odds with the entire rest of the planet.  And I&#8217;ve since conceded defeat entirely on the iPad &#8211; when I replaced my iPad Pro 13&#8243; with a MacBook Air, it was such a <em>relief</em> &#8211; I finally had a device which I could use freely and broadly, rather than a glorified iPhone for web browsing and watching video.  So I&#8217;m leery about getting too enthusiastic about a new class of device which clearly has some of the same existential challenges as the iPad.</p>



<p>One thing seems clear &#8211; it&#8217;s not a Mac moment.  I don&#8217;t see anything with the Vision Pro that fundamentally changes the nature of computing, let-alone day-to-day life.  But then, I don&#8217;t think it&#8217;s fair to expect it to &#8211; there&#8217;s only been one Mac moment so far.</p>


<ol class="wp-block-footnotes"><li id="b2c66feb-281e-47f6-ba42-380f87bf438f">This might be just flaws in the demo material, although it&#8217;s hard to imagine Apple letting that fly.  I have to assume the Vision Pro itself is the limitation here.<br><br>That said, in the &#8220;3D&#8221; video of the girl popping bubbles I saw what looked exactly like JPEG or MPEG compression artefacts (mainly blocking and over-smoothing).  I can&#8217;t be certain whether that&#8217;s an issue in the video file or in its playback by the Vision Pro, but I would assume that graphical rendering glitches would appear somewhat differently…? <a href="#b2c66feb-281e-47f6-ba42-380f87bf438f-link" aria-label="Jump to footnote reference 1">↩︎</a></li><li id="c293c2c5-07cc-474b-93da-d22dc1847861">Most immediately, we lack the display technology to show a 4K (or better) video in 3D, whether via a headset like the Vision Pro or traditional means like coloured or polarised glasses.  But that&#8217;s merely the easy part &#8211; we also need real-time rendering of the movie itself, in order to do proper foveated depth rendering &#8211; i.e. so that if you look at something in the foreground or background you can actually bring it into focus, even if the director hadn&#8217;t planned on that.  As best I can tell practically nobody is even working on that yet. 😕 <a href="#c293c2c5-07cc-474b-93da-d22dc1847861-link" aria-label="Jump to footnote reference 2">↩︎</a></li><li id="e5a18ecf-b94b-4d63-94e7-a27f928a4fe8">Tangentially, it&#8217;s baffling how news media outlets like <a href="https://www.theverge.com/2024/2/7/24064558/apple-vision-pro-pixel-density-ifixit-teardown" data-wpel-link="external" target="_blank" rel="external noopener">The Verge can shamelessly try to spin that as <em>in any way good</em></a>.  Talk about drinking the Apple koolaid. 😠 <a href="#e5a18ecf-b94b-4d63-94e7-a27f928a4fe8-link" aria-label="Jump to footnote reference 3">↩︎</a></li><li id="0c1a4326-2fd3-433f-ad6b-0760ed38eeaf">And if you can actually focus at that distance, then I applaud &amp; hate you, because I can only reminisce fondly about those days.  Stupid aging. 😔 <a href="#0c1a4326-2fd3-433f-ad6b-0760ed38eeaf-link" aria-label="Jump to footnote reference 4">↩︎</a></li><li id="7ce3e963-6c60-435d-b877-3756cec415c8">Although admittedly I can no longer focus on the end of my nose like I used to be able to do when I was a few years younger, so I know my descent into old-age far-sightedness has begun; I&#8217;m told I will need reading glasses at some point in my life (barring an unfortunate early exit). <a href="#7ce3e963-6c60-435d-b877-3756cec415c8-link" aria-label="Jump to footnote reference 5">↩︎</a></li></ol>]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/apple-vision-pro-first-impressions/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://wadetregaskis.com/wp-content/uploads/2024/02/Apple-Vision-Pro-3D-birthday-cake-movie.mp4" length="13687254" type="video/mp4" />

			<media:content url="https://wadetregaskis.com/wp-content/uploads/2024/02/Apple-Vision-Pro-2048x1123.avif" medium="image" />
<post-id xmlns="com-wordpress:feed-additions:1">7758</post-id>	</item>
		<item>
		<title>Creating files safely in Mac apps</title>
		<link>https://wadetregaskis.com/creating-temporary-files-safely-in-mac-apps/</link>
					<comments>https://wadetregaskis.com/creating-temporary-files-safely-in-mac-apps/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Wed, 31 Jan 2024 02:48:27 +0000</pubDate>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[App sandboxing]]></category>
		<category><![CDATA[Broken by design]]></category>
		<category><![CDATA[File system]]></category>
		<category><![CDATA[Files]]></category>
		<category><![CDATA[Insecure]]></category>
		<category><![CDATA[mkstemp]]></category>
		<category><![CDATA[mktemp]]></category>
		<category><![CDATA[NSString]]></category>
		<category><![CDATA[O_CREAT]]></category>
		<category><![CDATA[O_EXCL]]></category>
		<category><![CDATA[O_TRUNC]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[OutputStream]]></category>
		<category><![CDATA[Swift]]></category>
		<category><![CDATA[Tested]]></category>
		<category><![CDATA[tmp files]]></category>
		<category><![CDATA[umask]]></category>
		<category><![CDATA[Undocumented]]></category>
		<guid isPermaLink="false">https://wadetregaskis.com/?p=7603</guid>

					<description><![CDATA[Creating a file is a pretty basic and conceptually simple task, that many applications do (whether they realise it or not &#8211; library code often does this too, at least for temporary files such as caches or for communicating between programs). So you&#8217;d think it&#8217;d be trivial to do correctly. Alas, it is not. ☝️&#8230; <a class="read-more-link" href="https://wadetregaskis.com/creating-temporary-files-safely-in-mac-apps/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p>Creating a file is a pretty basic and conceptually simple task, that many applications do (whether they realise it or not &#8211; library code often does this too, at least for temporary files such as caches or for communicating between programs).</p>



<p>So you&#8217;d think it&#8217;d be trivial to do correctly.  Alas, it is not.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>☝️ This is a challenging topic, and I&#8217;ve done my best to research thoroughly and check everything experimentally.  Still, it&#8217;s certainly possible I&#8217;ve made a mistake or overlooked something.  Please let me know of any errors, in the comments at the bottom.<br><br>Also, it&#8217;s a dense topic, so I&#8217;ve tried to highlight (in bold) the most important points.  In case of TL;DR. 🙂</p>
</div></div>



<h1 class="wp-block-heading">What is the danger?</h1>



<p>There are two key things to watch out for when creating files:</p>



<ol class="wp-block-list">
<li><strong>Security flaws due to incorrect use of, or badly designed, file system APIs</strong>.  This is especially a concern for privileged applications (e.g. setuid) or those that ever run with elevated privileges (e.g. via sudo or by admin users).  Unintentional reuse of existing files can be (and <a href="https://nvd.nist.gov/vuln/detail/CVE-2011-4119" data-wpel-link="external" target="_blank" rel="external noopener">has</a> <a href="https://nvd.nist.gov/vuln/detail/CVE-2020-28407" data-wpel-link="external" target="_blank" rel="external noopener">been</a>) the cause of major security vulnerabilities.  <a href="#file-system-races-in-more-detail">See the appendix for more details</a>.<br><br>Another security concern is leaking sensitive information to other programs (or users, on a shared computer).  This can easily happen if files are created in places other programs or users can access, such as shared folders.  The files may be inadvertently created with inappropriately broad permissions (e.g. world-readable) or the parent folder&#8217;s permissions might permit others to change the permissions of the file after the fact even if they don&#8217;t own it (e.g. a world-writable folder <em>without</em> the sticky bit set).</li>



<li><strong>Data loss risks due to inadvertent overwrites or modifications of existing files</strong>.  If you&#8217;re not <em>certain</em> you know what file is already at a given path on disk, <em>and</em> that you should be allowed to overwrite it, then you should not.  Usually, the user has to give <em>explicit</em> permission (e.g. Save dialogs that explicitly ask the user if they intend to overwrite an existing file).<br><br>This risk is greatest for persistent files, e.g. files in your Documents folder.  Those are usually where the user stores their most important data.<br><br>For temporary files the level of danger is generally lower but not zero.  If you&#8217;re using a system-designated temporaries folder, then in principle anything in there is unimportant anyway.  However, randomly mucking with temporary files can still cause data corruption or loss, depending on how those files are used by applications (including your own).  e.g. they might store autosaves of the current document in temporary files, and directly copy / move those files when the user formally saves.  Thus, modifying the temporary file might end up modifying the user&#8217;s actual save file.</li>
</ol>



<h1 class="wp-block-heading">How are these dangers mitigated?</h1>



<h2 class="wp-block-heading">App Sandboxing helps</h2>



<p>As annoying &amp; limiting as <a href="https://developer.apple.com/documentation/security/app_sandbox/" data-wpel-link="external" target="_blank" rel="external noopener">App Sandboxing</a> can be in other regards, it is one of the best single steps an application author can take to improve file security.  For the most part, your application is the only (non-system &amp; non-privileged<sup data-fn="77cbc356-ca3e-4dff-892d-ddf0ca3c31c9" class="fn"><a href="#77cbc356-ca3e-4dff-892d-ddf0ca3c31c9" id="77cbc356-ca3e-4dff-892d-ddf0ca3c31c9-link">1</a></sup>) application that can write within its sandbox, and you&#8217;ll usually be creating files only within your own sandbox.</p>



<h2 class="wp-block-heading">Avoid /private/tmp (a.k.a. /tmp)</h2>



<p><code>/tmp</code> is merely a symlink to <code>/private/tmp</code>.</p>



<p><code>/private/tmp</code> is <em>world-readable</em>: every program on the computer can access its contents.  Thankfully, it&#8217;s not <em>as</em> bad it first appears &#8211; <code>/private/tmp</code> is special in that it has the &#8220;<a href="https://en.wikipedia.org/wiki/Sticky_bit" data-wpel-link="external" target="_blank" rel="external noopener">sticky bit</a>&#8221; set, which imposes some key restrictions on what users may do to each other&#8217;s files (most importantly, that they can&#8217;t delete them even though <code>/tmp</code> is world-writable).</p>



<p>Still, it&#8217;s better to use the tmp folder designated via <code><a href="https://developer.apple.com/documentation/foundation/filemanager" data-wpel-link="external" target="_blank" rel="external noopener">FileManager</a>.<a href="https://developer.apple.com/documentation/foundation/filemanager/1409234-default" data-wpel-link="external" target="_blank" rel="external noopener">default</a>.<a href="https://developer.apple.com/documentation/foundation/filemanager/1642996-temporarydirectory" data-wpel-link="external" target="_blank" rel="external noopener">temporaryDirectory</a></code> or <code><a href="https://developer.apple.com/documentation/foundation/url" data-wpel-link="external" target="_blank" rel="external noopener">URL</a>.<a href="https://developer.apple.com/documentation/foundation/url/3988477-temporarydirectory" data-wpel-link="external" target="_blank" rel="external noopener">temporaryDirectory</a></code>.  Though the location and security properties of that folder varies:</p>



<ul class="wp-block-list">
<li>If App Sandboxing is in use, it&#8217;s an application-specific folder like <code>/Users/SadPanda/Library/Containers/com.sadpanda.MyApp/Data/tmp/</code>.  No other (unprivileged) application can access that folder.</li>



<li>If App Sandboxing is not in use, it&#8217;s a user-specific folder like <code>/var/folders/v3/8anbad56df64adf3_35gj346jg13v19a/T/</code> (the exact path varies between user accounts and computers, by design for security).  That folder is still insecure &#8211; it is accessible to all programs of the same user &#8211; but at least you don&#8217;t have to worry about other [unprivileged] users.</li>
</ul>



<p>If used correctly, <code>/private/tmp</code> has essentially the same properties as the user-specific temporary folders.  Using it correctly starts with ensuring files are created with no group or &#8216;other&#8217; privileges, but the full complexities are beyond the scope of this post.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>☝️ <code>/private/tmp</code> is not accessible when App Sandboxing is enabled.</p>
</div></div>



<h2 class="wp-block-heading" id="consider-setting-a-restrictive-umask">Consider setting a restrictive umask</h2>



<p>When you create a file on any Linux or Unix system, such as macOS, its permissions are set based on a combination of the specific API used and the process-wide <code><a href="https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/umask.2.html" data-wpel-link="external" target="_blank" rel="external noopener">umask</a></code>.  Good APIs will require you to specify the initial privileges of the file, but some do not (e.g. <code>fopen</code>) and instead use some arbitrary default, such as creating files as readable and writable <em>by anyone</em> (<a href="https://en.wikipedia.org/wiki/File-system_permissions#Numeric_notation" data-wpel-link="external" target="_blank" rel="external noopener">0666</a>).  That is bad &#8211; usually you <em>don&#8217;t</em> want your files readable by any other users.</p>



<p>While you should generally avoid APIs that don&#8217;t provide proper control over file permissions, you realistically may not even <em>know</em> if you&#8217;re using such APIs because they might be employed by library code you don&#8217;t control (including Apple&#8217;s).</p>



<p>While it&#8217;s possible that the parent folder(s) will protect a given file (by preventing access to their contents by other users), it&#8217;s safest to not assume that.</p>



<p>The umask can help mitigate the dangers of bad APIs by specifying which privileges are <em>not</em> to be granted by default<sup data-fn="afb3f9ba-f914-4dd9-803c-2aad08a6800a" class="fn"><a href="#afb3f9ba-f914-4dd9-803c-2aad08a6800a" id="afb3f9ba-f914-4dd9-803c-2aad08a6800a-link">2</a></sup>.</p>



<p>The umask defaults to denying write access to groups and other users (0022), which is a start but still not good &#8211; read access to private user data is still a concern.</p>



<p>However &#8211; beyond the overly permissive default setting &#8211; there at two problems with umask:</p>



<ol class="wp-block-list">
<li>It is a process-wide global.  Modifications to it apply to all threads in your process, which makes it dangerous to modify.  e.g. you might be creating a particularly sensitive file and need the umask to be 0177, so you set it to that, but before you actually get to execute the file creation another thread sets the umask to 0000 because <em>it</em> wants to create an otherwise unrelated file that&#8217;s world-writable.<br><br>So unfortunately the only safe way to use umask is to set it very early in process launch before any additional threads are created<sup data-fn="9dedd292-995e-479b-ba90-8d2d787e436e" class="fn"><a href="#9dedd292-995e-479b-ba90-8d2d787e436e" id="9dedd292-995e-479b-ba90-8d2d787e436e-link">3</a></sup>.<br><br>You can <em>try</em> to enforce your own mutual exclusion around umask, e.g. with a global lock, but beware of 3rd party code (including Apple&#8217;s) that might modify umask without following your mutual exclusion protocol.  <em>Generally</em> umask isn&#8217;t modified often, so this arguably <em>is</em> possible to achieve in practice, but <em>proving</em> that there are no missed calls to <code>umask</code> can be practically impossible.</li>



<li>Lots of existing code, that you might be unwittingly using via libraries or frameworks, assumes the umask remains at its default.  Thus, making it more restrictive might break things in ways &amp; places that are difficult to foresee.<br><br>In general the more complicated your program, that more of a concern this is.  e.g. most command-line programs can modify umask without causing issues, but GUI programs pull in a <em>lot</em> of framework code and functionality, some of which might implicitly rely on certain umask bits.  Unfortunately the only way to find out is experimentally.</li>
</ol>



<p>So umask is not a panacea.  Still, setting a restrictive umask improves security if you can get away with it.</p>



<h2 class="wp-block-heading">Correctly use the right file creation APIs</h2>



<p>In short, creation of files needs to (generally) not extend nor replace existing files, and ensure correct initial file permissions.</p>



<p>There are quite a lot of APIs for creating a file in macOS.  I&#8217;m going to enumerate only the most common ones provided by the system libraries &amp; frameworks.</p>



<h3 class="wp-block-heading"><code>⚠️</code> <code><a href="https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/open.2.html" data-wpel-link="external" target="_blank" rel="external noopener">open</a></code></h3>



<p>Nominally this is <em>the</em> low-level API for opening (existing or new) files, although as you&#8217;ll see later it&#8217;s not actually the only one.</p>



<p>It has a flags parameter, which is how you tell it what to <em>actually</em> do, between opening existing files, creating new ones, etc.  Two of the most important flags are <code>O_CREAT</code> and <code>O_EXCL</code>.  <code>O_CREAT</code> tells <code>open</code> to create the file.  If <code>O_EXCL</code> is specified, <code>open</code> will fail if a file already exists at the target location.  If <code>O_EXCL</code> is <em>not</em> specified, <code>O_CREAT</code> is interperted as &#8220;create the file <em>if necessary</em>&#8221; &#8211; meaning, it will actually open the existing file if it exists, and <em>not</em> create a new file.</p>



<p><strong>You should almost never use <code>O_CREAT</code> without <code>O_EXCL</code>.</strong>  If you really do intend to overwrite the existing file, then it&#8217;s safer to remove the existing file first (e.g. with <code><a href="https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/unlink.2.html" data-wpel-link="external" target="_blank" rel="external noopener">unlink</a></code>), and <em>then</em> create your new file (with <code>O_EXCL</code> to ensure no other file appears at the target location in the interim).  That way you ensure the new file has your expected location (not a symlink) and attributes (e.g. file permissions).</p>



<p>Note that <code>O_EXCL</code> will fail if the target is a symlink, so you don&#8217;t need to specify <code>O_NOFOLLOW</code> (although it doesn&#8217;t hurt).</p>



<p><code>open</code> requires you to specify the new file&#8217;s permissions if you use the <code>O_CREAT</code> option (and respects the umask), which is good as it makes you think about what the permissions should be, and lets you set them to something suitable for each use case.  These permissions are <em>only</em> applied to <em>new</em> files, so in a nutshell <strong>you cannot rely on them if you don&#8217;t use <code>O_EXCL</code>.</strong></p>



<p>For that reason also, <strong>you typically should not use <code>O_TRUNC</code>.</strong>  If you don&#8217;t need the contents of the existing file, <em>delete the file first</em>.  &#8220;Reusing it&#8221; via <code>O_TRUNC</code> <em>also</em> reuses its permissions and other attributes, which might not be set correctly for your intentions (e.g. a malicious program might have pre-created the file as world-readable, even though you intend it to be readable only by the current user and have otherwise done the right things such as set the umask to ensure that).</p>



<p>One reason you <em>might</em> validly use <code>O_TRUNC</code> is if you anticipate there being multiple <em>hard</em> links to the file, and you want to modify the file as seen by the other links too.  This is very rare.  Be <em>sure</em> that&#8217;s necessary before you use <code>O_TRUNC</code>, and consider putting validations in place to ensure the file you&#8217;ve just opened for reuse has the expected permissions and attributes (e.g. via <code><a href="https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fstat.2.html" data-wpel-link="external" target="_blank" rel="external noopener">fstat64</a></code> and similar APIs that operate on the file descriptor &#8211; do <em>not</em> use <code>lstat</code> or any other path-based APIs).</p>



<h3 class="wp-block-heading">⚠️ <code><a href="https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/fopen.3.html" data-wpel-link="external" target="_blank" rel="external noopener">fopen</a></code></h3>



<p>This is essentially just a wrapper atop <code>open</code>, with the &#8220;w&#8221; and &#8220;a&#8221; flags mapping to <code>O_CREAT</code> (essentially) and the &#8220;x&#8221; flag mapping to <code>O_EXCL</code>.  The same rules apply, so <strong>you should generally never use &#8220;w&#8221; without the &#8220;x&#8221; flag as well, nor &#8220;a&#8221; without &#8220;+&#8221;.</strong></p>



<p><code>fopen</code> does <em>not</em> let you specify the permissions of the created file, instead defaulting to 0666 (readable &amp; writable by <em>everyone</em>) which is a terrible default.  It does respect umask, so by default it will create files as 0644 which is marginally better.  But, <a href="#consider-setting-a-restrictive-umask">as discussed previously</a>, it is difficult to guarantee what the umask actually is at any particular point in time.  So <strong>in general you should prefer <code>open</code> instead of <code>fopen</code></strong>.</p>



<h3 class="wp-block-heading">❌ <code><a href="https://developer.apple.com/documentation/foundation/outputstream/1416367-init" data-wpel-link="external" target="_blank" rel="external noopener">OutputStream(toFileAtPath:append:)</a></code> &amp; friends</h3>



<p>This ultimately (when you call the <code>open</code> method) calls <code>open</code> with the flags <code>O_WRONLY | O_CREAT</code> (plus <code>O_TRUNC</code> if the append argument is false).  As such it will <em>always</em> modify an existing file if present.</p>



<p>It also does not let you specify the permissions of the new file, instead defaulting arbitrarily to 0666 (but respecting umask, at least).</p>



<p><strong>It is an unsafe API and should not be used.</strong></p>



<h3 class="wp-block-heading">⚠️ <code><a href="https://developer.apple.com/documentation/foundation/nsdata" data-wpel-link="external" target="_blank" rel="external noopener">NSData</a>.<a href="https://developer.apple.com/documentation/foundation/nsdata/1414800-write" data-wpel-link="external" target="_blank" rel="external noopener">write(toFile:options:)</a></code> &amp; friends</h3>



<p>This family of methods all ultimately call <code><a href="https://opensource.apple.com/source/xnu/xnu-2050.9.2/libsyscall/wrappers/open_dprotected_np.c.auto.html" data-wpel-link="external" target="_blank" rel="external noopener">open_dprotected_np</a></code> (<a href="https://github.com/apple/darwin-xnu/blob/2ff845c2e033bd0ff64b5b6aa6063a1f8f65aa32/bsd/vfs/vfs_syscalls.c#L4517" data-wpel-link="external" target="_blank" rel="external noopener">implementation</a>), a variant of <code>open</code> specific to Apple platforms which adds Apple-specific functionality regarding file encryption and isolation (see e.g. the protection-related flags within <code><a href="https://developer.apple.com/documentation/foundation/nsdata/writingoptions" data-wpel-link="external" target="_blank" rel="external noopener">NSData.WritingOptions</a></code>).  It takes the same flags as the regular <code>open</code>, and <code>write(toFile:options:)</code> by default uses <code>O_CREAT | O_TRUNC</code>.  If you use the <code>withoutOverwriting</code> option, it adds <code>O_EXCL</code>.  <strong>So you should usually use <code>withoutOverwriting</code>.</strong></p>



<p>If you use the <code>atomic</code> flag, it creates the file using a private function <code>_NSCreateTemporaryFile_Protected</code> which obtains a file path using <a href="#mktemp"><code>mktemp</code> ⚠️</a> and calls <code>open_dprotected_np</code> with the flags <code>O_CREAT | O_EXCL | O_RDWR</code><sup data-fn="1d64125f-81d0-4bb5-8090-ac0b5d942d7d" class="fn"><a href="#1d64125f-81d0-4bb5-8090-ac0b5d942d7d" id="1d64125f-81d0-4bb5-8090-ac0b5d942d7d-link">4</a></sup>.  Once it has created &amp; written to that temporary file, it uses <code><a href="https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/rename.2.html" data-wpel-link="external" target="_blank" rel="external noopener">rename</a></code> to move it into place.  <code>rename</code> just silently deletes any existing file at the destination path.  So it&#8217;s safe against race attacks, but susceptible to data loss bugs from unintentionally overwriting existing files.  As such, <strong>use <code>atomic</code> only with caution</strong>.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>⚠️ If you add <code>withoutOverwriting</code> on top of <code>atomic</code>, the call crashes your program!  It throws an Objective-C exception &#8211; <code>NSInvalidArgumentException</code>.  Swift does not support Objective-C exceptions (<a href="https://forums.swift.org/t/pitch-a-swift-representation-for-thrown-and-caught-exceptions/54583/3" data-wpel-link="external" target="_blank" rel="external noopener">it&#8217;s fundamentally unsafe to pass Objective-C exceptions up to Swift functions</a>) so you have to <a href="https://stackoverflow.com/questions/32758811/catching-nsexception-in-swift/36454808#36454808" data-wpel-link="external" target="_blank" rel="external noopener">use an Objective-C helper function as an intermediary</a>.</p>



<p>This is a particularly unfortunate limitation &#8211; even aside from the crashiness &#8211; because using both options together is highly desirable and it <em>should</em> in principle work &#8211; the implementation can simply use <code><a href="https://www.manpagez.com/man/2/renamex_np/osx-10.12.3.php" data-wpel-link="external" target="_blank" rel="external noopener">renamex_np</a></code> instead with the flag <code>RENAME_EXCL</code>.</p>



<p>FB13568491.</p>
</div></div>



<p>It also does not let you specify the permissions of the new file, instead defaulting arbitrarily to 0666 (but respecting umask, at least).  <strong>For files containing sensitive data (such as private user data), this API should generally not be used.</strong></p>



<h3 class="wp-block-heading">❌ <code><a href="https://developer.apple.com/documentation/foundation/nsstring" data-wpel-link="external" target="_blank" rel="external noopener">NSString</a>.<a href="https://developer.apple.com/documentation/foundation/nsstring/1407654-write" data-wpel-link="external" target="_blank" rel="external noopener">write(toFile:atomically:encoding:)</a></code> &amp; friends</h3>



<p>These are essentially just wrappers over <code>NSData.write(toFile:options:)</code> &amp; friends, where the <code>atomically</code> argument maps to the <code>atomic</code> option.  They provide no way to use the <code>withoutOverwriting</code> option, so they <strong>should not be used in most cases.</strong></p>



<h2 class="wp-block-heading">Use randomised names for transient files</h2>



<p>Whenever the file name doesn&#8217;t actually matter &#8211; i.e. it&#8217;s not chosen by the user and isn&#8217;t pre-defined by some system requirement &#8211; it&#8217;s best to use a randomised name.  This serves two purposes:</p>



<ol class="wp-block-list">
<li>If your code has any bugs that allow it to erroneously overwrite existing files, using random names at least makes it a lot less likely that you&#8217;ll trigger those bugs, by greatly reducing the odds of using the same name twice.</li>



<li>It makes it harder (if not impossible) for attackers to predict the file names, and therefore to attack them.</li>
</ol>



<p>There are many ways to obtain a randomised name, but it&#8217;s wise to use one of the canonical methods detailed below.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>☝️ If you do care about the file name, but not its location, you can use these APIs to create a randomly-named temporary <em>folder</em>, and then create your file within there.</p>



<p>This can be handy for e.g. preparing a file URL to be dragged from your app, where you want the file to have a proper name but don&#8217;t care (per se) where it lives.</p>
</div></div>



<h3 class="wp-block-heading" id="mktemp">⚠️ <code><code><a href="https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/mktemp.3.html" data-wpel-link="external" target="_blank" rel="external noopener">mktemp</a></code></code></h3>



<p><code>mktemp</code> is infamously a source of security vulnerabilities, because it doesn&#8217;t actually create the file (or folder) but merely returns a path.  The caller is responsible for securely creating the file (or folder).  This <em>can</em> be done safely &#8211; by following the guidance earlier in this post, in particular around the <code>O_EXCL</code> <code>open</code> flag &#8211; but it&#8217;s easy to screw up.</p>



<p><strong>Generally it&#8217;s preferable to use <code>mkstemp</code> / <code>mkdtemp</code> &amp; friends</strong>.  Unfortunately, if you want to use higher-level file APIs on Apple&#8217;s platforms that&#8217;s a problem because most of those APIs don&#8217;t support initialisation from a file descriptor, only a path (or equivalently, URL).  So you may find that you still need to use <code>mktemp</code>.  If so, be very careful about how you actually create the files &amp; folders.</p>



<h3 class="wp-block-heading">✅ <code><a href="https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/mkstemp.3.html" data-wpel-link="external" target="_blank" rel="external noopener">mkstemp</a></code> / <code><a href="https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/mkstemp.3.html" data-wpel-link="external" target="_blank" rel="external noopener">mkdtemp</a></code> &amp; friends</h3>



<p>These replacements for <code>mktemp</code> actually create the file / folder (respectively), in a safe way.</p>



<p><code>mkstemp</code> creates the file and returns the corresponding open file descriptor, instead of merely returning a path and leaving it to the caller to get the creation step right.  It will never overwrite (nor open) an existing file.  It also sets the file&#8217;s initial permissions to 0600 (i.e. read-writable but only by the current user), which is a pretty safe default.</p>



<p><code>mkdtemp</code> still returns a path (not a file descriptor), like <code>mktemp</code>, but it ensures the folder was actually created (and not previously existent) with the permissions set to 0700 (i.e. usable only by the current user).</p>



<p>Neither make any guarantees regarding security &#8211; or lack thereof &#8211; due to parent folder permissions.  The caller still needs to ensure necessary security protections for those (whether by choosing a suitable system-provided folder, or manually checking permissions and symlinks in the path).  <code><code><code><a href="https://developer.apple.com/documentation/foundation/url" data-wpel-link="external" target="_blank" rel="external noopener">URL</a>.<a href="https://developer.apple.com/documentation/foundation/url/3988477-temporarydirectory" data-wpel-link="external" target="_blank" rel="external noopener">temporaryDirectory</a></code></code></code> is a good starting point.</p>



<p>Using these from Swift is a little awkward because they mutate their primary argument (the path template), but <a href="https://github.com/apple/swift-corelibs-foundation/blob/dbca8c7ddcfd19f7f6f6e1b60fd3ee3f748e263c/Sources/Foundation/NSPathUtilities.swift#L774" data-wpel-link="external" target="_blank" rel="external noopener">here&#8217;s an example</a>.  Once you have the file descriptor (in the <code>mkstemp</code> case) you can wrap it in e.g. a <code><a href="https://developer.apple.com/documentation/foundation/filehandle" data-wpel-link="external" target="_blank" rel="external noopener">FileHandle</a></code> and work with it at a slightly higher level.</p>



<h3 class="wp-block-heading"><code><a href="https://developer.apple.com/documentation/foundation/filemanager" data-wpel-link="external" target="_blank" rel="external noopener">⚠️</a></code> <code><a href="https://developer.apple.com/documentation/foundation/filemanager" data-wpel-link="external" target="_blank" rel="external noopener">FileManager</a>.<a href="https://developer.apple.com/documentation/foundation/filemanager/1409234-default" data-wpel-link="external" target="_blank" rel="external noopener">default</a>.<a href="https://developer.apple.com/documentation/foundation/filemanager/1407693-url" data-wpel-link="external" target="_blank" rel="external noopener">url(for:in:appropriateFor:create:)</a></code></h3>



<p>In its special mode where &#8216;for&#8217; is <code><a href="https://developer.apple.com/documentation/foundation/filemanager/searchpathdirectory/itemreplacementdirectory" data-wpel-link="external" target="_blank" rel="external noopener">.itemReplacementDirectory</a></code> and &#8216;in&#8217; is <a href="https://developer.apple.com/documentation/foundation/filemanager/searchpathdomainmask/1408037-userdomainmask" data-wpel-link="external" target="_blank" rel="external noopener">.<code>userDomainMask</code></a>, this behaves like <code>mkdtemp</code>; it creates a randomly-named folder and returns the URL to it (note that it completely ignores the &#8216;create&#8217; argument in this case &#8211; there is no way to have it <em>not</em> create the temporary folder).</p>



<p>This API seems to presume the use of App Sandboxing to mitigate its problems &#8211; and when App Sandboxing is enabled, it&#8217;s the best way to obtain a temporary file or folder path, though only if you use a suitable value for the &#8216;appropriateFor&#8217; parameter, such as <code><code><a href="https://developer.apple.com/documentation/foundation/url" data-wpel-link="external" target="_blank" rel="external noopener">URL</a>.<a href="https://developer.apple.com/documentation/foundation/url/3988477-temporarydirectory" data-wpel-link="external" target="_blank" rel="external noopener">temporaryDirectory</a></code></code><sup data-fn="a6f54a24-4596-4700-8d50-786942903c54" class="fn"><a href="#a6f54a24-4596-4700-8d50-786942903c54" id="a6f54a24-4596-4700-8d50-786942903c54-link">5</a></sup>.  When App Sandboxing is enabled, that will result in a path <em>inside</em> the sandbox, which is the most secure place an unprivileged application can use.</p>



<p>However, if instead a URL is provided which points to a different volume, it returns a path to a user-specific temporary folder on that volume, e.g. <code>/Volumes/Example/.TemporaryItems/folders.501/TemporaryItems/</code>.  While that does exclude (unprivileged) other users, it&#8217;s still a big step down from a location inside the app&#8217;s sandbox.</p>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-dots"/>



<h1 class="wp-block-heading" id="file-system-races-in-more-detail">Appendix: File system races in more detail</h1>



<p>Generally-speaking, the file system is a shared resource.  Multiple programs can access it simultaneously with no coordination required<sup data-fn="41b5a8b5-6e90-4a7b-b4c2-8f687acd6914" class="fn"><a href="#41b5a8b5-6e90-4a7b-b4c2-8f687acd6914" id="41b5a8b5-6e90-4a7b-b4c2-8f687acd6914-link">6</a></sup> between them.  That opens the door for races &#8211; where the state of the world changes in-between file system operations that a program might mistakenly assume are atomic.</p>



<p>In general, any <em>single</em> call to a low-level file system API &#8211; e.g. <code>open</code> &#8211; is atomic.  Most such APIs correspond to a single syscall into the kernel, and the operation inside the kernel is wrapped inside a lock (conceptually if not also literally).</p>



<p>Conversely, any operation that takes multiple calls to a file system API is <em>never</em> atomic.</p>



<p>A textbook security vulnerability arises when you do something like:</p>



<ol class="wp-block-list">
<li>Make up some random file name (e.g. with <code>mktemp</code>).</li>



<li>Check that it doesn&#8217;t exist (<em>one</em> syscall), and see that it doesn&#8217;t.</li>



<li>Write to that file (<em>a separate syscall</em>).</li>
</ol>



<p>A malicious program could inject its own file in-between steps two and three &#8211; or even more dangerously, a symlink &#8211; and cause your program to overwrite something (many file APIs will automatically follow symlinks and open existing files, if not used correctly as detailed in this post).</p>



<p>The classic concern in this regard is with privileged programs that have the ability to overwrite sensitive files, e.g. <code>/etc/passwd</code>.  Tricking them into doing so can cause major damage to the system (e.g. nobody can login anymore!) in the <em>best</em> case, and in the worst case &#8211; where the attacker can also influence the contents of the file, or those contents are conveniently just what the attacker wants &#8211; they might be able to implement a more subtle attack that doesn&#8217;t merely break the system but instead e.g. changes the root password, giving them superuser access to the computer.</p>



<p>Even for unprivileged applications, it can still be a concern.  e.g. they might be tricked into writing a bunch of private user data into a shared location from where the attacker can exfiltrate it.</p>



<h1 class="wp-block-heading">Appendix: File writing APIs that cannot create new files</h1>



<p>These APIs are nominally irrelevant since they can&#8217;t be used to create new files, but it can be useful to <em>know</em> that fact, for use in converse scenarios where you do <em>not</em> want to create a file.</p>



<h3 class="wp-block-heading"><code><a href="https://developer.apple.com/documentation/foundation/filehandle/1414405-init" data-wpel-link="external" target="_blank" rel="external noopener">FileHandle(forWritingAtPath:)</a></code></h3>



<p>…ultimately calls <code>[[NSConcreteFileHandle alloc] initWithPath:… flags:0x1 createMode:0 error:nil]</code>, which turns the path string into a URL using <code>-[NSURL fileURLWithPath:]</code> and calls <code>-[NSConcreteFileHandle initWithURL:flags:createMode:error:]</code>, which calls <code>_NSOpenFileDescriptor</code> to do the actual file system calls.  That calls <code>open</code> with <em>only</em> the flag <code>O_WRONLY</code>; it does not pass <code>O_CREAT</code> nor <code>O_EXCL</code>.  So <code>FileHandle</code> cannot create new files (which I find a bit unintuitive, as nothing in the name really suggests that limitation).</p>



<h3 class="wp-block-heading"><code><a href="https://developer.apple.com/documentation/foundation/nsdata/1411145-init" data-wpel-link="external" target="_blank" rel="external noopener">NSData(contentsOfFile:options:)</a></code> &amp; friends</h3>



<p>…ultimately call <code>open</code> with no flags (meaning they can only <em>read</em> existing files, not even modify them).  So again, cannot create new files.  Which is perhaps implied and obvious from the name, but it&#8217;s good to be certain.</p>


<ol class="wp-block-footnotes"><li id="77cbc356-ca3e-4dff-892d-ddf0ca3c31c9">In principle system programs &amp; privileged (e.g. root &amp; admin) programs should be defended against too, but it&#8217;s often impractically difficult to do so, and beyond the scope of this post to try to explain how.<br><br>Root is of course the most impractical to defend against &#8211; even though the root user is <em>not</em> a traditional &#8220;God&#8221; user on macOS, Apple&#8217;s nerfing of root is designed to protect <em>Apple&#8217;s</em> programs, not yours.  Root (and admin users) can ultimately still access any files your application(s) create and there&#8217;s nothing you can do about it (other than potentially through orthogonal protections, such as encryption). <a href="#77cbc356-ca3e-4dff-892d-ddf0ca3c31c9-link" aria-label="Jump to footnote reference 1">↩︎</a></li><li id="afb3f9ba-f914-4dd9-803c-2aad08a6800a">It is of course possible for libraries to override the umask, but that would be <em>particularly</em> foul of them and none that I&#8217;ve surveyed do that, thankfully. <a href="#afb3f9ba-f914-4dd9-803c-2aad08a6800a-link" aria-label="Jump to footnote reference 2">↩︎</a></li><li id="9dedd292-995e-479b-ba90-8d2d787e436e">This can be hard to guarantee, in a non-trivial program.  You can use an assertion or precondition on the return value of <code><a href="https://github.com/apple-oss-distributions/libpthread/blob/d8c4e3c212553d3e0f5d76bb7d45a8acd61302dc/src/pthread.c#L943" data-wpel-link="external" target="_blank" rel="external noopener">pthread_is_threaded_np</a></code> to help ensure you&#8217;re modifying umask before additional threads are created. <a href="#9dedd292-995e-479b-ba90-8d2d787e436e-link" aria-label="Jump to footnote reference 3">↩︎</a></li><li id="1d64125f-81d0-4bb5-8090-ac0b5d942d7d">It&#8217;s not apparent to me why it needs <em>read</em> access to the file as well &#8211; that appears to be a bug. <a href="#1d64125f-81d0-4bb5-8090-ac0b5d942d7d-link" aria-label="Jump to footnote reference 4">↩︎</a></li><li id="a6f54a24-4596-4700-8d50-786942903c54">I&#8217;m not sure what happens if the App Sandbox container is not on the boot volume. <a href="#a6f54a24-4596-4700-8d50-786942903c54-link" aria-label="Jump to footnote reference 5">↩︎</a></li><li id="41b5a8b5-6e90-4a7b-b4c2-8f687acd6914">There are various mechanism for <em>voluntary</em> coordination, such as <code><a href="https://developer.apple.com/documentation/foundation/nsfilecoordinator" data-wpel-link="external" target="_blank" rel="external noopener">NSFileCoordinator</a></code> and <code><a href="https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/flock.2.html" data-wpel-link="external" target="_blank" rel="external noopener">flock</a></code>, but programs are not required to use them (and malicious programs happily won&#8217;t). <a href="#41b5a8b5-6e90-4a7b-b4c2-8f687acd6914-link" aria-label="Jump to footnote reference 6">↩︎</a></li></ol>]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/creating-temporary-files-safely-in-mac-apps/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7603</post-id>	</item>
		<item>
		<title>Swift code syntax highlighting in WordPress</title>
		<link>https://wadetregaskis.com/swift-code-syntax-highlighting-in-wordpress/</link>
					<comments>https://wadetregaskis.com/swift-code-syntax-highlighting-in-wordpress/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Sat, 30 Dec 2023 02:34:43 +0000</pubDate>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Meta]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Code Block Pro]]></category>
		<category><![CDATA[Code Syntax Block]]></category>
		<category><![CDATA[CodeColorer]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Dark mode]]></category>
		<category><![CDATA[Dracula Dark Mode]]></category>
		<category><![CDATA[Enlighter]]></category>
		<category><![CDATA[EnlighterJS]]></category>
		<category><![CDATA[GeSHi]]></category>
		<category><![CDATA[highlight.js]]></category>
		<category><![CDATA[highlight.php]]></category>
		<category><![CDATA[Highlighting Code Block]]></category>
		<category><![CDATA[Prism.js]]></category>
		<category><![CDATA[Prismatic]]></category>
		<category><![CDATA[Shiki]]></category>
		<category><![CDATA[syntax highlighting]]></category>
		<category><![CDATA[Syntax-highlighting Code Block (with Server-side Rendering)]]></category>
		<category><![CDATA[SyntaxHighlighter Evolved]]></category>
		<category><![CDATA[Tested]]></category>
		<category><![CDATA[TextMate]]></category>
		<category><![CDATA[Urvanov Syntax Highlighter]]></category>
		<category><![CDATA[Visual Studio Code]]></category>
		<category><![CDATA[WP Dark Mode]]></category>
		<category><![CDATA[Xcode]]></category>
		<guid isPermaLink="false">https://blog.wadetregaskis.com/?p=5561</guid>

					<description><![CDATA[The built-in &#8220;code&#8221; block for WordPress (the CMS I use for this site) is virtually useless &#8211; it&#8217;s just a &#60;pre&#62; block, essentially. The appearance may vary depending on WordPress theme, but will virtually always be bland. In fact, it&#8217;s not even guaranteed to use a monospaced font &#8211; the example I&#8217;ve shown here is&#8230; <a class="read-more-link" href="https://wadetregaskis.com/swift-code-syntax-highlighting-in-wordpress/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[



<div class="alignnormal"><div id="metaslider-id-6572" style="max-width: 611px;" class="ml-slider-3-107-0 metaslider metaslider-flex metaslider-6572 ml-slider ms-theme-default nav-hidden" role="region" aria-label="Syntax highlighting: WordPress default" data-height="1158" data-width="611">
    <div id="metaslider_container_6572">
        <div id="metaslider_6572" class="flexslider">
            <ul class='slides'>
                <li style="display: block; width: 100%;" class="slide-6575 ms-image " aria-roledescription="slide" data-date="2023-12-12 11:07:27" data-filename="WordPress-default-Light.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="1222" height="2316" src="https://wadetregaskis.com/wp-content/uploads/2023/12/WordPress-default-Light.webp" class="slider-6572 slide-6575 msDefaultImage" alt="" rel="" title="WordPress default (Light)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/WordPress-default-Light.webp 1222w, https://wadetregaskis.com/wp-content/uploads/2023/12/WordPress-default-Light-135x256.webp 135w, https://wadetregaskis.com/wp-content/uploads/2023/12/WordPress-default-Light-270x512@2x.webp 540w, https://wadetregaskis.com/wp-content/uploads/2023/12/WordPress-default-Light-1081x2048.webp 1081w, https://wadetregaskis.com/wp-content/uploads/2023/12/WordPress-default-Light-270x512.webp 270w, https://wadetregaskis.com/wp-content/uploads/2023/12/WordPress-default-Light-540x1024@2x.webp 1080w" sizes="auto, (max-width: 1222px) 100vw, 1222px" /><div class="caption-wrap"><div class="caption">Light mode</div></div></li>
                <li style="display: none; width: 100%;" class="slide-6576 ms-image " aria-roledescription="slide" data-date="2023-12-12 11:07:28" data-filename="WordPress-default-Dark.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="1222" height="2316" src="https://wadetregaskis.com/wp-content/uploads/2023/12/WordPress-default-Dark.webp" class="slider-6572 slide-6576 msDefaultImage" alt="" rel="" title="WordPress default (Dark)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/WordPress-default-Dark.webp 1222w, https://wadetregaskis.com/wp-content/uploads/2023/12/WordPress-default-Dark-135x256.webp 135w, https://wadetregaskis.com/wp-content/uploads/2023/12/WordPress-default-Dark-270x512@2x.webp 540w, https://wadetregaskis.com/wp-content/uploads/2023/12/WordPress-default-Dark-1081x2048.webp 1081w, https://wadetregaskis.com/wp-content/uploads/2023/12/WordPress-default-Dark-270x512.webp 270w, https://wadetregaskis.com/wp-content/uploads/2023/12/WordPress-default-Dark-540x1024@2x.webp 1080w" sizes="auto, (max-width: 1222px) 100vw, 1222px" /><div class="caption-wrap"><div class="caption">Dark mode</div></div></li>
            </ul>
        </div>
        
    </div>
</div></div>



<p>The built-in &#8220;code&#8221; block for <a href="https://wordpress.org" data-wpel-link="external" target="_blank" rel="external noopener">WordPress</a> (the <a href="https://en.wikipedia.org/wiki/Content_management_system" data-wpel-link="external" target="_blank" rel="external noopener">CMS</a> I use for this site) is virtually useless &#8211; it&#8217;s just a &lt;pre&gt; block, essentially.</p>



<p>The appearance may vary depending on WordPress theme, but will virtually always be bland.</p>



<p>In fact, it&#8217;s not even guaranteed to use a monospaced font &#8211; the example I&#8217;ve shown here is what you&#8217;ll <em>probably</em> get with any given WordPress theme, but it&#8217;s not actually the default for the theme I use (<a href="https://generatepress.com" data-wpel-link="external" target="_blank" rel="external noopener">GeneratePress</a>) due to <a href="https://github.com/tomusborne/generatepress/issues/395" data-wpel-link="external" target="_blank" rel="external noopener">a known bug in GeneratePress</a> (which the theme authors outright refuse to fix!).</p>



<p class="wp-container-content-9cfa9a5a">In any case, you have to use <a href="https://wordpress.org/plugins/search/code+syntax+highlighter/" data-wpel-link="external" target="_blank" rel="external noopener">WordPress plug-ins</a> to extend or replace it with something that actually looks in any way decent.</p>



<p class="wp-container-content-9cfa9a5a">Unfortunately, Swift is a complicated language, even just at the &#8220;superficial&#8221; level of syntax highlighting.  And most generally-popular syntax highlighting tools are both:</p>



<ol class="wp-block-list">
<li>Focused on languages like JavaScript and HTML, not Swift.</li>



<li>Written in JavaScript or Ruby, with no access to standard tooling like the <a href="https://github.com/apple/sourcekit-lsp" data-wpel-link="external" target="_blank" rel="external noopener">Swift Language Server Protocol</a>.</li>
</ol>



<p>Since I&#8217;m using WordPress for this site, Ruby&#8217;s not a good option (and I didn&#8217;t find any relevant WordPress plug-ins which rely on it, anyway).  Hypothetically I could add a Ruby environment to my server and do static generation through it, but, ugh.  It&#8217;s annoying enough dealing with JavaScript and PHP.  If you&#8217;re going to go to that much trouble, you&#8217;d probably be better off actually using Swift (e.g. <a href="https://github.com/apple/swift-syntax" data-wpel-link="external" target="_blank" rel="external noopener">SwiftSyntax</a>).  And while I&#8217;d welcome a WordPress plug-in which does exactly that, alas no such plug-in exists today.</p>



<p>So, I spent <em>way</em> too much of my time trying out a <em>bunch</em> of the available WordPress plug-ins, and now I shall report the results so others don&#8217;t have to suffer [as much].</p>



<p>I&#8217;ve presented previews for both light and dark modes (but my apologies to dark-mode viewers that all the samples default to light mode &#8211; an unfortunate limitation of my CMS).</p>



<h1 class="wp-block-heading">Baseline: Xcode</h1>



<div class="alignnormal"><div id="metaslider-id-6568" style="max-width: 492px;" class="ml-slider-3-107-0 metaslider metaslider-flex metaslider-6568 ml-slider ms-theme-default nav-hidden nav-hidden" role="region" aria-label="Syntax highlighting: Xcode [Default]" data-height="1100" data-width="492">
    <div id="metaslider_container_6568">
        <div id="metaslider_6568" class="flexslider">
            <ul class='slides'>
                <li style="display: block; width: 100%;" class="slide-6570 ms-image " aria-roledescription="slide" data-date="2023-12-12 10:47:45" data-filename="Xcode-Default-Light.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="984" height="2200" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Xcode-Default-Light.webp" class="slider-6568 slide-6570 msDefaultImage" alt="" rel="" title="Xcode [Default] (Light)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Xcode-Default-Light.webp 984w, https://wadetregaskis.com/wp-content/uploads/2023/12/Xcode-Default-Light-115x256.webp 115w, https://wadetregaskis.com/wp-content/uploads/2023/12/Xcode-Default-Light-229x512@2x.webp 458w, https://wadetregaskis.com/wp-content/uploads/2023/12/Xcode-Default-Light-916x2048.webp 916w, https://wadetregaskis.com/wp-content/uploads/2023/12/Xcode-Default-Light-229x512.webp 229w, https://wadetregaskis.com/wp-content/uploads/2023/12/Xcode-Default-Light-115x256@2x.webp 230w" sizes="auto, (max-width: 984px) 100vw, 984px" /><div class="caption-wrap"><div class="caption">Light mode</div></div></li>
                <li style="display: none; width: 100%;" class="slide-6569 ms-image " aria-roledescription="slide" data-date="2023-12-12 10:47:45" data-filename="Xcode-Default-Dark.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="984" height="2200" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Xcode-Default-Dark.webp" class="slider-6568 slide-6569 msDefaultImage" alt="" rel="" title="Xcode [Default] (Dark)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Xcode-Default-Dark.webp 984w, https://wadetregaskis.com/wp-content/uploads/2023/12/Xcode-Default-Dark-115x256.webp 115w, https://wadetregaskis.com/wp-content/uploads/2023/12/Xcode-Default-Dark-229x512@2x.webp 458w, https://wadetregaskis.com/wp-content/uploads/2023/12/Xcode-Default-Dark-916x2048.webp 916w, https://wadetregaskis.com/wp-content/uploads/2023/12/Xcode-Default-Dark-229x512.webp 229w, https://wadetregaskis.com/wp-content/uploads/2023/12/Xcode-Default-Dark-115x256@2x.webp 230w" sizes="auto, (max-width: 984px) 100vw, 984px" /><div class="caption-wrap"><div class="caption">Dark mode</div></div></li>
            </ul>
        </div>
        
    </div>
</div></div>



<p>Syntax highlighting theming is a very subjective and somewhat personal preference.  I really must stress this, as something to keep in mind as I critique these plug-ins based on <em>my</em> preference, which is pretty close to Xcode&#8217;s default theme.</p>



<p>I&#8217;ve tried to focus mostly on how well the plug-ins understand Swift syntax &amp; grammar and what functionality they offer broadly, rather than which ones look prettier out of the box.  Most have at least some degree of custom theming support, or at least permit unofficial theming through straightforward CSS overrides.</p>



<p>It is unsurprising that Xcode does by <em>far</em> the best job of understanding and correctly syntax-highlighting Swift code, of anything tested here.  It has the advantage of being able to actually compile and analyse the code with full context &#8211; the example shown here has supporting type and function definitions &#8220;off-screen&#8221; &#8211; which WordPress plug-ins do not<sup data-fn="f5cd2d93-b8e5-4773-8838-26add7d33f48" class="fn"><a href="#f5cd2d93-b8e5-4773-8838-26add7d33f48" id="f5cd2d93-b8e5-4773-8838-26add7d33f48-link">1</a></sup>.  While I set out on this exploration hoping to find something effectively as good as Xcode, I wasn&#8217;t really expecting to (and spoiler: I did not).</p>



<p>Allow me to call out a particular few things Xcode does right, that (as you&#8217;ll see) few if any of the WordPress plug-ins do:</p>



<ul class="wp-block-list">
<li>In short, it supports <em>all</em> Swift syntax.  It correctly identifies all the keywords (<em>and</em> things that are <em>not</em> keywords but happen to be the same word, such as static properties called <code>default</code> as in the example code).</li>



<li>It utilises not just colour but font and font weight.  This permits it to effectively delineate things without having to use an excessive variety of hues.<br><br>Some might finds its results comparatively bland with the default theme as shown here, in light mode especially, but it has other themes for those that want a more hue-centric approach, and supports a very good degree of theme customisation.<br><br>The default theme doesn&#8217;t &#8220;demo&#8221; well (in light mode), in the same way that colour-accurate TVs look rather bland and unattractive in the showroom but are actually great in real-world use in your home.</li>



<li>Even though it uses multiple font weights, it still preserves correct letter spacing.</li>



<li>It understands DocC&#8217;s limited Markdown-like markup within documentation comments (and can even render them as properly styled text, although that&#8217;s not shown here).</li>
</ul>



<p>I&#8217;ll also call out one thing which &#8211; in my opinion &#8211; it gets <em>wrong</em>, which is essentially not recognising custom type names.  It renders them as plain text &#8211; no highlighting at all &#8211; yet gives special treatment to &#8220;built-in&#8221; types (from the Swift standard library) like <code>String</code>.  It&#8217;s fine if it wants to distinguish between those two sets of type names, but it should use some kind of highlighting for <em>both</em> of them.  Many of the WordPress plug-ins actually do a better job in this respect.</p>



<h1 class="wp-block-heading">Common limitation: no Light/Dark mode support</h1>



<p>One thing that <em>none</em> of these plug-ins do, that you would think they could and reasonably should, is explicitly support light / dark mode &#8211; even though most include both light and dark themes (some plug-ins even include light and dark variations of the <em>same</em> theme &#8211; so close!).</p>



<p>Instead, you have to pick just one theme.  Furthermore, if you want proper light <em>and</em> dark mode support you have to pick a light theme specifically, to match WordPress&#8217;s default mode of light.  This limits your control over the appearance in dark mode &#8211; and may make it difficult for you to find a theme which suits your aesthetic preferences in <em>both</em> modes.</p>



<p>WordPress itself doesn&#8217;t support light/dark mode &#8211; you have to<sup data-fn="395a26f7-0a74-4647-ae97-e770481a032a" class="fn"><a href="#395a26f7-0a74-4647-ae97-e770481a032a" id="395a26f7-0a74-4647-ae97-e770481a032a-link">2</a></sup> use 3rd-party plug-ins.  Depending on which one you use, you might get viable automatic switching anyway.  The several that I experimented with were all able to make my theme adapt actually quite well.</p>



<p>I initially used <a href="https://wordpress.org/plugins/wp-dark-mode/" data-wpel-link="external" target="_blank" rel="external noopener">WP Dark Mode</a>, but discovered it was buggy in that it would load pages in light mode first and only after the initial render would it switch them to dark, making browsing my site in dark mode very uncomfortable.  It also didn&#8217;t work properly with <a href="#syntaxhighlighter-evolved" data-type="internal" data-id="#syntaxhighlighter-evolved">SyntaxHighlighter Evolved</a>.  I consequently switched to <a href="https://wordpress.org/plugins/dracula-dark-mode/" data-wpel-link="external" target="_blank" rel="external noopener">Dracula Dark Mode</a> which is a <em>very</em> similar plug-in but doesn&#8217;t have those bugs.</p>



<p>Note that most of the dark-mode screenshots shown here were taken while using WP Dark Mode.  There may be slight differences in colours with Dracula Dark Mode (or some other dark mode plug-in), but in my brief experimentation the results are virtually indistinguishable.</p>



<h1 class="wp-block-heading">The contestants</h1>



<h2 class="wp-block-heading" id="code-block-pro"><a href="https://code-block-pro.com" data-wpel-link="external" target="_blank" rel="external noopener">Code Block Pro</a></h2>



<div class="alignnormal"><div id="metaslider-id-6687" style="max-width: 572px;" class="ml-slider-3-107-0 metaslider metaslider-flex metaslider-6687 ml-slider ms-theme-default nav-hidden nav-hidden nav-hidden" role="region" aria-label="Syntax highlighting: Code Block Pro [Light Plus]" data-height="1284" data-width="572">
    <div id="metaslider_container_6687">
        <div id="metaslider_6687" class="flexslider">
            <ul class='slides'>
                <li style="display: block; width: 100%;" class="slide-6690 ms-image " aria-roledescription="slide" data-date="2023-12-13 20:22:37" data-filename="Code-Block-Pro-Light-Plus-Light.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="1144" height="2568" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-Light.webp" class="slider-6687 slide-6690 msDefaultImage" alt="" rel="" title="Code Block Pro [Light Plus] (Light)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-Light.webp 1144w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-Light-114x256.webp 114w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-Light-228x512@2x.webp 456w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-Light-912x2048.webp 912w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-Light-228x512.webp 228w" sizes="auto, (max-width: 1144px) 100vw, 1144px" /><div class="caption-wrap"><div class="caption">Light mode</div></div></li>
                <li style="display: none; width: 100%;" class="slide-6691 ms-image " aria-roledescription="slide" data-date="2023-12-13 20:22:37" data-filename="Code-Block-Pro-Light-Plus-Dark.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="1144" height="2568" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-Dark.webp" class="slider-6687 slide-6691 msDefaultImage" alt="" rel="" title="Code Block Pro [Light Plus] (Dark)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-Dark.webp 1144w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-Dark-114x256.webp 114w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-Dark-228x512@2x.webp 456w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-Dark-912x2048.webp 912w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-Dark-228x512.webp 228w" sizes="auto, (max-width: 1144px) 100vw, 1144px" /><div class="caption-wrap"><div class="caption">Dark mode</div></div></li>
            </ul>
        </div>
        
    </div>
</div></div>



<p>This advertises itself as using the syntax highlighting engine from <a href="https://code.visualstudio.com" data-wpel-link="external" target="_blank" rel="external noopener">Visual Studio Code</a>, but that&#8217;s actually misleading &#8211; it uses <a href="https://github.com/shikijs/shiki" data-wpel-link="external" target="_blank" rel="external noopener">Shiki</a>, which is really its own engine albeit one that utilises the same TextMate-inspired grammar definitions and themes as does Visual Studio Code.</p>



<p>It&#8217;s <a href="https://github.com/KevinBatdorf/code-block-pro" data-wpel-link="external" target="_blank" rel="external noopener">open source</a> and free for the most part &#8211; for a token $12 you can support the author and obtain a couple of dozen extra themes, adding to the two dozen or so that it includes by default.</p>



<h3 class="wp-block-heading">Performance</h3>



<p>If you&#8217;re familiar with Visual Studio Code for Swift development, then you basically already know how it performs, as the results are (in my testing) identical.</p>



<p>That&#8217;s only <em>mostly</em> a compliment, though.  This plug-in, like Visual Studio Code, doesn&#8217;t <em>really</em> understand Swift, it merely does a relatively good job of faking it.</p>



<p>Unlike every other plug-in tested, where the grammar parsing is completely independent of the theming, the performance of this plug-in <em>does</em> vary between themes.  Thus, some themes might have colours you hate yet be the only ones that actually identify Swift keywords correctly, while others are the reverse.  This is demonstrated in the example shown here &#8211; the <em>Light Plus</em> theme &#8211; where the colours are the least ugly of the themes available but it doesn&#8217;t recognise some basic Swift syntax, like protocol conformances, which <em>is</em> recognised in other &#8211; albeit uglier &#8211; themes.</p>



<p>But, in <em>general</em>, it:</p>



<ul class="wp-block-list">
<li>Actually understands the difference between function parameter labels, parameter names, and parameter types.</li>



<li>Tends not to recognise custom type names, only the Swift stdlib &amp; Foundation ones (e.g. notice it doesn&#8217;t recognise <code>Floor</code> but does recognise <code>String</code>).  This is somewhat common behaviour amongst the plug-ins tested (and Xcode itself).</li>



<li>Doesn&#8217;t recognise some important keywords, such as <code>async</code> and <code>some</code>.<br><br>As it happens, this is because the Swift grammar file it uses is quite a few years old and seems like it might be largely abandoned (other than sporadic community updates such as <a href="https://forums.swift.org/t/updated-syntax-highlighting-in-github-vs-code/68972" data-wpel-link="external" target="_blank" rel="external noopener">this</a> which might or might not be incorporated by this plug-in).  This is the same grammar file that Visual Studio Code uses, making it doubly-surprising, but I guess it says a lot about the level of interest the Visual Studio Code community has in Swift.</li>



<li>Is not easily fooled by the use of ambiguous names, e.g. the <code>default</code> static property of <code>HomeItem</code> that&#8217;s often mistaken for the <code>default</code> keyword by other plug-ins.</li>
</ul>



<h3 class="wp-block-heading">Pros</h3>



<ul class="wp-block-list">
<li>Includes the ability to highlight an arbitrary set of lines by blurring out all the others (but readers can mouse over the code block to unblur everything, if they want to see the full context of what you&#8217;re highlighting).  This particular approach &#8211; blurring rather than just using a different background colour &#8211; is unique amongst all the plug-ins I found, and aesthetically far superior.  Most of the other plug-ins don&#8217;t even have a way to highlight or hide certain lines.</li>



<li>Uses server-side rendering with CSS inlined into the HTML, so code is highlighted right from page load without delays or visual glitches.<br><br>Some other plug-ins tested here do server-side syntax analysis too, but to actually effect styling they use class tagging of HTML <code>span</code>s with CSS, which can mean rendering glitches if the CSS takes a while to load and the browser renders the code without it in the interim.  Code Block Pro avoids that (and might also play better with other styling plug-ins or modifications, such as dark mode plug-ins).</li>



<li>Has a <a href="https://code-block-pro.com/themes?theme=andromeda&amp;lang=swift" data-wpel-link="external" target="_blank" rel="external noopener">live playground</a> so you can easily test it out (although that playground is hard-coded to use the Fira Code font, which is only one of a number of open-source font options it provides).</li>
</ul>



<h3 class="wp-block-heading">Cons</h3>



<ul class="wp-block-list">
<li>No global settings &#8211; if you decide to change <em>any</em> settings, such as the theme, at any point, you have to manually find and adjust every existing code snippet manually.<br><br>This might be considered a positive by some users, where they want existing content to remain as-is.  However, some plug-ins offer both a global setting <em>and</em> the ability to override that on a per-case basis, providing more flexibility.</li>



<li>The provided themes &#8211; even with the paid expansion pack &#8211; are predominately intended only for dark mode, and most of the light mode ones are pastel.  So if you want a clean light mode theme, as I do, you have only about three options with this plug-in.<br><br>Furthermore, the performance varies between themes, as &#8211; unlike every other plug-in tested here &#8211; the themes are in essence tied into the parsing.<br><br>None of the provided themes really do Swift justice compared to how well they work for other languages.  Especially within the limited selection of light-mode themes, there&#8217;s precious few that don&#8217;t make obvious mistakes (like conflating the <code>some</code> keyword with operators, or being confounded by generics syntax).</li>



<li>Theme customisation options are extremely limited, not just officially but even unofficially with custom CSS.  Although, <a href="https://github.com/KevinBatdorf/code-block-pro/issues/270#issuecomment-1820896240" data-wpel-link="external" target="_blank" rel="external noopener">the author seems receptive to theme suggestions</a> &#8211; to add to the <em>paid</em> expansion pack &#8211; if you find something you like in the <a href="https://marketplace.visualstudio.com/search?target=VSCode&amp;category=Themes&amp;sortBy=Installs" data-wpel-link="external" target="_blank" rel="external noopener">Visual Studio Code Marketplace</a>.
<ul class="wp-block-list">
<li>The only way it officially allows any custom theming is with an unusual mechanism documented only in <a href="https://github.com/KevinBatdorf/code-block-pro/discussions/168" data-wpel-link="external" target="_blank" rel="external noopener">a tangential GitHub discussion</a>: you select the theme called &#8220;Use CSS Variables&#8221;, which is a &#8216;theme&#8217; that merely specifies <code>var(--xyz)</code> values for the <code>color</code> CSS property.  You&#8217;re then expected to specify values for those CSS variables in some suitable stylesheet (which the plug-in does <em>not</em> facilitate).<br><br>This custom theming functionality is only available in the paid version.</li>



<li>It only officially supports adjusting the colours &#8211; you nominally don&#8217;t have the ability to adjust font families, sizes, weights, or styles.<br><br>It is <em>possible</em> to match each type of element, but it&#8217;s pretty clumsy and fragile, because…</li>



<li>As mentioned under <em>Pros</em>, it inlines the style information directly into the HTML <code>span</code> tags, as simple <code>color</code> style attributes.  While that&#8217;s good for avoiding rendering glitches, the downsides are that:
<ul class="wp-block-list">
<li>It produces more verbose HTML than if it just used a short class name on the <code>span</code>s (as all the other plug-ins do), which can hurt page load times.</li>



<li>It&#8217;s more difficult to customise the styling with CSS, since you have to match on the colours &#8211; using CSS attribute queries like <code>span[style*=#xxyyzz]</code> &#8211; which is not just awkward but can be impossible to do precisely for multiple distinct grammar elements depending on the base theme used.</li>



<li>It optimises the HTML by merging (server-side) <code>span</code> elements with the same style information.  That&#8217;s great for reducing page size and load times, but if the base theme doesn&#8217;t already <em>visually</em> distinguish between two distinct grammar elements, it&#8217;s impossible to distinguish them through custom CSS.</li>
</ul>
</li>
</ul>
</li>



<li>Custom themes don&#8217;t render in the post editor &#8211; you just get plain pre-formatted text.  (built-in themes work fine in the editor)</li>



<li>Uses a custom Gutenberg block type, rather than just extending the standard Code block.  So you can&#8217;t just upgrade your whole existing site &#8211; you have to manually go through and find every existing Code block, and manually migrate each one.<br><br>Inversely it&#8217;ll also be more difficult to migrate away from, if you choose to do that some day, as you&#8217;ll likely have to repeat that whole process no matter what replacement plug-in you choose.</li>



<li>If you enable the &#8216;Copy&#8217; button for the convenience of your readers, it includes a duplicate copy of the code in a hidden <code>span</code> (as do at least some of the other plug-ins tested, although I didn&#8217;t always call it out here).</li>
</ul>



<p>So in a nutshell, if you&#8217;re completely happy with its built-in theme options, then this is one of your better options.  But if you want theme customisation, it becomes <em>worse</em> than many of the other plug-ins, sadly.</p>



<h2 class="wp-block-heading"><a href="https://wordpress.org/plugins/codecolorer/" data-wpel-link="external" target="_blank" rel="external noopener">CodeColorer</a></h2>



<div class="alignnormal"><div id="metaslider-id-7047" style="max-width: 435px;" class="ml-slider-3-107-0 metaslider metaslider-flex metaslider-7047 ml-slider ms-theme-default nav-hidden nav-hidden nav-hidden nav-hidden" role="region" aria-label="Syntax highlighting: CodeColorer [Slush &amp; Poppies]" data-height="300" data-width="435">
    <div id="metaslider_container_7047">
        <div id="metaslider_7047" class="flexslider">
            <ul class='slides'>
                <li style="display: block; width: 100%;" class="slide-7053 ms-image " aria-roledescription="slide" data-date="2023-12-29 10:32:25" data-filename="CodeColorer-Slush-Poppies-Light.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="870" height="600" src="https://wadetregaskis.com/wp-content/uploads/2023/12/CodeColorer-Slush-Poppies-Light.webp" class="slider-7047 slide-7053 msDefaultImage" alt="" rel="" title="CodeColorer [Slush &amp; Poppies] (Light)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/CodeColorer-Slush-Poppies-Light.webp 870w, https://wadetregaskis.com/wp-content/uploads/2023/12/CodeColorer-Slush-Poppies-Light-256x177.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/CodeColorer-Slush-Poppies-Light-512x353.webp 512w" sizes="auto, (max-width: 870px) 100vw, 870px" /><div class="caption-wrap"><div class="caption">Light mode</div></div></li>
                <li style="display: none; width: 100%;" class="slide-7052 ms-image " aria-roledescription="slide" data-date="2023-12-29 10:32:24" data-filename="CodeColorer-Slush-Poppies-Dark.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="870" height="600" src="https://wadetregaskis.com/wp-content/uploads/2023/12/CodeColorer-Slush-Poppies-Dark.webp" class="slider-7047 slide-7052 msDefaultImage" alt="" rel="" title="CodeColorer [Slush &amp; Poppies] (Dark)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/CodeColorer-Slush-Poppies-Dark.webp 870w, https://wadetregaskis.com/wp-content/uploads/2023/12/CodeColorer-Slush-Poppies-Dark-256x177.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/CodeColorer-Slush-Poppies-Dark-512x353.webp 512w" sizes="auto, (max-width: 870px) 100vw, 870px" /><div class="caption-wrap"><div class="caption">Dark mode</div></div></li>
            </ul>
        </div>
        
    </div>
</div></div>



<p>A <em>very</em> old &#8211; though nominally still maintained &#8211; plug-in uniquely based on GeSHi.</p>



<p>It&#8217;s <a href="https://github.com/kpumuk/codecolorer/" data-wpel-link="external" target="_blank" rel="external noopener">open source</a> and free (as is the <a href="https://github.com/GeSHi/geshi-1.0" data-wpel-link="external" target="_blank" rel="external noopener">GeSHi</a> engine underneath it).</p>



<p>Neither the plug-in itself nor the GeSHi engine have seen a lot of activity in recent years (and confusingly <a href="http://qbnz.com/highlighter/" data-wpel-link="external" target="_blank" rel="external noopener">the old GeSHi webpage</a> is still up as is <a href="https://sourceforge.net/projects/geshi/" data-wpel-link="external" target="_blank" rel="external noopener">the early GeSHi page on SourceForge</a>, creating an even worse first impression).  Both predate the [public] existence of Swift entirely.</p>



<p>To be honest I&#8217;m including it here only for completeness.  It basically doesn&#8217;t work &#8211; especially for Swift &#8211; and shouldn&#8217;t actually be considered.  It seems intended <em>solely</em> for use via shortcodes &#8211; even though it does take over all existing <code>&lt;code&gt;</code> blocks &#8211; which I didn&#8217;t test as the use of shortcodes in WordPress is archaic, and poorly supported in the modern (Gutenberg) editor.  <a href="https://wordpress.com/support/wordpress-editor/blocks/shortcode-block/" data-wpel-link="external" target="_blank" rel="external noopener">They <em>seem</em> to still be officially supported</a>, and not formally deprecated, but I think introducing any new reliance on them at this point is foolish.</p>



<h3 class="wp-block-heading">Performance</h3>



<p>So, yeah… no syntax highlighting at all.  It&#8217;s not apparent to me if this is a failure specific to Swift or if the plug-in in general just doesn&#8217;t work.  It does offer a [non-live] preview in its settings, which does work for its example snippet of JavaScript.</p>



<p>It also (by default) forces the code into a tiny box, although you can fix this through its settings.</p>



<p>There&#8217;s no per-use customisation since it just takes over any existing <code>&lt;code&gt;</code> blocks, and there&#8217;s very few global settings &#8211; including an absence of any setting for a default language.</p>



<p>I won&#8217;t bother trying to enumerate its specific pros and cons &#8211; it&#8217;s clearly not a viable contender.</p>



<h2 class="wp-block-heading" id="code-syntax-block"><a href="https://wordpress.org/plugins/code-syntax-block/" data-wpel-link="external" target="_blank" rel="external noopener">Code Syntax Block</a></h2>



<div class="alignnormal"><div id="metaslider-id-6738" style="max-width: 594px;" class="ml-slider-3-107-0 metaslider metaslider-flex metaslider-6738 ml-slider ms-theme-default nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden" role="region" aria-label="Syntax highlighting: Code Syntax Block [GitHub (Light)]" data-height="1158" data-width="594">
    <div id="metaslider_container_6738">
        <div id="metaslider_6738" class="flexslider">
            <ul class='slides'>
                <li style="display: block; width: 100%;" class="slide-6741 ms-image " aria-roledescription="slide" data-date="2023-12-15 21:44:10" data-filename="Code-Syntax-Block-GitHub-Light-Light.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="1188" height="2316" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Syntax-Block-GitHub-Light-Light.webp" class="slider-6738 slide-6741 msDefaultImage" alt="" rel="" title="Code Syntax Block [GitHub (Light)] (Light)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Syntax-Block-GitHub-Light-Light.webp 1188w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Syntax-Block-GitHub-Light-Light-131x256.webp 131w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Syntax-Block-GitHub-Light-Light-525x1024.webp 525w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Syntax-Block-GitHub-Light-Light-1051x2048.webp 1051w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Syntax-Block-GitHub-Light-Light-263x512.webp 263w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Syntax-Block-GitHub-Light-Light-131x256@2x.webp 262w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Syntax-Block-GitHub-Light-Light-525x1024@2x.webp 1050w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Syntax-Block-GitHub-Light-Light-263x512@2x.webp 526w" sizes="auto, (max-width: 1188px) 100vw, 1188px" /><div class="caption-wrap"><div class="caption">Light mode</div></div></li>
                <li style="display: none; width: 100%;" class="slide-6742 ms-image " aria-roledescription="slide" data-date="2023-12-15 21:44:10" data-filename="Code-Syntax-Block-GitHub-Light-Dark.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="1188" height="2316" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Syntax-Block-GitHub-Light-Dark.webp" class="slider-6738 slide-6742 msDefaultImage" alt="" rel="" title="Code Syntax Block [GitHub (Light)] (Dark)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Syntax-Block-GitHub-Light-Dark.webp 1188w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Syntax-Block-GitHub-Light-Dark-131x256.webp 131w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Syntax-Block-GitHub-Light-Dark-525x1024.webp 525w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Syntax-Block-GitHub-Light-Dark-1051x2048.webp 1051w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Syntax-Block-GitHub-Light-Dark-263x512.webp 263w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Syntax-Block-GitHub-Light-Dark-131x256@2x.webp 262w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Syntax-Block-GitHub-Light-Dark-525x1024@2x.webp 1050w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Syntax-Block-GitHub-Light-Dark-263x512@2x.webp 526w" sizes="auto, (max-width: 1188px) 100vw, 1188px" /><div class="caption-wrap"><div class="caption">Dark mode</div></div></li>
            </ul>
        </div>
        
    </div>
</div></div>



<p>A simple plug-in based on <a href="https://prismjs.com" data-wpel-link="external" target="_blank" rel="external noopener">Prism.js</a>, with very limited customisation options.</p>



<p>It&#8217;s <a href="https://github.com/mkaz/code-syntax-block" data-wpel-link="external" target="_blank" rel="external noopener">open source</a> and free (as is the <a href="https://github.com/PrismJS/prism" data-wpel-link="external" target="_blank" rel="external noopener">Prism.js</a> engine underneath it).</p>



<h3 class="wp-block-heading">Performance</h3>



<p>Prism.js prides itself on being [relatively] small.  Perhaps because of that goal of being &#8220;lightweight&#8221;, its performance is a bit mediocre.</p>



<p>The default theme makes it look even worse than it really is, because it bizarrely doesn&#8217;t provide any distinguishing styling for important things, like type names.</p>



<p>On the upside, it does get a few things right which other plug-ins often don&#8217;t &#8211; even others which also use Prism.js, curiously, like <a href="#highlighting-code-block">Highlighting Code Block</a>.  Things like it:</p>



<ul class="wp-block-list">
<li>Recognises @-attributes, such as macro and property wrapper invocations.</li>



<li>Recognises relatively new Swift keywords such as <code>async</code> &amp; <code>await</code>.</li>



<li>Understands multi-line and raw strings.</li>
</ul>



<p>On the downside it:</p>



<ul class="wp-block-list">
<li>Doesn&#8217;t recognise a <em>lot</em> of very basic Swift syntax &#8211; or, at least, doesn&#8217;t distinguish them with a <code>span</code> and therefore resigns them to the default, plain text styling of the overall <code>code</code> block &#8211; including but not limited to:
<ul class="wp-block-list">
<li>Variable names (neither their declaration nor references to them).</li>



<li>Function parameter labels &amp; names.</li>



<li>Property names.</li>



<li>Tuple field labels.</li>
</ul>
</li>



<li>Doesn&#8217;t recognise method calls consistently (e.g. <code>pack</code> &amp; <code>reduce</code> vs <code>map</code> in the example shown).</li>
</ul>



<p>Although you can&#8217;t tell with its default theme, it actually recognises custom type names (although doesn&#8217;t distinguish them from Swift standard library types, like Xcode &#8211; though it&#8217;s debatable whether that&#8217;s a feature).</p>



<p>It uses font weight, not just colour, which <em>would</em> go a long way towards giving it higher fidelity without making it look garish <em>if</em> it didn&#8217;t use it really weirdly.  Instead of bolding keywords, for example, it bolds function &amp; method names &#8211; sometimes, when it recognises them correctly.</p>



<p>At least it defaults to Menlo, which is actually a respectable choice and makes it one of the few plug-ins tested that have a decent default for Apple platforms.  In case you&#8217;re unfamiliar, <a href="https://en.wikipedia.org/wiki/Menlo_(typeface)" data-wpel-link="external" target="_blank" rel="external noopener">Menlo</a> was the default monospace font for Snow Leopard through Yosemite (before it was replaced by SF Mono).  You&#8217;d most likely have encountered it in Terminal or Xcode, if you used a Mac in that timeframe (2009 &#8211; 2015).  It&#8217;s still available on every Apple device (as of time of writing, December 2023).</p>



<h3 class="wp-block-heading">Pros</h3>



<ul class="wp-block-list">
<li>Extends the built-in, standard Code block.  This makes it comparatively trivial to adopt if you&#8217;ve already got Code blocks on your website (although you may still need to go through and customise some things, such as the language in case auto-detection doesn&#8217;t work correctly).<br><br>This also makes it easier to switch syntax-highlighting plug-ins, <em>provided</em> that the one you switch from or to also supports the standard Code block, which is sadly a minority of them.</li>
</ul>



<h3 class="wp-block-heading">Cons</h3>



<ul class="wp-block-list">
<li>Hasn&#8217;t been updated in a year &#8211; possibly abandoned.</li>



<li>Does everything client-side, so there&#8217;s a noticeable delay before syntax highlighting is actually applied (especially on first load, when the relevant JavaScript &amp; CSS isn&#8217;t cached in the browser).  It&#8217;s a bit visually jarring as the unstyled code is replaced with the styled.</li>



<li>Adds its Prism CSS &amp; JavaScript files to <em>every</em> page load, irrespective of whether the page actually needs them or not.  This is the core Prism.js library only &#8211; the grammar file for each language is only loaded when actually needed.<br><br>They are somewhat small files, at least &#8211; most of it is Prism.js at 30 KB alone, plus a few extra KBs for the chosen theme&#8217;s CSS.  With Brotli compression they&#8217;re ~13 KB.  Language grammar files tend to be only 3 KB or less.</li>



<li>Very few built-in themes &#8211; only four &#8211; and using a custom theme is technically possible but awkward.  <a href="https://github.com/mkaz/code-syntax-block" data-wpel-link="external" target="_blank" rel="external noopener">The official instructions</a> didn&#8217;t work for me, either &#8211; I had to use the <a href="https://wpcode.com" data-wpel-link="external" target="_blank" rel="external noopener">WPCode</a> plug-in to execute the relevant PHP:<br><br><code>add_filter('mkaz_prism_css_url', function() {</code><br><code>&nbsp;&nbsp;&nbsp;&nbsp;return '/wp-content/themes/prism-xcode.css';<br>});</code></li>



<li>Theming is controlled globally with no ability to override it for specific uses.<br><br>This is (IMO) better than not having any global controls at all, as with some plug-ins, but it can be problematic if you use more than one language in these code blocks across your website, as you might prefer different themes for different languages.<br><br>You can technically work around this limitation using custom CSS, since the language is included as a class on the relevant <code>pre</code> and <code>code</code> HTML elements.</li>



<li>Doesn&#8217;t render the syntax highlighting in the Gutenberg editor, so you&#8217;re stuck with the generic <code>pre</code> appearance there.</li>
</ul>



<h2 class="wp-block-heading"><a href="https://wordpress.org/plugins/enlighter/" data-wpel-link="external" target="_blank" rel="external noopener">Enlighter</a></h2>



<div class="alignnormal"><div id="metaslider-id-6694" style="max-width: 473px;" class="ml-slider-3-107-0 metaslider metaslider-flex metaslider-6694 ml-slider ms-theme-default nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden" role="region" aria-label="Syntax highlighting: Enlighter [Default]" data-height="1023" data-width="473">
    <div id="metaslider_container_6694">
        <div id="metaslider_6694" class="flexslider">
            <ul class='slides'>
                <li style="display: block; width: 100%;" class="slide-6697 ms-image " aria-roledescription="slide" data-date="2023-12-13 21:31:57" data-filename="Enlighter-Default-theme-Light.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="946" height="2046" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Enlighter-Default-theme-Light.webp" class="slider-6694 slide-6697 msDefaultImage" alt="" rel="" title="Enlighter [Default theme] (Light)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Enlighter-Default-theme-Light-473x1024@2x.webp 946w, https://wadetregaskis.com/wp-content/uploads/2023/12/Enlighter-Default-theme-Light-473x1024.webp 473w, https://wadetregaskis.com/wp-content/uploads/2023/12/Enlighter-Default-theme-Light-118x256.webp 118w, https://wadetregaskis.com/wp-content/uploads/2023/12/Enlighter-Default-theme-Light-237x512.webp 237w, https://wadetregaskis.com/wp-content/uploads/2023/12/Enlighter-Default-theme-Light-118x256@2x.webp 236w, https://wadetregaskis.com/wp-content/uploads/2023/12/Enlighter-Default-theme-Light-237x512@2x.webp 474w" sizes="auto, (max-width: 946px) 100vw, 946px" /><div class="caption-wrap"><div class="caption">Light mode</div></div></li>
                <li style="display: none; width: 100%;" class="slide-6698 ms-image " aria-roledescription="slide" data-date="2023-12-13 21:31:58" data-filename="Enlighter-Default-theme-Dark.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="946" height="2046" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Enlighter-Default-theme-Dark.webp" class="slider-6694 slide-6698 msDefaultImage" alt="" rel="" title="Enlighter [Default theme] (Dark)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Enlighter-Default-theme-Dark-473x1024@2x.webp 946w, https://wadetregaskis.com/wp-content/uploads/2023/12/Enlighter-Default-theme-Dark-473x1024.webp 473w, https://wadetregaskis.com/wp-content/uploads/2023/12/Enlighter-Default-theme-Dark-118x256.webp 118w, https://wadetregaskis.com/wp-content/uploads/2023/12/Enlighter-Default-theme-Dark-237x512.webp 237w, https://wadetregaskis.com/wp-content/uploads/2023/12/Enlighter-Default-theme-Dark-118x256@2x.webp 236w, https://wadetregaskis.com/wp-content/uploads/2023/12/Enlighter-Default-theme-Dark-237x512@2x.webp 474w" sizes="auto, (max-width: 946px) 100vw, 946px" /><div class="caption-wrap"><div class="caption">Dark mode</div></div></li>
            </ul>
        </div>
        
    </div>
</div></div>



<p>The official WordPress plug-in for the <a href="https://enlighterjs.org/" data-wpel-link="external" target="_blank" rel="external noopener">EnlighterJS</a> engine.</p>



<p>It&#8217;s <a href="https://github.com/EnlighterJS/Plugin.WordPress" data-wpel-link="external" target="_blank" rel="external noopener">open source</a> and free (as is the <a href="https://github.com/EnlighterJS/EnlighterJS" data-wpel-link="external" target="_blank" rel="external noopener">EnlighterJS</a> engine underneath it).</p>



<h3 class="wp-block-heading">Performance</h3>



<p>Generally it does a poor job, with Swift code, and it&#8217;s not really a mystery why &#8211; <a href="https://github.com/EnlighterJS/EnlighterJS/blob/a0e3a9be4b6a09a5506567fc18f456a177eeed31/src/lang/swift.js" data-wpel-link="external" target="_blank" rel="external noopener">its grammar file for Swift</a> is <em>especially</em> spartan and hasn&#8217;t been updated since it was created over five years ago!  That&#8217;s the Swift 4.1 era at best.</p>



<p>It actually behaves very similarly to the <a href="#syntaxhighlighter-evolved" data-type="internal" data-id="#syntaxhighlighter-evolved">SyntaxHighlighter Evolved</a> plug-in, but with the significant difference that it leaves things it doesn&#8217;t understand as the plain text colour (e.g. black in Light mode), so it&#8217;s <em>much</em> more apparent even at a glance that it doesn&#8217;t really understand much.</p>



<p>For example, it:</p>



<ul class="wp-block-list">
<li>Doesn&#8217;t understand @-attributes, such as macro and property wrapper invocations.</li>



<li>Has no idea about the difference between function parameter labels and parameter arguments.</li>



<li>Doesn&#8217;t consistently recognise references to properties, such as when they&#8217;re part of KeyPaths.</li>



<li>Doesn&#8217;t understand some important keywords, like <code>async</code>, <code>await</code>, <code>Never</code>, etc.</li>



<li>Recognises <em>only</em> a limited selection of types &#8211; all from the Swift standard library &#8211; and has no idea about custom types.</li>



<li>Doesn&#8217;t recognise method calls consistently (e.g. <code>pack</code> &amp; <code>reduce</code> vs <code>map</code> in the example shown).</li>
</ul>



<p>In a nutshell, it&#8217;s doing little more than picking out a pre-defined list of keywords, identifying string &amp; numeric literals, and comments.</p>



<p>Though it does at least handle multi-line and raw strings correctly (albeit only in some themes &#8211; in a few it underlines strings and mistakes the indentation as part of the string, for multi-line strings).</p>



<p>The choice of Courier New as the default font is… brave.  It&#8217;s not actually its preferred default &#8211; it favours Source Code Pro foremost, with Liberation Mono as a second choice.  They&#8217;re both reasonable open-source monospace fonts, but neither are standard fonts on any Apple devices, and the plug-in doesn&#8217;t include them.</p>



<p>You can customise the font to a very limited degree &#8211; the plug-in provides only five options, none of which are standard Apple OS fonts so the choice is effectively pointless.  Thankfully you can override its font choices, like pretty much all its styling, with custom CSS.</p>



<h3 class="wp-block-heading">Pros</h3>



<ul class="wp-block-list">
<li>Supports both a global theme setting as well as use-specific overrides.</li>



<li>Supports both soft &amp; hard wrapping (the latter meaning it uses a horizontal scroller if necessary, rather than fitting the text to the viewport &#8211; generally not what I recommend since it&#8217;s pretty hostile to small screens but it&#8217;s a notable feature to make this behaviour configurable).</li>



<li>Includes a pretty extensive theme customiser, as an actual HTML forms-style interface in the plug-in settings pages.  That GUI is ultimately just a bespoke configurator for the CSS &#8211; which helpfully it also provides, in case you want to save or serve that elsewhere.<br><br>And if that proves insufficient &#8211; or you just prefer to do it manually &#8211; it uses a sensible system of spans with suitable classes, so it&#8217;s easy to write custom CSS for styling.</li>



<li>Provides its own Gutenberg block, but can also optionally be applied to the built-in WordPress Code block, as well as potentially blocks from other plug-ins (<a href="https://github.com/aramk/crayon-syntax-highlighter" data-wpel-link="external" target="_blank" rel="external noopener">Crayon Syntax Highlighter</a> &amp; <a href="https://wordpress.org/plugins/codecolorer/" data-wpel-link="external" target="_blank" rel="external noopener">CodeColorer</a> are explicitly supported &#8211; unclear if it also supports <a href="https://wordpress.org/plugins/urvanov-syntax-highlighter/" data-wpel-link="external" target="_blank" rel="external noopener">Urvanov Syntax Highlighter</a>, the &#8216;reincarnation&#8217; of the otherwise abandoned Crayon Syntax Highlighter).</li>
</ul>



<h3 class="wp-block-heading">Cons</h3>



<ul class="wp-block-list">
<li>Built-in themes are pretty limited and (IMO) pretty ugly, at least for the light-style ones (which is ten of the thirteen).  The one demonstrated here is the default &#8211; just called &#8220;Enlighter&#8221; &#8211; which is about the best it has to offer. 😕</li>



<li>Puts its settings item at the top level of the WordPress admin menu, rather than under Settings.</li>



<li>Adds its CSS &amp; JavaScript files to <em>every</em> page load, irrespective of whether the page actually uses the Enlighter block or not.  Along with some inline JavaScript in every page header.<br><br>And they&#8217;re not trivial files, either.  The CSS is 80 KB uncompressed &#8211; ~10 KB with Brotli compression, larger with GZip or Zip (Deflate).  That&#8217;s factoring in CSS minification, too.  The JavaScript is 63 KB uncompressed (~19 KB with Brotli).<br><br>It does offer an option to supposedly avoid this &#8211; &#8220;Dynamic Resource Invocation&#8221; &#8211; but it&#8217;s disabled by default, and still requires inclusion of a &#8220;small&#8221; 1 KB JavaScript file with every page load just to determine if the rest of the code &amp; CSS should be loaded.  So, kind of a hack to try to cover up a design flaw.  Alternatively, you can disable automatic inclusion of the CSS &amp; JavaScript files and handle that manually, but I can&#8217;t imagine anyone actually <em>wants</em> to have to deal with that.</li>



<li>Doesn&#8217;t render the syntax highlighting in the Gutenberg editor, so you&#8217;re stuck with the generic <code>pre</code> appearance there.</li>
</ul>



<p>So, overall a pretty poor option, both in terms of how well it understands Swift &#8211; i.e. <em>particularly</em> badly &#8211; and how it looks out of the box.  It does have a lot more options than most of the other plug-ins, and its GUI for theme editing <em>might</em> be a unique selling point for a &#8211; presumably rather limited &#8211; market of people that want to include Swift code on their website but aren&#8217;t comfortable writing CSS.  Even that withstanding for argument&#8217;s sake, I think it falls solidly towards the bottom of the pile.</p>



<h2 class="wp-block-heading" id="highlighting-code-block"><a href="https://wordpress.org/plugins/highlighting-code-block/" data-wpel-link="external" target="_blank" rel="external noopener">Highlighting Code Block</a></h2>



<div class="alignnormal"><div id="metaslider-id-6707" style="max-width: 564px;" class="ml-slider-3-107-0 metaslider metaslider-flex metaslider-6707 ml-slider ms-theme-default nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden" role="region" aria-label="Syntax highlighting: Highlighting Code Block [Light]" data-height="1347" data-width="564">
    <div id="metaslider_container_6707">
        <div id="metaslider_6707" class="flexslider">
            <ul class='slides'>
                <li style="display: block; width: 100%;" class="slide-6710 ms-image " aria-roledescription="slide" data-date="2023-12-14 10:51:28" data-filename="Highlighting-Code-Block-Light-Light.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="1128" height="2694" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Highlighting-Code-Block-Light-Light.webp" class="slider-6707 slide-6710 msDefaultImage" alt="" rel="" title="Highlighting Code Block [Light] (Light)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Highlighting-Code-Block-Light-Light.webp 1128w, https://wadetregaskis.com/wp-content/uploads/2023/12/Highlighting-Code-Block-Light-Light-107x256.webp 107w, https://wadetregaskis.com/wp-content/uploads/2023/12/Highlighting-Code-Block-Light-Light-429x1024.webp 429w, https://wadetregaskis.com/wp-content/uploads/2023/12/Highlighting-Code-Block-Light-Light-858x2048.webp 858w, https://wadetregaskis.com/wp-content/uploads/2023/12/Highlighting-Code-Block-Light-Light-214x512.webp 214w, https://wadetregaskis.com/wp-content/uploads/2023/12/Highlighting-Code-Block-Light-Light-214x512@2x.webp 428w" sizes="auto, (max-width: 1128px) 100vw, 1128px" /><div class="caption-wrap"><div class="caption">Light mode</div></div></li>
                <li style="display: none; width: 100%;" class="slide-6711 ms-image " aria-roledescription="slide" data-date="2023-12-14 10:51:29" data-filename="Highlighting-Code-Block-Light-Dark.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="1128" height="2694" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Highlighting-Code-Block-Light-Dark.webp" class="slider-6707 slide-6711 msDefaultImage" alt="" rel="" title="Highlighting Code Block [Light] (Dark)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Highlighting-Code-Block-Light-Dark.webp 1128w, https://wadetregaskis.com/wp-content/uploads/2023/12/Highlighting-Code-Block-Light-Dark-107x256.webp 107w, https://wadetregaskis.com/wp-content/uploads/2023/12/Highlighting-Code-Block-Light-Dark-429x1024.webp 429w, https://wadetregaskis.com/wp-content/uploads/2023/12/Highlighting-Code-Block-Light-Dark-858x2048.webp 858w, https://wadetregaskis.com/wp-content/uploads/2023/12/Highlighting-Code-Block-Light-Dark-214x512.webp 214w, https://wadetregaskis.com/wp-content/uploads/2023/12/Highlighting-Code-Block-Light-Dark-214x512@2x.webp 428w" sizes="auto, (max-width: 1128px) 100vw, 1128px" /><div class="caption-wrap"><div class="caption">Dark mode</div></div></li>
            </ul>
        </div>
        
    </div>
</div></div>



<p>A relatively simple plug-in based on <a href="https://prismjs.com" data-wpel-link="external" target="_blank" rel="external noopener">Prism.js</a>, with limited customisation options.</p>



<p>It&#8217;s <a href="https://github.com/ddryo/Highlighting-Code-Block" data-wpel-link="external" target="_blank" rel="external noopener">open source</a> and free (as is the <a href="https://github.com/PrismJS/prism" data-wpel-link="external" target="_blank" rel="external noopener">Prism.js</a> engine underneath it).</p>



<h3 class="wp-block-heading">Performance</h3>



<p>Prism.js prides itself on being [relatively] small.  Perhaps because of that goal of being &#8220;lightweight&#8221;, its performance is pretty poor &#8211; and pretty obviously so even at just a glance.</p>



<p>For example, it:</p>



<ul class="wp-block-list">
<li>Doesn&#8217;t understand @-attributes, such as macro and property wrapper invocations.</li>



<li>Has no idea about the difference between function parameter labels and parameter arguments.</li>



<li>Doesn&#8217;t consistently recognise references to properties, such as when they&#8217;re part of KeyPaths.</li>



<li>Doesn&#8217;t understand some important keywords, like <code>async</code> &amp; <code>await</code>.</li>



<li>Doesn&#8217;t recognise method calls consistently (e.g. <code>pack</code> &amp; <code>reduce</code> vs <code>map</code> in the example shown).</li>



<li>Doesn&#8217;t understand multi-line nor raw strings.</li>
</ul>



<p>On the positive side, it actually recognises custom type names (although doesn&#8217;t distinguish them from Swift standard library types, like Xcode &#8211; though it&#8217;s debatable whether that&#8217;s a feature).</p>



<p>It uses italics, not just colour, which goes a long way towards giving it higher fidelity without making it look garish.  Unfortunately, its use of italics is weirdly inconsistent &#8211; e.g. it italicises <em>some</em> keywords but not all (e.g. <code>final</code> vs <code><em>class</em></code>), and italicises <em>some</em> type names but not others (e.g. <code><em>VStack</em></code> vs <code>Image</code> &amp; <code>Text</code>).</p>



<p>It doesn&#8217;t take much effort to understand why &#8211; it&#8217;s using a <em>very</em> simplistic parser that knows virtually nothing about the language (other than a hard-coded list of keywords) and instead is just going off of capitalisation, mostly.  Which is somewhat clever, and gets it a long way for such a simple method, but ultimately results in poor performance.</p>



<p>At least it defaults to Menlo, which is actually a respectable choice and makes it one of the few plug-ins tested that have a decent default for Apple platforms.  In case you&#8217;re unfamiliar, <a href="https://en.wikipedia.org/wiki/Menlo_(typeface)" data-wpel-link="external" target="_blank" rel="external noopener">Menlo</a> was the default monospace font for Snow Leopard through Yosemite (before it was replaced by SF Mono).  You&#8217;d most likely have encountered it in Terminal or Xcode, if you used a Mac in that timeframe (2009 &#8211; 2015).  It&#8217;s still available on every Apple device (as of time of writing, December 2023).</p>



<p>It&#8217;s a bit weird that the performance is significantly different from some other Prism.js-based plug-ins, like <a href="#code-syntax-block">Code Syntax Block</a>.  It&#8217;d be explicable if one plug-in were strictly superior to the other &#8211; suggesting simply use of a newer version of Prism.js by one than the other &#8211; but it&#8217;s actually a weird mix of improvements and regressions.</p>



<h3 class="wp-block-heading">Pros</h3>



<ul class="wp-block-list">
<li>Good bang-for-your-buck configuration options, which is to say that it has relatively few but it includes the essentials and with maximum flexibility (e.g. font customisation is by entering the actual <code>font-family</code> CSS string, rather than being limited to do a predefined short list of options as with most other plug-ins).</li>
</ul>



<h3 class="wp-block-heading">Cons</h3>



<ul class="wp-block-list">
<li>Does everything client-side, so there&#8217;s a noticeable delay before syntax highlighting is actually applied (especially on first load, when the relevant JavaScript &amp; CSS isn&#8217;t cached in the browser).  It&#8217;s a bit visually jarring as the unstyled code is replaced with the styled.</li>



<li>Adds its CSS &amp; JavaScript files to <em>every</em> page load, plus some inline CSS &amp; JavaScript, irrespective of whether the page actually needs it or not.  This includes the entire Prism.js library with grammar parsers for every supported language, irrespective of which ones are actually used.<br><br>And they&#8217;re not entirely trivial files, either &#8211; mainly because of Prism.js at 35 KB alone.  Overall they&#8217;re 41 KB before compression (~18 KB with Brotli).</li>



<li>Limited theming control &#8211; it has an unnamed built-in default, which you can override by specifying a server-side path to a custom CSS file (although functionally this isn&#8217;t much different from just putting your custom CSS in your website&#8217;s general custom CSS file, because of the aforementioned flaw whereby this plug-in inserts its CSS into <em>every</em> page load).</li>



<li>Theming is controlled globally with no ability to override it for specific uses.<br><br>This is (IMO) better than not having any global controls at all, as with some plug-ins, but it can be problematic if you use more than one language in these code blocks across your website, as you might prefer different themes for different languages.<br><br>You can technically work around this limitation using custom CSS, since the language is included as a class on the relevant <code>pre</code> and <code>code</code> HTML elements.</li>



<li>Includes support for a relatively small number of languages (by default), although that does include Swift and Objective-C, among many other popular languages.  I list this as &#8216;con&#8217; only in a relative sense &#8211; for most users its built-in shortlist is likely quite sufficient.<br><br>You can provide a custom build of Prism.js if you need others, although it&#8217;s left as an exercise to the user to figure out how to do that (and to then maintain it).</li>



<li>Doesn&#8217;t render the syntax highlighting in the Gutenberg editor, so you&#8217;re stuck with the generic <code>pre</code> appearance there.</li>



<li>Uses a custom Gutenberg block type, rather than just extending the standard Code block.  So you can&#8217;t just upgrade your whole existing site &#8211; you have to manually go through and find every existing Code block, and manually migrate each one.<br><br>Inversely it&#8217;ll also be more difficult to migrate away from, if you choose to do that some day, as you&#8217;ll likely have to repeat that whole process no matter what replacement plug-in you choose.</li>
</ul>



<h2 class="wp-block-heading"><a href="https://wordpress.org/plugins/prismatic/" data-wpel-link="external" target="_blank" rel="external noopener">Prismatic</a></h2>



<p>A uniquely versatile plug-in that supports both the <a href="https://prismjs.com" data-wpel-link="external" target="_blank" rel="external noopener">Prism.js</a> and <a href="https://highlightjs.org" data-wpel-link="external" target="_blank" rel="external noopener">highlight.js</a> engines.</p>



<p>It&#8217;s <a href="https://plugins.svn.wordpress.org/prismatic/" data-wpel-link="external" target="_blank" rel="external noopener">open source</a> and free (as are the <a href="https://github.com/PrismJS/prism" data-wpel-link="external" target="_blank" rel="external noopener">Prism.js</a> and <a href="https://github.com/highlightjs/highlight.js" data-wpel-link="external" target="_blank" rel="external noopener">highlight.js</a> engines underneath it).</p>



<p>Unfortunately, it immediately disqualified itself by simply not working.  After installing &amp; activating it in WordPress, nothing happens.  The built-in Code block doesn&#8217;t change, there is no new Gutenberg block (contrary to its documentation which claims it adds a &#8220;Prismatic&#8221; block), and nothing appears anywhere in the WordPress Admin menu, such as a global settings page.</p>



<p>I checked the PHP logs and found no mention of the plug-in nor any relevant log messages.</p>



<p>It&#8217;s unusual &#8211; in my experience &#8211; for a WordPress plug-in to just silently fail like this.  While it might be possible to enable WordPress debug logging and ultimately figure out what&#8217;s going on, in my experience first impressions are indicative when it comes to WordPress plug-ins, so I&#8217;m not going to spend time trying to get a plug-in to work at all when it&#8217;s probable it&#8217;ll have numerous other problems anyway.</p>



<h2 class="wp-block-heading"><a href="https://wordpress.org/plugins/syntax-highlighting-code-block/" data-wpel-link="external" target="_blank" rel="external noopener">Syntax-highlighting Code Block (with Server-side Rendering)</a></h2>



<div class="alignnormal"><div id="metaslider-id-6719" style="max-width: 412px;" class="ml-slider-3-107-0 metaslider metaslider-flex metaslider-6719 ml-slider ms-theme-default nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden" role="region" aria-label="Syntax highlighting: Syntax-highlighting Code Block (with Server-side Rendering) [Default]" data-height="1155" data-width="412">
    <div id="metaslider_container_6719">
        <div id="metaslider_6719" class="flexslider">
            <ul class='slides'>
                <li style="display: block; width: 100%;" class="slide-6722 ms-image " aria-roledescription="slide" data-date="2023-12-14 21:22:33" data-filename="Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Light.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="824" height="2310" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Light.webp" class="slider-6719 slide-6722 msDefaultImage" alt="" rel="" title="Syntax-highlighting Code Block (with Server-side Rendering) [Default] (Light)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Light.webp 824w, https://wadetregaskis.com/wp-content/uploads/2023/12/Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Light-365x1024.webp 365w, https://wadetregaskis.com/wp-content/uploads/2023/12/Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Light-731x2048.webp 731w, https://wadetregaskis.com/wp-content/uploads/2023/12/Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Light-91x256.webp 91w, https://wadetregaskis.com/wp-content/uploads/2023/12/Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Light-183x512.webp 183w, https://wadetregaskis.com/wp-content/uploads/2023/12/Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Light-365x1024@2x.webp 730w, https://wadetregaskis.com/wp-content/uploads/2023/12/Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Light-91x256@2x.webp 182w, https://wadetregaskis.com/wp-content/uploads/2023/12/Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Light-183x512@2x.webp 366w" sizes="auto, (max-width: 824px) 100vw, 824px" /><div class="caption-wrap"><div class="caption">Light mode</div></div></li>
                <li style="display: none; width: 100%;" class="slide-6723 ms-image " aria-roledescription="slide" data-date="2023-12-14 21:22:34" data-filename="Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Dark.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="824" height="2310" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Dark.webp" class="slider-6719 slide-6723 msDefaultImage" alt="" rel="" title="Syntax-highlighting Code Block (with Server-side Rendering) [Default] (Dark)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Dark.webp 824w, https://wadetregaskis.com/wp-content/uploads/2023/12/Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Dark-365x1024.webp 365w, https://wadetregaskis.com/wp-content/uploads/2023/12/Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Dark-731x2048.webp 731w, https://wadetregaskis.com/wp-content/uploads/2023/12/Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Dark-91x256.webp 91w, https://wadetregaskis.com/wp-content/uploads/2023/12/Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Dark-183x512.webp 183w, https://wadetregaskis.com/wp-content/uploads/2023/12/Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Dark-365x1024@2x.webp 730w, https://wadetregaskis.com/wp-content/uploads/2023/12/Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Dark-91x256@2x.webp 182w, https://wadetregaskis.com/wp-content/uploads/2023/12/Syntax-highlighting-Code-Block-with-Server-side-Rendering-Default-Dark-183x512@2x.webp 366w" sizes="auto, (max-width: 824px) 100vw, 824px" /><div class="caption-wrap"><div class="caption">Dark mode</div></div></li>
            </ul>
        </div>
        
    </div>
</div></div>



<p>Nominally a fork of <a href="#code-syntax-block">Code Syntax Block</a> that renders server-side instead of client-side, although it uses a different engine &#8211; <a href="https://github.com/scrivo/highlight.php" data-wpel-link="external" target="_blank" rel="external noopener">Highlight.php</a> instead of <a href="https://prismjs.com" data-wpel-link="external" target="_blank" rel="external noopener">Prism.js</a>.</p>



<p><a href="https://github.com/scrivo/highlight.php" data-wpel-link="external" target="_blank" rel="external noopener">highlight.php</a> is a PHP port of <a href="https://highlightjs.org" data-wpel-link="external" target="_blank" rel="external noopener">Highlight.js</a>.  It&#8217;s unclear to me how closely or promptly that tracks changes to the original JavaScript library.</p>



<p>It&#8217;s <a href="https://github.com/westonruter/syntax-highlighting-code-block" data-wpel-link="external" target="_blank" rel="external noopener">open source</a> and free (as is the highlight.php engine underneath it).</p>



<h3 class="wp-block-heading">Performance</h3>



<p>The default theme is particularly bland.  It&#8217;s actually hard to judge its understanding of Swift purely from its appearance since so much of it looks the same.</p>



<p>It&#8217;s noteworthy as a <em>particularly</em> hostile plug-in (with its default theme) for colourblind viewers, due to its use of <em>very</em> similar shades for almost everything, and in particular its use of red vs grey in a way which makes them virtually indistinguishable to a significant portion of the population.  It&#8217;s not the only plug-in to be thoughtless in this way, but it is the worst.</p>



<p>It does come with a lot of other themes &#8211; nearly ninety at time of writing &#8211; but you&#8217;d be forgiven for thinking it does not, as it puts the theme selection setting in a surprising location &#8211; the &#8216;Customize&#8217; section of WordPress&#8217;s Appearance settings.  While this actually makes tremendous sense, <em>no</em> other syntax-highlighting plug-ins put their settings there.  It&#8217;s hard to hold that against this plug-in, for being the <em>one</em> plug-in which (arguably) does the right thing, but I almost overlooked this critical functionality &#8211; I only discovered it by chance because I happened upon its <a href="https://github.com/westonruter/syntax-highlighting-code-block/wiki/Advanced-Usage" data-wpel-link="external" target="_blank" rel="external noopener">Advanced Usage</a> documentation.</p>



<p>That all said, one thing the bland default does have going for it is that the visual sameness helps to slightly obscure how poorly the plug-in understands Swift.</p>



<p>For example, it:</p>



<ul class="wp-block-list">
<li>Doesn&#8217;t understand @-attributes, such as macro and property wrapper invocations.</li>



<li>Has no idea about the difference between function parameter labels and parameter arguments.</li>



<li>Doesn&#8217;t consistently recognise references to properties, such as when they&#8217;re part of KeyPaths.</li>



<li>Doesn&#8217;t understand some important keywords, like <code>async</code> &amp; <code>await</code>.</li>



<li>Doesn&#8217;t recognise method calls consistently (e.g. <code>pack</code> vs <code>reduce</code> &amp; <code>map</code> in the example shown).</li>



<li>Doesn&#8217;t understand raw strings (though it does handle multi-line strings correctly).</li>



<li>Is fooled by the use of keyword-looking names in places where they aren&#8217;t keywords, e.g. the <code>default</code> static property of <code>HomeItem</code>.</li>
</ul>



<p>It&#8217;s pretty apparent, especially once you look at the HTML itself, that it&#8217;s doing only a rudimentary analysis mainly based on a hard-coded list of keywords and heuristics like whether words start with capital letters.  That&#8217;s why it confuses literals (strings &amp; numbers) with type names, function names with property names, and so forth.  It&#8217;s not the only plug-in to try to fake it with such a simplistic algorithm, but it does the worst job of pulling it off.</p>



<p>It renders keywords in bold (like Xcode), which greatly aids readability.</p>



<p>Since it uses the built-in WordPress Code block as its basis, and doesn&#8217;t muck with the fonts, it defaults to whatever the active WordPress theme uses.  As shown in this example, with <a href="https://generatepress.com" data-wpel-link="external" target="_blank" rel="external noopener">GeneratePress</a>, that&#8217;s not even necessarily a monospaced font!  Worst, the plug-in has no built-in configuration option for font (although you can use custom CSS to override it).</p>



<h3 class="wp-block-heading">Pros</h3>



<ul class="wp-block-list">
<li>Extends the built-in, standard Code block.  This makes it comparatively trivial to adopt if you&#8217;ve already got Code blocks on your website (although you may still need to go through and customise some things, such as the language in case auto-detection doesn&#8217;t work correctly).<br><br>This also makes it easier to switch syntax-highlighting plug-ins, <em>provided</em> that the one you switch from or to also supports the standard Code block, which is sadly a minority of them.</li>
</ul>



<h3 class="wp-block-heading">Cons</h3>



<ul class="wp-block-list">
<li>No official theming support.<br><br>You can use custom CSS to re-theme it, thanks to its use of sensible class names for its <code>span</code>s, but other than fixing its bland default colours you can&#8217;t really improve it much, since a <em>lot</em> of the code is emitted as runs of plain text because of the plug-in&#8217;s very poor understanding of Swift.</li>



<li>No global settings &#8211; if you decide to change <em>any</em> settings, at any point, you have to manually find and adjust every existing code snippet manually.<br><br>This might be considered a positive by some users, where they want existing content to remain as-is.  However, some plug-ins offer both a global setting <em>and</em> the ability to override that on a per-case basis, providing more flexibility.</li>



<li>Very limited settings &#8211; just the language (if you don&#8217;t want to rely on auto-detection), which line(s) to highlight, whether to soft wrap, and whether to show line numbers.</li>
</ul>



<h2 class="wp-block-heading" id="syntaxhighlighter-evolved"><a href="https://alex.blog/wordpress-plugins/syntaxhighlighter/" data-wpel-link="external" target="_blank" rel="external noopener">SyntaxHighlighter Evolved</a></h2>



<div class="alignnormal"><div id="metaslider-id-7132" style="max-width: 590px;" class="ml-slider-3-107-0 metaslider metaslider-flex metaslider-7132 ml-slider ms-theme-default nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden" role="region" aria-label="Syntax highlighting: SyntaxHighlighter Evolved [Default theme]" data-height="1030" data-width="590">
    <div id="metaslider_container_7132">
        <div id="metaslider_7132" class="flexslider">
            <ul class='slides'>
                <li style="display: block; width: 100%;" class="slide-7133 ms-image " aria-roledescription="slide" data-date="2023-12-29 18:25:40" data-filename="SyntaxHighlighter-Evolved-Default-theme-Light.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="1180" height="2060" src="https://wadetregaskis.com/wp-content/uploads/2023/12/SyntaxHighlighter-Evolved-Default-theme-Light.webp" class="slider-7132 slide-7133 msDefaultImage" alt="" rel="" title="SyntaxHighlighter Evolved [Default theme] (Light)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/SyntaxHighlighter-Evolved-Default-theme-Light.webp 1180w, https://wadetregaskis.com/wp-content/uploads/2023/12/SyntaxHighlighter-Evolved-Default-theme-Light-147x256.webp 147w, https://wadetregaskis.com/wp-content/uploads/2023/12/SyntaxHighlighter-Evolved-Default-theme-Light-587x1024.webp 587w, https://wadetregaskis.com/wp-content/uploads/2023/12/SyntaxHighlighter-Evolved-Default-theme-Light-1173x2048.webp 1173w, https://wadetregaskis.com/wp-content/uploads/2023/12/SyntaxHighlighter-Evolved-Default-theme-Light-293x512.webp 293w, https://wadetregaskis.com/wp-content/uploads/2023/12/SyntaxHighlighter-Evolved-Default-theme-Light-147x256@2x.webp 294w, https://wadetregaskis.com/wp-content/uploads/2023/12/SyntaxHighlighter-Evolved-Default-theme-Light-587x1024@2x.webp 1174w, https://wadetregaskis.com/wp-content/uploads/2023/12/SyntaxHighlighter-Evolved-Default-theme-Light-293x512@2x.webp 586w" sizes="auto, (max-width: 1180px) 100vw, 1180px" /><div class="caption-wrap"><div class="caption">Light mode</div></div></li>
                <li style="display: none; width: 100%;" class="slide-7134 ms-image " aria-roledescription="slide" data-date="2023-12-29 18:25:40" data-filename="SyntaxHighlighter-Evolved-Default-theme-Dark.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="1180" height="2060" src="https://wadetregaskis.com/wp-content/uploads/2023/12/SyntaxHighlighter-Evolved-Default-theme-Dark.webp" class="slider-7132 slide-7134 msDefaultImage" alt="" rel="" title="SyntaxHighlighter Evolved [Default theme] (Dark)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/SyntaxHighlighter-Evolved-Default-theme-Dark.webp 1180w, https://wadetregaskis.com/wp-content/uploads/2023/12/SyntaxHighlighter-Evolved-Default-theme-Dark-147x256.webp 147w, https://wadetregaskis.com/wp-content/uploads/2023/12/SyntaxHighlighter-Evolved-Default-theme-Dark-587x1024.webp 587w, https://wadetregaskis.com/wp-content/uploads/2023/12/SyntaxHighlighter-Evolved-Default-theme-Dark-1173x2048.webp 1173w, https://wadetregaskis.com/wp-content/uploads/2023/12/SyntaxHighlighter-Evolved-Default-theme-Dark-293x512.webp 293w, https://wadetregaskis.com/wp-content/uploads/2023/12/SyntaxHighlighter-Evolved-Default-theme-Dark-147x256@2x.webp 294w, https://wadetregaskis.com/wp-content/uploads/2023/12/SyntaxHighlighter-Evolved-Default-theme-Dark-587x1024@2x.webp 1174w, https://wadetregaskis.com/wp-content/uploads/2023/12/SyntaxHighlighter-Evolved-Default-theme-Dark-293x512@2x.webp 586w" sizes="auto, (max-width: 1180px) 100vw, 1180px" /><div class="caption-wrap"><div class="caption">Dark mode</div></div></li>
            </ul>
        </div>
        
    </div>
</div></div>



<p>This is what I was using for years.  It&#8217;s completely free and <a href="https://github.com/Automattic/syntaxhighlighter" data-wpel-link="external" target="_blank" rel="external noopener">open source</a>.  It uses a proprietary syntax parsing system based on regular expressions.</p>



<h3 class="wp-block-heading">Performance</h3>



<p>It&#8217;s an interesting one, because it actually understands so <em>little</em> Swift syntax that most of it is bucketed together as &#8216;plain&#8217; text.  However, because it renders &#8216;plain&#8217; text in a colour other than black, it gives the surprisingly convincing (at a glance) illusion that it understands much more than it really does.</p>



<p>Overall its rendering is close to Xcode&#8217;s, which is very surprising given its highly rudimentary grammar parser.</p>



<p>It is actually pretty good about identifying keywords &#8211; it actually gets <code>async</code> which many do not &#8211; but it doesn&#8217;t understand them with context, e.g. it mistakes the <code>default</code> static property of <code>HomeItem</code> with the <code>default</code> keyword.</p>



<p>It renders keywords in bold (like Xcode) which greatly aids readability, although note how (unlike Xcode) it messes up the letter spacing as a result (this is a result of the font used &#8211; Monaco &#8211; and thus can be fixed by overriding that with a better font, e.g. SF Mono).</p>



<p>While it covers up a lot of its ignorance with its clever colour choices, there&#8217;s still a few important things that it gets visibly wrong.  For example, it:</p>



<ul class="wp-block-list">
<li>Doesn&#8217;t understand @-attributes, such as macro and property wrapper invocations.</li>



<li>Has no idea about the difference between function parameter labels and parameter arguments.</li>



<li>Doesn&#8217;t understand raw strings.</li>
</ul>



<p>Its choice of Monaco as its font is… interesting, although modern versions of Monaco are thankfully a little smoother than their 1980s ancestor.  That&#8217;s easy to override, however, via custom CSS in a suitable WordPress-generic stylesheet (the plug-in doesn&#8217;t provide any direct way to manipulate styling, beyond choosing from a short list of built-in themes).</p>



<h3 class="wp-block-heading">Pros</h3>



<ul class="wp-block-list">
<li>Most of its settings are global.  So changing themes for a whole site is trivial.</li>



<li>Uses sensible HTML structure and class names, so it&#8217;s easy to unofficially re-theme (although it has a very limited vocabulary of grammar, so you can&#8217;t greatly improve what you see here).</li>



<li>Supports end-user editing of the code (with the syntax highlighting updating appropriately).  This is purely superficial text editing &#8211; there&#8217;s no support for interpreting, compiling, or executing the code.  So I&#8217;m not really sure what the point of this feature is, but I list it here since it is unique to this plug-in (amongst all those I tested).</li>
</ul>



<h3 class="wp-block-heading">Cons</h3>



<ul class="wp-block-list">
<li>Doesn&#8217;t formally support light/dark mode (as do <em>none</em> of the plug-ins tested).  Colours are fixed (to whatever theme you choose) irrespective of the end-user&#8217;s light/dark setting (again, same as all the other plug-ins).  However, one difference versus all the other plug-ins is that this one doesn&#8217;t work properly with <a href="https://wordpress.org/plugins/wp-dark-mode/" data-wpel-link="external" target="_blank" rel="external noopener">WP Dark Mode</a> &#8211; it remains in light mode even while the rest of the page renders correctly in dark mode.<br><br>I strongly suspect the fault lies in WP Dark Mode, not SyntaxHighlighter Evolved, but irrespective it is there and might be a deal-breaker if you&#8217;re particularly attached to WP Dark Mode.</li>



<li>Doesn&#8217;t render the syntax highlighting in the Gutenberg editor, so you&#8217;re stuck with the generic <code>pre</code> appearance there.</li>



<li>Uses a custom Gutenberg block type, rather than just extending the standard Code block.  So you can&#8217;t just upgrade your whole existing site &#8211; you have to manually go through and find every existing Code block, and manually migrate each one.</li>



<li>Doesn&#8217;t get updated super often, although it has been around for years and has generally kept up with new WordPress versions, eventually.</li>
</ul>



<h2 class="wp-block-heading"><a href="https://wordpress.org/plugins/urvanov-syntax-highlighter/" data-wpel-link="external" target="_blank" rel="external noopener">Urvanov Syntax Highlighter</a></h2>



<div class="alignnormal"><div id="metaslider-id-7034" style="max-width: 1140px;" class="ml-slider-3-107-0 metaslider metaslider-flex metaslider-7034 ml-slider ms-theme-default nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden" role="region" aria-label="Syntax highlighting: Urvanov Syntax Highlighter [Classic]" data-height="962" data-width="1140">
    <div id="metaslider_container_7034">
        <div id="metaslider_7034" class="flexslider">
            <ul class='slides'>
                <li style="display: block; width: 100%;" class="slide-7040 ms-image " aria-roledescription="slide" data-date="2023-12-29 09:36:07" data-filename="Urvanov-Syntax-Highlighter-Classic-Light.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="2280" height="1924" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Urvanov-Syntax-Highlighter-Classic-Light.webp" class="slider-7034 slide-7040 msDefaultImage" alt="" rel="" title="Urvanov Syntax Highlighter [Classic] (Light)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Urvanov-Syntax-Highlighter-Classic-Light.webp 2280w, https://wadetregaskis.com/wp-content/uploads/2023/12/Urvanov-Syntax-Highlighter-Classic-Light-256x216.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/Urvanov-Syntax-Highlighter-Classic-Light-512x432@2x.webp 1024w, https://wadetregaskis.com/wp-content/uploads/2023/12/Urvanov-Syntax-Highlighter-Classic-Light-2048x1728.webp 2048w, https://wadetregaskis.com/wp-content/uploads/2023/12/Urvanov-Syntax-Highlighter-Classic-Light-512x432.webp 512w" sizes="auto, (max-width: 2280px) 100vw, 2280px" /><div class="caption-wrap"><div class="caption">Light mode</div></div></li>
                <li style="display: none; width: 100%;" class="slide-7039 ms-image " aria-roledescription="slide" data-date="2023-12-29 09:36:06" data-filename="Urvanov-Syntax-Highlighter-Classic-Dark.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="2280" height="1924" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Urvanov-Syntax-Highlighter-Classic-Dark.webp" class="slider-7034 slide-7039 msDefaultImage" alt="" rel="" title="Urvanov Syntax Highlighter [Classic] (Dark)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Urvanov-Syntax-Highlighter-Classic-Dark.webp 2280w, https://wadetregaskis.com/wp-content/uploads/2023/12/Urvanov-Syntax-Highlighter-Classic-Dark-256x216.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/Urvanov-Syntax-Highlighter-Classic-Dark-512x432@2x.webp 1024w, https://wadetregaskis.com/wp-content/uploads/2023/12/Urvanov-Syntax-Highlighter-Classic-Dark-2048x1728.webp 2048w, https://wadetregaskis.com/wp-content/uploads/2023/12/Urvanov-Syntax-Highlighter-Classic-Dark-512x432.webp 512w" sizes="auto, (max-width: 2280px) 100vw, 2280px" /><div class="caption-wrap"><div class="caption">Dark mode</div></div></li>
            </ul>
        </div>
        
    </div>
</div></div>



<p>A fork of the abandoned <a href="https://wordpress.org/plugins/crayon-syntax-highlighter/" data-wpel-link="external" target="_blank" rel="external noopener">Crayon Syntax Highlighter</a> that uses its own syntax-highlighting engine.</p>



<p>It&#8217;s <a href="https://github.com/urvanov-ru/crayon-syntax-highlighter" data-wpel-link="external" target="_blank" rel="external noopener">open source</a> and free.</p>



<p>I almost didn&#8217;t include this because (a) it&#8217;s really very broken and (b) it doesn&#8217;t really support Swift at all.  I strongly recommend against using it, for numerous reasons.</p>



<h3 class="wp-block-heading">Performance</h3>



<p>Pretty terrible, in a nutshell.  I&#8217;m not going to go into full detail here because the plug-in is largely broken anyway (details shortly, in the Cons section).</p>



<p>Ironically it works better out of the box than if you actually configure it &#8220;correctly&#8221;; it doesn&#8217;t recognise this example as any specific language and falls back to some generic &#8220;Default&#8221; grammar parser.  If you explicitly set it to Swift, the syntax highlighting actually gets markedly worse, and it&#8217;s no surprise why &#8211; <a href="https://github.com/urvanov-ru/crayon-syntax-highlighter/tree/master/langs/swift" data-wpel-link="external" target="_blank" rel="external noopener">its Swift grammar definition</a> is nearly a decade old, dating back to Swift 1.0 in 2014!</p>



<p>One of its most egregious rendering problems is that it translates various special characters &#8211; <code>[</code>, <code>&lt;</code>, <code>&gt;</code>, etc &#8211; to their escaped HTML entities.  This can be &#8216;corrected&#8217; in its settings &#8211; it has a &#8220;Decode HTML entities in code&#8221; option &#8211; but that&#8217;s a hacky bandaid over the bug, that precludes you from <em>actually</em> using HTML entities in your code example (so you can&#8217;t use this plug-in for the HTML language itself).</p>



<p>Another rendering annoyance is that it makes the code block&#8217;s width 100%, irrespective of the actual width of the code.  Most of the plug-ins do that, actually, but it&#8217;s much more apparent with this one because of its use of a visual border and alternating line background colours.  You can configure a maximum width in its global settings, but (as with most of these plug-ins) there&#8217;s no (built-in) way to make it size to fit.</p>



<p>On syntax understanding itself, it basically has none.  It simply recognises some fairly general syntax patterns, such as strings, literals, and parenthesis-indicated function calls.  It doesn&#8217;t recognise most keywords, even.</p>



<h3 class="wp-block-heading">Pros</h3>



<ul class="wp-block-list">
<li>Very configurable &#8211; perhaps the <em>most</em> configurable plug-in tested.  Beyond just theming options &#8211; including the ability to easily change the font from its default of Monaco &#8211; it includes options rarely covered by other plug-ins such as margin customisations.</li>
</ul>



<h3 class="wp-block-heading">Cons</h3>



<ul class="wp-block-list">
<li>Nominally offers a Gutenberg block, but it doesn&#8217;t work &#8211; you cannot actually edit the textual contents, in the Gutenberg editor, and it doesn&#8217;t render at all on the actual published page.  Thus you can <em>only</em> use the plug-in by having it take over existing <code>&lt;code</code>&gt; and/or <code>&lt;pre&gt;</code> blocks…</li>



<li>Takes over all existing <code>&lt;code</code>&gt; and <code>&lt;pre&gt;</code> blocks by default, even those by other plug-ins, and those that don&#8217;t contain code at all (e.g. where you were simply presenting monospaced text such as Terminal output).  You can configure this in the settings, including turning it off, but given the Gutenberg block doesn&#8217;t work, this is the <em>only</em> way to actually use the plug-in.<br><br><img loading="lazy" decoding="async" width="391" height="225" class="wp-image-7042" style="width: 391px;" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Urvanov-Syntax-Highlighter-22Tag22-settings.webp" alt="Screenshot of the 'Tag' settings for the Urvanov Syntax Highlighter WordPress plug-in" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Urvanov-Syntax-Highlighter-22Tag22-settings.webp 782w, https://wadetregaskis.com/wp-content/uploads/2023/12/Urvanov-Syntax-Highlighter-22Tag22-settings-256x147.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/Urvanov-Syntax-Highlighter-22Tag22-settings-512x295.webp 512w" sizes="auto, (max-width: 391px) 100vw, 391px" /><br><br>I spent some time playing with different combinations of these settings, but many combinations are inexplicably unusable &#8211; they just result in broken rendering &#8211; and I couldn&#8217;t find anything that improved on the default behaviour.<br><br>As such, this is an especially all-or-nothing syntax highlighter.  It <em>really</em> doesn&#8217;t play well with others.</li>



<li>Since it just takes over existing <code>&lt;code</code>&gt; and/or <code>&lt;pre&gt;</code> blocks, there&#8217;s no per-use customisation possible &#8211; everything is exclusively controlled through global settings, including the code language.</li>



<li>By default adds its CSS &amp; JavaScript files to <em>every</em> page load, plus some inline CSS &amp; JavaScript, irrespective of whether the page actually needs it or not.  This can nominally be corrected in the settings, via the &#8220;Attempt to load Crayon&#8217;s CSS and JavaScript only when needed&#8221; option, but I didn&#8217;t test it (and it&#8217;s not encouraging that it&#8217;s both disabled by default and uses the word <em>attempt</em>, both suggesting this feature doesn&#8217;t work reliably).<br><br>And they&#8217;re not entirely trivial files, either, even though rendering is done server-side &#8211; its JavaScript is 65 KB alone!  Its CSS is another 28 KB.  With Brotli compression they&#8217;re ~18 KB.  They compress well in part for the same reason they&#8217;re so egregiously large &#8211; the use of &#8220;urvanov-syntax-highlighter&#8221; / &#8220;urvanov_syntax_highlighter&#8221; prefixes on so many of the names.  This bloats up the page source as well, with oversized HTML class names for every snippet of styled code.</li>



<li>Doesn&#8217;t render the syntax highlighting in the Gutenberg editor, so you&#8217;re stuck with the generic <code>pre</code> appearance there.</li>
</ul>



<h1 class="wp-block-heading">The winner</h1>



<p>…is hard to pick unilaterally.  Each plug-in has significant limitations or trade-offs.  Which is best may depend on your personal preferences and specific needs.</p>



<p>Most of the plug-ins do a pretty atrocious job at actually understanding Swift, and at best for them it&#8217;s a question of how well they can fake it through clever heuristics and styling choices.  <a href="#syntaxhighlighter-evolved">SyntaxHighlighter Evolved</a> warrants an honourable mention in this regard for doing a particularly impressive job despite its very limited brains.  There&#8217;s a reason I used it for years with relatively few complaints, and if it hadn&#8217;t had issues with WP Dark Mode &#8211; before I realised WP Dark Mode was buggy anyway and had to be replaced &#8211; I probably wouldn&#8217;t have bothered doing all this competitive research, and wouldn&#8217;t be switching away from it.</p>



<p>The most common engines used by syntax-highlighting plug-ins are <a href="https://prismjs.com" data-wpel-link="external" target="_blank" rel="external noopener">Prism.js</a> and <a href="https://highlightjs.org" data-wpel-link="external" target="_blank" rel="external noopener">Highlight.js</a> / <a href="https://github.com/scrivo/highlight.php" data-wpel-link="external" target="_blank" rel="external noopener">Highlight.php</a>, but frankly they&#8217;re bad at Swift &#8211; a situation that&#8217;s unlikely to change given Swift is such a niche language for them; they&#8217;re clearly focused on browser languages like JavaScript, HTML, and CSS.  Even that aside, they tend to use client-side rendering which is slower and buggier.</p>



<figure class="wp-block-pullquote"><blockquote><p>Ultimately, I tentatively believe that <a href="#code-block-pro">Code Block Pro</a> is the best option.</p></blockquote></figure>



<p>It <em>currently</em> does a somewhat average job in understanding Swift and rendering it pleasingly &#8211; just like all the plug-ins tested &#8211; but it seems to have the most promising foundation, being based on the same grammar &amp; theme files as are used by Visual Studio Code (and <a href="https://github.com/github-linguist/linguist/tree/master/vendor/grammars" data-wpel-link="external" target="_blank" rel="external noopener">GitHub</a>).  So it has the possibility of significant improvements in future; at the very least it would make sense for the Swift community to focus on it since the benefits will be applicable not just to WordPress websites but also Visual Studio Code and GitHub.</p>



<h4 class="wp-block-heading">Refinements to Code Block Pro</h4>



<div class="alignnormal"><div id="metaslider-id-7116" style="max-width: 570px;" class="ml-slider-3-107-0 metaslider metaslider-flex metaslider-7116 ml-slider ms-theme-default nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden nav-hidden" role="region" aria-label="Syntax highlighting: Code Block Pro [Light Plus w/ modifications]" data-height="1280" data-width="570">
    <div id="metaslider_container_7116">
        <div id="metaslider_7116" class="flexslider">
            <ul class='slides'>
                <li style="display: block; width: 100%;" class="slide-7117 ms-image " aria-roledescription="slide" data-date="2023-12-29 16:29:49" data-filename="Code-Block-Pro-Light-Plus-w-customisations-Light.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="1140" height="2560" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-w-customisations-Light.webp" class="slider-7116 slide-7117 msDefaultImage" alt="" rel="" title="Code Block Pro [Light Plus w: customisations] (Light)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-w-customisations-Light.webp 1140w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-w-customisations-Light-114x256.webp 114w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-w-customisations-Light-228x512@2x.webp 456w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-w-customisations-Light-912x2048.webp 912w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-w-customisations-Light-228x512.webp 228w" sizes="auto, (max-width: 1140px) 100vw, 1140px" /><div class="caption-wrap"><div class="caption">Light mode</div></div></li>
                <li style="display: none; width: 100%;" class="slide-7118 ms-image " aria-roledescription="slide" data-date="2023-12-29 16:29:49" data-filename="Code-Block-Pro-Light-Plus-w-customisations-Dark.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="1140" height="2560" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-w-customisations-Dark.webp" class="slider-7116 slide-7118 msDefaultImage" alt="" rel="" title="Code Block Pro [Light Plus w: customisations] (Dark)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-w-customisations-Dark.webp 1140w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-w-customisations-Dark-228x512@2x.webp 456w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-w-customisations-Dark-912x2048.webp 912w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-w-customisations-Dark-114x256.webp 114w, https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-w-customisations-Dark-228x512.webp 228w" sizes="auto, (max-width: 1140px) 100vw, 1140px" /><div class="caption-wrap"><div class="caption">Dark mode</div></div></li>
            </ul>
        </div>
        
    </div>
</div></div>



<p>Every light-style theme available with Code Block Pro &#8211; including the paid expansion pack &#8211; has significant rendering errors for Swift, but after spending an egregious amount of time exploring the themes and experimenting with fixes for them, I&#8217;ve concluded that Light Plus is the least bad option.  With some crude but simple CSS I&#8217;m able to adjust its appearance as shown here, which is loosely styled after Xcode&#8217;s default (light mode) theme.</p>



<p>I didn&#8217;t do much to accomodate Dark mode, limiting my modifications there to merely using SF Pro (&#8220;system-ui&#8221;) for comments.  I don&#8217;t use Dark mode myself, so I might not have a good eye for what looks good there, but the default colours (from the simple inversion by the Dracula Dark Mode plug-in) seem alright to me.  And pragmatically, I&#8217;d have to overwrite <em>every</em> colour used in the theme in order to ensure no rendering issues, and that&#8217;s a whole lot of CSS I don&#8217;t want to write nor bloat my page loads with.</p>



<p>I also turn on &#8220;Disable padding&#8221; in its &#8220;Extra Settings&#8221;, as by default it uses (a) hard-coded padding dimensions, in pixels and (b) padding, not margins.  A strange choice, but at least it has the option to disable it.</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-disabled" data-code-block-pro-font-family="" style="font-size:.875rem;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><pre class="shiki light-plus" style="background-color: #FFFFFF" tabindex="0"><code><span class="line"><span style="color: #800000">div.wp-block-kevinbatdorf-code-block-pro</span><span style="color: #000000"> {</span></span>
<span class="line"><span style="color: #000000">	</span><span style="color: #E50000">font-family</span><span style="color: #000000">: </span><span style="color: #A31515">&quot;SF Mono&quot;</span><span style="color: #000000">, SFMono-Regular, </span><span style="color: #0451A5">ui-monospace</span><span style="color: #000000">, </span><span style="color: #0451A5">monospace</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">	</span><span style="color: #E50000">width</span><span style="color: #000000">: </span><span style="color: #0451A5">fit-content</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">	</span><span style="color: #E50000">margin</span><span style="color: #000000">: </span><span style="color: #098658">1em</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">	</span></span>
<span class="line"><span style="color: #000000">	&amp; </span><span style="color: #E50000">span</span><span style="color: #000000">[</span><span style="color: #E50000">style</span><span style="color: #000000">*=</span><span style="color: #EE0000">\#</span><span style="color: #000000">0000FF], </span><span style="color: #E50000">span</span><span style="color: #000000">[</span><span style="color: #E50000">style</span><span style="color: #000000">*=</span><span style="color: #EE0000">\#</span><span style="color: #000000">AF00DB] { </span><span style="color: #008000">/* Keywords */</span></span>
<span class="line"><span style="color: #000000">		</span><span style="color: #E50000">font-weight</span><span style="color: #000000">: </span><span style="color: #098658">675</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">		</span><span style="color: #E50000">color</span><span style="color: #000000">: </span><span style="color: #0451A5">#9B2393</span><span style="color: #000000"> </span><span style="color: #0000FF">!important</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">	}</span></span>
<span class="line"><span style="color: #000000">	</span></span>
<span class="line"><span style="color: #000000">	&amp; </span><span style="color: #800000">span</span><span style="color: #000000">[</span><span style="color: #E50000">style</span><span style="color: #000000">*=</span><span style="color: #EE0000">\#</span><span style="color: #A31515">008000</span><span style="color: #000000">], </span><span style="color: #800000">span</span><span style="color: #000000">[</span><span style="color: #E50000">style</span><span style="color: #000000">*=</span><span style="color: #EE0000">\#</span><span style="color: #A31515">81f179</span><span style="color: #000000">] { </span><span style="color: #008000">/* Comments */</span></span>
<span class="line"><span style="color: #000000">		</span><span style="color: #E50000">font-family</span><span style="color: #000000">: </span><span style="color: #0451A5">system-ui</span><span style="color: #000000"> </span><span style="color: #0000FF">!important</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">		</span><span style="color: #E50000">font-style</span><span style="color: #000000">: </span><span style="color: #0451A5">italic</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">	}</span></span>
<span class="line"><span style="color: #000000">	</span></span>
<span class="line"><span style="color: #000000">	&amp; </span><span style="color: #800000">span</span><span style="color: #000000">[</span><span style="color: #E50000">style</span><span style="color: #000000">*=</span><span style="color: #EE0000">\#</span><span style="color: #A31515">008000</span><span style="color: #000000">] { </span><span style="color: #008000">/* Comments */</span></span>
<span class="line"><span style="color: #000000">		</span><span style="color: #E50000">color</span><span style="color: #000000">: </span><span style="color: #0451A5">#5D6C79</span><span style="color: #000000"> </span><span style="color: #0000FF">!important</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">	}</span></span>
<span class="line"><span style="color: #000000">	</span></span>
<span class="line"><span style="color: #000000">	&amp; </span><span style="color: #800000">span</span><span style="color: #000000">[</span><span style="color: #E50000">style</span><span style="color: #000000">*=</span><span style="color: #EE0000">\#</span><span style="color: #A31515">001080</span><span style="color: #000000">] { </span><span style="color: #008000">/* Properties */</span></span>
<span class="line"><span style="color: #000000">		</span><span style="color: #E50000">color</span><span style="color: #000000">: </span><span style="color: #0451A5">#3E8087</span><span style="color: #000000"> </span><span style="color: #0000FF">!important</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">	}</span></span>
<span class="line"><span style="color: #000000">	</span></span>
<span class="line"><span style="color: #000000">	&amp; </span><span style="color: #800000">span</span><span style="color: #000000">[</span><span style="color: #E50000">style</span><span style="color: #000000">*=</span><span style="color: #EE0000">\#</span><span style="color: #A31515">795E26</span><span style="color: #000000">] { </span><span style="color: #008000">/* Function names and argument labels */</span></span>
<span class="line"><span style="color: #000000">		</span><span style="color: #E50000">color</span><span style="color: #000000">: </span><span style="color: #0451A5">#804FB8</span><span style="color: #000000"> </span><span style="color: #0000FF">!important</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">	}</span></span>
<span class="line"><span style="color: #000000">	</span></span>
<span class="line"><span style="color: #000000">	&amp; </span><span style="color: #800000">span</span><span style="color: #000000">[</span><span style="color: #E50000">style</span><span style="color: #000000">*=</span><span style="color: #EE0000">\#</span><span style="color: #A31515">267F99</span><span style="color: #000000">] { </span><span style="color: #008000">/* Type names */</span></span>
<span class="line"><span style="color: #000000">		</span><span style="color: #E50000">color</span><span style="color: #000000">: </span><span style="color: #0451A5">#4B22B0</span><span style="color: #000000"> </span><span style="color: #0000FF">!important</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">	}</span></span>
<span class="line"><span style="color: #000000">	</span></span>
<span class="line"><span style="color: #000000">	&amp; </span><span style="color: #800000">span</span><span style="color: #000000">[</span><span style="color: #E50000">style</span><span style="color: #000000">*=</span><span style="color: #EE0000">\#</span><span style="color: #A31515">A31515</span><span style="color: #000000">] { </span><span style="color: #008000">/* String literals */</span></span>
<span class="line"><span style="color: #000000">		</span><span style="color: #E50000">font-weight</span><span style="color: #000000">: </span><span style="color: #098658">500</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">		</span><span style="color: #E50000">color</span><span style="color: #000000">: </span><span style="color: #0451A5">#D12F1B</span><span style="color: #000000"> </span><span style="color: #0000FF">!important</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">	}</span></span>
<span class="line"><span style="color: #000000">	</span></span>
<span class="line"><span style="color: #000000">	&amp; </span><span style="color: #800000">span</span><span style="color: #000000">[</span><span style="color: #E50000">style</span><span style="color: #000000">*=</span><span style="color: #EE0000">\#</span><span style="color: #A31515">098658</span><span style="color: #000000">] { </span><span style="color: #008000">/* Numeric literals */</span></span>
<span class="line"><span style="color: #000000">		</span><span style="color: #E50000">font-weight</span><span style="color: #000000">: </span><span style="color: #098658">500</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">		</span><span style="color: #E50000">color</span><span style="color: #000000">: </span><span style="color: #0451A5">#272AD8</span><span style="color: #000000"> </span><span style="color: #0000FF">!important</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">	}</span></span>
<span class="line"><span style="color: #000000">}</span></span></code></pre></div>



<h1 class="wp-block-heading">What are other websites using?</h1>



<p>I figured it might be helpful to look at what other Swift-code-rendering websites use, to see if there&#8217;s any I missed (there wasn&#8217;t) and which the community seems to believe is best.</p>



<ul class="wp-block-list">
<li><a href="https://www.swiftbysundell.com" data-type="link" data-id="https://www.swiftbysundell.com" data-wpel-link="external" target="_blank" rel="external noopener">Swift by Sundell</a> is using <a href="https://github.com/johnsundell/publish" data-type="link" data-id="https://github.com/johnsundell/publish" data-wpel-link="external" target="_blank" rel="external noopener">Publish</a> and the <a href="https://github.com/johnsundell/splash" data-type="link" data-id="https://github.com/johnsundell/splash" data-wpel-link="external" target="_blank" rel="external noopener">Splash</a> plug-in.  Splash seems to do a pretty good job &#8211; clearly better than any JavaScript or PHP syntax highlighters.</li>



<li><a href="https://www.hackingwithswift.com" data-type="link" data-id="https://www.hackingwithswift.com" data-wpel-link="external" target="_blank" rel="external noopener">Hacking with Swift</a> is using <a href="https://wordpress.org" data-type="link" data-id="https://wordpress.org" data-wpel-link="external" target="_blank" rel="external noopener">WordPress</a> and ultimately <a href="https://prismjs.com" data-wpel-link="external" target="_blank" rel="external noopener">Prism.js</a>, although I&#8217;m not sure through which plug-in (possibly <a href="https://github.com/mkaz/code-syntax-block" data-type="link" data-id="https://github.com/mkaz/code-syntax-block" data-wpel-link="external" target="_blank" rel="external noopener">Code Syntax Block</a>).</li>



<li><a href="https://www.cocoawithlove.com" data-type="link" data-id="https://www.cocoawithlove.com" data-wpel-link="external" target="_blank" rel="external noopener">Cocoa with Love</a> might be using some Ruby-based platform or static generator, but it&#8217;s clear it&#8217;s using <a href="https://github.com/rouge-ruby/rouge" data-type="link" data-id="https://github.com/rouge-ruby/rouge" data-wpel-link="external" target="_blank" rel="external noopener">Rouge</a> for syntax highlighting.<br><br>Sidenote: Rouge seems to do a decent job of correctly identifying tokens and their types, although its underlying model looks pretty simplistic (it tends to default to the &#8220;n&#8221; class by default, meaning &#8220;name&#8221;, meaning it doesn&#8217;t really know if it&#8217;s a parameter label, parameter name, type name, etc).</li>



<li><a href="https://www.donnywals.com" data-type="link" data-id="https://www.donnywals.com" data-wpel-link="external" target="_blank" rel="external noopener">Donny Wals</a> is using <a href="https://wordpress.org" data-type="link" data-id="https://wordpress.org" data-wpel-link="external" target="_blank" rel="external noopener">WordPress</a> with the <a href="https://github.com/westonruter/syntax-highlighting-code-block" data-type="link" data-id="https://github.com/westonruter/syntax-highlighting-code-block" data-wpel-link="external" target="_blank" rel="external noopener">Syntax-highlighting Code Block</a> plug-in, which uses <a href="https://github.com/scrivo/highlight.php" data-type="link" data-id="https://github.com/scrivo/highlight.php" data-wpel-link="external" target="_blank" rel="external noopener">Highlight.php</a> (based on <a href="https://highlightjs.org" data-wpel-link="external" target="_blank" rel="external noopener">Highlight.js</a>).</li>



<li><a href="https://matteomanferdini.com" data-type="link" data-id="https://matteomanferdini.com" data-wpel-link="external" target="_blank" rel="external noopener">Matteo Manferdini</a> is using <a href="https://wordpress.org" data-type="link" data-id="https://wordpress.org" data-wpel-link="external" target="_blank" rel="external noopener">WordPress</a> with the <a href="https://generatepress.com" data-type="link" data-id="https://generatepress.com" data-wpel-link="external" target="_blank" rel="external noopener">GeneratePress</a> theme (same as this site, at time of writing) and ultimately <a href="https://prismjs.com" data-wpel-link="external" target="_blank" rel="external noopener">Prism.js</a>, likely through <a href="https://github.com/mkaz/code-syntax-block" data-type="link" data-id="https://github.com/mkaz/code-syntax-block" data-wpel-link="external" target="_blank" rel="external noopener">Code Syntax Block</a>.</li>



<li><a href="https://nshipster.com" data-type="link" data-id="https://nshipster.com" data-wpel-link="external" target="_blank" rel="external noopener">NSHipster</a> appears to be statically generated with <a href="https://github.com/NSHipster/nshipster.com" data-wpel-link="external" target="_blank" rel="external noopener">a bespoke tool written in Ruby</a> using <a href="https://github.com/NSHipster/rouge" data-type="link" data-id="https://github.com/NSHipster/rouge" data-wpel-link="external" target="_blank" rel="external noopener">a custom fork</a> of <a href="https://github.com/rouge-ruby/rouge" data-wpel-link="external" target="_blank" rel="external noopener">Rouge</a>.</li>



<li><a href="https://developer.apple.com/swift/blog/" data-wpel-link="external" target="_blank" rel="external noopener">The old Swift Blog</a> uses… I don&#8217;t know.  Possibly a proprietary system, for both the platform and the syntax highlighting.  I didn&#8217;t find any identification or indicators otherwise of any particular library.</li>



<li><a href="https://www.swift.org/blog/" type="link" id="https://www.swift.org/blog" data-wpel-link="external" target="_blank" rel="external noopener">The newer Swift Blog</a> uses… possibly the same mystery platform as the old one.  But it does clearly use <a href="https://github.com/rouge-ruby/rouge" data-type="link" data-id="https://github.com/rouge-ruby/rouge" data-wpel-link="external" target="_blank" rel="external noopener">Rouge</a> for syntax highlighting.</li>



<li><a href="https://swiftevolution.substack.com" data-wpel-link="external" target="_blank" rel="external noopener">Swift Evolution Monthly</a> is hosted on <a href="https://substack.com" data-type="link" data-id="https://substack.com" data-wpel-link="external" target="_blank" rel="external noopener">Substack</a> and doesn&#8217;t do any syntax highlighting at all!</li>



<li><a href="https://www.swiftwithvincent.com" data-type="link" data-id="https://www.swiftwithvincent.com" data-wpel-link="external" target="_blank" rel="external noopener">Swift with Vincent</a> is hosted on <a href="https://www.squarespace.com" data-wpel-link="external" target="_blank" rel="external noopener">Squarespace</a>, which ultimately uses <a href="https://prismjs.com" data-wpel-link="external" target="_blank" rel="external noopener">Prism.js</a>.</li>



<li><a href="https://swiftwithmajid.com" data-type="link" data-id="https://swiftwithmajid.com" data-wpel-link="external" target="_blank" rel="external noopener">Swift with Majid</a> is statically generated using <a href="https://jekyllrb.com" data-type="link" data-id="https://jekyllrb.com" data-wpel-link="external" target="_blank" rel="external noopener">Jekyll</a> and uses <a href="https://github.com/rouge-ruby/rouge" data-type="link" data-id="https://github.com/rouge-ruby/rouge" data-wpel-link="external" target="_blank" rel="external noopener">Rouge</a>.</li>



<li><a href="https://swiftinit.org" data-type="link" data-id="https://swiftinit.org" data-wpel-link="external" target="_blank" rel="external noopener">Swiftinit</a> (by Dianna a.k.a. &#8220;<a href="https://forums.swift.org/u/taylorswift" data-type="link" data-id="https://forums.swift.org/u/taylorswift" data-wpel-link="external" target="_blank" rel="external noopener">taylorswift</a>&#8221; / &#8220;<a href="https://github.com/tayloraswift?tab=repositories" data-type="link" data-id="https://github.com/tayloraswift?tab=repositories" data-wpel-link="external" target="_blank" rel="external noopener">tayloraswift</a>&#8220;) uses a proprietary platform (written in Swift).  The syntax highlighting is presumably also proprietary.<br><br>Sidenote:  there&#8217;s not a lot of syntax-highlighted code on Swiftinit (mostly it&#8217;s in some hidden blog posts from 2022), but what&#8217;s there looks pretty similar to what <a href="https://github.com/rouge-ruby/rouge" data-type="link" data-id="https://github.com/rouge-ruby/rouge" data-wpel-link="external" target="_blank" rel="external noopener">Rouge</a> generates.  It does a pretty good job of correctly interpreting the syntax, although there&#8217;s not a great deal of apparent fidelity &#8211; mostly it&#8217;s just dividing things into formal names (types, functions, etc), variables, keywords, and everything else.</li>



<li><a href="https://www.avanderlee.com" data-wpel-link="external" target="_blank" rel="external noopener">SwiftLee</a> is using <a href="https://wordpress.org" data-type="link" data-id="https://wordpress.org" data-wpel-link="external" target="_blank" rel="external noopener">WordPress</a> and the <a href="https://github.com/mkaz/code-syntax-block" data-type="link" data-id="https://github.com/mkaz/code-syntax-block" data-wpel-link="external" target="_blank" rel="external noopener">Code Syntax Block</a> plug-in, which is <a href="https://prismjs.com" data-wpel-link="external" target="_blank" rel="external noopener">Prism.js</a> underneath.</li>



<li><a href="https://swiftrocks.com" data-wpel-link="external" target="_blank" rel="external noopener">SwiftRocks</a> is using <a href="https://getbootstrap.com" data-type="link" data-id="https://getbootstrap.com" data-wpel-link="external" target="_blank" rel="external noopener">Bootstrap</a> and <a href="https://prismjs.com" data-type="link" data-id="https://prismjs.com" data-wpel-link="external" target="_blank" rel="external noopener">Prism.js</a>.</li>



<li><a href="https://swiftui-lab.com" data-wpel-link="external" target="_blank" rel="external noopener">SwiftUI Lab</a> is using <a href="https://wordpress.org" data-type="link" data-id="https://wordpress.org" data-wpel-link="external" target="_blank" rel="external noopener">WordPress</a> and the <a href="https://wordpress.org/plugins/prismatic/" data-wpel-link="external" target="_blank" rel="external noopener">Prismatic</a> plug-in, which is configurable to either <a href="https://prismjs.com" data-wpel-link="external" target="_blank" rel="external noopener">Prism.js</a> or <a href="https://highlightjs.org" data-type="link" data-id="https://highlightjs.org" data-wpel-link="external" target="_blank" rel="external noopener">Highlight.js</a> underneath; the site has elected to use Prism.js.</li>



<li><a href="https://troz.net" data-wpel-link="external" target="_blank" rel="external noopener">TrozWare</a> is using <a href="https://gohugo.io" data-type="link" data-id="https://gohugo.io" data-wpel-link="external" target="_blank" rel="external noopener">Hugo</a> and <a href="https://prismjs.com" data-type="link" data-id="https://prismjs.com" data-wpel-link="external" target="_blank" rel="external noopener">Prism.js</a>.</li>



<li><a href="https://www.vadimbulavin.com" data-wpel-link="external" target="_blank" rel="external noopener">Yet Another Swift Blog</a> is statically generated using <a href="https://jekyllrb.com" data-type="link" data-id="https://jekyllrb.com" data-wpel-link="external" target="_blank" rel="external noopener">Jekyll</a> and uses <a href="https://github.com/rouge-ruby/rouge" data-type="link" data-id="https://github.com/rouge-ruby/rouge" data-wpel-link="external" target="_blank" rel="external noopener">Rouge</a> (though oddly I also see fragments of <a href="https://prismjs.com" data-wpel-link="external" target="_blank" rel="external noopener">Prism.js</a> and <a href="https://highlightjs.org" data-type="link" data-id="https://highlightjs.org" data-wpel-link="external" target="_blank" rel="external noopener">Highlight.js</a> on the site, although I didn&#8217;t see any actual use of them to render code).</li>
</ul>



<p>If you&#8217;re keeping score, that&#8217;s (syntax-highlighter-wise):</p>



<ul class="narrow-line-spacing wp-block-list">
<li>Prism.js: 7</li>



<li>Rouge: 5</li>



<li>Unknown: 2</li>



<li>Highlight.js: 1</li>



<li>Splash: 1</li>
</ul>



<p>And platform-wise:</p>



<ul class="narrow-line-spacing wp-block-list">
<li>WordPress: 5</li>



<li>Unknown: 3</li>



<li>Jekyll: 2</li>



<li>Proprietary: 2</li>



<li>Bootstrap: 1</li>



<li>Hugo: 1</li>



<li>Substack: 1</li>



<li>Squarespace: 1</li>



<li>Publish: 1</li>
</ul>



<p>It&#8217;s notable that <em>not one</em> is using Code Block Pro nor the underlying Shiki engine, even though (with the serious caveats mentioned earlier) they do the best job of actually understanding Swift.</p>


<ol class="wp-block-footnotes"><li id="f5cd2d93-b8e5-4773-8838-26add7d33f48">Strictly-speaking not for any technical reason, as the plug-ins could run more advanced tooling on the server (as some bespoke CMS&#8217;s do), but I have not encountered any WordPress plug-in which does so. <a href="#f5cd2d93-b8e5-4773-8838-26add7d33f48-link" aria-label="Jump to footnote reference 1">↩︎</a></li><li id="395a26f7-0a74-4647-ae97-e770481a032a">Technically you can do it with just custom CSS, by overriding your theme&#8217;s defaults inside a <code>@media (prefers-color-scheme: dark)</code> block, but this is likely impractical for all but the most simplistic and static WordPress installations &#8211; you have to be <em>sure</em> you catch <em>every</em> GUI element and colour.  A good plug-in will dynamically rewrite the CSS client-side, ensuring everything is covered. <a href="#395a26f7-0a74-4647-ae97-e770481a032a-link" aria-label="Jump to footnote reference 2">↩︎</a></li></ol>]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/swift-code-syntax-highlighting-in-wordpress/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			<media:content url="https://wadetregaskis.com/wp-content/uploads/2023/12/Code-Block-Pro-Light-Plus-w-customisations-Light-feature-image.webp" medium="image" />
<post-id xmlns="com-wordpress:feed-additions:1">5561</post-id>	</item>
		<item>
		<title>Apple Watch Ultra is a poor dive computer</title>
		<link>https://wadetregaskis.com/apple-watch-ultra-is-a-poor-dive-computer/</link>
					<comments>https://wadetregaskis.com/apple-watch-ultra-is-a-poor-dive-computer/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Tue, 06 Dec 2022 04:59:28 +0000</pubDate>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Apple Watch Ultra]]></category>
		<category><![CDATA[Broken by design]]></category>
		<category><![CDATA[Bugs!]]></category>
		<category><![CDATA[Oceanic+]]></category>
		<category><![CDATA[Sad]]></category>
		<category><![CDATA[scuba diving]]></category>
		<category><![CDATA[Shearwater Peregrine]]></category>
		<category><![CDATA[Tested]]></category>
		<guid isPermaLink="false">https://blog.wadetregaskis.com/?p=5191</guid>

					<description><![CDATA[Note: this was written in 2021 (and updated in 2022) based on version 1 of the Oceanic+ app. In September 2023 version 2 of that app was released, and it appears to have fixed quite a few limitations (e.g. you can finally export your log book, as a standard UDDF file). Once I&#8217;ve gathered some&#8230; <a class="read-more-link" href="https://wadetregaskis.com/apple-watch-ultra-is-a-poor-dive-computer/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p><strong>Note</strong>:  this was written in 2021 (and updated in 2022) based on version 1 of the Oceanic+ app.  In September 2023 version 2 of that app was released, and it appears to have fixed quite a few limitations (e.g. you can finally export your log book, as a standard UDDF file).  Once I&#8217;ve gathered some real-world dive experience with the updated watch, I may write a new review.</p>
</div></div>



<p>A major reason I purchased an <a href="https://web.archive.org/web/20220907183643/https://www.apple.com/apple-watch-ultra/" data-type="URL" data-id="https://www.apple.com/apple-watch-ultra" data-wpel-link="external" target="_blank" rel="external noopener">Apple Watch Ultra</a> was for its loudly advertised ability to function as a dive computer, much like <a href="https://www.garmin.com/en-US/c/sports-fitness/dive-computers-smartwatches/" data-type="URL" data-id="https://www.garmin.com/en-US/c/sports-fitness/dive-computers-smartwatches/" data-wpel-link="external" target="_blank" rel="external noopener">some Garmins</a>.</p>



<p>It&#8217;s been a rough and disappointing road.</p>



<p>Right out of the gate, it didn&#8217;t work.  It requires a 3rd-party application, <a href="https://apps.apple.com/us/app/scuba-diving-watch-oceanic/id1610517133" type="URL" id="https://apps.apple.com/us/app/oceanic-dive-computer-app/id1610517133" data-wpel-link="external" target="_blank" rel="external noopener">Oceanic+</a>, which didn&#8217;t exist at Apple Watch Ultra release time.  It was over two months before <a href="https://www.apple.com/newsroom/2022/11/reach-new-depths-with-the-oceanic-plus-app-and-apple-watch-ultra/" type="URL" id="https://www.apple.com/newsroom/2022/11/reach-new-depths-with-the-oceanic-plus-app-and-apple-watch-ultra" data-wpel-link="external" target="_blank" rel="external noopener">Oceanic+ was finally released, on November 28th</a>.</p>



<p>As it happens, my dive trip plans were delayed a bit anyway, resulting in my first dive [since purchasing the Apple Watch Ultra] being on that exact day.  Hallelujah, I thought.  I was able to hastily install the app in the morning, before leaving for a remote, internet-less island for a week.</p>



<p>But then there was the surprise that it basically requires an expensive subscription ($80/year, or even more if you commit to less than a whole year).  Without it you don&#8217;t get tissue load and NDL tracking &#8211; critical functions of a dive computer.  I was not aware before purchase, from any of the Apple Watch Ultra advertising or product pages on Apple&#8217;s website, that this subscription would be required.  It feels surprisingly shifty and dishonest from a company like Apple.</p>



<p>Arguably the above frustrations (and costs) could be overlooked if it actually worked well.  Unfortunately, it does not.</p>



<p>I discovered serious flaws with Oceanic+ right from the first dive.  Flaws that any qualified diver would immediately recognise, which begs the question of why Apple &amp; Oceanic+ somehow haven&#8217;t.</p>



<p>There are two major design flaws in its most basic function, the recording of dives:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1000" height="1126" src="https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-EULA.jpg" alt="" class="wp-image-5197" style="width:250px;height:282px" srcset="https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-EULA.jpg 1000w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-EULA-909x1024.jpg 909w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-EULA-227x256.jpg 227w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-EULA-455x512.jpg 455w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-EULA-227x256@2x.jpg 454w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-EULA-455x512@2x.jpg 910w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
</div>


<ol class="wp-block-list">
<li>It doesn&#8217;t start recording automatically.<br><br>You have to hit the &#8220;Action&#8221; button to acknowledge a lawyer-smelling disclaimer that you&#8217;re &#8220;fit to dive&#8221;.  If you forget, it doesn&#8217;t record.<br><br>I&#8217;m not aware of any other dive computer that does this.  e.g. my <a rel="noopener external" href="https://shearwater.com/products/peregrine" type="URL" id="https://www.shearwater.com/products/peregrine" target="_blank" data-wpel-link="external">Shearwater Peregrine</a> autodetects submersion below one metre <em>even if it&#8217;s not on</em>.  It turns itself on and starts recording automatically.</li>



<li>If you ascend above one metre, even just for a split second, it immediately ends recording.<br><br>This makes shore entries, in particular, likely to go unrecorded (unless you&#8217;re able to swim out to deep water and descend rapidly, which isn&#8217;t always an option or the best dive plan).  Descents in significant swell, currents, or surge could also fall victim to this design flaw.<br><br>So on my first dive I got <em>five</em> &#8220;dives&#8221; recorded, representing the four times where the swell floated me up to <em>just</em> above one metre (I never actually broke the surface).  Even just reaching up momentarily with your watch hand, such as to grab a line or brush away a fin, could trigger it to fail.<br><br>Furthermore, there&#8217;s no way to merge these together in Oceanic+ &#8211; you can either keep them, messing up your dive counts and stats, or delete them, throwing away [parts of] actual dive records.<br><br>And on later dives I didn&#8217;t always notice it had failed and stopped recording, so it basically didn&#8217;t record the dive at all.  This will be less of an issue if you&#8217;re using it as your <em>only</em> computer, since you&#8217;ll be looking at it periodically throughout your dive (I was using a separate dive computer as my primary, since I wisely didn&#8217;t trust the Apple Watch Ultra untested).<br><br>Again, I&#8217;m not aware of any other dive computer that has this flaw.  e.g. my Peregrine allows a sixty second grace period before ending the dive (configurable for up to ten minutes).</li>
</ol>



<p>These two combine to make it <strong>unsafe for diving</strong>.  It <em>might</em> be better than nothing, or acceptable as a backup computer (as long as you&#8217;re religious about ensuring it&#8217;s recording all the time), but it&#8217;s arguably worse than no dive computer at all in that it provides a false sense of security &#8211; you might plan many dives in one day, relying on the Apple Watch Ultra to precisely track your tissue loading, but have it fail midway and leave you with a dangerous decision to make.</p>



<p>What makes this all the more frustrating is that there&#8217;s a lot of things to like about it otherwise:</p>



<ul class="wp-block-list">
<li>The Apple Watch Ultra screen is <em>so</em> much better than what you find on most dive watches &#8211; clear and readable, with relatively low glare, even in harsh daylight.  Not to mention that it&#8217;s a touch screen, so [when dry, on the surface] it&#8217;s faster to change your settings, review your dive log, etc.</li>



<li>The Apple Watch Ultra is a lot smaller than most dive computers.  Even those that are nominally intended to dual-purpose as watches.</li>



<li>The information display during diving is well-designed and user-friendly (certainly not as powerful as what you can get on other dive computers, but quite sufficient for basic recreational diving).</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="300" height="537" src="https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-app-1.webp" alt="" class="wp-image-5198" style="width:300px;height:537px" srcset="https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-app-1.webp 300w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-app-1-143x256.webp 143w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-app-1-286x512.webp 286w" sizes="auto, (max-width: 300px) 100vw, 300px" /></figure>
</div>


<ul class="wp-block-list">
<li>The iPhone integration is smoother and easier than with other dive computers &#8211; dives appear on your phone automatically (albeit sometimes after a short delay).</li>



<li>It records the geographic location of the dive, which many dive computers do not.</li>



<li>Its configurable alerts &#8211; e.g. for depth, dive duration, etc &#8211; are nice and clear when they trigger underwater, with a clear and prominent visual display and strong vibration.  I find that its alert vibration is much more likely to actually get my attention than that of my Peregrine.</li>
</ul>



<p>It feels like it&#8217;s actually close to being a pretty good dive computer &amp; companion app, if not for a handful of bizarrely obvious, serious flaws.</p>



<p>It feels, in fact, like it was very rushed &#8211; from the obviously daft design flaws noted above, to even just simple things like bad grammar, poor alignment, and broken layout in the GUI (it smells like they&#8217;re using SwiftUI and haven&#8217;t figure out how to work around all its layout problems).  It seems they put more time into <a rel="noopener external" href="https://www.oceanicworldwide.com/oceanic-plus" data-type="URL" data-id="https://www.oceanicworldwide.com/oceanic-plus" target="_blank" data-wpel-link="external">their slick website</a> than their actual product.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1046" height="968" src="https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-home-screen.webp" alt="" class="wp-image-5199" style="width:523px;height:484px" srcset="https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-home-screen.webp 1046w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-home-screen-512x474@2x.webp 1024w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-home-screen-256x237.webp 256w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-home-screen-512x474.webp 512w" sizes="auto, (max-width: 1046px) 100vw, 1046px" /><figcaption class="wp-element-caption">&#8220;Dives number&#8221;… wot?  And why are the sizes &amp; baselines different for every single number on this screen?</figcaption></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1084" height="1076" src="https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-dive-profile.jpg" alt="" class="wp-image-5201" style="width:542px;height:538px" srcset="https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-dive-profile.jpg 1084w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-dive-profile-512x508@2x.jpg 1024w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-dive-profile-256x254.jpg 256w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-dive-profile-512x508.jpg 512w" sizes="auto, (max-width: 1084px) 100vw, 1084px" /><figcaption class="wp-element-caption">This can&#8217;t be intentional.  And that colour-coding scheme is quite hostile to colourblind people.</figcaption></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1095" height="389" src="https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-22Your-Plan22-display.jpg" alt="" class="wp-image-5200" style="width:548px;height:195px" srcset="https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-22Your-Plan22-display.jpg 1095w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-22Your-Plan22-display-512x182@2x.jpg 1024w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-22Your-Plan22-display-256x91.jpg 256w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-22Your-Plan22-display-512x182.jpg 512w" sizes="auto, (max-width: 1095px) 100vw, 1095px" /><figcaption class="wp-element-caption">I guess it could be a stylistic choice to have the &#8220;Edit&#8221; button escape its bounds… but I suspect not.  I&#8217;m also not convinced my life is improved by the omission of &#8220;nths&#8221;.</figcaption></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1047" height="1304" src="https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-settings-screen.webp" alt="" class="wp-image-5202" style="width:524px;height:652px" srcset="https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-settings-screen.webp 1047w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-settings-screen-411x512@2x.webp 822w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-settings-screen-206x256.webp 206w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-settings-screen-411x512.webp 411w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-settings-screen-206x256@2x.webp 412w" sizes="auto, (max-width: 1047px) 100vw, 1047px" /><figcaption class="wp-element-caption">Why is &#8220;Gas&#8221; so tiny and lonely in all that white space?  Why isn&#8217;t &#8220;Scuba&#8221; vertically centred?  What is &#8220;PPO2 Dive&#8221; and do they mean &#8220;PPO<sub>2</sub> Limit&#8221;?</figcaption></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1179" height="2556" src="https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-sharing-screen.webp" alt="" class="wp-image-5204" style="width:473px;height:1024px" srcset="https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-sharing-screen.webp 1179w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-sharing-screen-236x512@2x.webp 472w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-sharing-screen-945x2048.webp 945w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-sharing-screen-118x256.webp 118w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-sharing-screen-236x512.webp 236w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-sharing-screen-472x1024@2x.webp 944w" sizes="auto, (max-width: 1179px) 100vw, 1179px" /><figcaption class="wp-element-caption">Good chart.  Really captures the essence of my dive.</figcaption></figure>
</div>


<p>And of course there&#8217;s the other hint that maybe real-world testing was skipped &#8211; the fact that the iOS Oceanic+ app crashes on launch if you don&#8217;t have a good internet connection.  On a boat, far from land?  Or a remote island?  Or in Airplane mode?  Or just in an area with poor internet connectivity?  No app for you.  Crash on launch, every time.  Forget about entering your dive details into the log while you actually remember them.</p>



<p>This remains the case even after six app updates over a month.  Apparently Oceanic+ either don&#8217;t care that their app usually crashes on launch, or are incapable of fixing it.</p>



<p><em>Maybe</em> there&#8217;s hope that in time they&#8217;ll be able to straighten all this out.  But until then, I cannot in good conscience recommend the Apple Watch Ultra for diving.  (it remains a fantastic watch for health-tracking and hiking, though)</p>



<p>For completeness, a list of other miscellaneous flaws and limitations:</p>



<ul class="wp-block-list">
<li>Any time you ascend past six metres, it throws up an alert about a safety stop.  Which keeps buzzing at you forever, until you hit the action button.  It&#8217;s hard to overstate how annoying this is when doing shallow dives.  It is super distracting and may put you in harms way (e.g. if you&#8217;re constantly having to fiddle with the Apple Watch Ultra instead of paying attention to the reef around you).<br><br>I simply can&#8217;t fathom why they feel the need to alert for this at all.  An alert would be warranted for <em>skipping</em> your safety stop, yet it <em>doesn&#8217;t</em> do that.</li>



<li>It vibrates the Apple Watch Ultra frequently without any indication why (nothing changes on the display). Observationally, I suspect it&#8217;s something to do with ascending &#8220;too fast&#8221;, but if so then it&#8217;s way too sensitive to small depth changes &#8211; it vibrates at me when simply ascending less than a metre (even when tens of metres deep, where a metre makes very little difference in pressure).<br><br>Overall, the Apple Watch Ultra is too chatty.  It&#8217;s a classic boy-who-cried wolf problem waiting to happen.</li>



<li>It doesn&#8217;t show CNS, current PPO<sub>2</sub>, [surface] GF, etc. Especially when using enriched air (Nitrox), nearing no-decompression limits, or deep diving, these are important for safety. They are purely software features so it&#8217;s especially odd that they&#8217;re not included.<br><br><a href="https://web.archive.org/web/20240115011033/https://www.shearwater.com/monthly-blog-posts/surface-gf-teric-musings/" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Surface GF</a> is arguably the most important of these &#8211; it basically tells you how dangerous it is to surface immediately. When everything goes smoothly &#8211; and assuming you&#8217;re planning safe, conservative dives &#8211; you don&#8217;t need to worry much about it. But when things go awry it can be critical in helping you make the right decision under pressure.</li>



<li>There&#8217;s no Oceanic+ Mac app, or even a web version, which strongly discourages actually using Oceanic+ as your full dive log.  Entering all the details of your dive &#8211; gear, notes, etc &#8211; is very tedious on an iPhone.<br><br>Some other dive computer manufacturers do have Mac apps (e.g. Shearwater, albeit one that&#8217;s clearly made in some janky cross-platform framework and looks like something you&#8217;d find in X11 in the 90s), and there are a few viable 3rd party options (e.g. <a href="https://www.mac-dive.com" data-type="URL" data-id="https://www.mac-dive.com" data-wpel-link="external" target="_blank" rel="external noopener">MacDive</a>, <a href="https://subsurface.github.io" data-type="URL" data-id="https://subsurface.github.io" data-wpel-link="external" target="_blank" rel="external noopener">Subsurface</a>).</li>



<li>The map it shows, of your entry &amp; exit points, is useless most of the time, because it just shows as flat blue (for water) with no identifying geography.  There&#8217;s no way to switch it to anything useful, like a satellite view that would actually reveal the reefs, sand bars, atolls, etc.<br><br>This is exacerbated by Apple Maps&#8217; limitations.  Google Maps, for example, often <em>does</em> show atolls &amp; islands at least, and other surface features.  Apple Maps simply lacks actual maps for most of the world&#8217;s oceans.</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1030" height="580" src="https://wadetregaskis.com/wp-content/uploads/2022/12/Useless-map.jpeg" alt="" class="wp-image-5221" style="width:515px;height:290px" srcset="https://wadetregaskis.com/wp-content/uploads/2022/12/Useless-map.jpeg 1030w, https://wadetregaskis.com/wp-content/uploads/2022/12/Useless-map-512x288@2x.jpeg 1024w, https://wadetregaskis.com/wp-content/uploads/2022/12/Useless-map-256x144.jpeg 256w, https://wadetregaskis.com/wp-content/uploads/2022/12/Useless-map-512x288.jpeg 512w" sizes="auto, (max-width: 1030px) 100vw, 1030px" /></figure>
</div>


<ul class="wp-block-list">
<li>The iOS Oceanic+ app lets you record what gear you were using, but bizarrely requires you to pick from a pre-defined list <em>and</em> that list is missing gear from major brands (e.g. Aqua Lung, Cressi).  Another reason why it won&#8217;t be your real dive log.</li>



<li>There&#8217;s no way to import or export dive data.  This is both a lock-in concern &#8211; your dive data will be deleted if you end your subscription &#8211; and also a roadblock to using the Oceanic+ app as your real dive log, unless you have never and will never dive without an Apple Watch Ultra.</li>



<li>You can&#8217;t change the activity type &#8211; dive vs snorkelling &#8211; underwater, nor after the fact.  So if you forget to change it before going for a snorkel, you&#8217;ll forever have a bogus &#8220;dive&#8221; in your log (or you can delete the record entirely, but then you lose record of any free diving you do).</li>



<li>There&#8217;s five entries in the main menu in the Oceanic+ watch app, which are arranged as a scrolling carousel… which is just weird and annoying since they&#8217;d fit all on one screen as simple buttons, which would make navigation much faster and easier.</li>



<li>A lot of actions on the Oceanic+ watch app require more steps than seem necessary. e.g. changing numeric values requires not just selecting a different value but also tapping back to the previous screen (which also feels unnatural, like I&#8217;m backing out of the change without applying it). There are menus trees five or more levels deep, whereas it seems like they could be flattened into just two or three levels.</li>
</ul>



<figure class="wp-block-video aligncenter apple-watch-video"><video height="844" style="aspect-ratio: 746 / 844;" width="746" autoplay loop muted src="https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-menu-deep-diving.mp4" playsinline></video></figure>



<ul class="wp-block-list">
<li>Relatedly, you can&#8217;t edit any of your settings on your iPhone, only the watch.  You can <em>view</em> the settings on the iPhone, which just makes it even more baffling why you can&#8217;t edit them there.  Editing them on the watch is great in a pinch &#8211; you might not have your phone with you &#8211; but it&#8217;s a pain compared to on an iPhone.</li>



<li>The Oceanic+ iPhone app &#8220;Home&#8221; screen &#8211; what&#8217;s displayed when you launch the app &#8211; just shows a handful of stats of dubious merit. Minimum temperature over the last four weeks? Who cares. Cumulative total max depth? That clearly has no purpose. It seems like they knew they needed to show the most basic numbers &#8211; total dive count and duration &#8211; and felt compelled to stuff in a bunch more numbers for some reason. It&#8217;s also unclear why they think these are more important than your actual dive logs, or the dive planner.</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1179" height="2556" src="https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-stats-screen.webp" alt="" class="wp-image-5203" style="width:473px;height:1024px" srcset="https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-stats-screen.webp 1179w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-stats-screen-236x512@2x.webp 472w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-stats-screen-945x2048.webp 945w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-stats-screen-118x256.webp 118w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-stats-screen-236x512.webp 236w, https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-stats-screen-472x1024@2x.webp 944w" sizes="auto, (max-width: 1179px) 100vw, 1179px" /><figcaption class="wp-element-caption">…and why is &#8220;m&#8221; sulking under the 2?</figcaption></figure>
</div>


<ul class="wp-block-list">
<li>There&#8217;s supposedly seven watch complications available once you have Oceanic+ installed, but on my watch only two are available (&#8220;Max altitude&#8221; and &#8220;Oceanic Launcher&#8221;).  This might be because I use a digital time display (the &#8220;Modular&#8221; face), something Apple seems to hate.</li>



<li>The battery life is surprisingly short &#8211; about five hours of dive time.  Given that the Apple Watch Ultra can record workarounds that are 16 hours long (at least &#8211; longer if you use energy-saving features), it&#8217;s a bit of a mystery to me why it chews through the battery so fast while diving.  It&#8217;s not even monitoring your heart rate or other health metrics &#8211; just water pressure &#8211; and the screen brightness tends to be low since you&#8217;re underwater in low light.</li>
</ul>



<p>Here&#8217;s a few things which are more just wishlist items (or: things you can get from <em>some</em> other dive computers, though you usually pay a lot more for those than you do an Apple Watch Ultra):</p>



<ul class="wp-block-list">
<li>Gas usage recording.  Upmarket dive computers support wireless communication with a dongle that attaches to your first stage regulator.  This means you can forgo a whole separate hose and dangly, annoying air gauge, and have a unified view of your dive status.  It also means you get more accurate tracking of tissue loading, and more advanced functionality like gas consumption rates (great for extra safety &#8211; know if you&#8217;re going to run out of air too early &#8211; and for optimising your gas consumption over time).<br><br>Radio protocols like Bluetooth don&#8217;t work underwater &#8211; lower frequencies are required.  So the Apple Watch Ultra would require an additional built-in antenna.  It&#8217;s arguably reasonable to omit this in a watch that&#8217;s not intended solely for diving, given the cost or other trade-offs it might require.<br><br>That said, some air-integrated dive computers use sound instead of electromagnetism, and I suspect it&#8217;s not hard to support the necessary, inaudible frequencies in the Apple Watch Ultra&#8217;s microphone(s).  Maybe this support is already present in hardware, and a transmitter dongle will be released later?</li>



<li>Multi-gas support.  Most dive computers support this, even those that are much cheaper than an Apple Watch Ultra.  This is arguably a more &#8220;serious&#8221; or &#8220;technical&#8221; feature, that most recreational divers won&#8217;t ever need, but it&#8217;s also easy to do &#8211; it&#8217;s purely a software feature.</li>



<li>The ability to enter key dive details on the Apple Watch Ultra (as opposed to an iPhone), such as gas start &amp; end pressures.  It&#8217;s all too easy to forget these in-between the dive itself and when you get back to land and your iPhone.</li>



<li>The dive planner functionality is pretty rudimentary.  e.g. you can&#8217;t do anything like actually enter a dive depth profile (whether as a squiggle with your finger, to give the rough idea, or importing it from a previous dive at the same site).  The GUI is also a bit obtuse, especially in the Oceanic+ iOS app, as rather than showing a simple table or chart of depth vs no-deco times it makes you pick a single depth and gives you a single no-deco time.  For planning you often want to consider multiple depth options and pick the right trade-off against dive (or at least bottom) duration.</li>



<li>It might actually be nice to have some &#8220;social&#8221; functionality.  Not for bragging and other vanity purposes &#8211; I&#8217;m not talking about inane integrations with Facebook or whatever &#8211; but for sharing amongst dive buddies and the like.  I suspect there&#8217;s some neat, innovative possibilities here (e.g. automatically detect physically- &amp; temporally-nearby dive friends, and be able to automagically see their photos &amp; notes on what they saw on what&#8217;s presumably the same dive with you &#8211; maybe even add your own notes on theirs like &#8220;don&#8217;t forget about that Whale Shark eating that Orca!&#8221;).</li>
</ul>



<p>And lastly just some miscellanea:</p>



<ul class="wp-block-list">
<li>Apple / Oceanic say that it won&#8217;t record below forty metres, but it does.  Thankfully &#8211; the last thing you want if you do a deep dive, intentionally or <em>especially</em> unintentionally, is for your dive computer to not record your dive profile correctly.</li>
</ul>



<p>I don&#8217;t regret getting my Apple Watch Ultra &#8211; it&#8217;s proven a worthwhile upgrade even just for its other features like battery life and a relatively large screen &#8211; but I am sad that I can&#8217;t actually rely on it for diving.  And that I had to spend a lot of extra money to get a dive computer &#8211; the Peregrine &#8211; that I <em>can</em> rely on.</p>



<p>For reference, I&#8217;ve completed about fifty dives with the Apple Watch Ultra.</p>



<h2 class="wp-block-heading">Addendum (May 2023)</h2>



<p>I&#8217;ve now had the Apple Watch Ultra accompany me on about 150 dives.  Sadly, despite it being a long six months later, little has changed.  The Oceanic+ app is still awkward and very rudimentary, with the same data and platform lock-in problems.  The Apple Watch component is almost unchanged &#8211; same limitations and GUI frustrations.</p>



<p>Two things which did improve at some point:</p>



<ul class="wp-block-list">
<li>Recording now happens when submerged even if you haven&#8217;t clicked through the lawyer screen.  This is a significant safety improvement.<br><br>However, if you go the entire dive and return to the surface without clicking through the lawyer screen, the recording is discarded.  So there&#8217;s still danger here.  You just get (a lot) more time to realise the watch is being obstinate (and you really should be looking at your Apple Watch Ultra at least <em>once</em> during the whole dive anyway, even if it&#8217;s just your backup, to ensure it&#8217;s working and to check its data against your primary).</li>



<li>The Oceanic+ app seems to have fixed many of the glaring GUI bugs &#8211; e.g. the charts that rendered in the wrong places on the screen (or not at all), inconsistent font sizes and baselines, etc.</li>
</ul>



<p>I haven&#8217;t systematically re-reviewed the Oceanic+ app, so perhaps there&#8217;s been additional fixes or improvements too.  I&#8217;ve barely used it since my initial review, since I can only rely on my primary dive computer (<a href="https://shearwater.com/products/peregrine" data-wpel-link="external" target="_blank" rel="external noopener">Shearwater Peregrine</a>) anyway.  For what it&#8217;s worth, I use <a href="https://mac-dive.com" data-type="URL" data-id="https://mac-dive.com" data-wpel-link="external" target="_blank" rel="external noopener">MacDive</a> on my iPhone &amp; Mac and am reasonably happy with it.</p>



<p>I wish I&#8217;d just bought the <a href="https://shearwater.com/products/teric" data-wpel-link="external" target="_blank" rel="external noopener">Shearwater Teric</a>, though &#8211; the Peregrine was me hedging my bets and hoping that the Apple Watch Ultra would prove sufficient alone.  The Peregrine is good but the Teric is much nicer (and for clear reason by far the most popular dive computer on the six boats I&#8217;ve dived from).</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/apple-watch-ultra-is-a-poor-dive-computer/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		<enclosure url="https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-Ultra-menu-deep-diving.mp4" length="425059" type="video/mp4" />

			<media:content url="https://wadetregaskis.com/wp-content/uploads/2022/12/Oceanic-Apple-Watch-app.webp" medium="image" />
<post-id xmlns="com-wordpress:feed-additions:1">5191</post-id>	</item>
		<item>
		<title>Z9 burst shooting buffer depth</title>
		<link>https://wadetregaskis.com/z9-burst-shooting-buffer-depth/</link>
					<comments>https://wadetregaskis.com/z9-burst-shooting-buffer-depth/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Fri, 04 Feb 2022 03:16:55 +0000</pubDate>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Angelbird AV PRO]]></category>
		<category><![CDATA[Benchmarked]]></category>
		<category><![CDATA[CFExpress]]></category>
		<category><![CDATA[Lexar 2933x Professional]]></category>
		<category><![CDATA[Nikon]]></category>
		<category><![CDATA[Pergear]]></category>
		<category><![CDATA[ProGrade Gold]]></category>
		<category><![CDATA[Tested]]></category>
		<category><![CDATA[XQD]]></category>
		<category><![CDATA[Z9]]></category>
		<guid isPermaLink="false">https://blog.wadetregaskis.com/?p=4983</guid>

					<description><![CDATA[Just some basic tests with the few cards I have… <a class="read-more-link" href="https://wadetregaskis.com/z9-burst-shooting-buffer-depth/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p>Just some basic tests with the few cards I have.</p>



<figure class="wp-block-table aligncenter"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-center" data-align="center"></th><th class="has-text-align-center" data-align="center">Lexar 2933x 128 GiB</th><th class="has-text-align-center" data-align="center">ProGrade Gold 256 GiB</th><th class="has-text-align-center" data-align="center">Pergear 512 GiB</th><th class="has-text-align-center" data-align="center">Angelbird AV PRO 1 TiB</th></tr></thead><tbody><tr><td class="has-text-align-center" data-align="center">Type</td><td class="has-text-align-center" data-align="center">XQD</td><td class="has-text-align-center" data-align="center">CFExpress</td><td class="has-text-align-center" data-align="center">CFExpress</td><td class="has-text-align-center" data-align="center">CFExpress</td></tr><tr><td class="has-text-align-center" data-align="center">20 FPS (lossless)</td><td class="has-text-align-center" data-align="center">26 (11 &#8211; 37)</td><td class="has-text-align-center" data-align="center">40 (34 &#8211; 43)</td><td class="has-text-align-center" data-align="center">36 (36 &#8211; 37)</td><td class="has-text-align-center" data-align="center">37 (37 &#8211; 37)</td></tr><tr><td class="has-text-align-center" data-align="center">20 FPS (HE*)</td><td class="has-text-align-center" data-align="center">60 (57 &#8211; 61)</td><td class="has-text-align-center" data-align="center">60 (49 &#8211; 77)</td><td class="has-text-align-center" data-align="center">60 (59 &#8211; 61)</td><td class="has-text-align-center" data-align="center">62 (60 &#8211; 64)</td></tr><tr><td class="has-text-align-center" data-align="center">20 FPS (HE)</td><td class="has-text-align-center" data-align="center">75 (34 &#8211; 95)</td><td class="has-text-align-center" data-align="center">85 (45 &#8211; 101)</td><td class="has-text-align-center" data-align="center">100 (98 &#8211; 103)</td><td class="has-text-align-center" data-align="center">104 (98 &#8211; 112)</td></tr><tr><td class="has-text-align-center" data-align="center">30 FPS</td><td class="has-text-align-center" data-align="center">196 (187 &#8211; 198)</td><td class="has-text-align-center" data-align="center">183 (52 &#8211; 198)</td><td class="has-text-align-center" data-align="center">192 (137 &#8211; 258)</td><td class="has-text-align-center" data-align="center">192 (142 &#8211; 198)</td></tr><tr><td class="has-text-align-center" data-align="center">120 FPS</td><td class="has-text-align-center" data-align="center">706 (667 &#8211; 736)</td><td class="has-text-align-center" data-align="center">706 (558 &#8211; 739)</td><td class="has-text-align-center" data-align="center">737 (734 &#8211; 739)</td><td class="has-text-align-center" data-align="center">736 (734 &#8211; 739)</td></tr><tr><td class="has-text-align-center" data-align="center">Cost per GiB (Feb 2022)</td><td class="has-text-align-center" data-align="center">$2.54</td><td class="has-text-align-center" data-align="center">$1.13</td><td class="has-text-align-center" data-align="center">$0.62</td><td class="has-text-align-center" data-align="center">$0.57</td></tr><tr><td class="has-text-align-center" data-align="center">Purchase options</td><td class="has-text-align-center" data-align="center"><a href="https://www.amazon.com/dp/B012PKYW1U?th=1&amp;linkCode=ll1&amp;tag=wasbl08-20&amp;linkId=d7fbe9d94901562132d5cfadc387ffb5&amp;language=en_US&amp;ref_=as_li_ss_tl" data-wpel-link="external" target="_blank" rel="external noopener">Amazon</a></td><td class="has-text-align-center" data-align="center"><a href="https://www.amazon.com/dp/B0863981FZ?th=1&amp;linkCode=ll1&amp;tag=wasbl08-20&amp;linkId=047b79d2496108279c6b9fc16e153b98&amp;language=en_US&amp;ref_=as_li_ss_tl" data-wpel-link="external" target="_blank" rel="external noopener">Amazon</a></td><td class="has-text-align-center" data-align="center"><a href="https://www.amazon.com/dp/B08TH5N442?&amp;linkCode=ll1&amp;tag=wasbl08-20&amp;linkId=6adf8f79df10bf6206333404fcae8fae&amp;language=en_US&amp;ref_=as_li_ss_tl" data-wpel-link="external" target="_blank" rel="external noopener">Amazon</a></td><td class="has-text-align-center" data-align="center"><a href="https://www.amazon.com/dp/B08KFDTQW5?th=1&amp;linkCode=ll1&amp;tag=wasbl08-20&amp;linkId=4122a93e0b27dcff93ca6138316c1abe&amp;language=en_US&amp;ref_=as_li_ss_tl" data-wpel-link="external" target="_blank" rel="external noopener">Amazon</a></td></tr></tbody></table></figure>



<p>Values shown are the average over all trials with worst &amp; best individual results shown in parenthesis.</p>



<h2 class="wp-block-heading" id="commentary">Commentary</h2>



<h3 class="wp-block-heading" id="surprisingly-little-performance-difference">Surprisingly little performance difference</h3>



<p>None of the cards tested are among the &#8220;known fastest&#8221; CFExpress cards, like the Delkin Blacks or ProGrade Cobalts.  Nonetheless, I&#8217;m surprised at how minor the performance difference is between all of them, <em>especially</em> given there&#8217;s an XQD card in the mix.</p>



<p>CFExpress cards are not necessarily fast.</p>



<h3 class="wp-block-heading" id="angelbird-av-pros-do-not-meet-their-promised-performance">Angelbird AV PROs do not meet their promised performance</h3>



<p>The Angelbird card claims a 1,000 MB/s <em>minimum</em>, <em>sustained</em> write speed.  The XQD format is incapable of speeds above 500 MB/s.  Yet the Angelbird is <em>at best</em> just 40% faster than the XQD Lexar.  This suggests either the camera is the limiting factor &#8211; unlikely given that others have demonstrated <em>much</em> deeper bursts with other, apparently faster cards &#8211; or that the Angelbird doesn&#8217;t live up to its claims.</p>



<p>Blackmagic Disk Speed Test with a Pergear USB-C reader indicates the Angelbird <em>almost</em> hits 1,000 MB/s at the start of a sequential read or write, but within a second or two falls down to a sustained speed of only about 700 MB/s.  And there&#8217;s that 40% difference again, vs XQD.</p>



<h3 class="wp-block-heading" id="average-performance-correlates-with-consistent-performance">Average performance correlates with consistent performance</h3>



<p>e.g. the Pergear 512 GiB is nominally about the same performance <em>on average</em> as the ProGrade 256 GiB, but the Pergear was much more consistent.  The Angelbird was a tad faster &amp; more consistent again.</p>



<p>This also highlights why many trials are important, in order to determine the variance.  I&#8217;d rather have an on-average slower card that&#8217;s very consistent than a &#8220;bursty&#8221; card that might crap out in a critical moment and cause me to miss the moment completely.</p>



<h3 class="wp-block-heading" id="30-120-fps-modes-are-camera-limited">30 &amp; 120 FPS modes are camera limited</h3>



<p>There was practically no difference in performance between the cards in 30 FPS &amp; 120 FPS modes.</p>



<p>The bandwidth demonstrated is well below the demonstrated capabilities of all these cards, at just a few hundred MB/s.</p>



<p>All this seems quite conclusive that in these extra-fast burst modes the Z9 is the bottleneck, not the memory card.</p>



<p>Sidenote: The ProGrade card showed occasional glitches (three in total across twenty trials) &#8211; where the Z9 would suddenly stop shooting mid-burst, where a split second prior it had still shown a significant amount left in the &#8220;buffer&#8221; (the rXXX counter).  I&#8217;m not sure what to make of that &#8211; perhaps the Z9 relies on some basic level of performance and the ProGrade can&#8217;t consistently meet it, or perhaps something is glitching between the Z9 &amp; the ProGrade card that causes the Z9 to error out and stop working.</p>



<h2 class="wp-block-heading" id="methodology">Methodology</h2>



<p>1/250, 24-70/4 @ f4, ISO 5000.</p>



<p>Z9 firmware 1.11.</p>



<p>I enabled the shutter sound at maximum volume, and held down the shutter until I heard a stutter.</p>



<p>For 20 FPS mode:</p>



<ul class="wp-block-list">
<li>I counted any extra frames after the stutter and subtracted those from the numbers.</li>



<li>I also tested 1/2500 and saw no meaningful difference in results, and ISO 64 &amp; 25,600 which improved and decreased (respectively) buffer depth by about 10% each (very likely corresponding to the file size differences, though I didn&#8217;t check).</li>



<li>Five trials, each testing each format in turn: lossless, HE*, HE.</li>
</ul>



<p>For 30 &amp; 120 FPS modes:</p>



<ul class="wp-block-list">
<li>I never heard an extra frame after the first stutter &#8211; I don&#8217;t know if that means the camera ground to a complete halt or merely that it doesn&#8217;t reliably play the fake shutter sound in these modes. The consistency of the results in those modes leads me to believe it&#8217;s the former.</li>



<li>Ten trials, sequentially.</li>
</ul>



<p>Cards were formatted in camera and empty at the start of each class of testing (20, 30, 120).  Images were <em>not</em> erased between trials (empty cards are not representative of real-world conditions).</p>



<p>Autofocus was not engaged during shooting.  I haven&#8217;t tested it comprehensively, but so far I&#8217;ve seen no impact on burst performance from using autofocus (including subject recognition).</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/z9-burst-shooting-buffer-depth/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<media:content url="https://wadetregaskis.com/wp-content/uploads/2022/02/Memory-cards-2048x617.jpg" medium="image" />
<post-id xmlns="com-wordpress:feed-additions:1">4983</post-id>	</item>
		<item>
		<title>Nikon Z 100-400 centre vs Nikon 80-400G &#038; Sigma 150-600 C</title>
		<link>https://wadetregaskis.com/nikon-z-100-400-centre-vs-nikon-80-400g-sigma-150-600-c/</link>
					<comments>https://wadetregaskis.com/nikon-z-100-400-centre-vs-nikon-80-400g-sigma-150-600-c/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Wed, 29 Dec 2021 07:54:36 +0000</pubDate>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[AF-S Nikkor 80-400G]]></category>
		<category><![CDATA[Lightroom]]></category>
		<category><![CDATA[Nikkor Z 100-400]]></category>
		<category><![CDATA[Nikon]]></category>
		<category><![CDATA[Sigma 150-600 Contemporary]]></category>
		<category><![CDATA[Stitch]]></category>
		<category><![CDATA[Tested]]></category>
		<category><![CDATA[Z7]]></category>
		<guid isPermaLink="false">https://blog.wadetregaskis.com/?p=4862</guid>

					<description><![CDATA[This is the second post in a series of evaluations of the Nikkor Z 100-400. Please refer to the first post for details about the test equipment &#38; methodology. In this post, I&#8217;m going to compare performance in the image centre between these three telephoto lenses at 400mm: Unlike in the first post, where the&#8230; <a class="read-more-link" href="https://wadetregaskis.com/nikon-z-100-400-centre-vs-nikon-80-400g-sigma-150-600-c/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p>This is the second post in a series of evaluations of the Nikkor Z 100-400.  Please refer to <a href="https://wadetregaskis.com/nikon-z-100-400-centre-performance/" data-wpel-link="internal">the first post</a> for details about the test equipment &amp; methodology.</p>



<p>In this post, I&#8217;m going to compare performance in the image centre between these three telephoto lenses at 400mm:</p>



<ul class="wp-block-list">
<li><a href="https://imaging.nikon.com/imaging/lineup/lens/z-mount/z_100-400mmf45-56_vr_s/index.html" data-wpel-link="external" target="_blank" rel="external noopener">Nikkor Z 100-400</a> (e.g. <a href="https://www.amazon.com/Nikon-20106-NIKKOR-100-400mm-4-5-5-6/dp/B09KH9X5DL?crid=PVWLRRLDFPPQ&amp;keywords=nikkor+100+400&amp;qid=1640652154&amp;sprefix=nikkor+100+400%2Caps%2C188&amp;sr=8-1&amp;linkCode=ll1&amp;tag=wasbl08-20&amp;linkId=d63e166f79192e272258056809962f8a&amp;language=en_US&amp;ref_=as_li_ss_tl" data-wpel-link="external" target="_blank" rel="external noopener">from Amazon</a>).</li>



<li><a href="https://imaging.nikon.com/imaging/lineup/lens/f-mount/zoom/telephotozoom/af-s_80-400mmf_45-56g_ed_vr/" data-wpel-link="external" target="_blank" rel="external noopener">AF-S Nikkor 80-400G</a> (e.g. <a href="https://www.amazon.com/Nikon-80-400mm-f-4-5-5-6G-Vibration-Reduction/dp/B00BOZ1Y46?crid=U7L9HNQYVNOO&amp;keywords=nikon+80-400&amp;qid=1640722986&amp;sprefix=nikon+80-40%2Caps%2C297&amp;sr=8-2&amp;linkCode=ll1&amp;tag=wasbl08-20&amp;linkId=0644dd62a228be28bc3a00f203e5db34&amp;language=en_US&amp;ref_=as_li_ss_tl" data-wpel-link="external" target="_blank" rel="external noopener">from Amazon</a>).</li>



<li><a href="https://www.sigmaphoto.com/150-600mm-f5-6-3-dg-os-hsm-c" data-wpel-link="external" target="_blank" rel="external noopener">Sigma 150-600 Contemporary</a> (e.g. <a href="https://www.amazon.com/Sigma-150-600mm-5-6-3-Contemporary-Nikon/dp/B00THP1A1C?crid=KEVR0E4A011I&amp;keywords=sigma+150-600+contemporary+nikon&amp;qid=1640723071&amp;sprefix=sigma+150-600+contemporary+nikon%2Caps%2C127&amp;sr=8-3&amp;linkCode=ll1&amp;tag=wasbl08-20&amp;linkId=4c397e59a2e28ec8df8f784eac6dd413&amp;language=en_US&amp;ref_=as_li_ss_tl" data-wpel-link="external" target="_blank" rel="external noopener">from Amazon</a>).</li>
</ul>



<p>Unlike in the first post, where the focus was solely on the 100-400, I won&#8217;t provide exhaustive sample images of all apertures for all lenses &#8211; that would just be overwhelming.  Instead, I&#8217;ll just provide the noteworthy cases.</p>



<h2 class="wp-block-heading">30ft @ 400</h2>



<p>The 150-600 is basically the same from wide open (f/6) through to f/8.  It might be a <em>tiny</em> bit sharper at f/6 than narrower apertures.</p>



<p>The perceived sharpness of the 80-400 increases slightly when stopping down from wide open, and starts to soften again at f/7.1 and narrower.  Its optimal aperture is f/6.3, vs f/5.6 for the 100-400.</p>



<p>Note that in practice I&#8217;ve tended to favour f/7.1 on the 80-400, including on 24 MP DX cameras which have higher pixel densities than the Z7 (and therefore should be <em>more</em> sensitive to diffraction, not less).  That&#8217;s based on a large amount of real-world experience.  There&#8217;s several possible explanations for the discrepancy, but my guess is that the increased depth of field, of f/7.1 over f/6.3, helps in practice because it:</p>



<ul class="wp-block-list">
<li>Increases the depth of field (sometimes important at close distances or with deep subjects).</li>



<li>Provides a little more tolerance for focus errors.</li>
</ul>


<style type="text/css">
#foogallery-gallery-4868 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-image foogallery-lightbox-none fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-4868" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:true},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-30ft-@-400-f-6.3.jpg" data-caption-title="Nikkor Z 100-400 30ft @ 400 f/6.3" data-attachment-id="4832" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-30ft-@-400-f-6.3.jpg" title="f/6.3" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Nikkor Z 100-400 30ft @ 400 f/6.3</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-AF-S-80-400G-30ft-@-400-f-6.3.jpg" data-caption-title="Nikkor AF-S 80-400G 30ft @ 400 f/6.3" data-attachment-id="4869" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-AF-S-80-400G-30ft-@-400-f-6.3.jpg" title="f/6.3" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Nikkor AF-S 80-400G 30ft @ 400 f/6.3</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Sigma-150-600-30ft-@-400-f-6.3.jpg" data-caption-title="Sigma 150-600 Contemporary 30ft @ 400 f/6.3" data-attachment-id="4870" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Sigma-150-600-30ft-@-400-f-6.3.jpg" title="f/6.3" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Sigma 150-600 Contemporary 30ft @ 400 f/6.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">3</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>The 150-600 is clearly the sharpest, followed by the 80-400.  The 100-400 is <em>much</em> softer than even the 80-400.   The 80-400 is sharper at any aperture than the 100-400 is at any aperture (and the 150-600 exceeds both, similarly).</p>



<p>This was such a surprise that I went back and took many more photos with the 100-400, in a variety of modes (various autofocus modes, manual focus, VR on &amp; off, silent shutter on &amp; off), but the results were consistent &#8211; the 100-400 is much softer at 400 than its eight year old predecessor, let-alone the 150-600.</p>



<p>Note: the difference in sharpness is partially obscured by the JPEG compression used for the images in this post, even though I used the maximum possible JPEG quality.  All my written statements throughout these tests are based on comparing the NEFs in Lightroom.</p>



<h2 class="wp-block-heading">12ft @ 400</h2>



<p>The 150-600 behaves the same as at 30ft &#8211; basically the same from f/6 (wide open) through f/8.  Maybe a <em>tiny</em> bit sharper wide open.</p>



<p>The 80-400 gives its best performance at f/6.3 again.  As at 30ft, the difference with f/5.6 (wide open) or f/7.1 is slight. f/8 is very slightly softer again, as diffraction more clearly kicks in.</p>


<style type="text/css">
#foogallery-gallery-4871 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-image foogallery-lightbox-none fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-4871" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:true},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-12ft-@-400-f-6.3.jpg" data-caption-title="Nikkor Z 100-400 12ft @ 400 f/6.3" data-attachment-id="4843" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-12ft-@-400-f-6.3.jpg" title="f/6.3" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Nikkor Z 100-400 12ft @ 400 f/6.3</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-AF-S-80-400G-12ft-@-400-f-6.3.jpg" data-caption-title="Nikkor AF-S 80-400G 12ft @ 400 f/6.3" data-attachment-id="4872" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-AF-S-80-400G-12ft-@-400-f-6.3.jpg" title="f/6.3" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Nikkor AF-S 80-400G 12ft @ 400 f/6.3</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Sigma-150-600-12ft-@-400-f-6.3.jpg" data-caption-title="Sigma 150-600 Contemporary 12ft @ 400 f/6.3" data-attachment-id="4873" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Sigma-150-600-12ft-@-400-f-6.3.jpg" title="f/6.3" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Sigma 150-600 Contemporary 12ft @ 400 f/6.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">3</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>Unfortunately the comparison between the three is complicated by the fact that the 80-400 back-focused slightly while the 100-400 looks like it again front-focused a tad.  After accounting for that it&#8217;s clear that the 80-400 is sharper than the 100-400.  But the 150-600 is much sharper than either of them.</p>



<h2 class="wp-block-heading">6ft @ 400</h2>



<p>The 150-600 is out for this particular subject distance because it can&#8217;t focus this close.</p>



<p>The 80-400 is slightly sharper at f/7.1 than other apertures.  Similar to the 100-400 (which still saw tiny improvement up to f/8, over f/7.1).</p>


<style type="text/css">
#foogallery-gallery-4874 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-image foogallery-lightbox-none fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-4874" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:true},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-6ft-@-400-f-6.3.jpg" data-caption-title="Nikkor Z 100-400 6ft @ 400 f/6.3" data-attachment-id="4849" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-6ft-@-400-f-6.3.jpg" title="f/6.3" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Nikkor Z 100-400 6ft @ 400 f/6.3</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-AF-S-80-400G-6ft-@-400-f-6.3.jpg" data-caption-title="Nikkor AF-S 80-400G 6ft @ 400 f/6.3" data-attachment-id="4875" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-AF-S-80-400G-6ft-@-400-f-6.3.jpg" title="f/6.3" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Nikkor AF-S 80-400G 6ft @ 400 f/6.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">2</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>At this point the comparison is getting tricky, because:</p>



<ul class="wp-block-list">
<li>The 80-400 back-focused again.</li>



<li>The 100-400 is maintaining its nominal focal length much better than the 80-400.  This change in focal length over different focus distances is typical behaviour for lenses &#8211; the stated focal length is usually only achieved at infinity; as you focus closer, their effective focal length drops.</li>
</ul>



<p>It&#8217;s pretty close, between the two.  There seems to be similar resolution on the image sensor, so the difference in subject detail is solely because of the difference in effective focal length.  If you allow for that, then there&#8217;s a notable advantage to the 100-400.</p>



<h2 class="wp-block-heading">MFD @ 400</h2>



<p>Note here that the 100-400 can get down to about 3ft, while the 80-400 is not much shorter than the 6ft looked at above, and the 150-600 is way out at 10ft or so.</p>



<p>So unsurprisingly the 80-400 behaves the same as at 6ft &#8211; sharpest at f/7.1.  Just like the 100-400.  And the 150-600 is very similar from wide open (f/6) to f/8, with maybe a very slight improvement from stopping down just a tad, to f/6.3.</p>



<p>Note that I&#8217;ve also included the 150-600 at <em>600</em>, in case you&#8217;re interested in comparing the maximum possible magnification across the three lenses.</p>



<p>Note: I don&#8217;t know why there&#8217;s such significant discrepancies in exposure, particularly with the 80-400.  This was reproducible.  The same exposure settings were used for all lenses.  Possibly the differing fields of view impacted the camera&#8217;s metering?</p>


<style type="text/css">
#foogallery-gallery-4876 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-image foogallery-lightbox-none fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-4876" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:true},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-400-f-7.1.jpg" data-caption-title="Nikkor Z 100-400 MFD @ 400 f/7.1" data-attachment-id="4828" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-400-f-7.1.jpg" title="f/7.1" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Nikkor Z 100-400 MFD @ 400 f/7.1</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-AF-S-80-400G-MFD-@-400-f-7.1.jpg" data-caption-title="Nikkor AF-S 80-400G MFD @ 400 f/7.1" data-attachment-id="4877" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-AF-S-80-400G-MFD-@-400-f-7.1.jpg" title="f/7.1" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Nikkor AF-S 80-400G MFD @ 400 f/7.1</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Sigma-150-600-MFD-@-400-f-7.1.jpg" data-caption-title="Sigma 150-600 Contemporary MFD @ 400 f/7.1" data-attachment-id="4878" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Sigma-150-600-MFD-@-400-f-7.1.jpg" title="f/7.1" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Sigma 150-600 Contemporary MFD @ 400 f/7.1</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Sigma-150-600-Contemporary-MFD-@-600-f-7.1.jpg" data-caption-title="Sigma 150-600 Contemporary MFD @ 600 f/7.1" data-attachment-id="4879" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Sigma-150-600-Contemporary-MFD-@-600-f-7.1.jpg" title="f/7.1" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Sigma 150-600 Contemporary MFD @ 600 f/7.1</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>Here there&#8217;s no contest &#8211; the 100-400 is sharpest on the sensor (albeit by only a small margin over the 80-400), but also offers <em>much</em> higher magnification &#8211; almost twice what either of the other lenses are capable of.  This matches the spec sheets &#8211; a maximum reproduction ratio of 0.38x for the 100-400 vs 0.2 for the 80-400 &amp; 150-600.</p>



<p>The 150-600 is the worst by far, for sharpness on the sensor as well as magnification &#8211; not only do you have to zoom in to &#8220;600&#8221; to get similar magnification as the 80-400 does at &#8220;400&#8221;, but both are basically at something more like 200 if not less.</p>



<p>In fact to my eyes it appears that there&#8217;s nothing but empty magnification in going from 400 to 600 on the 150-600.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<h3 class="wp-block-heading">Sidenote: Real-world benefits of closer focusing distances</h3>



<p>In real-world use I&#8217;ve only occasionally felt the 80-400&#8217;s ~6ft MFD was a problem.  Sure, sometimes my subject would be too close and/or small, but there&#8217;s practical challenges with getting physically closer to a lot of subjects (e.g. skittish wildlife), and for really small subjects I&#8217;d be inclined to switch to a macro lens anyway.</p>



<p>Plus, the 80-400 compares very favourably to many other zoom telephotos &#8211; e.g. the Sigma 150-600 C can only focus down to about 3 metres (~10ft).  In theory it offers the same reproduction ratio of 0.2, but in practice I&#8217;ve often had problems with my subject being too close for the 150-600.  Plus, as you see (above) it sacrifices a lot of image quality to do even that, such that the 80-400 is clearly the superior of the two when maximum magnification is required.  Of course, the new 100-400 is <em>way</em> better than either of them.</p>



<p>All of which is to say:  I&#8217;m impressed and intrigued by what the 100-400 can do in this regard.  Almost halving the MFD while giving me 2x more effective magnification is tremendous.  I still haven&#8217;t had a chance to use it in the real world, but I&#8217;m really looking forward to the possibilities &#8211; especially for small wildlife like lizards, or flora like flowers, the 100-400 looks like it&#8217;s going to be by far the superior option.</p>
</div></div>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="has-drop-cap">😧A surprise upset!  I had assumed the 100-400 would be <em>at least</em> as sharp as the 80-400, and of course hoped it&#8217;d be even sharper.  The 80-400 has always had good sharpness at 400 in my experience, so there wasn&#8217;t a lot of room for it to be surpassed.  Still, that the 100-400 is <em>much</em> softer (at all but the very closest subject distances) is very disappointing.</p>



<p>The only thing the 100-400 has going for it (so far) is with very close subjects &#8211; there, the 100-400 is vastly superior, in large part because it can simply focus much closer while simultaneously retaining more of its nominal 400mm focal length. If you expect your subjects to always be less than ~10ft away, the 100-400 is clearly the better lens.</p>



<p>The 150-600 results surprised me, and may be tending unrepresentative, as they don&#8217;t match my real-world experience.  I do think the 150-600 is a good lens &#8211; and excellent <em>value</em> at a quarter the price of either of the other two &#8211; but I&#8217;ve found it just doesn&#8217;t deliver results quite as good &#8211; nor as reliably &#8211; as the 80-400, except when you utilise its 50% extra reach.  I strongly suspect this is mostly due to differences in image stabilisation &#8211; the 80-400 has the best image stabilisation of any lens I&#8217;ve ever used, while the 150-600&#8217;s image stabilisation is average at best.</p>



<p>Granted, this is only in the centre of the frame.  Maybe the 100-400 has redeeming image qualities elsewhere in the frame?  A subject for a subsequent post, perhaps.</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/nikon-z-100-400-centre-vs-nikon-80-400g-sigma-150-600-c/feed/</wfw:commentRss>
			<slash:comments>15</slash:comments>
		
		
			<media:content url="https://wadetregaskis.com/wp-content/uploads/2021/12/Lenses.avif" medium="image" />
<post-id xmlns="com-wordpress:feed-additions:1">4862</post-id>	</item>
		<item>
		<title>Nikon Z 100-400 centre performance</title>
		<link>https://wadetregaskis.com/nikon-z-100-400-centre-performance/</link>
					<comments>https://wadetregaskis.com/nikon-z-100-400-centre-performance/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Tue, 28 Dec 2021 02:19:28 +0000</pubDate>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Lightroom]]></category>
		<category><![CDATA[Nikkor Z 100-400]]></category>
		<category><![CDATA[Nikon]]></category>
		<category><![CDATA[Stitch]]></category>
		<category><![CDATA[Tested]]></category>
		<category><![CDATA[Z7]]></category>
		<guid isPermaLink="false">https://blog.wadetregaskis.com/?p=4788</guid>

					<description><![CDATA[Last week my Nikkor Z 100-400 arrived. I&#8217;m in principle upgrading from the AF-S 80-400G, which has been my all-time favourite lens (both sentimentally and in terms of the yielding the greatest proportion of my favourite photos). Of course, it&#8217;d be nice to see how those two lenses actually compare &#8211; I suppose I could&#8230; <a class="read-more-link" href="https://wadetregaskis.com/nikon-z-100-400-centre-performance/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p>Last week my Nikkor Z 100-400 arrived.  I&#8217;m in principle upgrading from the AF-S 80-400G, which has been my all-time favourite lens (both sentimentally and in terms of the yielding the greatest proportion of my favourite photos).</p>



<p>Of course, it&#8217;d be nice to see how those two lenses actually compare &#8211; I suppose I could keep using the 80-400 and return the 100-400, if the older lens turns out to be better.</p>



<p>Unfortunately California has decided this &#8220;weather&#8221; thing it&#8217;s never had before is the new hotness, and it&#8217;s basically rained non-stop for weeks now.  So I haven&#8217;t been able to use of the 100-400 for real yet.  Luckily, I was able to conscript a wild Stitch to help me do some rudimentary tests, in the interim.  That&#8217;ll be the subject of this and a couple of subsequent posts.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="2048" height="1365" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-30ft-@-400-f-5.6-wide-open.jpg" alt="" class="wp-image-4789" srcset="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-30ft-@-400-f-5.6-wide-open-1024x683@2x.jpg 2048w, https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-30ft-@-400-f-5.6-wide-open-1024x683.jpg 1024w, https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-30ft-@-400-f-5.6-wide-open-256x171.jpg 256w, https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-30ft-@-400-f-5.6-wide-open-256x171@2x.jpg 512w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /><figcaption class="wp-element-caption">Meet my model, Stitch.  He&#8217;s a sexy beast, and he doesn&#8217;t mind holding a pose for hours at a time.</figcaption></figure>
</div>


<p>The most important thing I want to know about any new lens is how it performs in the centre across various apertures and subject distances.  That way I know what it&#8217;s capable of in the best case (the centre) and which aperture(s) to favour.  So that&#8217;s what this first post is about.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Equipment</h2>



<ul class="wp-block-list">
<li><a href="https://imaging.nikon.com/imaging/lineup/lens/z-mount/z_100-400mmf45-56_vr_s/index.html" data-wpel-link="external" target="_blank" rel="external noopener">Nikkor Z 100-400</a> (e.g. <a rel="noreferrer noopener external" href="https://www.amazon.com/Nikon-20106-NIKKOR-100-400mm-4-5-5-6/dp/B09KH9X5DL?crid=PVWLRRLDFPPQ&amp;keywords=nikkor+100+400&amp;qid=1640652154&amp;sprefix=nikkor+100+400%2Caps%2C188&amp;sr=8-1&amp;linkCode=ll1&amp;tag=wasbl08-20&amp;linkId=d63e166f79192e272258056809962f8a&amp;language=en_US&amp;ref_=as_li_ss_tl" target="_blank" data-wpel-link="external">from Amazon</a>).</li>



<li><a rel="noreferrer noopener external" href="https://imaging.nikon.com/imaging/lineup/mirrorless/z_7/" target="_blank" data-wpel-link="external">Nikon Z 7</a> (e.g. <a rel="noreferrer noopener external" href="https://www.amazon.com/Nikon-FX-Format-Mirrorless-Camera-Body/dp/B07GPRBGQ2?crid=33BME9JOP14K6&amp;keywords=nikon+z7&amp;qid=1640653061&amp;s=electronics&amp;sprefix=nikon+z7%2Celectronics%2C192&amp;sr=1-2&amp;linkCode=ll1&amp;tag=wasbl08-20&amp;linkId=32cf40cb2e6832d9b67e1842e41875c4&amp;language=en_US&amp;ref_=as_li_ss_tl" target="_blank" data-wpel-link="external">from Amazon</a>).</li>



<li>Neewer 660-LED constant light panels (e.g. <a rel="noreferrer noopener external" href="https://www.amazon.com/gp/product/B075JFZ94Z?ie=UTF8&amp;psc=1&amp;linkCode=ll1&amp;tag=wasbl08-20&amp;linkId=89df754fbe870c120ea01783d53a1395&amp;language=en_US&amp;ref_=as_li_ss_tl" target="_blank" data-wpel-link="external">from Amazon</a>).</li>



<li>Induro AT-313 (discontinued).</li>



<li>Movo GH800 gimbal tripod head (e.g. <a href="https://www.amazon.com/gp/product/B016V1AVV4?ie=UTF8&amp;psc=1&amp;linkCode=ll1&amp;tag=wasbl08-20&amp;linkId=fee6a8ce93554cf0509ed7eea1a5b063&amp;language=en_US&amp;ref_=as_li_ss_tl" data-type="URL" data-id="https://www.amazon.com/gp/product/B016V1AVV4?ie=UTF8&amp;psc=1&amp;linkCode=ll1&amp;tag=wasbl08-20&amp;linkId=fee6a8ce93554cf0509ed7eea1a5b063&amp;language=en_US&amp;ref_=as_li_ss_tl" data-wpel-link="external" target="_blank" rel="external noopener">from Amazon</a>).</li>



<li>Stitch (from outer space, via Hawaii).</li>
</ul>



<h2 class="wp-block-heading">Methodology</h2>



<p>I tested five different subject distances:</p>



<ul class="wp-block-list">
<li>MFD (minimum focus distance) at 100</li>



<li>MFD at 400</li>



<li>6ft at 400</li>



<li>12ft at 400</li>



<li>30ft at 400</li>
</ul>



<p>I didn&#8217;t measure the actual MFD &#8211; all distances above are only approximate anyway, give or take a few inches &#8211; but it was something in the vicinity of 3ft, like the specs say.  MFD is a bit closer at 100 than 400.</p>



<p>400 is basically the focal length that counts &#8211; that&#8217;s where this lens will spend the vast majority of its time &#8211; thus the inclusion of only one subject distance for 100, nor any intermediary focal lengths.</p>



<p>Stitch was lit (as shown in the photo above) by two <a rel="noreferrer noopener external" href="https://www.amazon.com/gp/product/B075JFZ94Z?ie=UTF8&amp;psc=1&amp;linkCode=ll1&amp;tag=wasbl08-20&amp;linkId=89df754fbe870c120ea01783d53a1395&amp;language=en_US&amp;ref_=as_li_ss_tl" target="_blank" data-wpel-link="external">Neewer 660-LED panels</a>, set to maximum brightness &amp; running off mains power.  Diffusers were not used.</p>



<p>I chose to focus on Stitch&#8217;s nose because it has a nice fine-detailed fabric texture, that looked better as a test subject than the low-contrast threading of e.g. his eyes.  I also deliberately focused only about a third down on his nose &#8211; not in the very centre &#8211; so that the centre of the nose, being the closest part to the camera, would be slightly out of focus.  That way I could visually confirm that the plane of focus was where I expected and not short of the subject (in the cases where depth of field was so narrow as to matter).</p>



<p>I focused wide open using AF-C single-point (centred).  I used a five second delayed shutter release, with pure electronic shutter (&#8220;Silent&#8221; mode).  I did have to touch the camera between exposures, in order to adjust the aperture and press the shutter button, and this is why in some cases images are misaligned by a few pixels.</p>



<p>I used a fixed ISO of 64 in aperture-priority mode, letting the camera maintain constant exposure by varying the shutter speed (which ranged from 1/25 &#8211; 1/100).  I did not normalise exposure in post &#8211; any variation you see in the images could be due to:</p>



<ul class="wp-block-list">
<li>Differences in metering based on differing fields of view.</li>



<li>Error / inaccuracy in exposure by the camera.</li>
</ul>



<p>Image stabilisation was disabled.</p>



<p>All the images you see embedded in this post are JPEGs with the quality set to 100%, as rendered from the raws by Lightroom Classic.</p>



<p>The crops are all from the exact centre, and are 1024 square.</p>



<p>All images were recorded as 14-bit lossless NEFs, and imported into Lightroom Classic with no modifications other than:</p>



<ul class="wp-block-list">
<li>Reducing the exposure by 0.75 stops.  I exposed-to-the-right to maximise image quality.</li>



<li>Setting the white balance to 4,500 with no tint.  I left the camera on auto white-balance; I could have specified it as some fixed value in-camera, but I knew I could standardise it in post.</li>
</ul>



<p>This also means that any built-in lens corrections, whether by the camera or Lightroom Classic, were performed.  I left all those at factory settings, and I see no purpose in mucking with them since I &#8211; like most people &#8211; don&#8217;t muck with them in real-world use.</p>



<p>Lightroom Classic nominally applied some sharpening &amp; noise reduction, per its defaults, but the settings were the same for all images (40/1.0/25/0 sharpening, 0/-/-/25/50/50 noise reduction).</p>



<p>Finally, I&#8217;ve provided the images for every aperture in a carousel, but also an A | B comparison of wide open vs what I feel is the most interesting juxtaposition (usually the sharpest aperture, though not always).</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">30ft @ 400</h2>


<style type="text/css">
#foogallery-gallery-4830 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-image foogallery-lightbox-none fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-4830" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:true},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-30ft-@-400-f-5.6-wide-open-1.jpg" data-caption-title="f/5.6" data-attachment-id="4831" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-30ft-@-400-f-5.6-wide-open-1.jpg" title="f/5.6" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/5.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-30ft-@-400-f-6.3.jpg" data-caption-title="f/6.3" data-attachment-id="4832" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-30ft-@-400-f-6.3.jpg" title="f/6.3" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/6.3</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-30ft-@-400-f-7.1.jpg" data-caption-title="f/7.1" data-attachment-id="4833" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-30ft-@-400-f-7.1.jpg" title="f/7.1" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/7.1</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-30ft-@-400-f-8.jpg" data-caption-title="f/8" data-attachment-id="4834" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-30ft-@-400-f-8.jpg" title="f/8" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/8</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>Almost no change across the apertures.  This is either an excellent result or a terrible result, depending on whether it means it&#8217;s sharp from wide open or never gets sharp.  That&#8217;s best judged by comparing it to other lenses &#8211; a task for a subsequent post.</p>



<p>There&#8217;s a <em>very slight</em> softening starting at f/7.1 (vs f/6.3 or wider), that&#8217;s slightly more pronounced &#8211; but still very minor &#8211; at f/8.  This is most likely diffraction softening and as such is expected.  On the 46 MP Z7 diffraction becomes the limiting factor in acuity beyond about f/6.3 (in theory).</p>



<div class="wp-block-image-comparison-image-comparison"><div class="eb-parent-wrapper eb-parent-eb-image-comparison-ndm6pg2 "><div class="eb-image-comparison-wrapper eb-image-comparison-ndm6pg2 eb-image-comparison-align-center eb-label-horizontal-bottom" data-left-image="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-30ft-@-400-f-5.6-wide-open-1.jpg" data-right-image="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-30ft-@-400-f-7.1.jpg" data-vertical-mode="false" data-hover="false" data-show-label="true" data-left-label="f/5.6" data-right-label="f/7.1" data-slider-position="50" data-line-width="4" data-handle="false"><div data-testid="container"><img decoding="async" alt="Left Image" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-30ft-@-400-f-5.6-wide-open-1.jpg" data-testid="left-image"/><img decoding="async" alt="Right Image" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-30ft-@-400-f-7.1.jpg" data-testid="right-image"/></div></div></div></div>



<h2 class="wp-block-heading">12ft @ 400</h2>


<style type="text/css">
#foogallery-gallery-4841 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-image foogallery-lightbox-none fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-4841" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:true},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-12ft-@-400-f-5.6-wide-open.jpg" data-caption-title="f/5.6" data-attachment-id="4842" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-12ft-@-400-f-5.6-wide-open.jpg" title="f/5.6" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/5.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-12ft-@-400-f-6.3.jpg" data-caption-title="f/6.3" data-attachment-id="4843" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-12ft-@-400-f-6.3.jpg" title="f/6.3" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/6.3</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-12ft-@-400-f-7.1.jpg" data-caption-title="f/7.1" data-attachment-id="4844" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-12ft-@-400-f-7.1.jpg" title="f/7.1" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/7.1</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-12ft-@-400-f-8.jpg" data-caption-title="f/8" data-attachment-id="4845" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-12ft-@-400-f-8.jpg" title="f/8" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/8</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>It&#8217;s <em>very slightly</em> softer wide open, at f/5.6, than at f/6.3 or narrower.  It&#8217;s less clear if diffraction has kicked in (as the limiting factor) by f/8 &#8211; to my eyes there&#8217;s very little difference between f/6.3, f/7.1, and f/8.</p>



<div class="wp-block-image-comparison-image-comparison"><div class="eb-parent-wrapper eb-parent-eb-image-comparison-p6gt9h3 "><div class="eb-image-comparison-wrapper eb-image-comparison-p6gt9h3 eb-image-comparison-align-center eb-label-horizontal-bottom" data-left-image="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-12ft-@-400-f-5.6-wide-open.jpg" data-right-image="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-12ft-@-400-f-6.3.jpg" data-vertical-mode="false" data-hover="false" data-show-label="true" data-left-label="f/5.6" data-right-label="f/6.3" data-slider-position="50" data-line-width="4" data-handle="false"><div data-testid="container"><img decoding="async" alt="Left Image" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-12ft-@-400-f-5.6-wide-open.jpg" data-testid="left-image"/><img decoding="async" alt="Right Image" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-12ft-@-400-f-6.3.jpg" data-testid="right-image"/></div></div></div></div>



<h2 class="wp-block-heading">6ft @ 400</h2>


<style type="text/css">
#foogallery-gallery-4847 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-image foogallery-lightbox-none fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-4847" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:true},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-6ft-@-400-f-5.6-wide-open.jpg" data-caption-title="f/5.6" data-attachment-id="4848" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-6ft-@-400-f-5.6-wide-open.jpg" title="f/5.6" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/5.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-6ft-@-400-f-6.3.jpg" data-caption-title="f/6.3" data-attachment-id="4849" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-6ft-@-400-f-6.3.jpg" title="f/6.3" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/6.3</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-6ft-@-400-f-7.1.jpg" data-caption-title="f/7.1" data-attachment-id="4850" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-6ft-@-400-f-7.1.jpg" title="f/7.1" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/7.1</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-6ft-@-400-f-8.jpg" data-caption-title="f/8" data-attachment-id="4851" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-6ft-@-400-f-8.jpg" title="f/8" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/8</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p><em>Perceived</em> sharpness increases significantly from f/5.6 to f/6.3, and then only <em>very slightly</em> more up to f/8.</p>



<p>However, I don&#8217;t see any change in actual <em>resolution</em> &#8211; it&#8217;s entirely just about contrast.  Careful post-processing re. micro-contrast might significantly reduce if not eliminate the difference in perceived sharpness.</p>



<div class="wp-block-image-comparison-image-comparison"><div class="eb-parent-wrapper eb-parent-eb-image-comparison-0ltllbz "><div class="eb-image-comparison-wrapper eb-image-comparison-0ltllbz eb-image-comparison-align-center eb-label-horizontal-bottom" data-left-image="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-6ft-@-400-f-5.6-wide-open.jpg" data-right-image="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-6ft-@-400-f-6.3.jpg" data-vertical-mode="false" data-hover="false" data-show-label="true" data-left-label="f/5.6" data-right-label="f/6.3" data-slider-position="50" data-line-width="4" data-handle="false"><div data-testid="container"><img decoding="async" alt="Left Image" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-6ft-@-400-f-5.6-wide-open.jpg" data-testid="left-image"/><img decoding="async" alt="Right Image" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-6ft-@-400-f-6.3.jpg" data-testid="right-image"/></div></div></div></div>



<h2 class="wp-block-heading">MFD @ 400</h2>


<style type="text/css">
#foogallery-gallery-4819 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-image foogallery-lightbox-none fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-4819" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:true},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-400-f-5.6-wide-open.jpg" data-caption-title="f/5.6" data-attachment-id="4826" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-400-f-5.6-wide-open.jpg" title="f/5.6" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/5.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-400-f-6.3.jpg" data-caption-title="f/6.3" data-attachment-id="4827" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-400-f-6.3.jpg" title="f/6.3" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/6.3</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-400-f-7.1.jpg" data-caption-title="f/7.1" data-attachment-id="4828" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-400-f-7.1.jpg" title="f/7.1" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/7.1</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-400-f-8.jpg" data-caption-title="f/8" data-attachment-id="4829" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-400-f-8.jpg" title="f/8" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/8</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p><em>Perceived</em> sharpness improves significantly, steadily, all the way up to f/8 (which is as far as I tested).</p>



<p>As at 6ft, I don&#8217;t see any change in actual <em>resolution</em> &#8211; it&#8217;s entirely just about contrast.</p>



<div class="wp-block-image-comparison-image-comparison"><div class="eb-parent-wrapper eb-parent-eb-image-comparison-27vgcsf "><div class="eb-image-comparison-wrapper eb-image-comparison-27vgcsf eb-image-comparison-align-center eb-label-horizontal-bottom" data-left-image="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-400-f-5.6-wide-open.jpg" data-right-image="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-400-f-8.jpg" data-vertical-mode="false" data-hover="false" data-show-label="true" data-left-label="f/5.6" data-right-label="f/8" data-slider-position="50" data-line-width="4" data-handle="false"><div data-testid="container"><img decoding="async" alt="Left Image" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-400-f-5.6-wide-open.jpg" data-testid="left-image"/><img decoding="async" alt="Right Image" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-400-f-8.jpg" data-testid="right-image"/></div></div></div></div>



<h2 class="wp-block-heading">MFD @ 100</h2>


<style type="text/css">
#foogallery-gallery-4814 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-image foogallery-lightbox-none fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-4814" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:true},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-100-f-4.5-wide-open.jpg" data-caption-title="f/4.5" data-attachment-id="4790" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-100-f-4.5-wide-open.jpg" title="f/4.5" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/4.5</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-100-f-5.jpg" data-caption-title="f/5" data-attachment-id="4792" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-100-f-5.jpg" title="f/5" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/5</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-100-f-5.6.jpg" data-caption-title="f/5.6" data-attachment-id="4791" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-100-f-5.6.jpg" title="f/5.6" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/5.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-100-f-6.3.jpg" data-caption-title="f/6.3" data-attachment-id="4793" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-100-f-6.3.jpg" title="f/6.3" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/6.3</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-100-f-7.1.jpg" data-caption-title="f/7.1" data-attachment-id="4794" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-100-f-7.1.jpg" title="f/7.1" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/7.1</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a href="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-100-f-8.jpg" data-caption-title="f/8" data-attachment-id="4795" data-type="image" class="fg-thumb" data-wpel-link="internal"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-100-f-8.jpg" title="f/8" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">f/8</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">6</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p><em>Perceived</em> sharpness increases significantly between f/4.5 (wide open) and about f/6.3.  After that there&#8217;s no meaningful change.</p>



<p>Interestingly, unlike at 400 some portion of the perceived sharpness difference appears to be due to actual resolution differences, not just contrast.  So this is the only case in any of the tests I&#8217;ve done here where stopping down might be strictly necessary for maximum possible sharpness.</p>



<div class="wp-block-image-comparison-image-comparison"><div class="eb-parent-wrapper eb-parent-eb-image-comparison-kayee8j "><div class="eb-image-comparison-wrapper eb-image-comparison-kayee8j eb-image-comparison-align-center eb-label-horizontal-bottom" data-left-image="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-100-f-4.5-wide-open.jpg" data-right-image="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-100-f-6.3.jpg" data-vertical-mode="false" data-hover="false" data-show-label="true" data-left-label="f/4.5" data-right-label="f/6.3" data-slider-position="50" data-line-width="4" data-handle="false"><div data-testid="container"><img decoding="async" alt="Left Image" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-100-f-4.5-wide-open.jpg" data-testid="left-image"/><img decoding="async" alt="Right Image" src="https://wadetregaskis.com/wp-content/uploads/2021/12/Nikkor-Z-100-400-MFD-@-100-f-6.3.jpg" data-testid="right-image"/></div></div></div></div>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Conclusion</h2>



<p>I can&#8217;t really compare across focal lengths, because the subject changed size (in the frame).  It seems to me that the achievable acuity is pretty good, and pretty similar, at all focal lengths.</p>



<p>There was a clear trend w.r.t. subject distance and wide-open performance, i.e. as the distance gets shorter, wide open becomes softer in comparison to narrower apertures.  Thus the optimal aperture is (in my opinion):</p>



<ul class="wp-block-list">
<li>MFD:
<ul class="wp-block-list">
<li>100: f/6.3 (-1 stop)</li>



<li>400: f/7.1 (-⅔ stop)</li>
</ul>
</li>



<li>6ft: f/6.3 (-⅓ stop)</li>



<li>12ft: f/5.6 (wide open)</li>



<li>30ft: f/5.6 (wide open)</li>
</ul>



<p>In some cases you do technically get slight improvements in perceived sharpness by stopping down further, but if you have to do so by raising ISO then it is definitely not worth it &#8211; the additional noise will outweigh the benefits.</p>



<p>Keep in mind, also, that at 400mm even when there was a difference in perceived sharpness, it was basically only due to changes in contrast.  As such, in theory it can be fully compensated for in post-processing with e.g. micro-contrast adjustments.  So I definitely wouldn&#8217;t stress if I forgot to stop down when my subject came super close.</p>



<p>It&#8217;d be great if wide open wasn&#8217;t slightly softer-looking at close distances, but as just noted the difference is largely correctable in post.  More importantly, at <em>most</em> distances wide open is basically as sharp as any narrower aperture.</p>



<p>In a nutshell, this is an excellent result overall.  At most subject distances, at 400, the only reason to stop down is if you actually want increased depth of field.</p>



<p>That all said, the real test is <a href="https://wadetregaskis.com/nikon-z-100-400-centre-vs-nikon-80-400g-sigma-150-600-c/" data-wpel-link="internal">how the 100-400 compares against some of its competitors</a>…</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/nikon-z-100-400-centre-performance/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			<media:content url="https://wadetregaskis.com/wp-content/uploads/2021/12/Z100-400_4.5-5.6_angle2.high_-2048x940.avif" medium="image" />
<post-id xmlns="com-wordpress:feed-additions:1">4788</post-id>	</item>
		<item>
		<title>Blink XT review</title>
		<link>https://wadetregaskis.com/blink-xt-review/</link>
					<comments>https://wadetregaskis.com/blink-xt-review/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Sun, 28 Oct 2018 00:50:14 +0000</pubDate>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Blink XT]]></category>
		<category><![CDATA[Broken by design]]></category>
		<category><![CDATA[Bugs!]]></category>
		<category><![CDATA[Tested]]></category>
		<category><![CDATA[video]]></category>
		<guid isPermaLink="false">https://blog.wadetregaskis.com/?p=4295</guid>

					<description><![CDATA[Normally I&#8217;d just post a review like this on the merchant&#8217;s website &#8211; in this case Amazon. &#160;Yet perplexingly when I tried to do so, I was given the error message: Sorry, we are unable to accept reviews for this product. This product has limitations on submitting reviews. There can be a number of reasons&#8230; <a class="read-more-link" href="https://wadetregaskis.com/blink-xt-review/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p>Normally I&#8217;d just post a review like this on the merchant&#8217;s website &#8211; in this case Amazon. &nbsp;Yet perplexingly when I tried to do so, I was given the error message:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Sorry, we are unable to accept reviews for this product. This product has limitations on submitting reviews. There can be a number of reasons for this, including unusual reviewing activity.</p>
</blockquote>



<p>Hmmm… curious. &nbsp;I tried revising my star rating from 2 to 5 to see if it were so blatantly influenced by that, but it did not make a difference.</p>



<p>Anyway, FWIW here&#8217;s my review:</p>



<p>First up, the Blink XT cameras do not work with normal batteries &#8211; you have to buy quite expensive Lithium batteries. &nbsp;Use of any other types of AAs will result in the camera not triggering reliably, failing to record full videos (or at all), etc. &nbsp;So factor in about $20 extra per camera for a pair of such batteries. &nbsp;Also, the two year quoted battery life appears to be a joke &#8211; I had to replace the first set of batteries after only a month or so.</p>



<p>Second, the video quality is not great. &nbsp;They&#8217;re ostensibly 1080p but it looks both upscaled (probably from 720p) and it appears the video is recorded on the sync dongle, not the camera itself, so it&#8217;s subject to any radio interference issues that might exist, which will result in noticeably degraded video quality &#8211; or recording corrupting or cutting out entirely. &nbsp;Overall the video quality, even in the best case, is like that of a <em>very</em> cheap smartphone (as of 2018), or say a 2010 iPhone.</p>



<p>Third, the only way to remotely control the cameras, and view recorded videos, is via mobile apps. &nbsp;No desktop apps, no website, nothing. &nbsp;So it&#8217;s very tedious to view the recordings, manage them, etc.</p>



<p>Fourth, the mobile app for iOS is not great. &nbsp;It&#8217;s very slow &#8211; Cloud-saved videos are never loaded in advance, only on demand, and can take up to a minute to start playing. &nbsp;It&#8217;s also a bit buggy. &nbsp;e.g. a lot of the time it&#8217;ll fail to do whatever you asked, responding instead with a long delay ended with an error message along the lines of &#8220;the camera is busy&#8221;.</p>



<p>Fifth, wireless range is limited &#8211; I have one camera only about ten metres from both my wireless router &amp; the sync module, through one exterior wall, and the video quality is noticeably degraded sometimes. &nbsp;I tried placing one camera with line of sight about 30 metres away, and it worked (barely) for an hour or two and then never again, until I moved it much closer.</p>



<p>Sixth, motion triggering is inconsistent and lacks important configuration options (like zoning to denote areas to ignore or conversely to focus on). &nbsp;e.g. for one video looking out the front of my place, it unavoidably has the street in view, which means that even on minimal sensitivity, we get a video &amp; notification every single time a car goes by on the street. &nbsp;Yet it still won&#8217;t reliably trigger when a human walks up to the front door, until they&#8217;re right in front of the camera. &nbsp;Yet it&#8217;s nonetheless sometimes triggered by squirrels up to 10 metres away.</p>



<p>So, solidly not recommended. &nbsp;Not the worst thing ever &#8211; the system does function in a very minimal sense, and I&#8217;ve managed to get some utility out of it, but it&#8217;s definitely disappointing &#8211; and many of these errors could surely be easily fixed by better software, firmware, or hardware design (e.g. support for normal batteries).</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/blink-xt-review/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<media:content url="https://wadetregaskis.com/wp-content/uploads/2018/10/Blink-XT.webp" medium="image" />
<post-id xmlns="com-wordpress:feed-additions:1">4295</post-id>	</item>
		<item>
		<title>Raw editor comparison &#8211; Shadows</title>
		<link>https://wadetregaskis.com/raw-editor-comparison-shadows/</link>
					<comments>https://wadetregaskis.com/raw-editor-comparison-shadows/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Wed, 27 Jan 2016 17:42:21 +0000</pubDate>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Aperture]]></category>
		<category><![CDATA[Capture One]]></category>
		<category><![CDATA[DxO Optics]]></category>
		<category><![CDATA[Image editing]]></category>
		<category><![CDATA[Lightroom]]></category>
		<category><![CDATA[Tested]]></category>
		<guid isPermaLink="false">http://blog.wadetregaskis.com/?p=3435</guid>

					<description><![CDATA[This is a follow-up to my previous Raw converter comparison &#8211; you can see that post for info on things like my motivation, basic processing methods, etc. The goal in this case is just to test how well each raw editor &#8211; Aperture 3.6, Capture One 9 Pro, DxO Optics 10, and Lightroom CC 2015.3&#8230; <a class="read-more-link" href="https://wadetregaskis.com/raw-editor-comparison-shadows/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p>This is a follow-up to my previous <a href="https://wadetregaskis.com/raw-converter-comparison/" data-wpel-link="internal">Raw converter comparison</a> &#8211; you can see that post for info on things like my motivation, basic processing methods, etc.</p>



<p>The goal in this case is just to test how well each raw editor &#8211; Aperture 3.6, Capture One 9 Pro, DxO Optics 10, and Lightroom CC 2015.3 &#8211; can lift an underexposed photo. &nbsp;For pedants, note that I&#8217;m specifically applying an&nbsp;overall exposure adjustment, not just shadow recovery, though I expect that fundamentally any &#8216;Shadow&#8217; sliders in these editors are just a strict subset of their &#8216;Exposure&#8217; sliders.</p>



<p>First, here&#8217;s the test image as it first appears when viewed in each of the contenders:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="4096" height="2730" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-Unedited.webp" alt="" class="wp-image-6186" srcset="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-Unedited-2048x1365@2x.webp 4096w, https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-Unedited-512x341@2x.webp 1024w, https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-Unedited-2048x1365.webp 2048w, https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-Unedited-256x171.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-Unedited-512x341.webp 512w" sizes="auto, (max-width: 4096px) 100vw, 4096px" /></figure>
</div>


<p>Some differences in how each raw converter operates by default, unsurprisingly. But clearly the photo is massively underexposed. In case you&#8217;re wondering, this was just setting up for a macro shoot, and for whatever reason the flashes didn&#8217;t fire in this exposure.</p>



<p>And below is the edited version. My goal here was to bring the photo up to a broadly &#8216;normal&#8217; or &#8216;correct&#8217; exposure. At first I assumed this would just mean some &#8216;Exposure&#8217; adjustment applied identically between the four contenders, but it quickly became apparent that their adjustment tools just aren&#8217;t equivalent like that.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="4096" height="2730" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-Exposure-Boosted.webp" alt="Edited image" class="wp-image-6187" srcset="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-Exposure-Boosted-2048x1365@2x.webp 4096w, https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-Exposure-Boosted-512x341@2x.webp 1024w, https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-Exposure-Boosted-2048x1365.webp 2048w, https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-Exposure-Boosted-256x171.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-Exposure-Boosted-512x341.webp 512w" sizes="auto, (max-width: 4096px) 100vw, 4096px" /></figure>
</div>


<p>For reference, the adjustments made for each were:</p>



<ul class="wp-block-list">
<li><em>Aperture 3.6</em> &#8211; +6 exposure</li>



<li><em>Capture One 9 Pro</em> &#8211; +4 exposure, +35 brightness</li>



<li><em>DxO Optics 10</em> &#8211; +3 exposure</li>



<li><em>Lightroom CC 2015.3</em> &#8211; +5 exposure</li>
</ul>



<p>The additional use of the &#8216;Brightness&#8217; slider in Capture One was necessary because its &#8216;Exposure&#8217; slider is hard-limited to ±4, obnoxiously.</p>



<p>Clearly one of these things is not like the other. Or, put another way:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="500" height="281" src="https://wadetregaskis.com/wp-content/uploads/2016/01/What-The-Fuck-Are-You-Doing-Aperture-2.webp" alt="Dear Aperture… WHAT THE FUCK ARE YOU DOING?!" class="wp-image-3467" srcset="https://wadetregaskis.com/wp-content/uploads/2016/01/What-The-Fuck-Are-You-Doing-Aperture-2.webp 500w, https://wadetregaskis.com/wp-content/uploads/2016/01/What-The-Fuck-Are-You-Doing-Aperture-2-256x144.webp 256w" sizes="auto, (max-width: 500px) 100vw, 500px" /></figure>
</div>


<p>Here&#8217;s a zoomed in view of a representative part of the image:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="2048" height="2048" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-100-clippings.webp" alt="Edited image (100% clipping)" class="wp-image-6188" srcset="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-100-clippings-1024x1024@2x.webp 2048w, https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-100-clippings-512x512@2x.webp 1024w, https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-100-clippings-256x256.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-100-clippings-512x512.webp 512w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /></figure>
</div>


<p>So, Aperture&#8230; enough said.</p>



<p>Amongst the other three, there&#8217;s lots of room for opinion. DxO Optics has applied much more noise reduction, to the point where it&#8217;s quite obvious and (in <em>my</em> opinion) a bit over-done. Capture One and Lightroom have done a similar job, though I think Capture One has done genuinely better at suppressing the banding, and the noise in certain areas &#8211; particularly the midtones.</p>



<p>Now, this section of the image is out of focus. A necessary question &#8211; given it appears the main difference is simply in the noise reduction being applied &#8211; is how well genuine detail is retained. So here&#8217;s a second 100% clipping from the image:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="2048" height="2048" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-100-clippings-2.webp" alt="Edited image (100% clipping)" class="wp-image-6189" srcset="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-100-clippings-2-1024x1024@2x.webp 2048w, https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-100-clippings-2-512x512@2x.webp 1024w, https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-100-clippings-2-256x256.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-100-clippings-2-512x512.webp 512w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /></figure>
</div>


<p>DxO Optics happens to have retained the highlights a bit better, which is fine but remember that I didn&#8217;t bother recovering highlights at all, which I&#8217;m sure all of them would be able to do just fine (since &#8216;recovery&#8217; in this sense means merely not so massively lifting them out of shadow).</p>



<p>There&#8217;s not much else to say here, though. Aperture is incredibly horrible. And the other three behave much the same as we&#8217;ve seen before:</p>



<ul class="wp-block-list">
<li>DxO Optics has gone for very strong noise reduction by default, which has actually rendered the small in-focus area not too badly. But really softened everything else, in a slightly blotchy &#8220;I&#8217;ve been noise reduced&#8221; way.</li>



<li>Capture One has a more subtle look, that&#8217;s actually a little crisper than DxO Optics&#8217;, but has significantly more noise and banding visible.</li>



<li>Lightroom goes even further, with a very noisy and very banded rendition that can perhaps give an illusion of extra detail, though there actually isn&#8217;t anything there that Capture One &amp; DxO Optics don&#8217;t also reveal.</li>
</ul>



<p>Again, it looks like the difference is primarily in noise reduction. I&#8217;m not going to try to &#8216;equalize&#8217; their noise reduction settings &#8211; from experience that&#8217;s highly subjective &#8211; but I suspect you could ultimately get similar results, to suit your own taste, from any of Capture One, DxO Optics, or Lightroom.</p>



<p>But you&#8217;ll never get anything usable out of Aperture, from this kind of scenario. That one&#8217;s dead, Jim.</p>



<h3 class="wp-block-heading">An update on Aperture</h3>



<p><a href="https://www.dpreview.com/forums/post/57175777" data-wpel-link="external" target="_blank" rel="external noopener">&#8220;noirdesir&#8221; on DPReview&#8217;s forums</a> (and Jim M here in the comments) identified Aperture&#8217;s problem: that it&#8217;s got a fixed blackpoint which is preventing it from actually bring up any real shadow detail.</p>



<p>Unfortunately I wasn&#8217;t expecting to add to this post, so I didn&#8217;t save a few key tidbits like the crop coordinates for the two 100% views. But FWIW here&#8217;s broadly what you can get out of Aperture if you also adjust the &#8216;Black Point&#8217; alongside &#8216;Exposure&#8217;:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="2048" height="1365" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-Aperture-3.6-5-exposure-0.1-blackpoint.webp" alt="Aperture with black point adjustment" class="wp-image-6190" srcset="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-Aperture-3.6-5-exposure-0.1-blackpoint-1024x683@2x.webp 2048w, https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-Aperture-3.6-5-exposure-0.1-blackpoint-512x341@2x.webp 1024w, https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-Aperture-3.6-5-exposure-0.1-blackpoint-256x171.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-Aperture-3.6-5-exposure-0.1-blackpoint-512x341.webp 512w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /></figure>
</div>


<p>Aperture&#8217;s rendition still isn&#8217;t as good as any of the other three &#8211; it&#8217;s much noisier, even than Lightroom&#8217;s, and the deepest shadows are still somewhat clipped. The latter may be an imperfect &#8216;Black point&#8217; setting, though I did spend quite some time playing with it and this was the best that I could seem to get from it, w.r.t. both overall image quality and actually getting roughly the desired exposure.</p>



<p>So after all these years and many images given-up on, it turns out Aperture <em>can</em> actually recover underexposed images to a reasonable degree. It&#8217;s just far more fiddly than any of the other raw editors &#8211; you have to adjust the &#8216;Exposure&#8217; slider a little, then the &#8216;Black point&#8217;, and then repeat numerous times to narrow in on the right complementary settings. But even then, the point remains that it still doesn&#8217;t do as good a job of it as Capture One, DxO Optics, or Lightroom.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/raw-editor-comparison-shadows/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			<media:content url="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8784-100-clippings.webp" medium="image" />
<post-id xmlns="com-wordpress:feed-additions:1">3435</post-id>	</item>
		<item>
		<title>Raw converter comparison</title>
		<link>https://wadetregaskis.com/raw-converter-comparison/</link>
					<comments>https://wadetregaskis.com/raw-converter-comparison/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Mon, 25 Jan 2016 18:38:22 +0000</pubDate>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Aperture]]></category>
		<category><![CDATA[Capture One]]></category>
		<category><![CDATA[DxO Optics]]></category>
		<category><![CDATA[Lightroom]]></category>
		<category><![CDATA[Tested]]></category>
		<guid isPermaLink="false">http://blog.wadetregaskis.com/?p=3086</guid>

					<description><![CDATA[Prelude For better or worse, Aperture is dying. &#160;Abandoned by Apple many years ago now, it&#8217;s frankly amazing it hasn&#8217;t completely broken already, given the steady stream of system updates and such changes since then. &#160;Regardless, it has always had rough edges, and on top of all that I&#8217;ve grown increasingly disappointed with its image&#8230; <a class="read-more-link" href="https://wadetregaskis.com/raw-converter-comparison/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">Prelude</h1>



<p>For better or worse, Aperture is dying. &nbsp;Abandoned by Apple many years ago now, it&#8217;s frankly amazing it hasn&#8217;t completely broken already, given the steady stream of system updates and such changes since then. &nbsp;Regardless, it has always had rough edges, and on top of all that I&#8217;ve grown increasingly disappointed with its image quality &#8211; both fundamental raw rendering as well as with&nbsp;editing. &nbsp;So, I need an alternative.</p>



<p>Staggeringly, there&#8217;s <em>still</em>&nbsp;nothing else out there quite like Aperture. &nbsp;Lightroom is probably the closest, but it has a lot of design flaws &#8211; particularly in its UI &#8211; and, from what I hear, perpetual &amp; unpredictable performance issues (not that Aperture is great there either). &nbsp;But it is undoubtably the de facto standard, and has vastly more community&nbsp;&#8211; providing&nbsp;tutorials, presets, plug-ins, etc &#8211; which is also valuable.</p>



<p>There&#8217;s DxO Optics. &nbsp;I&#8217;ve played with it before and know that it can do an amazingly better job than Aperture (w.r.t. image quality). &nbsp;It&#8217;s a relatively bare-bones program, however, with minimal editing capabilities and not even the pretense&nbsp;of actual image management.</p>



<p>There&#8217;s also Capture One, which while undoubtedly the most expensive option out there today, also has a reputation for being the best w.r.t. image quality. &nbsp;It&#8217;s also been around longer than any of these other options. &nbsp;It has a reasonable&nbsp;set of editing capabilities. &nbsp;It sort of tries to do image management, though it&#8217;s clear it&#8217;s not trying very hard, and it has some pretty serious UI issues and bugs in this area.</p>



<p>I spent quite some&nbsp;time playing with each of these three alternatives, trying to develop a broad feel for their respective&nbsp;strengths and weaknesses. &nbsp;What I found is that they all require compromises compared to what I&#8217;m used to from Aperture, and it&#8217;s really a Sophie&#8217;s choice of which things I&#8217;ll miss least. &nbsp;That&#8217;s not a fun choice to have to make.</p>



<p>So I had to ask myself what <em>really</em> matters. &nbsp;I find myself thinking that I should choose first and foremost based on image quality, on the basis that I spend a ridiculous amount of money on all the other gear necessary to take a quality photographs to begin with, and inordinate amounts of my own time in managing and editing photos &#8211; the end result of which is ultimately judged almost solely by the quality of the images that I publish&nbsp;online &amp; print. &nbsp;And for ancillary features like Flickr export and whatnot, there&nbsp;<em>are</em> other workflow options, even if it&#8217;s a few more steps to utilise them.</p>



<p>Thus, this comparison.</p>



<p>I&#8217;m presenting this in something of a reverse order, on the assumption that most readers will just want to cut to the chase and see what my findings &amp; advice are. &nbsp;But I do want to also detail my methodology, so that others can understand and reproduce it &#8211; so that&#8217;s included at the end.</p>



<p><em>Note</em>: &nbsp;yes, there&#8217;s also Apple&#8217;s Photos, which is just iPhoto&#8217;s younger, hipster sibling. &nbsp;It&#8217;s essentially DxO Optics&#8217; inverse &#8211; a decent&nbsp;image management app with very rudimentary&nbsp;image editing capabilities. &nbsp;And it shares Aperture&#8217;s raw rendering engine, which I already feel&nbsp;to be decidedly mediocre. &nbsp;While there are hypothetical options involving things like the DxO Optics plug-in for Photos, along with a small army of not-entirely-existent-yet plug-ins for actual image editing, I&#8217;m defaulting that to the very last resort. &nbsp;Plus it&#8217;ll probably be abandoned within a couple of years anyway &#8211; as is Apple&#8217;s inevitable&nbsp;wont.</p>



<p>Though for the purposes of this comparison &#8211; of just the raw rendering engines &#8211; I expect Aperture&#8217;s results to be equivalent to Photos&#8217;.</p>



<h1 class="wp-block-heading">Conclusion</h1>



<p>TL;DR: &nbsp;Capture One wins by a safe margin, no matter how you look at it.</p>



<p>Specifically, here&#8217;s the overall ranking per photo:</p>



<figure class="wp-block-table aligncenter"><table><thead><tr><th>Photo</th><th>Aperture 3.6</th><th>Capture One 9 Pro</th><th>DxO Optics 10</th><th>Lightroom 2015.3</th></tr></thead><tbody><tr><td>The Lake</td><td>2</td><td>1</td><td>4</td><td>2</td></tr><tr><td>The Ceiling</td><td>2</td><td>3</td><td>4</td><td>1</td></tr><tr><td>The Peacock</td><td>4</td><td>1</td><td>2</td><td>3</td></tr><tr><td>The Cat</td><td>2</td><td>1</td><td>4</td><td>2</td></tr><tr><td>The Deer</td><td>2</td><td>1</td><td>2</td><td>2</td></tr><tr><td>The Harrier</td><td>4</td><td>1</td><td>2</td><td>3</td></tr><tr><td>The Gopher</td><td>2</td><td>1</td><td>1</td><td>4</td></tr><tr><td>The Granite</td><td>3</td><td>2</td><td>1</td><td>4</td></tr><tr><td>The Sunrise</td><td>2</td><td>2</td><td>1</td><td>2</td></tr><tr><td>The Valley</td><td>3</td><td>1</td><td>2</td><td>3</td></tr></tbody></table></figure>



<p class="has-text-align-left">That&#8217;s seven 1st-place results for Capture One, vs three for DxO Optics, one for Lightroom, and zero for Aperture.</p>



<p class="has-text-align-left">Or, looked at another way, the rankings by average&nbsp;position:</p>



<ol class="wp-block-list">
<li>Capture One (1.4)</li>



<li>DxO Optics (2.3)</li>



<li>Aperture &amp; Lightroom (2.6)</li>
</ol>



<p>In short:</p>



<ol class="wp-block-list">
<li>Capture One almost always rendered the most fine detail, while simultaneously almost always rendering the&nbsp;least noise. &nbsp;Its renditions were&nbsp;often lacking&nbsp;contrast, however, and &#8211; with a couple of notable exceptions &#8211; its colour rendition was relatively muted.</li>



<li>DxO Optics was often similarly sharp to Capture One &#8211; and sometimes moreso &#8211; though it achieved its results less elegantly, with an often &#8216;over-processed&#8217; look and blotchy&nbsp;noise reduction. &nbsp;It was the only raw converter which corrected geometric distortion, which may have penalised it w.r.t. sharpness, which I gave more weight to.</li>



<li>Aperture &amp; Lightroom often rendered very similar results, which had (typically) significantly less fine detail than the other two renderers, and often produced relatively accurate&nbsp;but aesthetically disinteresting colours and contrast.
<ol class="wp-block-list">
<li>Lightroom favours significantly greater sharpening by default, than Aperture, and this also manifests as dramatically more noise in some cases.</li>



<li>Lightroom also tended to err on the side of over-exposure, whereas Aperture was a bit more accurate generally, but occasionally under-exposed.</li>
</ol>
</li>
</ol>



<p>A few things surprised me in these results, though one above all others: &nbsp;that Lightroom doesn&#8217;t actually do a particularly good job of rendering raws. &nbsp;This is really unexpected to me because Lightroom / Adobe Camera Raw is by&nbsp;<em>far</em> the most common raw renderer out there, and has plenty of praise spoken about it. &nbsp;As the closest approximation to Aperture as an actual image manager and editor, I was secretly hoping it would perform well so that I could choose it, other aversions be damned. &nbsp;Alas, no such luck.</p>



<p>I was also surprised at the performance of DxO Optics &#8211; I own an older copy, version 8, and have used it from time to time. &nbsp;I&#8217;ve found it particularly useful &#8211; compared to Aperture &#8211; for high ISO images, where it does a&nbsp;<em>much</em> better job, at times, in minimising noise and bringing out shadow detail. &nbsp;But that might be the explanation &#8211; the test performed here judged only the initial raw rendering,&nbsp;<em>not</em> key edits like dramatic exposure adjustments (including highlight &amp; shadow recovery). &nbsp;I strongly suspect DxO Optics would distinguish itself much more from Aperture in editing tests.</p>



<p>I will also add that Capture One&#8217;s results, when heavily scrutinised, sometimes felt contrary to my previous anecdotal experience with it. &nbsp;When toggling&nbsp;between Aperture and Capture One I&#8217;d previously seen a&nbsp;<em>huge</em> image quality improvement all round. &nbsp;Make no mistake &#8211; there is a&nbsp;<em>big</em> difference shown in this test. &nbsp;But my prior dabbles with it had, at the time, seemed more dramatic still. &nbsp;Its possible the few images I&#8217;d compared previously were&nbsp;<em>especially</em> favourable to Capture One. &nbsp;Or that, once you actually apply some meaningful edits, that Capture One&#8217;s advantage over Aperture only increases. &nbsp;I suspect that is in fact the case, much as I suspect the same for DxO Optics, but again image editing was not tested here.</p>



<h1 class="wp-block-heading">Results</h1>



<h2 class="wp-block-heading">How to interpret these results</h2>



<p>The methodology section, at the end, fully details how these images were processed in each of the contenders, and prepared for web presentation. &nbsp;Suffice then, for now, to say that:</p>



<ul class="wp-block-list">
<li>I chose ten images that are deliberately not perfect but reflect a reasonable cross-section of my whole photo collection. &nbsp;I did make some effort to include specific technical scenarios (e.g. high ISO), that not much &#8211; my primary focus was on a&nbsp;<em>representative</em> set of images, not a technically diverse one.</li>



<li>My fundamental test is of how well each of the contending programs presents the raws straight out of the camera. &nbsp;Nothing more. &nbsp;Don&#8217;t complain. &nbsp;Maybe I&#8217;ll test other aspects later, and you&#8217;re certainly welcome to yourself &#8211; add a comment at the end with a link to your tests. &nbsp;But keep in mind the very specific scope here.</li>



<li>For each of the sample images, I&#8217;m using two views:
<ul class="wp-block-list">
<li>A full view of the photo, to gauge general colour rendition, exposure, etc.</li>



<li>A 100% crop clipping from a key part of the image, to really investigate acuity, contrast, and noise.</li>
</ul>
</li>
</ul>



<p>Keep in mind that if your browser window is narrow (e.g. you&#8217;re on a mobile device) you may be seeing a low-resolution view &#8211; for best results, ensure your browser window is wide enough to see the images at full size.</p>



<h2 class="wp-block-heading">The actual results</h2>



<h3 class="wp-block-heading">The Lake</h3>



<p>This first image is a random, flat landscape shot. &nbsp;It was a slightly foggy day when this was taken, with overcast skies and little wind. &nbsp;Cold, also &#8211; not much above freezing.</p>


<style type="text/css">
#foogallery-gallery-6070 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6070" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6071" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC2573-Aperture-3.6-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6072" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC2573-Capture-One-9-Pro-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6073" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC2573-DxO-Optics-10-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6074" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC2573-Lightroom-CC-2015.3-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>Aperture &amp; Lightroom both render this one truer to how I actually remember the scene being &#8211; i.e. genuinely flat &amp; dull. &nbsp;It&#8217;s surprising how similar they are to each other, though Lightroom&#8217;s rendition is the dullest.</p>



<p>Capture One has gone with a naturally vibrant look, which I find quite pleasing, even if it is technically inaccurate. &nbsp;It&#8217;s also clearly more detailed [than Aperture or Lightroom&#8217;s] even at this reduced viewing size.</p>



<p>DxO Optics is the outlier here, with a surprising, somewhat grungy look. &nbsp;Far contrastier than the other three, and appearing to my eye perhaps a little over-sharpened. &nbsp;That said, colour-wise it&#8217;s actually not that inaccurate.</p>


<style type="text/css">
#foogallery-gallery-6067 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6067" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6063" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC2573-Aperture-3.6.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6064" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC2573-Capture-One-9-Pro.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6065" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC2573-DxO-Optics-10.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6066" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC2573-Lightroom-CC-2015.3.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>This 100% view just confirms what was already somewhat visible when zoomed out &#8211; that Capture One &amp; DxO Optics are rendering much more detail. &nbsp;I find Capture One&#8217;s rendition more natural and pleasing, but I could see some people favouring DxO Optics&#8217;.</p>



<p>In any case, though, they both do a&nbsp;<em>much</em> better job than Aperture or Lightroom.</p>



<p>What really surprises me here is how uncompetitive Lightroom is. &nbsp;Its rendition has barely any more detail than Aperture&#8217;s, which I find very surprising given how popular Lightroom (and Adobe Camera Raw) are. &nbsp;Nonetheless, it still is that&nbsp;<em>tiny</em> bit sharper than Aperture&#8217;s.</p>



<h4 class="wp-block-heading">Judgement</h4>



<p>I firmly prefer the Capture One version &#8211; it just looks better to me, plain and simple. &nbsp;Capture One really brings out a lot of genuine detail, without any artifacting that I can see, and without looking over-processed (to my eye).</p>



<p>I respect Aperture &amp; Lightroom for their &#8216;honest&#8217; rendition of the scene, but would undoubtedly &#8211; were I to fully post-process this image in them &#8211; &nbsp;try to make them look more like Capture One&#8217;s version. &nbsp;And their lack of detail is very disappointing.</p>



<p><em>Note</em>: &nbsp;the obvious question is whether you can dig out that same detail, that Capture One has by default, from Aperture or Lightroom. &nbsp;That&#8217;s difficult to answer conclusively, since there are many possible approaches with many possible fine-tuning settings.</p>



<p>I have extensive&nbsp;experience with Aperture (many years and thousands of images processed), and I am confident that I <span style="text-decoration: underline;">cannot</span> get as good an image out of it, as Capture One or DxO Optics are giving by default. &nbsp;It simply doesn&#8217;t have the detail there in its original raw rendering.</p>



<p>I do not have much experience with Lightroom. &nbsp;I did do some quick experimentation&nbsp;with it, and was able to get fairly close to Capture One&#8217;s acuity, but not without introducing visible sharpening artefacts, never with quite the same really fine detail, and not without a&nbsp;<em>lot</em> of time &amp; effort. &nbsp;It was nonetheless a bit more capable than Aperture in this respect, though.</p>



<p>And DxO Optics&#8230; overall I&#8217;m inclined to rank it below the other three, but that&#8217;s mainly on the basis that its&nbsp;exaggerated contrast, sharpening, and structure just don&#8217;t suite this scene. &nbsp;But I do feel that, if I were going to put some time into editing, then&nbsp;DxO Optics offers a much better starting position than Aperture or Lightroom &#8211; because, again, it has much more genuine detail available to start with.</p>



<h3 class="wp-block-heading">The Ceiling</h3>



<p>This one is intended to represent a common low-light scenario &#8211; a high ISO,&nbsp;<em>plus</em> a bit of motion blur due to hand-holding at slow shutter speeds (1/10s in this case, without VR).</p>


<style type="text/css">
#foogallery-gallery-6077 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6077" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6078" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC3440-Aperture-3.6-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6079" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC3440-Capture-One-9-Pro-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6080" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC3440-DxO-Optics-10-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6081" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC3440-Lightroom-CC-2015.3-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>I actually like Aperture&#8217;s colour rendition in this case. &nbsp;It&#8217;s getting close to over-exaggerated, particularly with the reds, but otherwise its solid saturation is pleasing to me. &nbsp;Lightroom&#8217;s rendition is similar to me, though ever so slightly sharper and with higher local contrast.</p>



<p>Capture One&#8217;s rendition disappoints me this time around. &nbsp;The muted colours and lower contrast&nbsp;do it no favours, producing an appearance of&nbsp;lesser detail than Aperture or Lightroom, even though objectively it renders slightly higher detail.</p>



<p>DxO Optics has given the whole image a bit of a red cast, for some reason, and the red walls around the sides are tending towards radioactive. &nbsp;However, it&#8217;s also the only one of the four which actually corrected for the lens&#8217; geometric distortion. &nbsp;The effect is basically foiled&nbsp;in this case, though, by the circular and symmetrical subject. &nbsp;And is perhaps contributing to its lack of sharpness &#8211; surprisingly, given the results from the previous photo, DxO Optics&#8217; rendition has the least detail this time around.</p>


<style type="text/css">
#foogallery-gallery-6082 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6082" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6083" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC3440-Aperture-3.6.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6084" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC3440-Capture-One-9-Pro.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6085" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC3440-DxO-Optics-10.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6086" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC3440-Lightroom-CC-2015.3.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>The standout here is Lightroom. &nbsp;For good and for bad. &nbsp;It has <em>appeared</em> to&nbsp;render more detail than the others (with Aperture a not distant second), but this is quite possibly something of an optical illusion performed by it&#8217;s dramatically higher noise levels. &nbsp;If you look closely, you&#8217;ll be hard pressed to find anywhere with genuinely greater fine detail, compared to Capture One&#8217;s or even Aperture&#8217;s rendition. &nbsp;Just a lot of crude over-sharpening.</p>



<p>DxO Optics, on the other hand, has gone entirely the other direction &#8211; rendering slightly less noise than the other three, but also significantly less detail. &nbsp;Possibly its geometric distortion correction has contributed negatively here. &nbsp;Its rendition is very &#8216;painterly&#8217; to my eyes, which I do not like at all.</p>



<p>Capture One has rendered more detail than Aperture, and some is genuinely new detail, though otherwise it looks mostly like a simple difference in sharpening defaults.</p>



<h4 class="wp-block-heading">Judgement</h4>



<p>This one surprised me. &nbsp;While objectively Capture One renders detail the best, at the smaller view size I find I actually prefer&nbsp;Lightroom and Aperture&#8217;s renditions. &nbsp;While I&#8217;m leery of the significant noise in Lightroom&#8217;s rendition, I personally like to&nbsp;err on the side of detail &#8211; and could always choose to carefully noise reduce, which looking at these images I suspect I could do better than the other three are doing with their default settings, and thus maintaining a margin of extra detail.</p>



<p>That said, Capture One&#8217;s only real negative is its flatter, less colourful initial rendition, which might be as simple to &#8216;fix&#8217; as a quick contrast &amp; saturation adjustment.</p>



<p>DxO Optics is the loser in this round, though, due to its clear lack of fine detail. &nbsp;It&#8217;s possible it&#8217;d be helped by turning off its geometric distortion correction, but I did not test that.</p>



<h3 class="wp-block-heading">The Peacock</h3>



<p>This one has a lot of fine feather detail, but also a lot of&nbsp;<em>slightly</em> out-of-focus feather detail, so it&#8217;s an interesting test of how detail vs bokeh are balanced.</p>


<style type="text/css">
#foogallery-gallery-6087 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6087" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6088" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC5351-Aperture-3.6-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6089" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC5351-Capture-One-9-Pro-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6090" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC5351-DxO-Optics-10-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6091" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC5351-Lightroom-CC-2015.3-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>I see relatively&nbsp;little difference between the four. &nbsp;The Aperture one has&nbsp;slightly richer colours &#8211; especially compared to Lightroom&#8217;s, the most flat &#8211; and I particularly like Aperture&#8217;s rendering of the Peacock&#8217;s neck &amp; body. &nbsp;In general Aperture has really deepened the blues.</p>



<p>DxO Optics has rendered slightly higher contrast, or at least brighter highlights &#8211; see in particular the top of the Peacock&#8217;s head. &nbsp;It&#8217;s also again corrected for geometric distortion. &nbsp;But its also produced the softest appearance at this small viewing size.</p>



<p>Aperture, Capture One, and Lightroom have all rendered almost identical levels of detail when compared objectively. &nbsp;Though to my eye for some reason Capture One&#8217;s rendition seems slightly softer.</p>


<style type="text/css">
#foogallery-gallery-6092 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6092" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6093" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC5351-Aperture-3.6.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6094" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC5351-Capture-One-9-Pro.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6095" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC5351-DxO-Optics-10.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6096" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC5351-Lightroom-CC-2015.3.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>Aperture&#8217;s is the outlier here &#8211; noticeably softer than the other three. &nbsp;DxO Optics&#8217; is sharper, but a little processed looking. &nbsp;Furthermore, in some patches Lightroom brings out more detail &#8211; e.g. the feathers on the head &#8211; while in others &#8211; e.g. the beak &#8211; DxO Optics does a better job.</p>



<p>But they&#8217;re all beaten by Capture One, which produces a consistently sharp rendition (albeit with what may appear to be over-processed to some people).</p>



<p>Aperture has also, perplexingly, introduced what look like sharpening artefacts into the background feathers &#8211; see in particular the hair-thin (no pun intended) outline of the blue &#8216;eyes&#8217; on the feathers. &nbsp;I slightly dislike Aperture&#8217;s rendering of the background here.</p>



<h4 class="wp-block-heading">Judgement</h4>



<p>It&#8217;s pretty close overall, but I give this one to Capture One. &nbsp;If I were pushed a bit, I&#8217;d rank Aperture&#8217;s rendition barely last &#8211; despite its pleasing blues &#8211; with Lightroom only slightly above, and DxO Optics&nbsp;in second place.</p>



<h3 class="wp-block-heading">The Cat</h3>



<p>I photograph a lot of animals. &nbsp;Good rendering of hair and fur is&nbsp;critical.</p>


<style type="text/css">
#foogallery-gallery-6097 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6097" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6098" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC6820-Aperture-3.6-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6099" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC6820-Capture-One-9-Pro-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6100" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC6820-DxO-Optics-10-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6101" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC6820-Lightroom-CC-2015.3-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>DxO Optics has gone for a noticeably &#8216;stronger&#8217;, contrastier rendition. &nbsp;It looks &#8216;processed&#8217; (in the negative sense of the word) side-by-side with the others, but I suspect if viewed on its own it wouldn&#8217;t.</p>



<p>I find Capture One&#8217;s rendition a tad flat, and consequently seemingly a bit soft (even though objectively it&#8217;s not). &nbsp;I&#8217;m starting to see a trend here, whereby Capture One could benefit from a tad more contrast by default.</p>



<p>I slightly prefer Aperture&#8217;s rendition to Lightroom&#8217;s. &nbsp;Though overall they&#8217;re very similar, and I think most of the difference comes down just to colour temperature &#8211; Lightroom&#8217;s being a truer neutral white-balance, while Aperture&#8217;s is warmer. &nbsp;Lightroom has also applied more contrast than Aperture, too.</p>


<style type="text/css">
#foogallery-gallery-6102 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6102" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6103" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC6820-Aperture-3.6.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6104" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC6820-Capture-One-9-Pro.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6105" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC6820-DxO-Optics-10.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6106" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC6820-Lightroom-CC-2015.3.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>Capture One&#8217;s rendition stands out to me as the best, by some margin. &nbsp;Capture One has done a noticeably better job of rendering the fine fur, in a detailed but still very natural way. &nbsp;Its rendition has genuinely more fine detail than any of the others produced.</p>



<p>In contrast, literally and figuratively, DxO Optics has again gone for a more &#8216;processed&#8217; look. &nbsp;Despite its obviously stronger sharpening, it&#8217;s&nbsp;actually rendered slightly&nbsp;<em>less</em> detail than Capture One.</p>



<p>Curiously, though, Lightroom seems to have done a better job rendering the eye. &nbsp;There&#8217;s significantly more fine detail in there, particularly within the iris under the reflections. &nbsp;Capture One and especially DxO Optics have lost detail there. &nbsp;But it comes at the expense of visible noise, which is not present in the others&#8217; renditions.</p>



<p>I&#8217;m surprised how well Aperture stands up for itself in this particular case. &nbsp;I&#8217;ve long been frustrated with Aperture&#8217;s poor rendering of hair &amp; fur, but in this specific example it doesn&#8217;t do a terrible job. &nbsp;While not the best, it&#8217;s done just as good a job as Lightroom at bringing out genuine detail, and done so with less noise.</p>



<h4 class="wp-block-heading">Judgement</h4>



<p>Though I do like DxO Optics rendition when viewed small, at the pixel level it hasn&#8217;t done nearly&nbsp;as good a job as Capture One, and Capture One is a quick contrast adjustment away from the same nicely balanced look. &nbsp;In fact DxO Optics is probably in last in this one, due to its over-sharpened look with no more&nbsp;<em>actual</em> detail than Aperture or Lightroom.</p>



<p>Aperture &amp; Lightroom are very close, with the difference really just being in the level of basic sharpening applied. &nbsp;Neither stands up to Capture One, though, which is the clear winner.</p>



<h3 class="wp-block-heading">The Deer</h3>



<p>The wildlife shooter&#8217;s bugbear &#8211; a cute subject too far away, in too little light, with&nbsp;<em>way</em> to much stuff going on around it, visually. &nbsp;This one&#8217;s got high ISOs, camera motion blur, and relies&nbsp;<em>especially</em> on fine detail because it&#8217;s invariably going to be cropped a lot. &nbsp;The rendering of the busy, only slightly out-of-focus background is also critical.</p>


<style type="text/css">
#foogallery-gallery-6107 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6107" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6108" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC7204-Aperture-3.6-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6109" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC7204-Capture-One-9-Pro-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6110" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC7204-DxO-Optics-10-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6111" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC7204-Lightroom-CC-2015.3-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>Frankly, with such a noisy scene &#8211; both image noise and subject noise &#8211; there&#8217;s very little in it between all four contenders. &nbsp;I have a very slight preference for Capture One&#8217;s colour rendition &#8211; it&#8217;s pulled down the highlights in particular, to produce slightly richer, more pleasing greens.&nbsp; Aperture is not not far behind. &nbsp;DxO Optics &amp; Lightroom have gone for relatively dull colours &#8211; DxO Optics especially.</p>


<style type="text/css">
#foogallery-gallery-6112 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6112" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6113" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC7204-Aperture-3.6.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6114" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC7204-Capture-One-9-Pro.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6115" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC7204-DxO-Optics-10.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6116" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC7204-Lightroom-CC-2015.3.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>Worth noting is that none of the four can save this particular image.</p>



<p>I think overall Capture One has done the best job of balancing detail with noise. &nbsp;While I do like the level of detail Lightroom has rendered, it&#8217;s done so &#8211; as with The Ceiling &#8211; at the expense of&nbsp;<em>much</em> more noise than the others. &nbsp;That said, Capture One has done a particularly poor job of rendering the fur on the deer&#8217;s neck, such that even Aperture bests it there.</p>



<p>Lightroom has&nbsp;also rendered the background and surrounds noticeably busier &#8211; Capture One is my favourite of the four, in this aspect, followed by Aperture, and then DxO Optics.</p>



<h4 class="wp-block-heading">Judgement</h4>



<p>Capture One clearly wins, but by a small margin, and it&#8217;s a hollow victory because it&#8217;s still not good enough to compensate for the mediocre source raw. &nbsp;The other three are close enough to be called tied, and sensitive to personal preference (particularly w.r.t. Lightroom&#8217;s much noisier rendition).</p>



<h3 class="wp-block-heading">The Harrier</h3>



<p>A pretty typical bird-in-flight shot &#8211; which I ostensibly try to eschew as both cliché and difficult to capture, but which is nonetheless represented in its fair share of my library. &nbsp;There&#8217;s something in the challenge of capturing a wild animal in its fast motion.</p>


<style type="text/css">
#foogallery-gallery-6117 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6117" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6118" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8433-Aperture-3.6-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6119" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8433-Capture-One-9-Pro-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6120" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8433-DxO-Optics-10-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6121" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8433-Lightroom-CC-2015.3-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>As with the previous image, the actual&nbsp;subject is so small in the frame that the differences there are insignificant.</p>



<p>Something about Lightroom&#8217;s rendition of the out of focus background is more pleasing to me than any of the others&#8217;, though it&#8217;s a very small difference.</p>



<p>And Capture One has rendered the greens noticeably richer, in a not unpleasant but still subjective way. &nbsp;It does make the Harrier pop much more off the background, which is a big plus in this kind of photography.</p>


<style type="text/css">
#foogallery-gallery-6122 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6122" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6123" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8433-Aperture-3.6.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6124" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8433-Capture-One-9-Pro.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6125" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8433-DxO-Optics-10.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6126" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC8433-Lightroom-CC-2015.3.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>Capture One does the best job to my eye, though the differences are minor. &nbsp;Perhaps its biggest differentiator is the relatively low noise &#8211; the background is noticeably less noisy and thus more pleasing. &nbsp;Though that&#8217;s also something that&#8217;s relatively easy to selectively noise reduce, in a shot like this.</p>



<p>Objectively, however, Lightroom has brought out the most genuine detail. &nbsp;The Harrier&#8217;s breast, for example, has actual feather detail in Lightroom&#8217;s rendition, detail which is simply gone &#8211; visibly smeared out, as if by overly-aggressive noise reduction &#8211; in Capture One&#8217;s rendition. &nbsp;Aperture &amp; DxO Optics actually both also do a better job of preserving that detail, though at the expense of higher noise levels than Capture One.</p>



<p>I do like how DxO Optics has emphasised the detail in the harrier&#8217;s head, with its slightly stronger sharpening, though it looks like a fairly straight-forward trade-off with noise, and in fact on the feathers more generally I see more detail from Capture One.</p>



<p>Aperture&#8217;s rendition is the worst, with both relatively high noise and relatively little feather&nbsp;detail &#8211; with the notable exception of around the face, where it bests Capture One. &nbsp;Lightroom is not much better, with more detail but also the most noise. &nbsp;However, Lightroom renders the noise as very even, very fine-grained. &nbsp;Aperture&#8217;s also high noise is a little blobier. &nbsp;For less than 100% viewing, Lightroom&#8217;s noise will likely average out better than Aperture&#8217;s.</p>



<h4 class="wp-block-heading">Judgement</h4>



<p>It&#8217;s a toss-up between Capture One and Lightroom &#8211; low noise vs more detail, respectively. &nbsp;DxO Optics comes in third, with its slightly more&nbsp;aggressive processing that is nonetheless still reasonable and pleasing in this case. &nbsp;Aperture comes in close last, mainly just on the basis that it has relatively ugly noise (and plenty of it) compared to the level of detail it brings out.</p>



<h3 class="wp-block-heading">The Gopher</h3>



<p>A very typical close-up wildlife shot. &nbsp;Depth of field is an issue, backgrounds are noisy, and ISO is creeping up into the midranges.</p>


<style type="text/css">
#foogallery-gallery-6128 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6128" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6129" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9011-Aperture-3.6-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6130" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9011-Capture-One-9-Pro-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6131" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9011-DxO-Optics-10-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6132" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9011-Lightroom-CC-2015.3-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>Capture One has rendered this was unusually flat, in stark opposition to DxO Optics which has gone for a highly-processed, vibrant look. &nbsp;Though a bit strong, I do like the general direction of DxO Optics&#8217; rendering w.r.t. contrast &amp; clarity &#8211; look at the teeth, for example, to see how much more attention they draw in DxO Optics&#8217; rendition. &nbsp;It&#8217;s not realistic, but it does have an aesthetic I could get into (with some refining editing).</p>



<p>Capture One&#8217;s rendition is&nbsp;noticeably flatter, which can lead you to think it has less detail overall, though objectively this isn&#8217;t true.</p>



<p>Lightroom and Aperture are similar &#8211; colours are realistic if a bit dull by conventional standards; acuity appears reasonable. &nbsp;Aperture has under-exposed slightly, to my eye.</p>


<style type="text/css">
#foogallery-gallery-6133 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6133" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6134" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9011-Aperture-3.6.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6135" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9011-Capture-One-9-Pro.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6136" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9011-DxO-Optics-10.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6137" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9011-Lightroom-CC-2015.3.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>Capture One has done the best overall job, to my eye, w.r.t. fine details. &nbsp;It&#8217;s rendered significantly more fine detail in the gopher&#8217;s fur, to the extent that it&#8217;s made the depth of field effectively quite a bit larger. &nbsp;But its sharpening has started to over-emphasise the speckled highlights in the fur, which renders that part of the fur less attractive than Lightroom or Aperture&#8217;s renditions.</p>



<p>DxO Optics has actually done a pretty respectable job in this case. &nbsp;It hasn&#8217;t actually rendered any more genuine detail than Capture One, and as we&#8217;ve seen here previously, its results tend to look more artificial and &#8216;over-sharpened&#8217;, but its more aggressive and stylised lighting adjustments have done well here &#8211; bringing out good mid-level detail; achieving a better overall exposure than any of the other contenders; and really drawing attention to the eye.</p>



<p>Lightroom&#8217;s rendition is rather flat, in obvious contrast to DxO Optics&#8217;, well, <em>contrast</em>. &nbsp;In most other respects, it&#8217;s very similar to Aperture&#8217;s &#8211; the main difference being that Lightroom has more sharpening applied, for more apparent (but not genuine) detail and correspondingly more noise. &nbsp;In any case, Aperture &amp; Lightroom&#8217;s renditions are obviously lacking in fine detail compared to the other two&#8217;s. &nbsp;Lightroom&#8217;s is also a tad over-exposed.</p>



<p>In regards to noise, there&#8217;s not a dramatic difference between the four of them, though the pattern seen so far repeats &#8211; Lightroom renders the most noise, DxO Optics the least &#8211; though with coarser, less attractive noise for what is left in there. &nbsp;Capture One does a rather good job of keeping noise fine-grained and minimal &#8211; without compromising detail &#8211; while Aperture does a notably poorer&nbsp;job of it, comparing favourably only to Lightroom.</p>



<h4 class="wp-block-heading">Judgement</h4>



<p>It&#8217;s a toss-up between Capture One and DxO Optics. &nbsp;I suspect that, with quick &amp; minor edits, you could turn either into a nice mid-ground, with DxO Optics&#8217; more pleasing lighting (possibly just a quick jolt of the &#8216;Clarity&#8217; slider) and Capture One&#8217;s more natural fine detail &amp; noise. &nbsp;The difference is certainly within the bounds of reasonable personal preference.</p>



<p>There&#8217;s not much in it between Lightroom and Aperture, but Lightroom&#8217;s slightly higher noise and slightly washed-out appearance punt it into last place.</p>



<h3 class="wp-block-heading">The Granite</h3>



<p>This is representing all the lazy holiday snaps. &nbsp;This particular one is just a single shot towards&nbsp;a large panorama, so ignore the disinteresting subject and awkward framing. &nbsp;It&#8217;s also a bit&nbsp;over-exposed, which is not atypical in mid-day-sun landscape photography (nor, especially, in panoramas where the dynamic range can be especially high).</p>


<style type="text/css">
#foogallery-gallery-6138 .fg-image { width: 683px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6138" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6139" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9049-Aperture-3.6-1.webp" width="683" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6140" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9049-Capture-One-9-Pro-1.webp" width="683" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6141" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9049-DxO-Optics-10-1.webp" width="683" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6142" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9049-Lightroom-CC-2015.3-1.webp" width="683" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>It&#8217;s quite subjective in this case, but I am drawn to DxO Optics&#8217; version first and foremost, despite its lower vibrance. &nbsp;Overall exposure is also a bit low, but&nbsp;it&#8217;s brought out the most detail in the over-exposed clouds, rendered the sky a pleasingly deeper blue, and the trees and granite mountains with more contrast. &nbsp;The underexposure &amp; reduced vibrance (saturation &amp; luminosity in the greens) shows up particularly in the&nbsp;grass in the midground, but that&#8217;s trivial to address with a quick edit.</p>



<p>Aperture has rendered the white clouds closer to actual white, which I prefer over the slightly duller renditions by Capture One &amp; Lightroom. &nbsp;In fact it&#8217;s produced an overall higher contrast rendition than Capture One &amp; Lightroom, which I find more pleasing overall. &nbsp;That higher contrast has also given the appearance of greater detail.</p>



<p>There&#8217;s not much going for Capture One nor Lightroom in this case. &nbsp;In fact Lightroom&#8217;s rendition seems noticeably softer than any of the others&#8217; (possibly just due to the lower contrast).</p>


<style type="text/css">
#foogallery-gallery-6143 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6143" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6144" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9049-Aperture-3.6.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6145" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9049-Capture-One-9-Pro.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6146" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9049-DxO-Optics-10.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6147" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9049-Lightroom-CC-2015.3.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>Now we can see that there&#8217;s actually a pretty dramatic difference in fine detail between the four. &nbsp;While Aperture&#8217;s rendition looked surprisingly good relative to the others&#8217;, it looks like that was really just a result of its higher contrast &#8211; when it comes to true fine detail, it has none. &nbsp;It looks positively out of focus compare to Capture One &amp; DxO Optics&#8217; versions. &nbsp;And the same goes for Lightroom, which yields very similar results to Aperture.</p>



<p>DxO Optics has done a rather good job in this case of bringing out detail&nbsp;<em>without</em> looking over-processed, as it has tended to in the other pictures. &nbsp;It beats even Capture One this time around, though the difference between those two is small compared to the&nbsp;<em>big</em> loss of detail going down to Aperture or Lightroom.</p>



<h4 class="wp-block-heading">Judgement</h4>



<p>I think DxO Optics wins this one. &nbsp;Not by much &#8211; as noted, Capture One&#8217;s rendition is similar and either could likely be turned into the other with quick &amp; simple edits.</p>



<p>Aperture &amp; Lightroom are clear losers here. &nbsp;They render dramatically less detail.&nbsp; Aperture at least redeems itself somewhat with a more pleasing overall look &#8211; that, when viewed&nbsp;relatively small, has good contrast and good apparent detail. &nbsp;Shoving Lightroom to clear last.</p>



<h3 class="wp-block-heading">The Sunrise</h3>



<p>This is a relatively specialised scenario &#8211; a pseudo &#8216;night&#8217; scene but at base ISO &#8211; but I felt it worth including because, frankly, I&#8217;m frequently disappointed with sunset photos &#8211; both mine and those I see online. &nbsp;But particularly mine, which I&#8217;ve always suspected is Aperture&#8217;s fault&#8230;</p>


<style type="text/css">
#foogallery-gallery-6148 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6148" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6149" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9434-Aperture-3.6-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6150" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9434-Capture-One-9-Pro-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6151" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9434-DxO-Optics-10-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6152" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9434-Lightroom-CC-2015.3-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>And I think I might be onto something there. &nbsp;The first thing I notice is the big halo around the sun that only Aperture sees. &nbsp;Ugly.</p>



<p>DxO Optics has brought the shadows up noticeably &#8211; it shows that I was shooting this down the length of a valley, for example, with trees &amp; rocks on the side. &nbsp;Consequently there&#8217;s a bit less contrast in its rendition, and the sun&#8217;s glow seems to bleed over the silhouette more than in the others, though I wouldn&#8217;t characterise this is objectively good or bad &#8211; and to my taste, I&#8217;m indifferent.</p>



<p>Lightroom has also tried to bring up the shadows a bit, though not so strongly.</p>



<p>But truly&nbsp;the key aspect of this type of photo is colour. &nbsp;And that&#8217;s also the most subjective. &nbsp;I can&#8217;t even decide which of the four I prefer in this respect. &nbsp;It&#8217;s certainly true that DxO Optics&#8217; is the warmest rendition, and Capture One&#8217;s the coolest. &nbsp;If I were forced to choose I&#8217;d probably favour Aperture or Lightroom&#8217;s&nbsp;colour.</p>


<style type="text/css">
#foogallery-gallery-6153 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6153" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6154" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9434-Aperture-3.6.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6155" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9434-Capture-One-9-Pro.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6156" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9434-DxO-Optics-10.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6157" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9434-Lightroom-CC-2015.3.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>Looking closer just emphasises Aperture&#8217;s terrible work. &nbsp;And it&#8217;s noisy. &nbsp;In an ISO 100 photo.</p>



<p>In fact noise is visible in all four photos, despite this being at base ISO. &nbsp;Disappointing. &nbsp;Presumably this is actual sensor noise from the camera &#8211; no camera is perfect in this respect, even at base ISO &#8211; though given the nature of this photo, noise reduction&nbsp;could be applied very aggressively without detriment.</p>



<p>There&#8217;s also banding visible in all four photos. &nbsp;Aperture&#8217;s rendition&nbsp;<em>appears</em> to have the least offensive banding, surprisingly, though it&#8217;s quite possible it&#8217;s just most obscured by the higher noise. &nbsp;DxO Optics has done the best job in the sky, though perhaps not as good as Capture One in the silhouette, where DxO Optics&#8217; characteristic blotchy noise rendering stands out more.</p>



<p>DxO Optics has done the best with the high contrast edge of the sun, though. &nbsp;Aperture&#8217;s rendition of this is awful, as previously noted, and even Capture One &amp; Lightroom struggle a bit with it, adding an extra halo around the edge. &nbsp;Of those two, Lightroom&#8217;s is least offensive at it&#8217;s at least pretty smoothly graduated, while Capture One&#8217;s has some slight banding.</p>



<h4 class="wp-block-heading">Judgement</h4>



<p>This is perhaps why I dislike sunrise &amp; sunset photos so much &#8211; nobody can render them well, to my eye. It&#8217;s difficult to pick a favourite from these four&#8230; but, I do find myself dislike DxO Optics&#8217; version the least.</p>



<h3 class="wp-block-heading">The Valley</h3>



<p>A slightly higher quality landscape photo, than the touristy happy-snap style represented previously. &nbsp;This one&#8217;s exposed correctly, has a decent subject and framing, and is at base ISO with a high shutter speed, so detail&nbsp;<em>should</em> be good, but possibly hampered by the great subject distance.</p>


<style type="text/css">
#foogallery-gallery-6158 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6158" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6159" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9818-Aperture-3.6-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6160" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9818-Capture-One-9-Pro-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6161" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9818-DxO-Optics-10-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6162" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9818-Lightroom-CC-2015.3-1.webp" width="1024" height="683" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>Not a big difference between the four. &nbsp;DxO Optics&#8217; rendition stands out the most, as being brighter overall &#8211; mainly due to it lifting the shadows most. &nbsp;It&#8217;s also done a good job with overall contrast &#8211; producing properly white clouds without losing any detail, and presenting pleasing global contrast despite the lifted shadows. &nbsp;It also has&nbsp;notably more detail than the others&#8217;.</p>



<p>Capture One&#8217;s rendition has stronger colours, though you&#8217;d be forgiven for not noticing immediately. &nbsp;If you compare it closely with Aperture&#8217;s, though, it makes Aperture&#8217;s rendition look a bit gloomy.</p>



<p>DxO Optics has also corrected for geometric distortion in the lens, though again the effect is subtle and might be missed, and doesn&#8217;t really affect the photo&#8217;s aesthetics.</p>



<p>Lightroom&#8217;s rendition is the flattest, and least pleasing to my eye. &nbsp;Though Aperture&#8217;s slightly under-exposed rendition is a bit dark and unattractive too.</p>


<style type="text/css">
#foogallery-gallery-6163 .fg-image { width: 1024px; }</style>
			<div class="foogallery foogallery-container foogallery-image-viewer foogallery-link-none foogallery-lightbox-foogallery fg-center fg-image-viewer fg-ready fg-light fg-round-large fg-shadow-outline fg-shadow-inset-large fg-loading-default fg-caption-always fg-hover-instant fg-transparent-overlays fg-c-c" id="foogallery-gallery-6163" data-foogallery="{&quot;item&quot;:{&quot;showCaptionTitle&quot;:true,&quot;showCaptionDescription&quot;:false},&quot;lazy&quot;:true,&quot;template&quot;:{&quot;loop&quot;:true}}" style="--fg-title-line-clamp: 0; --fg-description-line-clamp: 0;" >
	<div class="fiv-inner">
		<div class="fiv-inner-container">
			<div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Aperture 3.6" data-attachment-id="6164" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9818-Aperture-3.6.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Aperture 3.6</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Capture One 9 Pro" data-attachment-id="6174" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9818-Capture-One-9-Pro.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Capture One 9 Pro</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="DxO Optics 10" data-attachment-id="6175" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9818-DxO-Optics-10.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">DxO Optics 10</div></div></figcaption></figure><div class="fg-loader"></div></div><div class="fg-item fg-type-image fg-idle"><figure class="fg-item-inner"><a data-caption-title="Lightroom CC 2015.3" data-attachment-id="6176" data-type="image" class="fg-thumb"><span class="fg-image-wrap"><img decoding="async" src="https://wadetregaskis.com/wp-content/uploads/2023/11/DSC9818-Lightroom-CC-2015.3.webp" width="1024" height="1024" class="skip-lazy fg-image" loading="eager"></span><span class="fg-image-overlay"></span></a><figcaption class="fg-caption"><div class="fg-caption-inner"><div class="fg-caption-title">Lightroom CC 2015.3</div></div></figcaption></figure><div class="fg-loader"></div></div>		</div>
		<div class="fiv-ctrls">
			<button type="button" class="fiv-prev" title="Prev"><span>Prev</span></button>
			<label class="fiv-count"><span class="fiv-count-current">1</span>of<span class="fiv-count-total">4</span></label>
			<button type="button" class="fiv-next" title="Next"><span>Next</span></button>
		</div>
	</div>
</div>


<p>DxO Optics has brought out the most fine detail, though in doing so it&#8217;s produced an over-processed appearance. &nbsp;Capture One does a better job of bringing out detail which, while not quite as crisp, is much more natural looking. &nbsp;In any case, the difference between them appears to be just the strength of their sharpening &#8211; actual level of detail is the same.</p>



<p>DxO Optics&#8217; rendition of the slightly out-of-focus foreground rocks is quite good, however. &nbsp;The extra contrast it&#8217;s applied has benefited it significantly, in addition to the stronger sharpening working well in this case.</p>



<p>Aperture &amp; Lightroom, as per usual, bring out significantly less detail, though in this particular case Lightroom has done a better job than Aperture. &nbsp;In the face of the Capture One &amp; DxO Optics versions, though, you might not notice the difference.</p>



<h4 class="wp-block-heading">Judgement</h4>



<p>Capture One wins this round. &nbsp;It has nice colour, and relatively pleasingly-rendered fine detail.</p>



<p>DxO Optics comes in a not-distant second with nicely lifted shadows and good detail, albeit at the expense of appearing over-sharpened when you look too close.</p>



<p>Aperture&nbsp;and Lightroom share last place. &nbsp;Aperture has a nicer rendition w.r.t. contrast if not colour too, but Lightroom has brought out slightly more detail.</p>



<h1 class="wp-block-heading">Methodology</h1>



<p>The basic process was:</p>



<ol class="wp-block-list">
<li>For each contender:
<ol class="wp-block-list">
<li>Import the original ten NEFs&nbsp;into it.</li>



<li>Tell it to export the &#8216;processed&#8217; versions by whatever process each app has (e.g. in Aperture it&#8217;s &#8220;Export Versions…&#8221;, in Capture One it&#8217;s &#8220;Process&#8221;, etc). &nbsp;Export as an 8-bit TIFF in AdobeRGB (1998) colour space.</li>
</ol>
</li>



<li>Run a simple batch process in Photoshop or GraphicConverter to open each TIFF, scale it to 1024 on its longest side, and then save as an 8-bit TIFF again.</li>



<li>For each image, identify an appropriate 1024&#215;1024 crop and use GraphicConverter&#8217;s batch processing capabilities to open each of the original TIFFs, crop to that area, and then save again as a TIFF.</li>



<li>Run another batch process in GraphicConverter to combine each set of four 1024&#215;1024 TIFFs (both sets &#8211; the scaled down and the cropped versions) into a single TIFF, for the 2 x 2 or &#8220;four-up&#8221; views.</li>



<li>Batch convert all those TIFFs into JPEG2000 format (lossless) for web display.<br><br><em>Note</em>:  many years later, in 2023, I replaced the images on this page with WebP versions (also lossless).  This increased their size slightly (WebP isn&#8217;t as efficient as JPEG2000) but meant that virtually all modern browsers can show the images, rather than basically just Safari.</li>



<li>Run a full calibration using a ColorMunki Display (with default settings).</li>



<li>Compare all those JPEG2000s or TIFFs on a 27&#8243; 2011 iMac.</li>
</ol>



<p>And that&#8217;s it. &nbsp;Pretty simple, but time consuming for the various stages of conversion.</p>



<p>I started doing the batch processing with Photoshop, but it was glacially slow and difficult to use, so I switched to GraphicConverter midway through. &nbsp;File sizes and metadata might differ, but there should be no difference in the actual visual results&nbsp;as both have proper colour profile support (with no conversions being performed) and the image formats in question are all lossless.</p>



<h2 class="wp-block-heading">Why look at only a 1024 x 1024 section for 100% viewing?</h2>



<p>Because I didn&#8217;t want to have to scrutinise each photo so intently &#8211; as it was I spent hours comparing the final results, in order to make my notes &amp; judgements.</p>



<h2 class="wp-block-heading">Why AdobeRGB (1998)?</h2>



<p>It&#8217;s the colour space I work in and export my images in. &nbsp;Even amongst those that export in sRGB or similar, more limited colour spaces, most are working in AdobeRGB during editing (whether they realise it or not).</p>



<p>I briefly considered other options, like ProPhoto RGB, but aside from the fact that I use AdobeRGB today, with no plans to change, AdobeRGB (1998) appears to be the highest common standard amongst these four contenders. &nbsp;And I strongly wished to avoid using an external converter, as&nbsp;that introduces room for favouritism (colour space conversion is surprisingly complicated, and conversions from different origin spaces to the same destination might introduce unintended differences). &nbsp;It&#8217;s also unrealistic, as I expect the vast majority of people don&#8217;t perform an external colour conversion or adjustment step.</p>



<h2 class="wp-block-heading">Why not&nbsp;use DxO Optics&#8217; &#8220;PRIME&#8221; noise reduction?</h2>



<p>Three&nbsp;reasons:</p>



<ol class="wp-block-list">
<li>It&#8217;s not enabled by default, and is virtually impossible to adjust using only the tiny little preview window they give you.</li>



<li>It takes a&nbsp;<em>really</em> long time to render the output images. &nbsp;This compounds&nbsp;the only workaround available to&nbsp;problem #1, above, which is&nbsp;to actually export the image over and over again in order to narrow in on decent settings.</li>



<li>Frankly, in the brief tests I&#8217;ve run, it doesn&#8217;t actually perform better than the default noise reduction algorithm in DxO Optics. &nbsp;In fact, for one of my images it did noticeably worse &#8211; removing no more noise but killing significant detail.</li>
</ol>



<h2 class="wp-block-heading">Why not turn off DxO Optics&#8217; geometric distortion correction?</h2>



<p>Because it&#8217;s on by default. &nbsp;The same question could be asked of any and all the other options each contender offers. &nbsp;Granted the distortion correction seemed to have a relatively pronounced effect on DxO Optics&#8217; output, but that&#8217;s what it feels is the best trade-off, clearly, and some people may find it a valuable feature, so I don&#8217;t want to discount it.</p>



<h2 class="wp-block-heading">Why an old iMac?</h2>



<p>Because Apple haven&#8217;t released a newer model compelling enough for me to upgrade.</p>



<p>I would have&nbsp;<em>preferred</em> to perform the test on a &#8216;Retina&#8217; display, but I had to work with what I have. &nbsp;I do intend to revisit the images on some other devices &#8211; including mobile devices like an iPad &#8211; to see if there&#8217;s a meaningful difference in appearance.</p>



<h2 class="wp-block-heading">Why lossless compression?</h2>



<p>The files are quite big, despite being compressed with WebP, the most efficient lossless format broadly available across browsers in 2023.  They could be made <em>much</em> smaller with lossy compression, but then you wouldn&#8217;t know how much of what you&#8217;re seeing is the actual raw converter&#8217;s doing and how much is compression artefacts.</p>



<h2 class="wp-block-heading">Why WebP?</h2>



<p>I also tested JPEG2000, AVIF, PNG, and TIFF &#8211; and originally offered versions in all of these except AVIF, for browser compatibility purposes.</p>



<p>JPEG2000 compresses best &#8211; slightly but consistently better than the next best, WebP &#8211; but is basically only supported in Safari.</p>



<p>AVIF surprisingly performs universally worse than WebP and JPEG2000 for <em>lossless</em> compression (it tends to do better for <em>lossy</em> compression).</p>



<p>PNG was a pretty distant 4th place, followed by an even more distant TIFF in last.  This is expected &#8211; PNG is pretty good for low detail images, especially artificial things like screenshots or simple digital drawings, but quite bad for everything else.  TIFF is barely compressed at all (arguably part of its nature as a format which prioritises ease &amp; speed of <em>local</em> use on computers that are presumed to have fast storage and lots of RAM).</p>



<p>I switched to WebP and deleted all the others, in 2023, in order to save space &#8211; all those lossless-quality files in the varied formats were taking up gigabytes of space on my web server!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/raw-converter-comparison/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			<media:content url="https://wadetregaskis.com/wp-content/uploads/2016/01/DSC8433-100-clippings.webp" medium="image" />
<post-id xmlns="com-wordpress:feed-additions:1">3086</post-id>	</item>
		<item>
		<title>Do Nikon teleconverters work on the Sigma 105 macro?</title>
		<link>https://wadetregaskis.com/do-nikon-teleconverters-work-on-the-sigma-105-macro/</link>
					<comments>https://wadetregaskis.com/do-nikon-teleconverters-work-on-the-sigma-105-macro/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Wed, 29 Oct 2014 12:50:20 +0000</pubDate>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Snafu]]></category>
		<category><![CDATA[Tested]]></category>
		<category><![CDATA[Undocumented]]></category>
		<guid isPermaLink="false">http://blog.wadetregaskis.com/?p=3004</guid>

					<description><![CDATA[In a word:  no.  And not just &#8220;they&#8217;re unsupported&#8221;, or that they have optical issues &#8211; they physically will not connect.  They are deliberately keyed to be incompatible.  Nikon teleconverters have a protrusion on their lens mount, which prevents any &#8216;standard&#8217; Nikon-mount lens from attaching, unless that lens is missing a particular obstruction on the rear&#8230; <a class="read-more-link" href="https://wadetregaskis.com/do-nikon-teleconverters-work-on-the-sigma-105-macro/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[<p>In a word:  no.  And not just &#8220;they&#8217;re unsupported&#8221;, or that they have optical issues &#8211; they physically will not connect.  They are deliberately keyed to be incompatible.  Nikon teleconverters have a protrusion on their lens mount, which prevents any &#8216;standard&#8217; Nikon-mount lens from attaching, unless that lens is <em>missing</em> a particular obstruction on the rear mount.</p>
<p>This is not unique to the Sigma 105, by any means.  Nikon&#8217;s own 70-300, for example, has the exact same obstruction and also will not mount to any Nikon teleconverter (or at least, not any of the current models, of the 1.4x, 1.7x or 2x).</p>
<p>This is very disappointing, and an odd decision by Sigma &#8211; it was they, after all, who deliberately included the obstruction on the rear mount.  The teleconverters would mount just fine otherwise &#8211; there is just enough clearance to the rear element.</p>
<p>In contrast, Nikon&#8217;s competing 105 macro <em>doesn&#8217;t</em> have the obstruction on the mount, apparently, as it&#8217;s listed by Nikon as officially supporting use with Nikon teleconverters.  [I have not personally verified this]</p>
<p>I have heard, though haven&#8217;t verified first-hand, that the Sigma teleconverters do not have the same protrusion, and so will happily mount to any lens on which they fit (i.e. where their front element doesn&#8217;t collide with the rear element of the lens).</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/do-nikon-teleconverters-work-on-the-sigma-105-macro/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3004</post-id>	</item>
		<item>
		<title>Thoughts on the Nikon 600 f/4D ED-IF on a D7100</title>
		<link>https://wadetregaskis.com/thoughts-on-the-nikon-600-f4d-ed-if-on-a-d7100/</link>
					<comments>https://wadetregaskis.com/thoughts-on-the-nikon-600-f4d-ed-if-on-a-d7100/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Wed, 29 Oct 2014 04:27:59 +0000</pubDate>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Tested]]></category>
		<guid isPermaLink="false">http://blog.wadetregaskis.com/?p=2997</guid>

					<description><![CDATA[Soft wide open.  Likes to make everything glow like you&#8217;re on the set of The Bold and the Beautiful. Never particularly sharp even when stopped down. Over-exposes by exactly one stop when stopped down by one stop (i.e. to f/5.6) or more. Note that the AF-S 200-400 VR also does exactly the same thing.  I&#8217;m currently&#8230; <a class="read-more-link" href="https://wadetregaskis.com/thoughts-on-the-nikon-600-f4d-ed-if-on-a-d7100/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[<ul>
<li>Soft wide open.  Likes to make everything glow like you&#8217;re on the set of The Bold and the Beautiful.</li>
<li>Never particularly sharp even when stopped down.</li>
<li>Over-exposes by exactly one stop when stopped down by one stop (i.e. to f/5.6) or more.
<ul>
<li>Note that the AF-S 200-400 VR also does exactly the same thing.  I&#8217;m currently talking to Nikon to try to get to the bottom of this.</li>
</ul>
</li>
<li>Strangely milky when stopped down.</li>
<li>Sluggish autofocus.</li>
<li>Horribly inaccurate (mainly re. consistency) autofocus.</li>
<li>Autofocus is easily confused by even the faintest obstruction, anywhere in the frame.</li>
<li>Very strong field curvature.</li>
<li>Not as heavy as I expected.  Still very heavy though, make no mistake.</li>
<li>Sorely missing VR.</li>
<li>Bokeh is nice, but not as magical as I&#8217;d expect.</li>
<li>Poor resistance to lens flare.</li>
<li>Doesn&#8217;t work with modern teleconverters (e.g. the 1.4x TCIII &#8211; camera body insists it&#8217;s error &#8220;FEE&#8221;, despite the aperture ring being correctly locked at f/22).</li>
</ul>
<p>My point of comparison is primarily the Nikon AF-S 80-400 VR.  That&#8217;s my go-to lens for most things, and certainly the things you&#8217;d use a 600 for.</p>
<p>In a nutshell, not nearly worth what it costs, even second hand and decades old.  I was surprised.  I assume the more modern models, particularly the current VR one, are massively better.</p>
<p>At a quick glance (I haven&#8217;t gone through all my test photos yet) the new Tamron 150-600 F/5-6.3 Di VC USD appears about as sharp wide open as does this Nikon 600/4.  At equivalent apertures (e.g. both at f/6.3, or f/7.1) it&#8217;s a little harder to judge&#8230; in part because the Tamron has:</p>
<ul>
<li>VC (VR in Nikon parlance).</li>
<li>Much more reliable and accurate autofocus.</li>
<li><em>Way</em> less mass, and that makes it easier to get the shot to begin with.  You can fairly easily hand-hold the Tamron, for example, while with the Nikon 600/4 it&#8217;s unreasonable to do so for more than ten seconds at a time.  Even on a monopod the 600/4 is unwieldy, and I missed a lot of shots just struggling to get it into position and held steady.</li>
</ul>
<p>Which altogether mean that you get <i>many</i> times more keeper photos with the Tamron than the Nikon, even if maybe the Nikon is <em>maybe</em> very slightly sharper at f/6.3.  If you&#8217;re shooting wildlife, as I am, you&#8217;ll take a reliable, sharp-but-not-pixel-perfect-sharp option over a slightly sharper but unreliable one, any day.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/thoughts-on-the-nikon-600-f4d-ed-if-on-a-d7100/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2997</post-id>	</item>
		<item>
		<title>Df burst rates varying by card</title>
		<link>https://wadetregaskis.com/df-burst-rates-varying-by-card/</link>
					<comments>https://wadetregaskis.com/df-burst-rates-varying-by-card/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Wed, 06 Aug 2014 05:56:58 +0000</pubDate>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Tested]]></category>
		<guid isPermaLink="false">http://blog.wadetregaskis.com/?p=2940</guid>

					<description><![CDATA[The&#160;contenders I chose not to test as many cards as last time, when I tested the D7100. &#160;Partly because I hope that anyone spending the money on a Nikon Df is using a good quality card to go with it, and partly because the initial results made it fairly clear that performance correlates between the&#8230; <a class="read-more-link" href="https://wadetregaskis.com/df-burst-rates-varying-by-card/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">The&nbsp;contenders</h2>



<ul class="wp-block-list">
<li><a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=JDLLWK5DSRQYB27Y" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Pro 95 MB/s 32 GiB</a></li>



<li><a href="https://www.amazon.com/gp/product/B00DN43UHU/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00DN43UHU&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=VIIEHHVFUIUARNKI" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Plus 80 MB/s 32 GiB</a></li>



<li><a href="https://www.amazon.com/gp/product/B00BBE0GFI/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00BBE0GFI&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=PJYSGI27UO2D5IIM" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme 45 MB/s 16 GiB</a></li>



<li><a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a></li>
</ul>



<p>I chose not to test as many cards as <a title="D7100 burst rates varying by SD card" href="https://wadetregaskis.com/d7100-burst-rates-varying-by-sd-card/" data-wpel-link="internal">last time, when I tested the D7100</a>. &nbsp;Partly because I hope that anyone spending the money on a <a href="https://www.amazon.com/gp/product/B00GD1KCAI/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00GD1KCAI&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=DMQM7SU7NLRHOUPR" data-wpel-link="external" target="_blank" rel="external noopener">Nikon Df</a> is using a good quality card to go with it, and partly because the initial results made it fairly clear that performance correlates between the cameras pretty well. &nbsp;Also, the Df was generously on loan to me so I had to be selective about how I used my time with it.</p>



<h2 class="wp-block-heading">Test setup</h2>



<p>Same test setup &amp; method&nbsp;as before, in the <a href="https://www.amazon.com/gp/product/B00F5E3N46/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00F5E3N46&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=MH3LWTROFGKKWHPH" data-wpel-link="external" target="_blank" rel="external noopener">Nikon D7100</a> test. &nbsp;The only difference is that picture area was set to FX, not DX.</p>



<p>At ISO 100 the average file size was&nbsp;right on 19.8 MiB. &nbsp;That rose to 25.6 MiB at ISO 800, and then to 27.4 MiB at ISO 6,400.</p>



<h2 class="wp-block-heading">The results</h2>



<h3 class="wp-block-heading">ISO 100</h3>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1439" height="236" src="https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Pro-95-MBs-32-GiB.png" alt="" class="wp-image-2950" srcset="https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Pro-95-MBs-32-GiB.png 1439w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Pro-95-MBs-32-GiB-1024x168.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Pro-95-MBs-32-GiB-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Pro-95-MBs-32-GiB-256x42@2x.png 512w" sizes="auto, (max-width: 1439px) 100vw, 1439px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1434" height="236" src="https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100.png" alt="" class="wp-image-2947" srcset="https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100.png 1434w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100-256x42@2x.png 512w" sizes="auto, (max-width: 1434px) 100vw, 1434px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1431" height="236" src="https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100.png" alt="" class="wp-image-2944" srcset="https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100.png 1431w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100-256x42@2x.png 512w" sizes="auto, (max-width: 1431px) 100vw, 1431px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1431" height="236" src="https://wadetregaskis.com/wp-content/uploads/2014/08/Lexar-Professional-600x-128-GiB-@-ISO-100.png" alt="" class="wp-image-2941" srcset="https://wadetregaskis.com/wp-content/uploads/2014/08/Lexar-Professional-600x-128-GiB-@-ISO-100.png 1431w, https://wadetregaskis.com/wp-content/uploads/2014/08/Lexar-Professional-600x-128-GiB-@-ISO-100-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/08/Lexar-Professional-600x-128-GiB-@-ISO-100-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/08/Lexar-Professional-600x-128-GiB-@-ISO-100-256x42@2x.png 512w" sizes="auto, (max-width: 1431px) 100vw, 1431px" /></figure>



<h4 class="wp-block-heading">Points of interest</h4>



<ul class="wp-block-list">
<li>Look at that big sexy buffer! &nbsp;My D7100 is having severe performance anxiety after seeing this.</li>



<li>More seriously, note how consistent the shots are when initially buffer-bound. &nbsp;Much more consistent than the D7100. &nbsp;There&#8217;s no reason for the D7100 to drop frames and stutter when there&#8217;s buffer space available &#8211; and the <a href="https://www.amazon.com/gp/product/B00GD1KCAI/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00GD1KCAI&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=DMQM7SU7NLRHOUPR" data-wpel-link="external" target="_blank" rel="external noopener">Nikon Df</a> proves it.</li>



<li>The <a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=JDLLWK5DSRQYB27Y" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Pro 95 MB/s 32 GiB</a> takes the crown for average speed, by a noticeable margin&nbsp;&#8211; it gets 31 shots at&nbsp;full speed and then ~2.3 FPS&nbsp;after filling the buffer, vs the ~29 to&nbsp;~1.9 FPS of its younger&nbsp;sibling the <a href="https://www.amazon.com/gp/product/B00DN43UHU/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00DN43UHU&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=VIIEHHVFUIUARNKI" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Plus 80 MB/s 32 GiB</a>&nbsp;and&nbsp;the <a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a>.</li>



<li>Props to the <a href="https://www.amazon.com/gp/product/B00BBE0GFI/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00BBE0GFI&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=PJYSGI27UO2D5IIM" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme 45 MB/s 16 GiB</a> for consistently pulling ~27 +&nbsp;~1.7 FPS. &nbsp;When you consider its reliability in contrast to the Lexar&#8217;s unreliability, and the fairly small margin between the two in performance, it&#8217;s surprisingly competitive.</li>



<li>Note the inconsistency of&nbsp;the&nbsp;<a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a>. &nbsp;I double-checked my data on this to be absolutely certain, and it&#8217;s no mistake &#8211; it really does have these very noticeable glitches. &nbsp;(I also noticed these, audibly, when recording the shots &#8211; it&#8217;s quite&nbsp;obvious when it suddenly stops taking photos for a good second or so)</li>
</ul>



<h3 class="wp-block-heading">ISO 800</h3>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1431" height="236" src="https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-800.png" alt="" class="wp-image-2951" srcset="https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-800.png 1431w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-800-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-800-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-800-256x42@2x.png 512w" sizes="auto, (max-width: 1431px) 100vw, 1431px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1431" height="236" src="https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-800.png" alt="" class="wp-image-2948" srcset="https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-800.png 1431w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-800-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-800-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-800-256x42@2x.png 512w" sizes="auto, (max-width: 1431px) 100vw, 1431px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1431" height="236" src="https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-800.png" alt="" class="wp-image-2945" srcset="https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-800.png 1431w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-800-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-800-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-800-256x42@2x.png 512w" sizes="auto, (max-width: 1431px) 100vw, 1431px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1431" height="236" src="https://wadetregaskis.com/wp-content/uploads/2014/08/Lexar-Professional-600x-128-GiB-@-ISO-800.png" alt="" class="wp-image-2942" srcset="https://wadetregaskis.com/wp-content/uploads/2014/08/Lexar-Professional-600x-128-GiB-@-ISO-800.png 1431w, https://wadetregaskis.com/wp-content/uploads/2014/08/Lexar-Professional-600x-128-GiB-@-ISO-800-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/08/Lexar-Professional-600x-128-GiB-@-ISO-800-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/08/Lexar-Professional-600x-128-GiB-@-ISO-800-256x42@2x.png 512w" sizes="auto, (max-width: 1431px) 100vw, 1431px" /></figure>



<h4 class="wp-block-heading">Points of interest</h4>



<ul class="wp-block-list">
<li>More inconsistency from the <a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a>. :S</li>



<li>Overall things slow down a bit, and pretty consistently across all the&nbsp;cards, by a little over 10%. &nbsp;The <a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a> appears to slow down relatively little, at just under 10%, but I suspect that&#8217;s because it simply didn&#8217;t happen to stutter as much in the ISO 800 runs.</li>



<li>The <a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a>&nbsp;<em>just</em> edges out of the <a href="https://www.amazon.com/gp/product/B00DN43UHU/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00DN43UHU&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=VIIEHHVFUIUARNKI" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Plus 80 MB/s 32 GiB</a> for average shot rate, at ~27 to ~1.5 vs ~27 to ~1.4. &nbsp;But only sometimes, due to its problematic stutter.</li>
</ul>



<h3 class="wp-block-heading">ISO 6,400</h3>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1426" height="236" src="https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-6400.png" alt="" class="wp-image-2952" srcset="https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-6400.png 1426w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-6400-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-6400-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-6400-256x42@2x.png 512w" sizes="auto, (max-width: 1426px) 100vw, 1426px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1429" height="236" src="https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-6400.png" alt="" class="wp-image-2949" srcset="https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-6400.png 1429w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-6400-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-6400-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-6400-256x42@2x.png 512w" sizes="auto, (max-width: 1429px) 100vw, 1429px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1422" height="236" src="https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-6400.png" alt="" class="wp-image-2946" srcset="https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-6400.png 1422w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-6400-1024x170.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-6400-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/08/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-6400-256x42@2x.png 512w" sizes="auto, (max-width: 1422px) 100vw, 1422px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1426" height="236" src="https://wadetregaskis.com/wp-content/uploads/2014/08/Lexar-Professional-600x-128-GiB-@-ISO-6400.png" alt="" class="wp-image-2943" srcset="https://wadetregaskis.com/wp-content/uploads/2014/08/Lexar-Professional-600x-128-GiB-@-ISO-6400.png 1426w, https://wadetregaskis.com/wp-content/uploads/2014/08/Lexar-Professional-600x-128-GiB-@-ISO-6400-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/08/Lexar-Professional-600x-128-GiB-@-ISO-6400-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/08/Lexar-Professional-600x-128-GiB-@-ISO-6400-256x42@2x.png 512w" sizes="auto, (max-width: 1426px) 100vw, 1426px" /></figure>



<h4 class="wp-block-heading">Points of interest</h4>



<ul class="wp-block-list">
<li>Generally&nbsp;similar to ISO 800 &#8211; unsurprising given the mere ~7% increase in file size. &nbsp;The&nbsp;<a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a>&nbsp;continues its stuttering, while the <a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=JDLLWK5DSRQYB27Y" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Pro 95 MB/s 32 GiB</a>&nbsp;continues to confidently dominate.</li>



<li>About the only interesting change is that the <a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a> no longer provides an increase in effective buffer capacity over the <a href="https://www.amazon.com/gp/product/B00DN43UHU/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00DN43UHU&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=VIIEHHVFUIUARNKI" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Plus 80 MB/s 32 GiB</a> and <a href="https://www.amazon.com/gp/product/B00BBE0GFI/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00BBE0GFI&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=PJYSGI27UO2D5IIM" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme 45 MB/s 16 GiB</a>. &nbsp;Though it does still provide a higher shooting rate after the buffer fills.</li>
</ul>



<h2 class="wp-block-heading">Compared to the D7100</h2>



<p>Here I&#8217;ve re-scaled the <a href="https://www.amazon.com/gp/product/B00GD1KCAI/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00GD1KCAI&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=DMQM7SU7NLRHOUPR" data-wpel-link="external" target="_blank" rel="external noopener">Nikon Df</a>&#8216;s results to the first 10 seconds of shooting, to match the D7100&#8217;s. &nbsp;It also gives a better impression of just how much bigger the Df&#8217;s buffer is.</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="1431" height="236" src="https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-100.png" alt="" class="wp-image-6044" style="width:1120px;height:auto" srcset="https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-100.png 1431w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-100-512x84@2x.png 1024w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-100-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-100-512x84.png 512w" sizes="auto, (max-width: 1431px) 100vw, 1431px" /></figure>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="1431" height="236" src="https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-100.png" alt="" class="wp-image-6046" style="width:1120px;height:auto" srcset="https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-100.png 1431w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-100-512x84@2x.png 1024w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-100-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-100-512x84.png 512w" sizes="auto, (max-width: 1431px) 100vw, 1431px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1432" height="236" src="https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100.png" alt="" class="wp-image-6048" srcset="https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100.png 1432w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100-512x84@2x.png 1024w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100-512x84.png 512w" sizes="auto, (max-width: 1432px) 100vw, 1432px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1430" height="236" src="https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100.png" alt="" class="wp-image-6049" srcset="https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100.png 1430w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100-512x84@2x.png 1024w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100-512x84.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1431" height="236" src="https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100.png" alt="" class="wp-image-6050" srcset="https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100.png 1431w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100-512x84@2x.png 1024w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100-512x84.png 512w" sizes="auto, (max-width: 1431px) 100vw, 1431px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1428" height="236" src="https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100.png" alt="" class="wp-image-6051" srcset="https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100.png 1428w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100-512x85@2x.png 1024w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100-512x85.png 512w" sizes="auto, (max-width: 1428px) 100vw, 1428px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1431" height="236" src="https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-Lexar-Professional-600x-128-GiB-@-ISO-100.png" alt="" class="wp-image-6052" srcset="https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-Lexar-Professional-600x-128-GiB-@-ISO-100.png 1431w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-Lexar-Professional-600x-128-GiB-@-ISO-100-512x84@2x.png 1024w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-Lexar-Professional-600x-128-GiB-@-ISO-100-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-Df-with-Lexar-Professional-600x-128-GiB-@-ISO-100-512x84.png 512w" sizes="auto, (max-width: 1431px) 100vw, 1431px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1430" height="236" src="https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-Lexar-Professional-600x-128-GiB-@-ISO-100.png" alt="" class="wp-image-6053" srcset="https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-Lexar-Professional-600x-128-GiB-@-ISO-100.png 1430w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-Lexar-Professional-600x-128-GiB-@-ISO-100-512x84@2x.png 1024w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-Lexar-Professional-600x-128-GiB-@-ISO-100-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2023/11/Nikon-D7100-with-Lexar-Professional-600x-128-GiB-@-ISO-100-512x84.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></figure>



<h4 class="wp-block-heading">Points of interest</h4>



<ul class="wp-block-list">
<li>There&#8217;s a&nbsp;<em>much</em> bigger difference on the <a href="https://www.amazon.com/gp/product/B00F5E3N46/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00F5E3N46&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=MH3LWTROFGKKWHPH" data-wpel-link="external" target="_blank" rel="external noopener">Nikon D7100</a> between the <a href="https://www.amazon.com/gp/product/B00BBE0GFI/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00BBE0GFI&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=PJYSGI27UO2D5IIM" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme 45 MB/s 16 GiB</a> and the other three cards, than on the <a href="https://www.amazon.com/gp/product/B00GD1KCAI/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00GD1KCAI&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=DMQM7SU7NLRHOUPR" data-wpel-link="external" target="_blank" rel="external noopener">Nikon Df</a>. &nbsp;This suggests that either the Df is better at utilising slower cards, or &#8211; and I think this is in fact the case &#8211; simply less demanding and less&nbsp;<em>able</em> to utilise&nbsp;<em>faster</em> cards.<br><br>With the <a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=JDLLWK5DSRQYB27Y" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Pro 95 MB/s 32 GiB</a> the Df&#8217;s write rate is right about 46 MB/s, whereas the D7100&#8217;s is ~56 MB/s. &nbsp;It&nbsp;<em>appears</em> that the Df is limited to ~46 MB/s. &nbsp;I posit that the Df supports only UHS-I SDR50 or DDR50 &#8211;&nbsp;either way&nbsp;providing a theoretical bandwidth of 50 MB/s &#8211; whereas the D7100 supports UHS-I SDR104 &#8211; providing a theoretical bandwidth of 104 MB/s.<br><br>I believe the reason the Nikon D7100 doesn&#8217;t achieve 104 MB/s is because it&#8217;s actually limited by the card &#8211; a faster SD card should yield ~3 FPS, in theory (vs the ~1.9 FPS it achieves with the <a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=JDLLWK5DSRQYB27Y" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Pro 95 MB/s 32 GiB</a>). &nbsp;I guess now I&#8217;ll have to find such a beast&#8230; &nbsp;in theory something like the <a href="https://www.amazon.com/gp/product/B00KBX9L4C/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00KBX9L4C&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=REWQABEF223D6D7S" data-wpel-link="external" target="_blank" rel="external noopener">Transcend R95 MB/s W85 MB/s 64 GiB</a> fits the profile. &nbsp;I might have to acquire one for testing&#8230;</li>



<li>The D7100 is &#8220;losing&#8221; in FPS only because its files are bigger. &nbsp;If you shoot in 1.3x crop mode you get ~15.4 MP, comparable to the <a href="https://www.amazon.com/gp/product/B00GD1KCAI/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00GD1KCAI&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=DMQM7SU7NLRHOUPR" data-wpel-link="external" target="_blank" rel="external noopener">Nikon Df</a>&#8216;s 16 MP, and thus presumably similar file sizes. &nbsp;I expect you&#8217;d then get noticeably higher frame rates from the D7100 than the Df. &nbsp;I may now go test the D7100 doing exactly that&#8230;</li>
</ul>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Unlike the <a href="https://www.amazon.com/gp/product/B00F5E3N46/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00F5E3N46&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=MH3LWTROFGKKWHPH" data-wpel-link="external" target="_blank" rel="external noopener">Nikon D7100</a>, this is viably a four-horse race. &nbsp;Because the <a href="https://www.amazon.com/gp/product/B00GD1KCAI/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00GD1KCAI&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=DMQM7SU7NLRHOUPR" data-wpel-link="external" target="_blank" rel="external noopener">Nikon Df</a> seems limited by a slower SD card interface,&nbsp;you don&#8217;t see nearly as much benefit from the fastest cards. &nbsp;This makes it an interesting value proposition &#8211; the Extreme Pro 95 MB/s&#8217;s typically retail for about twice the price (per GiB) of the Extreme 45 MB/s&#8217;s,&nbsp;yet on the Df give you only one extra shot every two seconds (or four extra shots &#8220;in the buffer&#8221; before slowing down). &nbsp;i.e. a ~20% performance increase&nbsp;for a ~100% price increase.</p>



<p>Likewise the <a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a> seems slightly hampered. &nbsp;It can&#8217;t quite get ahead of the <a href="https://www.amazon.com/gp/product/B00DN43UHU/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00DN43UHU&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=VIIEHHVFUIUARNKI" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Plus 80 MB/s 32 GiB</a> like it does on the D7100, so it loses that counter-balance to&nbsp;its unreliability. &nbsp;It does still have a non-trivial price difference in its favour, however.</p>



<p>Consequently, my ranking of the four cards is slightly different to that for the D7100. &nbsp;The <a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=JDLLWK5DSRQYB27Y" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Pro 95 MB/s 32 GiB</a> unsurprisingly takes first place, again, but this time its&nbsp;little brother the <a href="https://www.amazon.com/gp/product/B00DN43UHU/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00DN43UHU&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=VIIEHHVFUIUARNKI" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Plus 80 MB/s 32 GiB</a> comes in a respectable&nbsp;second &#8211; the <a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a>&nbsp;concedes the position and falls&nbsp;back to third place. &nbsp;Leaving, as before,&nbsp;the <a href="https://www.amazon.com/gp/product/B00BBE0GFI/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00BBE0GFI&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=PJYSGI27UO2D5IIM" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme 45 MB/s 16 GiB</a>&nbsp;in fourth place. &nbsp;But feeling like a bit more of a viable contender than it did in the D7100.</p>



<p>It does beg the question, however: &nbsp;how slow can you go? &nbsp;Would the SanDisk Ultra now actually be attractive? &nbsp;I regret not testing it in the Df, in hindsight, because it&#8217;d probably put in a&nbsp;<em>relatively</em> good showing. &nbsp;But I&#8217;m confident in saying it&#8217;s still a noticeably slower card, and I see no reason why its horrible lack of reliability would be in any way improved in the Df, so I continue to recommend&nbsp;<em>against</em> the SanDisk Ultras, and any like&nbsp;&#8220;no-name-brand&#8221; or so-called &#8220;budget&#8221; SD cards.</p>



<p>My final rank, based primarily on performance and reliability:</p>



<ul class="wp-block-list">
<li><strong><span style="color: #ffcc00;">A+</span></strong>&nbsp;<a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=JDLLWK5DSRQYB27Y" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Pro 95 MB/s 32 GiB</a></li>



<li><strong><span style="color: #ffff00;">A</span></strong> &nbsp; &nbsp;<a href="https://www.amazon.com/gp/product/B00DN43UHU/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00DN43UHU&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=VIIEHHVFUIUARNKI" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Plus 80 MB/s 32 GiB</a></li>



<li><strong><span style="color: #ffff00;">A</span>&nbsp;</strong>&nbsp; &nbsp;<a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a></li>



<li><strong><span style="color: #00ff00;">B</span></strong> &nbsp; &nbsp;<a href="https://www.amazon.com/gp/product/B00BBE0GFI/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00BBE0GFI&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=PJYSGI27UO2D5IIM" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme 45 MB/s 16 GiB</a></li>
</ul>



<h3 class="wp-block-heading">See also</h3>



<ul class="wp-block-list">
<li><a title="D7100 burst rates varying by SD card" href="https://wadetregaskis.com/d7100-burst-rates-varying-by-sd-card/" data-wpel-link="internal">My earlier evaluation of these exact same cards (plus others) in the D7100</a>.</li>



<li><a href="https://web.archive.org/web/20140808225810/https://thewirecutter.com/reviews/best-sd-card/" data-wpel-link="external" target="_blank" rel="external noopener">Reviews of the same cards by The Wirecutter</a>, with differing results in some cases (likely because they used a Canon T4i &#8211; performance does vary by camera, clearly).</li>



<li><a href="https://web.archive.org/web/20140803005331/https://sportsphotoguy.com/d7100-raw-burst-test/" data-wpel-link="external" target="_blank" rel="external noopener">Chuck Steenburgh&#8217;s exhaustive review of no less than 37 (!!) SD cards</a>, in a D7100, but using a different methodology.</li>



<li>An extremely comprehensive albeit slightly dated <a href="https://web.archive.org/web/20140824061338/https://www.robgalbraith.com/multi_pagee519.html" data-wpel-link="external" target="_blank" rel="external noopener">database of cameras (Nikon &amp; Canon) and SD, CF &amp; XQD cards</a>, by Rob Galbraith.</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/df-burst-rates-varying-by-card/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2940</post-id>	</item>
		<item>
		<title>D7100 burst rates varying by SD card</title>
		<link>https://wadetregaskis.com/d7100-burst-rates-varying-by-sd-card/</link>
					<comments>https://wadetregaskis.com/d7100-burst-rates-varying-by-sd-card/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Wed, 30 Jul 2014 05:56:32 +0000</pubDate>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Tested]]></category>
		<guid isPermaLink="false">http://blog.wadetregaskis.com/?p=2852</guid>

					<description><![CDATA[The contenders SanDisk Extreme Pro 95 MB/s 32 GiB SanDisk Extreme Plus 80 MB/s 32 GiB SanDisk Extreme 45 MB/s 16 GiB SanDisk Ultra 30 MB/s 16 GiB Lexar Professional 600x 128 GiB Maxell MaxData 16 GiB SanDisk Ultra MicroSD 64 GiB Samsung MicroSD 32 GiB Note that the last two are MicroSD cards, not regular SD&#8230; <a class="read-more-link" href="https://wadetregaskis.com/d7100-burst-rates-varying-by-sd-card/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[<h3>The contenders</h3>
<ul>
<li><a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=JDLLWK5DSRQYB27Y" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Pro 95 MB/s 32 GiB</a></li>
<li><a href="https://www.amazon.com/gp/product/B00DN43UHU/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00DN43UHU&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=VIIEHHVFUIUARNKI" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Plus 80 MB/s 32 GiB</a></li>
<li><a href="https://www.amazon.com/gp/product/B00BBE0GFI/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00BBE0GFI&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=PJYSGI27UO2D5IIM" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme 45 MB/s 16 GiB</a></li>
<li><a href="https://www.amazon.com/gp/product/B007M51J42/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007M51J42&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=DQJL6CIMXDDDXAHO" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Ultra 30 MB/s 16 GiB</a></li>
<li><a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a></li>
<li><a href="https://www.amazon.com/gp/product/B005GRALP6/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B005GRALP6&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=XNHGW7PP76NNH5XB" data-wpel-link="external" target="_blank" rel="external noopener">Maxell MaxData 16 GiB</a></li>
<li><a href="https://www.amazon.com/gp/product/B009QZH6JS/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B009QZH6JS&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=OYX2LLF254OZSXZA" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Ultra MicroSD 64 GiB</a></li>
<li><a href="https://www.amazon.com/gp/product/B00IVPU7DQ/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IVPU7DQ&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=YJVXOCXQK2NBZP4U" data-wpel-link="external" target="_blank" rel="external noopener">Samsung MicroSD 32 GiB</a></li>
</ul>
<p>Note that the last two are <em>Micro</em>SD cards, not regular SD cards.  I threw them in because I had them and because they&#8217;re out there and surprisingly much cheaper per GiB than regular SD cards, so if they perform as well&#8230;</p>
<p>Be mindful of the capacity differences.  Flash-memory-based devices <i>usually &#8211;</i> but not <em>always</em> &#8211; improve in performance as their capacity increases.  This can be complicated if a like-branded range of cards vary their NAND flash process significantly (e.g. moving to TLC at higher capacities, from MLC).  Ultimately it&#8217;s possible that the <a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a>, for example, gets a bit of an &#8220;unfair&#8221; advantage by simple virtue of its size.  Alas, I can only test what cards I actually have (though if you buy any of them from Amazon by following the links in this post, I&#8217;ll receive a small commission which I can use to acquire further cards for testing).  And in any case, &#8220;fair&#8221; is subjective given the vastly differing prices for these cards &#8211; one might argue it&#8217;s only &#8220;fair&#8221; to compare them at the same price point, with an intrinsic advantage to those that provide more capacity at that price.</p>
<h3>Test setup</h3>
<p><a href="https://www.amazon.com/gp/product/B00F5E3N46/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00F5E3N46&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=MH3LWTROFGKKWHPH" data-wpel-link="external" target="_blank" rel="external noopener">Nikon D7100</a> with the <a href="https://www.amazon.com/gp/product/B004Y1AYAC/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B004Y1AYAC&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=A6CD27ORY4UE3VGT" data-wpel-link="external" target="_blank" rel="external noopener">Nikon 50/1.8G</a>, on a tripod, pointing at my computer screen.  On that was played (full-screen) a time counter (a trivial app I wrote in all of ten minutes).  The counter displays nothing other than a flat grey background and the counter itself in big black letters.  Consistency is crucial between shots to ensure the camera is doing the same type and amount of processing, and that the file sizes are as consistent as possible.</p>
<p>Camera settings were:</p>
<ul>
<li>Continuous High shooting mode.</li>
<li>14-bit lossless-compressed RAW.</li>
<li>DX area (i.e. not 1.3x crop).</li>
<li>Auto white balance.</li>
<li>Matrix metering.</li>
<li>Manual focus (switched both on the lens and the camera body).</li>
<li>Standard (SD) picture control.</li>
<li>AdobeRGB colour space.</li>
<li>Active-D Lighting was <em>off</em>.</li>
<li>Long Exposure Noise Reduction was <em>off</em>.</li>
<li>High ISO Noise Reduction was set to Normal.</li>
<li>Exposure Delay Mode was <em>off</em>.</li>
<li>For the ISO 100 shots, f/1.8 @ 1/500.</li>
<li>For the ISO 800 shots, f/3.5 @ 1/500.</li>
<li>For the ISO 6,400 shots, f/10 @ 1/500.</li>
<li>Only one card in the camera at a time &#8211; the card under test &#8211; and in slot one.</li>
<li>Image review <em>off</em>.</li>
</ul>
<p>Note that these aren&#8217;t all the <em>default</em> camera settings.  They&#8217;re what I typically use, more or less.  The 1/500 shutter speed was simply the fastest I could reasonably do, exposure-wise, at ISO 100 &#8211; the faster the better to freeze the clock on screen.</p>
<p>I have <em>not</em> tested JPEG capture.  It is faster and thus more tedious to test as it takes longer just to exhaust the camera&#8217;s buffer and get down to actually measuring the SD card&#8217;s performance.  And I never shoot JPEG myself.</p>
<h3>Method</h3>
<ol>
<li>Insert empty card under test.</li>
<li>Set ISO 100, f/1.8, 1/500 (Manual mode, Auto-ISO off).</li>
<li>Start timer.</li>
<li>Hold down shutter button for about eleven seconds.</li>
<li>Wait for SD activity LED on the back of the camera to turn off.  Wait another five seconds for good measure.</li>
<li>Repeat steps 3 through 5 twice more.</li>
<li>Set ISO 800, f/3.5, 1/500.</li>
<li>Repeat steps 3 through 6.</li>
<li>Set ISO 6,400, f/10, 1/500.</li>
<li>Repeat steps 3 through 6.</li>
<li>Insert card into computer and read each image in sequence, entering the value of the timer captured by each shot into a spreadsheet, which aligns them so that the first shot always corresponds to t = 0.</li>
</ol>
<p>Note in particular that I didn&#8217;t erase the SD card at any point during the test itself &#8211; only at the beginning.  I have reason to believe that may be a source of a little error &#8211; during testing I saw evidence that some cards are very sensitive to their utilisation, w.r.t. performance.  But as you&#8217;ll see from the results below, there was no consistent tendency for the second or third runs to slow down.  I will be exploring performance vs utilisation at a later date, however.</p>
<p>At ISO 100 the average file size was just a little under 30 MiB.  At ISO 800 it rose to around 37 MiB.  At ISO 6,400 it was just over 40 MiB.  Thus whatever difference in in-camera processing there may be is also conflated with the differing data rates.</p>
<h3>The results</h3>
<h4>ISO 100</h4>
<div class="sdresultstable">
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=CWTG2P2TI7QA6OQH" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="wp-image-2895 size-full" src="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-100.png" alt="SanDisk Extreme Pro 95 MB:s 32 GiB @ ISO 100" width="1431" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-100.png 1431w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-100-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-100-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-100-256x42@2x.png 512w" sizes="auto, (max-width: 1431px) 100vw, 1431px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B00DN43UHU/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00DN43UHU&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=B7DDBLTOCJXKFYSH" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2894" src="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100.png" alt="SanDisk Extreme Plus 80 MB:s 32 GiB @ ISO 100" width="1430" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100.png 1430w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-100-256x42@2x.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B007M54E1M/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007M54E1M&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=4CI3E5MDYGT3FOBT" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2893" src="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100.png" alt="SanDisk Extreme 45 MB:s 16 GiB @ ISO 100" width="1428" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100.png 1428w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-100-256x42@2x.png 512w" sizes="auto, (max-width: 1428px) 100vw, 1428px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B007M51J42/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007M51J42&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=QGQTMSZFDBWPWUAQ" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2896" src="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-30-MBs-16-GiB-@-ISO-100.png" alt="SanDisk Ultra 30 MB:s 16 GiB @ ISO 100" width="1430" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-30-MBs-16-GiB-@-ISO-100.png 1430w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-30-MBs-16-GiB-@-ISO-100-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-30-MBs-16-GiB-@-ISO-100-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-30-MBs-16-GiB-@-ISO-100-256x42@2x.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=LXS63XLRTJ3NXTEV" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2890" src="https://wadetregaskis.com/wp-content/uploads/2014/07/Lexar-Professional-600x-128-GiB-@-ISO-100.png" alt="Lexar Professional 600x 128 GiB @ ISO 100" width="1430" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/Lexar-Professional-600x-128-GiB-@-ISO-100.png 1430w, https://wadetregaskis.com/wp-content/uploads/2014/07/Lexar-Professional-600x-128-GiB-@-ISO-100-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/Lexar-Professional-600x-128-GiB-@-ISO-100-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/Lexar-Professional-600x-128-GiB-@-ISO-100-256x42@2x.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B005GRALP6/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B005GRALP6&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=AHKA3CJF35TSSBYC" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2891" src="https://wadetregaskis.com/wp-content/uploads/2014/07/Maxell-MaxData-16-GiB-@-ISO-100.png" alt="Maxell MaxData 16 GiB @ ISO 100" width="1430" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/Maxell-MaxData-16-GiB-@-ISO-100.png 1430w, https://wadetregaskis.com/wp-content/uploads/2014/07/Maxell-MaxData-16-GiB-@-ISO-100-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/Maxell-MaxData-16-GiB-@-ISO-100-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/Maxell-MaxData-16-GiB-@-ISO-100-256x42@2x.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B009QZH6JS/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B009QZH6JS&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=L6HIIVN7O4AGTZET" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2898" src="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-MicroSD-64-GiB-@-ISO-100.png" alt="SanDisk Ultra MicroSD 64 GiB @ ISO 100" width="1430" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-MicroSD-64-GiB-@-ISO-100.png 1430w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-MicroSD-64-GiB-@-ISO-100-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-MicroSD-64-GiB-@-ISO-100-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-MicroSD-64-GiB-@-ISO-100-256x42@2x.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B00IVPU7DQ/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IVPU7DQ&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=FU5625ZTYMZOCOP5" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2892" src="https://wadetregaskis.com/wp-content/uploads/2014/07/Samsung-MicroSD-32-GiB-@-ISO-100.png" alt="Samsung MicroSD 32 GiB @ ISO 100" width="1430" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/Samsung-MicroSD-32-GiB-@-ISO-100.png 1430w, https://wadetregaskis.com/wp-content/uploads/2014/07/Samsung-MicroSD-32-GiB-@-ISO-100-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/Samsung-MicroSD-32-GiB-@-ISO-100-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/Samsung-MicroSD-32-GiB-@-ISO-100-256x42@2x.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></div>
</div>
</div>
<h4>Points of interest</h4>
<ul>
<li>You would expect consistent behaviour for the first five or six shots, because those should all fit into the camera&#8217;s RAM buffer.  But as you can see there&#8217;s quite clearly substantial variation there &#8211; and in some cases, like the <a href="https://www.amazon.com/gp/product/B007M51J42/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007M51J42&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=DQJL6CIMXDDDXAHO" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Ultra 30 MB/s 16 GiB</a>, completely dropped shots.  I don&#8217;t have an explanation for this &#8211; I&#8217;m reporting what I saw.  My tentative hypothesis is that the camera starts flushing the buffer quite quickly, but in a way such that some kind of delay or &#8216;hiccup&#8217; on the SD card&#8217;s part can prevent it taken further shots, despite room remaining in the RAM buffer.</li>
<li>The <a href="https://www.amazon.com/gp/product/B007M51J42/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007M51J42&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=DQJL6CIMXDDDXAHO" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Ultra 30 MB/s 16 GiB</a> shows a very strange behaviour &#8211; it not only causes the camera to drop shots during what should be the safe, predictable buffer period, but in one case you can see it actually somehow caused the camera to take one shot <em>faster</em> than it&#8217;s supposed to be able to &#8211; just ~100ms after the first.  This seems inexplicable, so of course I checked the results for typos or other obvious errors.  My only hypothesis is that a random glitch hit my computer and caused the on-screen timer to freeze temporarily &#8211; just for a fraction of a second &#8211; giving the impression less time had passed than had really.  I never noticed any glitches while watching the timer, which I did for every single test run from start to finish, and I ensured my computer was otherwise completely idle during testing to avoid just such issues.  So I don&#8217;t think, if this is even the root cause at all, that it&#8217;s a systematic issue (especially given that several of the cards measured as very consistent, implying an accurate and consistent timer).  Nonetheless I am thinking about what else I could use as a timer instead, that wouldn&#8217;t suffer from such potential issues.</li>
<li>Unsurprisingly [to me] the MicroSD cards performed distinctly worse than full-size SD cards.  But what is interesting is that the <a href="https://www.amazon.com/gp/product/B00IVPU7DQ/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IVPU7DQ&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=YJVXOCXQK2NBZP4U" data-wpel-link="external" target="_blank" rel="external noopener">Samsung MicroSD 32 GiB</a> outperformed the full-size <a href="https://www.amazon.com/gp/product/B005GRALP6/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B005GRALP6&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=XNHGW7PP76NNH5XB" data-wpel-link="external" target="_blank" rel="external noopener">Maxell MaxData 16 GiB</a>, slightly.  The <a href="https://www.amazon.com/gp/product/B009QZH6JS/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B009QZH6JS&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=OYX2LLF254OZSXZA" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Ultra MicroSD 64 GiB</a>, on the other hand, comes in as not just the slowest of the lot but unpredictable to boot.</li>
<li>The <a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=JDLLWK5DSRQYB27Y" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Pro 95 MB/s 32 GiB</a> takes the crown for average speed, but only barely &#8211; its younger sibling the <a href="https://www.amazon.com/gp/product/B00DN43UHU/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00DN43UHU&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=VIIEHHVFUIUARNKI" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Plus 80 MB/s 32 GiB</a> is close behind, but surprisingly (given its significantly lower cost per GiB) it&#8217;s the <a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a> that only barely misses first place.  However, note how the Lexar misses a shot completely in one of the test runs.</li>
<li>But the <a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=JDLLWK5DSRQYB27Y" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Pro 95 MB/s 32 GiB</a>&#8216;s speed comes at a stark cost &#8211; its shot intervals are very unreliable.  Only the <a href="https://www.amazon.com/gp/product/B009QZH6JS/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B009QZH6JS&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=OYX2LLF254OZSXZA" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Ultra MicroSD 64 GiB</a> does worse in this regard.</li>
</ul>
<h3>ISO 800</h3>
<div class="sdresultstable">
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=CWTG2P2TI7QA6OQH" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2904" src="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-800.png" alt="SanDisk Extreme Pro 95 MB:s 32 GiB @ ISO 800" width="1431" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-800.png 1431w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-800-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-800-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-800-256x42@2x.png 512w" sizes="auto, (max-width: 1431px) 100vw, 1431px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B00DN43UHU/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00DN43UHU&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=B7DDBLTOCJXKFYSH" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2903" src="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-800.png" alt="SanDisk Extreme Plus 80 MB:s 32 GiB @ ISO 800" width="1430" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-800.png 1430w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-800-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-800-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-800-256x42@2x.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B007M54E1M/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007M54E1M&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=4CI3E5MDYGT3FOBT" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2902" src="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-800.png" alt="SanDisk Extreme 45 MB:s 16 GiB @ ISO 800" width="1426" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-800.png 1426w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-800-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-800-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-800-256x42@2x.png 512w" sizes="auto, (max-width: 1426px) 100vw, 1426px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B007M51J42/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007M51J42&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=QGQTMSZFDBWPWUAQ" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2905" src="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-30-MBs-16-GiB-@-ISO-800.png" alt="SanDisk Ultra 30 MB:s 16 GiB @ ISO 800" width="1428" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-30-MBs-16-GiB-@-ISO-800.png 1428w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-30-MBs-16-GiB-@-ISO-800-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-30-MBs-16-GiB-@-ISO-800-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-30-MBs-16-GiB-@-ISO-800-256x42@2x.png 512w" sizes="auto, (max-width: 1428px) 100vw, 1428px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=LXS63XLRTJ3NXTEV" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2899" src="https://wadetregaskis.com/wp-content/uploads/2014/07/Lexar-Professional-600x-128-GiB-@-ISO-800.png" alt="Lexar Professional 600x 128 GiB @ ISO 800" width="1430" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/Lexar-Professional-600x-128-GiB-@-ISO-800.png 1430w, https://wadetregaskis.com/wp-content/uploads/2014/07/Lexar-Professional-600x-128-GiB-@-ISO-800-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/Lexar-Professional-600x-128-GiB-@-ISO-800-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/Lexar-Professional-600x-128-GiB-@-ISO-800-256x42@2x.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B005GRALP6/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B005GRALP6&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=AHKA3CJF35TSSBYC" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2900" src="https://wadetregaskis.com/wp-content/uploads/2014/07/Maxell-MaxData-16-GiB-@-ISO-800.png" alt="Maxell MaxData 16 GiB @ ISO 800" width="1430" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/Maxell-MaxData-16-GiB-@-ISO-800.png 1430w, https://wadetregaskis.com/wp-content/uploads/2014/07/Maxell-MaxData-16-GiB-@-ISO-800-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/Maxell-MaxData-16-GiB-@-ISO-800-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/Maxell-MaxData-16-GiB-@-ISO-800-256x42@2x.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B009QZH6JS/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B009QZH6JS&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=L6HIIVN7O4AGTZET" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2907" src="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-MicroSD-64-GiB-@-ISO-800.png" alt="SanDisk Ultra MicroSD 64 GiB @ ISO 800" width="1430" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-MicroSD-64-GiB-@-ISO-800.png 1430w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-MicroSD-64-GiB-@-ISO-800-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-MicroSD-64-GiB-@-ISO-800-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-MicroSD-64-GiB-@-ISO-800-256x42@2x.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B00IVPU7DQ/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IVPU7DQ&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=FU5625ZTYMZOCOP5" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2901" src="https://wadetregaskis.com/wp-content/uploads/2014/07/Samsung-MicroSD-32-GiB-@-ISO-800.png" alt="Samsung MicroSD 32 GiB @ ISO 800" width="1430" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/Samsung-MicroSD-32-GiB-@-ISO-800.png 1430w, https://wadetregaskis.com/wp-content/uploads/2014/07/Samsung-MicroSD-32-GiB-@-ISO-800-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/Samsung-MicroSD-32-GiB-@-ISO-800-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/Samsung-MicroSD-32-GiB-@-ISO-800-256x42@2x.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></div>
</div>
</div>
<h4>Points of interest</h4>
<ul>
<li>Now we start to see that RAM buffer stretched just a tiny bit too far &#8211; that sixth shot is now tending to come in just a little bit late.</li>
<li>Overall things slow down a bit, and pretty consistently across all the cards, by about 25%.  This isn&#8217;t surprising given that the file size has increased by about 25-30%.  However, the <a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=JDLLWK5DSRQYB27Y" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Pro 95 MB/s 32 GiB</a> notably bucks this trend, slowing down by only 10%.</li>
<li>The <a href="https://www.amazon.com/gp/product/B009QZH6JS/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B009QZH6JS&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=OYX2LLF254OZSXZA" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Ultra MicroSD 64 GiB</a> now yields much more regular performance, but the <a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=JDLLWK5DSRQYB27Y" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Pro 95 MB/s 32 GiB</a> retains its consistent inconsistency.</li>
</ul>
<h3>ISO 6,400</h3>
<div class="sdresultstable">
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=CWTG2P2TI7QA6OQH" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2913" src="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-6400.png" alt="SanDisk Extreme Pro 95 MB:s 32 GiB @ ISO 6400" width="1430" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-6400.png 1430w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-6400-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-6400-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Pro-95-MBs-32-GiB-@-ISO-6400-256x42@2x.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B00DN43UHU/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00DN43UHU&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=B7DDBLTOCJXKFYSH" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2912" src="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-6400.png" alt="SanDisk Extreme Plus 80 MB:s 32 GiB @ ISO 6400" width="1430" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-6400.png 1430w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-6400-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-6400-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-Plus-80-MBs-32-GiB-@-ISO-6400-256x42@2x.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B007M54E1M/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007M54E1M&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=4CI3E5MDYGT3FOBT" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2911" src="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-6400.png" alt="SanDisk Extreme 45 MB:s 16 GiB @ ISO 6400" width="1426" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-6400.png 1426w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-6400-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-6400-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Extreme-45-MBs-16-GiB-@-ISO-6400-256x42@2x.png 512w" sizes="auto, (max-width: 1426px) 100vw, 1426px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B007M51J42/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007M51J42&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=QGQTMSZFDBWPWUAQ" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2914" src="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-30-MBs-16-GiB-@-ISO-6400.png" alt="SanDisk Ultra 30 MB:s 16 GiB @ ISO 6400" width="1430" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-30-MBs-16-GiB-@-ISO-6400.png 1430w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-30-MBs-16-GiB-@-ISO-6400-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-30-MBs-16-GiB-@-ISO-6400-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-30-MBs-16-GiB-@-ISO-6400-256x42@2x.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=LXS63XLRTJ3NXTEV" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2908" src="https://wadetregaskis.com/wp-content/uploads/2014/07/Lexar-Professional-600x-128-GiB-@-ISO-6400.png" alt="Lexar Professional 600x 128 GiB @ ISO 6400" width="1430" height="416" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/Lexar-Professional-600x-128-GiB-@-ISO-6400.png 1430w, https://wadetregaskis.com/wp-content/uploads/2014/07/Lexar-Professional-600x-128-GiB-@-ISO-6400-1024x298.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/Lexar-Professional-600x-128-GiB-@-ISO-6400-256x74.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/Lexar-Professional-600x-128-GiB-@-ISO-6400-256x74@2x.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B005GRALP6/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B005GRALP6&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=AHKA3CJF35TSSBYC" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2909" src="https://wadetregaskis.com/wp-content/uploads/2014/07/Maxell-MaxData-16-GiB-@-ISO-6400.png" alt="Maxell MaxData 16 GiB @ ISO 6400" width="1430" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/Maxell-MaxData-16-GiB-@-ISO-6400.png 1430w, https://wadetregaskis.com/wp-content/uploads/2014/07/Maxell-MaxData-16-GiB-@-ISO-6400-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/Maxell-MaxData-16-GiB-@-ISO-6400-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/Maxell-MaxData-16-GiB-@-ISO-6400-256x42@2x.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B009QZH6JS/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B009QZH6JS&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=L6HIIVN7O4AGTZET" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2916" src="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-MicroSD-64-GiB-@-ISO-6400.png" alt="SanDisk Ultra MicroSD 64 GiB @ ISO 6400" width="1430" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-MicroSD-64-GiB-@-ISO-6400.png 1430w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-MicroSD-64-GiB-@-ISO-6400-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-MicroSD-64-GiB-@-ISO-6400-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/SanDisk-Ultra-MicroSD-64-GiB-@-ISO-6400-256x42@2x.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></div>
</div>
<div class="sdresultsrow">
<div class="sdresultsimgcol"><a href="https://www.amazon.com/gp/product/B00IVPU7DQ/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IVPU7DQ&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=FU5625ZTYMZOCOP5" data-wpel-link="external" target="_blank" rel="external noopener"></a></div>
<div class="sdresultschartcol"><img loading="lazy" decoding="async" class="size-full wp-image-2910" src="https://wadetregaskis.com/wp-content/uploads/2014/07/Samsung-MicroSD-32-GiB-@-ISO-6400.png" alt="Samsung MicroSD 32 GiB @ ISO 6400" width="1430" height="236" srcset="https://wadetregaskis.com/wp-content/uploads/2014/07/Samsung-MicroSD-32-GiB-@-ISO-6400.png 1430w, https://wadetregaskis.com/wp-content/uploads/2014/07/Samsung-MicroSD-32-GiB-@-ISO-6400-1024x169.png 1024w, https://wadetregaskis.com/wp-content/uploads/2014/07/Samsung-MicroSD-32-GiB-@-ISO-6400-256x42.png 256w, https://wadetregaskis.com/wp-content/uploads/2014/07/Samsung-MicroSD-32-GiB-@-ISO-6400-256x42@2x.png 512w" sizes="auto, (max-width: 1430px) 100vw, 1430px" /></div>
</div>
</div>
<h4>Points of interest</h4>
<ul>
<li>In some ways not a huge difference from ISO 800, which isn&#8217;t surprising given the file size has only increased slightly.  But there&#8217;s a lot more inconsistency now &#8211; witness the <a href="https://www.amazon.com/gp/product/B005GRALP6/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B005GRALP6&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=XNHGW7PP76NNH5XB" data-wpel-link="external" target="_blank" rel="external noopener">Maxell MaxData 16 GiB</a>, <a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a> &amp; <a href="https://www.amazon.com/gp/product/B007M51J42/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007M51J42&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=DQJL6CIMXDDDXAHO" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Ultra 30 MB/s 16 GiB</a> all dropping shots entirely (including <em>again</em> in the ostensibly buffer-only period, in the case of the <a href="https://www.amazon.com/gp/product/B007M51J42/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007M51J42&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=DQJL6CIMXDDDXAHO" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Ultra 30 MB/s 16 GiB</a>).  This was particularly surprising for the Lexar given its reliable performance prior, which is why I did an additional three runs to try to reproduce the glitches.  As you can see, I couldn&#8217;t, but clearly there&#8217;s some unreliability there.  In real-world use I have seen the <a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a> drop shots like this, though it is very rare.</li>
<li>The <a href="https://www.amazon.com/gp/product/B00DN43UHU/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00DN43UHU&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=VIIEHHVFUIUARNKI" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Plus 80 MB/s 32 GiB</a> is now just that little bit faster than the <a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a>.</li>
<li>The <a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=JDLLWK5DSRQYB27Y" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Pro 95 MB/s 32 GiB</a> maintains its significant and impressive performance delta, over all the other cards, as it established it at ISO 800.</li>
</ul>
<h3>Conclusion</h3>
<p>It&#8217;s really just a three-horse race, between the <a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=JDLLWK5DSRQYB27Y" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Pro 95 MB/s 32 GiB</a>, the <a href="https://www.amazon.com/gp/product/B00DN43UHU/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00DN43UHU&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=VIIEHHVFUIUARNKI" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Plus 80 MB/s 32 GiB</a>, and the <a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a>.  But there is a clear winner, and that&#8217;s the <a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=JDLLWK5DSRQYB27Y" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Pro 95 MB/s 32 GiB</a>.  It has noticeably better average continuous shooting speeds &#8211; especially as ISOs / file sizes increase &#8211; albeit with significant and consistently inconsistent shot-to-shot latency, which may annoy some people.  I reason, however, that when you&#8217;re holding the shutter down like this you&#8217;re really spraying-and-praying, one way or another, so you&#8217;re not prescribing precise shot times to begin with.  And I can&#8217;t say whether the tested behaviour of holding down the shutter button is representative of pressing the shutter repeatedly in rapid succession &#8211; it&#8217;s quite possible the behaviour is very different.</p>
<p>Second place I give it to the <a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a>, but only just.  It performs a little bit faster overall, but less consistently, than the <a href="https://www.amazon.com/gp/product/B00DN43UHU/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00DN43UHU&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=VIIEHHVFUIUARNKI" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Plus 80 MB/s 32 GiB</a>.  What gives it the edge, however, is its vastly superior value &#8211; at time of writing it&#8217;s a full 50% cheaper at the 128 GiB capacity point (and cheaper albeit less dramatically at lower capacities).</p>
<p>Which leaves the <a href="https://www.amazon.com/gp/product/B00DN43UHU/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00DN43UHU&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=VIIEHHVFUIUARNKI" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Plus 80 MB/s 32 GiB</a> in third.  But if you&#8217;re looking for strict reliability, and/or are less sensitive to price, then you could choose it over the Lexar.</p>
<p>After that, there&#8217;s a pretty significant drop in performance to the middle of the pack &#8211; the <a href="https://www.amazon.com/gp/product/B00BBE0GFI/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00BBE0GFI&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=PJYSGI27UO2D5IIM" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme 45 MB/s 16 GiB</a> and the <a href="https://www.amazon.com/gp/product/B007M51J42/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007M51J42&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=DQJL6CIMXDDDXAHO" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Ultra 30 MB/s 16 GiB</a>.  Between those the <a href="https://www.amazon.com/gp/product/B00BBE0GFI/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00BBE0GFI&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=PJYSGI27UO2D5IIM" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme 45 MB/s 16 GiB</a> is by far better.  The <a href="https://www.amazon.com/gp/product/B007M51J42/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007M51J42&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=DQJL6CIMXDDDXAHO" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Ultra 30 MB/s 16 GiB</a> is an unreliable card.  Not just as shown in this tests; I&#8217;ve used several over the last few years, but increasingly briefly as I&#8217;ve learnt that they&#8217;re not just slow but prone to freezing for long periods, corrupting data, and generally sucking.  I strongly recommend you <em>never</em> use them.</p>
<p>That said, you can do worse:  the <a href="https://www.amazon.com/gp/product/B005GRALP6/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B005GRALP6&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=XNHGW7PP76NNH5XB" data-wpel-link="external" target="_blank" rel="external noopener">Maxell MaxData 16 GiB</a> and both the MicroSD cards &#8211; both the <a href="https://www.amazon.com/gp/product/B009QZH6JS/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B009QZH6JS&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=OYX2LLF254OZSXZA" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Ultra MicroSD 64 GiB</a> and the <a href="https://www.amazon.com/gp/product/B00IVPU7DQ/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IVPU7DQ&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=YJVXOCXQK2NBZP4U" data-wpel-link="external" target="_blank" rel="external noopener">Samsung MicroSD 32 GiB</a> &#8211; turn in comically bad performance.  They were frustrating to test because each individual burst of shots took longer to flush to the SD card than the entire three-run set on the faster cards.  Don&#8217;t ever use them.</p>
<p>My final rank, based primarily on performance and reliability:</p>
<ul>
<li><strong><span style="color: #ffcc00;">A+</span></strong> <a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=JDLLWK5DSRQYB27Y" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Pro 95 MB/s 32 GiB</a></li>
<li><strong><span style="color: #ffff00;">A</span></strong>    <a href="https://www.amazon.com/gp/product/B00IF4O644/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O644&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=J6SOGCDOL5KXO2C3" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 128 GiB</a></li>
<li><strong><span style="color: #ffff00;">A</span></strong>    <a href="https://www.amazon.com/gp/product/B00DN43UHU/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00DN43UHU&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=VIIEHHVFUIUARNKI" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Plus 80 MB/s 32 GiB</a></li>
<li><strong><span style="color: #00ff00;">B</span></strong>    <a href="https://www.amazon.com/gp/product/B00BBE0GFI/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00BBE0GFI&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=PJYSGI27UO2D5IIM" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme 45 MB/s 16 GiB</a></li>
<li><strong><span style="color: #339966;">D-</span></strong>  <a href="https://www.amazon.com/gp/product/B007M51J42/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007M51J42&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=DQJL6CIMXDDDXAHO" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Ultra 30 MB/s 16 GiB</a></li>
<li><strong><span style="color: #ff0000;">F</span></strong>    <a href="https://www.amazon.com/gp/product/B005GRALP6/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B005GRALP6&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=XNHGW7PP76NNH5XB" data-wpel-link="external" target="_blank" rel="external noopener">Maxell MaxData 16 GiB</a></li>
<li><strong><span style="color: #ff0000;">F</span></strong>    <a href="https://www.amazon.com/gp/product/B009QZH6JS/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B009QZH6JS&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=OYX2LLF254OZSXZA" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Ultra MicroSD 64 GiB</a></li>
<li><strong><span style="color: #ff0000;">F</span></strong>    <a href="https://www.amazon.com/gp/product/B00IVPU7DQ/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IVPU7DQ&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=YJVXOCXQK2NBZP4U" data-wpel-link="external" target="_blank" rel="external noopener">Samsung MicroSD 32 GiB</a></li>
</ul>
<h3>See also:</h3>
<ul>
<li><a title="Df burst rates varying by card" href="https://wadetregaskis.com/df-burst-rates-varying-by-card/" data-wpel-link="internal">My review of some of these exact same cards in a Nikon Df</a> (in particular to see the contrast in performance between two ostensibly same-generation cameras).</li>
<li><a href="https://web.archive.org/web/20140801232728/https://thewirecutter.com/reviews/best-sd-card/" data-wpel-link="external" target="_blank" rel="external noopener">Reviews of many of the same cards by The Wirecutter</a>, with differing results in some cases (quite possibly because they used a Canon T4i &#8211; performance does vary by camera).</li>
<li><a href="https://web.archive.org/web/20140802080253/https://sportsphotoguy.com/d7100-raw-burst-test/" data-wpel-link="external" target="_blank" rel="external noopener">Chuck Steenburgh&#8217;s exhaustive review of no less than 37 (!!) SD cards</a>, also in a D7100, but using a different methodology.  His results broadly agree with mine but are less detailed.</li>
<li>An extremely comprehensive albeit slightly dated <a href="https://web.archive.org/web/20140705072208/https://www.robgalbraith.com/multi_pagee519.html" data-wpel-link="external" target="_blank" rel="external noopener">database of cameras (Nikon &amp; Canon) and SD, CF &amp; XQD cards</a>, by Rob Galbraith.</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/d7100-burst-rates-varying-by-sd-card/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2852</post-id>	</item>
		<item>
		<title>Initial Sigma 18-35/1.8 AF adjustments</title>
		<link>https://wadetregaskis.com/initial-sigma-18-351-8-af-adjustments/</link>
					<comments>https://wadetregaskis.com/initial-sigma-18-351-8-af-adjustments/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Sat, 16 Nov 2013 21:56:41 +0000</pubDate>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Tested]]></category>
		<guid isPermaLink="false">http://blog.wadetregaskis.com/?p=2820</guid>

					<description><![CDATA[Just thought I&#8217;d share what my AF calibration settings are, at least initially, for the Sigma 18-35/1.8&#160;on a Nikon D5200. &#160;And some comments on the process. As you can see, on my particular D5200 it has an overall tendency to back-focus (negative adjustment values mean &#8220;the subject was closer than AF thought&#8221;). It took a&#8230; <a class="read-more-link" href="https://wadetregaskis.com/initial-sigma-18-351-8-af-adjustments/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p>Just thought I&#8217;d share what my AF calibration settings are, at least initially, for the <a href="https://www.amazon.com/gp/product/B00DBL09FG/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00DBL09FG&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=C24ICNSYRBJDO4C5" data-wpel-link="external" target="_blank" rel="external noopener">Sigma 18-35/1.8</a>&nbsp;on a <a href="https://www.amazon.com/gp/product/B00AXTQR5U/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00AXTQR5U&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=RFHGQ2QKWTUVFWC4" data-wpel-link="external" target="_blank" rel="external noopener">Nikon D5200</a>. &nbsp;And some comments on the process.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="582" height="138" src="https://wadetregaskis.com/wp-content/uploads/2013/11/Screen-Shot-2013-11-16-at-1.27.18-pm.webp" alt="Initial Sigma 18-35/1.8 AF calibration adjustments" class="wp-image-2821" srcset="https://wadetregaskis.com/wp-content/uploads/2013/11/Screen-Shot-2013-11-16-at-1.27.18-pm.webp 582w, https://wadetregaskis.com/wp-content/uploads/2013/11/Screen-Shot-2013-11-16-at-1.27.18-pm-256x61.webp 256w, https://wadetregaskis.com/wp-content/uploads/2013/11/Screen-Shot-2013-11-16-at-1.27.18-pm-512x121.webp 512w" sizes="auto, (max-width: 582px) 100vw, 582px" /></figure>
</div>


<p>As you can see, on my particular D5200 it has an overall tendency to back-focus (negative adjustment values mean &#8220;the subject was closer than AF thought&#8221;).</p>



<p>It took a good two or three hours to arrive at these settings, using a variety of home-made focus targets. &nbsp;Calibrating for infinity is particularly difficult, both because it&#8217;s difficult to find a suitable target that is that big, and because the depth of field is very high at great distances. &nbsp;On the upside, the latter at least means that small calibration errors don&#8217;t really matter.</p>



<p>It&#8217;s also annoying how huge the jump is from 0.5 metres to infinity, which is basically your entire practical working range, and it does feel like the necessary adjustments for true infinity are substantially different to those for two metres.</p>



<p>I also discovered that there is substantial shot to shot variation in AF accuracy. &nbsp;This could be the same problem that was seen in reviews of the Canon version of this lens, or for all I know it could just be normal variation for this kind of lens (i.e. large aperture). &nbsp;I do have a <a href="https://www.amazon.com/gp/product/B004Y1AYAC/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B004Y1AYAC&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=5IBC2XIRIU6OHAVL" data-wpel-link="external" target="_blank" rel="external noopener">Nikon 50/1.8G</a> but I&#8217;ve never tested it in the same way (because I&#8217;ve never really had any issues in practice).</p>



<p>In fact, I didn&#8217;t actually intend to run this calibration to begin with it all. &nbsp;It&#8217;s only because I discovered that there was a strong back-focus in general, while just playing with it, that I realised I&#8217;d have to do something about it. &nbsp;That -8 makes the difference, in a typical two metre portrait distance, between someone&#8217;s eyes being in focus and the back of their head (and 35mm @ f1.8 means that&#8217;s a&nbsp;<em>big</em> difference).</p>



<p>Relative to that, the random shot-to-shot focus variation is about four units. &nbsp;So even fully adjusted, a good third or more of the shots have the ears in focus instead of the eyes.</p>



<p>In all my past experiments with focusing I&#8217;ve found that phase detection (i.e. viewfinder use) is actually more accurate more consistently than contrast detection (live view). &nbsp;My first impression with this new lens is that that cannot possibly be true, when using this lens. &nbsp;I guess we&#8217;ll see.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/initial-sigma-18-351-8-af-adjustments/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			<media:content url="https://wadetregaskis.com/wp-content/uploads/2013/11/Screen-Shot-2013-11-16-at-1.27.18-pm.webp" medium="image" />
<post-id xmlns="com-wordpress:feed-additions:1">2820</post-id>	</item>
		<item>
		<title>Mac OS X 10.9 (Mavericks) built-in dictation</title>
		<link>https://wadetregaskis.com/mac-os-x-10-9-mavericks-built-in-dictation/</link>
					<comments>https://wadetregaskis.com/mac-os-x-10-9-mavericks-built-in-dictation/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Wed, 23 Oct 2013 07:06:15 +0000</pubDate>
				<category><![CDATA[Ramblings]]></category>
		<category><![CDATA[lies]]></category>
		<category><![CDATA[Snafu]]></category>
		<category><![CDATA[Tested]]></category>
		<guid isPermaLink="false">http://blog.wadetregaskis.com/?p=2812</guid>

					<description><![CDATA[I&#8217;ve been looking forward to trying Mac OS X 10.9&#8217;s &#8220;advanced&#8221; (i.e. not-transmitting-my-life-story-to-Apple) dictation, as a potential competitor to Dragon Dictate.  Unfortunately, it&#8217;s &#8211; against all odds &#8211; even more embarrassing than Siri.  For example: This test, of the coolest names built-in dictation.) Nope, not important. If you&#8217;re..Reasonably built night, That was true Samaritan and&#8230; <a class="read-more-link" href="https://wadetregaskis.com/mac-os-x-10-9-mavericks-built-in-dictation/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve been looking forward to trying Mac OS X 10.9&#8217;s &#8220;advanced&#8221; (i.e. not-transmitting-my-life-story-to-Apple) dictation, as a potential competitor to Dragon Dictate.  Unfortunately, it&#8217;s &#8211; against all odds &#8211; even more embarrassing than Siri.  For example:</p>
<p style="padding-left: 30px;">This test, of the coolest names built-in dictation.) Nope, not important.</p>
<p style="padding-left: 30px;">If you&#8217;re..Reasonably built night, That was true Samaritan and settle.</p>
<p>Go ahead, try to figure out what I actually said.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/mac-os-x-10-9-mavericks-built-in-dictation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2812</post-id>	</item>
		<item>
		<title>Image quality vs circular polarising filters</title>
		<link>https://wadetregaskis.com/image-quality-vs-circular-polarising-filters/</link>
					<comments>https://wadetregaskis.com/image-quality-vs-circular-polarising-filters/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Wed, 02 Oct 2013 06:59:32 +0000</pubDate>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Tested]]></category>
		<guid isPermaLink="false">http://blog.wadetregaskis.com/?p=2795</guid>

					<description><![CDATA[I like circular polarising filters. &#160;I hate glare, and I like strong &#8211; but natural &#8211; contrast. &#160;So until recently I used them a lot. &#160;The only downside, I figured, was the loss of light. &#160;Sometimes my photos using the filter seemed a bit soft, but I assumed that was because of the slower shutter&#8230; <a class="read-more-link" href="https://wadetregaskis.com/image-quality-vs-circular-polarising-filters/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p>I like circular polarising filters. &nbsp;I hate glare, and I like strong &#8211; but natural &#8211; contrast. &nbsp;So until recently I used them a lot. &nbsp;The only downside, I figured, was the loss of light. &nbsp;Sometimes my photos using the filter seemed a bit soft, but I assumed that was because of the slower shutter speeds. &nbsp;It wasn&#8217;t until a recent trip to Yosemite that I realised something else might be wrong. &nbsp;Here&#8217;s three photos I took; can you spot the difference?</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="2048" height="1024" src="https://wadetregaskis.com/wp-content/uploads/2013/10/Full-photo-comparison.jpg" alt="Full photo comparison" class="wp-image-2785" srcset="https://wadetregaskis.com/wp-content/uploads/2013/10/Full-photo-comparison-1024x512@2x.jpg 2048w, https://wadetregaskis.com/wp-content/uploads/2013/10/Full-photo-comparison-1024x512.jpg 1024w, https://wadetregaskis.com/wp-content/uploads/2013/10/Full-photo-comparison-256x128.jpg 256w, https://wadetregaskis.com/wp-content/uploads/2013/10/Full-photo-comparison-256x128@2x.jpg 512w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /></figure>
</div>


<p>Hopefully you can see, even in this tiny preview, that at least one of these things is not like the others. &nbsp;I&#8217;ll give you a hint: two of these were taken with a circular polarising filter. &nbsp;Two different filters &#8211; a cheap <a href="https://www.amazon.com/gp/product/B00091R1NY/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00091R1NY&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=HKIWNQMO254MSAZL" data-wpel-link="external" target="_blank" rel="external noopener">ProMaster</a> one and an expensive <a href="https://www.amazon.com/gp/product/B0002O73AO/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B0002O73AO&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=Q5NX6HZMMEAY5HDD" data-wpel-link="external" target="_blank" rel="external noopener">B+W Käsemann</a>&nbsp;one. &nbsp;Hopefully, then, you can figure out which two were using the circular polarising filters and which filter is which. &nbsp;Here, I&#8217;ll help you out with a couple of 100% crops:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="2048" height="1024" src="https://wadetregaskis.com/wp-content/uploads/2013/10/100-percent-crop-comparison.jpg" alt="100-percent crop comparison" class="wp-image-2791" srcset="https://wadetregaskis.com/wp-content/uploads/2013/10/100-percent-crop-comparison-1024x512@2x.jpg 2048w, https://wadetregaskis.com/wp-content/uploads/2013/10/100-percent-crop-comparison-1024x512.jpg 1024w, https://wadetregaskis.com/wp-content/uploads/2013/10/100-percent-crop-comparison-256x128.jpg 256w, https://wadetregaskis.com/wp-content/uploads/2013/10/100-percent-crop-comparison-256x128@2x.jpg 512w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="2048" height="1024" src="https://wadetregaskis.com/wp-content/uploads/2013/10/100-percent-crop-comparison-2.jpg" alt="100-percent crop comparison 2" class="wp-image-2790" srcset="https://wadetregaskis.com/wp-content/uploads/2013/10/100-percent-crop-comparison-2-1024x512@2x.jpg 2048w, https://wadetregaskis.com/wp-content/uploads/2013/10/100-percent-crop-comparison-2-1024x512.jpg 1024w, https://wadetregaskis.com/wp-content/uploads/2013/10/100-percent-crop-comparison-2-256x128.jpg 256w, https://wadetregaskis.com/wp-content/uploads/2013/10/100-percent-crop-comparison-2-256x128@2x.jpg 512w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /></figure>
</div>


<p>As you can see, the circular polarisers do indeed reduce the glare and improve large-scale contrast, but the <a href="https://www.amazon.com/gp/product/B00091R1NY/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00091R1NY&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=HKIWNQMO254MSAZL" data-wpel-link="external" target="_blank" rel="external noopener">ProMaster</a> one absolutely ruins the image, while even the very expensive <a href="https://www.amazon.com/gp/product/B0002O73AO/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B0002O73AO&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=Q5NX6HZMMEAY5HDD" data-wpel-link="external" target="_blank" rel="external noopener">B+W Käsemann</a> causes noticeable loss of acuity.</p>



<p>Part of the reason may be the differing ISOs &#8211; 280 vs 1100. &nbsp;You can see a bit of graininess in both polarised shots. &nbsp;That&#8217;s only part of it, though, and not a big part &#8211; two shots consistently with [or without] the filter at these two ISOs show quite little difference for a busy scene like this.</p>



<p>Another, and bigger, part of the reason the cheap one did so poorly is because the camera mis-focused when using it. &nbsp;Consistently. &nbsp;The camera seemed to focus as normal &#8211; just as fast, and it was just as certain it was in focus. &nbsp;But it wasn&#8217;t &#8211; not by quite a long shot. &nbsp;If you rotated the filter to its least effective position, focused, then rotated it back and took the shot, the results were a little better. &nbsp;Focus is about right then, but image quality is still poor. &nbsp;The <a href="https://www.amazon.com/gp/product/B0002O73AO/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B0002O73AO&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=Q5NX6HZMMEAY5HDD" data-wpel-link="external" target="_blank" rel="external noopener">B+W Käsemann</a> causes systematic focus error sometimes too, requiring the same sort of shenanigans to work around.</p>



<p>I&#8217;m not sure why this was particularly a problem right there and then. &nbsp;Shooting Half Dome instead, a mere forty degrees away, showed no such issues with autofocus (though loss of acuity was still present to some degree, with both filters).</p>



<p>So apparently you need to be very cautious about using circular polarising filters. &nbsp;Cheap ones are crap. &nbsp;Really crap. &nbsp;A waste of money. &nbsp;Expensive ones are useful, but shouldn&#8217;t be used unless genuinely necessary &#8211; keeping in mind that the above &#8220;unfiltered&#8221; shot can be made 80% equivalent to the better filtered one by simply bumping contrast, saturation and a few other things in post. &nbsp;While I&#8217;m hard-pressed to see a significant difference in acuity when looking at the full photo scaled down (the first example), between no-filter and expensive-filter, you don&#8217;t have to crop it very far or view it very large to start seeing non-trivial differences.</p>



<p>A few notes on my method:</p>



<ul class="wp-block-list">
<li>I took three to five shots for each case, and picked the best ones in each set for this comparison.</li>



<li>All used the same aperture (f/5.6) at the same focal length (400m) at the same shutter speed (1/640).</li>



<li>Taken on a <a href="https://www.amazon.com/gp/product/B00AXTQR5U/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00AXTQR5U&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=RFHGQ2QKWTUVFWC4" data-wpel-link="external" target="_blank" rel="external noopener">Nikon D5200</a> in Sport mode.</li>



<li>All were hand-held albeit with VR on, and some were slightly motion-blurred, but these three best cases look fine to me in that regard.</li>



<li>Aperture was used for RAW conversion.</li>



<li>Full-size JPEGs are available <a href="https://wadetregaskis.com/wp-content/uploads/2013/10/Vernal-Falls.jpg" data-wpel-link="internal">here</a>, <a href="https://wadetregaskis.com/wp-content/uploads/2013/10/Vernal-Falls-with-an-expensive-polarising-filter.jpg" data-wpel-link="internal">here</a> and <a href="https://wadetregaskis.com/wp-content/uploads/2013/10/Vernal-Falls-with-a-cheap-polarising-filter.jpg" data-wpel-link="internal">here</a>. &nbsp;Original NEFs at request.</li>



<li>When I say &#8220;no filter&#8221; I technically mean &#8220;UV filter&#8221;, as this is the one lens I own where I think it&#8217;s worth protecting the front element. &nbsp;I haven&#8217;t done an objective evaluation of the optical effects of the UV filter, but it&#8217;s an expensive B+W one and I&#8217;ve never had reason to doubt its performance. &nbsp;Note that the shots with the circular polarising filters are with one or other of those&nbsp;<em>instead</em> of the UV filter, not stacked atop.</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/image-quality-vs-circular-polarising-filters/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<media:content url="https://wadetregaskis.com/wp-content/uploads/2013/10/Full-photo-comparison.jpg" medium="image" />
<post-id xmlns="com-wordpress:feed-additions:1">2795</post-id>	</item>
		<item>
		<title>SanDisk Extreme Pro vs Lexar Professional 600x</title>
		<link>https://wadetregaskis.com/sandisk-extreme-pro-vs-lexar-professional-600x/</link>
					<comments>https://wadetregaskis.com/sandisk-extreme-pro-vs-lexar-professional-600x/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Sun, 07 Apr 2013 19:07:38 +0000</pubDate>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Tested]]></category>
		<guid isPermaLink="false">http://blog.wadetregaskis.com/?p=2698</guid>

					<description><![CDATA[Tested on a D5200 in Manual mode with manual focus, ISO 100, 1/100 shutter, f/5.6, RAW. &#160;High ISO noise reduction and distortion correction were on. Both cards are 32 GB models. The SanDisk Extreme Pro allows for 21 shots in 10.0s, and takes another 13.8s to finish recording those. The Lexar Professional 600x&#160;takes 11.4s for&#8230; <a class="read-more-link" href="https://wadetregaskis.com/sandisk-extreme-pro-vs-lexar-professional-600x/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p>Tested on a D5200 in Manual mode with manual focus, ISO 100, 1/100 shutter, f/5.6, RAW. &nbsp;High ISO noise reduction and distortion correction were on.</p>



<p>Both cards are 32 GB models.</p>



<p>The <a href="https://www.amazon.com/gp/product/B007NDL56A/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007NDL56A&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=OV75NW63WRNXTNPY" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Extreme Pro</a> allows for 21 shots in 10.0s, and takes another 13.8s to finish recording those.</p>



<p>The <a href="https://www.amazon.com/gp/product/B00IF4O6V2/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O6V2&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=FHSU2TSVN53S2I7J" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x</a>&nbsp;takes 11.4s for the same 21 shots, and another 14.0s to finish recording those.</p>



<p>I didn&#8217;t experience any stuttering in shots when using the SanDisk Extreme Pro, but did encounter one instance of stuttering &#8211; a fairly minor one &#8211; with the Lexar. &nbsp;I have not previously seen either of these cards stutter, neither in tests like this nor in real-world use, so I think it&#8217;s a rare anomaly.</p>



<p>In both cases you can get only four shots at the advertised continuous shooting speed, at which point it slows down to a steady pace &#8211; the SanDisk maintaining a ~10% faster pace than the Lexar; ~1.8 vs ~1.6 FPS.</p>



<p>The difference between the two cards is much less significant than between either of them and e.g. the <a href="https://www.amazon.com/gp/product/B007M51J3I/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007M51J3I&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=YFQ26JTDBVHDN367" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Ultra</a> line. &nbsp;The SanDisk Extreme Pro seems to have a slight advantage, and is roughly the same cost as the Lexar, so I&#8217;ll give it first place, but in reality I&#8217;d be &#8211; indeed have been &#8211; happy using either of these cards, and haven&#8217;t noticed a practical difference.</p>



<p>Note: these aren&#8217;t the same settings I previously used to compare the Lexar Professional 600x to the SanDisk Ultra, nor the same camera body or lens.</p>



<p><strong>Update:</strong> using&nbsp;Blackmagic Disk Speed Test the SanDisk scores 63.6 / 86.3 MB/s, for write and read respectively. &nbsp;The Lexar gets 41.0 / 84.6 MB/s. &nbsp;Using a 15&#8243; 2012 Retina MacBook Pro. &nbsp;That&#8217;s about the difference I expected based on their specs and advertising. &nbsp;That you don&#8217;t get a 50% faster continuous shooting speed in a real camera doesn&#8217;t surprise me &#8211; I doubt the camera can always meet the bandwidth capacity of a high-end card, nor that there aren&#8217;t other bottlenecks waiting right behind SD write speed anyway.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/sandisk-extreme-pro-vs-lexar-professional-600x/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2698</post-id>	</item>
		<item>
		<title>Nikon 18-55 vs 18-105</title>
		<link>https://wadetregaskis.com/nikon-18-55-vs-18-105/</link>
					<comments>https://wadetregaskis.com/nikon-18-55-vs-18-105/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Sun, 07 Apr 2013 07:49:11 +0000</pubDate>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Tested]]></category>
		<guid isPermaLink="false">http://blog.wadetregaskis.com/?p=2687</guid>

					<description><![CDATA[The contenders are: Conclusions Which to get? Neither lens is clearly better than the other, technically. &#160;They have similar features and each exceeds the other in at least some areas. &#160;But the 18-55 is slightly smaller, significantly lighter, and much more consistent in its performance. &#160;Consequently I rate it as better value, given it&#8217;s significantly&#8230; <a class="read-more-link" href="https://wadetregaskis.com/nikon-18-55-vs-18-105/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p>The contenders are:</p>



<ul class="wp-block-list">
<li><a href="https://www.amazon.com/gp/product/B000ZMCILW/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B000ZMCILW&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=VUZBRZSELMY6UYIA" data-wpel-link="external" target="_blank" rel="external noopener">AF-S DX VR Zoom-Nikkor 18-55mm f/3.5-5.6G</a> (not to be confused with the newer <a href="https://www.amazon.com/gp/product/B00HQ4W4PC/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00HQ4W4PC&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=RSTTYFUWR4KYXTKA" data-wpel-link="external" target="_blank" rel="external noopener">VR II version</a>)</li>



<li><a href="https://www.amazon.com/gp/product/B001EO6W8K/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B001EO6W8K&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=ULILR6KM2KQ5EXJG" data-wpel-link="external" target="_blank" rel="external noopener">AF-S DX VR Zoom-Nikkor 18-105mm f/3.5-5.6G ED</a></li>
</ul>



<h2 class="wp-block-heading">Conclusions</h2>



<h3 class="wp-block-heading">Which to get?</h3>



<p>Neither lens is clearly better than the other, technically. &nbsp;They have similar features and each exceeds the other in at least some areas. &nbsp;But the 18-55 is slightly smaller, significantly lighter, and much more consistent in its performance. &nbsp;Consequently I rate it as better value, given it&#8217;s significantly cheaper.</p>



<p><em>But</em>, if you actually want the extra telephoto range (and the slight, undocumented wide-angle improvement)&nbsp;the 18-105 is a decent replacement (though in the 55-105 range you can get better quality from something like the Nikon 55-300, if you&#8217;re willing to swap lenses). &nbsp;On the other hand, if you spend most of your time at the wide end of these lenses, the 18-55 is undoubtedly better.</p>



<p>That said, I&#8217;m only intending to keep one, and I haven&#8217;t decided which it&#8217;ll be yet. &nbsp;I expected the 18-105 to be an unequivocal replacement for the 18-55, and as such I&#8217;m a bit disappointed.</p>



<h3 class="wp-block-heading">Sharpness</h3>



<p>Both lenses are pretty decent in <em>theoretical&nbsp;</em>sharpness, as tested here. &nbsp;Not pixel-perfect, but high enough that a 100% crop is pretty decent. &nbsp;The reality is that the differences between them are very small compared with the difference between perfectly steady &#8220;studio&#8221; shots versus real-world, hand-held use.</p>



<p>The difference in centre sharpness is small at all focal lengths, but the 18-55 does win almost all the time. &nbsp;The differences at the edges, however, can be dramatic &#8211; with the 18-105&nbsp;doing particularly poorly at shorter focal lengths.</p>



<p>Both lenses have surprisingly dramatic variations in sharpness across the frame in a somewhat random manner &#8211; e.g. some corners are better than others at one focal length, but their relationship can be completely different at another. &nbsp;There can be significant sharpness variation back and forth multiple times across the frame, with no obvious bias like left-side-always-sharper or similar, nor any apparent relationship to actual distance from the lens. &nbsp;I&#8217;m a little bit flustered by this. &nbsp;I don&#8217;t know how reproducible it is or have any idea what the cause is.</p>



<p>Interestingly, despite it&nbsp;<em>generally</em> being&nbsp;a wash between the two, the 18-105 does achieve significantly higher peak, localised sharpness. &nbsp;The problem is it&#8217;s not in the centre, and it&#8217;s not even a predictable spot, so I don&#8217;t know that it&#8217;s of any real use.</p>



<p>In terms of focal length, both are sharpest at 24mm. &nbsp;45mm and 55mm are softest.</p>



<h3 class="wp-block-heading">Autofocus</h3>



<p>Neither lens displayed a bias for my particular camera (focus calibration wasn&#8217;t a deliberate aspect of my testing, but I didn&#8217;t see any evidence of consistent front or back focus with either lens, nor any favouring of one lens over the other).</p>



<p>Phase-detection autofocus is significantly more accurate than contrast-detection autofocus, most of the time (~70% in my limited sampling, and worse ~20% of the time).</p>



<h3 class="wp-block-heading">Colour</h3>



<p>The 18-105 had slightly better colour much of the time. &nbsp;This means both stronger colours in certain hues, as well as colours that are overall closer to true life (at last according to my ColorMunki-calibrated iMac screen).</p>



<p>Note: I&#8217;ve found colour to be the most subjective and fungible aspect of a photo, so I don&#8217;t give this metric much weight in evaluating the lenses. &nbsp;Both produce excellently-coloured images by any practical measure.</p>



<h3 class="wp-block-heading">Contrast</h3>



<p>The 18-105 had noticeably better contrast much of the time. &nbsp;This was, curiously, somewhat independent of its relative sharpness. &nbsp;In particular, the 18-105 did a particularly better job reproducing blacks accurately &#8211; the 18-55 never really gave a pure black anywhere in the frame (despite the smaller aperture at some focal lengths).</p>



<h3 class="wp-block-heading">Chromatic aberration</h3>



<p>The 18-55 has only slight aberration at short focal lengths, and none at all at mid-to-long ones. &nbsp;It&#8217;s a very impressive lens in this regard. &nbsp;The 18-105, on the other hand, has some quite significant aberration at shorter focal lengths, which only reduces to what I consider mild aberration by about 35mm. &nbsp;The 18-105&#8217;s chromatic aberration is not just greater in terms of spatial shift, but also significantly more intense.</p>



<h3 class="wp-block-heading">Geometric distortion</h3>



<p>The 18-105 has more geometric distortion &#8211; especially barrel distortion at the wide end. &nbsp;Both lenses have essentially no distortion at mid range, but the 18-105 picks up some slight pincushioning as it gets longer, while the 18-55 remains excellently neutral.</p>



<p>I did not measure the complexity of the distortion, so I can&#8217;t comment as to how easy it is to correct. &nbsp;There was no waviness or non-linearity visible to the naked eye. &nbsp;I use Aperture generally, so I can&#8217;t correct it anyway. &nbsp;Grrr.</p>



<h3 class="wp-block-heading">Aperture</h3>



<p>The 18-105 has an on-paper ~0.3-stop advantage from 35mm on, which translates into a visible but minor improvement in illumination. &nbsp;However, I&nbsp;<em>also</em> noticed that the 18-105 produces ever so slightly brighter images even at the same aperture &nbsp;&#8211; on the order of about 5%, max. &nbsp;The net result is that the 18-105 is ever so slightly brighter at the wide end, steadily increasing to a genuine ~0.3 stops brighter at 55mm.</p>



<h3 class="wp-block-heading">Vignetting</h3>



<p>I didn&#8217;t test for it. &nbsp;Neither lens had obvious vignetting at any focal length, and if they did it&#8217;d be subjective as to whether it&#8217;s even bad to begin with, and easy enough to correct in any case.</p>



<h3 class="wp-block-heading">Vibration Reduction</h3>



<p>Not tested. &nbsp;<em>But</em>, I did have it enabled on both lenses initially, until I realised that the 18-55 was not producing a consistent framing &#8211; it would shift significantly between viewfinder and live-view modes, and slightly between shots within the same mode, even though the camera was very firmly locked in place. &nbsp;The 18-105 didn&#8217;t seem to have any such issues. &nbsp;Since I, like I suspect most people, just tend to leave VR on all the time, this might be something worth considering. &nbsp;The shift was significant enough that even if you&#8217;re not trying to take repeated, identically-framed shots, setting up the frame precisely for a single shot might be difficult.<em><br></em></p>



<h2 class="wp-block-heading">Method</h2>



<p>Note that this was done simply, quickly and not at all in a statistically reliable way (i.e. no multi-sampling, neither of lenses nor of shots).</p>



<ol class="wp-block-list">
<li><span style="line-height: 13px;">Set camera (D5200) up on tripod with infrared-remote-triggered shutter, shutter delay after mirror up, and everything locked very firmly.</span></li>



<li>Manual mode, ISO 100, constant lighting via three CFLs. &nbsp;Maximum aperture. &nbsp;Focal length specified using markings on the lens barrel (or, for the extreme wide and tele ends, by rotating the zoom ring as far as possible). &nbsp;Shutter speed set based on appropriate exposure at 18mm, and increased by one step for each increase in focal length (to vaguely represent necessarily higher shutter speeds, to see if the difference in maximum apertures ends up making a noticeable effect).</li>



<li>Attach first lens.</li>



<li>Focus [using phase detection in centre point] using shutter button half-press, take photo with remote.</li>



<li>Switch to live view mode, take photo with remote (which forces focusing first in centre point, using contrast detection).</li>



<li>Swap lenses. &nbsp;Set new lens to same focal length. &nbsp;Repeat steps 4 &amp; 5.</li>



<li>Move to next focal length. &nbsp;Move tripod so that roughly the same frame is made as at the prior focal length.</li>



<li>Goto step 4.</li>
</ol>



<p>My test scene was a shelf of a bookcase, starting at about 50cm away at 18mm, and ending up about 2.5m away at 55mm. &nbsp;The centre focus point was over the spines of two books, with sharp and contrasty writing on both. &nbsp;Both books were at the same distance from the camera. &nbsp;At some point I hope to compare the two with a test scene that&#8217;s at a much greater distance, to see how they perform for e.g. landscapes.</p>



<p>Note that I deliberately compared the lenses at wide open, which isn&#8217;t always the same aperture, because:</p>



<ol class="wp-block-list">
<li><span style="line-height: 13px;">Most people shoot wide open most of the time.</span></li>



<li>The differences in this case were small anyway.</li>
</ol>



<h2 class="wp-block-heading">Detailed observations</h2>



<h3 class="wp-block-heading">18mm</h3>



<p>The 18-105 in fact goes slightly wider.</p>



<p>They have the same maximum aperture (f/3.5).</p>



<p>The 18-105 has noticeably more barrel distortion &#8211; the 18-55&#8217;s is fairly subtle, whereas the 18-105&#8217;s is quite obvious.</p>



<p>The 18-55 is noticeably sharper for the most part, both in the centre but especially [relatively speaking] at the extremes of the frame.</p>



<p>The 18-105 has better contrast in places, and arguably better colour (mostly stronger).</p>



<p>Chromatic aberration is significantly stronger on the 18-105, both in terms of intensity and spatial shift.</p>



<h3 class="wp-block-heading">24mm</h3>



<p>They have the same maximum aperture (f/4).</p>



<p>The 18-55 still has very slight barrel distortion, but the 18-105 has essentially none.</p>



<p>Sharpness is about equal, but interestingly not consistent across the frame on either lens. &nbsp;The 18-55 has a slight advantage in the very centre, but this could be luck given the wild variation across the frame.</p>



<p>The 18-105 generally has better contrast &#8211; but not in all places in the frame &#8211; and colour is about equivalent overall, with some parts of the frame doing better than others for one lens vs the other.</p>



<p>Chromatic aberration is the same as at 18mm for both lenses &#8211; i.e. the 18-55 is significantly better.</p>



<h3 class="wp-block-heading">35mm</h3>



<p>The 18-105 has a slightly&nbsp;larger maximum aperture (f/4.5 vs f/5 &#8211; a 0.3 stop advantage).</p>



<p>The 18-105 has very slight pincushion distortion, while the 18-55 has essentially no geometric distortion.</p>



<p>The 18-55 is sharper in the centre, but the 18-105 is slightly sharper overall. &nbsp;The variation in sharpness across its frame is significantly greater than the 18-55&#8217;s.</p>



<p>The 18-105 has noticeably better contrast in many places. &nbsp;It is as good or better throughout the frame. &nbsp;It has slightly better colour.</p>



<p>Chromatic aberration is worse on the 18-105. &nbsp;The 18-55 has&nbsp;<em>no</em> chromatic aberration anywhere in the frame. &nbsp;Note however that the chromatic aberration that is present on the 18-105 is not nearly as bad as at shorter focal lengths, and is in absolute terms fairly mild.</p>



<h3 class="wp-block-heading">45mm</h3>



<p>The 18-105 has a slightly&nbsp;larger maximum aperture (f/4.8 vs f/5.3 &#8211; a 0.3 stop advantage).</p>



<p>The 18-105 has noticeable pincushion distortion, while the 18-55 has essentially no geometric distortion.</p>



<p>The 18-55 is slightly sharper in the centre, but the 18-105 is significantly sharper overall.</p>



<p>The 18-105 has better contrast in many places. &nbsp;It is as good or better throughout the frame. &nbsp;It has noticeably better colour.</p>



<p>Chromatic aberration is worse on the 18-105. &nbsp;The 18-55 has&nbsp;<em>no</em> chromatic aberration anywhere in the frame. &nbsp;Note however that the chromatic aberration that is present on the 18-105 is not nearly as bad as at shorter focal lengths (below 35mm), and is in absolute terms fairly mild.</p>



<h3 class="wp-block-heading">55mm</h3>



<p>The 18-105 has a slightly larger maximum aperture (f/5 vs f/5.6 &#8211; a 0.3 stop advantage).</p>



<p>The 18-105 has slight pincushion distortion, while the 18-55 has essentially no geometric distortion.</p>



<p>The 18-105 is noticeably sharper in general;&nbsp;<em>very</em> <em>slightly</em> sharper in the centre. &nbsp;The 18-55 is more consistent across the frame.</p>



<p>The 18-105 has better contrast in many places. &nbsp;It is&nbsp;as good or better throughout the frame. &nbsp;It has noticeably better colour.</p>



<p>Chromatic aberration is worse on the 18-105. &nbsp;The 18-55 has&nbsp;<em>no</em>&nbsp;chromatic aberration anywhere in the frame. &nbsp;Note however that the chromatic aberration that is present on the 18-105 is not nearly as bad as at shorter focal lengths (below 35mm), and is in absolute terms fairly mild.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/nikon-18-55-vs-18-105/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2687</post-id>	</item>
		<item>
		<title>D3200 burst mode performance</title>
		<link>https://wadetregaskis.com/d3200-burst-mode-performance/</link>
					<comments>https://wadetregaskis.com/d3200-burst-mode-performance/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Thu, 31 Jan 2013 07:11:24 +0000</pubDate>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Tested]]></category>
		<guid isPermaLink="false">http://blog.wadetregaskis.com/?p=2653</guid>

					<description><![CDATA[After my prior investigation into SD card performance, I wondered if shooting JPEG instead of RAW would make a meaningful difference on both &#8220;buffer capacity&#8221; and write rates. &#160;What I found was rather interesting, for many reasons. All the following use &#8220;JPEG Fine&#8221; except where otherwise stated. At ISO 100, with noise reduction &#38; distortion&#8230; <a class="read-more-link" href="https://wadetregaskis.com/d3200-burst-mode-performance/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p>After my prior investigation into SD card performance, I wondered if shooting JPEG instead of RAW would make a meaningful difference on both &#8220;buffer capacity&#8221; and write rates. &nbsp;What I found was rather interesting, for many reasons.</p>



<p>All the following use &#8220;JPEG Fine&#8221; except where otherwise stated.</p>



<p>At ISO 100, with noise reduction &amp; distortion correction enabled, it manages just ten shots in ~2.8 seconds before slowing down. &nbsp;It hits 21 shots total after another ~5.7 seconds (so 8.5s total), and completes writing all 21 shots to the <a href="https://www.amazon.com/gp/product/B00IF4O6V2/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O6V2&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=XVOKWUCMIQTLUVTG" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 32 GB</a> after another ~14.5 seconds. &nbsp;So that&#8217;s ~23 seconds in total for 21 shots. &nbsp;This is slightly better than shooting RAW, where you get nine shots before it slows down, and it takes an additional eight or nine seconds to finish writing to the SD card.</p>



<p>Disable noise reduction, and that jumps to twelve shots in ~3.4 seconds, the remaining nine in ~4.6 more seconds (~8.0 total), and completes the writes after another ~18.4 seconds. &nbsp;So ~22.4 seconds for 21 shots.</p>



<p>Turn noise reduction back on but disable distortion correction, and something really interesting happens. &nbsp;You get 100 shots. &nbsp;And then it won&#8217;t take any more. &nbsp;At all. &nbsp;You have to let go of the shutter and start again. &nbsp;I&#8217;m guessing there&#8217;s some kind of safety mechanism which forces no more than 100 shots at a time, in case you accidentally leave it on, shoved in your bag, and don&#8217;t particularly want it to fill your entire SD card with the inside of the lens cover (or break the mirror off trying).</p>



<p>It takes 26.4 seconds to shoot those hundred shots. &nbsp;Give or take less than a few hundred milliseconds. &nbsp;And 97 seconds to save them all. &nbsp;It&#8217;s interesting that that equates to just under 3.8 shots per second, not the 4 that Nikon advertises. &nbsp;I tested this repeatedly and the numbers were <em>exactly</em> the same every single time, to the precision shown (noted uncertainty comes from my stopwatch).</p>



<p>So turning noise reduction off again doesn&#8217;t help anything. &nbsp;In either case you can take photos effectively non-stop, in back-to-back 100-shot bursts. &nbsp;I got bored after three or four hundred &#8211; if there is in fact a limit, you&#8217;re not going to hit it in reality.</p>



<p>Now, use ISO 6,400, and things return to &#8220;normal&#8221;, which is a lot less impressive. &nbsp;With noise reduction and distortion correction, you get seven shots. &nbsp;That&#8217;s exactly the same as when&nbsp;shooting RAW. &nbsp;It takes two seconds for those seven shots, and another ~10 seconds for the remaining fourteen, with a total write time of ~28.6 seconds. &nbsp;That&#8217;s about three or four seconds faster to flush the buffer than when shooting RAW, but otherwise roughly the same.</p>



<p>And so it goes when toggling noise reduction or distortion correction &#8211; essentially the same &#8220;buffer capacity&#8221; whether RAW or JPEG, with writes <em>slightly</em>&nbsp;faster to the SD card, but not significantly.</p>



<p>So, long story short? &nbsp;So far as buffer capacity goes, if you&#8217;re shooting at high ISO, it doesn&#8217;t make any meaningful difference whether you shoot RAW or JPEG. &nbsp;And if you&#8217;re shooting at very low ISO, it still makes little difference <em>unless</em>&nbsp;you&#8217;re willing to turn off distortion correction, in which case&nbsp;it makes a <em>massive</em> difference.</p>



<p>And when you do hit the &#8220;buffer capacity&#8221; and start being write limited, then there&#8217;s actually a consistently significant difference &#8211; RAWs can be written at about 0.75 FPS regardless of ISO setting, while JPEGs run up to 1.95 FPS at ISO 100, but only 1.35 FPS at ISO 6,400. &nbsp;<em>Unless</em>&nbsp;you turn off distortion correction, in which case you can get up to 3.0 FPS.</p>



<p>Tangentially, something else I found interesting was that the camera is incapable of shooting at it&#8217;s full 3.8 FPS if the shutter speed drops too low. &nbsp;And not just to 1/4 or slower, which would be obvious, but much sooner, at 1/15 at least. &nbsp;You&#8217;re lucky to get 3 FPS then. &nbsp;But 1/60 is apparently fine for full 3.8 FPS. &nbsp;Apparently the mirror settle time is quite significant.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/d3200-burst-mode-performance/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2653</post-id>	</item>
		<item>
		<title>D3200 SD card performance (and fallacies surrounding the D3200&#8217;s buffer capacity)</title>
		<link>https://wadetregaskis.com/d3200-sd-card-performance-and-fallacies-surrounding-the-d3200s-buffer-capacity/</link>
					<comments>https://wadetregaskis.com/d3200-sd-card-performance-and-fallacies-surrounding-the-d3200s-buffer-capacity/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Sat, 26 Jan 2013 04:03:19 +0000</pubDate>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Tested]]></category>
		<guid isPermaLink="false">http://blog.wadetregaskis.com/?p=2640</guid>

					<description><![CDATA[SanDisk Ultra 32 GB vs Lexar Professional 600x 32 GB. &#160;On paper the Lexar is at least twice as fast for writes, thrice as fast for reads. Test setup: &#160;Nikon 55-300 @ 55/4.5 switched to manual focus (and slightly out of focus), VR on, in Program mode in a dimly lit room, framed roughly the&#8230; <a class="read-more-link" href="https://wadetregaskis.com/d3200-sd-card-performance-and-fallacies-surrounding-the-d3200s-buffer-capacity/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p><a href="https://www.amazon.com/gp/product/B007M51J3I/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007M51J3I&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=7AJO7ROB6O5SDTPH" data-wpel-link="external" target="_blank" rel="external noopener">SanDisk Ultra 32 GB</a> vs <a href="https://www.amazon.com/gp/product/B00IF4O6V2/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B00IF4O6V2&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=XVOKWUCMIQTLUVTG" data-wpel-link="external" target="_blank" rel="external noopener">Lexar Professional 600x 32 GB</a>. &nbsp;On paper the Lexar is at least twice as fast for writes, thrice as fast for reads.</p>



<p>Test setup: &nbsp;<a href="https://www.amazon.com/gp/product/B003ZSHNCC/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B003ZSHNCC&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=UMVJCE2DKJZZW4CG" data-wpel-link="external" target="_blank" rel="external noopener">Nikon 55-300</a> @ 55/4.5 switched to manual focus (and slightly out of focus), VR on, in Program mode in a dimly lit room, framed roughly the same (closed blinds, if you must know). &nbsp;The camera thus chose to shoot at ISO 6,400 and ~1/80.</p>



<p>Both cards typically achieve seven shots before &#8220;filling the buffer&#8221;. &nbsp;In repeated trials the Lexar was able to get that as high as nine, just once, while both were able to hit eight perhaps a quarter of the time.</p>



<p>The Lexar then shoots at about 0.75 FPS. &nbsp;All told 21 shots take 32 seconds to capture and completely flush to the card (of which ~19 seconds is pure write time).</p>



<p>The SanDisk shoots at about 0.5 FPS, with 21 shots taking over sixty seconds to capture and completely flush (of which ~35 seconds is pure write time).</p>



<p>Tangentially, and sadly, on a 2011 iMac&#8217;s built-in SD card reader they both perform essentially the same &#8211; limited by the SD card reader&#8217;s pitiful performance of at most 20 MB/s. &nbsp;The Lexar might have a slight edge in writing, within that 20 MB/s limit, but both cards are far from their limits most of the time. &nbsp;Stupid iMac.</p>



<p>It&#8217;s also a bit of a crappy performance from the camera itself. &nbsp;Nikon&#8217;s own advertising (not to mention the camera&#8217;s official manual) state that it can fit eighteen RAWs in its buffer, but with the small-print caveat of being only at ISO 100 with noise reduction and distortion correction turned off.</p>



<p>Switching to Shutter-priority mode (1/500), at ISO 100 (thus producing a completely black image in my room, but representing a reasonable sunny outdoors config), the SanDisk was able to achieve nine, sometimes ten shots before the buffer filled. &nbsp;Turning off automatic distortion correction gave it maybe one more. &nbsp;Turning off noise reduction gave it another one, bringing it to at best twelve. &nbsp;Pretty far from the eighteen Nikon claims.</p>



<p>The Lexar is actually able to get close, achieving seventeen pretty reliably. &nbsp;Turn noise reduction back on, however, and that goes down by about three. &nbsp;Bizarrely, turn on automatic distortion correction and it goes down to nine, which is both a dramatic drop for a pure black exposure &#8211; hint: there is no distortion! &#8211;&nbsp;and&nbsp;actually&nbsp;<em>less</em> than the SanDisk. &nbsp;It was in fact barely better than at ISO 6,400.</p>



<p>The bottom line is, in realistic use the <a href="https://www.amazon.com/gp/product/B007VGGFZU/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B007VGGFZU&amp;linkCode=as2&amp;tag=wasbl08-20&amp;linkId=FLSNHYLGMB4WNMZB" data-wpel-link="external" target="_blank" rel="external noopener">D3200</a> is capable of&nbsp;<em>maybe</em>&nbsp;ten shots at its advertised 4 FPS.</p>



<p>And the winner of the two SD cards? &nbsp;The Lexar does have a clear advantage, even if you&#8217;re not filling the buffer immediately. &nbsp;It flushes faster so you can do more frequent short bursts of four or five, which is much more typical of my use. &nbsp;And it feels much more dramatic in practice than the numbers suggest. &nbsp;It was also much more consistent &#8211; those 0.75 FPS were very evenly spaced, whereas the SanDisk had gaps of up to several seconds (which I&#8217;ve been very frustrated by in practice repeatedly).</p>



<p>Worth the price difference? &nbsp;~$30 vs ~$60. &nbsp;Hard to say when comparing them in a vacuum. &nbsp;But when you consider that the camera gear is worth way more than $30 to begin with, and capturing the right moments can be highly valuable, then $30 seems a pretty ridiculous corner to cut. &nbsp;From now on, I&#8217;ll be choosing high end cards. &nbsp;And possibly investing in a real SD card reader, one that doesn&#8217;t suck arse.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/d3200-sd-card-performance-and-fallacies-surrounding-the-d3200s-buffer-capacity/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2640</post-id>	</item>
	</channel>
</rss>
