Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

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

fedac/native: add ATTcifXGXi to wifi presets, ship piano samples in OTA

WiFi: register ATTcifXGXi as a fourth preset across the three sources of
truth (kernel auto-connect fallback, macOS flasher, Linux media layout).

Piano: build-and-flash-initramfs.sh (the path ac-os upload runs) was
missing the /samples/piano/*.raw copy block — recent OTAs shipped without
the piano bank, so notepat's piano voice was silent on device. Ported
the block from build-and-flash.sh.

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

+22 -1
+15
fedac/native/scripts/build-and-flash-initramfs.sh
··· 234 234 done 235 235 log "Bundled web pieces: $(ls "${INITRAMFS_DIR}/pieces/" | grep -c '.mjs') total" 236 236 237 + # 🎹 Copy piano sample bank into /samples/piano/ for the C-side audio 238 + # engine to load at startup (audio.c: load_piano_bank). Each .raw is a 239 + # header-less stream of float32 mono samples at 48kHz; filename is the 240 + # anchor MIDI note number (e.g. 60.raw = C4). The pre-build script 241 + # scripts/prep-piano-samples.sh decimates the full Salamander Grand 242 + # Piano V3 SFZ to these anchor pitches. Total ~14 MB at 26 anchors. 243 + SAMPLES_SRC="${NATIVE_DIR}/samples/piano" 244 + if [ -d "${SAMPLES_SRC}" ]; then 245 + mkdir -p "${INITRAMFS_DIR}/samples/piano" 246 + cp "${SAMPLES_SRC}"/*.raw "${INITRAMFS_DIR}/samples/piano/" 2>/dev/null || true 247 + sample_count=$(ls "${INITRAMFS_DIR}/samples/piano/"*.raw 2>/dev/null | wc -l | tr -d ' ') 248 + sample_size=$(du -sh "${INITRAMFS_DIR}/samples/piano/" 2>/dev/null | cut -f1) 249 + log "Bundled piano samples: ${sample_count} anchors, ${sample_size}" 250 + fi 251 + 237 252 # Copy shared JS libraries needed by pieces (pure JS, no browser deps) 238 253 AC_LIB_DIR="${NATIVE_DIR}/../../system/public/aesthetic.computer/lib" 239 254 mkdir -p "${INITRAMFS_DIR}/lib"
+2 -1
fedac/native/scripts/flash-mac.sh
··· 347 347 WIFI_PRESETS_JSON='[ 348 348 {"ssid":"aesthetic.computer","pass":"aesthetic.computer"}, 349 349 {"ssid":"ATT2AWTpcr","pass":"t84q%7%g2h8u"}, 350 + {"ssid":"ATTcifXGXi","pass":"dvt%mnk8h6z"}, 350 351 {"ssid":"GettyLink","pass":""}, 351 352 {"ssid":"Tondo_Guest","pass":"California"}, 352 353 {"ssid":"Eightfold Coffee","pass":"wecloseat430"} ··· 475 476 && log "Merged $(python3 -c 'import json,sys; print(len(json.load(open(sys.argv[1]))))' "${WIFI_MERGED}") wifi networks (presets + preserved)" 476 477 else 477 478 printf '%s\n' "${WIFI_PRESETS_JSON}" > "${WIFI_MERGED}" 478 - log "Wrote 4 preset wifi networks (no previous USB to preserve from)" 479 + log "Wrote 6 preset wifi networks (no previous USB to preserve from)" 479 480 fi 480 481 fi 481 482 cp "${WIFI_MERGED}" "${M1}/wifi_creds.json"
+1
fedac/native/scripts/media-layout.sh
··· 141 141 [ 142 142 {"ssid":"aesthetic.computer","pass":"aesthetic.computer"}, 143 143 {"ssid":"ATT2AWTpcr","pass":"t84q%7%g2h8u"}, 144 + {"ssid":"ATTcifXGXi","pass":"dvt%mnk8h6z"}, 144 145 {"ssid":"GettyLink","pass":""}, 145 146 {"ssid":"Tondo_Guest","pass":"California"}, 146 147 {"ssid":"Eightfold Coffee","pass":"wecloseat430"}
+4
fedac/native/src/wifi.c
··· 664 664 strncpy(creds[cred_count].ssid, "ATT2AWTpcr", WIFI_SSID_MAX - 1); 665 665 strncpy(creds[cred_count].pass, "t84q%7%g2h8u", WIFI_PASS_MAX - 1); 666 666 cred_count++; 667 + // ATT secondary 668 + strncpy(creds[cred_count].ssid, "ATTcifXGXi", WIFI_SSID_MAX - 1); 669 + strncpy(creds[cred_count].pass, "dvt%mnk8h6z", WIFI_PASS_MAX - 1); 670 + cred_count++; 667 671 // GettyLink (open network, no password) 668 672 strncpy(creds[cred_count].ssid, "GettyLink", WIFI_SSID_MAX - 1); 669 673 creds[cred_count].pass[0] = '\0';