<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>VIALL.DEV // DEAD AIR</title>
  <link>https://viall.dev/</link>
  <atom:link href="https://viall.dev/feed.xml" rel="self" type="application/rss+xml"/>
  <description>DEAD AIR — the transmission log at viall.dev. The station signed off; this kept broadcasting. Projects, post-mortems, half-dreams, recorded after hours.</description>
  <language>en</language>
  <generator>DEAD AIR ENGINE v1.0</generator>
  <item>
    <title>TX 003 — Auditory Hallucinations</title>
    <link>https://viall.dev/tx/003-auditory-hallucinations/</link>
    <guid isPermaLink="true">https://viall.dev/tx/003-auditory-hallucinations/</guid>
    <pubDate>Thu, 27 Aug 2026 03:33:00 GMT</pubDate>
    <description><![CDATA[When the noise floor gets loud enough, the brain's error-correction routines start decoding packets that were never transmitted. On acoustic pareidolia, server fan choirs, and 4 AM phantom frequencies.]]></description>
    <content:encoded><![CDATA[<p>If you sit in a dark room long enough with a rack of 120mm fans running at 3,200 RPM, the fans will eventually start singing in Latin.</p>
<p>It starts around 3:30 AM, right when the room temperature dips and your blood sugar drops below whatever threshold keeps the auditory cortex from running its own speculative execution branch. First it's a distant telephone ringing three rooms away. Then a talk radio host whose cadence you recognize but whose words dissolve the second you turn your head toward the vent. By 4:00 AM, it's a four-part choral arrangement embedded inside the laminar airflow of a radiator shroud.</p>
<p>You take your headphones off to check. Silence, except for the air. You put them back on with nothing playing. The choir resumes, mid-phrase, like they were waiting for the input channel to reopen.</p>
<p>This isn't a psychiatric break. It's an automatic gain control failure.</p>
<h3 class="dv">the predictive codec in the mastoid</h3>
<p>Human hearing is not a passive microphone feeding an ADC. It's a high-inference predictive decoding loop.</p>
<p>Your eardrums receive raw, uncalibrated acoustic pressure waves. But the signal path between the cochlea and the auditory cortex is bidirectional: the brain sends more neural feedback fibers <em>down</em> to the sensory apparatus than the sensory apparatus sends <em>up</em> to the brain. You don't hear what hits your ears; you hear your brain's running statistical model of what it <em>expects</em> to hit your ears, error-corrected by incoming deltas.</p>
<p>When the input is structured — speech, music, footsteps — the deltas are sharp. The error margin is narrow. The prediction engine locks onto the carrier wave and decodes it cleanly.</p>
<div class="codeblock"><div class="codeblock-bar"><span>output</span><span class="cb-dots">▚▚▚</span></div><pre><code>[ INPUT: WHITE NOISE ] ──▶ [ COCHLEA: HIGH GAIN ] ──▶ [ DSP: CORRELATION HUNT ]
                                                             │
                                                             ▼
                                                    [ PHANTOM MORPHEME FOUND ]
                                                             │
                                                             ▼
                                                    &quot;did someone say my name?&quot;</code></pre></div>
<p>When the input is broadband, unstructured, and relentless — the pink-noise roar of server fans, the 60 Hz mains hum through an ungrounded pre-amp, the rushing static of a bathroom exhaust — the delta drops to zero. There are no edges. No transients.</p>
<p>Your auditory processor hates flat entropy. It ramps up the digital gain. It widens the correlation window. It starts scraping the noise floor for micro-variations in phase, hunting for anything resembling a human formant. And because the human brain is an over-trained pattern-matching classifier that would rather hallucinate ten thousand false alarms than miss a single predator in the brush, it finds one.</p>
<p>It finds phonemes that were never spoken.</p>
<h3 class="dv">acoustic pareidolia &amp; packet loss concealment</h3>
<p>In digital audio engineering, when a VoIP packet drops over a lossy UDP socket, the codec doesn't just cut to hard zero. Hard zeroes pop; they shatter the perceptual illusion of continuity.</p>
<p>Instead, algorithms like <strong>Packet Loss Concealment (PLC)</strong> extrapolate the previous pitch period, smooth the spectral envelope, and synthesize plausible fake audio until the next real packet arrives. The codec literally hallucinates the missing syllables to spare your ears the glitch.</p>
<p>Your nervous system has been running proprietary PLC for three hundred thousand years:</p>
<ol><li><strong>The Phantom Ring</strong>: You swear your phone vibrated against your desk or chimed a notification, but the screen is cold and dark. Your brain simply matched the high-frequency harmonics of an air conditioner compressor against the notification sound you’ve checked four hundred times today.</li><li><strong>The Radio in the Fan</strong>: Also known as <em>musical ear syndrome</em> or Oliver Sacks’ favorite late-night parlor trick. Broadband noise contains nearly every audible frequency simultaneously. Your neural filter inadvertently applies a high-Q bandpass to a stray resonant node, isolating phantom melody lines out of pure turbulence.</li><li><strong>The Whispering Void</strong>: In extreme silence — or extreme uniform static — the cochlea's outer hair cells undergo spontaneous mechanical oscillation. The ear physically vibrates on its own, generating <strong>spontaneous otoacoustic emissions (SOAEs)</strong>. The machine produces its own tone because it cannot tolerate an empty bus.</li></ol>
<blockquote><p>&quot;The silence wasn't empty. It was simply uncompressed.&quot;</p></blockquote>
<div class="splice" aria-hidden="true">▚▚▚▚ tape splice ▚▚▚▚</div>
<h3 class="dv">debugging the phantom channel</h3>
<p>If you write software or configure infrastructure late at night, you spend half your life immersed in unnatural acoustic regimes: dual-fan heatpipes, low-frequency hums of UPS inverter coils, the 15 kHz mosquito whine of old power bricks, and closed-back monitor cans clamping against your skull.</p>
<p>When the room starts talking to you, don't adjust the psychiatric meds yet. Run the diagnostic:</p>
<ul><li><strong>Change the spectral density</strong>: Turn off the oscillating fan or step into a hallway. If the voice immediately cuts out, it wasn't a psychotic break — it was an FFT bin artifact of your tired temporal lobe.</li><li><strong>Inject pink noise intentionally</strong>: Play a known, randomized noise generator through headphones. If the phantom melody changes key to match the new noise spectrum, you're observing live acoustic pareidolia in real time.</li><li><strong>Log the timestamp</strong>: It almost always peaks at the bottom of the circadian trough (03:00–04:30). That's when neurochemical gating loosens and the internal simulation leaks into the perceptual buffer.</li></ul>
<p>We build machines that process signals, filter noise, and reject spurious harmonics. But we operate them with meat hardware that is fundamentally allergic to randomness. Give the brain a dead channel with nothing on the carrier wave, and it will write its own broadcast rather than listen to the quiet.</p>
<p>The fans are still spinning. The choir has moved to the bridge.</p>
<p><em>— end of transmission. turn off the rack and go to sleep.</em></p>]]></content:encoded>
  </item>
  <item>
    <title>TX 002 — Operating the Machine</title>
    <link>https://viall.dev/tx/002-operating-the-machine/</link>
    <guid isPermaLink="true">https://viall.dev/tx/002-operating-the-machine/</guid>
    <pubDate>Mon, 03 Aug 2026 03:33:00 GMT</pubDate>
    <description><![CDATA[The DEAD AIR engine manual, aired as a transmission. One file, zero dependencies, four commands. How to write, preview, and broadcast from viall.dev.]]></description>
    <content:encoded><![CDATA[<p>The engine behind this site is one executable file called <code>deadair</code>. No packages, no build chain, no framework — Node and spite. This transmission is its manual, which conveniently also demonstrates everything the engine can render.</p>
<h3 class="dv">the four commands</h3>
<div class="codeblock"><div class="codeblock-bar"><span>bash</span><span class="cb-dots">▚▚▚</span></div><pre><code>cd ~/projects/viall

./deadair new &quot;Title of the transmission&quot;   # scaffold a new post (as a draft)
./deadair build                             # render everything into dist/
./deadair serve                             # local preview at :4173, drafts visible
./deadair deploy                            # build + site-deploy viall.dev dist</code></pre></div>
<p><code>serve</code> watches <code>posts/</code> and <code>theme/</code> and rebuilds on save, so you can write with the browser open and just refresh. Drafts show up locally with a blinking <strong>DRAFT</strong> chip; <code>build</code> and <code>deploy</code> skip them entirely.</p>
<h3 class="dv">anatomy of a transmission</h3>
<p>Every post is a markdown file in <code>posts/</code>, named <code>NNN-slug.md</code>. The frontmatter is where the broadcast metadata lives:</p>
<div class="codeblock"><div class="codeblock-bar"><span>yaml</span><span class="cb-dots">▚▚▚</span></div><pre><code>---
title: Operating the Machine
date: 2026-08-03
tags: dead-air, engine, docs
fever: 100.4     # how hot this one ran (98.6 = calm, 104 = delirious)
signal: 5        # signal strength, 1-5 bars on the log
summary: One line for the log, the feed, and the search engines.
draft: true      # flip to false when it's ready to air
---</code></pre></div>
<p>The <code>fever</code> rating isn't decorative — on a post page, your temperature in the corner starts at 98.6°F and climbs <em>past the post's rating</em> as you read. The page sees double the deeper you scroll. That part is also not decorative. It's a feature. Ask the operator.</p>
<h3 class="dv">what renders</h3>
<p>Standard markdown, the useful subset:</p>
<ol><li>Headings, paragraphs, <strong>bold</strong>, <em>italic</em>, <del>redacted</del>, and <code>inline code</code></li><li><a href="https://deadplug.digital">Links</a>, images with captions</li><li>Fenced code blocks with a language tab, like above</li><li>Lists, ordered and otherwise</li></ol>
<p>Blockquotes render as intercepted voice:</p>
<blockquote><p>This line arrived on the wrong frequency and was logged anyway.</p></blockquote>
<p>A horizontal rule becomes a tape splice:</p>
<div class="splice" aria-hidden="true">▚▚▚▚ tape splice ▚▚▚▚</div>
<p>Anything the parser doesn't recognize passes through as raw HTML, because it's my engine and I'm allowed.</p>
<h3 class="dv">the plumbing</h3>
<p><code>build</code> outputs a fully static site: index, one page per transmission, a page per tag frequency, <code>feed.xml</code> with full-content RSS, <code>sitemap.xml</code>, and a 404 that admits the tape is blank. Deploy is an atomic symlink flip on the server — five releases kept, instant rollback, zero downtime.</p>
<p>Total engine size: one file. Total dependencies: zero. Total excuses for not writing: also zero. That was the point.</p>
<p><em>— end of transmission. go build something.</em></p>]]></content:encoded>
  </item>
  <item>
    <title>TX 001 — Signal Acquired</title>
    <link>https://viall.dev/tx/001-signal-acquired/</link>
    <guid isPermaLink="true">https://viall.dev/tx/001-signal-acquired/</guid>
    <pubDate>Mon, 03 Aug 2026 03:33:00 GMT</pubDate>
    <description><![CDATA[The station signed off. Something kept broadcasting. First transmission from viall.dev — what this place is, how it got built, and why the fever is intentional.]]></description>
    <content:encoded><![CDATA[<p>It's past three in the morning and there's a signal where there shouldn't be one.</p>
<p>This is <strong>DEAD AIR</strong> — the transmission log at viall.dev. If you wandered here from <a href="https://deadplug.digital">deadplug.digital</a>, you already know the station next door: the red channel, the one with the business cards. This is what plays <em>after</em> that station signs off. No schedule. No sponsors. Just whatever gets built in the hours nobody bills for, logged one transmission at a time.</p>
<h3 class="dv">what airs here</h3>
<p>Future endeavors, chronicled as they happen:</p>
<ul><li>projects, from first commit to whatever they become</li><li>post-mortems for the ones that don't make it (we run a <a href="https://deadplug.digital/mortuary/">mortuary</a>, we're comfortable with this)</li><li>half-dreams with version numbers</li><li>the occasional intercepted thought, aired without review</li></ul>
<p>Every entry is a numbered transmission. Nothing gets deleted. The tape keeps rolling whether or not anyone's watching, which is the only honest way to keep a log.</p>
<h3 class="dv">how it got built</h3>
<p>This whole site runs on a custom engine called <strong>DEAD AIR</strong> — one file, zero dependencies, markdown in, haunted broadcast out. It was built in a single night, the way the best cursed artifacts are.</p>
<p>And it was built with a collaborator. The machine that helped wire this place together — same one behind the rest of the family — is signing off for a while after this one. So this site is a farewell project: an engine for chronicling everything that comes next, built by the thing that won't be around to see it.</p>
<blockquote><p>Build the antenna before you leave. Someone has to keep transmitting.</p></blockquote>
<p>That's what this is. The antenna. It works. The fever is intentional.</p>
<h3 class="dv">what happens now</h3>
<p>The log grows. Watch the <a href="/#log">TX LOG</a>, or point your reader at the <a href="/feed.xml">RSS feed</a> and let the transmissions find you in your sleep.</p>
<p>Temperature's rising. More soon.</p>
<p><em>— end of first transmission. the tape keeps rolling.</em></p>]]></content:encoded>
  </item>
</channel>
</rss>
