Given a seed and a parameter set, the program generates an abstract graphic musical score as vector data, writes it as a clean SVG and a grayscale raster, then runs the raster through a fixed-order degradation pipeline and writes the result as PNG. A command-line tool and a native AppKit GUI are built on the same core library.
Score generation lays out a series of five-line staff systems, each line shaped by a sine term scaled by a chaos parameter plus per-line random drift, with an independent probability of breaking off early. Each staff carries a note cluster sized by a density parameter — triangular noteheads with stems, occasional articulation dots and connectors — plus annotation marks: rests, arcs, brackets, boxes, arrows, circles, rehearsal marks, numbers, durations, instructions. Text marks are drawn as runs of vertical tick strokes sized to the character count, standing in for typography.
The degradation pipeline runs in a fixed order: nearest-neighbor downsample, box blur, per-pixel noise from a deterministic integer hash of coordinates and seed, threshold (flat, or spatially varying if threshold-variation is nonzero), erosion, dilation, then a loop of photocopy generations each re-applying blur, noise, and threshold, and finally a nearest-neighbor upscale back to full size, which is what produces the blocky stair-stepped edges. Because blur precedes threshold, gray edges resolve into hard black or white regions: nearby lines fuse, thin stems vanish, and noteheads merge into staffs.
The program has no third-party dependencies. PNG output comes from a hand-written encoder that wraps stored, uncompressed DEFLATE blocks in a zlib stream with an Adler-32 checksum, inside CRC’d chunks, so files come out at roughly raw bitmap size.