<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://greenmancollective.com/sketchpad/feed.xml" rel="self" type="application/atom+xml" /><link href="https://greenmancollective.com/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-10-14T09:34:58-04:00</updated><id>https://greenmancollective.com/sketchpad/feed.xml</id><title type="html">The Greenman Collective | Sketches</title><subtitle>A home for ambient electronic and computer music: soundscapes, abstract sound art, and everything between the soundwalk and the early electronic studio.</subtitle><author><name>J.C. Wilson</name></author><entry><title type="html">Spiral 2026·01</title><link href="https://greenmancollective.com/sketchpad/002-spiral-2026-01/" rel="alternate" type="text/html" title="Spiral 2026·01" /><published>2026-09-24T00:00:00-04:00</published><updated>2026-09-24T00:00:00-04:00</updated><id>https://greenmancollective.com/sketchpad/002-spiral-2026-01</id><content type="html" xml:base="https://greenmancollective.com/sketchpad/002-spiral-2026-01/"><![CDATA[]]></content><author><name>J.C. Wilson</name></author><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">The spiral renderer</title><link href="https://greenmancollective.com/sketchpad/001-spiral-renderer/" rel="alternate" type="text/html" title="The spiral renderer" /><published>2026-09-24T00:00:00-04:00</published><updated>2026-09-24T00:00:00-04:00</updated><id>https://greenmancollective.com/sketchpad/001-spiral-renderer</id><content type="html" xml:base="https://greenmancollective.com/sketchpad/001-spiral-renderer/"><![CDATA[<p>The script, start to finish:</p>

<ol>
  <li>Read the FLAC and mix it down to mono.</li>
  <li>Slide a 2048-sample Hann window across it, 512 samples at a time, and take
the FFT of each frame. That is a short-time Fourier transform: frequency
down the rows, time across the columns.</li>
  <li>Convert magnitudes to decibels, set the floor at a low percentile rather
than the true minimum, and scale everything to 0–1.</li>
  <li>Look each value up in a color gradient (one of two outside inputs).</li>
  <li>Read the finished image off as a single strand of pixels and lay that strand
down as an Archimedean spiral, center outward.</li>
</ol>

<p>More turns and a thinner line (thickness being the other input) bring the coils close enough to read like the grooves on a record.</p>

<p>No, I’m not going to share the code. It’s silly, overwrought, and it would feel like lending out my toothbrush.</p>]]></content><author><name>J.C. Wilson</name></author><summary type="html"><![CDATA[The script, start to finish:]]></summary></entry></feed>