DATA FOLDING SYNTHESIZER

Tutorial & Reference Guide

Concept Getting Started Channels Frequencies Filling Effects Playback Import/Export Examples

The Concept

The Data Folding Synthesizer treats images as audio and audio as images. It's based on the principle that both are just sequences of numbers—pixels and samples are interchangeable when you understand their relationship.

Core Principle: At 44,100 samples per second, a row of pixels = a fraction of a second of audio. The pixel's brightness = the audio amplitude.

A grayscale value of 127 (middle gray) represents silence. Values below 127 produce positive amplitude (peaks), values above 127 produce negative amplitude (troughs). This creates a direct visual-sonic correspondence: what you see is what you hear.

Getting Started

Step 1: Choose Dimensions

The first screen asks you to select the width and height of your canvas.

Width determines which frequencies are available. The tool only offers widths that are divisors of 44,100 (the sample rate). This ensures that waveforms align perfectly with row boundaries, creating clean tones.

Height determines duration:

Duration = (width × height) / 44,100 seconds

For example, a 441×441 image = 194,481 samples = ~4.41 seconds of audio.

Tip: Start with a smaller canvas (like 441×441) while learning. Larger canvases use more memory and have fewer undo levels.

Step 2: The Workspace

After confirming dimensions, you'll see:

Channels

The synthesizer works with 5 channels:

ChannelDefault RoutingDescription
R (Red)Right speakerStandard color channel
G (Green)Left speakerStandard color channel
B (Blue)Center (both)Standard color channel
A (Alpha)EnvelopeControls volume of RGB
M (Mono)CenterGrayscale working channel

Audio Routing

Each channel can be routed to: LEFT, RIGHT, CENTER, or NONE. This creates stereo separation—put different frequencies in R and G for spatial effects.

Alpha as Envelope

When "Alpha = envelope" is checked (default), the A channel controls the volume of the RGB channels:

This lets you create amplitude envelopes (fade in/out, tremolo, gating) by drawing in the Alpha channel.

Understanding Frequencies

The available frequencies are determined by your canvas width. A frequency is created when a waveform's wavelength (λ) divides evenly into the width.

Frequency = 44,100 / λ (wavelength in pixels)

For example, with width 441:

Frequencies are grouped into:

Filling Selections

Making Selections

Click and drag on the canvas to select a rectangular region. The selection info shows dimensions and duration. Click ALL to select the entire canvas.

Waveform Mode

Fill selections with periodic waveforms:

Two fill options:

Gradient Mode

Fill selections with amplitude gradients (great for the Alpha channel):

Direction: HORIZONTAL (across time within rows) or VERTICAL (across rows/time).

Amplitude

The amplitude slider (0–100%) controls the intensity of fills. Lower amplitude = quieter tones.

Effects

Effects modify the actual pixel data—they're "baked in" to the image. What you see IS what you hear.

Distortion

Applies soft clipping (tanh saturation) to push values toward extremes.

Visually: Increases contrast. Sonically: Adds harmonics, creates grit.

Delay

Copies and offsets the signal backward in time.

Visually: Creates offset copies/echoes of patterns. Apply multiple times for cascading echoes.

Reverb

Multi-tap delay algorithm creating diffuse reflections.

Visually: Creates smeared/ghosted trails.

Tip: All effects work on the currently selected channel. Apply effects to the Alpha channel for interesting amplitude modulation!

Playback & Grid

Transport Controls

During playback, a magenta highlight shows the current row being read, and a vertical line shows the exact sample position.

Grid Overlay

Toggle GRID to show horizontal yellow lines marking each second boundary. This helps visualize temporal structure.

Import & Export

Import Image

Click to load any image (PNG, JPG, etc.). The image is scaled to fit your canvas dimensions. RGBA channels are mapped directly—sonify your photographs!

Export RGBA (.raw)

Click in the toolbar to export the image as raw RGBA data.

To open in GIMP: File → Open → Select file → Import as "Raw image data" → Set width/height, RGBA, 8-bit.

Export Audio (.raw)

Click next to playback controls to export stereo audio.

To open in Audacity: File → Import → Raw Data → Unsigned 8-bit, 2 channels (stereo), 44100 Hz.

Tutorial Examples

Example 1: Your First Tone

  1. Choose width 441, height 441 (about 4.4 seconds)
  2. Click CONFIRM
  3. In FREQUENCIES, click a MID frequency (e.g., 300Hz)
  4. Click ALL to select entire canvas
  5. Click ⊞ FILL
  6. Press to hear your tone!

Example 2: Stereo Chord

  1. Select channel R, choose 100Hz, fill with SINE
  2. Select channel G, choose 150Hz, fill with SINE
  3. Select channel B, choose 200Hz, fill with SINE
  4. Play—you'll hear a chord with spatial separation!

Example 3: Fade In/Out Envelope

  1. Fill R channel with a tone (select all, pick frequency, fill)
  2. Switch to A channel
  3. Switch to GRADIENT mode
  4. Select "IN/OUT", direction VERTICAL
  5. Select all, click FILL
  6. Play—the tone fades in and out!

Example 4: Delay Effect

  1. Create a short tone: select top 1/4 of canvas, fill with 300Hz
  2. Select the entire canvas
  3. Set DELAY: TIME ~100ms, FB 50%, MIX 50%
  4. Click APPLY
  5. You'll see echoes appearing below—play to hear them!

Example 5: Sonify a Photo

  1. Click import and load any image
  2. Press play to hear what your image sounds like
  3. Try different channel routings to explore the sound
  4. Apply effects to transform both image and sound