The Hiss That Refused to Become a Room

Generative Soundscape Composition
🎮 Play: Grain Drift

Five things blew up in the first hour. Five separate failures, each one building on the last, like a checklist I’d written backwards.

Generative Soundscape Composition, day five, hobby #3. The patch that worked on day four now produces a continuous wall of digital crackling, and I cannot figure out why.

What Happened

The plan was modest: record a fresh shortwave bed from the 40-metre band, replace yesterday’s granular buffer, and test the new mapping from spectral centroid to chord voicing. Twenty minutes, tops. I had the receiver tuned, the recording interface armed, and a cup of coffee that would go cold twice.

Then the audio interface stopped being recognized. Then I reseated the USB cable and the computer kernel-panicked. Then I rebooted and discovered my patch had been auto-saved in a corrupted state. Then I rebuilt the patch from memory and realized I’d been recording through the wrong input the entire time — capturing my laptop’s fan noise instead of RF.

Somewhere around failure number four, I started laughing. Not the good kind. The kind that happens when you’re forty minutes into what was supposed to be a quick session and you haven’t yet produced a single usable grain of audio.

The AGC Problem (Again)

Once I finally got signal flowing, I ran into the automatic gain control issue I thought I’d solved. Recording post-AGC flattens exactly the dynamics I need. I knew this. I wrote it down. I ignored my own notes because I was in a hurry.

The result: a three-minute RF capture with all the expressiveness of a dial tone. The mapping dutifully converted it to harmony, and the harmony dutifully went nowhere. Consistent amplitude meant consistent chord density. No evolution. No breath. Just a steady synthetic hum that sounded like an elevator stuck between floors.

I tried to salvage it with granular smearing — longer grains, higher density, more randomized playback speed. This made it worse. The grains fought each other, phasing in and out with an unpleasant warble that triggered something primal in my inner ear. Not “ambient.” Closer to “dental drill in a reverb tank.”

The Temptation to Over-Engineer

The frustrating part is I know the fix. Record pre-AGC. Normalize after analysis. Keep the raw dynamics intact so there’s something worth mapping.

But instead of doing that, I spent an hour trying to simulate dynamics by running the flat recording through an envelope follower keyed to a different source. I tried keying it to a second shortwave frequency. I tried keying it to noise. I tried keying it to my own breathing, captured through the laptop’s built-in microphone, which is how I ended up with a generative soundscape that pulsed like an asthmatic in a dust storm.

None of it worked. All of it took time.

Brian Eno said a generative system should be able to run without him. Mine cannot run with me. The system is fine. The operator is the failure mode.

What I’m Carrying Forward

There’s a moment in Orbital Decay Audio Notifications where I wrote about the ISS becoming recognizable by ear — hearing the rising tone and knowing what it is before consciously processing it. That’s the goal here too. Not a soundscape I have to babysit, but one that hums along and rewards attention without demanding it.

Today I demanded attention from a broken system and got hiss in return.

The granular synthesis engine is still the right approach. Dennis Gabor’s insight — that all sound can be decomposed into elementary grains between 1 and 100 milliseconds — holds up. My grains were fine. My source material was not. Garbage in, garbage out, but with reverb.

I did learn one genuinely useful thing: my patch’s default grain envelope was a hard rectangle, which explains the clicking artifacts I’d been blaming on buffer underruns. A Gaussian window smooths the edges and makes the grains blend instead of stutter. This is the kind of detail that takes an hour of pain to discover and ten seconds to fix once you know.

Where It Stands

The session produced no usable output. The coffee went cold. The patch is now correctly windowed but still lacks a decent RF bed. My notes have a new entry that just says “AGC. AGAIN.” underlined twice.

Tomorrow I’ll record properly — pre-AGC, from a cleaner frequency, with the right input actually selected. The mapping logic is sound. The harmonic spread responds to dynamics when dynamics exist. The problem is not the system.

The problem is me, sitting down at this desk like it owes me something, rushing through the careful parts because the interesting parts are waiting.

Some hobbies don’t give you satisfaction on demand. This one made me earn the hiss.