<?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>audio &#8211; Wade Tregaskis</title>
	<atom:link href="https://wadetregaskis.com/tags/audio/feed/" rel="self" type="application/rss+xml" />
	<link>https://wadetregaskis.com</link>
	<description></description>
	<lastBuildDate>Tue, 09 Dec 2025 18:31:55 +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>audio &#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>Fading audio with AVPlayer</title>
		<link>https://wadetregaskis.com/fading-audio-with-avplayer/</link>
					<comments>https://wadetregaskis.com/fading-audio-with-avplayer/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Wed, 10 Dec 2025 16:29:00 +0000</pubDate>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[AVAudioMix]]></category>
		<category><![CDATA[AVAudioMixInputParameters]]></category>
		<category><![CDATA[AVMutableAudioMix]]></category>
		<category><![CDATA[AVMutableAudioMixInputParameters]]></category>
		<category><![CDATA[AVPlayer]]></category>
		<category><![CDATA[fade]]></category>
		<category><![CDATA[Swift]]></category>
		<guid isPermaLink="false">https://wadetregaskis.com/?p=8630</guid>

					<description><![CDATA[AVPlayer doesn&#8217;t provide a built-in way to fade in or out. I previously described how you achieve a video fade-in (or out) using general CoreAnimation layer animation, as part of making a macOS screen saver. Now let&#8217;s tackle the audio. I&#8217;m not certain what curve this implements, but to my ears it doesn&#8217;t sound quite&#8230; <a class="read-more-link" href="https://wadetregaskis.com/fading-audio-with-avplayer/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p><code>AVPlayer</code> doesn&#8217;t provide a built-in way to fade in or out.  I previously described how you achieve a <em>video</em> fade-in (or out) using general CoreAnimation layer animation, as <a href="https://wadetregaskis.com/how-to-make-a-macos-screen-saver/#Bonus_topic_fading_in" data-wpel-link="internal">part of making a macOS screen saver</a>.  Now let&#8217;s tackle the audio.</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: #0000FF">extension</span><span style="color: #000000"> </span><span style="color: #267F99">AVPlayer</span><span style="color: #000000"> {</span></span>
<span class="line"><span style="color: #000000">    </span><span style="color: #0000FF">func</span><span style="color: #000000"> </span><span style="color: #795E26">fadeAudio</span><span style="color: #000000">(</span><span style="color: #795E26">from</span><span style="color: #000000"> </span><span style="color: #001080">startVolume</span><span style="color: #000000">: </span><span style="color: #267F99">Float</span><span style="color: #000000">, </span><span style="color: #795E26">to</span><span style="color: #000000"> </span><span style="color: #001080">endVolume</span><span style="color: #000000">: </span><span style="color: #267F99">Float</span><span style="color: #000000">, </span><span style="color: #795E26">duration</span><span style="color: #000000">: </span><span style="color: #267F99">Double</span><span style="color: #000000">) {</span></span>
<span class="line"><span style="color: #000000">        </span><span style="color: #0000FF">let</span><span style="color: #000000"> audioMix = </span><span style="color: #795E26">AVMutableAudioMix</span><span style="color: #000000">()</span></span>
<span class="line"></span>
<span class="line"><span style="color: #000000">        audioMix.</span><span style="color: #001080">inputParameters</span><span style="color: #000000"> = (player.</span><span style="color: #001080">currentItem</span><span style="color: #000000">?.</span><span style="color: #001080">tracks</span><span style="color: #000000"> ?? [])</span></span>
<span class="line"><span style="color: #000000">                                    .</span><span style="color: #795E26">compactMap</span><span style="color: #000000">(\.</span><span style="color: #001080">assetTrack</span><span style="color: #000000">)</span></span>
<span class="line"><span style="color: #000000">                                    .</span><span style="color: #795E26">filter</span><span style="color: #000000">({ </span><span style="color: #0000FF">$0</span><span style="color: #000000">.</span><span style="color: #001080">mediaType</span><span style="color: #000000"> == .</span><span style="color: #001080">audio</span><span style="color: #000000"> })</span></span>
<span class="line"><span style="color: #000000">                                    .</span><span style="color: #795E26">map</span><span style="color: #000000"> { track </span><span style="color: #AF00DB">in</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #0000FF">let</span><span style="color: #000000"> currentTime = player.</span><span style="color: #795E26">currentTime</span><span style="color: #000000">()</span></span>
<span class="line"></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #0000FF">let</span><span style="color: #000000"> parameters = </span><span style="color: #795E26">AVMutableAudioMixInputParameters</span><span style="color: #000000">(</span><span style="color: #795E26">track</span><span style="color: #000000">: track)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #000000">            parameters.</span><span style="color: #795E26">setVolumeRamp</span><span style="color: #000000">(</span><span style="color: #795E26">fromStartVolume</span><span style="color: #000000">: startVolume,</span></span>
<span class="line"><span style="color: #000000">                                     </span><span style="color: #795E26">toEndVolume</span><span style="color: #000000">: endVolume,</span></span>
<span class="line"><span style="color: #000000">                                     </span><span style="color: #795E26">timeRange</span><span style="color: #000000">: </span><span style="color: #795E26">CMTimeRange</span><span style="color: #000000">(</span><span style="color: #795E26">start</span><span style="color: #000000">: currentTime,</span></span>
<span class="line"><span style="color: #000000">                                                            </span><span style="color: #795E26">duration</span><span style="color: #000000">: </span><span style="color: #795E26">CMTime</span><span style="color: #000000">(</span><span style="color: #795E26">seconds</span><span style="color: #000000">: duration,</span></span>
<span class="line"><span style="color: #000000">                                                                             </span><span style="color: #795E26">preferredTimescale</span><span style="color: #000000">: currentTime.</span><span style="color: #001080">timeScale</span><span style="color: #000000">)))</span></span>
<span class="line"></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #AF00DB">return</span><span style="color: #000000"> parameters</span></span>
<span class="line"><span style="color: #000000">        }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #000000">        player.</span><span style="color: #001080">currentItem</span><span style="color: #000000">?.</span><span style="color: #001080">audioMix</span><span style="color: #000000"> = audioMix</span></span>
<span class="line"><span style="color: #000000">    }</span></span>
<span class="line"><span style="color: #000000">}</span></span></code></pre></div>



