Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

gigs: are.na annual vol.8 pitch — score that teaches itself

Track the submission package for Are.na Annual Vol. 8 (theme: Score,
deadline 2026-04-20): tightened pitch, full 68-block channel outline
with descriptions, and the two seeding scripts used against the v2 API.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

+574
+75
gigs/are-na-annual-vol-8/README.md
··· 1 + # Are.na Annual Vol. 8 — pitch 2 + 3 + Pitch package for Are.na's Annual Vol. 8, themed **"Score."** 4 + 5 + - **Call:** [Open Call for Pitches — Are.na Annual Vol. 8](https://www.are.na/editorial/open-call-for-pitches-for-the-are-na-annual-vol-8) 6 + - **Submission form:** https://aredotna.notion.site/3178a0f816d9815abdf3cb1624bb9e88 7 + - **Deadline:** Monday, April 20, 2026 — 11:59pm EST 8 + - **Honorarium:** $200 (published pieces, book releases December 2026) 9 + - **Submitted channel:** [the score that teaches itself](https://www.are.na/aesthetic-computer/the-score-that-teaches-itself) — 68 blocks 10 + 11 + ## Pitch (tightened, ~170 words) 12 + 13 + > **Channel:** *The Score That Teaches Itself* — whistlegraphs alongside Cardew's *Treatise*, Cage's *Fontana Mix*, shape-note hymnals, Fluxus event scores, skateboard lines. 14 + > 15 + > I want to write about whistlegraph, a drawing form I invented in 2019 where every mark is a sung syllable. Between 2019 and 2023 it reached 2.6 million TikTok followers with no paid promotion and no trend-jacking. The distribution model was the form itself: a score legible enough that watching, learning, and performing collapse into a single gesture. 16 + > 17 + > The essay moves through three registers. As **art**, whistlegraph sits downstream of Cardew and Cage but refuses interpretation in favor of one-to-one legibility. As **content**, it proves a drawing can carry the viral mechanics of a dance challenge. As **interface design**, it became the founding principle of aesthetic.computer — every piece a self-documenting score, every URL a memorizable performance. 18 + > 19 + > What I want to work out: why *reproducibility*, not novelty, is the real score of a form — and what it would mean to design more things this way, objects whose instructions and performance are the same object. 20 + 21 + ## Thesis in one line 22 + 23 + **The score teaches you how to play it.** Every mark is a sung syllable; watching, learning, and performing collapse into a single gesture. 24 + 25 + ## Why this angle 26 + 27 + The strongest candidate from the AC monorepo for the "score" prompt. Already-extant material that supports the essay: 28 + 29 + - [papers/arxiv-whistlegraph/whistlegraph.tex](../../papers/arxiv-whistlegraph/whistlegraph.tex) — the triad *art / content / interface* is already argued. 30 + - `disks/whistlegraph.mjs` / `whistlegraph-composer.mjs` — the practice site. 31 + - 2019 → 2023 → Rhizome/New Museum → Feral File → aesthetic.computer — five paragraphs of narrative spine. 32 + 33 + ## Channel construction 34 + 35 + The channel is organized bottom-up (scroll reading order) in ten sections: 36 + 37 + 1. **Viral / social kin** — TikTok dances, memes, pictograms. 38 + 2. **Instructional / craft** — knitting, origami, sewing, IKEA, LEGO, recipes, tea ceremony. 39 + 3. **Body / movement notation** — Labanotation, Eshkol–Wachman, Benesh, kata, football plays. 40 + 4. **Sport as score** — skateboard lines, Z-Boys, surf breaks, yardage books, parkour. 41 + 5. **Vernacular / folk notation** — shape note, Sacred Harp, tablature, neumes, jianpu, gongche, sargam, gahu. 42 + 6. **Fluxus & event scores** — Yoko Ono, George Brecht, Dick Higgins, Alison Knowles, La Monte Young anthology. 43 + 7. **20th-century graphic scores (the canon)** — Cardew, Cage, Earle Brown, Feldman, Wolff, Ligeti/Wehinger, Xenakis, Oliveros, Lucier, Riley, Young. 44 + 8. **Computational / card-sized kin** — AC prompt, Notepat, Bitsy, PICO-8, Dwitter, demoscene, Inform 7. 45 + 9. **Framing text blocks** — three one-liners that land near the top. 46 + 10. **Whistlegraph** — lands on top: TikTok channel, aesthetic.computer page, Feral File editions, Rhizome/New Museum commission, closing text. 47 + 48 + Full per-block list with descriptions: [channel-blocks.md](channel-blocks.md). 49 + 50 + ## Reproducing the channel 51 + 52 + Two scripts, both auth via `ARENA_TOKEN` env var. A personal access token is created at https://dev.are.na/oauth/applications → any app → "Access Token." The OAuth code-exchange path used to originally mint this token is described in [reference_arena.md](../../../../../../.claude/projects/-Users-jas-aesthetic-computer/memory/reference_arena.md) (local auto-memory, not in the repo). 53 + 54 + - [seed-channel.mjs](seed-channel.mjs) — posts 68 blocks to `the-score-that-teaches-itself` in reverse reading order (so whistlegraph lands on top). 55 + - [set-descriptions.mjs](set-descriptions.mjs) — walks the channel and PUTs a per-block description from the lookup map. 56 + 57 + ```sh 58 + ARENA_TOKEN=... node seed-channel.mjs 59 + ARENA_TOKEN=... node set-descriptions.mjs 60 + ``` 61 + 62 + ## Submission checklist 63 + 64 + - [x] Channel live and public (68 blocks, all links annotated). 65 + - [x] Channel description set (via web UI — API doesn't persist it). 66 + - [x] Other personal channels set to private so the submission reads as a focused profile. 67 + - [x] Credentials stashed in `aesthetic-computer-vault/.env` (encrypt with `fish vault-tool.fish lock`). 68 + - [ ] Notion submission form filled: pitch paragraphs + channel URL. 69 + 70 + ## API notes (gotchas from building this) 71 + 72 + - v2 `/me` returns **410 Gone**. v2 channel/block endpoints still work. 73 + - OAuth **Client ID** ≠ Personal Access Token. A Client ID will read public data but 401 on writes. You need the "Access Token" shown on the app page at dev.are.na/oauth/applications, *or* do a full `code` → `/oauth/token` exchange. 74 + - `PUT /v2/channels/:slug` accepts the `description` field with a 200 response but doesn't persist it — set via the web UI. 75 + - Free-tier channels are capped at 200 blocks. 68 fits comfortably.
+164
gigs/are-na-annual-vol-8/channel-blocks.md
··· 1 + # Channel — the score that teaches itself 2 + 3 + 68 blocks on https://www.are.na/aesthetic-computer/the-score-that-teaches-itself, organized bottom-up (reading order on the channel page is top-down, so this list reads in the order the reader encounters the channel from top). 4 + 5 + ## §10 — Whistlegraph (top of channel) 6 + 7 + - [aesthetic.computer (@whistlegraph) on TikTok](https://www.tiktok.com/@whistlegraph) 8 + > 2.6 million followers. The distribution channel of a form that teaches itself. 9 + - [Whistlegraph · Aesthetic Computer](https://aesthetic.computer/whistlegraph) 10 + > The practice site: draw while singing, the result IS the score. Record, learn, perform. 11 + - [Explore Whistlegraph's art and journey on Feral File](https://feralfile.com/artists/whistlegraph) 12 + > Forty-five whistlegraph editions on Feral File, 2023. 13 + - [Rhizome](https://rhizome.org/) 14 + > Rhizome / New Museum 2022 commission: a 22-minute chalk performance in a public gallery. 15 + - **Text:** *Every mark is a sung syllable. Watching, learning, and performing collapse into a single gesture.* 16 + 17 + ## §9 — Framing text 18 + 19 + - **Text:** *A drawing that constructs the performance it depicts.* 20 + - **Text:** *The score teaches you how to play it.* 21 + - **Text:** *Reproducibility, not algorithmic promotion, explains its viral spread.* 22 + 23 + ## §8 — Computational / card-sized kin 24 + 25 + - [Prompt · Aesthetic Computer](https://aesthetic.computer/prompt) 26 + > The prompt is the instrument. Type a piece name, play it. A one-line score for the entire AC system. 27 + - [Notepat · Aesthetic Computer](https://aesthetic.computer/notepat) 28 + > Keyboard as chromatic instrument. Pressure-sensitive keys as notational markup on QWERTY. 29 + - [Bitsy](https://en.wikipedia.org/wiki/Bitsy) 30 + > Adam Le Doux's tile-based game tool — the syntax itself is the score. 31 + - [PICO-8 Fantasy Console](https://www.lexaloffle.com/pico-8.php) 32 + > A fantasy console where the 32K / 128×128 constraint produces the form. 33 + - [Dwitter](https://www.dwitter.net/) 34 + > 140 characters of JavaScript → an animation. Source code that fits on a card. 35 + - [Demoscene](https://en.wikipedia.org/wiki/Demoscene) 36 + > Intros in kilobytes — source code as a compressed performance. 37 + - [Inform 7](https://en.wikipedia.org/wiki/Inform_7) 38 + > Interactive fiction that reads like plain English. The source IS the play. 39 + 40 + ## §7 — 20th-century graphic scores (the canon) 41 + 42 + - [Notations (Cage, 1969)](https://www.moma.org/s/ge/curated_ge/styles/list_ge/artists/1191/) 43 + > John Cage's 1969 anthology — the graphic-score genre's first self-portrait. 44 + - [Notations 21](https://en.wikipedia.org/wiki/Notations_21) 45 + > Theresa Sauer's 2009 follow-up — the tradition's next generation. 46 + - [Treatise (Cardew)](https://en.wikipedia.org/wiki/Treatise_(Cardew)) 47 + > Cardew's 193-page graphic score — no instructions, no interpretation guide. The reader is the score. 48 + - [Fontana Mix](https://en.wikipedia.org/wiki/Fontana_Mix) 49 + > Cage's transparent overlay system — the first reconfigurable score. 50 + - [Aria (Cage)](https://en.wikipedia.org/wiki/Aria_(Cage)) 51 + > Colored curves for vocal register, shapes for technique. A score you read like a weather map. 52 + - [Concert for Piano and Orchestra (Cage)](https://en.wikipedia.org/wiki/Concert_for_Piano_and_Orchestra_(Cage)) 53 + > Eighty-four score 'solos' to be played in any order, for any duration, in any combination. 54 + - [Variations I (Cage)](https://en.wikipedia.org/wiki/Variations_I) 55 + > Transparent sheets, dots and lines — the score is a configuration, not a sequence. 56 + - [December 1952 (Earle Brown)](https://en.wikipedia.org/wiki/December_1952) 57 + > Earle Brown's single page — rectangles in two dimensions, read in any direction. 58 + - [Morton Feldman](https://en.wikipedia.org/wiki/Morton_Feldman) 59 + > Feldman's graph pieces — intensity and register on a grid. Pitch becomes a choice, not an instruction. 60 + - [Christian Wolff](https://en.wikipedia.org/wiki/Christian_Wolff_(composer)) 61 + > Prose instructions as scores — Burdocks, For One, Two or Three People. Text as instrument. 62 + - [Artikulation (Ligeti)](https://en.wikipedia.org/wiki/Artikulation_(Ligeti)) 63 + > Wehinger's listening score — drawn AFTER Ligeti's electronic piece, to teach you how to hear it. 64 + - [Metastaseis (Xenakis)](https://en.wikipedia.org/wiki/Metastaseis) 65 + > Xenakis drafted string glissandi like architectural sections. The score is geometry. 66 + - [Sonic Meditations (Oliveros)](https://en.wikipedia.org/wiki/Sonic_Meditations) 67 + > Pauline Oliveros's text scores for group listening — attention itself as the performance. 68 + - [I Am Sitting in a Room (Lucier)](https://en.wikipedia.org/wiki/I_Am_Sitting_in_a_Room) 69 + > Lucier's one paragraph of text — an entire composition. 70 + - [In C (Terry Riley)](https://en.wikipedia.org/wiki/In_C) 71 + > Terry Riley: 53 phrases on one page, any ensemble, 45–90 minutes. A score infinitely rehearsable. 72 + - [Composition 1960 (La Monte Young)](https://en.wikipedia.org/wiki/Composition_1960) 73 + > La Monte Young's text scores, including 'Draw a straight line and follow it.' 74 + 75 + ## §6 — Fluxus & event scores 76 + 77 + - [Grapefruit (Yoko Ono)](https://en.wikipedia.org/wiki/Grapefruit_(book)) 78 + > Yoko Ono's book of instructions — scores so small they fit on a card. 79 + - [Water Yam (Brecht)](https://en.wikipedia.org/wiki/Water_Yam) 80 + > George Brecht's event cards — single-instruction scores the size of a business card. 81 + - [Dick Higgins](https://en.wikipedia.org/wiki/Dick_Higgins) 82 + > Danger Music and the idea of scores that can't be performed safely. 83 + - [An Anthology of Chance Operations](https://en.wikipedia.org/wiki/An_Anthology_of_Chance_Operations) 84 + > La Monte Young's 1963 anthology — the origin point of Fluxus event scores. 85 + - [Alison Knowles](https://en.wikipedia.org/wiki/Alison_Knowles) 86 + > Make A Salad (1962): the salad is the score. The performance is eating. 87 + - **Text:** *"Draw a line. Follow it." — Yoko Ono, *Line Piece* (1964).* 88 + 89 + ## §5 — Vernacular / folk notation 90 + 91 + - [Shape note](https://en.wikipedia.org/wiki/Shape_note) 92 + > Four shapes, one staff — a self-teaching notation for congregational singing. The score teaches you how to read it. 93 + - [Sacred Harp](https://en.wikipedia.org/wiki/Sacred_Harp) 94 + > The shape-note repertoire in practice: the tune is sung in solfège before the words — reading IS learning. 95 + - [Tablature](https://en.wikipedia.org/wiki/Tablature) 96 + > Finger position, not pitch. The diagram of where the hand goes; the sound is the consequence. 97 + - [Neume](https://en.wikipedia.org/wiki/Neume) 98 + > The earliest Western notation — gestural marks for pitch shape, before pitch was quantized. 99 + - [Jianpu](https://en.wikipedia.org/wiki/Jianpu) 100 + > Chinese numbered notation — reads like a score, works like a score, isn't staff notation. 101 + - [Gongche notation](https://en.wikipedia.org/wiki/Gongche_notation) 102 + > Traditional Chinese scales encoded in characters — an alphabet of pitch. 103 + - [Sargam](https://en.wikipedia.org/wiki/Sargam) 104 + > Seven syllables: Sa Re Ga Ma Pa Dha Ni. A score you sing as you read it. 105 + - [Gahu](https://en.wikipedia.org/wiki/Gahu) 106 + > West African drum notation and the oral-diagrammatic pedagogy behind it. 107 + 108 + ## §4 — Sport as score / line 109 + 110 + - [Skateboarding](https://en.wikipedia.org/wiki/Skateboarding) 111 + > A 'line' is a spatial score — stringing tricks across architecture in a single read. 112 + - [Dogtown and Z-Boys](https://en.wikipedia.org/wiki/Dogtown_and_Z-Boys) 113 + > Empty pools as performance scores — swimming-pool topography repurposed as notation. 114 + - [Surf break](https://en.wikipedia.org/wiki/Surf_break) 115 + > Break diagrams: where to paddle, where to cut, where it closes out. A weather-dependent score. 116 + - [Yardage book](https://en.wikipedia.org/wiki/Yardage_book) 117 + > A golfer's private notation — terrain, slope, club, intent. Personal score as tool. 118 + - [Parkour](https://en.wikipedia.org/wiki/Parkour) 119 + > A traceur's line is a reading of urban architecture through the body. 120 + 121 + ## §3 — Body / movement notation 122 + 123 + - [Labanotation](https://en.wikipedia.org/wiki/Labanotation) 124 + > Rudolf Laban's 1928 system — the West's most serious attempt at a staff-notation for the body. 125 + - [Eshkol–Wachman Movement Notation](https://en.wikipedia.org/wiki/Eshkol%E2%80%93Wachman_Movement_Notation) 126 + > Noa Eshkol's system: the body as angles and arcs, notated on a grid. 127 + - [Benesh Movement Notation](https://en.wikipedia.org/wiki/Benesh_Movement_Notation) 128 + > The Royal Ballet's notation — entire company choreography on paper. 129 + - [Kata](https://en.wikipedia.org/wiki/Kata) 130 + > Forms passed down by doing. No diagram, but the form itself is the score, memorized in bodies. 131 + - [American football plays](https://en.wikipedia.org/wiki/American_football_plays) 132 + > X's and O's that collapse into eleven bodies moving in time. 133 + 134 + ## §2 — Instructional / craft 135 + 136 + - [Knitting abbreviations](https://en.wikipedia.org/wiki/Knitting_abbreviations) 137 + > A closed symbol set encoding a three-dimensional wearable performance. 138 + - [Crease pattern](https://en.wikipedia.org/wiki/Crease_pattern) 139 + > Origami before folding — the score for a three-dimensional performance on flat paper. 140 + - [Robert J. Lang Origami](https://langorigami.com/) 141 + > Robert Lang's crease-pattern work — paper-folding as programming. 142 + - [Sewing pattern](https://en.wikipedia.org/wiki/Sewing_pattern) 143 + > Flat cut-outs that, executed correctly, produce a body. A garment is an assembled score. 144 + - [IKEA](https://en.wikipedia.org/wiki/IKEA) 145 + > Image-only assembly instructions that crossed language barriers by refusing language. 146 + - [Lego](https://en.wikipedia.org/wiki/Lego) 147 + > Instruction booklets where each page is a diff from the previous state — score as rewrite. 148 + - [Julia Child](https://en.wikipedia.org/wiki/Julia_Child) 149 + > Recipes as performance scores: measurement, sequence, expected outcome, tasting as feedback. 150 + - [Japanese tea ceremony](https://en.wikipedia.org/wiki/Japanese_tea_ceremony) 151 + > Temae — every gesture choreographed and transmitted by watching, not by diagram. 152 + 153 + ## §1 — Viral / social kin (bottom of channel) 154 + 155 + - [Renegade (dance)](https://en.wikipedia.org/wiki/Renegade_(dance)) 156 + > Jalaiah Harmon's 14-year-old choreography diffused through TikTok without algorithmic push — learners watched it, learned it, performed it, posted it. The dance is the score. 157 + - [Harlem Shake (meme)](https://en.wikipedia.org/wiki/Harlem_Shake_(meme)) 158 + > A 30-second video format so reproducible it became its own genre. The format itself is the score; the content is just the performance. 159 + - [How to draw Squidward](https://knowyourmeme.com/memes/how-to-draw-squidward) 160 + > Stepwise drawing memes — the tutorial is the artwork. Score as self-teaching comedy. 161 + - [Pictogram](https://en.wikipedia.org/wiki/Pictogram) 162 + > Otl Aicher's Munich '72 pictograms — bodily instructions compressed to a single icon. 163 + - [ISOTYPE (picture language)](https://en.wikipedia.org/wiki/ISOTYPE_(picture_language)) 164 + > Otto Neurath's picture language for statistics — a proposal for a universal graphic score.
+140
gigs/are-na-annual-vol-8/seed-channel.mjs
··· 1 + #!/usr/bin/env node 2 + // Seed blocks into the Are.na channel "the-score-that-teaches-itself". 3 + // Blocks are added in reading-bottom → reading-top order so whistlegraph lands 4 + // first on the channel page. 5 + // 6 + // Usage: ARENA_TOKEN=... node seed-channel.mjs 7 + 8 + const TOKEN = process.env.ARENA_TOKEN; 9 + const SLUG = "the-score-that-teaches-itself"; 10 + if (!TOKEN) { console.error("ARENA_TOKEN missing"); process.exit(1); } 11 + 12 + const blocks = [ 13 + // §1 — Viral / social kin (bottom of channel) 14 + { type: "link", v: "https://en.wikipedia.org/wiki/Renegade_(dance)" }, 15 + { type: "link", v: "https://en.wikipedia.org/wiki/Harlem_Shake_(meme)" }, 16 + { type: "link", v: "https://knowyourmeme.com/memes/how-to-draw-squidward" }, 17 + { type: "link", v: "https://en.wikipedia.org/wiki/Pictogram" }, 18 + { type: "link", v: "https://en.wikipedia.org/wiki/ISOTYPE_(picture_language)" }, 19 + 20 + // §2 — Instructional / craft 21 + { type: "link", v: "https://en.wikipedia.org/wiki/Knitting_abbreviations" }, 22 + { type: "link", v: "https://en.wikipedia.org/wiki/Crease_pattern" }, 23 + { type: "link", v: "https://langorigami.com/" }, 24 + { type: "link", v: "https://en.wikipedia.org/wiki/Sewing_pattern" }, 25 + { type: "link", v: "https://en.wikipedia.org/wiki/IKEA" }, 26 + { type: "link", v: "https://en.wikipedia.org/wiki/Lego" }, 27 + { type: "link", v: "https://en.wikipedia.org/wiki/Julia_Child" }, 28 + { type: "link", v: "https://en.wikipedia.org/wiki/Japanese_tea_ceremony" }, 29 + 30 + // §3 — Body / movement notation 31 + { type: "link", v: "https://en.wikipedia.org/wiki/Labanotation" }, 32 + { type: "link", v: "https://en.wikipedia.org/wiki/Eshkol%E2%80%93Wachman_Movement_Notation" }, 33 + { type: "link", v: "https://en.wikipedia.org/wiki/Benesh_Movement_Notation" }, 34 + { type: "link", v: "https://en.wikipedia.org/wiki/Kata" }, 35 + { type: "link", v: "https://en.wikipedia.org/wiki/American_football_plays" }, 36 + 37 + // §4 — Sport-as-score / line 38 + { type: "link", v: "https://en.wikipedia.org/wiki/Skateboarding" }, 39 + { type: "link", v: "https://en.wikipedia.org/wiki/Dogtown_and_Z-Boys" }, 40 + { type: "link", v: "https://en.wikipedia.org/wiki/Surf_break" }, 41 + { type: "link", v: "https://en.wikipedia.org/wiki/Yardage_book" }, 42 + { type: "link", v: "https://en.wikipedia.org/wiki/Parkour" }, 43 + 44 + // §5 — Vernacular / folk notation 45 + { type: "link", v: "https://en.wikipedia.org/wiki/Shape_note" }, 46 + { type: "link", v: "https://en.wikipedia.org/wiki/Sacred_Harp" }, 47 + { type: "link", v: "https://en.wikipedia.org/wiki/Tablature" }, 48 + { type: "link", v: "https://en.wikipedia.org/wiki/Neume" }, 49 + { type: "link", v: "https://en.wikipedia.org/wiki/Jianpu" }, 50 + { type: "link", v: "https://en.wikipedia.org/wiki/Gongche_notation" }, 51 + { type: "link", v: "https://en.wikipedia.org/wiki/Sargam" }, 52 + { type: "link", v: "https://en.wikipedia.org/wiki/Gahu" }, 53 + 54 + // §6 — Fluxus & event scores 55 + { type: "link", v: "https://en.wikipedia.org/wiki/Grapefruit_(book)" }, 56 + { type: "link", v: "https://en.wikipedia.org/wiki/Water_Yam" }, 57 + { type: "link", v: "https://en.wikipedia.org/wiki/Dick_Higgins" }, 58 + { type: "link", v: "https://en.wikipedia.org/wiki/An_Anthology_of_Chance_Operations" }, 59 + { type: "link", v: "https://en.wikipedia.org/wiki/Alison_Knowles" }, 60 + { type: "text", v: "“Draw a line. Follow it.” — Yoko Ono, *Line Piece* (1964)." }, 61 + 62 + // §7 — 20th-century graphic scores (the canon) 63 + { type: "link", v: "https://en.wikipedia.org/wiki/Treatise_(Cardew)" }, 64 + { type: "link", v: "https://en.wikipedia.org/wiki/Fontana_Mix" }, 65 + { type: "link", v: "https://en.wikipedia.org/wiki/Aria_(Cage)" }, 66 + { type: "link", v: "https://en.wikipedia.org/wiki/Concert_for_Piano_and_Orchestra_(Cage)" }, 67 + { type: "link", v: "https://en.wikipedia.org/wiki/Variations_I" }, 68 + { type: "link", v: "https://en.wikipedia.org/wiki/December_1952" }, 69 + { type: "link", v: "https://en.wikipedia.org/wiki/Morton_Feldman" }, 70 + { type: "link", v: "https://en.wikipedia.org/wiki/Christian_Wolff_(composer)" }, 71 + { type: "link", v: "https://en.wikipedia.org/wiki/Artikulation_(Ligeti)" }, 72 + { type: "link", v: "https://en.wikipedia.org/wiki/Metastaseis" }, 73 + { type: "link", v: "https://en.wikipedia.org/wiki/Sonic_Meditations" }, 74 + { type: "link", v: "https://en.wikipedia.org/wiki/I_Am_Sitting_in_a_Room" }, 75 + { type: "link", v: "https://en.wikipedia.org/wiki/In_C" }, 76 + { type: "link", v: "https://en.wikipedia.org/wiki/Composition_1960" }, 77 + { type: "link", v: "https://www.moma.org/s/ge/curated_ge/styles/list_ge/artists/1191/" }, 78 + { type: "link", v: "https://en.wikipedia.org/wiki/Notations_21" }, 79 + 80 + // §8 — Computational / card-sized kin 81 + { type: "link", v: "https://aesthetic.computer/prompt" }, 82 + { type: "link", v: "https://aesthetic.computer/notepat" }, 83 + { type: "link", v: "https://en.wikipedia.org/wiki/Bitsy" }, 84 + { type: "link", v: "https://www.lexaloffle.com/pico-8.php" }, 85 + { type: "link", v: "https://www.dwitter.net/" }, 86 + { type: "link", v: "https://en.wikipedia.org/wiki/Demoscene" }, 87 + { type: "link", v: "https://en.wikipedia.org/wiki/Inform_7" }, 88 + 89 + // §9 — Framing text blocks (near top) 90 + { type: "text", v: "A drawing that constructs the performance it depicts." }, 91 + { type: "text", v: "The score teaches you how to play it." }, 92 + { type: "text", v: "Reproducibility, not algorithmic promotion, explains its viral spread." }, 93 + 94 + // §10 — Whistlegraph (lands on top) 95 + { type: "link", v: "https://www.tiktok.com/@whistlegraph" }, 96 + { type: "link", v: "https://aesthetic.computer/whistlegraph" }, 97 + { type: "link", v: "https://feralfile.com/artists/whistlegraph" }, 98 + { type: "link", v: "https://rhizome.org/" }, 99 + { type: "text", v: "Every mark is a sung syllable. Watching, learning, and performing collapse into a single gesture." }, 100 + ]; 101 + 102 + const url = `https://api.are.na/v2/channels/${SLUG}/blocks`; 103 + 104 + let ok = 0, fail = 0; 105 + const failures = []; 106 + 107 + for (let i = 0; i < blocks.length; i++) { 108 + const b = blocks[i]; 109 + const body = b.type === "text" ? { content: b.v } : { source: b.v }; 110 + try { 111 + const res = await fetch(url, { 112 + method: "POST", 113 + headers: { 114 + "Authorization": `Bearer ${TOKEN}`, 115 + "Content-Type": "application/json", 116 + }, 117 + body: JSON.stringify(body), 118 + }); 119 + if (res.ok) { 120 + ok++; 121 + process.stdout.write(` [${String(i + 1).padStart(2, "0")}/${blocks.length}] ${b.type} ok (${b.v.slice(0, 60)})\n`); 122 + } else { 123 + fail++; 124 + const txt = await res.text(); 125 + failures.push({ i: i + 1, v: b.v, status: res.status, txt: txt.slice(0, 160) }); 126 + process.stdout.write(` [${String(i + 1).padStart(2, "0")}/${blocks.length}] FAIL ${res.status} (${b.v.slice(0, 60)})\n`); 127 + } 128 + } catch (e) { 129 + fail++; 130 + failures.push({ i: i + 1, v: b.v, err: String(e) }); 131 + process.stdout.write(` [${String(i + 1).padStart(2, "0")}/${blocks.length}] ERROR ${e.message} (${b.v.slice(0, 60)})\n`); 132 + } 133 + await new Promise((r) => setTimeout(r, 300)); 134 + } 135 + 136 + console.log(`\ndone: ${ok} ok, ${fail} fail`); 137 + if (failures.length) { 138 + console.log("failures:"); 139 + for (const f of failures) console.log(" ", JSON.stringify(f)); 140 + }
+195
gigs/are-na-annual-vol-8/set-descriptions.mjs
··· 1 + #!/usr/bin/env node 2 + // Add per-block descriptions to each block in the channel explaining why it's there. 3 + // Matches by source URL (normalized: lowercased, trailing slash stripped). 4 + // 5 + // Usage: ARENA_TOKEN=... node set-descriptions.mjs 6 + 7 + const TOKEN = process.env.ARENA_TOKEN; 8 + const SLUG = "the-score-that-teaches-itself"; 9 + if (!TOKEN) { console.error("ARENA_TOKEN missing"); process.exit(1); } 10 + 11 + const bySource = { 12 + // §1 — viral/social kin 13 + "https://en.wikipedia.org/wiki/renegade_(dance)": 14 + "Jalaiah Harmon's 14-year-old choreography diffused through TikTok without algorithmic push — learners watched it, learned it, performed it, posted it. The dance is the score.", 15 + "https://en.wikipedia.org/wiki/harlem_shake_(meme)": 16 + "A 30-second video format so reproducible it became its own genre. The format itself is the score; the content is just the performance.", 17 + "https://knowyourmeme.com/memes/how-to-draw-squidward": 18 + "Stepwise drawing memes — the tutorial is the artwork. Score as self-teaching comedy.", 19 + "https://en.wikipedia.org/wiki/pictogram": 20 + "Otl Aicher's Munich '72 pictograms — bodily instructions compressed to a single icon.", 21 + "https://en.wikipedia.org/wiki/isotype_(picture_language)": 22 + "Otto Neurath's picture language for statistics — a proposal for a universal graphic score.", 23 + 24 + // §2 — instructional / craft 25 + "https://en.wikipedia.org/wiki/knitting_abbreviations": 26 + "A closed symbol set encoding a three-dimensional wearable performance.", 27 + "https://en.wikipedia.org/wiki/crease_pattern": 28 + "Origami before folding — the score for a three-dimensional performance on flat paper.", 29 + "https://langorigami.com": 30 + "Robert Lang's crease-pattern work — paper-folding as programming.", 31 + "https://en.wikipedia.org/wiki/sewing_pattern": 32 + "Flat cut-outs that, executed correctly, produce a body. A garment is an assembled score.", 33 + "https://en.wikipedia.org/wiki/ikea": 34 + "Image-only assembly instructions that crossed language barriers by refusing language.", 35 + "https://en.wikipedia.org/wiki/lego": 36 + "Instruction booklets where each page is a diff from the previous state — score as rewrite.", 37 + "https://en.wikipedia.org/wiki/julia_child": 38 + "Recipes as performance scores: measurement, sequence, expected outcome, tasting as feedback.", 39 + "https://en.wikipedia.org/wiki/japanese_tea_ceremony": 40 + "Temae — every gesture choreographed and transmitted by watching, not by diagram.", 41 + 42 + // §3 — body / movement notation 43 + "https://en.wikipedia.org/wiki/labanotation": 44 + "Rudolf Laban's 1928 system — the West's most serious attempt at a staff-notation for the body.", 45 + "https://en.wikipedia.org/wiki/eshkol%e2%80%93wachman_movement_notation": 46 + "Noa Eshkol's system: the body as angles and arcs, notated on a grid.", 47 + "https://en.wikipedia.org/wiki/benesh_movement_notation": 48 + "The Royal Ballet's notation — entire company choreography on paper.", 49 + "https://en.wikipedia.org/wiki/kata": 50 + "Forms passed down by doing. No diagram, but the form itself is the score, memorized in bodies.", 51 + "https://en.wikipedia.org/wiki/american_football_plays": 52 + "X's and O's that collapse into eleven bodies moving in time.", 53 + 54 + // §4 — sport as score 55 + "https://en.wikipedia.org/wiki/skateboarding": 56 + "A 'line' is a spatial score — stringing tricks across architecture in a single read.", 57 + "https://en.wikipedia.org/wiki/dogtown_and_z-boys": 58 + "Empty pools as performance scores — swimming-pool topography repurposed as notation.", 59 + "https://en.wikipedia.org/wiki/surf_break": 60 + "Break diagrams: where to paddle, where to cut, where it closes out. A weather-dependent score.", 61 + "https://en.wikipedia.org/wiki/yardage_book": 62 + "A golfer's private notation — terrain, slope, club, intent. Personal score as tool.", 63 + "https://en.wikipedia.org/wiki/parkour": 64 + "A traceur's line is a reading of urban architecture through the body.", 65 + 66 + // §5 — vernacular / folk notation 67 + "https://en.wikipedia.org/wiki/shape_note": 68 + "Four shapes, one staff — a self-teaching notation for congregational singing. The score teaches you how to read it.", 69 + "https://en.wikipedia.org/wiki/sacred_harp": 70 + "The shape-note repertoire in practice: the tune is sung in solfège before the words — reading IS learning.", 71 + "https://en.wikipedia.org/wiki/tablature": 72 + "Finger position, not pitch. The diagram of where the hand goes; the sound is the consequence.", 73 + "https://en.wikipedia.org/wiki/neume": 74 + "The earliest Western notation — gestural marks for pitch shape, before pitch was quantized.", 75 + "https://en.wikipedia.org/wiki/jianpu": 76 + "Chinese numbered notation — reads like a score, works like a score, isn't staff notation.", 77 + "https://en.wikipedia.org/wiki/gongche_notation": 78 + "Traditional Chinese scales encoded in characters — an alphabet of pitch.", 79 + "https://en.wikipedia.org/wiki/sargam": 80 + "Seven syllables: Sa Re Ga Ma Pa Dha Ni. A score you sing as you read it.", 81 + "https://en.wikipedia.org/wiki/gahu": 82 + "West African drum notation and the oral-diagrammatic pedagogy behind it.", 83 + 84 + // §6 — Fluxus & event scores 85 + "https://en.wikipedia.org/wiki/grapefruit_(book)": 86 + "Yoko Ono's book of instructions — scores so small they fit on a card.", 87 + "https://en.wikipedia.org/wiki/water_yam": 88 + "George Brecht's event cards — single-instruction scores the size of a business card.", 89 + "https://en.wikipedia.org/wiki/dick_higgins": 90 + "Danger Music and the idea of scores that can't be performed safely.", 91 + "https://en.wikipedia.org/wiki/an_anthology_of_chance_operations": 92 + "La Monte Young's 1963 anthology — the origin point of Fluxus event scores.", 93 + "https://en.wikipedia.org/wiki/alison_knowles": 94 + "Make A Salad (1962): the salad is the score. The performance is eating.", 95 + 96 + // §7 — 20th-century graphic scores 97 + "https://en.wikipedia.org/wiki/treatise_(cardew)": 98 + "Cardew's 193-page graphic score — no instructions, no interpretation guide. The reader is the score.", 99 + "https://en.wikipedia.org/wiki/fontana_mix": 100 + "Cage's transparent overlay system — the first reconfigurable score.", 101 + "https://en.wikipedia.org/wiki/aria_(cage)": 102 + "Colored curves for vocal register, shapes for technique. A score you read like a weather map.", 103 + "https://en.wikipedia.org/wiki/concert_for_piano_and_orchestra_(cage)": 104 + "Eighty-four score 'solos' to be played in any order, for any duration, in any combination.", 105 + "https://en.wikipedia.org/wiki/variations_i": 106 + "Transparent sheets, dots and lines — the score is a configuration, not a sequence.", 107 + "https://en.wikipedia.org/wiki/december_1952": 108 + "Earle Brown's single page — rectangles in two dimensions, read in any direction.", 109 + "https://en.wikipedia.org/wiki/morton_feldman": 110 + "Feldman's graph pieces — intensity and register on a grid. Pitch becomes a choice, not an instruction.", 111 + "https://en.wikipedia.org/wiki/christian_wolff_(composer)": 112 + "Prose instructions as scores — Burdocks, For One, Two or Three People. Text as instrument.", 113 + "https://en.wikipedia.org/wiki/artikulation_(ligeti)": 114 + "Wehinger's listening score — drawn AFTER Ligeti's electronic piece, to teach you how to hear it.", 115 + "https://en.wikipedia.org/wiki/metastaseis": 116 + "Xenakis drafted string glissandi like architectural sections. The score is geometry.", 117 + "https://en.wikipedia.org/wiki/sonic_meditations": 118 + "Pauline Oliveros's text scores for group listening — attention itself as the performance.", 119 + "https://en.wikipedia.org/wiki/i_am_sitting_in_a_room": 120 + "Lucier's one paragraph of text — an entire composition.", 121 + "https://en.wikipedia.org/wiki/in_c": 122 + "Terry Riley: 53 phrases on one page, any ensemble, 45–90 minutes. A score infinitely rehearsable.", 123 + "https://en.wikipedia.org/wiki/composition_1960": 124 + "La Monte Young's text scores, including 'Draw a straight line and follow it.'", 125 + "https://www.moma.org/s/ge/curated_ge/styles/list_ge/artists/1191": 126 + "John Cage's 1969 anthology Notations — the graphic-score genre's first self-portrait.", 127 + "https://en.wikipedia.org/wiki/notations_21": 128 + "Theresa Sauer's 2009 follow-up — the tradition's next generation.", 129 + 130 + // §8 — computational / card-sized kin 131 + "https://aesthetic.computer/prompt": 132 + "The prompt is the instrument. Type a piece name, play it. A one-line score for the entire AC system.", 133 + "https://aesthetic.computer/notepat": 134 + "Keyboard as chromatic instrument. Pressure-sensitive keys as notational markup on QWERTY.", 135 + "https://en.wikipedia.org/wiki/bitsy": 136 + "Adam Le Doux's tile-based game tool — the syntax itself is the score.", 137 + "https://www.lexaloffle.com/pico-8.php": 138 + "A fantasy console where the 32K / 128×128 constraint produces the form.", 139 + "https://www.dwitter.net": 140 + "140 characters of JavaScript → an animation. Source code that fits on a card.", 141 + "https://en.wikipedia.org/wiki/demoscene": 142 + "Intros in kilobytes — source code as a compressed performance.", 143 + "https://en.wikipedia.org/wiki/inform_7": 144 + "Interactive fiction that reads like plain English. The source IS the play.", 145 + 146 + // §10 — whistlegraph 147 + "https://www.tiktok.com/@whistlegraph": 148 + "2.6 million followers. The distribution channel of a form that teaches itself.", 149 + "https://aesthetic.computer/whistlegraph": 150 + "The practice site: draw while singing, the result IS the score. Record, learn, perform.", 151 + "https://feralfile.com/artists/whistlegraph": 152 + "Forty-five whistlegraph editions on Feral File, 2023.", 153 + "https://rhizome.org": 154 + "Rhizome / New Museum 2022 commission: a 22-minute chalk performance in a public gallery.", 155 + }; 156 + 157 + const norm = (u) => (u || "").toLowerCase().replace(/\/$/, ""); 158 + 159 + const url = `https://api.are.na/v2/channels/${SLUG}/contents?per=100`; 160 + const res = await fetch(url, { headers: { Authorization: `Bearer ${TOKEN}` } }); 161 + const data = await res.json(); 162 + const blocks = data.contents; 163 + console.log(`fetched ${blocks.length} blocks`); 164 + 165 + let ok = 0, skip = 0, fail = 0; 166 + const missing = []; 167 + for (let i = 0; i < blocks.length; i++) { 168 + const b = blocks[i]; 169 + if (b.class === "Text") { skip++; continue; } 170 + const key = norm(b.source && b.source.url); 171 + const desc = bySource[key]; 172 + if (!desc) { 173 + missing.push({ id: b.id, source: b.source && b.source.url }); 174 + continue; 175 + } 176 + const r = await fetch(`https://api.are.na/v2/blocks/${b.id}`, { 177 + method: "PUT", 178 + headers: { Authorization: `Bearer ${TOKEN}`, "Content-Type": "application/json" }, 179 + body: JSON.stringify({ description: desc }), 180 + }); 181 + if (r.ok || r.status === 204) { 182 + ok++; 183 + process.stdout.write(` [${String(i + 1).padStart(2, "0")}/${blocks.length}] ok ${b.source.url.slice(0, 65)}\n`); 184 + } else { 185 + fail++; 186 + const t = await r.text(); 187 + process.stdout.write(` [${String(i + 1).padStart(2, "0")}/${blocks.length}] FAIL ${r.status} ${b.source.url}: ${t.slice(0, 120)}\n`); 188 + } 189 + await new Promise((r) => setTimeout(r, 300)); 190 + } 191 + console.log(`\ndone: ${ok} updated, ${skip} text-blocks-skipped, ${fail} failed, ${missing.length} no-mapping`); 192 + if (missing.length) { 193 + console.log("no-mapping (need to add to map):"); 194 + for (const m of missing) console.log(" ", m); 195 + }