Skip to main content

max / makenotwork

Fix user-visible glyphs and seed copy in multithreaded Sortable category headers announce their state: aria-sort on the active th, aria-label on the link, and the arrow glyphs hidden from assistive tech rather than read as bare arrows. Clean five seed-content strings of AI tells (two "not just" clauses, two "seamless", one padding adverb).
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-07-28 01:35 UTC
Signed with PGP, not checked
Commit: 6c6a10b4b2e86ed25c0afb68a1c9fa75177480b1
Parent: 169c778
2 files changed, +9 insertions, -9 deletions
@@ -441,7 +441,7 @@
441 441 "I have been using presets forever. Want to learn to design my own sounds. Where do I start?",
442 442 &[
443 443 "Start with subtractive synthesis. One oscillator, one filter, one envelope. Understand what each does.",
444 - "Syntorial. It is a paid app but it teaches synthesis through ear training, not just theory.",
444 + "Syntorial. It is a paid app but it teaches synthesis by ear, not from theory.",
445 445 "Pick one synth and learn it deeply. Vital or Serum are good because they visualize everything.",
446 446 ],
447 447 ),
@@ -915,9 +915,9 @@
915 915 "Sound design for games vs music",
916 916 "Anyone here do game audio? How is the process different from music production?",
917 917 &[
918 - "Everything needs to loop seamlessly. And sounds need to work at different pitches and speeds for real-time variation.",
918 + "Everything needs to loop without a click. And sounds need to work at different pitches and speeds for real-time variation.",
919 919 "Much more focus on functionality. A UI click needs to be satisfying but not distracting. Very different from making a synth lead.",
920 - "Middleware like FMOD or Wwise adds a whole layer of implementation. You are not just making sounds, you are programming behaviors.",
920 + "Middleware like FMOD or Wwise adds a whole layer of implementation. You end up programming behaviors, not making sounds.",
921 921 ],
922 922 ),
923 923 ];
@@ -955,13 +955,13 @@
955 955 "Reason had so much potential. Shame it never gained traction against the big players.",
956 956 "Anyone using hardware-only setups? No DAW at all?",
957 957 "I did a hardware-only album last year. It was liberating but the mixdown was painful.",
958 - "Renoise. Tracker workflow is incredibly fast once you learn the key commands.",
958 + "Renoise. Tracker workflow is fast once you learn the key commands.",
959 959 "I miss trackers. Something about the vertical scrolling interface makes rhythm programming intuitive.",
960 960 "What about Maschine or MPC as a DAW? Those have gotten pretty capable.",
961 961 "MPC standalone is great for jamming but I always end up exporting to a proper DAW for mixing.",
962 962 "Bitwig on Linux is underrated. Full native support, no WINE hacks.",
963 963 "I produce on Linux with Bitwig. Works perfectly. Even plugin support is solid with yabridge.",
964 - "The iPad is becoming a legit production platform. GarageBand to Logic transition is seamless now.",
964 + "The iPad is becoming a legit production platform. GarageBand to Logic hands off cleanly now.",
965 965 "Mobile production is fun for sketching ideas but I would not mix on a tablet.",
966 966 "Anyone tried the new AI features in some DAWs? Stem separation, auto-mixing, etc.",
967 967 "AI stem separation is useful for sampling. The mixing AI is gimmicky.",
@@ -38,11 +38,11 @@
38 38 <tr>
39 39 <th>Thread</th>
40 40 <th class="col-author">Author</th>
41 - <th class="col-replies sortable{% if sort_column == "replies" %} sort-active{% endif %}">
42 - <a href="?sort=replies&order={% if sort_column == "replies" && sort_order == "desc" %}asc{% else %}desc{% endif %}{% if let Some(tag) = active_tag %}&tag={{ tag }}{% endif %}">Replies{% if sort_column == "replies" %}{% if sort_order == "desc" %} ↓{% else %} ↑{% endif %}{% endif %}</a>
41 + <th class="col-replies sortable{% if sort_column == "replies" %} sort-active{% endif %}"{% if sort_column == "replies" %} aria-sort="{% if sort_order == "desc" %}descending{% else %}ascending{% endif %}"{% endif %}>
42 + <a href="?sort=replies&order={% if sort_column == "replies" && sort_order == "desc" %}asc{% else %}desc{% endif %}{% if let Some(tag) = active_tag %}&tag={{ tag }}{% endif %}"{% if sort_column == "replies" %} aria-label="Replies, sorted {% if sort_order == "desc" %}descending{% else %}ascending{% endif %}. Sort {% if sort_order == "desc" %}ascending{% else %}descending{% endif %}"{% else %} aria-label="Sort by replies"{% endif %}>Replies{% if sort_column == "replies" %}{% if sort_order == "desc" %} <span aria-hidden="true">↓</span>{% else %} <span aria-hidden="true">↑</span>{% endif %}{% endif %}</a>
43 43 </th>
44 - <th class="col-activity sortable{% if sort_column == "activity" %} sort-active{% endif %}">
45 - <a href="?sort=activity&order={% if sort_column == "activity" && sort_order == "desc" %}asc{% else %}desc{% endif %}{% if let Some(tag) = active_tag %}&tag={{ tag }}{% endif %}">Last Activity{% if sort_column == "activity" %}{% if sort_order == "desc" %} ↓{% else %} ↑{% endif %}{% endif %}</a>
44 + <th class="col-activity sortable{% if sort_column == "activity" %} sort-active{% endif %}"{% if sort_column == "activity" %} aria-sort="{% if sort_order == "desc" %}descending{% else %}ascending{% endif %}"{% endif %}>
45 + <a href="?sort=activity&order={% if sort_column == "activity" && sort_order == "desc" %}asc{% else %}desc{% endif %}{% if let Some(tag) = active_tag %}&tag={{ tag }}{% endif %}"{% if sort_column == "activity" %} aria-label="Last activity, sorted {% if sort_order == "desc" %}descending{% else %}ascending{% endif %}. Sort {% if sort_order == "desc" %}ascending{% else %}descending{% endif %}"{% else %} aria-label="Sort by last activity"{% endif %}>Last Activity{% if sort_column == "activity" %}{% if sort_order == "desc" %} <span aria-hidden="true">↓</span>{% else %} <span aria-hidden="true">↑</span>{% endif %}{% endif %}</a>
46 46 </th>
47 47 </tr>
48 48 </thead>