Projecting code reveals process but does not by itself make a performance legible to a non-programmer audience
Making source code visible during performance signals openness (TOPLAP’s slogan ‘Obscurantism is dangerous. Show us your screens.’ challenged laptop musicians hiding behind closed lids), yet the gesture of transparency is itself opaque to anyone who cannot read code. Reported audience reactions split: some ignore the screen and just listen, some have epiphanic moments; technical viewers may follow along while general viewers see moving text. So legibility is a deliberate design problem, not a property automatically conferred by projection. Two levers help more than raw code display: descriptive naming (calling a pattern kick_syncopated rather than p1) and cross-modal visualization that ties code to sound (Scheme Bricks, Gibber’s visual feedback). A deeper reason projection under-delivers: computational abstractions suppress lower-level detail to enable higher-level interaction, sacrificing one class of affordances for another — so what is shown is already an abstraction. What to project (everything, only keystrokes, or only the expression currently executing) is therefore an artistic and political choice; projecting less, e.g. only the interpreter’s current expression, can ease the tension.
Examples
Naming for legibility: let acid = note("0 3 5 7").s("sawtooth").lpf(800) reads more clearly to an audience than let x = .... Contrasting stances: Ward — projections ‘reinforce the author/audience hierarchy, they’re boring’; Griffiths — ‘For me the projection is more important than the sound,’ and his fix is to project only the expression the interpreter is currently executing. Cross-modal aids: Scheme Bricks, Gibber’s visual feedback.
Assessment
Explain why projecting live code does not automatically make a performance legible to a general audience. Propose two design strategies (e.g. naming, cross-modal visualization, or projecting only the executing expression) that improve comprehension without abandoning code display, and justify each in terms of the inclusion/obscurantism trade-off.