{"id":256,"date":"2026-10-28T08:52:03","date_gmt":"2026-10-28T08:52:03","guid":{"rendered":"https:\/\/robinclapworthy.com\/?p=256"},"modified":"2026-10-28T08:55:06","modified_gmt":"2026-10-28T08:55:06","slug":"if-its-pointless-why-am-i-enjoying-it-so-much","status":"publish","type":"post","link":"https:\/\/robinclapworthy.com\/?p=256","title":{"rendered":"If It\u2019s Pointless\u2026 Why Am I Enjoying It So Much?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Galactic Gladiators now has a music-reactive graphic equaliser in its pause menu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. A pause menu. In a space game. Written in Visual FoxPro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Essential development work, obviously.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We\u2019d talked about this before. The bars were already there, bouncing around and looking rather pleased with themselves. But they weren\u2019t actually following the music.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Getting them to react properly seemed like too much effort, possibly beyond what we could reasonably do with the existing setup. So we left it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then I asked Claude.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It produced a standalone demo that analysed 16-bit WAV files. After converting one of my music tracks and fixing a small FoxPro quirk in the file-reading code, there it was: bars moving with the music.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Well, that rather changed the conversation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The next step was getting that approach into our own pause menus. That involved a few rounds of debugging, some stubbornly invisible bars, and another reminder that FoxPro\u2019s string comparisons can keep you humble.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The principle is quite neat. Windows Media Player plays the music. FoxPro asks where we are in the track, reads the audio samples at that point, and calculates the strength of different frequencies.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Those values drive the coloured bars. Little white peak markers jump upwards and drift back down, giving it that proper old-school hi-fi look.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We initially kept an MP3 for playback and a WAV for analysis. Then came the fairly obvious question: why keep both?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It now plays and analyses the WAV.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Does any of this help you defeat the mothership?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Absolutely not.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Does it make BARF FM more fun to sit and watch while the jukebox plays?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Absolutely.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That\u2019s part of what I love about this project. Something gets filed under \u201cprobably not worth attempting\u201d, then a different approach opens it up again.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sometimes you end up with a useful feature.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sometimes you end up watching little white lines bounce to a reggae version of your space-game theme tune.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I\u2019m happy with either.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Seeing what\u2019s possible.<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/robinclapworthy.com\/wp-content\/uploads\/2026\/10\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"967\" height=\"543\" src=\"https:\/\/robinclapworthy.com\/wp-content\/uploads\/2026\/10\/image.png\" alt=\"\" class=\"wp-image-258\" srcset=\"https:\/\/robinclapworthy.com\/wp-content\/uploads\/2026\/10\/image.png 967w, https:\/\/robinclapworthy.com\/wp-content\/uploads\/2026\/10\/image-300x168.png 300w, https:\/\/robinclapworthy.com\/wp-content\/uploads\/2026\/10\/image-768x431.png 768w\" sizes=\"auto, (max-width: 967px) 100vw, 967px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Galactic Gladiators now has a music-reactive graphic equaliser in its pause menu. Yes. A pause menu. In a space game. Written in Visual FoxPro. Essential development work, obviously. We\u2019d talked about this before. The bars were already there, bouncing around and looking rather pleased with themselves. But they weren\u2019t actually following the music. Getting them &#8230; <a title=\"If It\u2019s Pointless\u2026 Why Am I Enjoying It So Much?\" class=\"read-more\" href=\"https:\/\/robinclapworthy.com\/?p=256\" aria-label=\"Read more about If It\u2019s Pointless\u2026 Why Am I Enjoying It So Much?\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-256","post","type-post","status-publish","format-standard","hentry","category-lawnpro"],"_links":{"self":[{"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=\/wp\/v2\/posts\/256","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=256"}],"version-history":[{"count":2,"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=\/wp\/v2\/posts\/256\/revisions"}],"predecessor-version":[{"id":259,"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=\/wp\/v2\/posts\/256\/revisions\/259"}],"wp:attachment":[{"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=256"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=256"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=256"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}