<?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/"
	>

<channel>
	<title>How To &#8211; Moeller Studios</title>
	<atom:link href="https://www.moellerstudios.org/category/how-to/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.moellerstudios.org</link>
	<description></description>
	<lastBuildDate>Wed, 30 Oct 2024 18:34:54 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.moellerstudios.org/wp-content/uploads/cropped-MStudiosFavicon-32x32.png</url>
	<title>How To &#8211; Moeller Studios</title>
	<link>https://www.moellerstudios.org</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How To: Higher-Order Ambisonics (HOA) on a Mac</title>
		<link>https://www.moellerstudios.org/higher-order-ambisonics-hoa-on-a-mac/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=higher-order-ambisonics-hoa-on-a-mac</link>
					<comments>https://www.moellerstudios.org/higher-order-ambisonics-hoa-on-a-mac/#respond</comments>
		
		<dc:creator><![CDATA[John]]></dc:creator>
		<pubDate>Fri, 12 Apr 2024 20:46:26 +0000</pubDate>
				<category><![CDATA[How To]]></category>
		<guid isPermaLink="false">https://www.moellerstudios.org/?p=1613</guid>

					<description><![CDATA[This tutorial describes how to render sound files into higher-order Ambisonics (up to seventh order) using the Reaper DAW and the IEM Suite plugins. Install the Software Download and install Reaper: https://www.reaper.fm/download.php The version I downloaded was: Reaper is a &#8230; <a href="https://www.moellerstudios.org/higher-order-ambisonics-hoa-on-a-mac/">Read More</a>]]></description>
										<content:encoded><![CDATA[
<p>This tutorial describes how to render sound files into higher-order Ambisonics (up to seventh order) using the Reaper DAW and the IEM Suite plugins.</p>



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



<h2 class="wp-block-heading">Install the Software</h2>



<p>Download and install Reaper:</p>



<p><a href="https://www.reaper.fm/download.php" target="_blank" rel="noreferrer noopener">https://www.reaper.fm/download.php</a></p>



<p>The version I downloaded was:</p>



<pre class="wp-block-code"><code>reaper683_universal.dmg</code></pre>



<p>Reaper is a stand-alone app that you place in your applications folder. They provide a fully-functional, 60-day trial.</p>



<p>Download and install the IEM Suite plugins:</p>



<p><a href="https://plugins.iem.at/download/" target="_blank" rel="noreferrer noopener">https://plugins.iem.at/download/</a></p>



<p>The version I downloaded was:</p>



<pre class="wp-block-code"><code>IEMPluginSuite_v1.14.1.pkg</code></pre>



<p>The installer puts all the plugins in the correct places:</p>



<p>Plug-ins here:</p>



<pre class="wp-block-code"><code>/Library/Audio/Plug-Ins/VST<br>/Library/Audio/Plug-Ins/LV2</code></pre>



<p>Stand-alones here:</p>



<pre class="wp-block-code"><code>/Applications/IEM Plug-in Suite</code></pre>



<p>Launch Reaper. You can see the plugins by going here:</p>



<p>View&#8211;&gt;FX Browser&#8211;&gt;[Search for IEM]



<p>You should see all the IEM plug-ins (both VST and LV2).</p>



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



<h2 class="wp-block-heading">Set up Reaper and the IEM Plug-ins</h2>



<p>Create a new project in Reaper (if one hasn’t already been created).</p>



<p>Click on the icon with the “i” with a circle around it. Check the box and match the sample rate to your sound files.</p>



<p>Double-click in the mixer area to create a new track, one for Headphones, and one for Ambisonics.</p>



<p>Rename the tracks by double-clicking above the track number in the mixing area.</p>



<p>The Headphone track will be used for binaural monitoring and rendering. The Ambisonics track will used for all the sound sources and their spatial positioning.</p>



<p>Click on the Route button (above the word “Route” on the tracks in the mixer area).</p>



<p>On both the tracks, change “Track Channels” to match the number necessary for the order of Ambisonics you are using. This is obtained with the following formula: ((Order+1)^2).</p>



<p>For example, 7<sup>th</sup> order is: ((7+1)^2)=64.</p>



<p><em>Note: It looks like Reaper does Track Channels in even numbers only; for an odd number, set it to the next higher number; for example, for 6<sup>th</sup> order Ambisonics (i.e., [[6+1]^2]=49), set the Track Channels to 50, don&#8217;t use the last channel, and upon rendering, render out 49 channels.</em></p>



<p>On the Ambisonics track (on the dialog box that appears after pressing the Route button), uncheck “Master send channels from/to”, but leave it checked on the Headphone track.</p>



<p>Click and drag the Route button from the Ambisonics track to the Route button of the Headphones track.</p>



<p>In the dialog box that appears, click Audio&#8211;&gt;Multichannel source&#8211;&gt;Select &#8220;1–64&#8221; (or use the number you need for the Ambisonics order you are using).</p>



<p>At the top of each track, click on the bar that says FX.</p>



<p>Add the plugin “VST: Binaural Decoder” to the Headphones track.</p>



<p>Add the plugins “VST: Multi Encoder” and “VST: Energy Visualizer” to the Ambisonics track.</p>



<p>If you have a single audio file for your sound source(s), drag and position the file on the Ambisonics track in the arrange window. The audio file can be mono or multi-channel (a single sound file can be up to 64 channels; above that, it doesn&#8217;t return an error, but the waveforms of the track don&#8217;t appear in the region).</p>



<p>If you have multiple audio files for your sound source(s), create new tracks by double-clicking in an empty area under the track headers in the arrange window. Set the size of each track according to the Ambisonics order you are using (press the Route button on each track and adjust &#8220;Track Channels&#8221;). Select the new tracks and drag them onto the Ambisonic track (the tracks will appear indented, showing they are succesfully routed to the Ambisonic track). Drag and position your audio files on the new tracks as desired. The audio files can be mono or multi-channel.</p>



<p>Go back to the “VST: Multi Encoder” plug in, in the upper left corner, select the number that matches the channel count of your highest multi-channel sound file. For example, for a 64-channel audio file, change it to 64. This will add azimuth, elevation, gain, solo, and mute controls for each channel in the sound file(s).</p>



<p>Using the “VST: Multi Encoder” plug-in GUI, position each channel in the audio file(s) in the sound field as desired. Add automation, if needed.</p>



<p><em>Note: Double-click on the sphere GUI in the “VST: Multi Encoder” for a linear readout.</em></p>



<p>The 1<sup>st</sup> input channel may clip (i.e., the omni channel or W channel), even when the original multi-channel render is rather low (i.e., -6dBFS to -12dBFS per channel). To prevent this, insert the plug-in “VST: OmniCompressor” in the Ambisonics track (before the plug-in “VST: Energy Visualizer”). Set the Threshold to -0.1dB, Ratio to inf:1, Attack to 0.0ms, and turn on Look Ahead. You can leave Knee and Makeup at 0.0dB. Adjust the Release to taste.</p>



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



<h2 class="wp-block-heading">Render the Audio Files</h2>



<p>The IEM plug-in suite uses the following as default:</p>



<p>Channel ordering: ACN (AmbiX)<br>Normalization: SN3D (AmbiX)</p>



<p>To render a track, click on the track in the mix area so it is highlighted.</p>



<p>Go to: File&#8211;&gt;Render…</p>



<p>Source: Selected tracks (stems)<br>Channels: Stereo if rendering the Binaural track, or click and <em>type in</em> 64 (or the number for the Ambisonics order you are rendering) if rendering the Ambisonics track.</p>



<p><em>Note: Rendering large files (i.e., &gt;4GB) requires a format like Wave64 or CAF.</em></p>



<div class="wp-block-kadence-spacer aligncenter kt-block-spacer-1613_dd61aa-bb"><div class="kt-block-spacer kt-block-spacer-halign-center"><hr class="kt-divider"/></div></div>



<p>See the following sources:</p>



<p><a href="https://plugins.iem.at/docs/installation/" target="_blank" rel="noreferrer noopener">https://plugins.iem.at/docs/installation/</a><br><a href="https://plugins.iem.at/docs/tutorial_basicrouting/" target="_blank" rel="noreferrer noopener">https://plugins.iem.at/docs/tutorial_basicrouting/</a><br><a href="https://plugins.iem.at/docs/plugindescriptions/" target="_blank" rel="noreferrer noopener">https://plugins.iem.at/docs/plugindescriptions/</a><br><a href="https://plugins.iem.at/docs/compatibility/" target="_blank" rel="noreferrer noopener">https://plugins.iem.at/docs/compatibility/</a><br><a href="https://www.youtube.com/watch?v=K5K4Q2Ze92o&amp;t=183s" target="_blank" rel="noreferrer noopener">https://www.youtube.com/watch?v=K5K4Q2Ze92o&amp;t=183s</a> (starting at about 3:03)<br><a href="https://forums.cockos.com/showthread.php?t=176041" target="_blank" rel="noreferrer noopener">https://forums.cockos.com/showthread.php?t=176041</a><br><a href="https://www.youtube.com/watch?v=_G-oEZrRtPw" target="_blank" rel="noreferrer noopener">https://www.youtube.com/watch?v=_G-oEZrRtPw</a></p>



<p>See the following for up to tenth-order Ambisonics:</p>



<p class="wp-embed-aspect-16-9 wp-has-aspect-ratio"><a href="https://www.youtube.com/watch?v=e7PdqEfHTO0" target="_blank" rel="noreferrer noopener">https://www.youtube.com/watch?v=e7PdqEfHTO0</a><br><a href="https://www.ssa-plugins.com" target="_blank" rel="noreferrer noopener">https://www.ssa-plugins.com</a><br><a href="https://leomccormack.github.io/sparta-site/" target="_blank" rel="noreferrer noopener">https://leomccormack.github.io/sparta-site/</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.moellerstudios.org/higher-order-ambisonics-hoa-on-a-mac/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Obtain and Install ADB on a Mac</title>
		<link>https://www.moellerstudios.org/how-to-obtain-and-install-adb-on-a-mac/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-obtain-and-install-adb-on-a-mac</link>
					<comments>https://www.moellerstudios.org/how-to-obtain-and-install-adb-on-a-mac/#comments</comments>
		
		<dc:creator><![CDATA[John]]></dc:creator>
		<pubDate>Tue, 25 Sep 2018 18:06:25 +0000</pubDate>
				<category><![CDATA[How To]]></category>
		<guid isPermaLink="false">http://www.moellerstudios.org/?p=901</guid>

					<description><![CDATA[Android Debug Bridge (ADB) is a command-line tool that enables access to connected Android devices. This tutorial explains how to obtain and install ADB on a Mac. ADB is useful for accessing one or many connected devices (see the above &#8230; <a href="https://www.moellerstudios.org/how-to-obtain-and-install-adb-on-a-mac/">Read More</a>]]></description>
										<content:encoded><![CDATA[<p>Android Debug Bridge (ADB) is a command-line tool that enables access to connected Android devices. This tutorial explains how to obtain and install ADB on a Mac. ADB is useful for accessing one or many connected devices (see the above photo).</p>
<p>Download the &#8220;SDK Platform-Tools for Mac&#8221; from:</p>
<p><a href="https://developer.android.com/studio/releases/platform-tools" target="_blank" rel="noopener noreferrer">https://developer.android.com/studio/releases/platform-tools</a></p>
<p>Unzip the downloaded file by double-clicking on it.</p>
<p>Move the unzipped folder (i.e., &#8220;platform-tools&#8221;) to a useful location (e.g., I put it in a folder called &#8220;android-sdk-macosx&#8221; in a folder called &#8220;SDKs&#8221; in my home directory: ~/SDKs/android-sdk-macosx/platform-tools/).</p>
<p>Add &#8220;platform-tools&#8221; to your PATH variable by invoking the following in the Terminal (make sure to change the file path to reflect where you placed the folder &#8220;platform-tools&#8221; on your system):</p>
<pre>echo 'export PATH=$PATH:~/SDKs/android-sdk-macosx/platform-tools/' &gt;&gt; ~/.bash_profile</pre>
<p>Execute the following command to reload your bash profile (this applies the change to the PATH variable):</p>
<pre>source ~/.bash_profile</pre>
<p>Note: The PATH variable is the search path for commands. It is a list of directories, each separated by a colon, in which the shell looks for commands. To see what values are currently in your PATH variable, use the following:</p>
<pre>echo $PATH</pre>
<p>To see if everything is working, connect an Android device and enter the following in the Terminal:</p>
<pre>adb devices</pre>
<p>It should return something like this (if you have one Android device attached):</p>
<pre>List of devices attached
200804114c28b9e	device
</pre>
<p>Please note, to use ADB with an Android device connected over USB, you will need to enable USB debugging. See the section &#8220;Enable adb debugging on your device&#8221; at the following site:</p>
<p><a href="https://developer.android.com/studio/command-line/adb" target="_blank" rel="noopener noreferrer">https://developer.android.com/studio/command-line/adb</a></p>
<p>See:<br />
<a href="https://stackoverflow.com/questions/31374085/installing-adb-on-macos" target="_blank" rel="noopener noreferrer">https://stackoverflow.com/questions/31374085/installing-adb-on-macos</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.moellerstudios.org/how-to-obtain-and-install-adb-on-a-mac/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
		<item>
		<title>Getting Stats on a Sound File</title>
		<link>https://www.moellerstudios.org/getting-stats-on-a-sound-file/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=getting-stats-on-a-sound-file</link>
					<comments>https://www.moellerstudios.org/getting-stats-on-a-sound-file/#respond</comments>
		
		<dc:creator><![CDATA[John]]></dc:creator>
		<pubDate>Mon, 24 Sep 2018 15:47:43 +0000</pubDate>
				<category><![CDATA[How To]]></category>
		<guid isPermaLink="false">http://www.moellerstudios.org/?p=874</guid>

					<description><![CDATA[Here are a few ways to obtain stats and other useful info about a sound file using a Mac. Use libsndfile How to install libsndfile. Run the following command in the Terminal app (tips: make sure the sound file is &#8230; <a href="https://www.moellerstudios.org/getting-stats-on-a-sound-file/">Read More</a>]]></description>
										<content:encoded><![CDATA[<p>Here are a few ways to obtain stats and other useful info about a sound file using a Mac.</p>
<h2>Use libsndfile</h2>
<p><a href="https://www.moellerstudios.org/using-the-command-line-tools-in-libsndfile/">How to install libsndfile.</a></p>
<p>Run the following command in the Terminal app (tips: make sure the sound file is in your current directory or else provide a path; put quotes around sound files with spaces):</p>
<pre>sndfile-info soundfile.wav</pre>
<p>Here is an example read-out:</p>
<pre>File : soundfile.wav
Length : 34552556
RIFF : 34552548
WAVE
fmt  : 16
  Format        : 0x1 =&gt; WAVE_FORMAT_PCM
  Channels      : 1
  Sample Rate   : 48000
  Block Align   : 3
  Bit Width     : 24
  Bytes/sec     : 144000
data : 34552512
End

----------------------------------------
Sample Rate : 48000
Frames      : 11517504
Channels    : 1
Format      : 0x00010003
Sections    : 1
Seekable    : TRUE
Duration    : 00:03:59.948
Signal Max  : 3.6503e+06 (-7.23 dB)</pre>
<h2>Use SoX</h2>
<p><a href="https://www.moellerstudios.org/how-to-install-and-use-sound-exchange/">How to install SoX.</a></p>
<p>Invoke the following in the Terminal (once again, make sure the sound file is in your current directory or else provide a path):</p>
<pre>sox soundfile.wav -n stat</pre>
<p>Here is an example read-out:</p>
<pre>Samples read:          11517504
Length (seconds):    239.948000
Scaled by:         2147483647.0
Maximum amplitude:     0.435150
Minimum amplitude:    -0.415886
Midline amplitude:     0.009632
Mean    norm:          0.037648
Mean    amplitude:    -0.000052
RMS     amplitude:     0.056270
Maximum delta:         0.052995
Minimum delta:         0.000000
Mean    delta:         0.004222
RMS     delta:         0.006267
Rough   frequency:          850
Volume adjustment:        2.298
</pre>
<p>Or, you can use the following command (note the &#8220;s&#8221; on the end of the word stats):</p>
<pre>sox soundfile.wav -n stats</pre>
<p>Here is the example read-out:</p>
<pre>DC offset  -0.000052
Min level  -0.415886
Max level   0.435150
Pk lev dB      -7.23
RMS lev dB    -24.99
RMS Pk dB     -15.07
RMS Tr dB   -3202.27
Crest factor    7.73
Flat factor     0.00
Pk count           2
Bit-depth      23/24
Num samples    11.5M
Length s     239.948
Scale max   1.000000
Window s       0.050
</pre>
<p>You can also use this command (note, you can replace ‐‐info with ‐‐i, if desired):</p>
<pre>sox --info soundfile.wav</pre>
<p>Here is an example read-out:</p>
<pre>Input File     : '/Users/name/soundfile.wav'
Channels       : 1
Sample Rate    : 48000
Precision      : 24-bit
Duration       : 00:03:59.95 = 11517504 samples ~ 17996.1 CDDA sectors
File Size      : 34.6M
Bit Rate       : 1.15M
Sample Encoding: 24-bit Signed Integer PCM
</pre>
<h2>Using QuickTime</h2>
<p>Apple&#8217;s QuickTime Player also provides useful info.</p>
<p>Open the file with the QuickTime Player, then go to Window&#8211;&gt;Show Movie Inspector (or cmd-i).</p>
<p>Here is an example read-out:</p>
<pre>Inspector
soundfile.wav
Source: /Users/name/soundfile.wav
Format: Linear PCM, 24 bit little-endian signed integer, 1 channels, 48000 Hz
Data Size: 34.6 MB
</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.moellerstudios.org/getting-stats-on-a-sound-file/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Editing Multiple Mono Sound Files in SoX</title>
		<link>https://www.moellerstudios.org/editing-multiple-mono-sound-files-in-sox/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=editing-multiple-mono-sound-files-in-sox</link>
					<comments>https://www.moellerstudios.org/editing-multiple-mono-sound-files-in-sox/#respond</comments>
		
		<dc:creator><![CDATA[John]]></dc:creator>
		<pubDate>Thu, 05 Oct 2017 21:40:55 +0000</pubDate>
				<category><![CDATA[How To]]></category>
		<guid isPermaLink="false">http://www.moellerstudios.org/?p=741</guid>

					<description><![CDATA[The command listed below enables you to carry out the following processes to a batch of mono sound files: Normalize the sound file to -3 dBFS. Trim the audio at the beginning of the sound file up to the point &#8230; <a href="https://www.moellerstudios.org/editing-multiple-mono-sound-files-in-sox/">Read More</a>]]></description>
										<content:encoded><![CDATA[<p>The command listed below enables you to carry out the following processes to a batch of mono sound files:</p>
<ul>
<li>Normalize the sound file to -3 dBFS.</li>
<li>Trim the audio at the beginning of the sound file up to the point where the amplitude level is greater than 1% (i.e., -40dBFS) for longer than 0.1s (100ms). Note: when it detects a signal that exceeds 1% for more than 0.1s, it trims up to the start of that time-frame.</li>
<li>Apply a 10ms linear fade in.</li>
<li>Reverse the sound file.</li>
<li>Trim the audio at the beginning of the sound file again, but up to the point where the amplitude level is greater than 0.2% (i.e., -54dBFS) for longer than 0.1s (100ms). Note: similar to the earlier trimming step, it trims up to the start of the time-frame where the level exceeds 0.2% for 0.1s.</li>
<li>Apply a 2s linear fade in.</li>
<li>Reverse the sound file again.</li>
</ul>
<p>Note: This example assumes that the audio files you want to edit are in your home folder (you can always change directories with the cd command). Also, be sure that you use the correct audio format suffix. In the example below I use .aif. Just edit the command according to what you have.</p>
<pre>for i in *.aif; do sox -S "${i}" "NormTrimFade_${i}" gain -n -3 silence 1 0.1 1% fade t 0:0:0.01t reverse silence 1 0.1 0.2% fade t 0:0:2t reverse; done</pre>
<p>Note: This method trims off the beginning silence and applies a fade in; it then reverses the file and repeats the process; finally, it reverses the file back to normal. This approach ensures that the silence at the end is more reliably trimmed off. Also, it avoids the error &#8220;audio length is neither known nor given&#8221; that would result from attempting to fade in and out with a single fade effect (because the file length changes within the process of this single command).</p>
<p>See:<br /><a href="https://www.moellerstudios.org/how-to-install-and-use-sound-exchange/" rel="noopener">How to install and use Sound eXchange (SoX).</a><br /><a href="https://www.moellerstudios.org/converting-amplitude-representations/" rel="noopener">How to convert amplitude representations.</a><br /><a href="https://digitalcardboard.com/blog/2009/08/25/the-sox-of-silence/" target="_blank" rel="noopener noreferrer">More info on using the &#8220;silence&#8221; effect in SoX (external link).</a><br /><a href="https://web.archive.org/web/20180327053230/http://audioundone.com/different-fade-shapes" target="_blank" rel="noopener noreferrer">Info on different fade shapes (external link).</a></p>


<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.moellerstudios.org/editing-multiple-mono-sound-files-in-sox/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tuning</title>
		<link>https://www.moellerstudios.org/tuning/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tuning</link>
					<comments>https://www.moellerstudios.org/tuning/#respond</comments>
		
		<dc:creator><![CDATA[John]]></dc:creator>
		<pubDate>Tue, 27 Jun 2017 21:30:41 +0000</pubDate>
				<category><![CDATA[How To]]></category>
		<guid isPermaLink="false">http://www.moellerstudios.org/?p=737</guid>

					<description><![CDATA[12-TET 12-tone equal temperament (12-TET) is the tuning system most commonly used today in Western Music. It refers to a tuning system that divides the octave into 12 divisions. The divisions are equal on a logarithmic scale and are perceived &#8230; <a href="https://www.moellerstudios.org/tuning/">Read More</a>]]></description>
										<content:encoded><![CDATA[<h2>12-TET</h2>
<p>12-tone equal temperament (12-TET) is the tuning system most commonly used today in Western Music.  It refers to a tuning system that divides the octave into 12 divisions.  The divisions are equal on a logarithmic scale and are perceived to be equally spaced.</p>
<p>In 12-TET, the distance between each division in an octave is called a semi-tone (or a half-step).  Two semi-tones are called a whole-tone (or a whole-step).</p>
<p>A system for measuring distance between tones uses a unit called a cent.  In 12-TET there are 100 cents between each semi-tone.  Thus, an octave is comprised of 1200 cents, and a perfect fifth is 700 cents.</p>
<p>To change the pitch of an audio sample by <em>x</em> semi-tones, use the following formula:</p>
<p>frequency * (2<sup>(<em>x</em>/12)</sup>)</p>
<p>Where <em>x</em> is the number of semi-tones up or down (e.g., 1 is up a semi-tone, 0 is no change, and -1 is down a semi-tone).</p>
<p>&nbsp;</p>
<h2>Just-Intonation</h2>
<p>Just-intonation refers to a variety of tuning systems that use whole number ratios for determining the divisions of the octave.</p>
<p>To change the pitch of an audio sample using just-intonation, use the following formula:</p>
<p>frequency * (<em>x</em>/<em>y</em>)</p>
<p>Where <em>x</em>/<em>y</em> is the just-intonation ratio (for example, multiplying a frequency by 3/2 is a near equivalent of a 12-TET perfect fifth up).</p>
<p>To determine how large a just-intonation ratio is in cents, use the following formula:</p>
<p>log (<em>x</em>/<em>y</em>) * (1200/log 2)</p>
<p>Where <em>x</em>/<em>y</em> is the just-intonation ratio (for example, multiplying a frequency by 3/2 is the equivalent of going up 702 cents, or, in other words, it is close to going up a perfect fifth in 12-TET).</p>
<p>&nbsp;</p>
<h2>Calculating Frequencies</h2>
<p>This section describes how to calculate the frequency of a note.</p>
<p>To begin, the frequency of a fixed note must be established.  A widely used standard is ISO 16, which specifies that the A above middle C is 440 Hz.</p>
<p>Note, it is useful to label notes by octave numbers.  A common approach is to label middle C as C4.  Thus, an octave higher is C5, an octave lower is C3, and the A above middle C is A4.</p>
<p>For example, the frequency of D&#9839;2 (i.e., 30 semitones below A4) is:</p>
<p>440 Hz * (2<sup>(-30/12)</sup>) = 77.78 Hz</p>
<p>As another example, the frequency of B&#x266d;6 (i.e., 25 semitones above A4) is:</p>
<p>440 Hz * (2<sup>(25/12)</sup>) = 1864.66 Hz</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.moellerstudios.org/tuning/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Converting Amplitude Representations</title>
		<link>https://www.moellerstudios.org/converting-amplitude-representations/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=converting-amplitude-representations</link>
					<comments>https://www.moellerstudios.org/converting-amplitude-representations/#respond</comments>
		
		<dc:creator><![CDATA[John]]></dc:creator>
		<pubDate>Wed, 15 Feb 2017 21:34:42 +0000</pubDate>
				<category><![CDATA[How To]]></category>
		<guid isPermaLink="false">http://www.moellerstudios.org/?p=684</guid>

					<description><![CDATA[This is a tutorial on how to convert between different amplitude scales. &#160; Convert dBFS to a percentage Use the following formula (where x is dBFS): 10(x/20) For example: 10(-6dBFS/20) = 0.5 This shows that -6dBFS is 0.5, or 50% &#8230; <a href="https://www.moellerstudios.org/converting-amplitude-representations/">Read More</a>]]></description>
										<content:encoded><![CDATA[<p>This is a tutorial on how to convert between different amplitude scales.</p>
<p>&nbsp;</p>
<h2>Convert dBFS to a percentage</h2>
<p>Use the following formula (where <em>x</em> is dBFS):</p>
<p>10<sup>(<em>x</em>/20)</sup></p>
<p>For example:</p>
<p>10<sup>(-6dBFS/20)</sup> = 0.5</p>
<p>This shows that -6dBFS is 0.5, or 50% of the maximum level of a digital system.</p>
<p>&nbsp;</p>
<h2>Convert a percentage to dBFS</h2>
<p>Use the following (where <em>x</em> is a percentage written as a decimal):</p>
<p>20 * log<sub>10</sub>(<em>x</em>)</p>
<p>For example:</p>
<p>20 * log<sub>10</sub>(0.5) = -6dBFS</p>
<p>This illustrates that 0.5 equates with -6dBFS.</p>
<p>&nbsp;</p>
<p>Note:</p>
<ul>
<li>1 is 0dBFS, or 100% of the maximum level of a digital system, and 0 corresponds with -∞dBFS.</li>
<li>If a signal level exceeds 1 (i.e., 0dBFS) the result is distortion of the signal (i.e., it is clipped at the maximum amplitude).</li>
<li>The image above is one period of a 1Hz sine wave at 0dBFS, -6dBFS, and +6dbFS (or 1, 0.5, and 2).</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.moellerstudios.org/converting-amplitude-representations/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Back Up Files Using Rsync</title>
		<link>https://www.moellerstudios.org/how-to-back-up-files-using-rsync/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-back-up-files-using-rsync</link>
					<comments>https://www.moellerstudios.org/how-to-back-up-files-using-rsync/#respond</comments>
		
		<dc:creator><![CDATA[John]]></dc:creator>
		<pubDate>Wed, 04 Jan 2017 19:35:31 +0000</pubDate>
				<category><![CDATA[How To]]></category>
		<guid isPermaLink="false">http://www.moellerstudios.org/?p=632</guid>

					<description><![CDATA[Rsync is a utility for keeping files synced in two locations. This is a quick tutorial on how to use it to back up your files and keep them synchronized (i.e., after the initial full backup, it will write only &#8230; <a href="https://www.moellerstudios.org/how-to-back-up-files-using-rsync/">Read More</a>]]></description>
										<content:encoded><![CDATA[<p>Rsync is a utility for keeping files synced in two locations.  This is a quick tutorial on how to use it to back up your files and keep them synchronized (i.e., after the initial full backup, it will write only the data that has changed since the last backup).</p>
<p>&nbsp;</p>
<p>Do a test-run by invoking the following in the terminal (replace &#8220;/path/to/source&#8221; and &#8220;/path/to/destination&#8221; with the paths you need):</p>
<pre>rsync -av --delete --progress --dry-run /path/to/source /path/to/destination</pre>
<p>The console will then return the results of the command without actually doing anything.  If it behaved as you expected, then run the command without the &#8220;&#45;&#45;dry-run&#8221; flag, like this (once again, replace &#8220;/path/to/source&#8221; and &#8220;/path/to/destination&#8221; according to your needs):</p>
<pre>rsync -av --delete --progress /path/to/source /path/to/destination</pre>
<p>The command above can be incorporated into a shell script in order to create a one-click backup solution.  See this <a href="https://www.moellerstudios.org/creating-a-shell-script/">post</a> for details.</p>
<p>Here are a couple of things to note:</p>
<ul>
<li>If you <em>do not</em> put a trailing slash on the source directory path (as in the examples above), it will copy the source directory and its contents into the destination directory.</li>
<li>If you put a trailing slash on the source directory path, it will copy just the contents of the source directory into the destination directory (i.e., without the top-level directory).</li>
<li>A trailing slash on the destination directory path has no effect.</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.moellerstudios.org/how-to-back-up-files-using-rsync/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Using the Command-Line Tools in Libsndfile</title>
		<link>https://www.moellerstudios.org/using-the-command-line-tools-in-libsndfile/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=using-the-command-line-tools-in-libsndfile</link>
					<comments>https://www.moellerstudios.org/using-the-command-line-tools-in-libsndfile/#respond</comments>
		
		<dc:creator><![CDATA[John]]></dc:creator>
		<pubDate>Fri, 16 Dec 2016 17:53:13 +0000</pubDate>
				<category><![CDATA[How To]]></category>
		<guid isPermaLink="false">http://www.moellerstudios.org/?p=588</guid>

					<description><![CDATA[libsndfile is a C library written by Erik de Castro Lopo. It is used in a variety of software packages. It includes a collection of command-line programs. Obtaining and installing libsndfile Note: Xcode may need to be installed on your &#8230; <a href="https://www.moellerstudios.org/using-the-command-line-tools-in-libsndfile/">Read More</a>]]></description>
										<content:encoded><![CDATA[<p><em>libsndfile</em> is a C library written by Erik de Castro Lopo. It is used in a variety of software packages. It includes a collection of command-line programs.</p>
<h2>Obtaining and installing libsndfile</h2>
<p>Note: Xcode may need to be installed on your computer.</p>
<p><a href="https://developer.apple.com/xcode/" target="_blank" rel="noopener noreferrer">https://developer.apple.com/xcode/</a></p>
<p>Download the latest version of libsndfile in tar.gz format (when I installed it, the latest version was libsndfile-1.0.27.tar.gz).</p>
<p>http://www.mega-nerd.com/libsndfile/#Download</p>
<p>(The above page no longer appears to be maintained. See the following for obtaining and installing libsndfile:)</p>
<p><a href="https://github.com/libsndfile/libsndfile" target="_blank" rel="noopener">https://github.com/libsndfile/libsndfile</a></p>
<p>Without unarchiving it, move the file to your home directory.</p>
<p>Launch the Terminal app (found at /Applications/Utilities/Terminal.app).</p>
<p>Unarchive the the tar.gz file by invoking the following command in Terminal (make sure to use the name of your version):</p>
<pre>tar xzvf libsndfile-1.0.27.tar.gz</pre>
<p>Run the configure script by entering each of the following commands in sequence in Terminal (make sure to replace “libsndfile-1.0.27” with the name of your version):</p>
<pre>cd libsndfile-1.0.27
./configure
make -s
sudo make install</pre>
<p>Put in your password.</p>
<p>You can erase the tar.gz file and the unarchived file from your home folder.</p>
<h2>Examples</h2>
<p>Note: These examples assume that the audio file(s) you want to edit are in your home folder. Also be sure that you use the correct audio format suffix. In the examples I use .caf, just edit your commands according to what you have (e.g., .aif, .wav, etc.).</p>
<hr />
<p><strong>De-interleave a multi-channel sound file:</strong></p>
<pre>sndfile-deinterleave 3channelfile.caf</pre>
<p>Note: Put quotes around the audio file name if it has spaces in it.</p>
<p>The Terminal output will be similar to the following:</p>
<pre>Input file : 3channelfile.caf
Output files : 
    3channelfile_00.caf 
    3channelfile_01.caf
    3channelfile_02.caf</pre>
<p>The resulting sound files will appear in your home folder.</p>
<hr />
<p><strong>Interleave multiple mono sound files:</strong></p>
<pre>sndfile-interleave monofile_1.caf monofile_2.caf monofile_3.caf -o 3channelfile.caf</pre>
<p>Use quotes around audio file names that have spaces in them. Add as many mono sound files as you would like, and name the output anything you would like.</p>
<hr />
<p><strong>Interleave multiple mono sound files, version 2:</strong></p>
<pre>printf "'%s' " *.caf -o "Interleaved Audio File.caf" | xargs sndfile-interleave</pre>
<p>As mentioned previously, this command assumes all the mono sound files are in your home directory. It also assumes that all the mono files are .caf. Spaces in the mono sound file names are allowed. The final interleaved file will be named <em>Interleaved Audio File.caf</em>, and will appear in your home folder.</p>
<h2>The libsndfile command-line programs</h2>
<pre>sndfile-cmp</pre>
<p>Compare two audio files.</p>
<hr />
<pre>sendfile-concat</pre>
<p>Concatenate two or more audio files.</p>
<hr />
<pre>sndfile-convert</pre>
<p>Convert a sound files from one format to another.</p>
<hr />
<pre>sndfile-deinterleave</pre>
<p>De-interleave a multi-channel file into multiple mono files.</p>
<hr />
<pre>sndfile-info</pre>
<p>Display information about a sound file.</p>
<hr />
<pre>sndfile-interleave</pre>
<p>Interleave multiple mono files into a single multi-channel file.</p>
<hr />
<pre>sndfile-metadata-get</pre>
<p>Get metadata from a sound file.</p>
<hr />
<pre>sndfile-metadata-set</pre>
<p>Set metadata in a sound file.</p>
<hr />
<pre>sndfile-play</pre>
<p>Play a sound file. Not available in Mac 10.8 and later.</p>
<hr />
<pre>sndfile-salvage</pre>
<p>Salvage audio data from WAV files larger than 4GB. See this <a href="https://www.moellerstudios.org/how-to-calculate-audio-file-size/">post</a>.</p>
<hr />
<p>See the manual page for each program for details (for example, invoke <em>sndfile-cmp -h</em> in the Terminal to see the manual page for <em>sndfile-cmp</em>).</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.moellerstudios.org/using-the-command-line-tools-in-libsndfile/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Record Sound Samples</title>
		<link>https://www.moellerstudios.org/how-to-record-sound-samples/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-record-sound-samples</link>
					<comments>https://www.moellerstudios.org/how-to-record-sound-samples/#respond</comments>
		
		<dc:creator><![CDATA[John]]></dc:creator>
		<pubDate>Fri, 16 Sep 2016 22:31:30 +0000</pubDate>
				<category><![CDATA[How To]]></category>
		<guid isPermaLink="false">http://www.moellerstudios.org/?p=488</guid>

					<description><![CDATA[This is a tutorial on how to record sound samples. It is primarily intended for people who want to record sound samples in a variety of locations for use in electroacoustic music. Find a good place to record Acoustics and &#8230; <a href="https://www.moellerstudios.org/how-to-record-sound-samples/">Read More</a>]]></description>
										<content:encoded><![CDATA[<p>This is a tutorial on how to record sound samples. It is primarily intended for people who want to record sound samples in a variety of locations for use in electroacoustic music.</p>
<h2>Find a good place to record</h2>
<p>Acoustics and ambient sound impact what is captured during a sound recording. Here are a few things to consider:</p>
<p>Avoid unwanted acoustical effects:</p>
<ul>
<li>Reverberation is essentially impossible to remove from a recording, but easy to add in post production. Consider recording in an acoustically &#8220;dry&#8221; place (i.e., a place where sound reflections are minimized) and add reverb later. These same principles apply for echo, which is simply a discretely perceived reflection. Mic placement and pickup pattern can help minimize the amount of reverb that is recorded (see below). In some instances you may want to record reverberation; for an example, see the notes below on concert-recording techniques.</li>
<li>Smooth, reflective, parallel surfaces (i.e., facing walls, or ceiling and floor) can lead to an acoustic phenomenon called &#8220;flutter echo.&#8221; Clap your hands around the space and avoid any spots where you hear flutter echo (i.e., a funny &#8220;boing&#8221; sound). Alternatively, put absorptive material on the surfaces that are parallel to each other.</li>
<li>Remove or dampen objects that resonate sympathetically with your sound source and add undesired sound to your recording.</li>
<li>Be aware of the resonances in the recording space itself (i.e., room modes). For example, a small, box-shaped room may unduly emphasize certain low-frequencies. If possible, avoid recording in a space that resonates in an undesirable way. See the points below about placing the sound source and the mic in the space.</li>
</ul>
<p>Avoid undesired ambient sounds:</p>
<ul>
<li>The best method is to avoid recording unwanted sound in the first place. However, close miccing and directional mics can also help minimize picking up unwelcome ambient sounds (more on this below). Various post-processing techniques can also be helpful.</li>
</ul>
<h2>Place the sound source</h2>
<p>Start playing the sound source in the middle of the space, away from anything else, and where the ceiling (if any) is highest (albeit avoiding any ceiling features that focus the sound, such as domes or peaked ceilings). Move the sound source around the space until you find the best sounding spot.</p>
<h2>Choose the mic</h2>
<p>Make your selection while bearing in mind the following:</p>
<p>Directionality:</p>
<ul>
<li>Directional pickup patterns can reduce unwanted sound from the null areas of the mic.</li>
<li>Spectral coloration can occur to the sounds recorded off-axis using a directional mic.</li>
<li>Increase in low frequency due to a phenomenon known as &#8220;proximity effect&#8221; must be considered with directional mics. If it is problematic, increase the distance between the mic and the source, or roll off the low frequencies using a filter.</li>
<li>Directional mics can increase the ratio of direct to indirect sound (i.e., a directional mic at the same distance as an omni mic will pick up less indirect sound, such as reverberation and ambient sound). This allows the mic to be placed further from a sound source, allowing all the elements of the sound source to combine in the air before being picked up by the mic, potentially resulting in a better representation of the sound (more on this below).</li>
</ul>
<p>Type:</p>
<ul>
<li>Condenser mics generally have a better high-frequency response than dynamic mics and can respond to transients faster. That is because the diaphragm of a condenser mic is lower in mass and travels less than that of a dynamic mic.</li>
<li>Dynamic mics are generally more robust and can handle higher sound pressure levels before distortion occurs. However, condenser mics sometimes have built-in pads that can attenuate the signal before overloading the internal circuitry, thereby making them potentially usable in high-sound-pressure-level situations.</li>
</ul>
<p>Additional Considerations:</p>
<ul>
<li>Mics have different frequency responses. Take a look at the manufacturers specs and consider how each mic will color the sound. For example, the frequency curve of certain mics have become popular for recording vocals; or, the frequency response of some mics are intended to account for high frequency loss due to distance.</li>
<li>If you are recording outdoors, a basket and furry windscreen around the mic is recommended to ameliorate wind noise.</li>
</ul>
<h2>Place the mic</h2>
<p>The closer the mic to the sound source, the less reverb will be picked up; however, it is usually best to give some space between the mic and the sound source to allow all the contributing elements from the sound source to combine naturally in the air before being picked up by the mic.</p>
<p>The following two tips come from Bobby Owsinski&#8217;s <em>The Recording Engineer&#8217;s Handbook</em>, 3rd Ed., p. 79:</p>
<ul>
<li>For an omni mic, cover one ear and listen while you move around the sound source, place the mic in the spot where it sounds the best.</li>
<li>For a cardioid mic, cover one ear and cup your hand behind the open ear and listen while you move around the sound source, place the mic in the spot where it sounds the best.</li>
</ul>
<p>If recording multiple sound sources at the same time using multiple mics, remember the 3:1 rule, namely, each additional mic should be placed at least 3 times the distance from a sound source that already has a mic on it. This minimizes phase issues (i.e., the inverse square law ensures that the delayed sound reaching the additional mic is quiet enough that it minimizes comb filtering when combined with the signal from the first mic).</p>
<p>It is easy to work in mono, and it is simple to add spatial effects later. With that said, there are a variety of stereo mic techniques useful for capturing spatial information (mid-side, coincident, near-coincident, spaced pair, and binaural, and all their variations). This is beneficial for such things as recording large sound sources where you want to retain the spatial placement of the contributing sound elements (e.g., a piano, an ensemble, a soundscape, etc.). There are additional approaches that can also yield worthwhile spatial results (surround mic techniques, a SoundField mic, and so forth).</p>
<p>Concert-recording techniques are intended to capture the sound source and the sound of the concert hall while retaining a sense of the spatial image. The aim is concert realism. Stereo or surround mic techniques are typically used. Additionally, the mic array is usually placed a distance away from the sound source in order to capture both the direct and reflected sound; frequently, this means placing the mic array at the critical distance from the sound source (the critical distance is where the direct-sound level and the reverberant-sound level are equal). In addition to horizontal distance, it is also common to place the mic array at a height that is above the sound source (thereby minimizing reflections from the floor, sounds from the audience, and on-axis blasts from some element of the sound source).</p>
<h2>Set up the recording device</h2>
<p>Set the recorder to record in an uncompressed (PCM) format (some lower-end recorders allow you to record in various compressed formats). This means using a format such as .aif, .wav, and so forth.</p>
<p>Set the sampling rate, and bit depth.</p>
<ul>
<li>The sampling rate is how many times per second the amplitude of the input signal is sampled. In practical terms, the sampling rate has a direct bearing on the frequency range of the signal (i.e., you can record frequencies up to half the sampling rate).</li>
<li>The bit depth determines the quantization resolution of the instantaneous amplitude of the sampled signal. With a bit depth of 24, the number of possible amplitude levels that the signal can be represented by are 2^24 = 16,777,216. In practical terms, the bit depth has a direct bearing on the dynamic range of the signal (i.e., about 6dB per bit). In theory, a 24-bit system would have a dynamic range of about 6dB*24 = 144dB (although in practice, the A/D converter may limit this).</li>
<li>Consider using 96 kHz, 24 bit.</li>
</ul>
<p>Turn the input gain down all the way, then plug in the mic.</p>
<ul>
<li>If using a condenser mic, turn on phantom power.</li>
<li>If using a dynamic mic, phantom power is not necessary.</li>
</ul>
<p>Set the level on the recording device so the meter shows a strong signal, but make sure it doesn’t &#8220;clip.&#8221; As you perform the sound, strive for a high &#8220;signal-to-noise&#8221; ratio, in other words, make sure the desired sound is louder than the unwanted ambient noise floor.</p>
<h2>Record</h2>
<p>Tips:</p>
<ul>
<li>Record several iterations of each sound (if possible).</li>
<li>Let each sound iteration die out completely before recording the next one.</li>
<li>Monitor what you are recording.</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.moellerstudios.org/how-to-record-sound-samples/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Creating a Shell Script</title>
		<link>https://www.moellerstudios.org/creating-a-shell-script/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=creating-a-shell-script</link>
					<comments>https://www.moellerstudios.org/creating-a-shell-script/#respond</comments>
		
		<dc:creator><![CDATA[John]]></dc:creator>
		<pubDate>Tue, 13 Sep 2016 21:01:32 +0000</pubDate>
				<category><![CDATA[How To]]></category>
		<guid isPermaLink="false">http://www.moellerstudios.org/?p=462</guid>

					<description><![CDATA[This is a brief tutorial on how to create a shell script using a Mac. &#160; Create a new blank file in a text editor such as TextEdit. Put the following as the first line: #!/bin/bash Put the desired command(s) &#8230; <a href="https://www.moellerstudios.org/creating-a-shell-script/">Read More</a>]]></description>
										<content:encoded><![CDATA[<p>This is a brief tutorial on how to create a shell script using a Mac.</p>
<p>&nbsp;</p>
<p>Create a new blank file in a text editor such as TextEdit.</p>
<p>Put the following as the first line:</p>
<pre>#!/bin/bash</pre>
<p>Put the desired command(s) in the subsequent line(s), for example:</p>
<pre>#!/bin/bash
echo "Hello World!"
</pre>
<p>Save the file to the Desktop (name it, delete the extension .txt, uncheck &#8220;If no extension is provided use &#8216;.txt&#8217;.&#8221;).</p>
<p>In the Terminal application, enter the following command:</p>
<pre>cd Desktop</pre>
<p>To see the <a href="https://www.moellerstudios.org/how-to-work-with-linux-permissions/">permissions</a> of the file, invoke the following in Terminal:</p>
<pre>ls -l name_of_script</pre>
<p>Note: Replace <em>name_of_script</em> with the name you selected when you saved the file.  If your file name has spaces in it, you will need to put quotes around the name.</p>
<p>To make it executable, change the file&#8217;s permissions by entering the following command:</p>
<pre>chmod 755 name_of_script</pre>
<p>Run the file by invoking the following command in the Terminal (or just by double-clicking on the file&#8217;s icon on the Desktop):</p>
<pre>./name_of_script</pre>
<p>&nbsp;</p>
<h2>Alternative method</h2>
<p>You can carry out the entire procedure from the command-line:</p>
<pre>cd Desktop
nano name_of_script</pre>
<p>In the GNU nano text editor that comes up, type in the following:</p>
<pre>#!/bin/bash
#Put the command(s) here</pre>
<p>Exit and save:</p>
<pre>control-x
y
enter</pre>
<p>To make it executable, invoke:</p>
<pre>chmod 755 name_of_script</pre>
<p>Run the file by entering:</p>
<pre>./name_of_script</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.moellerstudios.org/creating-a-shell-script/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Object Caching 25/49 objects using APC
Page Caching using Disk: Enhanced 
Lazy Loading (feed)

Served from: www.moellerstudios.org @ 2026-03-17 19:15:38 by W3 Total Cache
-->