diff --git a/macpal/Resources/blueberry-glyph-2.svg b/macpal/Resources/blueberry-glyph-2.svg new file mode 100644 index 0000000000..a3871f0d83 --- /dev/null +++ b/macpal/Resources/blueberry-glyph-2.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/macpal/Resources/blueberry-glyph-3.svg b/macpal/Resources/blueberry-glyph-3.svg new file mode 100644 index 0000000000..de46f92bb4 --- /dev/null +++ b/macpal/Resources/blueberry-glyph-3.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/macpal/Resources/blueberry-glyph-sing.svg b/macpal/Resources/blueberry-glyph-sing.svg new file mode 100644 index 0000000000..de22756506 --- /dev/null +++ b/macpal/Resources/blueberry-glyph-sing.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/macpal/Resources/blueberry-glyph.svg b/macpal/Resources/blueberry-glyph.svg new file mode 100644 index 0000000000..3c913d0a44 --- /dev/null +++ b/macpal/Resources/blueberry-glyph.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/macpal/Resources/neo-glyph-2.svg b/macpal/Resources/neo-glyph-2.svg index a3367804b7..76c4fca741 100644 --- a/macpal/Resources/neo-glyph-2.svg +++ b/macpal/Resources/neo-glyph-2.svg @@ -1,16 +1,22 @@ - - - - - - + + + + + + + + + + + - - + + - - - + + + + diff --git a/macpal/Resources/neo-glyph-3.svg b/macpal/Resources/neo-glyph-3.svg index a2ce924c22..48024bfb4d 100644 --- a/macpal/Resources/neo-glyph-3.svg +++ b/macpal/Resources/neo-glyph-3.svg @@ -1,17 +1,24 @@ - - - - - - + + + + + + + + + + + - - - - + + - - + + + + + + diff --git a/macpal/Resources/neo-glyph-sing.svg b/macpal/Resources/neo-glyph-sing.svg index 8a3a188dd6..9ce1d84d96 100644 --- a/macpal/Resources/neo-glyph-sing.svg +++ b/macpal/Resources/neo-glyph-sing.svg @@ -1,18 +1,24 @@ - + - - - - + + + + + + + + + - - + + - - - - - + + + + + + diff --git a/macpal/Resources/neo-glyph.svg b/macpal/Resources/neo-glyph.svg index e91563e854..a30c543c9d 100644 --- a/macpal/Resources/neo-glyph.svg +++ b/macpal/Resources/neo-glyph.svg @@ -1,28 +1,29 @@ - - - - - - - - - - + + + + + + + + + + + + + + - - - + + + + + + diff --git a/macpal/Resources/panda-glyph-2.svg b/macpal/Resources/panda-glyph-2.svg index 18a412297b..0421aecef0 100644 --- a/macpal/Resources/panda-glyph-2.svg +++ b/macpal/Resources/panda-glyph-2.svg @@ -1,19 +1,29 @@ - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + diff --git a/macpal/Resources/panda-glyph-3.svg b/macpal/Resources/panda-glyph-3.svg index 572e3cfc96..ec9ee54afc 100644 --- a/macpal/Resources/panda-glyph-3.svg +++ b/macpal/Resources/panda-glyph-3.svg @@ -1,16 +1,26 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macpal/Resources/panda-glyph-sing.svg b/macpal/Resources/panda-glyph-sing.svg index becba0727f..364e9fd7e0 100644 --- a/macpal/Resources/panda-glyph-sing.svg +++ b/macpal/Resources/panda-glyph-sing.svg @@ -1,17 +1,29 @@ - + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macpal/Resources/panda-glyph.svg b/macpal/Resources/panda-glyph.svg index fe8618692a..32299fa401 100644 --- a/macpal/Resources/panda-glyph.svg +++ b/macpal/Resources/panda-glyph.svg @@ -1,27 +1,38 @@ + - - - - - + + + + + + + + + + + + + + + - - + + - - - - + + + + -- 2.51.2 From be9fc7dd06aeb1b3ede9521201c56613c941a1ee Mon Sep 17 00:00:00 2001 From: "prompt.ac/@jeffrey" Date: Tue, 23 Jun 2026 17:13:22 -0700 Subject: [PATCH 2/2] papers/essay-keymap-score: "The Keymap Is the Score" print proof Print edition of the sosoft author-in-residence essay, recovered from the live Framer site, in the Paul Graham essay style (ac-paper-essay.sty) with the notepat keymap diagram as the cover plate. Built PDF stays gitignored. Co-Authored-By: Claude Opus 4.8 (1M context) --- papers/essay-keymap-score/ac-paper-essay.sty | 129 +++++++++++++++++++ papers/essay-keymap-score/keymap-score.tex | 123 ++++++++++++++++++ 2 files changed, 252 insertions(+) create mode 100644 papers/essay-keymap-score/ac-paper-essay.sty create mode 100644 papers/essay-keymap-score/keymap-score.tex diff --git a/papers/essay-keymap-score/ac-paper-essay.sty b/papers/essay-keymap-score/ac-paper-essay.sty new file mode 100644 index 0000000000..f5676de7c6 --- /dev/null +++ b/papers/essay-keymap-score/ac-paper-essay.sty @@ -0,0 +1,129 @@ +% ac-paper-essay.sty — Aesthetic Computer essay layout +% Usage: \usepackage{ac-paper-essay} in each essay-* paper +% +% Paul Graham-influenced essay format. Minimal chrome. The essay is the +% argument; the design exists only to let the argument breathe. +% +% Design grammar: +% - Single column, narrow measure (~5.0in body width) +% - Serif body with extra leading +% - Title at top (plain, large, dark), date below, no kicker/deck/byline +% - Section breaks: a centered hairline rule of underscores +% - Optional Title Case subheads in bold acdark +% - Discursive bottom-of-page footnotes for source attribution and asides +% - Author colophon at the end ("Thanks to X for reading drafts") +% +% Tradition: Paul Graham's paulgraham.com essay form. Tight, argumentative, +% observational; thesis-driven; no academic apparatus visible in the body. + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{ac-paper-essay}[2026/05/25 Aesthetic Computer essay layout] + +\RequirePackage{tikz} +\usetikzlibrary{shadows} + +% === FONTS === +\newfontfamily\acbold{ywft-processing-bold}[ + Path=../../system/public/type/webfonts/, + Extension=.ttf +] +\newfontfamily\aclight{ywft-processing-light}[ + Path=../../system/public/type/webfonts/, + Extension=.ttf +] + +% === COLORS === +\definecolor{acpink}{RGB}{180,72,135} +\definecolor{acpurple}{RGB}{120,80,180} +\definecolor{acdark}{RGB}{40,36,48} +\definecolor{acgray}{RGB}{119,119,119} + +% === DISCURSIVE NOTES (bottom-of-page footnotes) === +\renewcommand{\thefootnote}{\arabic{footnote}} +\renewcommand{\@makefnmark}{\textsuperscript{\color{acpink}\bfseries\@thefnmark}} +\renewcommand{\footnoterule}{% + \kern-3pt + {\color{acgray}\hrule width 0.30\columnwidth height 0.4pt} + \kern 2pt +} +\renewcommand{\@makefntext}[1]{% + \parindent 1em\noindent + \hb@xt@1.4em{\hss\textsuperscript{\color{acpink}\bfseries\@thefnmark}}#1% +} +\newcommand{\enote}[1]{\footnote{#1}} +\newcommand{\printendnotes}{} + +% === SECTION FORMATTING (Title Case subheads, sparing use) === +% Sections in plain bold serif, dark, no numbers. Sized to feel like a +% pulled-up subhead, not an academic chapter mark. +\titleformat{\section}[block] + {\normalfont\bfseries\fontsize{13pt}{16pt}\selectfont\color{acdark}\raggedright} + {}{0pt}{} +\titlespacing{\section}{0pt}{1.8em}{0.5em} + +\titleformat{\subsection}[block] + {\normalfont\itshape\bfseries\normalsize\color{acdark}\raggedright} + {}{0pt}{} +\titlespacing{\subsection}{0pt}{1em}{0.2em} + +\setcounter{secnumdepth}{-1} + +% === SECTION BREAK === +% A centered hairline of em-dashes, in Paul Graham's tradition (his are +% underscores; ours are em-dashes in acgray). Wholly visual; no TikZ. +\newcommand{\acbreak}{% + \par\vspace{1.4em}% + \begin{center}% + {\color{acgray}\rule{2.5em}{0.4pt}}% + \end{center}% + \vspace{1em}\par\noindent\ignorespaces% +} + +% === TITLE BLOCK (plain, PG-style) === +% \essaytitle{} Large dark title, top-anchored +% \essaydate{} Small italic date below +\newcommand{\essaytitle}[1]{% + \begin{center}% + \begin{tikzpicture} + % Drop shadow: dim acdark copy, offset down-right + \node[acdark, opacity=0.25, + font=\aclight\fontsize{42pt}{46pt}\selectfont, + inner sep=0pt] at (2.5pt, -2.5pt) {#1}; + % Main: pink text at origin (drawn on top) + \node[acpink, + font=\aclight\fontsize{42pt}{46pt}\selectfont, + inner sep=0pt] at (0, 0) {#1}; + \end{tikzpicture}% + \end{center}% + \vspace{0.6em}% +} +\newcommand{\essaydate}[1]{% + \begin{center}% + {\fontsize{14pt}{16pt}\selectfont\itshape\color{acgray}#1}% + \end{center}% + \vspace{2em}% +} + +% === COLOPHON (thanks-for-reading, PG-style) === +% Left-aligned, like Paul Graham's "Thanks to X, Y, Z for reading drafts of this." +\newcommand{\colophon}[1]{% + \par\vspace{2em}% + \noindent{\color{acgray}\rule{3em}{0.4pt}}\par + \vspace{0.6em}% + \noindent{\small\itshape\color{acgray}#1}\par +} + +% === LIST SETTINGS (essays rarely use lists; default to tight) === +\setlist[itemize]{leftmargin=1.4em, itemsep=0.2em, topsep=0.3em, parsep=0pt} +\setlist[enumerate]{leftmargin=1.4em, itemsep=0.2em, topsep=0.3em, parsep=0pt} + +% === PARAGRAPH SETTINGS === +\setlength{\parindent}{1.2em} +\setlength{\parskip}{0pt} +\linespread{1.18} + +\tolerance=400 +\emergencystretch=2em +\hyphenpenalty=200 + +\endinput diff --git a/papers/essay-keymap-score/keymap-score.tex b/papers/essay-keymap-score/keymap-score.tex new file mode 100644 index 0000000000..ff36024b15 --- /dev/null +++ b/papers/essay-keymap-score/keymap-score.tex @@ -0,0 +1,123 @@ +% !TEX program = xelatex +\documentclass[11pt,letterpaper]{article} + +% === GEOMETRY === (narrow measure, PG-style) +\usepackage[top=1in, bottom=1in, left=1.15in, right=1.15in]{geometry} + +% === FONTS === +\usepackage{fontspec} +\usepackage{unicode-math} + +\setmainfont{Latin Modern Roman}[ + Extension=.otf, + UprightFont=lmroman10-regular, + BoldFont=lmroman10-bold, + ItalicFont=lmroman10-italic, + BoldItalicFont=lmroman10-bolditalic, +] +\setsansfont{Latin Modern Sans}[ + Extension=.otf, + UprightFont=lmsans10-regular, + BoldFont=lmsans10-bold, + ItalicFont=lmsans10-oblique, + BoldItalicFont=lmsans10-boldoblique, +] +\setmonofont{Latin Modern Mono}[ + Extension=.otf, + UprightFont=lmmono10-regular, + ItalicFont=lmmono10-italic, + Scale=0.85, +] + +% === PACKAGES === +\usepackage{xcolor} +\usepackage{titlesec} +\usepackage{enumitem} +\usepackage{fancyhdr} +\usepackage{graphicx} +\usepackage{hyperref} +\usepackage{xurl} +\usepackage{ragged2e} +\usepackage{microtype} + +\usepackage{ac-paper-essay} + +\hypersetup{ + colorlinks=true, + linkcolor=acpurple, + urlcolor=acpurple, + pdfauthor={Jeffrey Alan Scudder}, + pdftitle={The Keymap Is the Score}, +} + +\pagestyle{fancy} +\fancyhf{} +\renewcommand{\headrulewidth}{0pt} +\fancyhead[C]{\footnotesize\color{acgray}\thepage} + +\newcommand{\ac}{Aesthetic\textcolor{acpink}{.}Computer} +\newcommand{\np}{notepat} + +% Title is long; render it a touch smaller than the 42pt default so it sits on +% one measure without overrunning the page. +\renewcommand{\essaytitle}[1]{% + \begin{center}% + \begin{tikzpicture} + \node[acdark, opacity=0.25, + font=\aclight\fontsize{30pt}{34pt}\selectfont, + inner sep=0pt] at (2pt, -2pt) {#1}; + \node[acpink, + font=\aclight\fontsize{30pt}{34pt}\selectfont, + inner sep=0pt] at (0, 0) {#1}; + \end{tikzpicture}% + \end{center}% + \vspace{0.6em}% +} + +\begin{document} + +\thispagestyle{empty} +\vspace*{0.5in} + +\essaytitle{The Keymap Is the Score} +\begin{center}\includegraphics[width=0.46\textwidth]{../arxiv-keymaps/notepat-keymap}\end{center}\par\vspace{0.35em} +\begin{center}{\itshape\color{acgray}Keymaps as social software, and the edition we made for Cycle~2}\end{center} +\essaydate{June 2026} + +The keymap is a small table. It says that the QWERTY key A plays one note, that S plays the next, that the letters under your fingers are also pitches. It contains no code. It is not a binary, not a service, not a runtime. It is a list of agreements about what a key means. And it is software in every sense that matters: it is versioned, it is invented, it is forked, people demand it from one application to the next and complain when it is missing. + +I first made it as \np{} --- a small JavaScript piece on \ac{}. Since then the same keymap has been implemented again and again: across the \ac{} operating system, as the \np{} instrument for upcycled computers, and in the Mac Menu Band app, written in collaboration with Esteban Uribe. The notes stay the same; only the body around them changes. That portability is the point --- and the reason I think a keymap is worth a paper. + +This is the short version of why. + +\section{A thing without a name} + +A keymap is the layer everyone uses and no one looks at. The mapping from QWERTY to piano notes that ships inside every digital audio workstation. The Vim commands that travel from one editor to the next. The Rubik's cube notation that lets a stranger in another country hand you a twenty-move solution on a napkin. These are not programs and they are not data. They are conventions that behave like software --- and the categories we usually reach for can't see them. The open-source-versus-proprietary axis has nothing to say about a thing that has no source. Format theory wants a specification; most keymaps don't have one. + +A thing without a name is hard to see, harder to critique, and impossible to cite. So the first move in the paper is to name the category. I call it \textit{social software} --- and I mean three things at once. I mean Clay Shirky's 2003 sense, software made for sociality. I mean this initiative, the Social Software program at UCLA Design Media Arts that I'm writing inside of. And I mean a third reading that the other two make room for: \textit{software whose existence is itself a social agreement.} A keymap exists because enough people decided to act as if it does. Stop agreeing and it's gone --- not deprecated, not end-of-lifed, just no longer true. + +\section{The case in the middle} + +The clearest example is also the worst-designed one. Open almost any DAW and you can play the keyboard like a piano: A is C, W is C-sharp, S is D, and so on up a staircase of letters that bear no relation to the notes they make. It is unowned --- no company invented it, no patent covers it, every program ships it because every other program ships it. It is a near-perfect specimen of social software. And it is bad. It spends two hands' width on a single octave. It is illegible without a tutorial. Nobody chose it; it accreted. + +I gave it a name too. I call it AWSED, after the keys A-W-S-E-D that spell its first five notes, rhyming on purpose with gaming's WASD. The rhyme is the argument: once the thing has a name, you can say ``AWSED is bad'' in three words, and three words is a length at which a critique can travel. \np{} is my counter-proposal --- a keymap I designed on purpose instead of letting one happen to me. The letter keys play the notes they name: C plays C, D plays D, E plays E, and the sharps sit on the keys around them. Underneath runs what I call the contract line: the tonal mapping is identical across every place \np{} lives, and above that line each device is free to improvise its own extended layer. Below the line, deviation is breakage. Above it, deviation is idiom. A keymap that requires a manual is a keymap that has lost its social-software character. + +Play it for yourself at \href{https://notepat.com}{notepat.com} --- click a key or just type. The letter keys play the notes they name. + +\section{Why this belongs in a room full of scores} + +Cycle~2 of Social Software is called \textit{Scores for Social Software}, facilitated by Casey Reas, and it asked each of us for a score --- a way of choreographing events in time through text, diagrams, or instruction. The lineage is the Fluxus event score, Cage and Knowles' \textit{Notations}, Hans Ulrich Obrist's \textit{do it}, the work Natilee Harren brought us through The Scores Project. I didn't have to leave my paper to answer the prompt. A keymap is a score. It is an instruction for a body --- these fingers, this key, this note --- that means nothing until somebody performs it, and that only becomes social once it's written down in a form that can be handed to the next person. + +That last part is the half the paper cares about most. A keymap has two bodies: the binding (A plays C) and the notation (the textual form the binding takes when it travels). Vim has both --- \texttt{:wq} is a phrase you can say out loud, type, and teach. The DAW staircase has the first and not the second; there's no portable way to write it down, which is exactly why it never improved. Where there is no transmissible notation, there is no social mediation to mediate. A designer who ships only the binding-table has shipped half of the object. The ask the paper ends on is small and specific: ship the keymap as a first-class thing --- readable, exportable, forkable --- and ship the notation alongside it. + +\section{The edition} + +This page accompanies the first numbered print edition of the paper, cut in June 2026 as my contribution to Cycle~2. The edition mechanic is the part I love most, because it is itself a piece of social software: every member of the cohort produced sixty-four copies of their own score, and on June~13, 2026, at Fuser --- 1811 Blake Ave, in Frogtown --- we brought them all into one room and collated them into a single publication. One assembled set per copy, sixty-four times over. A paper about conventions that exist because people agree to act on them, bound by hand into an object that exists because a room full of people showed up and agreed to make it. + +The cohort each arrived with a score: Jordan Silver's \textit{Sonic Architecture}, Em Lugo's \textit{Ambling Los Angeles}, Æther Cavendish's \textit{Vigil Score}, Thomas Noya's \textit{Biophonía}, Mavyn Vu's \textit{the radio is an altar : portal}, Alex Espinosa's \textit{Music for World Computers}, Darlyn Phan's \textit{Meridians}, Chelly Jin's \textit{Software as a Choreography}, Banyi Huang's \textit{Conjuring Notness}, and mine --- the keymaps paper, under the banner of \ac{}. Convened by Casey Reas and Lauren Lee McCarthy, produced with Wylie Kasai. Reading those scores next to each other is the best argument I can make for the category: none of us shipped a binary, and all of us shipped software. + +The keymap on the front of \np{} is still there. It still contains no code. It is still just a table of agreements --- which, it turns out, is one of the oldest and most durable kinds of software we have. It only needed a name. + +\colophon{Jeffrey Alan Scudder, June 2026 \enspace$\cdot$\enspace Social Software, UCLA Design Media Arts \enspace$\cdot$\enspace \href{https://sosoft.arts.ucla.edu/keymaps-as-social-software}{sosoft.arts.ucla.edu/keymaps-as-social-software}} + +\end{document}