<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Appthecary]]></title><description><![CDATA[Appthecary]]></description><link>https://appthecary.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Wed, 28 Oct 2026 06:39:20 GMT</lastBuildDate><atom:link href="https://appthecary.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How I built a 7KB offline Focus & Brown Noise synth inside a single HTML file (No MP3s, just Web Audio API math)
]]></title><description><![CDATA[How I built Kanso, a 7KB offline HTML focus workspace that synthesizes warm brown noise using Web Audio API math with zero external MP3s.]]></description><link>https://appthecary.hashnode.dev/how-i-built-a-7kb-offline-focus-brown-noise-synth-inside-a-single-html-file-no-mp3s-just-web-audio-api-math</link><guid isPermaLink="true">https://appthecary.hashnode.dev/how-i-built-a-7kb-offline-focus-brown-noise-synth-inside-a-single-html-file-no-mp3s-just-web-audio-api-math</guid><category><![CDATA[JavaScript]]></category><category><![CDATA[Web Development]]></category><category><![CDATA[Productivity]]></category><category><![CDATA[HTML5]]></category><dc:creator><![CDATA[lnz79d612]]></dc:creator><pubDate>Sun, 25 Oct 2026 11:00:25 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6addde0baca973e66b127f95/fd7628f9-2055-4958-995a-8815269fe4fa.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I wanted a clean focus timer, scratchpad, and ambient sound generator that works 100% offline without accounts, cloud sync, or bloated desktop apps.</p>
<p>So under my indie label <strong>Appthecary</strong>, I built <strong>Kanso</strong>: a minimalist workspace that lives entirely inside a single 7KB <code>.html</code> file you can drop on your desktop or USB drive.</p>
<h3>Synthesizing Brown Noise with Math (Zero MP3s)</h3>
<p>Instead of bundling heavy audio loops, Kanso uses the browser's native <code>AudioContext</code> to generate a 3-second looping buffer of procedural brown noise by integrating white noise samples in real time, routed through a <code>BiquadFilterNode</code> (low-pass filter from 120Hz to 1500Hz):</p>
<pre><code class="language-javascript">let lastOut = 0.0;
for (let i = 0; i &lt; bufferSize; i++) {
  const white = Math.random() * 2 - 1;
  data[i] = (lastOut + (0.02 * white)) / 1.02;
  lastOut = data[i];
  data[i] *= 3.5;
}
</code></pre>
<h3>Features inside the 7KB file:</h3>
<ul>
<li><strong>Procedural Brown Noise Synth</strong> with real-time Warmth (Low-Pass) and Volume sliders.</li>
<li><strong>Focus Timer (25m / 50m)</strong> with a synthesized 528Hz sine-wave chime.</li>
<li><strong>Local Scratchpad</strong> with auto-save to <code>localStorage</code> and one-click <code>.txt</code> export.</li>
</ul>
<h3>Try it / Grab the file</h3>
<p>I put the ready-to-use <code>.html</code> file on Gumroad as <strong>Pay-What-You-Want ($0 to download for free, or $1 if you want to buy me an espresso)</strong>:</p>
<ul>
<li>👉 <a href="https://appthecary.gumroad.com/l/kanso"><strong>Grab Kanso.html on Gumroad ($0+)</strong></a></li>
<li>💻 <a href="https://github.com/lnz79d612/kanso-desk"><strong>GitHub Repo &amp; Docs</strong></a></li>
</ul>
<p>Feel free to inspect the source code and hack it however you like!</p>
]]></content:encoded></item></channel></rss>