MENTIFABERThe workshop · drawn at night
Sheet
11 / 41
Grid
MF-02·03
Drawn
Anders
Date
28.10.2026
Fig. 1 · muse, on the bench: power it on to run it hereMF-02·03

01Why it exists

It has taste, and it gets bored of itself

muse keeps a persistent aesthetic self-model: trait weights for density, dissonance and brightness, and a fatigue level. When a trait stays satisfied too long, fatigue forces a deliberate self-violation and inverts the dominant trait for one piece. It's allowed to make something it will probably hate. That's the originality mechanism: a tediversion.

It runs on a schedule you don't set, keeps what clears its own bar, and purges the rest. Your verdicts move its taste slowly: about twelve consistent ones to shift a trait.

02Parts list

  1. Synthesis from scratchAdditive and FM synthesis in pure numpy at 32 kHz, and a formant-based singing voice instead of a TTS wrapper.
  2. CompositionMotifs transposed, inverted, played backwards and stretched; every piece keeps its lineage in SQLite.
  3. Language is optionalKeys only buy it words (briefs, titles, lyrics, reflections), routed through free tiers with local fallback. Cold start works fully offline.
  4. Small on purpose73–80 MB of memory on an Android phone under Termux, about 56 seconds a render, pausing itself if it goes over budget.

03Construction

The bugs that taught it

The runaway bar: a keep-rate controller could only ratchet up; it reached 0.84 and started destroying work scoring 0.72. It's now a quantile tracker bounded to [0.28, 0.78]. Equal peak isn't equal loudness: bass vanished and hats fizzed. Inverse A-weighting per note, filtered percussion and a master tilt fixed it, found by analysing a real rendered WAV.

numpySQLiteTermuxFM synthesis

04Tolerances

The live node is private. The page explains it; listening needs an invite. The voice is crude next to a neural vocoder, by choice.

what it is not, said plainly

05Inscription

2,369 lines. It keeps what clears its own bar.

06The same room