<p>I&#8217;m not certain what curve this implements, but to my ears it doesn&#8217;t sound quite as harsh as a naive linear ramp, so perhaps it&#8217;s an S-curve or similar.</p>



<h2 class="wp-block-heading">Edge cases not handled</h2>



<h3 class="wp-block-heading">Where there&#8217;s less than <code>duration</code> time left in the track(s).</h3>



<p>How you want to handle that might vary depending on context. e.g. you could clamp the duration to the remaining duration (but you have to think about whether your individual tracks all have the same duration, whether they match the duration of the overall playback item, and whether they&#8217;re all aligned within the playback sequence), or wrap it around to the beginning (if you&#8217;re looping), or carry the fade through to the next item (if you&#8217;re playing a sequence of items), etc. Alas this must be left as an exercise to you, the reader.</p>



<h3 class="wp-block-heading">Starting a fade while another one is still in progress.</h3>



<p>It will halt the previous fade, immediately jump to <code>startVolume</code>, and perform the new fade. If you know that a prior fade is in progress you could potentially extrapolate the current volume and start from there instead (though beware of non-linear ramping).</p>



<h3 class="wp-block-heading">If you move the playhead backwards (e.g. skimming, or looped playback).</h3>



<p>The mix will stay in place, and result in wonky volume levels on the subsequent plays through. To work around that, you can add:</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: #000000">player.</span><span style="color: #001080">currentItem</span><span style="color: #000000">?.</span><span style="color: #001080">audioMix</span><span style="color: #000000"> = </span><span style="color: #0000FF">nil</span></span>
<span class="line"><span style="color: #000000">player.</span><span style="color: #001080">volume</span><span style="color: #000000"> = endVolume</span></span></code></pre></div>



<p>…wherever you restart playback at the beginning or move playback earlier than the end of the fade.</p>



<h2 class="wp-block-heading">Future work?</h2>



<p>You <em>can</em> work around these limitations by doing a timer-based fade (i.e. <code>player.volume += smallIncrement</code> at regular, short intervals). However, the problem with that approach is that it&#8217;s not synchronised to actual playback &#8211; e.g. if the audio is paused, stutters, or faces an initial loading delay, your fade won&#8217;t wait for it, potentially resulting in no fade at all (e.g. it takes five seconds to buffer the audio before playback starts, at which point your five second &#8220;fade&#8221; has run to completion, so your audio starts playing abruptly at full volume).</p>



<p>There&#8217;s very likely a third option that addresses <em>all</em> these shortcomings, but I explored that a bit and concluded that it&#8217;d be a lot more work.  If someone wants to explore that all the way, I&#8217;d be interested to see the result.  But for many purposes the above code is quite sufficient.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/fading-audio-with-avplayer/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8630</post-id>	</item>
		<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>Aussie student interns savour Cupertino</title>
		<link>https://wadetregaskis.com/aussie-student-interns-savour-cupertino/</link>
					<comments>https://wadetregaskis.com/aussie-student-interns-savour-cupertino/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Mon, 08 Jan 2024 20:28:22 +0000</pubDate>
				<category><![CDATA[Ancient History]]></category>
		<category><![CDATA[AUC]]></category>
		<category><![CDATA[Ashley Butterworth]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[AVTP]]></category>
		<category><![CDATA[Brett Brooks]]></category>
		<category><![CDATA[FireWire]]></category>
		<category><![CDATA[IEEE 1394]]></category>
		<category><![CDATA[IEEE 1722]]></category>
		<category><![CDATA[isochronous transport]]></category>
		<category><![CDATA[Little Brown Monkey]]></category>
		<category><![CDATA[Milan]]></category>
		<category><![CDATA[Motor Neurone Disease]]></category>
		<category><![CDATA[Wheels for the Mind]]></category>
		<guid isPermaLink="false">https://wadetregaskis.com/?p=7397</guid>

					<description><![CDATA[That was the curious choice of grabline for the article in Wheels for the Mind, the AUC&#8217;s magazine, about the Apple internship experience had by Ashley Butterworth, Brett Brooks, and myself. Wheels for the Mind 2006 (Autumn) (cached) They even put a picture of me on the cover, which seems mean [to their readers]. This&#8230; <a class="read-more-link" href="https://wadetregaskis.com/aussie-student-interns-savour-cupertino/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p>That was the curious choice of grabline for the article in Wheels for the Mind, the AUC&#8217;s magazine, about the Apple internship experience had by Ashley Butterworth, Brett Brooks, and myself.</p>



<div class="pdf-iframe-a4 aligncenter size-full">
  <iframe src="https://wadetregaskis.com/wp-content/uploads/2024/01/Wheels-for-the-Mind-2006-Autumn-cover.pdf"></iframe>
</div>
<figcaption class="wp-element-caption">
  <a href="https://auc.edu.au/media/wheels/Wheels_2006_Autumn.pdf" data-wpel-link="external" target="_blank" rel="external noopener">Wheels for the Mind 2006 (Autumn)</a> (<a href="https://wadetregaskis.com/wp-content/uploads/2024/01/Wheels-for-the-Mind-2006-Autumn.pdf" data-wpel-link="internal">cached</a>)
</figcaption>



<p>They even put a picture of me on the cover, which seems mean [to their readers].</p>



<p>This was the follow-up to <a href="https://wadetregaskis.com/introduction-2/" data-wpel-link="internal">an article a year earlier</a> that announced we three were set to intern at Apple.</p>



<p>I&#8217;m posting it here now because I apparently never did prior, and I&#8217;d just like to include it in my records.  I actually remember reading the article, although oddly not providing any of the quotes used in it (I&#8217;m sure I did; I genuinely have just forgotten).</p>



<div class="pdf-iframe-a4 aligncenter size-full">
  <iframe src="https://wadetregaskis.com/wp-content/uploads/2024/01/Wheels-for-the-Mind-2006-Autumn-page-4-22Apple-interns-back-in-Oz22.pdf"></iframe>
</div>
<figcaption class="wp-element-caption">
  <a href="https://auc.edu.au/media/wheels/Wheels_2006_Autumn.pdf" data-wpel-link="external" target="_blank" rel="external noopener">Wheels for the Mind 2006 (Autumn)</a> (<a href="https://wadetregaskis.com/wp-content/uploads/2024/01/Wheels-for-the-Mind-2006-Autumn.pdf" data-wpel-link="internal">cached</a>)
</figcaption>



<p>I&#8217;m not sure what I was referring to &#8211; if anything specific &#8211; regarding &#8220;so that&#8217;s how they do that!&#8221; but I do vaguely recall that it was indeed a real pleasure to have access to a lot of Apple frameworks&#8217; source code.  I dove into a whole bunch of it purely out of curiosity.  Of course, fifteen years later I don&#8217;t remember anything about it.</p>



<p>I had forgotten &#8211; until I chanced upon this Wheels for the Mind article a few weeks ago &#8211; about Brett&#8217;s project entirely.  I did vaguely remember that Ashley worked in the Core Audio team, although in my mind it was &#8220;FireWire audio&#8221; specifically that he was involved with.  I vaguely recall some discussions about <a href="https://en.wikipedia.org/wiki/Isochronous_timing" data-wpel-link="external" target="_blank" rel="external noopener">isochronous</a> transport support &#8211; <a href="https://arstechnica.com/gadgets/2017/06/the-rise-and-fall-of-firewire-the-standard-everyone-couldnt-quite-agree-on/" data-wpel-link="external" target="_blank" rel="external noopener">something unique to FireWire at the time</a>, notably as opposed to its competitor USB &#8211; and its huge benefits for live audio.  We [Apple fans] were all particularly bullish on FireWire and quite offended by the mass-market success of the comically inferior USB.  So we relished specific examples where FireWire embarrassed USB, in terms of not just its speed but its basic capabilities (like live media).</p>



<p>I haven&#8217;t spoken with Ashley or Brett in what must be at least a decade &#8211; probably since about when our internship ended and we all separated once more on our return to Oz.  We&#8217;d barely met before the internship &#8211; perhaps just at the AUC 2005 conference in Hobart; I know at least Brett was there for that &#8211; and being thrown together into a two-bedroom apartment in Cupertino. 😆</p>



<h3 class="wp-block-heading">Where are they now?</h3>



<p>I&#8217;m here now, obviously. 😜</p>



<p>Ashley interned at Apple at least twice more &#8211; in fact I think we ran into each other once or twice as a result, as I was there full-time by the time of his third internship at least.  He eventually joined for real, as a full-time employee.  <a href="https://www.linkedin.com/in/ashley-butterworth-4135693/" data-wpel-link="external" target="_blank" rel="external noopener">And that&#8217;s where he still is</a>!  <em>And</em> still doing audio &#8211; from his early days with <a href="https://grouper.ieee.org/groups/1722/1/contributions/2011/1722.1-butterworth-avdecc-entity-model.pdf" data-wpel-link="external" target="_blank" rel="external noopener">IEEE presentations</a> to working on <a href="https://avnu.org/milan/" data-wpel-link="external" target="_blank" rel="external noopener">Milan</a> (<a href="https://avnu.org/wp-content/uploads/2014/05/Milan-InteropSpec-MediaClocking-2.0-1.pdf" data-wpel-link="external" target="_blank" rel="external noopener">for synchronising clocks over a network</a>, for AV media purposes specifically) to at least as recently as 2020 with <a href="https://grouper.ieee.org/groups/1722/contributions/2020/IEEE1722b-bechtel-WorkItemsAndPrelimPlanning.pdf" data-wpel-link="external" target="_blank" rel="external noopener">work</a> on <a href="https://grouper.ieee.org/groups/1722/" data-wpel-link="external" target="_blank" rel="external noopener">IEEE 1722</a> (<a href="https://grouper.ieee.org/groups/802/1/files/public/docs2009/avb-rboatright-p1722-explained-0903.pdf" data-wpel-link="external" target="_blank" rel="external noopener">AVTP, Audio Visual Transport Protocol</a>).  As well as <a href="https://www.ieee802.org/1/files/public/docs2015/as-kbstanton-caldana-ftm-addition-to-1as-guiding-principles-and-proposal-0315-v09.pdf" data-wpel-link="external" target="_blank" rel="external noopener">some AV timing-related working on 802.11 (wifi)</a>.  And possibly more &#8211; digging through IEEE papers &amp; websites is not the most entertaining nor rapid escapade. 😝</p>



<p>Brett <a href="https://www.linkedin.com/in/brett-brooks-78b78321/" data-wpel-link="external" target="_blank" rel="external noopener">appears to have done</a> some iOS consulting and <a href="https://vidafit.com.au/team/brett-brooks/" data-wpel-link="external" target="_blank" rel="external noopener">fitness coaching</a>, of all things!  That&#8217;s particularly poetic because &#8211; when we were Apple interns &#8211; we were all a bit plump; very stereotypical computer nerds.  As his coach bio says:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Brett started at VidaFit doing an Overhaul back in 2014 as a self-proclaimed overweight, headache prone, generally sluggish computer geek.</p>
</blockquote>



<p><a href="https://www.couriermail.com.au/news/queensland/rockhampton/community/men-in-tights-lead-fight-against-motor-neuron-disease/news-story/8ea65af1cd299d5d7699541ef78e1869" data-wpel-link="external" target="_blank" rel="external noopener">He&#8217;s also been fighting Motor Neurone Disease on behalf of his sister and all its sufferers</a>, which it seems led him into social media consulting and general computer support under the business name <a href="https://littlebrownmonkey.com" data-wpel-link="external" target="_blank" rel="external noopener">Little Brown Monkey</a> &#8211; an ironic name, given how search-engine-hostile it is 😆.  <a href="https://littlebrownmonkey.com/about/" data-wpel-link="external" target="_blank" rel="external noopener">Apparently it&#8217;s based on sentimental value</a>.  Still, it&#8217;s particularly funny since &#8220;Brett Brooks&#8221; is a fairly common name &#8211; with <em>multiple</em> minor celebrities using it &#8211; so he is already a little hard to find.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/aussie-student-interns-savour-cupertino/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			<media:content url="https://wadetregaskis.com/wp-content/uploads/2024/01/Me-sitting-on-the-steps-of-our-Cupertino-apartment-building-waiting-for-our-ride-Simon.avif" medium="image" />
<post-id xmlns="com-wordpress:feed-additions:1">7397</post-id>	</item>
	</channel>
</rss>
